@lehnihon/bit-form 2.2.2 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +3 -3
  4. package/dist/angular/index.d.ts +3 -3
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{types-DqeN9Kq_.d.ts → bus-CILR-ENq.d.cts} +15 -26
  8. package/dist/{types-DqeN9Kq_.d.cts → bus-DHQHDwUp.d.ts} +15 -26
  9. package/dist/{chunk-TRPMTJ35.js → chunk-3MUULXXZ.js} +2 -2
  10. package/dist/chunk-3MUULXXZ.js.map +1 -0
  11. package/dist/chunk-FEW3ABPD.js +2 -0
  12. package/dist/{chunk-O5RRLZR7.js.map → chunk-FEW3ABPD.js.map} +1 -1
  13. package/dist/chunk-JO37BU2C.cjs +2 -0
  14. package/dist/chunk-JO37BU2C.cjs.map +1 -0
  15. package/dist/chunk-NNKZFXEK.cjs +2 -0
  16. package/dist/chunk-NNKZFXEK.cjs.map +1 -0
  17. package/dist/chunk-PA6T2CBR.cjs +2 -0
  18. package/dist/chunk-PA6T2CBR.cjs.map +1 -0
  19. package/dist/{chunk-VSWCUQAF.cjs → chunk-T3XN5O7V.cjs} +2 -2
  20. package/dist/chunk-T3XN5O7V.cjs.map +1 -0
  21. package/dist/chunk-ULC4OPIQ.js +2 -0
  22. package/dist/chunk-ULC4OPIQ.js.map +1 -0
  23. package/dist/chunk-VDWCFNA6.js +2 -0
  24. package/dist/chunk-VDWCFNA6.js.map +1 -0
  25. package/dist/devtools/bridge.cjs +1 -1
  26. package/dist/devtools/bridge.cjs.map +1 -1
  27. package/dist/devtools/bridge.js +1 -1
  28. package/dist/devtools/index.cjs +2 -2
  29. package/dist/devtools/index.cjs.map +1 -1
  30. package/dist/devtools/index.js +1 -1
  31. package/dist/index.cjs +1 -1
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +186 -81
  34. package/dist/index.d.ts +186 -81
  35. package/dist/index.js +1 -1
  36. package/dist/mask.cjs +2 -0
  37. package/dist/mask.cjs.map +1 -0
  38. package/dist/mask.d.cts +86 -0
  39. package/dist/mask.d.ts +86 -0
  40. package/dist/mask.js +2 -0
  41. package/dist/{public-types-CLIDR8aC.d.cts → public-types-Bgws0aVJ.d.ts} +5 -2
  42. package/dist/{public-types-Bl94ECPb.d.ts → public-types-SU17BarA.d.cts} +5 -2
  43. package/dist/react/index.cjs +1 -1
  44. package/dist/react/index.d.cts +6 -6
  45. package/dist/react/index.d.ts +6 -6
  46. package/dist/react/index.js +1 -1
  47. package/dist/react-native/index.cjs +1 -1
  48. package/dist/react-native/index.d.cts +5 -5
  49. package/dist/react-native/index.d.ts +5 -5
  50. package/dist/react-native/index.js +1 -1
  51. package/dist/resolvers/joi.d.cts +2 -2
  52. package/dist/resolvers/joi.d.ts +2 -2
  53. package/dist/resolvers/yup.d.cts +2 -2
  54. package/dist/resolvers/yup.d.ts +2 -2
  55. package/dist/resolvers/zod.d.cts +2 -2
  56. package/dist/resolvers/zod.d.ts +2 -2
  57. package/dist/types-D8DgIUhJ.d.cts +27 -0
  58. package/dist/types-D8DgIUhJ.d.ts +27 -0
  59. package/dist/{use-bit-persist-JtinX6Vy.d.ts → use-bit-persist-BlR-hHk6.d.ts} +3 -4
  60. package/dist/{use-bit-persist-BgFBg8lQ.d.cts → use-bit-persist-DEWMhvit.d.cts} +3 -4
  61. package/dist/vue/index.cjs +1 -1
  62. package/dist/vue/index.cjs.map +1 -1
  63. package/dist/vue/index.d.cts +3 -3
  64. package/dist/vue/index.d.ts +3 -3
  65. package/dist/vue/index.js +1 -1
  66. package/dist/vue/index.js.map +1 -1
  67. package/package.json +5 -5
  68. package/dist/bus-B1my-s_o.d.ts +0 -16
  69. package/dist/bus-BI29cKpD.d.cts +0 -16
  70. package/dist/chunk-2UVV7SU4.js +0 -2
  71. package/dist/chunk-2UVV7SU4.js.map +0 -1
  72. package/dist/chunk-676WXU4S.cjs +0 -2
  73. package/dist/chunk-676WXU4S.cjs.map +0 -1
  74. package/dist/chunk-AD7T42HJ.js +0 -1
  75. package/dist/chunk-C4BYXZGB.cjs +0 -1
  76. package/dist/chunk-C4BYXZGB.cjs.map +0 -1
  77. package/dist/chunk-NWPA4F3B.cjs +0 -2
  78. package/dist/chunk-NWPA4F3B.cjs.map +0 -1
  79. package/dist/chunk-O5RRLZR7.js +0 -2
  80. package/dist/chunk-TRPMTJ35.js.map +0 -1
  81. package/dist/chunk-VSWCUQAF.cjs.map +0 -1
  82. package/dist/core/light.cjs +0 -2
  83. package/dist/core/light.cjs.map +0 -1
  84. package/dist/core/light.d.cts +0 -29
  85. package/dist/core/light.d.ts +0 -29
  86. package/dist/core/light.js +0 -2
  87. package/dist/core/light.js.map +0 -1
  88. /package/dist/{chunk-AD7T42HJ.js.map → mask.js.map} +0 -0
@@ -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 _chunkNWPA4F3Bcjs = require('../chunk-NWPA4F3B.cjs');require('../chunk-C4BYXZGB.cjs');var _chunk676WXU4Scjs = require('../chunk-676WXU4S.cjs');var _core = require('@angular/core');var S=new (0, _core.InjectionToken)("BIT_STORE");function Q(t){return{provide:S,useValue:_chunk676WXU4Scjs.Y.call(void 0, t)}}function y(){let t=_core.inject.call(void 0, S,{optional:!0});if(!t)throw new Error('BitForm: N\xE3o foi poss\xEDvel encontrar a BitStore. Certifique-se de que voc\xEA adicionou "provideBitStore(store)" nos providers do seu componente.');return t}function Z(){let t=y(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, {isValid:t.getState().isValid,isSubmitting:t.getState().isSubmitting,isDirty:t.getState().isDirty}),o=_core.signal.call(void 0, null),n=_core.signal.call(void 0, null),i=t.subscribeSelector(u=>({isValid:u.isValid,isSubmitting:u.isSubmitting,isDirty:u.isDirty}),u=>{r.set(u)});e.onDestroy(()=>i());let d=_core.computed.call(void 0, ()=>r().isValid),s=_core.computed.call(void 0, ()=>r().isSubmitting),c=_core.computed.call(void 0, ()=>r().isDirty),l=_chunkNWPA4F3Bcjs.a.call(void 0, t,{clearSubmissionState:()=>{o.set(null),n.set(null)},setSubmissionResult:u=>{n.set(u)},setSubmissionError:u=>{o.set(u)}},{stopPropagation:!0});return{meta:{isValid:d,isDirty:c,isSubmitting:s,submitError:o.asReadonly(),lastResponse:n.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),setField:t.setField.bind(t),blurField:t.blurField.bind(t),validate:t.validate.bind(t)}}function w(t){let e=_core.inject.call(void 0, S),r=_core.signal.call(void 0, e.getFieldState(t)),o=_chunkNWPA4F3Bcjs.b.call(void 0, e,t,m=>{r.set(m)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{o(),e.unregisterField&&e.unregisterField(t)});let n=_core.computed.call(void 0, ()=>r().value),i=_core.computed.call(void 0, ()=>r().error),d=_core.computed.call(void 0, ()=>r().touched),s=_core.computed.call(void 0, ()=>d()?i():void 0),c=_core.computed.call(void 0, ()=>r().isDirty),l=_core.computed.call(void 0, ()=>r().isValidating),a=_core.computed.call(void 0, ()=>r().isHidden),u=_core.computed.call(void 0, ()=>r().isRequired),T=_core.computed.call(void 0, ()=>d()&&!!i()),E=e.resolveMask(t),h=_chunkNWPA4F3Bcjs.c.call(void 0, e,t,E),V=_core.computed.call(void 0, ()=>h.displayValue(n())),P=m=>{h.setValue(m)},v=()=>h.setBlur(),x=_core.computed.call(void 0, ()=>!!i());return{value:n,displayValue:V,setValue:P,setBlur:v,update:m=>P(_nullishCoalesce(_optionalChain([m, 'optionalAccess', _2 => _2.target, 'optionalAccess', _3 => _3.value]), () => (m))),meta:{error:s,touched:d,invalid:T,isDirty:c,isValidating:l,isHidden:a,isRequired:u,hasError:x}}}var b=()=>Math.random().toString(36).substring(2,9);function st(t){let e=_core.inject.call(void 0, S),r=_core.inject.call(void 0, _core.DestroyRef),n=_core.signal.call(void 0, (()=>{let s=_chunk676WXU4Scjs.f.call(void 0, e.getState().values,t);return Array.isArray(s)?s:[]})()),i=_core.signal.call(void 0, n().map(b)),d=e.subscribePath(t,s=>{let c=Array.isArray(s)?s:[],l=_core.untracked.call(void 0, i);n.set(c),c.length!==l.length&&(c.length>l.length?i.set([...l,...Array.from({length:c.length-l.length},b)]):i.set(l.slice(0,c.length)))});return r.onDestroy(()=>{d(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:_core.computed.call(void 0, ()=>n().map((s,c)=>({key:i()[c]||`temp-${c}`,value:s,index:c}))),length:_core.computed.call(void 0, ()=>n().length),append:s=>{i.update(c=>[...c,b()]),e.pushItem(t,s)},prepend:s=>{i.update(c=>[b(),...c]),e.prependItem(t,s)},remove:s=>{i.update(c=>c.filter((l,a)=>a!==s)),e.removeItem(t,s)},insert:(s,c)=>{i.update(l=>{let a=[...l];return a.splice(s,0,b()),a}),e.insertItem(t,s,c)},swap:(s,c)=>{i.update(l=>{let a=[...l];return[a[s],a[c]]=[a[c],a[s]],a}),e.swapItems(t,s,c)},move:(s,c)=>{i.update(l=>{let a=[...l],[u]=a.splice(s,1);return a.splice(c,0,u),a}),e.moveItem(t,s,c)},replace:s=>{i.set(s.map(()=>b())),e.setField(t,s)},clear:()=>{i.set([]),e.setField(t,[])}}}function at(){let t=y(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, t.getHistoryMetadata()),o=t.subscribe(()=>{r.set(t.getHistoryMetadata())});return e.onDestroy(()=>o()),{canUndo:_core.computed.call(void 0, ()=>r().canUndo),canRedo:_core.computed.call(void 0, ()=>r().canRedo),historyIndex:_core.computed.call(void 0, ()=>r().historyIndex),historySize:_core.computed.call(void 0, ()=>r().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}function mt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function dt(t){let e=y(),r=e.getStepStatus(t),o=_core.signal.call(void 0, r),n=e.subscribe(()=>{let a=e.getStepStatus(t),u=o();(a.hasErrors!==u.hasErrors||a.isDirty!==u.isDirty||!mt(a.errors,u.errors))&&o.set(a)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>n())}catch (e2){}let i=async()=>{let a=await e.validate({scope:t}),u=e.getStepErrors(t);return{valid:a,errors:u}},d=()=>e.getStepErrors(t),s=_core.computed.call(void 0, ()=>!o().hasErrors),c=_core.computed.call(void 0, ()=>o().isDirty),l=_core.computed.call(void 0, ()=>o().errors);return{scopeName:t,status:o,errors:l,validate:i,getErrors:d,isValid:s,isDirty:c,unsubscribe:n}}function gt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function ft(t){let e=y(),r=_core.signal.call(void 0, 0),o=_core.computed.call(void 0, ()=>_nullishCoalesce(t[r()], () => (""))),n=()=>_nullishCoalesce(t[r()], () => ("")),i=_core.signal.call(void 0, e.getStepStatus(n())),d=()=>{let p=n(),m=e.getStepStatus(p),f=i();(m.hasErrors!==f.hasErrors||m.isDirty!==f.isDirty||!gt(m.errors,f.errors))&&i.set(m)},s=e.subscribe(d);try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>s())}catch (e3){}let c=async()=>{let p=n(),m=await e.validate({scope:p}),f=e.getStepErrors(p);return{valid:m,errors:f}},l=()=>e.getStepErrors(n()),a=async()=>{let p=n(),m=e.getScopeFields(p);if(e.hasValidationsInProgress(m))return!1;let f=await e.validate({scope:p});if(f){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.getStepStatus(_nullishCoalesce(t[F], () => (""))))}else{let F=e.getStepErrors(p),H=Object.keys(F);H.length>0&&e.markFieldsTouched(H)}return f},u=()=>{let p=Math.max(r()-1,0);r.set(p),i.set(e.getStepStatus(_nullishCoalesce(t[p], () => (""))))},T=p=>{let m=Math.max(0,Math.min(p-1,t.length-1));r.set(m),i.set(e.getStepStatus(_nullishCoalesce(t[m], () => (""))))},E=_core.computed.call(void 0, ()=>r()+1),h=_core.computed.call(void 0, ()=>r()===0),V=_core.computed.call(void 0, ()=>r()>=t.length-1),P=_core.computed.call(void 0, ()=>!i().hasErrors),v=_core.computed.call(void 0, ()=>i().isDirty),x=_core.computed.call(void 0, ()=>i().errors);return{step:E,stepIndex:r,scope:o,next:a,prev:u,goTo:T,isFirst:h,isLast:V,status:i,errors:x,isValid:P,isDirty:v,validate:c,getErrors:l}}function ht(t){let e=y(),r=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, _chunk676WXU4Scjs.f.call(void 0, e.getState().values,t),{equal:_chunk676WXU4Scjs.e}),n=e.watch(t,i=>{o.set(i)});return r.onDestroy(n),o.asReadonly()}function Rt(t,e,r){let o=_core.inject.call(void 0, S),n=w(t),i=null,d=_core.signal.call(void 0, !1),s=async l=>{if(l){d.set(!0),o.setError(t,void 0);try{let a=await e(l);n.setValue(a.url),i=a.key,o.setError(t,void 0)}catch(a){let u=a instanceof Error?a.message:"Upload failed";o.setError(t,u)}finally{d.set(!1)}}},c=async()=>{if(i&&r)try{await r(i)}catch(l){let a=l instanceof Error?l.message:"Delete failed";o.setError(t,a);return}n.setValue(null),i=null,o.setError(t,void 0)};return{value:_core.computed.call(void 0, ()=>n.value()),setValue:n.setValue,error:_core.computed.call(void 0, ()=>n.meta.error()),isValidating:_core.computed.call(void 0, ()=>!!n.meta.isValidating()||d()),upload:s,remove:c}}function jt(){let t=y(),e=_core.signal.call(void 0, !1),r=_core.signal.call(void 0, !1),o=_core.signal.call(void 0, null);return{restore:async()=>{r.set(!0),o.set(null);try{return await t.restorePersisted()}catch(s){return o.set(s instanceof Error?s:new Error(String(s))),!1}finally{r.set(!1)}},save:async()=>{e.set(!0),o.set(null);try{await t.forceSave()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}finally{e.set(!1)}},clear:async()=>{o.set(null);try{await t.clearPersisted()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}},meta:{isSaving:e.asReadonly(),isRestoring:r.asReadonly(),error:o.asReadonly()}}}exports.injectBitArray = st; exports.injectBitField = w; exports.injectBitForm = Z; exports.injectBitHistory = at; exports.injectBitPersist = jt; exports.injectBitScope = dt; exports.injectBitSteps = ft; exports.injectBitUpload = Rt; exports.injectBitWatch = ht; exports.provideBitStore = Q; exports.useBitStore = y;
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 _chunkNNKZFXEKcjs = require('../chunk-NNKZFXEK.cjs');var _chunkJO37BU2Ccjs = require('../chunk-JO37BU2C.cjs');require('../chunk-PA6T2CBR.cjs');var _core = require('@angular/core');var S=new (0, _core.InjectionToken)("BIT_STORE");function Q(t){return{provide:S,useValue:_chunkJO37BU2Ccjs.l.call(void 0, t)}}function y(){let t=_core.inject.call(void 0, S,{optional:!0});if(!t)throw new Error('BitForm: N\xE3o foi poss\xEDvel encontrar a BitStore. Certifique-se de que voc\xEA adicionou "provideBitStore(store)" nos providers do seu componente.');return t}function Z(){let t=y(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, {isValid:t.getState().isValid,isSubmitting:t.getState().isSubmitting,isDirty:t.getState().isDirty}),o=_core.signal.call(void 0, null),n=_core.signal.call(void 0, null),i=t.subscribeSelector(u=>({isValid:u.isValid,isSubmitting:u.isSubmitting,isDirty:u.isDirty}),u=>{r.set(u)});e.onDestroy(()=>i());let d=_core.computed.call(void 0, ()=>r().isValid),s=_core.computed.call(void 0, ()=>r().isSubmitting),c=_core.computed.call(void 0, ()=>r().isDirty),l=_chunkNNKZFXEKcjs.a.call(void 0, t,{clearSubmissionState:()=>{o.set(null),n.set(null)},setSubmissionResult:u=>{n.set(u)},setSubmissionError:u=>{o.set(u)}},{stopPropagation:!0});return{meta:{isValid:d,isDirty:c,isSubmitting:s,submitError:o.asReadonly(),lastResponse:n.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),setField:t.setField.bind(t),blurField:t.blurField.bind(t),validate:t.validate.bind(t)}}function w(t){let e=_core.inject.call(void 0, S),r=_core.signal.call(void 0, e.getFieldState(t)),o=_chunkNNKZFXEKcjs.b.call(void 0, e,t,m=>{r.set(m)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{o(),e.unregisterField&&e.unregisterField(t)});let n=_core.computed.call(void 0, ()=>r().value),i=_core.computed.call(void 0, ()=>r().error),d=_core.computed.call(void 0, ()=>r().touched),s=_core.computed.call(void 0, ()=>d()?i():void 0),c=_core.computed.call(void 0, ()=>r().isDirty),l=_core.computed.call(void 0, ()=>r().isValidating),a=_core.computed.call(void 0, ()=>r().isHidden),u=_core.computed.call(void 0, ()=>r().isRequired),T=_core.computed.call(void 0, ()=>d()&&!!i()),E=e.resolveMask(t),h=_chunkNNKZFXEKcjs.c.call(void 0, e,t,E),V=_core.computed.call(void 0, ()=>h.displayValue(n())),P=m=>{h.setValue(m)},v=()=>h.setBlur(),x=_core.computed.call(void 0, ()=>!!i());return{value:n,displayValue:V,setValue:P,setBlur:v,update:m=>P(_nullishCoalesce(_optionalChain([m, 'optionalAccess', _2 => _2.target, 'optionalAccess', _3 => _3.value]), () => (m))),meta:{error:s,touched:d,invalid:T,isDirty:c,isValidating:l,isHidden:a,isRequired:u,hasError:x}}}var b=()=>Math.random().toString(36).substring(2,9);function st(t){let e=_core.inject.call(void 0, S),r=_core.inject.call(void 0, _core.DestroyRef),n=_core.signal.call(void 0, (()=>{let s=_chunkJO37BU2Ccjs.e.call(void 0, e.getState().values,t);return Array.isArray(s)?s:[]})()),i=_core.signal.call(void 0, n().map(b)),d=e.subscribePath(t,s=>{let c=Array.isArray(s)?s:[],l=_core.untracked.call(void 0, i);n.set(c),c.length!==l.length&&(c.length>l.length?i.set([...l,...Array.from({length:c.length-l.length},b)]):i.set(l.slice(0,c.length)))});return r.onDestroy(()=>{d(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:_core.computed.call(void 0, ()=>n().map((s,c)=>({key:i()[c]||`temp-${c}`,value:s,index:c}))),length:_core.computed.call(void 0, ()=>n().length),append:s=>{i.update(c=>[...c,b()]),e.pushItem(t,s)},prepend:s=>{i.update(c=>[b(),...c]),e.prependItem(t,s)},remove:s=>{i.update(c=>c.filter((l,a)=>a!==s)),e.removeItem(t,s)},insert:(s,c)=>{i.update(l=>{let a=[...l];return a.splice(s,0,b()),a}),e.insertItem(t,s,c)},swap:(s,c)=>{i.update(l=>{let a=[...l];return[a[s],a[c]]=[a[c],a[s]],a}),e.swapItems(t,s,c)},move:(s,c)=>{i.update(l=>{let a=[...l],[u]=a.splice(s,1);return a.splice(c,0,u),a}),e.moveItem(t,s,c)},replace:s=>{i.set(s.map(()=>b())),e.setField(t,s)},clear:()=>{i.set([]),e.setField(t,[])}}}function at(){let t=y(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, t.getHistoryMetadata()),o=t.subscribe(()=>{r.set(t.getHistoryMetadata())});return e.onDestroy(()=>o()),{canUndo:_core.computed.call(void 0, ()=>r().canUndo),canRedo:_core.computed.call(void 0, ()=>r().canRedo),historyIndex:_core.computed.call(void 0, ()=>r().historyIndex),historySize:_core.computed.call(void 0, ()=>r().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}function mt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function dt(t){let e=y(),r=e.getStepStatus(t),o=_core.signal.call(void 0, r),n=e.subscribe(()=>{let a=e.getStepStatus(t),u=o();(a.hasErrors!==u.hasErrors||a.isDirty!==u.isDirty||!mt(a.errors,u.errors))&&o.set(a)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>n())}catch (e2){}let i=async()=>{let a=await e.validate({scope:t}),u=e.getStepErrors(t);return{valid:a,errors:u}},d=()=>e.getStepErrors(t),s=_core.computed.call(void 0, ()=>!o().hasErrors),c=_core.computed.call(void 0, ()=>o().isDirty),l=_core.computed.call(void 0, ()=>o().errors);return{scopeName:t,status:o,errors:l,validate:i,getErrors:d,isValid:s,isDirty:c,unsubscribe:n}}function gt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function ft(t){let e=y(),r=_core.signal.call(void 0, 0),o=_core.computed.call(void 0, ()=>_nullishCoalesce(t[r()], () => (""))),n=()=>_nullishCoalesce(t[r()], () => ("")),i=_core.signal.call(void 0, e.getStepStatus(n())),d=()=>{let p=n(),m=e.getStepStatus(p),f=i();(m.hasErrors!==f.hasErrors||m.isDirty!==f.isDirty||!gt(m.errors,f.errors))&&i.set(m)},s=e.subscribe(d);try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>s())}catch (e3){}let c=async()=>{let p=n(),m=await e.validate({scope:p}),f=e.getStepErrors(p);return{valid:m,errors:f}},l=()=>e.getStepErrors(n()),a=async()=>{let p=n(),m=e.getScopeFields(p);if(e.hasValidationsInProgress(m))return!1;let f=await e.validate({scope:p});if(f){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.getStepStatus(_nullishCoalesce(t[F], () => (""))))}else{let F=e.getStepErrors(p),H=Object.keys(F);H.length>0&&e.markFieldsTouched(H)}return f},u=()=>{let p=Math.max(r()-1,0);r.set(p),i.set(e.getStepStatus(_nullishCoalesce(t[p], () => (""))))},T=p=>{let m=Math.max(0,Math.min(p-1,t.length-1));r.set(m),i.set(e.getStepStatus(_nullishCoalesce(t[m], () => (""))))},E=_core.computed.call(void 0, ()=>r()+1),h=_core.computed.call(void 0, ()=>r()===0),V=_core.computed.call(void 0, ()=>r()>=t.length-1),P=_core.computed.call(void 0, ()=>!i().hasErrors),v=_core.computed.call(void 0, ()=>i().isDirty),x=_core.computed.call(void 0, ()=>i().errors);return{step:E,stepIndex:r,scope:o,next:a,prev:u,goTo:T,isFirst:h,isLast:V,status:i,errors:x,isValid:P,isDirty:v,validate:c,getErrors:l}}function ht(t){let e=y(),r=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, _chunkJO37BU2Ccjs.e.call(void 0, e.getState().values,t),{equal:_chunkJO37BU2Ccjs.d}),n=e.watch(t,i=>{o.set(i)});return r.onDestroy(n),o.asReadonly()}function Rt(t,e,r){let o=_core.inject.call(void 0, S),n=w(t),i=null,d=_core.signal.call(void 0, !1),s=async l=>{if(l){d.set(!0),o.setError(t,void 0);try{let a=await e(l);n.setValue(a.url),i=a.key,o.setError(t,void 0)}catch(a){let u=a instanceof Error?a.message:"Upload failed";o.setError(t,u)}finally{d.set(!1)}}},c=async()=>{if(i&&r)try{await r(i)}catch(l){let a=l instanceof Error?l.message:"Delete failed";o.setError(t,a);return}n.setValue(null),i=null,o.setError(t,void 0)};return{value:_core.computed.call(void 0, ()=>n.value()),setValue:n.setValue,error:_core.computed.call(void 0, ()=>n.meta.error()),isValidating:_core.computed.call(void 0, ()=>!!n.meta.isValidating()||d()),upload:s,remove:c}}function jt(){let t=y(),e=_core.signal.call(void 0, !1),r=_core.signal.call(void 0, !1),o=_core.signal.call(void 0, null);return{restore:async()=>{r.set(!0),o.set(null);try{return await t.restorePersisted()}catch(s){return o.set(s instanceof Error?s:new Error(String(s))),!1}finally{r.set(!1)}},save:async()=>{e.set(!0),o.set(null);try{await t.forceSave()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}finally{e.set(!1)}},clear:async()=>{o.set(null);try{await t.clearPersisted()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}},meta:{isSaving:e.asReadonly(),isRestoring:r.asReadonly(),error:o.asReadonly()}}}exports.injectBitArray = st; exports.injectBitField = w; exports.injectBitForm = Z; exports.injectBitHistory = at; exports.injectBitPersist = jt; exports.injectBitScope = dt; exports.injectBitSteps = ft; exports.injectBitUpload = Rt; exports.injectBitWatch = ht; exports.provideBitStore = Q; exports.useBitStore = y;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/angular/index.cjs","../../src/angular/provider.ts","../../src/angular/inject-bit-form.ts","../../src/angular/inject-bit-field.ts","../../src/angular/inject-bit-array.ts"],"names":["BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","resolveBitStoreForHooks","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","state","nextState","isValid","computed","isSubmitting","isDirty","controller","createFormController","result","error","injectBitField","path","unsubscribe","subscribeFieldState","value","rawError","touched","isValidating","isHidden","isRequired","invalid","resolvedMask","fieldController","createMaskedFieldController","displayValue","setValue","val","setBlur","hasError","e","generateId","injectBitArray","valuesSig","getDeepValue","idsSig","unsub","next","ids","untracked"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/angular/index.cjs","sourcesContent":[null,"import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport type { BitStoreApi } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitStoreHooksApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitStoreApi<T>,\n): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: resolveBitStoreForHooks(store) };\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_TOKEN, { optional: true });\n\n if (!store) {\n throw new Error(\n \"BitForm: Não foi possível encontrar a BitStore. \" +\n 'Certifique-se de que você adicionou \"provideBitStore(store)\" nos providers do seu componente.',\n );\n }\n\n return store as BitStoreHooksApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { InjectBitFormResult } from \"./types\";\n\nexport function injectBitForm<T extends object>(): InjectBitFormResult<T> {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isSubmitting: state.isSubmitting,\n isDirty: state.isDirty,\n }),\n (nextState) => {\n stateSignal.set(nextState);\n },\n );\n\n destroyRef.onDestroy(() => sub());\n\n const isValid = computed(() => stateSignal().isValid);\n const isSubmitting = computed(() => stateSignal().isSubmitting);\n const isDirty = computed(() => stateSignal().isDirty);\n\n const controller = createFormController(\n store,\n {\n clearSubmissionState: () => {\n submitError.set(null);\n lastResponse.set(null);\n },\n setSubmissionResult: (result) => {\n lastResponse.set(result);\n },\n setSubmissionError: (error) => {\n submitError.set(error);\n },\n },\n { stopPropagation: true },\n );\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError: submitError.asReadonly(),\n lastResponse: lastResponse.asReadonly(),\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit: controller.onSubmit,\n reset: controller.reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.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 };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\nimport type { InjectBitFieldMeta, InjectBitFieldResult } from \"./types\";\n\nexport function injectBitField<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const rawError = computed(() => stateSignal().error);\n const touched = computed(() => stateSignal().touched);\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => stateSignal().isDirty);\n\n const isValidating = computed(() => stateSignal().isValidating);\n\n const isHidden = computed(() => stateSignal().isHidden);\n\n const isRequired = computed(() => stateSignal().isRequired);\n\n const invalid = computed(() => touched() && !!rawError());\n\n const resolvedMask = store.resolveMask(path as string);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (val: any) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => !!rawError());\n\n const update = (e: any) => setValue(e?.target?.value ?? e);\n\n return {\n // Main handlers and values (flat)\n value,\n displayValue,\n setValue,\n setBlur,\n update,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { DestroyRef, signal, computed, inject, untracked } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 injectBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = inject(BIT_STORE_TOKEN);\n const destroyRef = inject(DestroyRef);\n\n const getRaw = () => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n return Array.isArray(val)\n ? (val as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n };\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(getRaw());\n const idsSig = signal<string[]>(valuesSig().map(generateId));\n\n const unsub = store.subscribePath(path, (value) => {\n const next = Array.isArray(value)\n ? (value as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n const ids = untracked(idsSig);\n valuesSig.set(next);\n\n if (next.length !== ids.length) {\n if (next.length > ids.length) {\n idsSig.set([\n ...ids,\n ...Array.from({ length: next.length - ids.length }, generateId),\n ]);\n } else {\n idsSig.set(ids.slice(0, next.length));\n }\n }\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n if (store.unregisterPrefix) store.unregisterPrefix(`${path as string}.`);\n });\n\n return {\n fields: computed(() =>\n valuesSig().map((v, i) => ({\n key: idsSig()[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n ),\n length: computed(() => valuesSig().length),\n append: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [...ids, generateId()]);\n store.pushItem(path, v);\n },\n prepend: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [generateId(), ...ids]);\n store.prependItem(path, v);\n },\n remove: (i: number) => {\n idsSig.update((ids) => ids.filter((_, idx) => idx !== i));\n store.removeItem(path, i);\n },\n insert: (index: number, v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => {\n const c = [...ids];\n c.splice(index, 0, generateId());\n return c;\n });\n store.insertItem(path, index, v);\n },\n swap: (a: number, b: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n [c[a], c[b]] = [c[b], c[a]];\n return c;\n });\n store.swapItems(path, a, b);\n },\n move: (f: number, t: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n const [it] = c.splice(f, 1);\n c.splice(t, 0, it);\n return c;\n });\n store.moveItem(path, f, t);\n },\n replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => {\n idsSig.set(items.map(() => generateId()));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n idsSig.set([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/angular/index.cjs","../../src/angular/provider.ts","../../src/angular/inject-bit-form.ts","../../src/angular/inject-bit-field.ts","../../src/angular/inject-bit-array.ts"],"names":["BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","resolveBitStoreForHooks","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","state","nextState","isValid","computed","isSubmitting","isDirty","controller","createFormController","result","error","injectBitField","path","unsubscribe","subscribeFieldState","value","rawError","touched","isValidating","isHidden","isRequired","invalid","resolvedMask","fieldController","createMaskedFieldController","displayValue","setValue","val","setBlur","hasError","e","generateId","injectBitArray","valuesSig","getDeepValue","idsSig","unsub","next","ids","untracked"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/angular/index.cjs","sourcesContent":[null,"import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitStoreHooksApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitStoreApi<T>,\n): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: resolveBitStoreForHooks(store) };\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_TOKEN, { optional: true });\n\n if (!store) {\n throw new Error(\n \"BitForm: Não foi possível encontrar a BitStore. \" +\n 'Certifique-se de que você adicionou \"provideBitStore(store)\" nos providers do seu componente.',\n );\n }\n\n return store as BitStoreHooksApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { InjectBitFormResult } from \"./types\";\n\nexport function injectBitForm<T extends object>(): InjectBitFormResult<T> {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isSubmitting: state.isSubmitting,\n isDirty: state.isDirty,\n }),\n (nextState) => {\n stateSignal.set(nextState);\n },\n );\n\n destroyRef.onDestroy(() => sub());\n\n const isValid = computed(() => stateSignal().isValid);\n const isSubmitting = computed(() => stateSignal().isSubmitting);\n const isDirty = computed(() => stateSignal().isDirty);\n\n const controller = createFormController(\n store,\n {\n clearSubmissionState: () => {\n submitError.set(null);\n lastResponse.set(null);\n },\n setSubmissionResult: (result) => {\n lastResponse.set(result);\n },\n setSubmissionError: (error) => {\n submitError.set(error);\n },\n },\n { stopPropagation: true },\n );\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError: submitError.asReadonly(),\n lastResponse: lastResponse.asReadonly(),\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit: controller.onSubmit,\n reset: controller.reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.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 };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\nimport type { InjectBitFieldMeta, InjectBitFieldResult } from \"./types\";\n\nexport function injectBitField<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const rawError = computed(() => stateSignal().error);\n const touched = computed(() => stateSignal().touched);\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => stateSignal().isDirty);\n\n const isValidating = computed(() => stateSignal().isValidating);\n\n const isHidden = computed(() => stateSignal().isHidden);\n\n const isRequired = computed(() => stateSignal().isRequired);\n\n const invalid = computed(() => touched() && !!rawError());\n\n const resolvedMask = store.resolveMask(path as string);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (val: any) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => !!rawError());\n\n const update = (e: any) => setValue(e?.target?.value ?? e);\n\n return {\n // Main handlers and values (flat)\n value,\n displayValue,\n setValue,\n setBlur,\n update,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { DestroyRef, signal, computed, inject, untracked } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 injectBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = inject(BIT_STORE_TOKEN);\n const destroyRef = inject(DestroyRef);\n\n const getRaw = () => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n return Array.isArray(val)\n ? (val as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n };\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(getRaw());\n const idsSig = signal<string[]>(valuesSig().map(generateId));\n\n const unsub = store.subscribePath(path, (value) => {\n const next = Array.isArray(value)\n ? (value as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n const ids = untracked(idsSig);\n valuesSig.set(next);\n\n if (next.length !== ids.length) {\n if (next.length > ids.length) {\n idsSig.set([\n ...ids,\n ...Array.from({ length: next.length - ids.length }, generateId),\n ]);\n } else {\n idsSig.set(ids.slice(0, next.length));\n }\n }\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n if (store.unregisterPrefix) store.unregisterPrefix(`${path as string}.`);\n });\n\n return {\n fields: computed(() =>\n valuesSig().map((v, i) => ({\n key: idsSig()[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n ),\n length: computed(() => valuesSig().length),\n append: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [...ids, generateId()]);\n store.pushItem(path, v);\n },\n prepend: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [generateId(), ...ids]);\n store.prependItem(path, v);\n },\n remove: (i: number) => {\n idsSig.update((ids) => ids.filter((_, idx) => idx !== i));\n store.removeItem(path, i);\n },\n insert: (index: number, v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => {\n const c = [...ids];\n c.splice(index, 0, generateId());\n return c;\n });\n store.insertItem(path, index, v);\n },\n swap: (a: number, b: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n [c[a], c[b]] = [c[b], c[a]];\n return c;\n });\n store.swapItems(path, a, b);\n },\n move: (f: number, t: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n const [it] = c.splice(f, 1);\n c.splice(t, 0, it);\n return c;\n });\n store.moveItem(path, f, t);\n },\n replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => {\n idsSig.set(items.map(() => generateId()));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n idsSig.set([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Provider, Signal } from '@angular/core';
3
- import { f as BitStoreApi, g as BitStoreHooksApi, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-CLIDR8aC.cjs';
4
- import '../bus-BI29cKpD.cjs';
5
- import { f as BitPath, g as BitPathValue, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus } from '../types-DqeN9Kq_.cjs';
3
+ import { e as BitStoreApi, f as BitStoreHooksApi, i as BitPersistMetadata, a as BitValidationOptions } from '../public-types-SU17BarA.cjs';
4
+ import { k as BitPath, m as BitPathValue, V as ValidateScopeResult, f as BitErrors, A as BitTouched, D as DeepPartial, o as BitArrayPath, p as BitArrayItem, S as ScopeStatus } from '../bus-CILR-ENq.cjs';
6
5
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
6
+ import '../types-D8DgIUhJ.cjs';
7
7
 
8
8
  declare function provideBitStore<T extends object>(store: BitStoreApi<T>): Provider;
9
9
  declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
@@ -1,9 +1,9 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Provider, Signal } from '@angular/core';
3
- import { f as BitStoreApi, g as BitStoreHooksApi, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-Bl94ECPb.js';
4
- import '../bus-B1my-s_o.js';
5
- import { f as BitPath, g as BitPathValue, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem, S as ScopeStatus } from '../types-DqeN9Kq_.js';
3
+ import { e as BitStoreApi, f as BitStoreHooksApi, i as BitPersistMetadata, a as BitValidationOptions } from '../public-types-Bgws0aVJ.js';
4
+ import { k as BitPath, m as BitPathValue, V as ValidateScopeResult, f as BitErrors, A as BitTouched, D as DeepPartial, o as BitArrayPath, p as BitArrayItem, S as ScopeStatus } from '../bus-DHQHDwUp.js';
6
5
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
6
+ import '../types-D8DgIUhJ.js';
7
7
 
8
8
  declare function provideBitStore<T extends object>(store: BitStoreApi<T>): Provider;
9
9
  declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
@@ -1,2 +1,2 @@
1
- import{a as _,b as q,c as C}from"../chunk-O5RRLZR7.js";import"../chunk-AD7T42HJ.js";import{Y as M,e as U,f as R}from"../chunk-2UVV7SU4.js";import{inject as G,InjectionToken as J}from"@angular/core";var S=new J("BIT_STORE");function Q(t){return{provide:S,useValue:M(t)}}function y(){let t=G(S,{optional:!0});if(!t)throw new Error('BitForm: N\xE3o foi poss\xEDvel encontrar a BitStore. Certifique-se de que voc\xEA adicionou "provideBitStore(store)" nos providers do seu componente.');return t}import{signal as I,computed as D,inject as X,DestroyRef as Y}from"@angular/core";function Z(){let t=y(),e=X(Y),r=I({isValid:t.getState().isValid,isSubmitting:t.getState().isSubmitting,isDirty:t.getState().isDirty}),o=I(null),n=I(null),i=t.subscribeSelector(u=>({isValid:u.isValid,isSubmitting:u.isSubmitting,isDirty:u.isDirty}),u=>{r.set(u)});e.onDestroy(()=>i());let d=D(()=>r().isValid),s=D(()=>r().isSubmitting),c=D(()=>r().isDirty),l=_(t,{clearSubmissionState:()=>{o.set(null),n.set(null)},setSubmissionResult:u=>{n.set(u)},setSubmissionError:u=>{o.set(u)}},{stopPropagation:!0});return{meta:{isValid:d,isDirty:c,isSubmitting:s,submitError:o.asReadonly(),lastResponse:n.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),setField:t.setField.bind(t),blurField:t.blurField.bind(t),validate:t.validate.bind(t)}}import{inject as K,DestroyRef as N,computed as g,signal as tt}from"@angular/core";function w(t){let e=K(S),r=tt(e.getFieldState(t)),o=q(e,t,m=>{r.set(m)});K(N).onDestroy(()=>{o(),e.unregisterField&&e.unregisterField(t)});let n=g(()=>r().value),i=g(()=>r().error),d=g(()=>r().touched),s=g(()=>d()?i():void 0),c=g(()=>r().isDirty),l=g(()=>r().isValidating),a=g(()=>r().isHidden),u=g(()=>r().isRequired),T=g(()=>d()&&!!i()),E=e.resolveMask(t),h=C(e,t,E),V=g(()=>h.displayValue(n())),P=m=>{h.setValue(m)},v=()=>h.setBlur(),x=g(()=>!!i());return{value:n,displayValue:V,setValue:P,setBlur:v,update:m=>P(m?.target?.value??m),meta:{error:s,touched:d,invalid:T,isDirty:c,isValidating:l,isHidden:a,isRequired:u,hasError:x}}}import{DestroyRef as et,signal as W,computed as z,inject as $,untracked as rt}from"@angular/core";var b=()=>Math.random().toString(36).substring(2,9);function st(t){let e=$(S),r=$(et),n=W((()=>{let s=R(e.getState().values,t);return Array.isArray(s)?s:[]})()),i=W(n().map(b)),d=e.subscribePath(t,s=>{let c=Array.isArray(s)?s:[],l=rt(i);n.set(c),c.length!==l.length&&(c.length>l.length?i.set([...l,...Array.from({length:c.length-l.length},b)]):i.set(l.slice(0,c.length)))});return r.onDestroy(()=>{d(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:z(()=>n().map((s,c)=>({key:i()[c]||`temp-${c}`,value:s,index:c}))),length:z(()=>n().length),append:s=>{i.update(c=>[...c,b()]),e.pushItem(t,s)},prepend:s=>{i.update(c=>[b(),...c]),e.prependItem(t,s)},remove:s=>{i.update(c=>c.filter((l,a)=>a!==s)),e.removeItem(t,s)},insert:(s,c)=>{i.update(l=>{let a=[...l];return a.splice(s,0,b()),a}),e.insertItem(t,s,c)},swap:(s,c)=>{i.update(l=>{let a=[...l];return[a[s],a[c]]=[a[c],a[s]],a}),e.swapItems(t,s,c)},move:(s,c)=>{i.update(l=>{let a=[...l],[u]=a.splice(s,1);return a.splice(c,0,u),a}),e.moveItem(t,s,c)},replace:s=>{i.set(s.map(()=>b())),e.setField(t,s)},clear:()=>{i.set([]),e.setField(t,[])}}}import{computed as j,DestroyRef as ot,inject as it,signal as nt}from"@angular/core";function at(){let t=y(),e=it(ot),r=nt(t.getHistoryMetadata()),o=t.subscribe(()=>{r.set(t.getHistoryMetadata())});return e.onDestroy(()=>o()),{canUndo:j(()=>r().canUndo),canRedo:j(()=>r().canRedo),historyIndex:j(()=>r().historyIndex),historySize:j(()=>r().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}import{signal as ct,computed as A,DestroyRef as lt,inject as ut}from"@angular/core";function mt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function dt(t){let e=y(),r=e.getStepStatus(t),o=ct(r),n=e.subscribe(()=>{let a=e.getStepStatus(t),u=o();(a.hasErrors!==u.hasErrors||a.isDirty!==u.isDirty||!mt(a.errors,u.errors))&&o.set(a)});try{ut(lt).onDestroy(()=>n())}catch{}let i=async()=>{let a=await e.validate({scope:t}),u=e.getStepErrors(t);return{valid:a,errors:u}},d=()=>e.getStepErrors(t),s=A(()=>!o().hasErrors),c=A(()=>o().isDirty),l=A(()=>o().errors);return{scopeName:t,status:o,errors:l,validate:i,getErrors:d,isValid:s,isDirty:c,unsubscribe:n}}import{signal as L,computed as B,DestroyRef as pt,inject as yt}from"@angular/core";function gt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function ft(t){let e=y(),r=L(0),o=B(()=>t[r()]??""),n=()=>t[r()]??"",i=L(e.getStepStatus(n())),d=()=>{let p=n(),m=e.getStepStatus(p),f=i();(m.hasErrors!==f.hasErrors||m.isDirty!==f.isDirty||!gt(m.errors,f.errors))&&i.set(m)},s=e.subscribe(d);try{yt(pt).onDestroy(()=>s())}catch{}let c=async()=>{let p=n(),m=await e.validate({scope:p}),f=e.getStepErrors(p);return{valid:m,errors:f}},l=()=>e.getStepErrors(n()),a=async()=>{let p=n(),m=e.getScopeFields(p);if(e.hasValidationsInProgress(m))return!1;let f=await e.validate({scope:p});if(f){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.getStepStatus(t[F]??""))}else{let F=e.getStepErrors(p),H=Object.keys(F);H.length>0&&e.markFieldsTouched(H)}return f},u=()=>{let p=Math.max(r()-1,0);r.set(p),i.set(e.getStepStatus(t[p]??""))},T=p=>{let m=Math.max(0,Math.min(p-1,t.length-1));r.set(m),i.set(e.getStepStatus(t[m]??""))},E=B(()=>r()+1),h=B(()=>r()===0),V=B(()=>r()>=t.length-1),P=B(()=>!i().hasErrors),v=B(()=>i().isDirty),x=B(()=>i().errors);return{step:E,stepIndex:r,scope:o,next:a,prev:u,goTo:T,isFirst:h,isLast:V,status:i,errors:x,isValid:P,isDirty:v,validate:c,getErrors:l}}import{DestroyRef as St,signal as Bt,inject as bt}from"@angular/core";function ht(t){let e=y(),r=bt(St),o=Bt(R(e.getState().values,t),{equal:U}),n=e.watch(t,i=>{o.set(i)});return r.onDestroy(n),o.asReadonly()}import{computed as k,inject as Pt,signal as Ft}from"@angular/core";function Rt(t,e,r){let o=Pt(S),n=w(t),i=null,d=Ft(!1),s=async l=>{if(l){d.set(!0),o.setError(t,void 0);try{let a=await e(l);n.setValue(a.url),i=a.key,o.setError(t,void 0)}catch(a){let u=a instanceof Error?a.message:"Upload failed";o.setError(t,u)}finally{d.set(!1)}}},c=async()=>{if(i&&r)try{await r(i)}catch(l){let a=l instanceof Error?l.message:"Delete failed";o.setError(t,a);return}n.setValue(null),i=null,o.setError(t,void 0)};return{value:k(()=>n.value()),setValue:n.setValue,error:k(()=>n.meta.error()),isValidating:k(()=>!!n.meta.isValidating()||d()),upload:s,remove:c}}import{signal as O}from"@angular/core";function jt(){let t=y(),e=O(!1),r=O(!1),o=O(null);return{restore:async()=>{r.set(!0),o.set(null);try{return await t.restorePersisted()}catch(s){return o.set(s instanceof Error?s:new Error(String(s))),!1}finally{r.set(!1)}},save:async()=>{e.set(!0),o.set(null);try{await t.forceSave()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}finally{e.set(!1)}},clear:async()=>{o.set(null);try{await t.clearPersisted()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}},meta:{isSaving:e.asReadonly(),isRestoring:r.asReadonly(),error:o.asReadonly()}}}export{st as injectBitArray,w as injectBitField,Z as injectBitForm,at as injectBitHistory,jt as injectBitPersist,dt as injectBitScope,ft as injectBitSteps,Rt as injectBitUpload,ht as injectBitWatch,Q as provideBitStore,y as useBitStore};
1
+ import{a as _,b as q,c as C}from"../chunk-FEW3ABPD.js";import{d as U,e as R,l as M}from"../chunk-ULC4OPIQ.js";import"../chunk-VDWCFNA6.js";import{inject as G,InjectionToken as J}from"@angular/core";var S=new J("BIT_STORE");function Q(t){return{provide:S,useValue:M(t)}}function y(){let t=G(S,{optional:!0});if(!t)throw new Error('BitForm: N\xE3o foi poss\xEDvel encontrar a BitStore. Certifique-se de que voc\xEA adicionou "provideBitStore(store)" nos providers do seu componente.');return t}import{signal as I,computed as D,inject as X,DestroyRef as Y}from"@angular/core";function Z(){let t=y(),e=X(Y),r=I({isValid:t.getState().isValid,isSubmitting:t.getState().isSubmitting,isDirty:t.getState().isDirty}),o=I(null),n=I(null),i=t.subscribeSelector(u=>({isValid:u.isValid,isSubmitting:u.isSubmitting,isDirty:u.isDirty}),u=>{r.set(u)});e.onDestroy(()=>i());let d=D(()=>r().isValid),s=D(()=>r().isSubmitting),c=D(()=>r().isDirty),l=_(t,{clearSubmissionState:()=>{o.set(null),n.set(null)},setSubmissionResult:u=>{n.set(u)},setSubmissionError:u=>{o.set(u)}},{stopPropagation:!0});return{meta:{isValid:d,isDirty:c,isSubmitting:s,submitError:o.asReadonly(),lastResponse:n.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),setField:t.setField.bind(t),blurField:t.blurField.bind(t),validate:t.validate.bind(t)}}import{inject as K,DestroyRef as N,computed as g,signal as tt}from"@angular/core";function w(t){let e=K(S),r=tt(e.getFieldState(t)),o=q(e,t,m=>{r.set(m)});K(N).onDestroy(()=>{o(),e.unregisterField&&e.unregisterField(t)});let n=g(()=>r().value),i=g(()=>r().error),d=g(()=>r().touched),s=g(()=>d()?i():void 0),c=g(()=>r().isDirty),l=g(()=>r().isValidating),a=g(()=>r().isHidden),u=g(()=>r().isRequired),T=g(()=>d()&&!!i()),E=e.resolveMask(t),h=C(e,t,E),V=g(()=>h.displayValue(n())),P=m=>{h.setValue(m)},v=()=>h.setBlur(),x=g(()=>!!i());return{value:n,displayValue:V,setValue:P,setBlur:v,update:m=>P(m?.target?.value??m),meta:{error:s,touched:d,invalid:T,isDirty:c,isValidating:l,isHidden:a,isRequired:u,hasError:x}}}import{DestroyRef as et,signal as W,computed as z,inject as $,untracked as rt}from"@angular/core";var b=()=>Math.random().toString(36).substring(2,9);function st(t){let e=$(S),r=$(et),n=W((()=>{let s=R(e.getState().values,t);return Array.isArray(s)?s:[]})()),i=W(n().map(b)),d=e.subscribePath(t,s=>{let c=Array.isArray(s)?s:[],l=rt(i);n.set(c),c.length!==l.length&&(c.length>l.length?i.set([...l,...Array.from({length:c.length-l.length},b)]):i.set(l.slice(0,c.length)))});return r.onDestroy(()=>{d(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:z(()=>n().map((s,c)=>({key:i()[c]||`temp-${c}`,value:s,index:c}))),length:z(()=>n().length),append:s=>{i.update(c=>[...c,b()]),e.pushItem(t,s)},prepend:s=>{i.update(c=>[b(),...c]),e.prependItem(t,s)},remove:s=>{i.update(c=>c.filter((l,a)=>a!==s)),e.removeItem(t,s)},insert:(s,c)=>{i.update(l=>{let a=[...l];return a.splice(s,0,b()),a}),e.insertItem(t,s,c)},swap:(s,c)=>{i.update(l=>{let a=[...l];return[a[s],a[c]]=[a[c],a[s]],a}),e.swapItems(t,s,c)},move:(s,c)=>{i.update(l=>{let a=[...l],[u]=a.splice(s,1);return a.splice(c,0,u),a}),e.moveItem(t,s,c)},replace:s=>{i.set(s.map(()=>b())),e.setField(t,s)},clear:()=>{i.set([]),e.setField(t,[])}}}import{computed as j,DestroyRef as ot,inject as it,signal as nt}from"@angular/core";function at(){let t=y(),e=it(ot),r=nt(t.getHistoryMetadata()),o=t.subscribe(()=>{r.set(t.getHistoryMetadata())});return e.onDestroy(()=>o()),{canUndo:j(()=>r().canUndo),canRedo:j(()=>r().canRedo),historyIndex:j(()=>r().historyIndex),historySize:j(()=>r().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}import{signal as ct,computed as A,DestroyRef as lt,inject as ut}from"@angular/core";function mt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function dt(t){let e=y(),r=e.getStepStatus(t),o=ct(r),n=e.subscribe(()=>{let a=e.getStepStatus(t),u=o();(a.hasErrors!==u.hasErrors||a.isDirty!==u.isDirty||!mt(a.errors,u.errors))&&o.set(a)});try{ut(lt).onDestroy(()=>n())}catch{}let i=async()=>{let a=await e.validate({scope:t}),u=e.getStepErrors(t);return{valid:a,errors:u}},d=()=>e.getStepErrors(t),s=A(()=>!o().hasErrors),c=A(()=>o().isDirty),l=A(()=>o().errors);return{scopeName:t,status:o,errors:l,validate:i,getErrors:d,isValid:s,isDirty:c,unsubscribe:n}}import{signal as L,computed as B,DestroyRef as pt,inject as yt}from"@angular/core";function gt(t,e){let r=Object.keys(t),o=Object.keys(e);return r.length!==o.length?!1:r.every(n=>t[n]===e[n])}function ft(t){let e=y(),r=L(0),o=B(()=>t[r()]??""),n=()=>t[r()]??"",i=L(e.getStepStatus(n())),d=()=>{let p=n(),m=e.getStepStatus(p),f=i();(m.hasErrors!==f.hasErrors||m.isDirty!==f.isDirty||!gt(m.errors,f.errors))&&i.set(m)},s=e.subscribe(d);try{yt(pt).onDestroy(()=>s())}catch{}let c=async()=>{let p=n(),m=await e.validate({scope:p}),f=e.getStepErrors(p);return{valid:m,errors:f}},l=()=>e.getStepErrors(n()),a=async()=>{let p=n(),m=e.getScopeFields(p);if(e.hasValidationsInProgress(m))return!1;let f=await e.validate({scope:p});if(f){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.getStepStatus(t[F]??""))}else{let F=e.getStepErrors(p),H=Object.keys(F);H.length>0&&e.markFieldsTouched(H)}return f},u=()=>{let p=Math.max(r()-1,0);r.set(p),i.set(e.getStepStatus(t[p]??""))},T=p=>{let m=Math.max(0,Math.min(p-1,t.length-1));r.set(m),i.set(e.getStepStatus(t[m]??""))},E=B(()=>r()+1),h=B(()=>r()===0),V=B(()=>r()>=t.length-1),P=B(()=>!i().hasErrors),v=B(()=>i().isDirty),x=B(()=>i().errors);return{step:E,stepIndex:r,scope:o,next:a,prev:u,goTo:T,isFirst:h,isLast:V,status:i,errors:x,isValid:P,isDirty:v,validate:c,getErrors:l}}import{DestroyRef as St,signal as Bt,inject as bt}from"@angular/core";function ht(t){let e=y(),r=bt(St),o=Bt(R(e.getState().values,t),{equal:U}),n=e.watch(t,i=>{o.set(i)});return r.onDestroy(n),o.asReadonly()}import{computed as k,inject as Pt,signal as Ft}from"@angular/core";function Rt(t,e,r){let o=Pt(S),n=w(t),i=null,d=Ft(!1),s=async l=>{if(l){d.set(!0),o.setError(t,void 0);try{let a=await e(l);n.setValue(a.url),i=a.key,o.setError(t,void 0)}catch(a){let u=a instanceof Error?a.message:"Upload failed";o.setError(t,u)}finally{d.set(!1)}}},c=async()=>{if(i&&r)try{await r(i)}catch(l){let a=l instanceof Error?l.message:"Delete failed";o.setError(t,a);return}n.setValue(null),i=null,o.setError(t,void 0)};return{value:k(()=>n.value()),setValue:n.setValue,error:k(()=>n.meta.error()),isValidating:k(()=>!!n.meta.isValidating()||d()),upload:s,remove:c}}import{signal as O}from"@angular/core";function jt(){let t=y(),e=O(!1),r=O(!1),o=O(null);return{restore:async()=>{r.set(!0),o.set(null);try{return await t.restorePersisted()}catch(s){return o.set(s instanceof Error?s:new Error(String(s))),!1}finally{r.set(!1)}},save:async()=>{e.set(!0),o.set(null);try{await t.forceSave()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}finally{e.set(!1)}},clear:async()=>{o.set(null);try{await t.clearPersisted()}catch(s){o.set(s instanceof Error?s:new Error(String(s)))}},meta:{isSaving:e.asReadonly(),isRestoring:r.asReadonly(),error:o.asReadonly()}}}export{st as injectBitArray,w as injectBitField,Z as injectBitForm,at as injectBitHistory,jt as injectBitPersist,dt as injectBitScope,ft as injectBitSteps,Rt as injectBitUpload,ht as injectBitWatch,Q as provideBitStore,y as useBitStore};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/angular/provider.ts","../../src/angular/inject-bit-form.ts","../../src/angular/inject-bit-field.ts","../../src/angular/inject-bit-array.ts","../../src/angular/inject-bit-history.ts","../../src/angular/inject-bit-scope.ts","../../src/angular/inject-bit-steps.ts","../../src/angular/inject-bit-watch.ts","../../src/angular/inject-bit-upload.ts","../../src/angular/inject-bit-persist.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport type { BitStoreApi } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitStoreHooksApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitStoreApi<T>,\n): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: resolveBitStoreForHooks(store) };\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_TOKEN, { optional: true });\n\n if (!store) {\n throw new Error(\n \"BitForm: Não foi possível encontrar a BitStore. \" +\n 'Certifique-se de que você adicionou \"provideBitStore(store)\" nos providers do seu componente.',\n );\n }\n\n return store as BitStoreHooksApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { InjectBitFormResult } from \"./types\";\n\nexport function injectBitForm<T extends object>(): InjectBitFormResult<T> {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isSubmitting: state.isSubmitting,\n isDirty: state.isDirty,\n }),\n (nextState) => {\n stateSignal.set(nextState);\n },\n );\n\n destroyRef.onDestroy(() => sub());\n\n const isValid = computed(() => stateSignal().isValid);\n const isSubmitting = computed(() => stateSignal().isSubmitting);\n const isDirty = computed(() => stateSignal().isDirty);\n\n const controller = createFormController(\n store,\n {\n clearSubmissionState: () => {\n submitError.set(null);\n lastResponse.set(null);\n },\n setSubmissionResult: (result) => {\n lastResponse.set(result);\n },\n setSubmissionError: (error) => {\n submitError.set(error);\n },\n },\n { stopPropagation: true },\n );\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError: submitError.asReadonly(),\n lastResponse: lastResponse.asReadonly(),\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit: controller.onSubmit,\n reset: controller.reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.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 };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\nimport type { InjectBitFieldMeta, InjectBitFieldResult } from \"./types\";\n\nexport function injectBitField<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const rawError = computed(() => stateSignal().error);\n const touched = computed(() => stateSignal().touched);\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => stateSignal().isDirty);\n\n const isValidating = computed(() => stateSignal().isValidating);\n\n const isHidden = computed(() => stateSignal().isHidden);\n\n const isRequired = computed(() => stateSignal().isRequired);\n\n const invalid = computed(() => touched() && !!rawError());\n\n const resolvedMask = store.resolveMask(path as string);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (val: any) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => !!rawError());\n\n const update = (e: any) => setValue(e?.target?.value ?? e);\n\n return {\n // Main handlers and values (flat)\n value,\n displayValue,\n setValue,\n setBlur,\n update,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { DestroyRef, signal, computed, inject, untracked } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 injectBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = inject(BIT_STORE_TOKEN);\n const destroyRef = inject(DestroyRef);\n\n const getRaw = () => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n return Array.isArray(val)\n ? (val as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n };\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(getRaw());\n const idsSig = signal<string[]>(valuesSig().map(generateId));\n\n const unsub = store.subscribePath(path, (value) => {\n const next = Array.isArray(value)\n ? (value as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n const ids = untracked(idsSig);\n valuesSig.set(next);\n\n if (next.length !== ids.length) {\n if (next.length > ids.length) {\n idsSig.set([\n ...ids,\n ...Array.from({ length: next.length - ids.length }, generateId),\n ]);\n } else {\n idsSig.set(ids.slice(0, next.length));\n }\n }\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n if (store.unregisterPrefix) store.unregisterPrefix(`${path as string}.`);\n });\n\n return {\n fields: computed(() =>\n valuesSig().map((v, i) => ({\n key: idsSig()[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n ),\n length: computed(() => valuesSig().length),\n append: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [...ids, generateId()]);\n store.pushItem(path, v);\n },\n prepend: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [generateId(), ...ids]);\n store.prependItem(path, v);\n },\n remove: (i: number) => {\n idsSig.update((ids) => ids.filter((_, idx) => idx !== i));\n store.removeItem(path, i);\n },\n insert: (index: number, v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => {\n const c = [...ids];\n c.splice(index, 0, generateId());\n return c;\n });\n store.insertItem(path, index, v);\n },\n swap: (a: number, b: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n [c[a], c[b]] = [c[b], c[a]];\n return c;\n });\n store.swapItems(path, a, b);\n },\n move: (f: number, t: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n const [it] = c.splice(f, 1);\n c.splice(t, 0, it);\n return c;\n });\n store.moveItem(path, f, t);\n },\n replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => {\n idsSig.set(items.map(() => generateId()));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n idsSig.set([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n","import { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitHistoryResult } from \"./types\";\n\nexport function injectBitHistory<\n T extends object = any,\n>(): InjectBitHistoryResult {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n\n const meta = signal(store.getHistoryMetadata());\n\n const sub = store.subscribe(() => {\n meta.set(store.getHistoryMetadata());\n });\n\n destroyRef.onDestroy(() => sub());\n\n return {\n canUndo: computed(() => meta().canUndo),\n canRedo: computed(() => meta().canRedo),\n historyIndex: computed(() => meta().historyIndex),\n historySize: computed(() => meta().historySize),\n undo: () => store.undo(),\n redo: () => store.redo(),\n };\n}\n","import { signal, computed, DestroyRef, inject } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./provider\";\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 injectBitScope(scopeName: string) {\n const store = useBitStore();\n const initialStatus = store.getStepStatus(scopeName);\n\n const status = signal<ScopeStatus>(initialStatus);\n\n const unsubscribe = store.subscribe(() => {\n const newStatus = store.getStepStatus(scopeName);\n const current = status();\n if (\n newStatus.hasErrors !== current.hasErrors ||\n newStatus.isDirty !== current.isDirty ||\n !errorsEqual(newStatus.errors, current.errors)\n ) {\n status.set(newStatus);\n }\n });\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => unsubscribe());\n } catch {}\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().hasErrors);\n const isDirty = computed(() => status().isDirty);\n const errors = computed(() => status().errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n unsubscribe,\n };\n}\n","import { signal, computed, DestroyRef, inject } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitStepsResult } 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 injectBitSteps(scopeNames: string[]): InjectBitStepsResult {\n const store = useBitStore();\n const stepIndex = signal(0);\n\n const scope = computed(() => scopeNames[stepIndex()] ?? \"\");\n\n const getCurrentScope = () => scopeNames[stepIndex()] ?? \"\";\n const status = signal<ScopeStatus>(store.getStepStatus(getCurrentScope()));\n\n const updateStatus = () => {\n const scopeName = getCurrentScope();\n const newStatus = store.getStepStatus(scopeName);\n const current = status();\n if (\n newStatus.hasErrors !== current.hasErrors ||\n newStatus.isDirty !== current.isDirty ||\n !errorsEqual(newStatus.errors, current.errors)\n ) {\n status.set(newStatus);\n }\n };\n\n const unsubscribe = store.subscribe(updateStatus);\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => unsubscribe());\n } catch {}\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = getCurrentScope();\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(getCurrentScope());\n\n const next = async (): Promise<boolean> => {\n const scopeName = getCurrentScope();\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 const newIndex = Math.min(stepIndex() + 1, scopeNames.length - 1);\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\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 const newIndex = Math.max(stepIndex() - 1, 0);\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\n };\n\n const goTo = (targetStep: number) => {\n const newIndex = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\n };\n\n const step = computed(() => stepIndex() + 1);\n const isFirst = computed(() => stepIndex() === 0);\n const isLast = computed(() => stepIndex() >= scopeNames.length - 1);\n const isValid = computed(() => !status().hasErrors);\n const isDirty = computed(() => status().isDirty);\n const errors = computed(() => status().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 { DestroyRef, signal, Signal, inject } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function injectBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): Signal<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n const destroyRef = inject(DestroyRef);\n const valueSig = signal<BitPathValue<TForm, P>>(\n getDeepValue(store.getState().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n { equal: deepEqual },\n );\n\n const unsub = store.watch(path, (v) => {\n valueSig.set(v as BitPathValue<TForm, P>);\n });\n\n destroyRef.onDestroy(unsub);\n\n return valueSig.asReadonly();\n}\n","/**\n * Angular Dependency Injection for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, inject, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { injectBitField } from \"./inject-bit-field\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport type { InjectBitUploadResult } from \"./types\";\n\nexport function injectBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): InjectBitUploadResult {\n const store = inject(BIT_STORE_TOKEN);\n const field = injectBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = signal(false);\n\n const upload = async (file: File | null | undefined) => {\n if (!file) return;\n\n isUploading.set(true);\n store.setError(fieldPath, undefined);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKey = result.key;\n store.setError(fieldPath, undefined);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Upload failed\";\n store.setError(fieldPath, message);\n } finally {\n isUploading.set(false);\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 store.setError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKey = null;\n store.setError(fieldPath, undefined);\n };\n\n return {\n value: computed(() => field.value()),\n setValue: field.setValue,\n error: computed(() => field.meta.error()),\n isValidating: computed(() => !!field.meta.isValidating() || isUploading()),\n upload,\n remove,\n };\n}\n","import { signal } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitPersistResult } from \"./types\";\n\nexport function injectBitPersist<\n T extends object = any,\n>(): InjectBitPersistResult {\n const store = useBitStore<T>();\n const isSaving = signal(false);\n const isRestoring = signal(false);\n const error = signal<Error | null>(null);\n\n const restore = async (): Promise<boolean> => {\n isRestoring.set(true);\n error.set(null);\n\n try {\n return await store.restorePersisted();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n return false;\n } finally {\n isRestoring.set(false);\n }\n };\n\n const save = async (): Promise<void> => {\n isSaving.set(true);\n error.set(null);\n\n try {\n await store.forceSave();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n } finally {\n isSaving.set(false);\n }\n };\n\n const clear = async (): Promise<void> => {\n error.set(null);\n\n try {\n await store.clearPersisted();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n }\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: isSaving.asReadonly(),\n isRestoring: isRestoring.asReadonly(),\n error: error.asReadonly(),\n },\n };\n}\n"],"mappings":"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","names":["inject","InjectionToken","BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","resolveBitStoreForHooks","useBitStore","inject","signal","computed","inject","DestroyRef","injectBitForm","store","useBitStore","destroyRef","inject","DestroyRef","stateSignal","signal","submitError","lastResponse","sub","state","nextState","isValid","computed","isSubmitting","isDirty","controller","createFormController","result","error","inject","DestroyRef","computed","signal","injectBitField","path","store","inject","BIT_STORE_TOKEN","stateSignal","signal","unsubscribe","subscribeFieldState","nextState","DestroyRef","value","computed","rawError","touched","error","isDirty","isValidating","isHidden","isRequired","invalid","resolvedMask","fieldController","createMaskedFieldController","displayValue","setValue","val","setBlur","hasError","e","DestroyRef","signal","computed","inject","untracked","generateId","injectBitArray","path","store","inject","BIT_STORE_TOKEN","destroyRef","DestroyRef","valuesSig","signal","val","getDeepValue","idsSig","unsub","value","next","ids","untracked","computed","v","i","_","idx","index","c","a","b","f","t","it","items","computed","DestroyRef","inject","signal","injectBitHistory","store","useBitStore","destroyRef","inject","DestroyRef","meta","signal","sub","computed","signal","computed","DestroyRef","inject","errorsEqual","a","b","keysA","keysB","k","injectBitScope","scopeName","store","useBitStore","initialStatus","status","signal","unsubscribe","newStatus","current","inject","DestroyRef","validate","valid","errors","getErrors","isValid","computed","isDirty","signal","computed","DestroyRef","inject","errorsEqual","a","b","keysA","keysB","k","injectBitSteps","scopeNames","store","useBitStore","stepIndex","signal","scope","computed","getCurrentScope","status","updateStatus","scopeName","newStatus","current","unsubscribe","inject","DestroyRef","validate","valid","errors","getErrors","next","scopeFields","newIndex","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","DestroyRef","signal","inject","injectBitWatch","path","store","useBitStore","destroyRef","inject","DestroyRef","valueSig","signal","getDeepValue","deepEqual","unsub","v","computed","inject","signal","injectBitUpload","fieldPath","uploadFn","deleteFile","store","inject","BIT_STORE_TOKEN","field","injectBitField","uploadKey","isUploading","signal","upload","file","result","error","message","remove","computed","signal","injectBitPersist","store","useBitStore","isSaving","signal","isRestoring","error","err"]}
1
+ {"version":3,"sources":["../../src/angular/provider.ts","../../src/angular/inject-bit-form.ts","../../src/angular/inject-bit-field.ts","../../src/angular/inject-bit-array.ts","../../src/angular/inject-bit-history.ts","../../src/angular/inject-bit-scope.ts","../../src/angular/inject-bit-steps.ts","../../src/angular/inject-bit-watch.ts","../../src/angular/inject-bit-upload.ts","../../src/angular/inject-bit-persist.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitStoreHooksApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitStoreApi<T>,\n): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: resolveBitStoreForHooks(store) };\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_TOKEN, { optional: true });\n\n if (!store) {\n throw new Error(\n \"BitForm: Não foi possível encontrar a BitStore. \" +\n 'Certifique-se de que você adicionou \"provideBitStore(store)\" nos providers do seu componente.',\n );\n }\n\n return store as BitStoreHooksApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { InjectBitFormResult } from \"./types\";\n\nexport function injectBitForm<T extends object>(): InjectBitFormResult<T> {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribeSelector(\n (state) => ({\n isValid: state.isValid,\n isSubmitting: state.isSubmitting,\n isDirty: state.isDirty,\n }),\n (nextState) => {\n stateSignal.set(nextState);\n },\n );\n\n destroyRef.onDestroy(() => sub());\n\n const isValid = computed(() => stateSignal().isValid);\n const isSubmitting = computed(() => stateSignal().isSubmitting);\n const isDirty = computed(() => stateSignal().isDirty);\n\n const controller = createFormController(\n store,\n {\n clearSubmissionState: () => {\n submitError.set(null);\n lastResponse.set(null);\n },\n setSubmissionResult: (result) => {\n lastResponse.set(result);\n },\n setSubmissionError: (error) => {\n submitError.set(error);\n },\n },\n { stopPropagation: true },\n );\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError: submitError.asReadonly(),\n lastResponse: lastResponse.asReadonly(),\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit: controller.onSubmit,\n reset: controller.reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.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 };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\nimport type { InjectBitFieldMeta, InjectBitFieldResult } from \"./types\";\n\nexport function injectBitField<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const rawError = computed(() => stateSignal().error);\n const touched = computed(() => stateSignal().touched);\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => stateSignal().isDirty);\n\n const isValidating = computed(() => stateSignal().isValidating);\n\n const isHidden = computed(() => stateSignal().isHidden);\n\n const isRequired = computed(() => stateSignal().isRequired);\n\n const invalid = computed(() => touched() && !!rawError());\n\n const resolvedMask = store.resolveMask(path as string);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (val: any) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => !!rawError());\n\n const update = (e: any) => setValue(e?.target?.value ?? e);\n\n return {\n // Main handlers and values (flat)\n value,\n displayValue,\n setValue,\n setBlur,\n update,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isDirty,\n isValidating,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { DestroyRef, signal, computed, inject, untracked } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 injectBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = inject(BIT_STORE_TOKEN);\n const destroyRef = inject(DestroyRef);\n\n const getRaw = () => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n return Array.isArray(val)\n ? (val as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n };\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(getRaw());\n const idsSig = signal<string[]>(valuesSig().map(generateId));\n\n const unsub = store.subscribePath(path, (value) => {\n const next = Array.isArray(value)\n ? (value as BitArrayItem<BitPathValue<TForm, P>>[])\n : [];\n const ids = untracked(idsSig);\n valuesSig.set(next);\n\n if (next.length !== ids.length) {\n if (next.length > ids.length) {\n idsSig.set([\n ...ids,\n ...Array.from({ length: next.length - ids.length }, generateId),\n ]);\n } else {\n idsSig.set(ids.slice(0, next.length));\n }\n }\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n if (store.unregisterPrefix) store.unregisterPrefix(`${path as string}.`);\n });\n\n return {\n fields: computed(() =>\n valuesSig().map((v, i) => ({\n key: idsSig()[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n ),\n length: computed(() => valuesSig().length),\n append: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [...ids, generateId()]);\n store.pushItem(path, v);\n },\n prepend: (v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => [generateId(), ...ids]);\n store.prependItem(path, v);\n },\n remove: (i: number) => {\n idsSig.update((ids) => ids.filter((_, idx) => idx !== i));\n store.removeItem(path, i);\n },\n insert: (index: number, v: BitArrayItem<BitPathValue<TForm, P>>) => {\n idsSig.update((ids) => {\n const c = [...ids];\n c.splice(index, 0, generateId());\n return c;\n });\n store.insertItem(path, index, v);\n },\n swap: (a: number, b: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n [c[a], c[b]] = [c[b], c[a]];\n return c;\n });\n store.swapItems(path, a, b);\n },\n move: (f: number, t: number) => {\n idsSig.update((ids) => {\n const c = [...ids];\n const [it] = c.splice(f, 1);\n c.splice(t, 0, it);\n return c;\n });\n store.moveItem(path, f, t);\n },\n replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => {\n idsSig.set(items.map(() => generateId()));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n idsSig.set([]);\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n","import { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitHistoryResult } from \"./types\";\n\nexport function injectBitHistory<\n T extends object = any,\n>(): InjectBitHistoryResult {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n\n const meta = signal(store.getHistoryMetadata());\n\n const sub = store.subscribe(() => {\n meta.set(store.getHistoryMetadata());\n });\n\n destroyRef.onDestroy(() => sub());\n\n return {\n canUndo: computed(() => meta().canUndo),\n canRedo: computed(() => meta().canRedo),\n historyIndex: computed(() => meta().historyIndex),\n historySize: computed(() => meta().historySize),\n undo: () => store.undo(),\n redo: () => store.redo(),\n };\n}\n","import { signal, computed, DestroyRef, inject } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./provider\";\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 injectBitScope(scopeName: string) {\n const store = useBitStore();\n const initialStatus = store.getStepStatus(scopeName);\n\n const status = signal<ScopeStatus>(initialStatus);\n\n const unsubscribe = store.subscribe(() => {\n const newStatus = store.getStepStatus(scopeName);\n const current = status();\n if (\n newStatus.hasErrors !== current.hasErrors ||\n newStatus.isDirty !== current.isDirty ||\n !errorsEqual(newStatus.errors, current.errors)\n ) {\n status.set(newStatus);\n }\n });\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => unsubscribe());\n } catch {}\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().hasErrors);\n const isDirty = computed(() => status().isDirty);\n const errors = computed(() => status().errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n unsubscribe,\n };\n}\n","import { signal, computed, DestroyRef, inject } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitStepsResult } 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 injectBitSteps(scopeNames: string[]): InjectBitStepsResult {\n const store = useBitStore();\n const stepIndex = signal(0);\n\n const scope = computed(() => scopeNames[stepIndex()] ?? \"\");\n\n const getCurrentScope = () => scopeNames[stepIndex()] ?? \"\";\n const status = signal<ScopeStatus>(store.getStepStatus(getCurrentScope()));\n\n const updateStatus = () => {\n const scopeName = getCurrentScope();\n const newStatus = store.getStepStatus(scopeName);\n const current = status();\n if (\n newStatus.hasErrors !== current.hasErrors ||\n newStatus.isDirty !== current.isDirty ||\n !errorsEqual(newStatus.errors, current.errors)\n ) {\n status.set(newStatus);\n }\n };\n\n const unsubscribe = store.subscribe(updateStatus);\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => unsubscribe());\n } catch {}\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = getCurrentScope();\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(getCurrentScope());\n\n const next = async (): Promise<boolean> => {\n const scopeName = getCurrentScope();\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 const newIndex = Math.min(stepIndex() + 1, scopeNames.length - 1);\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\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 const newIndex = Math.max(stepIndex() - 1, 0);\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\n };\n\n const goTo = (targetStep: number) => {\n const newIndex = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n stepIndex.set(newIndex);\n status.set(store.getStepStatus(scopeNames[newIndex] ?? \"\"));\n };\n\n const step = computed(() => stepIndex() + 1);\n const isFirst = computed(() => stepIndex() === 0);\n const isLast = computed(() => stepIndex() >= scopeNames.length - 1);\n const isValid = computed(() => !status().hasErrors);\n const isDirty = computed(() => status().isDirty);\n const errors = computed(() => status().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 { DestroyRef, signal, Signal, inject } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function injectBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): Signal<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n const destroyRef = inject(DestroyRef);\n const valueSig = signal<BitPathValue<TForm, P>>(\n getDeepValue(store.getState().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n { equal: deepEqual },\n );\n\n const unsub = store.watch(path, (v) => {\n valueSig.set(v as BitPathValue<TForm, P>);\n });\n\n destroyRef.onDestroy(unsub);\n\n return valueSig.asReadonly();\n}\n","/**\n * Angular Dependency Injection for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, inject, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport { injectBitField } from \"./inject-bit-field\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport type { InjectBitUploadResult } from \"./types\";\n\nexport function injectBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): InjectBitUploadResult {\n const store = inject(BIT_STORE_TOKEN);\n const field = injectBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = signal(false);\n\n const upload = async (file: File | null | undefined) => {\n if (!file) return;\n\n isUploading.set(true);\n store.setError(fieldPath, undefined);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKey = result.key;\n store.setError(fieldPath, undefined);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Upload failed\";\n store.setError(fieldPath, message);\n } finally {\n isUploading.set(false);\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 store.setError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKey = null;\n store.setError(fieldPath, undefined);\n };\n\n return {\n value: computed(() => field.value()),\n setValue: field.setValue,\n error: computed(() => field.meta.error()),\n isValidating: computed(() => !!field.meta.isValidating() || isUploading()),\n upload,\n remove,\n };\n}\n","import { signal } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitPersistResult } from \"./types\";\n\nexport function injectBitPersist<\n T extends object = any,\n>(): InjectBitPersistResult {\n const store = useBitStore<T>();\n const isSaving = signal(false);\n const isRestoring = signal(false);\n const error = signal<Error | null>(null);\n\n const restore = async (): Promise<boolean> => {\n isRestoring.set(true);\n error.set(null);\n\n try {\n return await store.restorePersisted();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n return false;\n } finally {\n isRestoring.set(false);\n }\n };\n\n const save = async (): Promise<void> => {\n isSaving.set(true);\n error.set(null);\n\n try {\n await store.forceSave();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n } finally {\n isSaving.set(false);\n }\n };\n\n const clear = async (): Promise<void> => {\n error.set(null);\n\n try {\n await store.clearPersisted();\n } catch (err) {\n error.set(err instanceof Error ? err : new Error(String(err)));\n }\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: isSaving.asReadonly(),\n isRestoring: isRestoring.asReadonly(),\n error: error.asReadonly(),\n },\n };\n}\n"],"mappings":"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","names":["inject","InjectionToken","BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","resolveBitStoreForHooks","useBitStore","inject","signal","computed","inject","DestroyRef","injectBitForm","store","useBitStore","destroyRef","inject","DestroyRef","stateSignal","signal","submitError","lastResponse","sub","state","nextState","isValid","computed","isSubmitting","isDirty","controller","createFormController","result","error","inject","DestroyRef","computed","signal","injectBitField","path","store","inject","BIT_STORE_TOKEN","stateSignal","signal","unsubscribe","subscribeFieldState","nextState","DestroyRef","value","computed","rawError","touched","error","isDirty","isValidating","isHidden","isRequired","invalid","resolvedMask","fieldController","createMaskedFieldController","displayValue","setValue","val","setBlur","hasError","e","DestroyRef","signal","computed","inject","untracked","generateId","injectBitArray","path","store","inject","BIT_STORE_TOKEN","destroyRef","DestroyRef","valuesSig","signal","val","getDeepValue","idsSig","unsub","value","next","ids","untracked","computed","v","i","_","idx","index","c","a","b","f","t","it","items","computed","DestroyRef","inject","signal","injectBitHistory","store","useBitStore","destroyRef","inject","DestroyRef","meta","signal","sub","computed","signal","computed","DestroyRef","inject","errorsEqual","a","b","keysA","keysB","k","injectBitScope","scopeName","store","useBitStore","initialStatus","status","signal","unsubscribe","newStatus","current","inject","DestroyRef","validate","valid","errors","getErrors","isValid","computed","isDirty","signal","computed","DestroyRef","inject","errorsEqual","a","b","keysA","keysB","k","injectBitSteps","scopeNames","store","useBitStore","stepIndex","signal","scope","computed","getCurrentScope","status","updateStatus","scopeName","newStatus","current","unsubscribe","inject","DestroyRef","validate","valid","errors","getErrors","next","scopeFields","newIndex","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","DestroyRef","signal","inject","injectBitWatch","path","store","useBitStore","destroyRef","inject","DestroyRef","valueSig","signal","getDeepValue","deepEqual","unsub","v","computed","inject","signal","injectBitUpload","fieldPath","uploadFn","deleteFile","store","inject","BIT_STORE_TOKEN","field","injectBitField","uploadKey","isUploading","signal","upload","file","result","error","message","remove","computed","signal","injectBitPersist","store","useBitStore","isSaving","signal","isRestoring","error","err"]}
@@ -1,28 +1,4 @@
1
- interface BitMask {
2
- format: (value: any) => string;
3
- parse: (value: string) => any;
4
- }
5
- type BitBuiltInMaskName = "brl" | "usd" | "eur" | "gbp" | "jpy" | "percent" | "decimal" | "int" | "integer" | "cpf" | "cnpj" | "cpfCnpj" | "rg" | "cep" | "cnh" | "plate" | "phone" | "landline" | "date" | "time" | "usPhone" | "zipCode" | "dateUS" | "ssn" | "cc" | "cvv" | "dateISO" | "ip" | "ipv6" | "mac" | "color" | "iban";
6
- type BitMaskName = BitBuiltInMaskName | (string & {});
7
- interface PatternMaskOptions {
8
- allowChars?: string;
9
- customParse?: (value: string) => any;
10
- saveRaw?: boolean;
11
- guide?: boolean;
12
- placeholderChar?: string;
13
- }
14
- interface CurrencyMaskConfig {
15
- prefix?: string;
16
- suffix?: string;
17
- thousand: string;
18
- decimal: string;
19
- precision?: number;
20
- allowNegative?: boolean;
21
- saveRaw?: boolean;
22
- }
23
- interface DateMaskConfig extends PatternMaskOptions {
24
- format?: "DD/MM/YYYY" | "YYYY-MM-DD";
25
- }
1
+ import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.cjs';
26
2
 
27
3
  type DeepPartial<T> = T extends object ? {
28
4
  [P in keyof T]?: DeepPartial<T[P]>;
@@ -242,4 +218,17 @@ type BitPathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ?
242
218
  type BitArrayPath<T> = BitPath<T> extends infer P ? P extends string ? BitPathValue<T, P> extends readonly any[] ? P : never : never : never;
243
219
  type BitArrayItem<A> = A extends readonly (infer U)[] ? U : A extends (infer U)[] ? U : never;
244
220
 
245
- export type { BitPersistConfig as A, BitConfig as B, CurrencyMaskConfig as C, DevToolsOptions as D, BitPersistMode as E, BitPersistStorageAdapter as F, BitPluginContext as G, BitPluginErrorEvent as H, BitPluginHooks as I, BitTouched as J, BitTransformFn as K, BitValidationConfig as L, PatternMaskOptions as P, ScopeStatus as S, ValidatorFn as V, BitMask as a, BitFieldDefinition as b, BitPersistResolvedConfig as c, BitPlugin as d, BitState as e, BitPath as f, BitPathValue as g, DeepPartial as h, BitErrors as i, BitMaskName as j, BitArrayPath as k, BitArrayItem as l, BitFieldState as m, ValidateScopeResult as n, DateMaskConfig as o, BitBuiltInMaskName as p, BitAfterSubmitEvent as q, BitAfterValidateEvent as r, BitBeforeSubmitEvent as s, BitBeforeValidateEvent as t, BitComputedFn as u, BitFieldChangeEvent as v, BitFieldChangeMeta as w, BitFieldConditional as x, BitFieldValidation as y, BitHistoryConfig as z };
221
+ type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
222
+ interface BitFormGlobal {
223
+ stores: Record<string, unknown>;
224
+ listeners: Set<BitBusListener>;
225
+ dispatch: (storeId: string, state: BitState<any>) => void;
226
+ subscribe: (fn: BitBusListener) => () => void;
227
+ }
228
+
229
+ declare global {
230
+ var __BIT_FORM__: BitFormGlobal | undefined;
231
+ }
232
+ declare const bitBus: BitFormGlobal;
233
+
234
+ export { type BitTouched as A, type BitState as B, type BitValidationConfig as C, type DeepPartial as D, type ValidatorFn as E, bitBus as F, type DevToolsOptions as G, type BitPersistResolvedConfig as H, type ScopeStatus as S, type ValidateScopeResult as V, type BitTransformFn as a, type BitFieldChangeEvent as b, type BitBeforeSubmitEvent as c, type BitAfterSubmitEvent as d, type BitFieldDefinition as e, type BitErrors as f, type BitBeforeValidateEvent as g, type BitAfterValidateEvent as h, type BitConfig as i, type BitComputedFn as j, type BitPath as k, type BitFieldState as l, type BitPathValue as m, type BitFieldChangeMeta as n, type BitArrayPath as o, type BitArrayItem as p, type BitFieldConditional as q, type BitFieldValidation as r, type BitHistoryConfig as s, type BitPersistConfig as t, type BitPersistMode as u, type BitPersistStorageAdapter as v, type BitPlugin as w, type BitPluginContext as x, type BitPluginErrorEvent as y, type BitPluginHooks as z };
@@ -1,28 +1,4 @@
1
- interface BitMask {
2
- format: (value: any) => string;
3
- parse: (value: string) => any;
4
- }
5
- type BitBuiltInMaskName = "brl" | "usd" | "eur" | "gbp" | "jpy" | "percent" | "decimal" | "int" | "integer" | "cpf" | "cnpj" | "cpfCnpj" | "rg" | "cep" | "cnh" | "plate" | "phone" | "landline" | "date" | "time" | "usPhone" | "zipCode" | "dateUS" | "ssn" | "cc" | "cvv" | "dateISO" | "ip" | "ipv6" | "mac" | "color" | "iban";
6
- type BitMaskName = BitBuiltInMaskName | (string & {});
7
- interface PatternMaskOptions {
8
- allowChars?: string;
9
- customParse?: (value: string) => any;
10
- saveRaw?: boolean;
11
- guide?: boolean;
12
- placeholderChar?: string;
13
- }
14
- interface CurrencyMaskConfig {
15
- prefix?: string;
16
- suffix?: string;
17
- thousand: string;
18
- decimal: string;
19
- precision?: number;
20
- allowNegative?: boolean;
21
- saveRaw?: boolean;
22
- }
23
- interface DateMaskConfig extends PatternMaskOptions {
24
- format?: "DD/MM/YYYY" | "YYYY-MM-DD";
25
- }
1
+ import { B as BitMask, a as BitMaskName } from './types-D8DgIUhJ.js';
26
2
 
27
3
  type DeepPartial<T> = T extends object ? {
28
4
  [P in keyof T]?: DeepPartial<T[P]>;
@@ -242,4 +218,17 @@ type BitPathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ?
242
218
  type BitArrayPath<T> = BitPath<T> extends infer P ? P extends string ? BitPathValue<T, P> extends readonly any[] ? P : never : never : never;
243
219
  type BitArrayItem<A> = A extends readonly (infer U)[] ? U : A extends (infer U)[] ? U : never;
244
220
 
245
- export type { BitPersistConfig as A, BitConfig as B, CurrencyMaskConfig as C, DevToolsOptions as D, BitPersistMode as E, BitPersistStorageAdapter as F, BitPluginContext as G, BitPluginErrorEvent as H, BitPluginHooks as I, BitTouched as J, BitTransformFn as K, BitValidationConfig as L, PatternMaskOptions as P, ScopeStatus as S, ValidatorFn as V, BitMask as a, BitFieldDefinition as b, BitPersistResolvedConfig as c, BitPlugin as d, BitState as e, BitPath as f, BitPathValue as g, DeepPartial as h, BitErrors as i, BitMaskName as j, BitArrayPath as k, BitArrayItem as l, BitFieldState as m, ValidateScopeResult as n, DateMaskConfig as o, BitBuiltInMaskName as p, BitAfterSubmitEvent as q, BitAfterValidateEvent as r, BitBeforeSubmitEvent as s, BitBeforeValidateEvent as t, BitComputedFn as u, BitFieldChangeEvent as v, BitFieldChangeMeta as w, BitFieldConditional as x, BitFieldValidation as y, BitHistoryConfig as z };
221
+ type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
222
+ interface BitFormGlobal {
223
+ stores: Record<string, unknown>;
224
+ listeners: Set<BitBusListener>;
225
+ dispatch: (storeId: string, state: BitState<any>) => void;
226
+ subscribe: (fn: BitBusListener) => () => void;
227
+ }
228
+
229
+ declare global {
230
+ var __BIT_FORM__: BitFormGlobal | undefined;
231
+ }
232
+ declare const bitBus: BitFormGlobal;
233
+
234
+ export { type BitTouched as A, type BitState as B, type BitValidationConfig as C, type DeepPartial as D, type ValidatorFn as E, bitBus as F, type DevToolsOptions as G, type BitPersistResolvedConfig as H, type ScopeStatus as S, type ValidateScopeResult as V, type BitTransformFn as a, type BitFieldChangeEvent as b, type BitBeforeSubmitEvent as c, type BitAfterSubmitEvent as d, type BitFieldDefinition as e, type BitErrors as f, type BitBeforeValidateEvent as g, type BitAfterValidateEvent as h, type BitConfig as i, type BitComputedFn as j, type BitPath as k, type BitFieldState as l, type BitPathValue as m, type BitFieldChangeMeta as n, type BitArrayPath as o, type BitArrayItem as p, type BitFieldConditional as q, type BitFieldValidation as r, type BitHistoryConfig as s, type BitPersistConfig as t, type BitPersistMode as u, type BitPersistStorageAdapter as v, type BitPlugin as w, type BitPluginContext as x, type BitPluginErrorEvent as y, type BitPluginHooks as z };
@@ -1,2 +1,2 @@
1
- import{a as I,b as w}from"./chunk-O5RRLZR7.js";import{Y as D,e as k,f as E}from"./chunk-2UVV7SU4.js";import{createContext as q,useContext as U}from"react";import{jsx as L}from"react/jsx-runtime";var A=q(null),at=({store:t,children:e})=>L(A.Provider,{value:D(t),children:e}),b=()=>{let t=U(A);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as y,useSyncExternalStore as W,useMemo as C,useRef as _,useState as M}from"react";function St(){let t=b(),[e,s]=M(null),[m,o]=M(null),n=_(null),u=y(()=>{let g=t.getState(),p={isValid:g.isValid,isDirty:g.isDirty,isSubmitting:g.isSubmitting};return n.current&&n.current.isValid===p.isValid&&n.current.isDirty===p.isDirty&&n.current.isSubmitting===p.isSubmitting?n.current:(n.current=p,p)},[t]),c=y(g=>t.subscribeSelector(p=>({isValid:p.isValid,isDirty:p.isDirty,isSubmitting:p.isSubmitting}),()=>g()),[t]),i=W(c,u,u),r=C(()=>I(t,{clearSubmissionState:()=>{s(null),o(null)},setSubmissionResult:g=>{o(g)},setSubmissionError:g=>{s(g)}}),[t]),a=y(r.submit,[r]),l=y(r.onSubmit,[r]),d=y(r.reset,[r]),F=y(r.getValues,[r]),v=y(r.getErrors,[r]),S=y(r.getTouched,[r]),f=y(r.getDirtyValues,[r]);return{meta:C(()=>({...i,submitError:e,lastResponse:m}),[i,e,m]),getValues:F,getErrors:v,getTouched:S,getDirtyValues:f,submit:a,onSubmit:l,reset:d,setField:t.setField.bind(t),blurField:t.blurField.bind(t),replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),validate:t.validate.bind(t)}}import{useCallback as j,useSyncExternalStore as $,useState as z,useMemo as H,useEffect as G}from"react";var B=()=>Math.random().toString(36).substring(2,9);function Ft(t){let e=b(),s=j(()=>{let r=e.getState(),a=E(r.values,t);return Array.isArray(a)?a:[]},[e,t]),m=j(r=>e.subscribePath(t,()=>r()),[e,t]),o=$(m,s,s),[n,u]=z(()=>o.map(B));G(()=>{o.length!==n.length&&u(r=>{if(o.length>r.length){let a=o.length-r.length;return[...r,...Array(a).fill(null).map(B)]}return r.slice(0,o.length)})},[o.length]);let c=H(()=>({append:r=>{u(a=>[...a,B()]),e.pushItem(t,r)},prepend:r=>{u(a=>[B(),...a]),e.prependItem(t,r)},insert:(r,a)=>{u(l=>{let d=[...l];return d.splice(r,0,B()),d}),e.insertItem(t,r,a)},remove:r=>{u(a=>a.filter((l,d)=>d!==r)),e.removeItem(t,r)},move:(r,a)=>{u(l=>{let d=[...l],[F]=d.splice(r,1);return d.splice(a,0,F),d}),e.moveItem(t,r,a)},swap:(r,a)=>{u(l=>{let d=[...l];return[d[r],d[a]]=[d[a],d[r]],d}),e.swapItems(t,r,a)},replace:r=>{u(r.map(B)),e.setField(t,r)},clear:()=>{u([]),e.setField(t,[])}}),[e,t]);return{fields:H(()=>o.map((r,a)=>({key:n[a]||`temp-${a}`,value:r,index:a})),[o,n]),length:o.length,...c}}import{useCallback as T,useSyncExternalStore as J,useRef as K}from"react";function Tt(t){let e=b(),s=K(null),m=T(()=>{let c=e.getStepStatus(t);return s.current&&s.current.hasErrors===c.hasErrors&&s.current.isDirty===c.isDirty&&Object.keys(s.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([i,r])=>s.current.errors[i]===r)?s.current:(s.current=c,c)},[e,t]),o=J(e.subscribe.bind(e),m,m),n=T(async()=>{let c=await e.validate({scope:t}),i=e.getStepErrors(t);return{valid:c,errors:i}},[e,t]),u=T(()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:n,getErrors:u,isValid:!o.hasErrors,isDirty:o.isDirty}}import{useCallback as P,useSyncExternalStore as Q,useRef as X,useState as Y}from"react";function Dt(t){let e=b(),[s,m]=Y(0),o=t[s]??"",n=X(null),u=P(()=>{let S=e.getStepStatus(o);return n.current&&n.current.hasErrors===S.hasErrors&&n.current.isDirty===S.isDirty&&Object.keys(n.current.errors).length===Object.keys(S.errors).length&&Object.entries(S.errors).every(([f,h])=>n.current.errors[f]===h)?n.current:(n.current=S,S)},[e,o]),c=Q(e.subscribe.bind(e),u,u),i=P(async()=>{let S=await e.validate({scope:o}),f=e.getStepErrors(o);return{valid:S,errors:f}},[e,o]),r=P(()=>e.getStepErrors(o),[e,o]),a=P(async()=>{let S=e.getScopeFields(o);if(e.hasValidationsInProgress(S))return!1;let f=await e.validate({scope:o});if(f)m(h=>Math.min(h+1,t.length-1));else{let h=e.getStepErrors(o),g=Object.keys(h);g.length>0&&e.markFieldsTouched(g)}return f},[e,o,t.length]),l=P(()=>{m(S=>Math.max(S-1,0))},[]),d=P(S=>{m(Math.max(0,Math.min(S-1,t.length-1)))},[t.length]),F=s===0,v=s>=t.length-1;return{step:s+1,stepIndex:s,scope:o,next:a,prev:l,goTo:d,isFirst:F,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:i,getErrors:r}}import{useCallback as O,useSyncExternalStore as Z,useRef as N}from"react";function Ht(t){let e=b(),s=N(null),m=O(()=>{let n=E(e.getState().values,t);return s.current!==null&&k(s.current,n)?s.current:(s.current=n,n)},[e,t]),o=O(n=>e.subscribe(n),[e]);return Z(o,m,m)}import{useCallback as R,useMemo as tt,useState as x}from"react";function Lt(){let t=b(),[e,s]=x(!1),[m,o]=x(!1),[n,u]=x(null),c=R(async()=>{o(!0),u(null);try{return await t.restorePersisted()}catch(l){return u(l instanceof Error?l:new Error(String(l))),!1}finally{o(!1)}},[t]),i=R(async()=>{s(!0),u(null);try{await t.forceSave()}catch(l){u(l instanceof Error?l:new Error(String(l)))}finally{s(!1)}},[t]),r=R(async()=>{u(null);try{await t.clearPersisted()}catch(l){u(l instanceof Error?l:new Error(String(l)))}},[t]),a=tt(()=>({isSaving:e,isRestoring:m,error:n}),[e,m,n]);return{restore:c,save:i,clear:r,meta:a}}import{useCallback as V,useSyncExternalStore as et,useRef as rt,useEffect as st}from"react";function Gt(t){let e=b(),s=rt(null);st(()=>()=>{e.unregisterField&&e.unregisterField(t)},[e,t]);let m=V(()=>{let i=e.getFieldState(t);if(s.current&&s.current.value===i.value&&s.current.error===i.error&&s.current.touched===i.touched&&s.current.isHidden===i.isHidden&&s.current.isRequired===i.isRequired&&s.current.isDirty===i.isDirty&&s.current.isValidating===i.isValidating)return s.current;let r={value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating};return s.current=r,r},[e,t]),o=V(i=>w(e,t,()=>i()),[e,t]),n=et(o,m,m),u=V(i=>e.setField(t,i),[e,t]),c=V(()=>e.blurField(t),[e,t]);return{fieldState:n,setValue:u,setBlur:c,store:e}}export{at as a,b,St as c,Gt as d,Ft as e,Tt as f,Dt as g,Ht as h,Lt as i};
2
- //# sourceMappingURL=chunk-TRPMTJ35.js.map
1
+ import{a as I,b as w}from"./chunk-FEW3ABPD.js";import{d as k,e as E,l as D}from"./chunk-ULC4OPIQ.js";import{createContext as q,useContext as U}from"react";import{jsx as L}from"react/jsx-runtime";var A=q(null),at=({store:t,children:e})=>L(A.Provider,{value:D(t),children:e}),b=()=>{let t=U(A);if(!t)throw new Error("BitForm hooks devem ser usados dentro de um BitFormProvider");return t};import{useCallback as p,useSyncExternalStore as W,useMemo as C,useRef as _,useState as M}from"react";function St(){let t=b(),[e,s]=M(null),[m,o]=M(null),n=_(null),u=p(()=>{let g=t.getState(),y={isValid:g.isValid,isDirty:g.isDirty,isSubmitting:g.isSubmitting};return n.current&&n.current.isValid===y.isValid&&n.current.isDirty===y.isDirty&&n.current.isSubmitting===y.isSubmitting?n.current:(n.current=y,y)},[t]),c=p(g=>t.subscribeSelector(y=>({isValid:y.isValid,isDirty:y.isDirty,isSubmitting:y.isSubmitting}),()=>g()),[t]),i=W(c,u,u),r=C(()=>I(t,{clearSubmissionState:()=>{s(null),o(null)},setSubmissionResult:g=>{o(g)},setSubmissionError:g=>{s(g)}}),[t]),a=p(r.submit,[r]),l=p(r.onSubmit,[r]),d=p(r.reset,[r]),F=p(r.getValues,[r]),v=p(r.getErrors,[r]),S=p(r.getTouched,[r]),f=p(r.getDirtyValues,[r]);return{meta:C(()=>({...i,submitError:e,lastResponse:m}),[i,e,m]),getValues:F,getErrors:v,getTouched:S,getDirtyValues:f,submit:a,onSubmit:l,reset:d,setField:t.setField.bind(t),blurField:t.blurField.bind(t),replaceValues:t.replaceValues.bind(t),hydrate:t.hydrate.bind(t),rebase:t.rebase.bind(t),setError:t.setError.bind(t),setErrors:t.setErrors.bind(t),setServerErrors:t.setServerErrors.bind(t),validate:t.validate.bind(t)}}import{useCallback as j,useSyncExternalStore as $,useState as z,useMemo as H,useEffect as G}from"react";var B=()=>Math.random().toString(36).substring(2,9);function Ft(t){let e=b(),s=j(()=>{let r=e.getState(),a=E(r.values,t);return Array.isArray(a)?a:[]},[e,t]),m=j(r=>e.subscribePath(t,()=>r()),[e,t]),o=$(m,s,s),[n,u]=z(()=>o.map(B));G(()=>{o.length!==n.length&&u(r=>{if(o.length>r.length){let a=o.length-r.length;return[...r,...Array(a).fill(null).map(B)]}return r.slice(0,o.length)})},[o.length]);let c=H(()=>({append:r=>{u(a=>[...a,B()]),e.pushItem(t,r)},prepend:r=>{u(a=>[B(),...a]),e.prependItem(t,r)},insert:(r,a)=>{u(l=>{let d=[...l];return d.splice(r,0,B()),d}),e.insertItem(t,r,a)},remove:r=>{u(a=>a.filter((l,d)=>d!==r)),e.removeItem(t,r)},move:(r,a)=>{u(l=>{let d=[...l],[F]=d.splice(r,1);return d.splice(a,0,F),d}),e.moveItem(t,r,a)},swap:(r,a)=>{u(l=>{let d=[...l];return[d[r],d[a]]=[d[a],d[r]],d}),e.swapItems(t,r,a)},replace:r=>{u(r.map(B)),e.setField(t,r)},clear:()=>{u([]),e.setField(t,[])}}),[e,t]);return{fields:H(()=>o.map((r,a)=>({key:n[a]||`temp-${a}`,value:r,index:a})),[o,n]),length:o.length,...c}}import{useCallback as T,useSyncExternalStore as J,useRef as K}from"react";function Tt(t){let e=b(),s=K(null),m=T(()=>{let c=e.getStepStatus(t);return s.current&&s.current.hasErrors===c.hasErrors&&s.current.isDirty===c.isDirty&&Object.keys(s.current.errors).length===Object.keys(c.errors).length&&Object.entries(c.errors).every(([i,r])=>s.current.errors[i]===r)?s.current:(s.current=c,c)},[e,t]),o=J(e.subscribe.bind(e),m,m),n=T(async()=>{let c=await e.validate({scope:t}),i=e.getStepErrors(t);return{valid:c,errors:i}},[e,t]),u=T(()=>e.getStepErrors(t),[e,t]);return{scopeName:t,status:o,errors:o.errors,validate:n,getErrors:u,isValid:!o.hasErrors,isDirty:o.isDirty}}import{useCallback as P,useSyncExternalStore as Q,useRef as X,useState as Y}from"react";function Dt(t){let e=b(),[s,m]=Y(0),o=t[s]??"",n=X(null),u=P(()=>{let S=e.getStepStatus(o);return n.current&&n.current.hasErrors===S.hasErrors&&n.current.isDirty===S.isDirty&&Object.keys(n.current.errors).length===Object.keys(S.errors).length&&Object.entries(S.errors).every(([f,h])=>n.current.errors[f]===h)?n.current:(n.current=S,S)},[e,o]),c=Q(e.subscribe.bind(e),u,u),i=P(async()=>{let S=await e.validate({scope:o}),f=e.getStepErrors(o);return{valid:S,errors:f}},[e,o]),r=P(()=>e.getStepErrors(o),[e,o]),a=P(async()=>{let S=e.getScopeFields(o);if(e.hasValidationsInProgress(S))return!1;let f=await e.validate({scope:o});if(f)m(h=>Math.min(h+1,t.length-1));else{let h=e.getStepErrors(o),g=Object.keys(h);g.length>0&&e.markFieldsTouched(g)}return f},[e,o,t.length]),l=P(()=>{m(S=>Math.max(S-1,0))},[]),d=P(S=>{m(Math.max(0,Math.min(S-1,t.length-1)))},[t.length]),F=s===0,v=s>=t.length-1;return{step:s+1,stepIndex:s,scope:o,next:a,prev:l,goTo:d,isFirst:F,isLast:v,status:c,errors:c.errors,isValid:!c.hasErrors,isDirty:c.isDirty,validate:i,getErrors:r}}import{useCallback as O,useSyncExternalStore as Z,useRef as N}from"react";function Ht(t){let e=b(),s=N(null),m=O(()=>{let n=E(e.getState().values,t);return s.current!==null&&k(s.current,n)?s.current:(s.current=n,n)},[e,t]),o=O(n=>e.subscribe(n),[e]);return Z(o,m,m)}import{useCallback as R,useMemo as tt,useState as x}from"react";function Lt(){let t=b(),[e,s]=x(!1),[m,o]=x(!1),[n,u]=x(null),c=R(async()=>{o(!0),u(null);try{return await t.restorePersisted()}catch(l){return u(l instanceof Error?l:new Error(String(l))),!1}finally{o(!1)}},[t]),i=R(async()=>{s(!0),u(null);try{await t.forceSave()}catch(l){u(l instanceof Error?l:new Error(String(l)))}finally{s(!1)}},[t]),r=R(async()=>{u(null);try{await t.clearPersisted()}catch(l){u(l instanceof Error?l:new Error(String(l)))}},[t]),a=tt(()=>({isSaving:e,isRestoring:m,error:n}),[e,m,n]);return{restore:c,save:i,clear:r,meta:a}}import{useCallback as V,useSyncExternalStore as et,useRef as rt,useEffect as st}from"react";function Gt(t){let e=b(),s=rt(null);st(()=>()=>{e.unregisterField&&e.unregisterField(t)},[e,t]);let m=V(()=>{let i=e.getFieldState(t);if(s.current&&s.current.value===i.value&&s.current.error===i.error&&s.current.touched===i.touched&&s.current.isHidden===i.isHidden&&s.current.isRequired===i.isRequired&&s.current.isDirty===i.isDirty&&s.current.isValidating===i.isValidating)return s.current;let r={value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating};return s.current=r,r},[e,t]),o=V(i=>w(e,t,()=>i()),[e,t]),n=et(o,m,m),u=V(i=>e.setField(t,i),[e,t]),c=V(()=>e.blurField(t),[e,t]);return{fieldState:n,setValue:u,setBlur:c,store:e}}export{at as a,b,St as c,Gt as d,Ft as e,Tt as f,Dt as g,Ht as h,Lt as i};
2
+ //# sourceMappingURL=chunk-3MUULXXZ.js.map