@lehnihon/bit-form 2.1.2 → 2.2.0

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 (59) hide show
  1. package/README.md +6 -0
  2. package/dist/angular/index.cjs +1 -1
  3. package/dist/angular/index.d.cts +15 -3
  4. package/dist/angular/index.d.ts +15 -3
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{bus-vCbulIYH.d.cts → bus-70e4jnBj.d.cts} +106 -1
  8. package/dist/{bus-vCbulIYH.d.ts → bus-70e4jnBj.d.ts} +106 -1
  9. package/dist/chunk-25Q2XJBV.cjs +133 -0
  10. package/dist/{chunk-2QNUW6ZN.cjs.map → chunk-25Q2XJBV.cjs.map} +1 -1
  11. package/dist/chunk-2HAQ3QEQ.js +133 -0
  12. package/dist/chunk-2HAQ3QEQ.js.map +1 -0
  13. package/dist/chunk-HTB6QIUQ.js +2 -0
  14. package/dist/chunk-HTB6QIUQ.js.map +1 -0
  15. package/dist/chunk-W22D7QVJ.cjs +2 -0
  16. package/dist/chunk-W22D7QVJ.cjs.map +1 -0
  17. package/dist/devtools/bridge.cjs +1 -1
  18. package/dist/devtools/bridge.js +1 -1
  19. package/dist/devtools/index.cjs +1 -1
  20. package/dist/devtools/index.js +1 -1
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.d.cts +4 -4
  23. package/dist/index.d.ts +4 -4
  24. package/dist/index.js +1 -1
  25. package/dist/{public-types-ChP5j3xc.d.ts → public-types-BVZ16kgZ.d.ts} +6 -1
  26. package/dist/{public-types-Nv__uZTR.d.cts → public-types-r2aP68Gg.d.cts} +6 -1
  27. package/dist/react/index.cjs +1 -1
  28. package/dist/react/index.cjs.map +1 -1
  29. package/dist/react/index.d.cts +5 -5
  30. package/dist/react/index.d.ts +5 -5
  31. package/dist/react/index.js +1 -1
  32. package/dist/react/index.js.map +1 -1
  33. package/dist/react-native/index.cjs +1 -1
  34. package/dist/react-native/index.cjs.map +1 -1
  35. package/dist/react-native/index.d.cts +10 -12
  36. package/dist/react-native/index.d.ts +10 -12
  37. package/dist/react-native/index.js +1 -1
  38. package/dist/react-native/index.js.map +1 -1
  39. package/dist/resolvers/joi.d.cts +1 -1
  40. package/dist/resolvers/joi.d.ts +1 -1
  41. package/dist/resolvers/yup.d.cts +1 -1
  42. package/dist/resolvers/yup.d.ts +1 -1
  43. package/dist/resolvers/zod.d.cts +1 -1
  44. package/dist/resolvers/zod.d.ts +1 -1
  45. package/dist/{use-bit-watch-hA0AqCkC.d.ts → use-bit-persist-COdNw_fv.d.ts} +15 -3
  46. package/dist/{use-bit-watch-BRekIj2W.d.cts → use-bit-persist-JshPvwwy.d.cts} +15 -3
  47. package/dist/vue/index.cjs +1 -1
  48. package/dist/vue/index.d.cts +16 -4
  49. package/dist/vue/index.d.ts +16 -4
  50. package/dist/vue/index.js +1 -1
  51. package/dist/vue/index.js.map +1 -1
  52. package/package.json +1 -1
  53. package/dist/chunk-2QNUW6ZN.cjs +0 -133
  54. package/dist/chunk-F6LJWWEW.js +0 -2
  55. package/dist/chunk-F6LJWWEW.js.map +0 -1
  56. package/dist/chunk-LPRLSFPT.cjs +0 -2
  57. package/dist/chunk-LPRLSFPT.cjs.map +0 -1
  58. package/dist/chunk-N6IA7HQL.js +0 -133
  59. package/dist/chunk-N6IA7HQL.js.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 _chunk2QNUW6ZNcjs = require('../chunk-2QNUW6ZN.cjs');var _vue = require('vue');var j=Symbol("BIT_STORE");function z(e){_vue.provide.call(void 0, j,e)}function m(){let e=_vue.inject.call(void 0, j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function L(){let e=m(),t=_vue.shallowRef.call(void 0, e.getState()),s=_vue.ref.call(void 0, null),o=_vue.ref.call(void 0, null),n=e.subscribe(()=>{t.value={...e.getState()}});_vue.onUnmounted.call(void 0, n);let i=()=>t.value.values,v=()=>t.value.errors,y=()=>t.value.touched,d=()=>e.getDirtyValues(),r=_vue.computed.call(void 0, ()=>t.value.isValid),a=_vue.computed.call(void 0, ()=>t.value.isSubmitting),u=_vue.computed.call(void 0, ()=>t.value.isDirty);return{meta:{isValid:r,isDirty:u,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:v,getTouched:y,getDirtyValues:d,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()]),s.value=null,e.submit(async(F,l)=>{try{let c=await S(F,l);o.value=c,s.value=null}catch(c){_chunk2QNUW6ZNcjs.h.call(void 0, c)?e.setServerErrors(_chunk2QNUW6ZNcjs.i.call(void 0, c)):s.value=c instanceof Error?c:new Error(String(c))}})),reset:()=>{e.reset(),s.value=null,o.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),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)}}}function R(e){let t=m(),s=t.resolveMask(e),o=_vue.shallowRef.call(void 0, t.getState()),n=t.subscribe(()=>{o.value=t.getState()});_vue.onUnmounted.call(void 0, ()=>{n(),t.unregisterField&&t.unregisterField(e)});let i=_vue.computed.call(void 0, ()=>_chunk2QNUW6ZNcjs.e.call(void 0, o.value.values,e)),v=_vue.computed.call(void 0, ()=>{let p=i.value;return p==null||p===""?"":s?s.format(p):String(p)}),y=_vue.computed.call(void 0, {get:()=>v.value,set:p=>{if(!s){t.setField(e,p);return}t.setField(e,s.parse(String(_nullishCoalesce(p, () => ("")))))}}),d=_vue.computed.call(void 0, ()=>o.value.errors[e]),r=_vue.computed.call(void 0, ()=>o.value.touched[e]?o.value.errors[e]:void 0),a=_vue.computed.call(void 0, ()=>!!o.value.touched[e]),u=_vue.computed.call(void 0, ()=>!!(a.value&&r.value)),g=_vue.computed.call(void 0, ()=>(o.value,t.isFieldValidating(e))),I=_vue.computed.call(void 0, ()=>(o.value,t.isFieldDirty(e))),x=_vue.computed.call(void 0, ()=>(o.value,t.isHidden(e))),S=_vue.computed.call(void 0, ()=>(o.value,t.isRequired(e))),B=_vue.computed.call(void 0, ()=>!!d.value),F=p=>{y.value=p},l=()=>t.blurField(e);return{value:i,displayValue:v,modelValue:y,setValue:F,setBlur:l,onInput:p=>{F(p)},onBlur:()=>{l()},meta:{error:r,touched:a,invalid:u,isValidating:g,isDirty:I,isHidden:x,isRequired:S,hasError:B}}}var h=()=>Math.random().toString(36).substring(2,9);function Q(e){let t=m(),s=()=>{let r=_chunk2QNUW6ZNcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=_vue.ref.call(void 0, o),i=_vue.ref.call(void 0, o.map(h)),v=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let u=r.length-a.length,g=Array.from({length:u},h);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});_vue.onUnmounted.call(void 0, ()=>{v(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let y=_vue.computed.call(void 0, ()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),d=_vue.computed.call(void 0, ()=>n.value.length);return{fields:y,length:d,append:r=>{i.value.push(h()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(h()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,h()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let u=[...i.value],[g]=u.splice(r,1);u.splice(a,0,g),i.value=u,t.moveItem(e,r,a)},swap:(r,a)=>{let u=[...i.value];[u[r],u[a]]=[u[a],u[r]],i.value=u,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(h),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}function N(){let e=m(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, s);let o=()=>e.undo(),n=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:o,redo:n}}function se(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function oe(e){let t=m(),s=_vue.ref.call(void 0, t.getStepStatus(e)),o;_vue.onMounted.call(void 0, ()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!se(r.errors,s.value.errors))&&(s.value=r)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([o, 'optionalCall', _6 => _6()])});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),v=_vue.computed.call(void 0, ()=>!s.value.hasErrors),y=_vue.computed.call(void 0, ()=>s.value.isDirty),d=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:d,validate:n,getErrors:i,isValid:v,isDirty:y}}function ue(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function le(e){let t=m(),s=_vue.ref.call(void 0, 0),o=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),n=_vue.ref.call(void 0, t.getStepStatus(o.value)),i;_vue.watch.call(void 0, o,l=>{n.value=t.getStepStatus(l)});let v=()=>{let l=o.value,c=t.getStepStatus(l);(c.hasErrors!==n.value.hasErrors||c.isDirty!==n.value.isDirty||!ue(c.errors,n.value.errors))&&(n.value=c)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(v)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _7 => _7()])});let y=async()=>{let l=o.value,c=await t.validate({scope:l}),E=t.getStepErrors(l);return{valid:c,errors:E}},d=()=>t.getStepErrors(o.value),r=async()=>{let l=o.value,c=t.getScopeFields(l);if(t.hasValidationsInProgress(c))return!1;let E=await t.validate({scope:l});if(E)s.value=Math.min(s.value+1,e.length-1);else{let p=t.getStepErrors(l),P=Object.keys(p);P.length>0&&t.markFieldsTouched(P)}return E},a=()=>{s.value=Math.max(s.value-1,0)},u=l=>{s.value=Math.max(0,Math.min(l-1,e.length-1))},g=_vue.computed.call(void 0, ()=>s.value+1),I=_vue.computed.call(void 0, ()=>s.value===0),x=_vue.computed.call(void 0, ()=>s.value>=e.length-1),S=_vue.computed.call(void 0, ()=>!n.value.hasErrors),B=_vue.computed.call(void 0, ()=>n.value.isDirty),F=_vue.computed.call(void 0, ()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:u,isFirst:I,isLast:x,status:n,errors:F,isValid:S,isDirty:B,validate:y,getErrors:d}}function pe(e){let t=m(),s=_chunk2QNUW6ZNcjs.e.call(void 0, t.getState().values,e),o=_vue.ref.call(void 0, s),n=t.watch(e,i=>{_chunk2QNUW6ZNcjs.d.call(void 0, o.value,i)||(o.value=i)});return _vue.onUnmounted.call(void 0, n),_vue.readonly.call(void 0, o)}function ve(e,t,s){let o=m(),n=R(e),i=null,v=async d=>{if(d){o.beginFieldValidation(e),await o.clearFieldAsyncError(e);try{let r=await t(d);n.setValue(r.url),i=r.key,await o.clearFieldAsyncError(e)}catch(r){let a=r instanceof Error?r.message:"Upload failed";await o.setFieldAsyncError(e,a)}finally{o.endFieldValidation(e)}}},y=async()=>{if(i&&s)try{await s(i)}catch(d){let r=d instanceof Error?d.message:"Delete failed";await o.setFieldAsyncError(e,r);return}n.setValue(null),i=null,await o.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:_vue.computed.call(void 0, ()=>n.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>n.meta.isValidating.value||!1),upload:v,remove:y}}exports.provideBitStore = z; exports.useBitArray = Q; exports.useBitField = R; exports.useBitForm = L; exports.useBitHistory = N; exports.useBitScope = oe; exports.useBitSteps = le; exports.useBitStore = m; exports.useBitUpload = ve; exports.useBitWatch = pe;
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 _chunk25Q2XJBVcjs = require('../chunk-25Q2XJBV.cjs');var _vue = require('vue');var H=Symbol("BIT_STORE");function $(e){_vue.provide.call(void 0, H,e)}function l(){let e=_vue.inject.call(void 0, H);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function G(){let e=l(),t=_vue.shallowRef.call(void 0, e.getState()),o=_vue.ref.call(void 0, null),r=_vue.ref.call(void 0, null),n=e.subscribe(()=>{t.value={...e.getState()}});_vue.onUnmounted.call(void 0, n);let i=()=>t.value.values,f=()=>t.value.errors,u=()=>t.value.touched,v=()=>e.getDirtyValues(),s=_vue.computed.call(void 0, ()=>t.value.isValid),a=_vue.computed.call(void 0, ()=>t.value.isSubmitting),c=_vue.computed.call(void 0, ()=>t.value.isDirty);return{meta:{isValid:s,isDirty:c,isSubmitting:a,submitError:o,lastResponse:r},getValues:i,getErrors:f,getTouched:u,getDirtyValues:v,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(F,m)=>{try{let d=await S(F,m);r.value=d,o.value=null}catch(d){_chunk25Q2XJBVcjs.h.call(void 0, d)?e.setServerErrors(_chunk25Q2XJBVcjs.i.call(void 0, d)):o.value=d instanceof Error?d:new Error(String(d))}})),reset:()=>{e.reset(),o.value=null,r.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),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)}}}function T(e){let t=l(),o=t.resolveMask(e),r=_vue.shallowRef.call(void 0, t.getState()),n=t.subscribe(()=>{r.value=t.getState()});_vue.onUnmounted.call(void 0, ()=>{n(),t.unregisterField&&t.unregisterField(e)});let i=_vue.computed.call(void 0, ()=>_chunk25Q2XJBVcjs.e.call(void 0, r.value.values,e)),f=_vue.computed.call(void 0, ()=>{let p=i.value;return p==null||p===""?"":o?o.format(p):String(p)}),u=_vue.computed.call(void 0, {get:()=>f.value,set:p=>{if(!o){t.setField(e,p);return}t.setField(e,o.parse(String(_nullishCoalesce(p, () => ("")))))}}),v=_vue.computed.call(void 0, ()=>r.value.errors[e]),s=_vue.computed.call(void 0, ()=>r.value.touched[e]?r.value.errors[e]:void 0),a=_vue.computed.call(void 0, ()=>!!r.value.touched[e]),c=_vue.computed.call(void 0, ()=>!!(a.value&&s.value)),g=_vue.computed.call(void 0, ()=>(r.value,t.isFieldValidating(e))),I=_vue.computed.call(void 0, ()=>(r.value,t.isFieldDirty(e))),w=_vue.computed.call(void 0, ()=>(r.value,t.isHidden(e))),S=_vue.computed.call(void 0, ()=>(r.value,t.isRequired(e))),B=_vue.computed.call(void 0, ()=>!!v.value),F=p=>{u.value=p},m=()=>t.blurField(e);return{value:i,displayValue:f,modelValue:u,setValue:F,setBlur:m,onInput:p=>{F(p)},onBlur:()=>{m()},meta:{error:s,touched:a,invalid:c,isValidating:g,isDirty:I,isHidden:w,isRequired:S,hasError:B}}}var E=()=>Math.random().toString(36).substring(2,9);function Z(e){let t=l(),o=()=>{let s=_chunk25Q2XJBVcjs.e.call(void 0, t.getState().values,e);return Array.isArray(s)?s:[]},r=o(),n=_vue.ref.call(void 0, r),i=_vue.ref.call(void 0, r.map(E)),f=t.subscribe(()=>{let s=o();if(n.value=[...s],s.length!==i.value.length){let a=[...i.value];if(s.length>a.length){let c=s.length-a.length,g=Array.from({length:c},E);i.value=[...a,...g]}else i.value=a.slice(0,s.length)}});_vue.onUnmounted.call(void 0, ()=>{f(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=_vue.computed.call(void 0, ()=>n.value.map((s,a)=>({key:i.value[a]||`temp-${a}`,value:s,index:a}))),v=_vue.computed.call(void 0, ()=>n.value.length);return{fields:u,length:v,append:s=>{i.value.push(E()),t.pushItem(e,s)},prepend:s=>{i.value.unshift(E()),t.prependItem(e,s)},insert:(s,a)=>{i.value.splice(s,0,E()),t.insertItem(e,s,a)},remove:s=>{i.value.splice(s,1),t.removeItem(e,s)},move:(s,a)=>{let c=[...i.value],[g]=c.splice(s,1);c.splice(a,0,g),i.value=c,t.moveItem(e,s,a)},swap:(s,a)=>{let c=[...i.value];[c[s],c[a]]=[c[a],c[s]],i.value=c,t.swapItems(e,s,a)},replace:s=>{i.value=s.map(E),t.setField(e,s)},clear:()=>{i.value=[],t.setField(e,[])}}}function te(){let e=l(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),o=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, o);let r=()=>e.undo(),n=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:r,redo:n}}function ne(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function ie(e){let t=l(),o=_vue.ref.call(void 0, t.getStepStatus(e)),r;_vue.onMounted.call(void 0, ()=>{r=t.subscribe(()=>{let s=t.getStepStatus(e);(s.hasErrors!==o.value.hasErrors||s.isDirty!==o.value.isDirty||!ne(s.errors,o.value.errors))&&(o.value=s)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _6 => _6()])});let n=async()=>{let s=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:s,errors:a}},i=()=>t.getStepErrors(e),f=_vue.computed.call(void 0, ()=>!o.value.hasErrors),u=_vue.computed.call(void 0, ()=>o.value.isDirty),v=_vue.computed.call(void 0, ()=>o.value.errors);return{scopeName:e,status:o,errors:v,validate:n,getErrors:i,isValid:f,isDirty:u}}function ce(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function me(e){let t=l(),o=_vue.ref.call(void 0, 0),r=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[o.value], () => (""))),n=_vue.ref.call(void 0, t.getStepStatus(r.value)),i;_vue.watch.call(void 0, r,m=>{n.value=t.getStepStatus(m)});let f=()=>{let m=r.value,d=t.getStepStatus(m);(d.hasErrors!==n.value.hasErrors||d.isDirty!==n.value.isDirty||!ce(d.errors,n.value.errors))&&(n.value=d)};_vue.onMounted.call(void 0, ()=>{i=t.subscribe(f)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _7 => _7()])});let u=async()=>{let m=r.value,d=await t.validate({scope:m}),h=t.getStepErrors(m);return{valid:d,errors:h}},v=()=>t.getStepErrors(r.value),s=async()=>{let m=r.value,d=t.getScopeFields(m);if(t.hasValidationsInProgress(d))return!1;let h=await t.validate({scope:m});if(h)o.value=Math.min(o.value+1,e.length-1);else{let p=t.getStepErrors(m),k=Object.keys(p);k.length>0&&t.markFieldsTouched(k)}return h},a=()=>{o.value=Math.max(o.value-1,0)},c=m=>{o.value=Math.max(0,Math.min(m-1,e.length-1))},g=_vue.computed.call(void 0, ()=>o.value+1),I=_vue.computed.call(void 0, ()=>o.value===0),w=_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),F=_vue.computed.call(void 0, ()=>n.value.errors);return{step:g,stepIndex:o,scope:r,next:s,prev:a,goTo:c,isFirst:I,isLast:w,status:n,errors:F,isValid:S,isDirty:B,validate:u,getErrors:v}}function fe(e){let t=l(),o=_chunk25Q2XJBVcjs.e.call(void 0, t.getState().values,e),r=_vue.ref.call(void 0, o),n=t.watch(e,i=>{_chunk25Q2XJBVcjs.d.call(void 0, r.value,i)||(r.value=i)});return _vue.onUnmounted.call(void 0, n),_vue.readonly.call(void 0, r)}function ye(e,t,o){let r=l(),n=T(e),i=null,f=async v=>{if(v){r.beginFieldValidation(e),await r.clearFieldAsyncError(e);try{let s=await t(v);n.setValue(s.url),i=s.key,await r.clearFieldAsyncError(e)}catch(s){let a=s instanceof Error?s.message:"Upload failed";await r.setFieldAsyncError(e,a)}finally{r.endFieldValidation(e)}}},u=async()=>{if(i&&o)try{await o(i)}catch(v){let s=v instanceof Error?v.message:"Delete failed";await r.setFieldAsyncError(e,s);return}n.setValue(null),i=null,await r.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:_vue.computed.call(void 0, ()=>n.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>n.meta.isValidating.value||!1),upload:f,remove:u}}function ge(){let e=l(),t=_vue.ref.call(void 0, !1),o=_vue.ref.call(void 0, !1),r=_vue.ref.call(void 0, null);return{restore:async()=>{o.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{o.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:_vue.readonly.call(void 0, t),isRestoring:_vue.readonly.call(void 0, o),error:_vue.readonly.call(void 0, r)}}}exports.provideBitStore = $; exports.useBitArray = Z; exports.useBitField = T; exports.useBitForm = G; exports.useBitHistory = te; exports.useBitPersist = ge; exports.useBitScope = ie; exports.useBitSteps = me; exports.useBitStore = l; exports.useBitUpload = ye; exports.useBitWatch = fe;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
- import { b as BitFrameworkStore } from '../public-types-Nv__uZTR.cjs';
2
- import { e as BitErrors, m as BitTouched, j as BitPath, k as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, c as BitArrayPath, b as BitArrayItem } from '../bus-vCbulIYH.cjs';
1
+ import { b as BitFrameworkStore } from '../public-types-r2aP68Gg.cjs';
2
+ import { i as BitErrors, z as BitTouched, p as BitPath, q as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, e as BitArrayPath, d as BitArrayItem } from '../bus-70e4jnBj.cjs';
3
3
  import * as vue from 'vue';
4
- import { ComputedRef, Ref } from 'vue';
4
+ import { Ref, ComputedRef } from 'vue';
5
5
  import * as _vue_reactivity from '@vue/reactivity';
6
6
  import * as _vue_shared from '@vue/shared';
7
7
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
@@ -115,6 +115,16 @@ interface UseBitHistoryResult {
115
115
  undo: () => void;
116
116
  redo: () => void;
117
117
  }
118
+ interface UseBitPersistResult {
119
+ restore: () => Promise<boolean>;
120
+ save: () => Promise<void>;
121
+ clear: () => Promise<void>;
122
+ meta: {
123
+ isSaving: Ref<boolean>;
124
+ isRestoring: Ref<boolean>;
125
+ error: Ref<Error | null>;
126
+ };
127
+ }
118
128
 
119
129
  declare function useBitField<TValue = any>(path: string): UseBitFieldVueResult<TValue>;
120
130
 
@@ -167,4 +177,6 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
167
177
 
168
178
  declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
169
179
 
170
- export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitHistoryResult, type UseBitStepsResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
180
+ declare function useBitPersist<T extends object = any>(): UseBitPersistResult;
181
+
182
+ export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitHistoryResult, type UseBitPersistResult, type UseBitStepsResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitPersist, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
@@ -1,7 +1,7 @@
1
- import { b as BitFrameworkStore } from '../public-types-ChP5j3xc.js';
2
- import { e as BitErrors, m as BitTouched, j as BitPath, k as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, c as BitArrayPath, b as BitArrayItem } from '../bus-vCbulIYH.js';
1
+ import { b as BitFrameworkStore } from '../public-types-BVZ16kgZ.js';
2
+ import { i as BitErrors, z as BitTouched, p as BitPath, q as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, e as BitArrayPath, d as BitArrayItem } from '../bus-70e4jnBj.js';
3
3
  import * as vue from 'vue';
4
- import { ComputedRef, Ref } from 'vue';
4
+ import { Ref, ComputedRef } from 'vue';
5
5
  import * as _vue_reactivity from '@vue/reactivity';
6
6
  import * as _vue_shared from '@vue/shared';
7
7
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
@@ -115,6 +115,16 @@ interface UseBitHistoryResult {
115
115
  undo: () => void;
116
116
  redo: () => void;
117
117
  }
118
+ interface UseBitPersistResult {
119
+ restore: () => Promise<boolean>;
120
+ save: () => Promise<void>;
121
+ clear: () => Promise<void>;
122
+ meta: {
123
+ isSaving: Ref<boolean>;
124
+ isRestoring: Ref<boolean>;
125
+ error: Ref<Error | null>;
126
+ };
127
+ }
118
128
 
119
129
  declare function useBitField<TValue = any>(path: string): UseBitFieldVueResult<TValue>;
120
130
 
@@ -167,4 +177,6 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
167
177
 
168
178
  declare function useBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): UseBitUploadResult;
169
179
 
170
- export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitHistoryResult, type UseBitStepsResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
180
+ declare function useBitPersist<T extends object = any>(): UseBitPersistResult;
181
+
182
+ export { ScopeStatus, type UseBitFieldVueMeta, type UseBitFieldVueResult, type UseBitHistoryResult, type UseBitPersistResult, type UseBitStepsResult, type UseBitUploadResult, ValidateScopeResult, provideBitStore, useBitArray, useBitField, useBitForm, useBitHistory, useBitPersist, useBitScope, useBitSteps, useBitStore, useBitUpload, useBitWatch };
package/dist/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{d as D,e as V,h as k,i as A}from"../chunk-N6IA7HQL.js";import{inject as W,provide as _}from"vue";var j=Symbol("BIT_STORE");function z(e){_(j,e)}function m(){let e=W(j);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as w,onUnmounted as C,shallowRef as $,ref as M}from"vue";function L(){let e=m(),t=$(e.getState()),s=M(null),o=M(null),n=e.subscribe(()=>{t.value={...e.getState()}});C(n);let i=()=>t.value.values,v=()=>t.value.errors,y=()=>t.value.touched,d=()=>e.getDirtyValues(),r=w(()=>t.value.isValid),a=w(()=>t.value.isSubmitting),u=w(()=>t.value.isDirty);return{meta:{isValid:r,isDirty:u,isSubmitting:a,submitError:s,lastResponse:o},getValues:i,getErrors:v,getTouched:y,getDirtyValues:d,submit:S=>B=>(B?.preventDefault?.(),e.submit(S)),onSubmit:S=>B=>(B?.preventDefault?.(),s.value=null,e.submit(async(F,l)=>{try{let c=await S(F,l);o.value=c,s.value=null}catch(c){k(c)?e.setServerErrors(A(c)):s.value=c instanceof Error?c:new Error(String(c))}})),reset:()=>{e.reset(),s.value=null,o.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),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)}}}import{computed as f,onUnmounted as Y,shallowRef as G}from"vue";function R(e){let t=m(),s=t.resolveMask(e),o=G(t.getState()),n=t.subscribe(()=>{o.value=t.getState()});Y(()=>{n(),t.unregisterField&&t.unregisterField(e)});let i=f(()=>V(o.value.values,e)),v=f(()=>{let p=i.value;return p==null||p===""?"":s?s.format(p):String(p)}),y=f({get:()=>v.value,set:p=>{if(!s){t.setField(e,p);return}t.setField(e,s.parse(String(p??"")))}}),d=f(()=>o.value.errors[e]),r=f(()=>o.value.touched[e]?o.value.errors[e]:void 0),a=f(()=>!!o.value.touched[e]),u=f(()=>!!(a.value&&r.value)),g=f(()=>(o.value,t.isFieldValidating(e))),I=f(()=>(o.value,t.isFieldDirty(e))),x=f(()=>(o.value,t.isHidden(e))),S=f(()=>(o.value,t.isRequired(e))),B=f(()=>!!d.value),F=p=>{y.value=p},l=()=>t.blurField(e);return{value:i,displayValue:v,modelValue:y,setValue:F,setBlur:l,onInput:p=>{F(p)},onBlur:()=>{l()},meta:{error:r,touched:a,invalid:u,isValidating:g,isDirty:I,isHidden:x,isRequired:S,hasError:B}}}import{ref as H,computed as O,onUnmounted as J}from"vue";var h=()=>Math.random().toString(36).substring(2,9);function Q(e){let t=m(),s=()=>{let r=V(t.getState().values,e);return Array.isArray(r)?r:[]},o=s(),n=H(o),i=H(o.map(h)),v=t.subscribe(()=>{let r=s();if(n.value=[...r],r.length!==i.value.length){let a=[...i.value];if(r.length>a.length){let u=r.length-a.length,g=Array.from({length:u},h);i.value=[...a,...g]}else i.value=a.slice(0,r.length)}});J(()=>{v(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let y=O(()=>n.value.map((r,a)=>({key:i.value[a]||`temp-${a}`,value:r,index:a}))),d=O(()=>n.value.length);return{fields:y,length:d,append:r=>{i.value.push(h()),t.pushItem(e,r)},prepend:r=>{i.value.unshift(h()),t.prependItem(e,r)},insert:(r,a)=>{i.value.splice(r,0,h()),t.insertItem(e,r,a)},remove:r=>{i.value.splice(r,1),t.removeItem(e,r)},move:(r,a)=>{let u=[...i.value],[g]=u.splice(r,1);u.splice(a,0,g),i.value=u,t.moveItem(e,r,a)},swap:(r,a)=>{let u=[...i.value];[u[r],u[a]]=[u[a],u[r]],i.value=u,t.swapItems(e,r,a)},replace:r=>{i.value=r.map(h),t.setField(e,r)},clear:()=>{i.value=[],t.setField(e,[])}}}import{computed as T,onUnmounted as X,shallowRef as Z}from"vue";function N(){let e=m(),t=Z(e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});X(s);let o=()=>e.undo(),n=()=>e.redo();return{canUndo:T(()=>t.value.canUndo),canRedo:T(()=>t.value.canRedo),historyIndex:T(()=>t.value.historyIndex),historySize:T(()=>t.value.historySize),undo:o,redo:n}}import{ref as ee,computed as U,onMounted as te,onUnmounted as re}from"vue";function se(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function oe(e){let t=m(),s=ee(t.getStepStatus(e)),o;te(()=>{o=t.subscribe(()=>{let r=t.getStepStatus(e);(r.hasErrors!==s.value.hasErrors||r.isDirty!==s.value.isDirty||!se(r.errors,s.value.errors))&&(s.value=r)})}),re(()=>{o?.()});let n=async()=>{let r=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:r,errors:a}},i=()=>t.getStepErrors(e),v=U(()=>!s.value.hasErrors),y=U(()=>s.value.isDirty),d=U(()=>s.value.errors);return{scopeName:e,status:s,errors:d,validate:n,getErrors:i,isValid:v,isDirty:y}}import{ref as q,computed as b,watch as ne,onMounted as ie,onUnmounted as ae}from"vue";function ue(e,t){let s=Object.keys(e),o=Object.keys(t);return s.length!==o.length?!1:s.every(n=>e[n]===t[n])}function le(e){let t=m(),s=q(0),o=b(()=>e[s.value]??""),n=q(t.getStepStatus(o.value)),i;ne(o,l=>{n.value=t.getStepStatus(l)});let v=()=>{let l=o.value,c=t.getStepStatus(l);(c.hasErrors!==n.value.hasErrors||c.isDirty!==n.value.isDirty||!ue(c.errors,n.value.errors))&&(n.value=c)};ie(()=>{i=t.subscribe(v)}),ae(()=>{i?.()});let y=async()=>{let l=o.value,c=await t.validate({scope:l}),E=t.getStepErrors(l);return{valid:c,errors:E}},d=()=>t.getStepErrors(o.value),r=async()=>{let l=o.value,c=t.getScopeFields(l);if(t.hasValidationsInProgress(c))return!1;let E=await t.validate({scope:l});if(E)s.value=Math.min(s.value+1,e.length-1);else{let p=t.getStepErrors(l),P=Object.keys(p);P.length>0&&t.markFieldsTouched(P)}return E},a=()=>{s.value=Math.max(s.value-1,0)},u=l=>{s.value=Math.max(0,Math.min(l-1,e.length-1))},g=b(()=>s.value+1),I=b(()=>s.value===0),x=b(()=>s.value>=e.length-1),S=b(()=>!n.value.hasErrors),B=b(()=>n.value.isDirty),F=b(()=>n.value.errors);return{step:g,stepIndex:s,scope:o,next:r,prev:a,goTo:u,isFirst:I,isLast:x,status:n,errors:F,isValid:S,isDirty:B,validate:y,getErrors:d}}import{ref as ce,onUnmounted as me,readonly as de}from"vue";function pe(e){let t=m(),s=V(t.getState().values,e),o=ce(s),n=t.watch(e,i=>{D(o.value,i)||(o.value=i)});return me(n),de(o)}import{computed as K}from"vue";function ve(e,t,s){let o=m(),n=R(e),i=null,v=async d=>{if(d){o.beginFieldValidation(e),await o.clearFieldAsyncError(e);try{let r=await t(d);n.setValue(r.url),i=r.key,await o.clearFieldAsyncError(e)}catch(r){let a=r instanceof Error?r.message:"Upload failed";await o.setFieldAsyncError(e,a)}finally{o.endFieldValidation(e)}}},y=async()=>{if(i&&s)try{await s(i)}catch(d){let r=d instanceof Error?d.message:"Delete failed";await o.setFieldAsyncError(e,r);return}n.setValue(null),i=null,await o.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:K(()=>n.meta.error.value),isValidating:K(()=>n.meta.isValidating.value||!1),upload:v,remove:y}}export{z as provideBitStore,Q as useBitArray,R as useBitField,L as useBitForm,N as useBitHistory,oe as useBitScope,le as useBitSteps,m as useBitStore,ve as useBitUpload,pe as useBitWatch};
1
+ import{d as A,e as V,h as j,i as M}from"../chunk-2HAQ3QEQ.js";import{inject as z,provide as C}from"vue";var H=Symbol("BIT_STORE");function $(e){C(H,e)}function l(){let e=z(H);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as R,onUnmounted as L,shallowRef as Y,ref as O}from"vue";function G(){let e=l(),t=Y(e.getState()),o=O(null),r=O(null),n=e.subscribe(()=>{t.value={...e.getState()}});L(n);let i=()=>t.value.values,f=()=>t.value.errors,u=()=>t.value.touched,v=()=>e.getDirtyValues(),s=R(()=>t.value.isValid),a=R(()=>t.value.isSubmitting),c=R(()=>t.value.isDirty);return{meta:{isValid:s,isDirty:c,isSubmitting:a,submitError:o,lastResponse:r},getValues:i,getErrors:f,getTouched:u,getDirtyValues:v,submit:S=>B=>(B?.preventDefault?.(),e.submit(S)),onSubmit:S=>B=>(B?.preventDefault?.(),o.value=null,e.submit(async(F,m)=>{try{let d=await S(F,m);r.value=d,o.value=null}catch(d){j(d)?e.setServerErrors(M(d)):o.value=d instanceof Error?d:new Error(String(d))}})),reset:()=>{e.reset(),o.value=null,r.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),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)}}}import{computed as y,onUnmounted as J,shallowRef as Q}from"vue";function T(e){let t=l(),o=t.resolveMask(e),r=Q(t.getState()),n=t.subscribe(()=>{r.value=t.getState()});J(()=>{n(),t.unregisterField&&t.unregisterField(e)});let i=y(()=>V(r.value.values,e)),f=y(()=>{let p=i.value;return p==null||p===""?"":o?o.format(p):String(p)}),u=y({get:()=>f.value,set:p=>{if(!o){t.setField(e,p);return}t.setField(e,o.parse(String(p??"")))}}),v=y(()=>r.value.errors[e]),s=y(()=>r.value.touched[e]?r.value.errors[e]:void 0),a=y(()=>!!r.value.touched[e]),c=y(()=>!!(a.value&&s.value)),g=y(()=>(r.value,t.isFieldValidating(e))),I=y(()=>(r.value,t.isFieldDirty(e))),w=y(()=>(r.value,t.isHidden(e))),S=y(()=>(r.value,t.isRequired(e))),B=y(()=>!!v.value),F=p=>{u.value=p},m=()=>t.blurField(e);return{value:i,displayValue:f,modelValue:u,setValue:F,setBlur:m,onInput:p=>{F(p)},onBlur:()=>{m()},meta:{error:s,touched:a,invalid:c,isValidating:g,isDirty:I,isHidden:w,isRequired:S,hasError:B}}}import{ref as q,computed as K,onUnmounted as X}from"vue";var E=()=>Math.random().toString(36).substring(2,9);function Z(e){let t=l(),o=()=>{let s=V(t.getState().values,e);return Array.isArray(s)?s:[]},r=o(),n=q(r),i=q(r.map(E)),f=t.subscribe(()=>{let s=o();if(n.value=[...s],s.length!==i.value.length){let a=[...i.value];if(s.length>a.length){let c=s.length-a.length,g=Array.from({length:c},E);i.value=[...a,...g]}else i.value=a.slice(0,s.length)}});X(()=>{f(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=K(()=>n.value.map((s,a)=>({key:i.value[a]||`temp-${a}`,value:s,index:a}))),v=K(()=>n.value.length);return{fields:u,length:v,append:s=>{i.value.push(E()),t.pushItem(e,s)},prepend:s=>{i.value.unshift(E()),t.prependItem(e,s)},insert:(s,a)=>{i.value.splice(s,0,E()),t.insertItem(e,s,a)},remove:s=>{i.value.splice(s,1),t.removeItem(e,s)},move:(s,a)=>{let c=[...i.value],[g]=c.splice(s,1);c.splice(a,0,g),i.value=c,t.moveItem(e,s,a)},swap:(s,a)=>{let c=[...i.value];[c[s],c[a]]=[c[a],c[s]],i.value=c,t.swapItems(e,s,a)},replace:s=>{i.value=s.map(E),t.setField(e,s)},clear:()=>{i.value=[],t.setField(e,[])}}}import{computed as x,onUnmounted as N,shallowRef as ee}from"vue";function te(){let e=l(),t=ee(e.getHistoryMetadata()),o=e.subscribe(()=>{t.value=e.getHistoryMetadata()});N(o);let r=()=>e.undo(),n=()=>e.redo();return{canUndo:x(()=>t.value.canUndo),canRedo:x(()=>t.value.canRedo),historyIndex:x(()=>t.value.historyIndex),historySize:x(()=>t.value.historySize),undo:r,redo:n}}import{ref as re,computed as P,onMounted as se,onUnmounted as oe}from"vue";function ne(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function ie(e){let t=l(),o=re(t.getStepStatus(e)),r;se(()=>{r=t.subscribe(()=>{let s=t.getStepStatus(e);(s.hasErrors!==o.value.hasErrors||s.isDirty!==o.value.isDirty||!ne(s.errors,o.value.errors))&&(o.value=s)})}),oe(()=>{r?.()});let n=async()=>{let s=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:s,errors:a}},i=()=>t.getStepErrors(e),f=P(()=>!o.value.hasErrors),u=P(()=>o.value.isDirty),v=P(()=>o.value.errors);return{scopeName:e,status:o,errors:v,validate:n,getErrors:i,isValid:f,isDirty:u}}import{ref as W,computed as b,watch as ae,onMounted as ue,onUnmounted as le}from"vue";function ce(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function me(e){let t=l(),o=W(0),r=b(()=>e[o.value]??""),n=W(t.getStepStatus(r.value)),i;ae(r,m=>{n.value=t.getStepStatus(m)});let f=()=>{let m=r.value,d=t.getStepStatus(m);(d.hasErrors!==n.value.hasErrors||d.isDirty!==n.value.isDirty||!ce(d.errors,n.value.errors))&&(n.value=d)};ue(()=>{i=t.subscribe(f)}),le(()=>{i?.()});let u=async()=>{let m=r.value,d=await t.validate({scope:m}),h=t.getStepErrors(m);return{valid:d,errors:h}},v=()=>t.getStepErrors(r.value),s=async()=>{let m=r.value,d=t.getScopeFields(m);if(t.hasValidationsInProgress(d))return!1;let h=await t.validate({scope:m});if(h)o.value=Math.min(o.value+1,e.length-1);else{let p=t.getStepErrors(m),k=Object.keys(p);k.length>0&&t.markFieldsTouched(k)}return h},a=()=>{o.value=Math.max(o.value-1,0)},c=m=>{o.value=Math.max(0,Math.min(m-1,e.length-1))},g=b(()=>o.value+1),I=b(()=>o.value===0),w=b(()=>o.value>=e.length-1),S=b(()=>!n.value.hasErrors),B=b(()=>n.value.isDirty),F=b(()=>n.value.errors);return{step:g,stepIndex:o,scope:r,next:s,prev:a,goTo:c,isFirst:I,isLast:w,status:n,errors:F,isValid:S,isDirty:B,validate:u,getErrors:v}}import{ref as de,onUnmounted as ve,readonly as pe}from"vue";function fe(e){let t=l(),o=V(t.getState().values,e),r=de(o),n=t.watch(e,i=>{A(r.value,i)||(r.value=i)});return ve(n),pe(r)}import{computed as _}from"vue";function ye(e,t,o){let r=l(),n=T(e),i=null,f=async v=>{if(v){r.beginFieldValidation(e),await r.clearFieldAsyncError(e);try{let s=await t(v);n.setValue(s.url),i=s.key,await r.clearFieldAsyncError(e)}catch(s){let a=s instanceof Error?s.message:"Upload failed";await r.setFieldAsyncError(e,a)}finally{r.endFieldValidation(e)}}},u=async()=>{if(i&&o)try{await o(i)}catch(v){let s=v instanceof Error?v.message:"Delete failed";await r.setFieldAsyncError(e,s);return}n.setValue(null),i=null,await r.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:_(()=>n.meta.error.value),isValidating:_(()=>n.meta.isValidating.value||!1),upload:f,remove:u}}import{ref as U,readonly as D}from"vue";function ge(){let e=l(),t=U(!1),o=U(!1),r=U(null);return{restore:async()=>{o.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{o.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:D(t),isRestoring:D(o),error:D(r)}}}export{$ as provideBitStore,Z as useBitArray,T as useBitField,G as useBitForm,te as useBitHistory,ge as useBitPersist,ie as useBitScope,me as useBitSteps,l as useBitStore,ye as useBitUpload,fe as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitFrameworkStore } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitFrameworkStore<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitFrameworkStore<T>) {\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 BitFrameworkStore<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 const getDirtyValues = () => store.getDirtyValues();\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 onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\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 submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit: (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\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 // 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 };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue } from \"../core\";\nimport type { UseBitFieldVueMeta, UseBitFieldVueResult } from \"./types\";\n\nexport function useBitField<TValue = any>(\n path: string,\n): UseBitFieldVueResult<TValue> {\n const store = useBitStore<any>();\n\n const resolvedMask = store.resolveMask(path as string);\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","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(store.getHistoryMetadata());\n\n const unsubscribe = store.subscribe(() => {\n meta.value = store.getHistoryMetadata();\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = store.subscribe(() => {\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n });\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: () => void;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribe(updateStatus);\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n step,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors,\n isValid,\n isDirty,\n validate,\n getErrors,\n };\n}\n","import { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.watch(path, (newValue) => {\n if (!deepEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n\n const upload = async (file: File | null | undefined) => {\n if (!file) return;\n\n store.beginFieldValidation(fieldPath);\n await store.clearFieldAsyncError(fieldPath);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKey = result.key;\n await store.clearFieldAsyncError(fieldPath);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Upload failed\";\n await store.setFieldAsyncError(fieldPath, message);\n } finally {\n store.endFieldValidation(fieldPath);\n }\n };\n\n const remove = async () => {\n if (uploadKey && deleteFile) {\n try {\n await deleteFile(uploadKey);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Delete failed\";\n await store.setFieldAsyncError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKey = null;\n await store.clearFieldAsyncError(fieldPath);\n };\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(() => field.meta.isValidating.value || false),\n upload,\n remove,\n };\n}\n"],"mappings":"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","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","useBitStore","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","onUnmounted","getValues","getErrors","getTouched","getDirtyValues","isValid","computed","isSubmitting","isDirty","onSuccess","e","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","resolvedMask","state","shallowRef","unsubscribe","onUnmounted","rawValue","computed","getDeepValue","displayValue","val","modelValue","rawError","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","ref","computed","onUnmounted","generateId","useBitArray","path","store","useBitStore","getSnapshot","val","getDeepValue","initialValues","values","ref","ids","unsubscribe","newValues","currentIds","diff","newIds","onUnmounted","fields","computed","v","i","length","index","from","to","id","a","b","items","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","unsubscribe","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitScope","scopeName","store","useBitStore","status","ref","unsubscribe","onMounted","newStatus","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","onMounted","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","deepEqual","onUnmounted","readonly","computed","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","upload","file","result","error","message","remove","computed"]}
1
+ {"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts","../../src/vue/use-bit-persist.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitFrameworkStore } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitFrameworkStore<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitFrameworkStore<T>) {\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 BitFrameworkStore<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 const getDirtyValues = () => store.getDirtyValues();\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 onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\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 submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit: (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\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 // 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 };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue } from \"../core\";\nimport type { UseBitFieldVueMeta, UseBitFieldVueResult } from \"./types\";\n\nexport function useBitField<TValue = any>(\n path: string,\n): UseBitFieldVueResult<TValue> {\n const store = useBitStore<any>();\n\n const resolvedMask = store.resolveMask(path as string);\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","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(store.getHistoryMetadata());\n\n const unsubscribe = store.subscribe(() => {\n meta.value = store.getHistoryMetadata();\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = store.subscribe(() => {\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n });\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: () => void;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribe(updateStatus);\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n step,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors,\n isValid,\n isDirty,\n validate,\n getErrors,\n };\n}\n","import { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.watch(path, (newValue) => {\n if (!deepEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n\n const upload = async (file: File | null | undefined) => {\n if (!file) return;\n\n store.beginFieldValidation(fieldPath);\n await store.clearFieldAsyncError(fieldPath);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKey = result.key;\n await store.clearFieldAsyncError(fieldPath);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Upload failed\";\n await store.setFieldAsyncError(fieldPath, message);\n } finally {\n store.endFieldValidation(fieldPath);\n }\n };\n\n const remove = async () => {\n if (uploadKey && deleteFile) {\n try {\n await deleteFile(uploadKey);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Delete failed\";\n await store.setFieldAsyncError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKey = null;\n await store.clearFieldAsyncError(fieldPath);\n };\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(() => field.meta.isValidating.value || false),\n upload,\n remove,\n };\n}\n","import { ref, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist<T extends object = any>(): UseBitPersistResult {\n const store = useBitStore<T>();\n const isSaving = ref(false);\n const isRestoring = ref(false);\n const error = ref<Error | null>(null);\n\n const restore = async (): Promise<boolean> => {\n isRestoring.value = true;\n error.value = null;\n\n try {\n return await store.restorePersisted();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n return false;\n } finally {\n isRestoring.value = false;\n }\n };\n\n const save = async (): Promise<void> => {\n isSaving.value = true;\n error.value = null;\n\n try {\n await store.forceSave();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n } finally {\n isSaving.value = false;\n }\n };\n\n const clear = async (): Promise<void> => {\n error.value = null;\n\n try {\n await store.clearPersisted();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n }\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: readonly(isSaving),\n isRestoring: readonly(isRestoring),\n error: readonly(error),\n },\n };\n}\n"],"mappings":"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","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","useBitStore","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","onUnmounted","getValues","getErrors","getTouched","getDirtyValues","isValid","computed","isSubmitting","isDirty","onSuccess","e","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","resolvedMask","state","shallowRef","unsubscribe","onUnmounted","rawValue","computed","getDeepValue","displayValue","val","modelValue","rawError","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","ref","computed","onUnmounted","generateId","useBitArray","path","store","useBitStore","getSnapshot","val","getDeepValue","initialValues","values","ref","ids","unsubscribe","newValues","currentIds","diff","newIds","onUnmounted","fields","computed","v","i","length","index","from","to","id","a","b","items","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","unsubscribe","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitScope","scopeName","store","useBitStore","status","ref","unsubscribe","onMounted","newStatus","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","onMounted","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","deepEqual","onUnmounted","readonly","computed","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","upload","file","result","error","message","remove","computed","ref","readonly","useBitPersist","store","useBitStore","isSaving","ref","isRestoring","error","err","readonly"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lehnihon/bit-form",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Gerenciamento de estado de formulários agnóstico e performático",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,133 +0,0 @@
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 _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7;var L=typeof globalThis<"u"?globalThis:typeof global<"u"?global:window;L.__BIT_FORM__||(L.__BIT_FORM__={stores:{},listeners:new Set,dispatch(n,t){this.listeners.forEach(e=>e(n,t))},subscribe(n){return this.listeners.add(n),()=>{this.listeners.delete(n)}}});var m=L.__BIT_FORM__;function f(n){if(n===null||typeof n!="object")return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n.source,n.flags);if(Array.isArray(n))return n.map(e=>f(e));let t={};for(let e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=f(n[e]));return t}function T(n,t){return n===t?!0:n===null||typeof n!="object"||t===null||typeof t!="object"?!1:x(n,t)}function x(n,t){if(n===t)return!0;if(n===null||typeof n!="object"||t===null||typeof t!="object")return!1;if(n instanceof Date&&t instanceof Date)return n.getTime()===t.getTime();if(n instanceof RegExp&&t instanceof RegExp)return n.toString()===t.toString();let e=Object.keys(n),s=Object.keys(t);if(e.length!==s.length)return!1;for(let r of e)if(!Object.prototype.hasOwnProperty.call(t,r)||!x(n[r],t[r]))return!1;return!0}function q(n,t,e="",s=new Set){if(T(n,t))return s;if(n===null||typeof n!="object"||t===null||typeof t!="object")return e&&s.add(e),s;if(Array.isArray(n)||Array.isArray(t))return!T(n,t)&&e&&s.add(e),s;let r=new Set([...Object.keys(n||{}),...Object.keys(t||{})]);for(let i of r){let o=e?`${e}.${i}`:i;q(_optionalChain([n, 'optionalAccess', _2 => _2[i]]),_optionalChain([t, 'optionalAccess', _3 => _3[i]]),o,s)}return s}var k=new Map;function u(n,t){if(!t)return n;let e=k.get(t)||t.split(".");k.has(t)||k.set(t,e);let s=n;for(let r of e){if(s==null)return;s=s[r]}return s}function y(n,t,e){if(!t)return e;let s=k.get(t)||t.split(".");k.has(t)||k.set(t,s);let r=Array.isArray(n)?[...n]:{...n},i=r;for(let o=0;o<s.length-1;o++){let l=s[o],a=s[o+1],d=/^\d+$/.test(a),c=i[l];c==null?i[l]=d?[]:{}:i[l]=Array.isArray(c)?[...c]:{...c},i=i[l]}return i[s[s.length-1]]=e,r}function Pt(n,t){let e={},s=`${t}.`;for(let r in n)r!==t&&!r.startsWith(s)&&(e[r]=n[r]);return e}var j=(n,t,e)=>{let s={},r=`${t}.`;return Object.keys(n).forEach(i=>{if(!i.startsWith(r)){s[i]=n[i];return}let l=i.substring(r.length).split("."),a=parseInt(l[0],10),d=l.slice(1).join(".");if(a!==e)if(a>e){let c=a-1,p=d?`${r}${c}.${d}`:`${r}${c}`;s[p]=n[i]}else s[i]=n[i]}),s},_=(n,t,e,s)=>{let r={},i=`${t}.`;return Object.keys(n).forEach(o=>{if(!o.startsWith(i)){r[o]=n[o];return}let a=o.substring(i.length).split("."),d=parseInt(a[0],10),c=a.slice(1).join(".");if(d===e){let p=c?`${i}${s}.${c}`:`${i}${s}`;r[p]=n[o]}else if(d===s){let p=c?`${i}${e}.${c}`:`${i}${e}`;r[p]=n[o]}else r[o]=n[o]}),r},X=(n,t,e,s)=>{let r={},i=`${t}.`;return Object.keys(n).forEach(o=>{if(!o.startsWith(i)){r[o]=n[o];return}let a=o.substring(i.length).split("."),d=parseInt(a[0],10),c=a.slice(1).join("."),p=d;d===e?p=s:e<s&&d>e&&d<=s?p=d-1:e>s&&d>=s&&d<e&&(p=d+1);let h=c?`${i}${p}.${c}`:`${i}${p}`;r[h]=n[o]}),r};function bt(n){if(typeof n!="object"||n===null||Array.isArray(n))return!1;let t=_nullishCoalesce(n.errors, () => (n));return typeof t!="object"||t===null||Array.isArray(t)?!1:Object.values(t).every(e=>typeof e=="string"||Array.isArray(e)&&e.every(s=>typeof s=="string"))}function Vt(n){return bt(n)?_nullishCoalesce(n.errors, () => (n)):{}}var vt={"#":/\d/,A:/[a-zA-Z]/,X:/[a-zA-Z0-9]/,H:/[0-9a-fA-F]/,U:/[A-Z]/,L:/[a-z]/,"*":/./},M= exports.j =(n,t)=>{if(n==null||n==="")return"";let e=String(n),s=e.startsWith("-"),r=t?t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"):"",i=new RegExp(`[^a-zA-Z0-9${r}]`,"g"),o=e.replace(i,"");return s&&o&&!o.startsWith("-")?`-${o}`:o},Tt= exports.k =(n,t=2)=>{if(typeof n=="number")return n;if(!n)return 0;let e=String(n),s=e.includes("-"),r=e.replace(/\D/g,"");if(!r)return 0;let i=parseInt(r,10)/Math.pow(10,t);return s?-i:i},g= exports.l =(n,t)=>{let e=s=>s.split("").filter(r=>vt[r]).length;return{format:s=>{let r=M(s,_optionalChain([t, 'optionalAccess', _4 => _4.allowChars]));if(!r&&!_optionalChain([t, 'optionalAccess', _5 => _5.guide]))return"";let o=[...Array.isArray(n)?n:[n]].sort((h,v)=>e(h)-e(v)),l=o[o.length-1];for(let h of o)if(r.length<=e(h)){l=h;break}let a="",d=0,c=_optionalChain([t, 'optionalAccess', _6 => _6.guide])||!1,p=_optionalChain([t, 'optionalAccess', _7 => _7.placeholderChar])||"_";for(let h=0;h<l.length;h++){let v=l[h],E=vt[v];if(d<r.length){let S=r[d];if(E)if(v==="U"&&(S=S.toUpperCase()),v==="L"&&(S=S.toLowerCase()),E.test(S))a+=S,d++;else if(c)a+=p;else break;else a+=v,S===v&&d++}else if(c)a+=E?p:v;else break}return a},parse:s=>{if(_optionalChain([t, 'optionalAccess', _8 => _8.customParse]))return t.customParse(s);let i=g(n,t).format(s);if(_optionalChain([t, 'optionalAccess', _9 => _9.saveRaw])){if(_optionalChain([t, 'optionalAccess', _10 => _10.guide])){let l=(t.placeholderChar||"_").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),a=new RegExp(l,"g");return i.replace(a,"")}return i}return M(i,_optionalChain([t, 'optionalAccess', _11 => _11.allowChars]))}}},b= exports.m =({prefix:n="",suffix:t="",thousand:e,decimal:s,precision:r=2,allowNegative:i=!0,saveRaw:o=!1})=>{let l=a=>{if(a==null||a==="")return"";let d="";if(typeof a=="number"?d=Math.abs(a).toFixed(r).replace(/\D/g,""):d=String(a).replace(/\D/g,""),!d&&String(a).includes("-")&&i)return"-";if(!d)return"";d=d.padStart(r+1,"0");let c=d.slice(0,-r).replace(/^0+(?=\d)/,"")||"0",p=d.slice(-r),h=c.replace(/\B(?=(\d{3})+(?!\d))/g,e);return`${(typeof a=="number"?a<0:String(a).includes("-"))&&i?"-":""}${n}${h}${s}${p}${t}`};return{format:l,parse:a=>{let d=Tt(a,r),c=i?d:Math.abs(d);return o?l(c):c}}},z= exports.n =n=>{let t=e=>/^3[47]/.test(e)?"#### ###### #####":/^3(?:0[0-5]|[68])/.test(e)?"#### ###### ####":"#### #### #### ####";return{format:e=>{let s=M(e,_optionalChain([n, 'optionalAccess', _12 => _12.allowChars])),r=t(s);return g(r,n).format(e)},parse:e=>{let s=M(e,_optionalChain([n, 'optionalAccess', _13 => _13.allowChars])),r=t(s);return g(r,n).parse(e)}}},P= exports.o =n=>{let e=(_optionalChain([n, 'optionalAccess', _14 => _14.format])||"DD/MM/YYYY")==="YYYY-MM-DD",s=g(e?"####-##-##":"##/##/####",n);return{format:r=>{let i=M(r);if(!i)return"";let o="",l="",a="";if(e?(a=i.substring(0,4),l=i.substring(4,6),o=i.substring(6,8)):(o=i.substring(0,2),l=i.substring(2,4),a=i.substring(4,8)),o.length===2){let c=parseInt(o,10);c>31&&(o="31"),c===0&&(o="01")}if(l.length===2){let c=parseInt(l,10);c>12&&(l="12"),c===0&&(l="01")}let d=e?`${a}${l}${o}`:`${o}${l}${a}`;return s.format(d)},parse:r=>s.parse(r)}};var W=b({prefix:"R$ ",thousand:".",decimal:",",precision:2}),Y= exports.q =b({prefix:"$",thousand:",",decimal:".",precision:2}),J= exports.r =b({suffix:" \u20AC",thousand:".",decimal:",",precision:2}),K= exports.s =b({prefix:"\xA3",thousand:",",decimal:".",precision:2}),G= exports.t =b({prefix:"\xA5",thousand:",",decimal:".",precision:0}),Z= exports.u =b({suffix:"%",thousand:".",decimal:",",precision:1}),Q= exports.v =b({thousand:".",decimal:",",precision:2}),tt= exports.w =b({thousand:".",decimal:",",precision:0}),et= exports.x =g("###.###.###-##"),st= exports.y =g("##.###.###/####-##"),rt= exports.z =g(["(##) ####-####","(##) #####-####"]),it= exports.A =g("(##) ####-####"),nt= exports.B =g("#####-###"),ot= exports.C =P({format:"DD/MM/YYYY",guide:!0,customParse:n=>{let t=n.replace(/_/g,""),e=t.split("/");return e.length===3&&e[2].length===4?`${e[2]}-${e[1]}-${e[0]}`:t.replace(/\D/g,"")}}),at= exports.D =g("##:##"),lt= exports.E =g("###########"),dt= exports.F =g("##.###.###-X"),Ct= exports.G =g("(###) ###-####"),Dt= exports.H =g("#####-####"),wt= exports.I =g("##/##/####"),It= exports.J =g("###-##-####"),ct= exports.K =z(),ut= exports.L =g("####"),Rt= exports.M =P({format:"YYYY-MM-DD",saveRaw:!0,guide:!0}),gt= exports.N =g("HH:HH:HH:HH:HH:HH"),pt= exports.O =g("#HHHHHH"),ft= exports.P =g("###.###.###.###"),ht= exports.Q =g("HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH:HHHH"),Ft= exports.R =g("UU## XXXX XXXX XXXX XXXX XXXX XXXX XXXX XX",{allowChars:" "});var mt={brl:W,usd:Y,eur:J,gbp:K,jpy:G,cpf:et,cnpj:st,rg:dt,cep:nt,cnh:lt,phone:rt,landline:it,date:ot,time:at,ip:ft,ipv6:ht,mac:gt,color:pt,cc:ct,cvv:ut,percent:Z,decimal:Q,int:tt};function xt(n={}){let t=_nullishCoalesce(n.initialValues, () => ({})),e=n.validation,s=n.history;return{name:n.name,initialValues:f(t),resolver:_optionalChain([e, 'optionalAccess', _15 => _15.resolver]),validationDelay:_nullishCoalesce(_optionalChain([e, 'optionalAccess', _16 => _16.delay]), () => (300)),enableHistory:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _17 => _17.enabled]), () => (!1)),historyLimit:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _18 => _18.limit]), () => (15)),masks:{...mt},fields:n.fields,devTools:n.devTools}}var V= (_class =class{constructor() { _class.prototype.__init.call(this);_class.prototype.__init2.call(this);_class.prototype.__init3.call(this); }__init() {this.fieldConfigs=new Map}__init2() {this.dependencies=new Map}__init3() {this.hiddenFields=new Set}register(t,e,s){this.fieldConfigs.set(t,e);let r=_optionalChain([e, 'access', _19 => _19.conditional, 'optionalAccess', _20 => _20.dependsOn]);r&&r.forEach(i=>{this.dependencies.has(i)||this.dependencies.set(i,new Set),this.dependencies.get(i).add(t)}),this.evaluateFieldCondition(t,s)}isHidden(t){return this.hiddenFields.has(t)}isRequired(t,e){let s=this.fieldConfigs.get(t);return!s||this.isHidden(t)?!1:!!_optionalChain([s, 'access', _21 => _21.conditional, 'optionalAccess', _22 => _22.requiredIf, 'optionalCall', _23 => _23(e)])}getRequiredErrors(t){let e={};return this.fieldConfigs.forEach((s,r)=>{if(this.isRequired(r,t)){let i=u(t,r);this.isEmpty(i)&&(e[r]=_nullishCoalesce(_optionalChain([s, 'access', _24 => _24.conditional, 'optionalAccess', _25 => _25.requiredMessage]), () => ("required field")))}}),e}evaluateAll(t){this.fieldConfigs.forEach((e,s)=>{this.evaluateFieldCondition(s,t)})}updateDependencies(t,e){let s=[],r=this.dependencies.get(t);return r&&r.forEach(i=>{let o=this.isHidden(i);this.evaluateFieldCondition(i,e);let l=this.isHidden(i);o!==l&&s.push(i)}),s}unregister(t){this.fieldConfigs.delete(t),this.hiddenFields.delete(t),this.dependencies.delete(t),this.dependencies.forEach(e=>{e.delete(t)})}unregisterPrefix(t){let e=[];this.fieldConfigs.forEach((s,r)=>{r.startsWith(t)&&e.push(r)}),e.forEach(s=>this.unregister(s))}evaluateFieldCondition(t,e){let r=_optionalChain([this, 'access', _26 => _26.fieldConfigs, 'access', _27 => _27.get, 'call', _28 => _28(t), 'optionalAccess', _29 => _29.conditional, 'optionalAccess', _30 => _30.showIf]);r&&(r(e)?this.hiddenFields.delete(t):this.hiddenFields.add(t))}isEmpty(t){return t==null||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0}}, _class);var C= (_class2 =class{constructor(t,e=15){;_class2.prototype.__init4.call(this);_class2.prototype.__init5.call(this);this.enableHistory=t;this.maxHistory=e}__init4() {this.history=[]}__init5() {this.historyIndex=-1}saveSnapshot(t){if(!this.enableHistory)return;let e=this.history[this.historyIndex];e&&x(e,t)||(this.historyIndex<this.history.length-1&&(this.history=this.history.slice(0,this.historyIndex+1)),this.history.push(f(t)),this.history.length>this.maxHistory?this.history.shift():this.historyIndex++)}get canUndo(){return this.enableHistory?this.historyIndex>0:!1}get canRedo(){return this.enableHistory?this.historyIndex<this.history.length-1:!1}undo(){return this.canUndo?(this.historyIndex--,f(this.history[this.historyIndex])):null}redo(){return this.canRedo?(this.historyIndex++,f(this.history[this.historyIndex])):null}reset(t){this.history=[],this.historyIndex=-1,this.saveSnapshot(t)}getMetadata(){return{enabled:this.enableHistory,canUndo:this.canUndo,canRedo:this.canRedo,historyIndex:this.historyIndex,historySize:this.history.length}}}, _class2);var D=class{constructor(t){this.store=t}pushItem(t,e){let s=u(this.store.getState().values,t)||[];this.store.setField(t,[...s,e]),this.store.internalSaveSnapshot()}prependItem(t,e){let s=u(this.store.getState().values,t)||[];this.store.setField(t,[e,...s]),this.store.internalSaveSnapshot()}insertItem(t,e,s){let r=[...u(this.store.getState().values,t)||[]];r.splice(e,0,s),this.store.setField(t,r),this.store.internalSaveSnapshot()}removeItem(t,e){let s=this.store.getState(),r=u(s.values,t);if(!Array.isArray(r))return;this.store.unregisterPrefix&&this.store.unregisterPrefix(`${t}.${e}.`);let i=r.filter((a,d)=>d!==e),o=y(s.values,t,i),l=this.store.dirtyMg.updateForPath(t,o,this.store.getConfig().initialValues);this.store.internalUpdateState({values:o,errors:j(s.errors,t,e),touched:j(s.touched,t,e),isDirty:l}),this.store.internalSaveSnapshot(),this.revalidate(t)}swapItems(t,e,s){let r=this.store.getState(),i=[...u(r.values,t)||[]];[i[e],i[s]]=[i[s],i[e]];let o=y(r.values,t,i),l=this.store.dirtyMg.updateForPath(t,o,this.store.getConfig().initialValues);this.store.internalUpdateState({values:o,errors:_(r.errors,t,e,s),touched:_(r.touched,t,e,s),isDirty:l}),this.store.internalSaveSnapshot(),this.revalidate(t)}moveItem(t,e,s){let r=this.store.getState(),i=[...u(r.values,t)||[]],[o]=i.splice(e,1);i.splice(s,0,o);let l=y(r.values,t,i),a=this.store.dirtyMg.updateForPath(t,l,this.store.getConfig().initialValues);this.store.internalUpdateState({values:l,errors:X(r.errors,t,e,s),touched:X(r.touched,t,e,s),isDirty:a}),this.store.internalSaveSnapshot(),this.revalidate(t)}revalidate(t){let e=this.store;typeof e.triggerValidation=="function"?e.triggerValidation([t]):typeof this.store.validate=="function"&&this.store.validate()}};var w=class{constructor(t){this.getComputedEntries=t}apply(t){let e=this.getComputedEntries();if(e.length===0)return t;let s=t;for(let r=0;r<2;r++){let i=!1;for(let[o,l]of e){let a=l(s),d=u(s,o);x(d,a)||(s=y(s,o,a),i=!0)}if(!i)break}return s}};var I= (_class3 =class{constructor(t){;_class3.prototype.__init6.call(this);_class3.prototype.__init7.call(this);_class3.prototype.__init8.call(this);_class3.prototype.__init9.call(this);this.store=t}__init6() {this.currentValidationId=0}__init7() {this.asyncTimers={}}__init8() {this.asyncRequests={}}__init9() {this.asyncErrors={}}updateFieldValidating(t,e){this.store.internalUpdateState({isValidating:{...this.store.getState().isValidating,[t]:e}})}cancelFieldAsync(t){this.asyncTimers[t]&&(clearTimeout(this.asyncTimers[t]),delete this.asyncTimers[t]),this.asyncRequests[t]=(this.asyncRequests[t]||0)+1}beginExternalValidation(t){this.cancelFieldAsync(t),this.updateFieldValidating(t,!0)}endExternalValidation(t){this.updateFieldValidating(t,!1)}async setExternalError(t,e){if(e){this.asyncErrors[t]=e,this.store.setError(t,e);return}if(delete this.asyncErrors[t],this.store.validate){await this.store.validate({scopeFields:[t]});return}let s={...this.store.getState().errors};delete s[t],this.store.internalUpdateState({errors:s,isValid:Object.keys(s).length===0})}handleAsync(t,e){let s=this.store.getFieldConfig(t),r=_optionalChain([s, 'optionalAccess', _31 => _31.validation, 'optionalAccess', _32 => _32.asyncValidate]);if(!r){this.updateFieldValidating(t,!1);return}this.asyncTimers[t]&&clearTimeout(this.asyncTimers[t]);let i=_nullishCoalesce(_optionalChain([s, 'access', _33 => _33.validation, 'optionalAccess', _34 => _34.asyncValidateDelay]), () => (500));this.updateFieldValidating(t,!0),this.asyncTimers[t]=setTimeout(async()=>{delete this.asyncTimers[t];let o=(this.asyncRequests[t]||0)+1;this.asyncRequests[t]=o;try{let l=await r(e,this.store.getState().values);if(this.asyncRequests[t]!==o)return;if(l)this.asyncErrors[t]=l,this.store.setError(t,l);else if(delete this.asyncErrors[t],this.store.validate)await this.store.validate({scopeFields:[t]});else{let a={...this.store.getState().errors};delete a[t],this.store.internalUpdateState({errors:a,isValid:Object.keys(a).length===0})}}finally{this.asyncRequests[t]===o&&this.updateFieldValidating(t,!1)}},i)}hasValidationsInProgress(t){let e=this.store.getState();return t&&t.length>0?t.some(s=>!!e.isValidating[s]):Object.values(e.isValidating).some(Boolean)}trigger(t){this.validationTimeout&&clearTimeout(this.validationTimeout);let e=_nullishCoalesce(this.store.config.validationDelay, () => (300));e>0?this.validationTimeout=setTimeout(()=>{this.validate({scopeFields:t})},e):this.validate({scopeFields:t})}async validate(t){let e=++this.currentValidationId,s=this.store.getState(),r=_optionalChain([t, 'optionalAccess', _35 => _35.scopeFields]);if(_optionalChain([t, 'optionalAccess', _36 => _36.scope])){let a=this.store.getScopeFields(t.scope);a.length>0&&(r=a)}let i=this.store.config.resolver?await this.store.config.resolver(s.values,{scopeFields:r}):{},o=this.store.depsMg.getRequiredErrors(s.values);if(i={...i,...o},this.store.depsMg.hiddenFields.forEach(a=>{delete i[a],delete this.asyncErrors[a]}),e!==this.currentValidationId)return s.isValid;if(r){let a={...s.errors};r.forEach(c=>{i[c]?a[c]=i[c]:this.asyncErrors[c]?a[c]=this.asyncErrors[c]:delete a[c]});let d=Object.keys(a).length===0;return this.store.internalUpdateState({errors:a,isValid:d}),r.every(c=>!i[c]&&!this.asyncErrors[c])}i={...this.asyncErrors,...i};let l=Object.keys(i).length===0;return this.store.internalUpdateState({errors:i,isValid:l}),l}clear(t){this.asyncTimers[t]&&clearTimeout(this.asyncTimers[t]),delete this.asyncTimers[t],this.updateFieldValidating(t,!1),delete this.asyncErrors[t]}cancelAll(){this.validationTimeout&&clearTimeout(this.validationTimeout),Object.values(this.asyncTimers).forEach(t=>clearTimeout(t)),this.asyncTimers={},this.store.internalUpdateState({isValidating:{}})}}, _class3);var R=class{constructor(t){this.store=t}updateField(t,e){let s=this.store.getState(),r=y(s.values,t,e),i={...s.errors};delete i[t],this.store.validatorMg.clear(t);let o=this.store.depsMg.updateDependencies(t,r);o.forEach(a=>{this.store.depsMg.isHidden(a)&&(delete i[a],this.store.validatorMg.clear(a))});let l=this.store.dirtyMg.updateForPath(t,r,this.store.config.initialValues);return this.store.internalUpdateState({values:r,errors:i,isValid:Object.keys(i).length===0,isDirty:l}),this.store.config.resolver&&this.store.validatorMg.trigger([t]),this.store.validatorMg.handleAsync(t,e),{visibilitiesChanged:o.length>0}}updateAll(t){let e=f(t);this.store.config.initialValues=f(e),this.store.validatorMg.cancelAll(),this.store.depsMg.evaluateAll(e),this.store.dirtyMg.clear(),this.store.internalUpdateState({values:e,errors:{},touched:{},isValidating:{},isValid:!0,isDirty:!1,isSubmitting:!1}),this.store.internalSaveSnapshot(),this.store.validatorMg.validate()}async submit(t){if(this.store.getState().isSubmitting||this.store.validatorMg.hasValidationsInProgress())return;if(this.store.validatorMg.cancelAll(),this.store.internalUpdateState({isSubmitting:!0}),await this.store.validatorMg.validate())try{let r=f(this.store.getState().values);this.store.depsMg.hiddenFields.forEach(o=>{r=y(r,o,void 0)});for(let[o,l]of this.store.getTransformEntries()){let a=u(r,o);r=y(r,o,l(a,this.store.getState().values))}let i=this.store.dirtyMg.buildDirtyValues(r);await t(r,i)}catch(r){console.error(r)}else{let r=this.store.getState().errors,i={...this.store.getState().touched};Object.keys(r).forEach(o=>{i[o]=!0}),this.store.internalUpdateState({touched:i})}this.store.internalUpdateState({isSubmitting:!1})}reset(){this.store.validatorMg.cancelAll();let t=f(this.store.config.initialValues);this.store.depsMg.evaluateAll(t),this.store.dirtyMg.clear(),this.store.internalUpdateState({values:t,errors:{},touched:{},isValidating:{},isValid:!0,isDirty:!1,isSubmitting:!1}),this.store.historyMg.reset(t)}};function St(){return`
2
- .bit-devtools-container {
3
- position: fixed;
4
- bottom: 20px;
5
- right: 20px;
6
- z-index: 9999;
7
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
8
- display: flex;
9
- flex-direction: column;
10
- align-items: flex-end;
11
- }
12
-
13
- .bit-devtools-trigger {
14
- background: #10b981;
15
- color: #fff;
16
- border: none;
17
- border-radius: 50%;
18
- width: 48px;
19
- height: 48px;
20
- cursor: pointer;
21
- box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
22
- font-weight: bold;
23
- display: flex;
24
- align-items: center;
25
- justify-content: center;
26
- transition: transform 0.2s;
27
- font-size: 16px;
28
- margin-top: 16px;
29
- }
30
- .bit-devtools-trigger:hover { transform: scale(1.05); }
31
-
32
- .bit-devtools-panel {
33
- width: 450px;
34
- max-height: 80vh;
35
- background: #0f172a;
36
- color: #f8fafc;
37
- border-radius: 8px;
38
- padding: 16px;
39
- overflow-y: auto;
40
- box-shadow: 0 20px 25px -5px rgba(0,0,0,0.5), 0 8px 10px -6px rgba(0,0,0,0.5);
41
- border: 1px solid #334155;
42
- display: flex;
43
- flex-direction: column;
44
- gap: 16px;
45
- }
46
-
47
- .bit-devtools-header {
48
- display: flex;
49
- justify-content: space-between;
50
- align-items: center;
51
- padding-bottom: 12px;
52
- border-bottom: 1px solid #1e293b;
53
- }
54
- .bit-devtools-header h2 { margin: 0; font-size: 16px; display: flex; align-items: center; gap: 8px; }
55
-
56
- .bit-store-block {
57
- background: #1e293b;
58
- border-radius: 6px;
59
- padding: 12px;
60
- border: 1px solid #334155;
61
- }
62
-
63
- .bit-store-header {
64
- display: flex;
65
- justify-content: space-between;
66
- align-items: center;
67
- margin-bottom: 12px;
68
- }
69
- .bit-store-title { margin: 0; color: #38bdf8; font-size: 14px; font-weight: bold; }
70
-
71
- .bit-badge-group { display: flex; gap: 6px; flex-wrap: wrap; }
72
- .bit-badge { font-size: 10px; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; font-weight: bold; }
73
- .badge-success { background: rgba(16, 185, 129, 0.2); color: #34d399; border: 1px solid rgba(16, 185, 129, 0.2); }
74
- .badge-error { background: rgba(239, 68, 68, 0.2); color: #f87171; border: 1px solid rgba(239, 68, 68, 0.2); }
75
- .badge-warn { background: rgba(245, 158, 11, 0.2); color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.2); }
76
- .badge-info { background: rgba(56, 189, 248, 0.2); color: #7dd3fc; border: 1px solid rgba(56, 189, 248, 0.2); }
77
-
78
- .bit-section-title { font-size: 11px; color: #94a3b8; text-transform: uppercase; letter-spacing: 1px; margin: 12px 0 4px 0; display: block; }
79
-
80
- .bit-controls { display: flex; gap: 6px; margin-bottom: 12px; background: #0f172a; padding: 8px; border-radius: 6px; }
81
- .bit-action-btn { flex: 1; background: #334155; color: #e2e8f0; border: 1px solid #475569; padding: 6px 0; border-radius: 4px; cursor: pointer; font-size: 11px; display: flex; align-items: center; justify-content: center; gap: 4px; transition: all 0.2s; }
82
- .bit-action-btn:hover:not(:disabled) { background: #475569; }
83
- .bit-action-btn:disabled { opacity: 0.5; cursor: not-allowed; }
84
- .bit-btn-reset { color: #fca5a5; border-color: rgba(239,68,68,0.3); }
85
- .bit-btn-reset:hover { background: rgba(239,68,68,0.1) !important; }
86
-
87
- pre.bit-pre { background: #020617; padding: 10px; border-radius: 4px; font-size: 11px; overflow-x: auto; border: 1px solid #1e293b; margin: 0; color: #e2e8f0; }
88
- pre.bit-error-box { background: rgba(239, 68, 68, 0.05); padding: 10px; border-radius: 4px; font-size: 11px; border: 1px dashed #ef4444; color: #fca5a5; margin: 0; overflow-x: auto; }
89
- `}var B= (_class4 =class{__init10() {this.currentStoresState={}}__init11() {this.isOpen=!1}constructor(t,e){;_class4.prototype.__init10.call(this);_class4.prototype.__init11.call(this);if(this.container=t,this.actions=e,!document.getElementById("bit-devtools-styles")){let s=document.createElement("style");s.id="bit-devtools-styles",s.textContent=St(),document.head.appendChild(s)}this.rootElement=document.createElement("div"),this.rootElement.className="bit-devtools-container",this.container.appendChild(this.rootElement),this.rootElement.addEventListener("click",s=>{let r=s.target;if(r.closest(".bit-devtools-trigger")){this.isOpen=!this.isOpen,this.render();return}let i=r.closest(".bit-action-btn");if(i&&!i.hasAttribute("disabled")){let o=i.getAttribute("data-action"),l=i.getAttribute("data-store");o&&l&&(o==="undo"&&this.actions.onUndo(l),o==="redo"&&this.actions.onRedo(l),o==="reset"&&this.actions.onReset(l))}})}updateState(t){this.currentStoresState=t,this.render()}render(){let t=Object.entries(this.currentStoresState);if(t.length===0){this.rootElement.innerHTML="";return}let e="";if(this.isOpen){e=`
90
- <div class="bit-devtools-panel">
91
- <div class="bit-devtools-header">
92
- <h2><span style="font-size: 20px;">\u{1F6E0}</span> Bit-Form DevTools</h2>
93
- <span style="font-size: 11px; color: #64748b;">v1.0.0</span>
94
- </div>
95
- `;for(let[r,i]of t){let o=Object.keys(i.errors||{}).length>0,l=i._meta||{totalSteps:0,currentIndex:-1,canUndo:!1,canRedo:!1},a=l.currentIndex+1,d=l.totalSteps;e+=`
96
- <div class="bit-store-block">
97
- <div class="bit-store-header">
98
- <h3 class="bit-store-title">${r}</h3>
99
- <div class="bit-badge-group">
100
- <span class="bit-badge ${i.isValid?"badge-success":"badge-error"}">
101
- ${i.isValid?"\u2713 Valid":"\u2715 Invalid"}
102
- </span>
103
- ${i.isDirty?'<span class="bit-badge badge-warn">Dirty</span>':""}
104
- ${i.isSubmitting?'<span class="bit-badge badge-info">\u23F3 Submitting</span>':""}
105
- </div>
106
- </div>
107
-
108
- <span class="bit-section-title">Time Travel (${a}/${d})</span>
109
-
110
- <div class="bit-controls">
111
- <button class="bit-action-btn" data-action="undo" data-store="${r}" ${l.canUndo?"":"disabled"}>
112
- <span>\u21BA</span> Undo
113
- </button>
114
- <button class="bit-action-btn" data-action="redo" data-store="${r}" ${l.canRedo?"":"disabled"}>
115
- <span>\u21BB</span> Redo
116
- </button>
117
- <button class="bit-action-btn bit-btn-reset" data-action="reset" data-store="${r}">
118
- <span>\u{1F5D1}</span> Reset
119
- </button>
120
- </div>
121
- `,o&&(e+=`
122
- <span class="bit-section-title" style="color: #f87171;">\u26A0\uFE0F Validations Failing</span>
123
- <pre class="bit-error-box">${JSON.stringify(i.errors,null,2)}</pre>
124
- `),e+=`
125
- <span class="bit-section-title">Values</span>
126
- <pre class="bit-pre">${JSON.stringify(i.values,null,2)}</pre>
127
- </div>
128
- `}e+="</div>"}let s=`
129
- <button class="bit-devtools-trigger" style="transform: ${this.isOpen?"scale(0.9)":"scale(1)"};" title="Abrir DevTools">
130
- ${this.isOpen?"\u2716":"Bit"}
131
- </button>
132
- `;this.rootElement.innerHTML=e+s}}, _class4);function kt(n){let t=new B(n,{onUndo:r=>_optionalChain([m, 'access', _37 => _37.stores, 'access', _38 => _38[r], 'optionalAccess', _39 => _39.undo, 'call', _40 => _40()]),onRedo:r=>_optionalChain([m, 'access', _41 => _41.stores, 'access', _42 => _42[r], 'optionalAccess', _43 => _43.redo, 'call', _44 => _44()]),onReset:r=>_optionalChain([m, 'access', _45 => _45.stores, 'access', _46 => _46[r], 'optionalAccess', _47 => _47.reset, 'call', _48 => _48()])}),e=()=>{let r={};for(let[i,o]of Object.entries(m.stores)){let l=o,a=l.getState(),d=_optionalChain([l, 'optionalAccess', _49 => _49.getHistoryMetadata, 'optionalCall', _50 => _50()])||{enabled:!1,canUndo:!1,canRedo:!1,historyIndex:-1,historySize:0};r[i]={...a,_meta:{canUndo:d.canUndo,canRedo:d.canRedo,totalSteps:d.historySize,currentIndex:d.historyIndex}}}return r};t.updateState(e());let s=m.subscribe(()=>{t.updateState(e())});return{ui:t,destroy:()=>{s(),n.innerHTML=""}}}function Mt(n,t="ws://localhost:3000"){let e=new WebSocket(t),s=new B(n,{onUndo:i=>r("ACTION",{storeId:i,action:"undo"}),onRedo:i=>r("ACTION",{storeId:i,action:"redo"}),onReset:i=>r("ACTION",{storeId:i,action:"reset"})}),r=(i,o)=>{e.readyState===WebSocket.OPEN?e.send(JSON.stringify({type:i,payload:o})):console.warn("[bit-form] Tentativa de envio falhou. WebSocket n\xE3o est\xE1 aberto.")};return e.addEventListener("open",()=>{console.log(`[bit-form] Conectado ao DevTools remoto em ${t}`)}),e.addEventListener("message",i=>{try{let o=JSON.parse(i.data);o.type==="STATE_UPDATE"&&s.updateState(o.payload)}catch(o){console.error("[bit-form] Erro ao processar mensagem do WebSocket:",o)}}),e.addEventListener("error",i=>{console.error("[bit-form] Erro na conex\xE3o do DevTools remoto:",i)}),s}function yt(n={}){let{mode:t="local",url:e}=n,s,r=!1;if(typeof n.container=="string"){let o=document.querySelector(n.container);if(!o)throw new Error(`[bit-form] Container '${n.container}' n\xE3o encontrado na p\xE1gina.`);s=o}else n.container instanceof HTMLElement?s=n.container:(s=document.createElement("div"),s.id="bit-form-devtools-root",s.style.position="fixed",s.style.bottom="20px",s.style.right="20px",s.style.zIndex="9999",s.style.maxHeight="80vh",s.style.overflowY="auto",s.style.boxShadow="0 10px 25px rgba(0,0,0,0.1)",document.body.appendChild(s),r=!0);let i;if(t==="local")console.log("[bit-form] DevTools iniciado em modo Local."),i=kt(s);else if(t==="remote")console.log("[bit-form] DevTools iniciado em modo Remote."),i=Mt(s,e);else throw new Error(`[bit-form] Modo DevTools inv\xE1lido: ${t}`);return{...i,destroy:()=>{i&&typeof i.destroy=="function"&&i.destroy(),r&&s.parentNode?s.parentNode.removeChild(s):s.innerHTML=""}}}var F= (_class5 =class{__init12() {this.cleanupFn=null}constructor(t){;_class5.prototype.__init12.call(this);this.store=t,this.setup()}setup(){let t=this.store.config.devTools;if(!t)return;let e=typeof t=="boolean"?{enabled:t,mode:"local"}:{enabled:!0,...t};if(e.enabled)if(e.mode==="remote"){let s=e.url||"ws://localhost:3000";this.cleanupFn=Bt(s)}else{let s=yt();s&&typeof s.destroy=="function"&&(this.cleanupFn=s.destroy)}}destroy(){this.cleanupFn&&this.cleanupFn()}}, _class5);var H= (_class6 =class{constructor() { _class6.prototype.__init13.call(this); }__init13() {this.dirtyPaths=new Set}updateForPath(t,e,s){for(let o of this.dirtyPaths)o.startsWith(t+".")&&this.dirtyPaths.delete(o);let r=u(e,t),i=u(s,t);return T(r,i)?this.dirtyPaths.delete(t):this.dirtyPaths.add(t),this.dirtyPaths.size>0}rebuild(t,e){return this.dirtyPaths=q(t,e),this.dirtyPaths.size>0}clear(){this.dirtyPaths.clear()}get isDirty(){return this.dirtyPaths.size>0}getDirtyPaths(){return this.dirtyPaths}buildDirtyValues(t){if(this.dirtyPaths.size===0)return{};let e={},s=new Set;for(let r of this.dirtyPaths){let i=r.match(/^(.+)\.(\d+)/);if(i){let o=i[1];if(s.has(o))continue;s.add(o),this.setNestedValue(e,o,this.getNestedValue(t,o))}else this.setNestedValue(e,r,this.getNestedValue(t,r))}return e}getNestedValue(t,e){let s=e.split("."),r=t;for(let i of s){if(r==null)return;r=r[i]}return r}setNestedValue(t,e,s){let r=e.split("."),i=t;for(let o=0;o<r.length-1;o++){let l=r[o];l in i||(i[l]={}),i=i[l]}i[r[r.length-1]]=s}}, _class6);var A=class{constructor(t,e,s){this.getState=t;this.getInitialValues=e;this.getScopeFields=s}getStepStatus(t){let e=this.getScopeFields(t),s=this.getState(),r=e.some(l=>!!s.errors[l]),i=e.some(l=>{let a=u(s.values,l),d=u(this.getInitialValues(),l);return!T(a,d)}),o=this.getStepErrors(t);return{hasErrors:r,isDirty:i,errors:o}}getStepErrors(t){let e=this.getScopeFields(t),s=this.getState(),r={};for(let i of e){let o=s.errors[i];o&&(r[i]=o)}return r}};var O=class{constructor(t,e,s){this.depsMg=t;this.getState=e;this.getConfig=s}isHidden(t){return this.depsMg.isHidden(t)}isRequired(t){return this.depsMg.isRequired(t,this.getState().values)}isFieldDirty(t){let e=u(this.getState().values,t),s=u(this.getConfig().initialValues,t);return!T(e,s)}isFieldValidating(t){return!!this.getState().isValidating[t]}};var $=class{constructor(t,e){this.getState=t;this.internalUpdateState=e}setError(t,e){let s={...this.getState().errors,[t]:e};e||delete s[t],this.internalUpdateState({errors:s})}setErrors(t){this.internalUpdateState({errors:{...this.getState().errors,...t}})}setServerErrors(t){let e={};for(let[s,r]of Object.entries(t))e[s]=Array.isArray(r)?r[0]:r;this.setErrors(e)}};var U= (_class7 =class{__init14() {this.listeners=new Set}constructor(t={}){;_class7.prototype.__init14.call(this);this.config=xt(t),this.depsMg=new V,this.computedMg=new w(()=>this.getComputedEntries()),this.validatorMg=new I(this),this.dirtyMg=new H,this.lifecycleMg=new R(this),this.historyMg=new C(!!this.config.enableHistory,_nullishCoalesce(this.config.historyLimit, () => (15))),this.arraysMg=new D(this),this.devtoolsMg=new F(this),this.scopeMg=new A(()=>this.state,()=>this.config.initialValues,r=>this.getScopeFields(r)),this.queryMg=new O(this.depsMg,()=>this.state,()=>this.config),this.errorMg=new $(()=>this.state,r=>this.internalUpdateState(r));let e=f(this.config.initialValues);this.config.fields&&Object.entries(this.config.fields).forEach(([r,i])=>{this.depsMg.register(r,i,e)});let s=this.computedMg.apply(e);this.state={values:s,errors:{},touched:{},isValidating:{},isValid:!0,isSubmitting:!1,isDirty:!1},this.internalSaveSnapshot(),this.storeId=this.config.name||`bit-form-${Math.random().toString(36).substring(2,9)}`,m.stores[this.storeId]=this}getConfig(){return this.config}getFieldConfig(t){return this.depsMg.fieldConfigs.get(t)||_optionalChain([this, 'access', _51 => _51.config, 'access', _52 => _52.fields, 'optionalAccess', _53 => _53[t]])}getScopeFields(t){let e=[];return this.depsMg.fieldConfigs.forEach((s,r)=>{s.scope===t&&e.push(r)}),e}getComputedEntries(){let t=[];return this.depsMg.fieldConfigs.forEach((e,s)=>{e.computed&&t.push([s,e.computed])}),t}getTransformEntries(){let t=[];return this.depsMg.fieldConfigs.forEach((e,s)=>{e.transform&&t.push([s,e.transform])}),t}resolveMask(t){let e=_optionalChain([this, 'access', _54 => _54.getFieldConfig, 'call', _55 => _55(t), 'optionalAccess', _56 => _56.mask]);if(e)return typeof e=="string"?_optionalChain([this, 'access', _57 => _57.config, 'access', _58 => _58.masks, 'optionalAccess', _59 => _59[e]]):e}getState(){return this.state}get isValid(){return this.state.isValid}get isSubmitting(){return this.state.isSubmitting}get isDirty(){return this.state.isDirty}registerField(t,e){this.depsMg.register(t,e,this.state.values),this.depsMg.isHidden(t)&&this.notify()}unregisterField(t){if(_optionalChain([this, 'access', _60 => _60.config, 'access', _61 => _61.fields, 'optionalAccess', _62 => _62[t]]))return;this.depsMg.unregister(t);let e={...this.state.errors},s={...this.state.touched},r=!1;e[t]&&(delete e[t],r=!0),s[t]&&(delete s[t],r=!0),r&&this.internalUpdateState({errors:e,touched:s})}unregisterPrefix(t){this.depsMg.unregisterPrefix(t)}isHidden(t){return this.queryMg.isHidden(t)}isRequired(t){return this.queryMg.isRequired(t)}isFieldDirty(t){return this.queryMg.isFieldDirty(t)}isFieldValidating(t){return this.queryMg.isFieldValidating(t)}subscribe(t){return this.listeners.add(t),()=>this.listeners.delete(t)}watch(t,e){let s=f(u(this.state.values,t));return this.subscribe(()=>{let r=u(this.state.values,t);x(r,s)||(s=f(r),e(r))})}setField(t,e){let{visibilitiesChanged:s}=this.lifecycleMg.updateField(t,e);(!this.config.resolver||s)&&this.notify()}blurField(t){this.internalSaveSnapshot(),this.state.touched[t]||this.internalUpdateState({touched:{...this.state.touched,[t]:!0}}),this.validatorMg.trigger([t])}markFieldsTouched(t){if(t.length===0)return;let e={...this.state.touched};t.forEach(s=>e[s]=!0),this.internalUpdateState({touched:e})}setValues(t){this.lifecycleMg.updateAll(t)}setError(t,e){this.errorMg.setError(t,e)}setErrors(t){this.errorMg.setErrors(t)}setServerErrors(t){this.errorMg.setServerErrors(t)}reset(){this.lifecycleMg.reset()}async submit(t){return this.lifecycleMg.submit(t)}registerMask(t,e){this.config.masks={...this.config.masks||{},[t]:e}}getDirtyValues(){return this.dirtyMg.buildDirtyValues(this.state.values)}pushItem(t,e){this.arraysMg.pushItem(t,e)}prependItem(t,e){this.arraysMg.prependItem(t,e)}insertItem(t,e,s){this.arraysMg.insertItem(t,e,s)}removeItem(t,e){this.arraysMg.removeItem(t,e)}swapItems(t,e,s){this.arraysMg.swapItems(t,e,s)}moveItem(t,e,s){this.arraysMg.moveItem(t,e,s)}get canUndo(){return this.historyMg.canUndo}get canRedo(){return this.historyMg.canRedo}undo(){let t=this.historyMg.undo();if(t){let e=this.dirtyMg.rebuild(t,this.config.initialValues);this.internalUpdateState({values:t,isDirty:e}),this.validatorMg.validate()}}redo(){let t=this.historyMg.redo();if(t){let e=this.dirtyMg.rebuild(t,this.config.initialValues);this.internalUpdateState({values:t,isDirty:e}),this.validatorMg.validate()}}getHistoryMetadata(){return this.historyMg.getMetadata()}validate(t){return this.validatorMg.validate(t)}hasValidationsInProgress(t){return this.validatorMg.hasValidationsInProgress(t)}beginFieldValidation(t){this.validatorMg.beginExternalValidation(t)}endFieldValidation(t){this.validatorMg.endExternalValidation(t)}setFieldAsyncError(t,e){return this.validatorMg.setExternalError(t,e)}clearFieldAsyncError(t){return this.validatorMg.setExternalError(t,void 0)}getStepStatus(t){return this.scopeMg.getStepStatus(t)}getStepErrors(t){return this.scopeMg.getStepErrors(t)}internalUpdateState(t){let e={...this.state,...t};t.values&&(e.values=this.computedMg.apply(t.values)),t.errors&&(e.isValid=Object.keys(e.errors).length===0),this.state=e,this.notify(),m.dispatch(this.storeId,this.state)}internalSaveSnapshot(){this.historyMg.saveSnapshot(this.state.values)}cleanup(){this.listeners.clear(),this.validatorMg.cancelAll(),delete m.stores[this.storeId]}notify(){this.listeners.forEach(t=>t())}}, _class7);function At(n={}){let t=new U(n);return{getConfig:()=>t.getConfig(),getState:()=>t.getState(),subscribe:t.subscribe.bind(t),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),validate:t.validate.bind(t),reset:t.reset.bind(t),submit:t.submit.bind(t),registerMask:t.registerMask.bind(t),getDirtyValues:t.getDirtyValues.bind(t),cleanup:t.cleanup.bind(t)}}var Et=n=>{let t=typeof n.getState=="function"?n.getState():n,e=_optionalChain([n, 'optionalAccess', _63 => _63.getHistoryMetadata, 'optionalCall', _64 => _64()])||{canUndo:!1,canRedo:!1,historyIndex:-1,historySize:0};return{...t,_meta:{canUndo:e.canUndo,canRedo:e.canRedo,totalSteps:e.historySize,currentIndex:e.historyIndex}}},N=null;function Bt(n){N&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),N());let t=null,e=null,s,r=!1,i=()=>{r=!1,t=new WebSocket(n),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket.");let l=Object.entries(m.stores);if(l.length>0){let a=l.reduce((d,[c,p])=>(d[c]=Et(p),d),{});_optionalChain([t, 'optionalAccess', _65 => _65.send, 'call', _66 => _66(JSON.stringify({type:"STATE_UPDATE",payload:a}))])}e=m.subscribe((a,d)=>{if(_optionalChain([t, 'optionalAccess', _67 => _67.readyState])===WebSocket.OPEN){let c=m.stores[a];c&&t.send(JSON.stringify({type:"STATE_UPDATE",payload:{[a]:Et(c)}}))}}),s=setInterval(()=>{_optionalChain([t, 'optionalAccess', _68 => _68.readyState])===WebSocket.OPEN&&t.send(JSON.stringify({type:"PING"}))},3e4)},t.onmessage=l=>{try{let{type:a,payload:d}=JSON.parse(l.data);if(a==="ACTION"){let{storeId:c,action:p}=d,h=m.stores[c];h&&typeof h[p]=="function"&&h[p]()}}catch(a){console.warn("[bit-form] Erro ao processar comando do CLI:",a)}},t.onclose=()=>{e&&e(),clearInterval(s),r?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(i,3e3))}};i();let o=()=>{r=!0,e&&e(),clearInterval(s),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),N=null};return N=o,o}exports.a = m; exports.b = f; exports.c = T; exports.d = x; exports.e = u; exports.f = y; exports.g = Pt; exports.h = bt; exports.i = Vt; exports.j = M; exports.k = Tt; exports.l = g; exports.m = b; exports.n = z; exports.o = P; exports.p = W; exports.q = Y; exports.r = J; exports.s = K; exports.t = G; exports.u = Z; exports.v = Q; exports.w = tt; exports.x = et; exports.y = st; exports.z = rt; exports.A = it; exports.B = nt; exports.C = ot; exports.D = at; exports.E = lt; exports.F = dt; exports.G = Ct; exports.H = Dt; exports.I = wt; exports.J = It; exports.K = ct; exports.L = ut; exports.M = Rt; exports.N = gt; exports.O = pt; exports.P = ft; exports.Q = ht; exports.R = Ft; exports.S = mt; exports.T = Bt; exports.U = yt; exports.V = At;
133
- //# sourceMappingURL=chunk-2QNUW6ZN.cjs.map
@@ -1,2 +0,0 @@
1
- import{d as I,e as v,h as x,i as D}from"./chunk-N6IA7HQL.js";import{createContext as M,useContext as A}from"react";import{jsx as O}from"react/jsx-runtime";var w=M(null),st=({store:t,children:e})=>O(w.Provider,{value:t,children:e}),b=()=>{let t=A(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 k}from"react";function lt(){let t=b(),[e,s]=k(null),[a,i]=k(null),n=L(null),g=y(()=>{let m=t.getState(),d={isValid:m.isValid,isDirty:m.isDirty,isSubmitting:m.isSubmitting};return n.current&&n.current.isValid===d.isValid&&n.current.isDirty===d.isDirty&&n.current.isSubmitting===d.isSubmitting?n.current:(n.current=d,d)},[t]),l=q(t.subscribe.bind(t),g,g),r=y(m=>d=>(d?.preventDefault?.(),t.submit(m)),[t]),o=y(m=>d=>(d?.preventDefault?.(),s(null),t.submit(async(V,C)=>{try{let f=await m(V,C);i(f),s(null)}catch(f){x(f)?t.setServerErrors(D(f)):s(f instanceof Error?f:new Error(String(f)))}})),[t]),S=y(()=>{t.reset(),s(null),i(null)},[t]),u=y(()=>t.getState().values,[t]),p=y(()=>t.getState().errors,[t]),h=y(()=>t.getState().touched,[t]),P=y(()=>t.getDirtyValues(),[t]);return{meta:H(()=>({...l,submitError:e,lastResponse:a}),[l,e,a]),getValues:u,getErrors:p,getTouched:h,getDirtyValues:P,submit:r,onSubmit:o,reset:S,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),validate:t.validate.bind(t),mutations:{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)}}}import{useCallback as U,useSyncExternalStore as W,useState as _,useMemo as R,useEffect as $}from"react";var B=()=>Math.random().toString(36).substring(2,9);function ft(t){let e=b(),s=U(()=>{let r=e.getState(),o=v(r.values,t);return Array.isArray(o)?o:[]},[e,t]),a=W(e.subscribe.bind(e),s,s),[i,n]=_(()=>a.map(B));$(()=>{a.length!==i.length&&n(r=>{if(a.length>r.length){let o=a.length-r.length;return[...r,...Array(o).fill(null).map(B)]}return r.slice(0,a.length)})},[a.length]);let g=R(()=>({append:r=>{n(o=>[...o,B()]),e.pushItem(t,r)},prepend:r=>{n(o=>[B(),...o]),e.prependItem(t,r)},insert:(r,o)=>{n(S=>{let u=[...S];return u.splice(r,0,B()),u}),e.insertItem(t,r,o)},remove:r=>{n(o=>o.filter((S,u)=>u!==r)),e.removeItem(t,r)},move:(r,o)=>{n(S=>{let u=[...S],[p]=u.splice(r,1);return u.splice(o,0,p),u}),e.moveItem(t,r,o)},swap:(r,o)=>{n(S=>{let u=[...S];return[u[r],u[o]]=[u[o],u[r]],u}),e.swapItems(t,r,o)},replace:r=>{n(r.map(B)),e.setField(t,r)},clear:()=>{n([]),e.setField(t,[])}}),[e,t]);return{fields:R(()=>a.map((r,o)=>({key:i[o]||`temp-${o}`,value:r,index:o})),[a,i]),length:a.length,...g}}import{useCallback as T,useSyncExternalStore as z,useRef as G}from"react";function Bt(t){let e=b(),s=G(null),a=T(()=>{let l=e.getStepStatus(t);return s.current&&s.current.hasErrors===l.hasErrors&&s.current.isDirty===l.isDirty&&Object.keys(s.current.errors).length===Object.keys(l.errors).length&&Object.entries(l.errors).every(([r,o])=>s.current.errors[r]===o)?s.current:(s.current=l,l)},[e,t]),i=z(e.subscribe.bind(e),a,a),n=T(async()=>{let l=await e.validate({scope:t}),r=e.getStepErrors(t);return{valid:l,errors:r}},[e,t]),g=T(()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:i,errors:i.errors,validate:n,getErrors:g,isValid:!i.hasErrors,isDirty:i.isDirty}}import{useCallback as F,useSyncExternalStore as J,useRef as K,useState as Q}from"react";function Tt(t){let e=b(),[s,a]=Q(0),i=t[s]??"",n=K(null),g=F(()=>{let c=e.getStepStatus(i);return n.current&&n.current.hasErrors===c.hasErrors&&n.current.isDirty===c.isDirty&&Object.keys(n.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([m,d])=>n.current.errors[m]===d)?n.current:(n.current=c,c)},[e,i]),l=J(e.subscribe.bind(e),g,g),r=F(async()=>{let c=await e.validate({scope:i}),m=e.getStepErrors(i);return{valid:c,errors:m}},[e,i]),o=F(()=>e.getStepErrors(i),[e,i]),S=F(async()=>{let c=e.getScopeFields(i);if(e.hasValidationsInProgress(c))return!1;let m=await e.validate({scope:i});if(m)a(d=>Math.min(d+1,t.length-1));else{let d=e.getStepErrors(i),V=Object.keys(d);V.length>0&&e.markFieldsTouched(V)}return m},[e,i,t.length]),u=F(()=>{a(c=>Math.max(c-1,0))},[]),p=F(c=>{a(Math.max(0,Math.min(c-1,t.length-1)))},[t.length]),h=s===0,P=s>=t.length-1;return{step:s+1,stepIndex:s,scope:i,next:S,prev:u,goTo:p,isFirst:h,isLast:P,status:l,errors:l.errors,isValid:!l.hasErrors,isDirty:l.isDirty,validate:r,getErrors:o}}import{useCallback as j,useSyncExternalStore as X,useRef as Y}from"react";function jt(t){let e=b(),s=Y(null),a=j(()=>{let n=v(e.getState().values,t);return s.current!==null&&I(s.current,n)?s.current:(s.current=n,n)},[e,t]),i=j(n=>e.subscribe(n),[e]);return X(i,a,a)}import{useCallback as E,useSyncExternalStore as Z,useRef as N,useEffect as tt}from"react";function Lt(t){let e=b(),s=N(null);tt(()=>()=>{e.unregisterField&&e.unregisterField(t)},[e,t]);let a=E(()=>{let r=e.getState(),o=v(r.values,t),S=r.errors[t],u=!!r.touched[t],p=e.isHidden(t),h=e.isRequired(t),P=e.isFieldDirty(t),c=e.isFieldValidating(t);if(s.current&&s.current.value===o&&s.current.error===S&&s.current.touched===u&&s.current.isHidden===p&&s.current.isRequired===h&&s.current.isDirty===P&&s.current.isValidating===c)return s.current;let m={value:o,error:S,touched:u,isHidden:p,isRequired:h,isDirty:P,isValidating:c};return s.current=m,m},[e,t]),i=E(r=>e.subscribe(r),[e]),n=Z(i,a,a),g=E(r=>e.setField(t,r),[e,t]),l=E(()=>e.blurField(t),[e,t]);return{fieldState:n,setValue:g,setBlur:l,store:e}}export{st as a,b,lt as c,Lt as d,ft as e,Bt as f,Tt as g,jt as h};
2
- //# sourceMappingURL=chunk-F6LJWWEW.js.map