@lehnihon/bit-form 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) 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 +71 -45
  4. package/dist/angular/index.d.ts +71 -45
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/bus-C1xKmQdw.d.cts +144 -0
  8. package/dist/bus-C1xKmQdw.d.ts +144 -0
  9. package/dist/{chunk-ET36BANJ.js → chunk-5JV3QKOT.js} +2 -2
  10. package/dist/chunk-5JV3QKOT.js.map +1 -0
  11. package/dist/{chunk-PCVPCFPX.cjs → chunk-CPFHKRLU.cjs} +2 -2
  12. package/dist/chunk-CPFHKRLU.cjs.map +1 -0
  13. package/dist/{chunk-VFLQH47Q.cjs → chunk-SIM4YIOW.cjs} +3 -3
  14. package/dist/chunk-SIM4YIOW.cjs.map +1 -0
  15. package/dist/{chunk-NDFMZWBP.js → chunk-XHZAMKSZ.js} +3 -3
  16. package/dist/chunk-XHZAMKSZ.js.map +1 -0
  17. package/dist/devtools/bridge.cjs +1 -1
  18. package/dist/devtools/bridge.js +1 -1
  19. package/dist/devtools/index.cjs +1 -1
  20. package/dist/devtools/index.js +1 -1
  21. package/dist/index.cjs +1 -1
  22. package/dist/index.d.cts +5 -24
  23. package/dist/index.d.ts +5 -24
  24. package/dist/index.js +1 -1
  25. package/dist/public-types-B3jU1R2E.d.cts +70 -0
  26. package/dist/public-types-By_9Weno.d.ts +70 -0
  27. package/dist/react/index.cjs +1 -1
  28. package/dist/react/index.cjs.map +1 -1
  29. package/dist/react/index.d.cts +6 -46
  30. package/dist/react/index.d.ts +6 -46
  31. package/dist/react/index.js +1 -1
  32. package/dist/react/index.js.map +1 -1
  33. package/dist/react-native/index.cjs +1 -1
  34. package/dist/react-native/index.cjs.map +1 -1
  35. package/dist/react-native/index.d.cts +15 -4
  36. package/dist/react-native/index.d.ts +15 -4
  37. package/dist/react-native/index.js +1 -1
  38. package/dist/react-native/index.js.map +1 -1
  39. package/dist/resolvers/joi.d.cts +1 -1
  40. package/dist/resolvers/joi.d.ts +1 -1
  41. package/dist/resolvers/yup.d.cts +1 -1
  42. package/dist/resolvers/yup.d.ts +1 -1
  43. package/dist/resolvers/zod.d.cts +1 -1
  44. package/dist/resolvers/zod.d.ts +1 -1
  45. package/dist/{use-bit-watch-BLCTa7d4.d.cts → use-bit-watch-DVxSlp2A.d.ts} +92 -28
  46. package/dist/{use-bit-watch-iCGj-kYp.d.ts → use-bit-watch-v4eamRCT.d.cts} +92 -28
  47. package/dist/vue/index.cjs +1 -1
  48. package/dist/vue/index.cjs.map +1 -1
  49. package/dist/vue/index.d.cts +65 -45
  50. package/dist/vue/index.d.ts +65 -45
  51. package/dist/vue/index.js +1 -1
  52. package/dist/vue/index.js.map +1 -1
  53. package/package.json +7 -2
  54. package/dist/bus-uG4EmM-Z.d.cts +0 -295
  55. package/dist/bus-uG4EmM-Z.d.ts +0 -295
  56. package/dist/chunk-ET36BANJ.js.map +0 -1
  57. package/dist/chunk-NDFMZWBP.js.map +0 -1
  58. package/dist/chunk-PCVPCFPX.cjs.map +0 -1
  59. package/dist/chunk-VFLQH47Q.cjs.map +0 -1
  60. package/dist/index-1fP1eJH8.d.ts +0 -211
  61. package/dist/index-9vxGUNPP.d.cts +0 -211
@@ -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 _chunkVFLQH47Qcjs = require('../chunk-VFLQH47Q.cjs');var _core = require('@angular/core');var F=new (0, _core.InjectionToken)("BIT_STORE");function $(t){return{provide:F,useValue:t}}function f(){let t=_core.inject.call(void 0, F,{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 Q(){let t=f(),e=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, t.getState()),r=_core.signal.call(void 0, null),n=_core.signal.call(void 0, null),a=t.subscribe(()=>{o.set(t.getState())});e.onDestroy(()=>a());let g=_core.computed.call(void 0, ()=>o().isValid),s=_core.computed.call(void 0, ()=>o().isSubmitting),i=_core.computed.call(void 0, ()=>o().isDirty),u=()=>o().values,c=()=>o().errors,y=()=>o().touched,V=()=>t.getDirtyValues(),x=T=>B=>(_optionalChain([B, 'optionalAccess', _2 => _2.preventDefault, 'call', _3 => _3()]),_optionalChain([B, 'optionalAccess', _4 => _4.stopPropagation, 'call', _5 => _5()]),t.submit(T)),E=T=>B=>(_optionalChain([B, 'optionalAccess', _6 => _6.preventDefault, 'call', _7 => _7()]),_optionalChain([B, 'optionalAccess', _8 => _8.stopPropagation, 'call', _9 => _9()]),r.set(null),t.submit(async(l,m)=>{try{let d=await T(l,m);n.set(d),r.set(null)}catch(d){_chunkVFLQH47Qcjs.h.call(void 0, d)?t.setServerErrors(_chunkVFLQH47Qcjs.i.call(void 0, d)):r.set(d instanceof Error?d:new Error(String(d)))}})),b=()=>{t.reset(),r.set(null),n.set(null)};return{meta:{isValid:g,isDirty:i,isSubmitting:s,submitError:r.asReadonly(),lastResponse:n.asReadonly()},getValues:u,getErrors:c,getTouched:y,getDirtyValues:V,submit:x,onSubmit:E,reset:b,setValues:t.setValues.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),mutations:{pushItem:t.pushItem.bind(t),prependItem:t.prependItem.bind(t),removeItem:t.removeItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t)}}}function A(t,e,o){let r=_core.inject.call(void 0, F),n=_core.signal.call(void 0, r.getState()),a=r.subscribe(()=>{n.set(r.getState())});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{a(),r.unregisterField&&r.unregisterField(t)}),e&&r.registerField(t,e);let g=_core.computed.call(void 0, ()=>_chunkVFLQH47Qcjs.e.call(void 0, n().values,t)),s=_core.computed.call(void 0, ()=>n().errors[t]),i=_core.computed.call(void 0, ()=>!!n().touched[t]),u=_core.computed.call(void 0, ()=>i()?s():void 0),c=_core.computed.call(void 0, ()=>(n(),r.isFieldDirty(t))),y=_core.computed.call(void 0, ()=>(n(),r.isFieldValidating(t))),V=_core.computed.call(void 0, ()=>(n(),r.isHidden(t))),x=_core.computed.call(void 0, ()=>(n(),r.isRequired(t))),E=_core.computed.call(void 0, ()=>i()&&!!s()),b=_nullishCoalesce(_optionalChain([o, 'optionalAccess', _10 => _10.mask]), () => (_optionalChain([r, 'access', _11 => _11.config, 'access', _12 => _12.fields, 'optionalAccess', _13 => _13[t], 'optionalAccess', _14 => _14.mask]))),v=b?typeof b=="string"?r.config.masks[b]:b:void 0,T=_core.computed.call(void 0, ()=>{let p=g();return p==null||p===""?"":v?v.format(p):String(p)}),B=p=>{if(!v){r.setField(t,p);return}let j=String(_nullishCoalesce(p, () => ("")));r.setField(t,v.parse(j))},l=()=>r.blurField(t),m=_core.computed.call(void 0, ()=>!!s());return{value:g,displayValue:T,setValue:B,setBlur:l,update:p=>B(_nullishCoalesce(_optionalChain([p, 'optionalAccess', _15 => _15.target, 'optionalAccess', _16 => _16.value]), () => (p))),meta:{error:u,touched:i,invalid:E,isDirty:c,isValidating:y,isHidden:V,isRequired:x,hasError:m}}}var h=()=>Math.random().toString(36).substring(2,9);function tt(t){let e=_core.inject.call(void 0, F),o=_core.inject.call(void 0, _core.DestroyRef),r=()=>{let s=_chunkVFLQH47Qcjs.e.call(void 0, e.getState().values,t);return Array.isArray(s)?s:[]},n=_core.signal.call(void 0, r()),a=_core.signal.call(void 0, n().map(h)),g=e.subscribe(()=>{let s=r(),i=_core.untracked.call(void 0, a);n.set(s),s.length!==i.length&&(s.length>i.length?a.set([...i,...Array.from({length:s.length-i.length},h)]):a.set(i.slice(0,s.length)))});return o.onDestroy(()=>{g(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:_core.computed.call(void 0, ()=>n().map((s,i)=>({key:a()[i]||`temp-${i}`,value:s,index:i}))),length:_core.computed.call(void 0, ()=>n().length),append:s=>{a.update(i=>[...i,h()]),e.pushItem(t,s)},prepend:s=>{a.update(i=>[h(),...i]),e.prependItem(t,s)},remove:s=>{a.update(i=>i.filter((u,c)=>c!==s)),e.removeItem(t,s)},insert:(s,i)=>{a.update(u=>{let c=[...u];return c.splice(s,0,h()),c}),e.insertItem(t,s,i)},swap:(s,i)=>{a.update(u=>{let c=[...u];return[c[s],c[i]]=[c[i],c[s]],c}),e.swapItems(t,s,i)},move:(s,i)=>{a.update(u=>{let c=[...u],[y]=c.splice(s,1);return c.splice(i,0,y),c}),e.moveItem(t,s,i)},replace:s=>{a.set(s.map(()=>h())),e.setField(t,s)},clear:()=>{a.set([]),e.setField(t,[])}}}function st(){let t=f(),e=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, t.getHistoryMetadata()),r=t.subscribe(()=>{o.set(t.getHistoryMetadata())});return e.onDestroy(()=>r()),{canUndo:_core.computed.call(void 0, ()=>o().canUndo),canRedo:_core.computed.call(void 0, ()=>o().canRedo),historyIndex:_core.computed.call(void 0, ()=>o().historyIndex),historySize:_core.computed.call(void 0, ()=>o().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}function ct(t,e){let o=Object.keys(t),r=Object.keys(e);return o.length!==r.length?!1:o.every(n=>t[n]===e[n])}function ut(t){let e=f(),o=e.getStepStatus(t),r=_core.signal.call(void 0, o),n=e.subscribe(()=>{let c=e.getStepStatus(t),y=r();(c.hasErrors!==y.hasErrors||c.isDirty!==y.isDirty||!ct(c.errors,y.errors))&&r.set(c)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>n())}catch (e2){}let a=async()=>{let c=await e.validate({scope:t}),y=e.getStepErrors(t);return{valid:c,errors:y}},g=()=>e.getStepErrors(t),s=_core.computed.call(void 0, ()=>!r().hasErrors),i=_core.computed.call(void 0, ()=>r().isDirty),u=_core.computed.call(void 0, ()=>r().errors);return{scopeName:t,status:r,errors:u,validate:a,getErrors:g,isValid:s,isDirty:i,unsubscribe:n}}function pt(t,e){let o=Object.keys(t),r=Object.keys(e);return o.length!==r.length?!1:o.every(n=>t[n]===e[n])}function mt(t){let e=f(),o=_core.signal.call(void 0, 0),r=_core.computed.call(void 0, ()=>_nullishCoalesce(t[o()], () => (""))),n=()=>_nullishCoalesce(t[o()], () => ("")),a=_core.signal.call(void 0, e.getStepStatus(n())),g=()=>{let l=n(),m=e.getStepStatus(l),d=a();(m.hasErrors!==d.hasErrors||m.isDirty!==d.isDirty||!pt(m.errors,d.errors))&&a.set(m)},s=e.subscribe(g);try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>s())}catch (e3){}let i=async()=>{let l=n(),m=await e.validate({scope:l}),d=e.getStepErrors(l);return{valid:m,errors:d}},u=()=>e.getStepErrors(n()),c=async()=>{let l=n(),m=_optionalChain([e, 'access', _17 => _17.getConfig, 'call', _18 => _18(), 'access', _19 => _19.scopes, 'optionalAccess', _20 => _20[l]]);if(e.hasValidationsInProgress(m))return!1;let d=await e.validate({scope:l});if(d){let p=Math.min(o()+1,t.length-1);o.set(p),a.set(e.getStepStatus(_nullishCoalesce(t[p], () => (""))))}else{let p=e.getStepErrors(l),j=Object.keys(p);j.length>0&&e.markFieldsTouched(j)}return d},y=()=>{let l=Math.max(o()-1,0);o.set(l),a.set(e.getStepStatus(_nullishCoalesce(t[l], () => (""))))},V=l=>{let m=Math.max(0,Math.min(l-1,t.length-1));o.set(m),a.set(e.getStepStatus(_nullishCoalesce(t[m], () => (""))))},x=_core.computed.call(void 0, ()=>o()+1),E=_core.computed.call(void 0, ()=>o()===0),b=_core.computed.call(void 0, ()=>o()>=t.length-1),v=_core.computed.call(void 0, ()=>!a().hasErrors),T=_core.computed.call(void 0, ()=>a().isDirty),B=_core.computed.call(void 0, ()=>a().errors);return{step:x,stepIndex:o,scope:r,next:c,prev:y,goTo:V,isFirst:E,isLast:b,status:a,errors:B,isValid:v,isDirty:T,validate:i,getErrors:u}}function St(t){let e=f(),o=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, _chunkVFLQH47Qcjs.e.call(void 0, e.getState().values,t),{equal:_chunkVFLQH47Qcjs.d}),n=e.watch(t,a=>{r.set(a)});return o.onDestroy(n),r.asReadonly()}function bt(t,e,o){let r=_core.inject.call(void 0, F),n=A(t),a=null,g=async i=>{if(i){r.beginFieldValidation(t),await r.clearFieldAsyncError(t);try{let u=await e(i);n.setValue(u.url),a=u.key,await r.clearFieldAsyncError(t)}catch(u){let c=u instanceof Error?u.message:"Upload failed";await r.setFieldAsyncError(t,c)}finally{r.endFieldValidation(t)}}},s=async()=>{if(a&&o)try{await o(a)}catch(i){let u=i instanceof Error?i.message:"Delete failed";await r.setFieldAsyncError(t,u);return}n.setValue(null),a=null,await r.clearFieldAsyncError(t)};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()||!1),upload:g,remove:s}}exports.injectBitArray = tt; exports.injectBitField = A; exports.injectBitForm = Q; exports.injectBitHistory = st; exports.injectBitScope = ut; exports.injectBitSteps = mt; exports.injectBitUpload = bt; exports.injectBitWatch = St; exports.provideBitStore = $; exports.useBitStore = f;
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 _chunkSIM4YIOWcjs = require('../chunk-SIM4YIOW.cjs');var _core = require('@angular/core');var b=new (0, _core.InjectionToken)("BIT_STORE");function L(t){return{provide:b,useValue:t}}function f(){let t=_core.inject.call(void 0, b,{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 Q(){let t=f(),e=_core.inject.call(void 0, _core.DestroyRef),s=_core.signal.call(void 0, t.getState()),r=_core.signal.call(void 0, null),n=_core.signal.call(void 0, null),a=t.subscribe(()=>{s.set(t.getState())});e.onDestroy(()=>a());let g=_core.computed.call(void 0, ()=>s().isValid),o=_core.computed.call(void 0, ()=>s().isSubmitting),i=_core.computed.call(void 0, ()=>s().isDirty),u=()=>s().values,c=()=>s().errors,y=()=>s().touched,E=()=>t.getDirtyValues(),I=v=>S=>(_optionalChain([S, 'optionalAccess', _2 => _2.preventDefault, 'call', _3 => _3()]),_optionalChain([S, 'optionalAccess', _4 => _4.stopPropagation, 'call', _5 => _5()]),t.submit(v)),P=v=>S=>(_optionalChain([S, 'optionalAccess', _6 => _6.preventDefault, 'call', _7 => _7()]),_optionalChain([S, 'optionalAccess', _8 => _8.stopPropagation, 'call', _9 => _9()]),r.set(null),t.submit(async(l,p)=>{try{let d=await v(l,p);n.set(d),r.set(null)}catch(d){_chunkSIM4YIOWcjs.h.call(void 0, d)?t.setServerErrors(_chunkSIM4YIOWcjs.i.call(void 0, d)):r.set(d instanceof Error?d:new Error(String(d)))}})),F=()=>{t.reset(),r.set(null),n.set(null)};return{meta:{isValid:g,isDirty:i,isSubmitting:o,submitError:r.asReadonly(),lastResponse:n.asReadonly()},getValues:u,getErrors:c,getTouched:y,getDirtyValues:E,submit:I,onSubmit:P,reset:F,setValues:t.setValues.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),mutations:{pushItem:t.pushItem.bind(t),prependItem:t.prependItem.bind(t),removeItem:t.removeItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t)}}}function k(t,e,s){let r=_core.inject.call(void 0, b),n=_core.signal.call(void 0, r.getState()),a=r.subscribe(()=>{n.set(r.getState())});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{a(),r.unregisterField&&r.unregisterField(t)}),e&&r.registerField(t,e);let g=_core.computed.call(void 0, ()=>_chunkSIM4YIOWcjs.e.call(void 0, n().values,t)),o=_core.computed.call(void 0, ()=>n().errors[t]),i=_core.computed.call(void 0, ()=>!!n().touched[t]),u=_core.computed.call(void 0, ()=>i()?o():void 0),c=_core.computed.call(void 0, ()=>(n(),r.isFieldDirty(t))),y=_core.computed.call(void 0, ()=>(n(),r.isFieldValidating(t))),E=_core.computed.call(void 0, ()=>(n(),r.isHidden(t))),I=_core.computed.call(void 0, ()=>(n(),r.isRequired(t))),P=_core.computed.call(void 0, ()=>i()&&!!o()),F=_nullishCoalesce(_optionalChain([s, 'optionalAccess', _10 => _10.mask]), () => (_optionalChain([r, 'access', _11 => _11.config, 'access', _12 => _12.fields, 'optionalAccess', _13 => _13[t], 'optionalAccess', _14 => _14.mask]))),T=F?typeof F=="string"?r.config.masks[F]:F:void 0,v=_core.computed.call(void 0, ()=>{let m=g();return m==null||m===""?"":T?T.format(m):String(m)}),S=m=>{if(!T){r.setField(t,m);return}let V=String(_nullishCoalesce(m, () => ("")));r.setField(t,T.parse(V))},l=()=>r.blurField(t),p=_core.computed.call(void 0, ()=>!!o());return{value:g,displayValue:v,setValue:S,setBlur:l,update:m=>S(_nullishCoalesce(_optionalChain([m, 'optionalAccess', _15 => _15.target, 'optionalAccess', _16 => _16.value]), () => (m))),meta:{error:u,touched:i,invalid:P,isDirty:c,isValidating:y,isHidden:E,isRequired:I,hasError:p}}}var j=()=>Math.random().toString(36).substring(2,9);function tt(t){let e=_core.inject.call(void 0, b),s=_core.inject.call(void 0, _core.DestroyRef),r=()=>{let o=_chunkSIM4YIOWcjs.e.call(void 0, e.getState().values,t);return Array.isArray(o)?o:[]},n=_core.signal.call(void 0, r()),a=_core.signal.call(void 0, n().map(j)),g=e.subscribe(()=>{let o=r(),i=_core.untracked.call(void 0, a);n.set(o),o.length!==i.length&&(o.length>i.length?a.set([...i,...Array.from({length:o.length-i.length},j)]):a.set(i.slice(0,o.length)))});return s.onDestroy(()=>{g(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:_core.computed.call(void 0, ()=>n().map((o,i)=>({key:a()[i]||`temp-${i}`,value:o,index:i}))),length:_core.computed.call(void 0, ()=>n().length),append:o=>{a.update(i=>[...i,j()]),e.pushItem(t,o)},prepend:o=>{a.update(i=>[j(),...i]),e.prependItem(t,o)},remove:o=>{a.update(i=>i.filter((u,c)=>c!==o)),e.removeItem(t,o)},insert:(o,i)=>{a.update(u=>{let c=[...u];return c.splice(o,0,j()),c}),e.insertItem(t,o,i)},swap:(o,i)=>{a.update(u=>{let c=[...u];return[c[o],c[i]]=[c[i],c[o]],c}),e.swapItems(t,o,i)},move:(o,i)=>{a.update(u=>{let c=[...u],[y]=c.splice(o,1);return c.splice(i,0,y),c}),e.moveItem(t,o,i)},replace:o=>{a.set(o.map(()=>j())),e.setField(t,o)},clear:()=>{a.set([]),e.setField(t,[])}}}function ot(){let t=f(),e=_core.inject.call(void 0, _core.DestroyRef),s=_core.signal.call(void 0, t.getHistoryMetadata()),r=t.subscribe(()=>{s.set(t.getHistoryMetadata())});return e.onDestroy(()=>r()),{canUndo:_core.computed.call(void 0, ()=>s().canUndo),canRedo:_core.computed.call(void 0, ()=>s().canRedo),historyIndex:_core.computed.call(void 0, ()=>s().historyIndex),historySize:_core.computed.call(void 0, ()=>s().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}function ct(t,e){let s=Object.keys(t),r=Object.keys(e);return s.length!==r.length?!1:s.every(n=>t[n]===e[n])}function ut(t){let e=f(),s=e.getStepStatus(t),r=_core.signal.call(void 0, s),n=e.subscribe(()=>{let c=e.getStepStatus(t),y=r();(c.hasErrors!==y.hasErrors||c.isDirty!==y.isDirty||!ct(c.errors,y.errors))&&r.set(c)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>n())}catch (e2){}let a=async()=>{let c=await e.validate({scope:t}),y=e.getStepErrors(t);return{valid:c,errors:y}},g=()=>e.getStepErrors(t),o=_core.computed.call(void 0, ()=>!r().hasErrors),i=_core.computed.call(void 0, ()=>r().isDirty),u=_core.computed.call(void 0, ()=>r().errors);return{scopeName:t,status:r,errors:u,validate:a,getErrors:g,isValid:o,isDirty:i,unsubscribe:n}}function mt(t,e){let s=Object.keys(t),r=Object.keys(e);return s.length!==r.length?!1:s.every(n=>t[n]===e[n])}function pt(t){let e=f(),s=_core.signal.call(void 0, 0),r=_core.computed.call(void 0, ()=>_nullishCoalesce(t[s()], () => (""))),n=()=>_nullishCoalesce(t[s()], () => ("")),a=_core.signal.call(void 0, e.getStepStatus(n())),g=()=>{let l=n(),p=e.getStepStatus(l),d=a();(p.hasErrors!==d.hasErrors||p.isDirty!==d.isDirty||!mt(p.errors,d.errors))&&a.set(p)},o=e.subscribe(g);try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>o())}catch (e3){}let i=async()=>{let l=n(),p=await e.validate({scope:l}),d=e.getStepErrors(l);return{valid:p,errors:d}},u=()=>e.getStepErrors(n()),c=async()=>{let l=n(),p=_optionalChain([e, 'access', _17 => _17.getConfig, 'call', _18 => _18(), 'access', _19 => _19.scopes, 'optionalAccess', _20 => _20[l]]);if(e.hasValidationsInProgress(p))return!1;let d=await e.validate({scope:l});if(d){let m=Math.min(s()+1,t.length-1);s.set(m),a.set(e.getStepStatus(_nullishCoalesce(t[m], () => (""))))}else{let m=e.getStepErrors(l),V=Object.keys(m);V.length>0&&e.markFieldsTouched(V)}return d},y=()=>{let l=Math.max(s()-1,0);s.set(l),a.set(e.getStepStatus(_nullishCoalesce(t[l], () => (""))))},E=l=>{let p=Math.max(0,Math.min(l-1,t.length-1));s.set(p),a.set(e.getStepStatus(_nullishCoalesce(t[p], () => (""))))},I=_core.computed.call(void 0, ()=>s()+1),P=_core.computed.call(void 0, ()=>s()===0),F=_core.computed.call(void 0, ()=>s()>=t.length-1),T=_core.computed.call(void 0, ()=>!a().hasErrors),v=_core.computed.call(void 0, ()=>a().isDirty),S=_core.computed.call(void 0, ()=>a().errors);return{step:I,stepIndex:s,scope:r,next:c,prev:y,goTo:E,isFirst:P,isLast:F,status:a,errors:S,isValid:T,isDirty:v,validate:i,getErrors:u}}function Bt(t){let e=f(),s=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, _chunkSIM4YIOWcjs.e.call(void 0, e.getState().values,t),{equal:_chunkSIM4YIOWcjs.d}),n=e.watch(t,a=>{r.set(a)});return s.onDestroy(n),r.asReadonly()}function Ft(t,e,s){let r=_core.inject.call(void 0, b),n=k(t),a=null,g=async i=>{if(i){r.beginFieldValidation(t),await r.clearFieldAsyncError(t);try{let u=await e(i);n.setValue(u.url),a=u.key,await r.clearFieldAsyncError(t)}catch(u){let c=u instanceof Error?u.message:"Upload failed";await r.setFieldAsyncError(t,c)}finally{r.endFieldValidation(t)}}},o=async()=>{if(a&&s)try{await s(a)}catch(i){let u=i instanceof Error?i.message:"Delete failed";await r.setFieldAsyncError(t,u);return}n.setValue(null),a=null,await r.clearFieldAsyncError(t)};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()||!1),upload:g,remove:o}}exports.injectBitArray = tt; exports.injectBitField = k; exports.injectBitForm = Q; exports.injectBitHistory = ot; exports.injectBitScope = ut; exports.injectBitSteps = pt; exports.injectBitUpload = Ft; exports.injectBitWatch = Bt; exports.provideBitStore = L; exports.useBitStore = f;
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","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","isValid","computed","isSubmitting","isDirty","getValues","getErrors","getTouched","getDirtyValues","submit","onSuccess","event","onSubmit","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","reset","injectBitField","path","config","options","unsubscribe","value","getDeepValue","rawError","touched","error","isValidating","isHidden","isRequired","invalid","maskOption","resolvedMask","displayValue","val","setValue","stringVal","setBlur","hasError","e","generateId","injectBitArray","getRaw","valuesSig","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\"; // IMPORTANTE: Adicione o 'inject' aqui\nimport { BitStore } from \"../core/store\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitStore<any>>(\"BIT_STORE\");\n\nexport function provideBitStore(store: BitStore<any>): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: 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 BitStore<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function injectBitForm<T extends object>() {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal(store.getState());\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribe(() => {\n stateSignal.set(store.getState());\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 getValues = () => stateSignal().values;\n const getErrors = () => stateSignal().errors;\n const getTouched = () => stateSignal().touched;\n const getDirtyValues = () => store.getDirtyValues();\n\n const submit = (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (event?: Event) => {\n event?.preventDefault();\n event?.stopPropagation();\n return store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (event?: Event) => {\n event?.preventDefault();\n event?.stopPropagation();\n submitError.set(null);\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\n lastResponse.set(result);\n submitError.set(null);\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.set(\n err instanceof Error ? err : new Error(String(err)),\n );\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.set(null);\n lastResponse.set(null);\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,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n // Array mutations (grouped)\n mutations: {\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n },\n };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n getDeepValue,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport interface InjectBitFieldMeta {\n error: () => string | undefined;\n touched: () => boolean;\n invalid: () => boolean;\n isDirty: () => boolean;\n isValidating: () => boolean;\n isHidden: () => boolean;\n isRequired: () => boolean;\n hasError: () => boolean;\n}\n\nexport interface InjectBitFieldResult<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n> {\n // Main handlers and values (flat)\n value: () => BitPathValue<TForm, P>;\n displayValue: () => string;\n setValue: (val: any) => void;\n setBlur: () => void;\n update: (e: any) => void;\n // Metadata (grouped)\n meta: InjectBitFieldMeta;\n}\n\nexport function injectBitField<\n TValue = any,\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(\n path: P,\n config?: BitFieldDefinition<TForm>,\n options?: BitFieldOptions,\n): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getState());\n\n const unsubscribe = store.subscribe(() => {\n stateSignal.set(store.getState());\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n if (config) {\n store.registerField(path as string, config as any);\n }\n\n const value = computed(\n () =>\n getDeepValue(stateSignal().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n );\n const rawError = computed(\n () =>\n (stateSignal().errors as Record<string, any>)[path] as string | undefined,\n );\n const touched = computed(\n () => !!(stateSignal().touched as Record<string, any>)[path],\n );\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => {\n stateSignal();\n return store.isFieldDirty(path);\n });\n\n const isValidating = computed(() => {\n stateSignal();\n return store.isFieldValidating(path);\n });\n\n const isHidden = computed(() => {\n stateSignal();\n return store.isHidden(path);\n });\n\n const isRequired = computed(() => {\n stateSignal();\n return store.isRequired(path);\n });\n\n const invalid = computed(() => touched() && !!rawError());\n\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n const resolvedMask = maskOption\n ? typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption\n : undefined;\n\n const displayValue = computed(() => {\n const val = value();\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n });\n\n const setValue = (val: any) => {\n if (!resolvedMask) {\n store.setField(path, val);\n return;\n }\n\n const stringVal = String(val ?? \"\");\n store.setField(path, resolvedMask.parse(stringVal) as any);\n };\n\n const setBlur = () => store.blurField(path);\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.subscribe(() => {\n const next = getRaw();\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(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n idsSig.set([]);\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/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","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","isValid","computed","isSubmitting","isDirty","getValues","getErrors","getTouched","getDirtyValues","submit","onSuccess","event","onSubmit","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","reset","injectBitField","path","config","options","unsubscribe","value","getDeepValue","rawError","touched","error","isValidating","isHidden","isRequired","invalid","maskOption","resolvedMask","displayValue","val","setValue","stringVal","setBlur","hasError","e","generateId","injectBitArray","getRaw","valuesSig","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 { BitFrameworkStore } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitFrameworkStore<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitFrameworkStore<T>,\n): Provider {\n return { provide: BIT_STORE_TOKEN, useValue: 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 BitFrameworkStore<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function injectBitForm<T extends object>() {\n const store = useBitStore<T>();\n const destroyRef = inject(DestroyRef);\n const stateSignal = signal(store.getState());\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = store.subscribe(() => {\n stateSignal.set(store.getState());\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 getValues = () => stateSignal().values;\n const getErrors = () => stateSignal().errors;\n const getTouched = () => stateSignal().touched;\n const getDirtyValues = () => store.getDirtyValues();\n\n const submit = (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (event?: Event) => {\n event?.preventDefault();\n event?.stopPropagation();\n return store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (event?: Event) => {\n event?.preventDefault();\n event?.stopPropagation();\n submitError.set(null);\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\n lastResponse.set(result);\n submitError.set(null);\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.set(\n err instanceof Error ? err : new Error(String(err)),\n );\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.set(null);\n lastResponse.set(null);\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,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit,\n onSubmit,\n reset,\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n // Array mutations (grouped)\n mutations: {\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n },\n };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n BitFieldDefinition,\n BitFieldOptions,\n getDeepValue,\n BitPath,\n BitPathValue,\n} from \"../core\";\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>(\n path: P,\n config?: BitFieldDefinition<TForm>,\n options?: BitFieldOptions,\n): InjectBitFieldResult<TForm, P> {\n const store = inject(BIT_STORE_TOKEN);\n\n const stateSignal = signal(store.getState());\n\n const unsubscribe = store.subscribe(() => {\n stateSignal.set(store.getState());\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n if (config) {\n store.registerField(path as string, config as any);\n }\n\n const value = computed(\n () =>\n getDeepValue(stateSignal().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n );\n const rawError = computed(\n () =>\n (stateSignal().errors as Record<string, any>)[path] as string | undefined,\n );\n const touched = computed(\n () => !!(stateSignal().touched as Record<string, any>)[path],\n );\n const error = computed(() => (touched() ? rawError() : undefined));\n\n const isDirty = computed(() => {\n stateSignal();\n return store.isFieldDirty(path);\n });\n\n const isValidating = computed(() => {\n stateSignal();\n return store.isFieldValidating(path);\n });\n\n const isHidden = computed(() => {\n stateSignal();\n return store.isHidden(path);\n });\n\n const isRequired = computed(() => {\n stateSignal();\n return store.isRequired(path);\n });\n\n const invalid = computed(() => touched() && !!rawError());\n\n const maskOption =\n options?.mask ?? store.config.fields?.[path as string]?.mask;\n const resolvedMask = maskOption\n ? typeof maskOption === \"string\"\n ? store.config.masks![maskOption]\n : maskOption\n : undefined;\n\n const displayValue = computed(() => {\n const val = value();\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n });\n\n const setValue = (val: any) => {\n if (!resolvedMask) {\n store.setField(path, val);\n return;\n }\n\n const stringVal = String(val ?? \"\");\n store.setField(path, resolvedMask.parse(stringVal) as any);\n };\n\n const setBlur = () => store.blurField(path);\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.subscribe(() => {\n const next = getRaw();\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(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n idsSig.set([]);\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Provider, computed, signal, Signal } from '@angular/core';
3
- import { B as BitStore } from '../index-9vxGUNPP.cjs';
4
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.cjs';
2
+ import { Provider, Signal } from '@angular/core';
3
+ import { b as BitFrameworkStore } from '../public-types-B3jU1R2E.cjs';
4
+ import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, V as ValidateScopeResult, g as BitFieldDefinition, h as BitFieldOptions, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../bus-C1xKmQdw.cjs';
5
5
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
6
6
 
7
- declare function provideBitStore(store: BitStore<any>): Provider;
8
- declare function useBitStore<T extends object>(): BitStore<T>;
7
+ declare function provideBitStore<T extends object>(store: BitFrameworkStore<T>): Provider;
8
+ declare function useBitStore<T extends object>(): BitFrameworkStore<T>;
9
9
 
10
10
  declare function injectBitForm<T extends object>(): {
11
11
  meta: {
@@ -22,7 +22,7 @@ declare function injectBitForm<T extends object>(): {
22
22
  submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (event?: Event) => Promise<void>;
23
23
  onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (event?: Event) => Promise<void>;
24
24
  reset: () => void;
25
- setValues: (newValues: T) => void;
25
+ setValues: (values: T) => void;
26
26
  setError: (path: string, message: string | undefined) => void;
27
27
  setErrors: (errors: BitErrors<T>) => void;
28
28
  setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
@@ -33,15 +33,18 @@ declare function injectBitForm<T extends object>(): {
33
33
  scopeFields?: string[];
34
34
  }) => Promise<boolean>;
35
35
  mutations: {
36
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
37
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
38
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
39
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
40
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
41
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
36
+ pushItem: (path: any, value: any) => void;
37
+ prependItem: (path: any, value: any) => void;
38
+ removeItem: (path: any, index: number) => void;
39
+ insertItem: (path: any, index: number, value: any) => void;
40
+ moveItem: (path: any, from: number, to: number) => void;
41
+ swapItems: (path: any, indexA: number, indexB: number) => void;
42
42
  };
43
43
  };
44
44
 
45
+ /**
46
+ * Metadata describing the current state of a form field (Angular Signal).
47
+ */
45
48
  interface InjectBitFieldMeta {
46
49
  error: () => string | undefined;
47
50
  touched: () => boolean;
@@ -52,6 +55,10 @@ interface InjectBitFieldMeta {
52
55
  isRequired: () => boolean;
53
56
  hasError: () => boolean;
54
57
  }
58
+ /**
59
+ * Result from injectBitField in Angular.
60
+ * Provides field state, value, handlers, and metadata using Angular Signals.
61
+ */
55
62
  interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
56
63
  value: () => BitPathValue<TForm, P>;
57
64
  displayValue: () => string;
@@ -60,6 +67,51 @@ interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TFo
60
67
  update: (e: any) => void;
61
68
  meta: InjectBitFieldMeta;
62
69
  }
70
+ /**
71
+ * Result from injectBitSteps in Angular.
72
+ * Provides multi-step form navigation and validation using Angular Signals.
73
+ */
74
+ interface InjectBitStepsResult {
75
+ step: ReturnType<typeof _angular_core.computed<number>>;
76
+ stepIndex: ReturnType<typeof _angular_core.signal<number>>;
77
+ scope: ReturnType<typeof _angular_core.computed<string>>;
78
+ next: () => Promise<boolean>;
79
+ prev: () => void;
80
+ goTo: (step: number) => void;
81
+ isFirst: ReturnType<typeof _angular_core.computed<boolean>>;
82
+ isLast: ReturnType<typeof _angular_core.computed<boolean>>;
83
+ status: ReturnType<typeof _angular_core.signal<ScopeStatus>>;
84
+ errors: ReturnType<typeof _angular_core.computed<Record<string, string>>>;
85
+ isValid: ReturnType<typeof _angular_core.computed<boolean>>;
86
+ isDirty: ReturnType<typeof _angular_core.computed<boolean>>;
87
+ validate: () => Promise<ValidateScopeResult>;
88
+ getErrors: () => Record<string, string>;
89
+ }
90
+ /**
91
+ * Result from injectBitUpload in Angular.
92
+ * Provides file upload functionality with integrated validation (Angular Signal).
93
+ */
94
+ interface InjectBitUploadResult {
95
+ value: Signal<string | File | null>;
96
+ setValue: (value: string | File | null) => void;
97
+ error: Signal<string | undefined>;
98
+ isValidating: Signal<boolean>;
99
+ upload: (file: File | null | undefined) => Promise<void>;
100
+ remove: () => Promise<void>;
101
+ }
102
+ /**
103
+ * Result from injectBitHistory in Angular.
104
+ * Provides form history undo/redo capabilities (Angular Signals).
105
+ */
106
+ interface InjectBitHistoryResult {
107
+ canUndo: ReturnType<typeof _angular_core.computed<boolean>>;
108
+ canRedo: ReturnType<typeof _angular_core.computed<boolean>>;
109
+ historyIndex: ReturnType<typeof _angular_core.computed<number>>;
110
+ historySize: ReturnType<typeof _angular_core.computed<number>>;
111
+ undo: () => void;
112
+ redo: () => void;
113
+ }
114
+
63
115
  declare function injectBitField<TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, config?: BitFieldDefinition<TForm>, options?: BitFieldOptions): InjectBitFieldResult<TForm, P>;
64
116
 
65
117
  declare function injectBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
@@ -79,14 +131,6 @@ declare function injectBitArray<TForm extends object = any, P extends BitArrayPa
79
131
  clear: () => void;
80
132
  };
81
133
 
82
- interface InjectBitHistoryResult {
83
- canUndo: ReturnType<typeof computed<boolean>>;
84
- canRedo: ReturnType<typeof computed<boolean>>;
85
- historyIndex: ReturnType<typeof computed<number>>;
86
- historySize: ReturnType<typeof computed<number>>;
87
- undo: () => void;
88
- redo: () => void;
89
- }
90
134
  declare function injectBitHistory<T extends object = any>(): InjectBitHistoryResult;
91
135
 
92
136
  declare function injectBitScope(scopeName: string): {
@@ -100,34 +144,16 @@ declare function injectBitScope(scopeName: string): {
100
144
  unsubscribe: () => void;
101
145
  };
102
146
 
103
- interface InjectBitStepsResult {
104
- step: ReturnType<typeof computed<number>>;
105
- stepIndex: ReturnType<typeof signal<number>>;
106
- scope: ReturnType<typeof computed<string>>;
107
- next: () => Promise<boolean>;
108
- prev: () => void;
109
- goTo: (step: number) => void;
110
- isFirst: ReturnType<typeof computed<boolean>>;
111
- isLast: ReturnType<typeof computed<boolean>>;
112
- status: ReturnType<typeof signal<ScopeStatus>>;
113
- errors: ReturnType<typeof computed<Record<string, string>>>;
114
- isValid: ReturnType<typeof computed<boolean>>;
115
- isDirty: ReturnType<typeof computed<boolean>>;
116
- validate: () => Promise<ValidateScopeResult>;
117
- getErrors: () => Record<string, string>;
118
- }
119
147
  declare function injectBitSteps(scopeNames: string[]): InjectBitStepsResult;
120
148
 
121
149
  declare function injectBitWatch<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): Signal<BitPathValue<TForm, P>>;
122
150
 
123
- interface InjectBitUploadResult {
124
- value: _angular_core.Signal<string | File | null>;
125
- setValue: (value: string | File | null) => void;
126
- error: _angular_core.Signal<string | undefined>;
127
- isValidating: _angular_core.Signal<boolean>;
128
- upload: (file: File | null | undefined) => Promise<void>;
129
- remove: () => Promise<void>;
130
- }
151
+ /**
152
+ * Angular Dependency Injection for File Upload
153
+ *
154
+ * Minimal upload API integrated with global field validation lifecycle.
155
+ */
156
+
131
157
  declare function injectBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): InjectBitUploadResult;
132
158
 
133
- export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
159
+ export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitHistoryResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
@@ -1,11 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Provider, computed, signal, Signal } from '@angular/core';
3
- import { B as BitStore } from '../index-1fP1eJH8.js';
4
- import { d as BitErrors, o as BitTouched, b as BitPath, c as BitPathValue, h as BitArrayPath, g as BitArrayItem, k as BitFieldDefinition, l as BitFieldOptions, S as ScopeStatus, V as ValidateScopeResult } from '../bus-uG4EmM-Z.js';
2
+ import { Provider, Signal } from '@angular/core';
3
+ import { b as BitFrameworkStore } from '../public-types-By_9Weno.js';
4
+ import { e as BitErrors, n as BitTouched, k as BitPath, l as BitPathValue, V as ValidateScopeResult, g as BitFieldDefinition, h as BitFieldOptions, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../bus-C1xKmQdw.js';
5
5
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
6
6
 
7
- declare function provideBitStore(store: BitStore<any>): Provider;
8
- declare function useBitStore<T extends object>(): BitStore<T>;
7
+ declare function provideBitStore<T extends object>(store: BitFrameworkStore<T>): Provider;
8
+ declare function useBitStore<T extends object>(): BitFrameworkStore<T>;
9
9
 
10
10
  declare function injectBitForm<T extends object>(): {
11
11
  meta: {
@@ -22,7 +22,7 @@ declare function injectBitForm<T extends object>(): {
22
22
  submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (event?: Event) => Promise<void>;
23
23
  onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (event?: Event) => Promise<void>;
24
24
  reset: () => void;
25
- setValues: (newValues: T) => void;
25
+ setValues: (values: T) => void;
26
26
  setError: (path: string, message: string | undefined) => void;
27
27
  setErrors: (errors: BitErrors<T>) => void;
28
28
  setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
@@ -33,15 +33,18 @@ declare function injectBitForm<T extends object>(): {
33
33
  scopeFields?: string[];
34
34
  }) => Promise<boolean>;
35
35
  mutations: {
36
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
37
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
38
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
39
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
40
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
41
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
36
+ pushItem: (path: any, value: any) => void;
37
+ prependItem: (path: any, value: any) => void;
38
+ removeItem: (path: any, index: number) => void;
39
+ insertItem: (path: any, index: number, value: any) => void;
40
+ moveItem: (path: any, from: number, to: number) => void;
41
+ swapItems: (path: any, indexA: number, indexB: number) => void;
42
42
  };
43
43
  };
44
44
 
45
+ /**
46
+ * Metadata describing the current state of a form field (Angular Signal).
47
+ */
45
48
  interface InjectBitFieldMeta {
46
49
  error: () => string | undefined;
47
50
  touched: () => boolean;
@@ -52,6 +55,10 @@ interface InjectBitFieldMeta {
52
55
  isRequired: () => boolean;
53
56
  hasError: () => boolean;
54
57
  }
58
+ /**
59
+ * Result from injectBitField in Angular.
60
+ * Provides field state, value, handlers, and metadata using Angular Signals.
61
+ */
55
62
  interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
56
63
  value: () => BitPathValue<TForm, P>;
57
64
  displayValue: () => string;
@@ -60,6 +67,51 @@ interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TFo
60
67
  update: (e: any) => void;
61
68
  meta: InjectBitFieldMeta;
62
69
  }
70
+ /**
71
+ * Result from injectBitSteps in Angular.
72
+ * Provides multi-step form navigation and validation using Angular Signals.
73
+ */
74
+ interface InjectBitStepsResult {
75
+ step: ReturnType<typeof _angular_core.computed<number>>;
76
+ stepIndex: ReturnType<typeof _angular_core.signal<number>>;
77
+ scope: ReturnType<typeof _angular_core.computed<string>>;
78
+ next: () => Promise<boolean>;
79
+ prev: () => void;
80
+ goTo: (step: number) => void;
81
+ isFirst: ReturnType<typeof _angular_core.computed<boolean>>;
82
+ isLast: ReturnType<typeof _angular_core.computed<boolean>>;
83
+ status: ReturnType<typeof _angular_core.signal<ScopeStatus>>;
84
+ errors: ReturnType<typeof _angular_core.computed<Record<string, string>>>;
85
+ isValid: ReturnType<typeof _angular_core.computed<boolean>>;
86
+ isDirty: ReturnType<typeof _angular_core.computed<boolean>>;
87
+ validate: () => Promise<ValidateScopeResult>;
88
+ getErrors: () => Record<string, string>;
89
+ }
90
+ /**
91
+ * Result from injectBitUpload in Angular.
92
+ * Provides file upload functionality with integrated validation (Angular Signal).
93
+ */
94
+ interface InjectBitUploadResult {
95
+ value: Signal<string | File | null>;
96
+ setValue: (value: string | File | null) => void;
97
+ error: Signal<string | undefined>;
98
+ isValidating: Signal<boolean>;
99
+ upload: (file: File | null | undefined) => Promise<void>;
100
+ remove: () => Promise<void>;
101
+ }
102
+ /**
103
+ * Result from injectBitHistory in Angular.
104
+ * Provides form history undo/redo capabilities (Angular Signals).
105
+ */
106
+ interface InjectBitHistoryResult {
107
+ canUndo: ReturnType<typeof _angular_core.computed<boolean>>;
108
+ canRedo: ReturnType<typeof _angular_core.computed<boolean>>;
109
+ historyIndex: ReturnType<typeof _angular_core.computed<number>>;
110
+ historySize: ReturnType<typeof _angular_core.computed<number>>;
111
+ undo: () => void;
112
+ redo: () => void;
113
+ }
114
+
63
115
  declare function injectBitField<TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P, config?: BitFieldDefinition<TForm>, options?: BitFieldOptions): InjectBitFieldResult<TForm, P>;
64
116
 
65
117
  declare function injectBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
@@ -79,14 +131,6 @@ declare function injectBitArray<TForm extends object = any, P extends BitArrayPa
79
131
  clear: () => void;
80
132
  };
81
133
 
82
- interface InjectBitHistoryResult {
83
- canUndo: ReturnType<typeof computed<boolean>>;
84
- canRedo: ReturnType<typeof computed<boolean>>;
85
- historyIndex: ReturnType<typeof computed<number>>;
86
- historySize: ReturnType<typeof computed<number>>;
87
- undo: () => void;
88
- redo: () => void;
89
- }
90
134
  declare function injectBitHistory<T extends object = any>(): InjectBitHistoryResult;
91
135
 
92
136
  declare function injectBitScope(scopeName: string): {
@@ -100,34 +144,16 @@ declare function injectBitScope(scopeName: string): {
100
144
  unsubscribe: () => void;
101
145
  };
102
146
 
103
- interface InjectBitStepsResult {
104
- step: ReturnType<typeof computed<number>>;
105
- stepIndex: ReturnType<typeof signal<number>>;
106
- scope: ReturnType<typeof computed<string>>;
107
- next: () => Promise<boolean>;
108
- prev: () => void;
109
- goTo: (step: number) => void;
110
- isFirst: ReturnType<typeof computed<boolean>>;
111
- isLast: ReturnType<typeof computed<boolean>>;
112
- status: ReturnType<typeof signal<ScopeStatus>>;
113
- errors: ReturnType<typeof computed<Record<string, string>>>;
114
- isValid: ReturnType<typeof computed<boolean>>;
115
- isDirty: ReturnType<typeof computed<boolean>>;
116
- validate: () => Promise<ValidateScopeResult>;
117
- getErrors: () => Record<string, string>;
118
- }
119
147
  declare function injectBitSteps(scopeNames: string[]): InjectBitStepsResult;
120
148
 
121
149
  declare function injectBitWatch<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): Signal<BitPathValue<TForm, P>>;
122
150
 
123
- interface InjectBitUploadResult {
124
- value: _angular_core.Signal<string | File | null>;
125
- setValue: (value: string | File | null) => void;
126
- error: _angular_core.Signal<string | undefined>;
127
- isValidating: _angular_core.Signal<boolean>;
128
- upload: (file: File | null | undefined) => Promise<void>;
129
- remove: () => Promise<void>;
130
- }
151
+ /**
152
+ * Angular Dependency Injection for File Upload
153
+ *
154
+ * Minimal upload API integrated with global field validation lifecycle.
155
+ */
156
+
131
157
  declare function injectBitUpload(fieldPath: string, uploadFn: BitUploadFn, deleteFile?: BitDeleteUploadFn): InjectBitUploadResult;
132
158
 
133
- export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
159
+ export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitHistoryResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
@@ -1,2 +1,2 @@
1
- import{d as U,e as P,h as M,i as _}from"../chunk-NDFMZWBP.js";import{inject as W,InjectionToken as L}from"@angular/core";var F=new L("BIT_STORE");function $(t){return{provide:F,useValue:t}}function f(){let t=W(F,{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 D,computed as w,inject as G,DestroyRef as J}from"@angular/core";function Q(){let t=f(),e=G(J),o=D(t.getState()),r=D(null),n=D(null),a=t.subscribe(()=>{o.set(t.getState())});e.onDestroy(()=>a());let g=w(()=>o().isValid),s=w(()=>o().isSubmitting),i=w(()=>o().isDirty),u=()=>o().values,c=()=>o().errors,y=()=>o().touched,V=()=>t.getDirtyValues(),x=T=>B=>(B?.preventDefault(),B?.stopPropagation(),t.submit(T)),E=T=>B=>(B?.preventDefault(),B?.stopPropagation(),r.set(null),t.submit(async(l,m)=>{try{let d=await T(l,m);n.set(d),r.set(null)}catch(d){M(d)?t.setServerErrors(_(d)):r.set(d instanceof Error?d:new Error(String(d)))}})),b=()=>{t.reset(),r.set(null),n.set(null)};return{meta:{isValid:g,isDirty:i,isSubmitting:s,submitError:r.asReadonly(),lastResponse:n.asReadonly()},getValues:u,getErrors:c,getTouched:y,getDirtyValues:V,submit:x,onSubmit:E,reset:b,setValues:t.setValues.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),mutations:{pushItem:t.pushItem.bind(t),prependItem:t.prependItem.bind(t),removeItem:t.removeItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t)}}}import{inject as q,DestroyRef as X,computed as S,signal as Y}from"@angular/core";function A(t,e,o){let r=q(F),n=Y(r.getState()),a=r.subscribe(()=>{n.set(r.getState())});q(X).onDestroy(()=>{a(),r.unregisterField&&r.unregisterField(t)}),e&&r.registerField(t,e);let g=S(()=>P(n().values,t)),s=S(()=>n().errors[t]),i=S(()=>!!n().touched[t]),u=S(()=>i()?s():void 0),c=S(()=>(n(),r.isFieldDirty(t))),y=S(()=>(n(),r.isFieldValidating(t))),V=S(()=>(n(),r.isHidden(t))),x=S(()=>(n(),r.isRequired(t))),E=S(()=>i()&&!!s()),b=o?.mask??r.config.fields?.[t]?.mask,v=b?typeof b=="string"?r.config.masks[b]:b:void 0,T=S(()=>{let p=g();return p==null||p===""?"":v?v.format(p):String(p)}),B=p=>{if(!v){r.setField(t,p);return}let j=String(p??"");r.setField(t,v.parse(j))},l=()=>r.blurField(t),m=S(()=>!!s());return{value:g,displayValue:T,setValue:B,setBlur:l,update:p=>B(p?.target?.value??p),meta:{error:u,touched:i,invalid:E,isDirty:c,isValidating:y,isHidden:V,isRequired:x,hasError:m}}}import{DestroyRef as Z,signal as H,computed as K,inject as z,untracked as N}from"@angular/core";var h=()=>Math.random().toString(36).substring(2,9);function tt(t){let e=z(F),o=z(Z),r=()=>{let s=P(e.getState().values,t);return Array.isArray(s)?s:[]},n=H(r()),a=H(n().map(h)),g=e.subscribe(()=>{let s=r(),i=N(a);n.set(s),s.length!==i.length&&(s.length>i.length?a.set([...i,...Array.from({length:s.length-i.length},h)]):a.set(i.slice(0,s.length)))});return o.onDestroy(()=>{g(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:K(()=>n().map((s,i)=>({key:a()[i]||`temp-${i}`,value:s,index:i}))),length:K(()=>n().length),append:s=>{a.update(i=>[...i,h()]),e.pushItem(t,s)},prepend:s=>{a.update(i=>[h(),...i]),e.prependItem(t,s)},remove:s=>{a.update(i=>i.filter((u,c)=>c!==s)),e.removeItem(t,s)},insert:(s,i)=>{a.update(u=>{let c=[...u];return c.splice(s,0,h()),c}),e.insertItem(t,s,i)},swap:(s,i)=>{a.update(u=>{let c=[...u];return[c[s],c[i]]=[c[i],c[s]],c}),e.swapItems(t,s,i)},move:(s,i)=>{a.update(u=>{let c=[...u],[y]=c.splice(s,1);return c.splice(i,0,y),c}),e.moveItem(t,s,i)},replace:s=>{a.set(s.map(()=>h())),e.setField(t,s)},clear:()=>{a.set([]),e.setField(t,[])}}}import{computed as I,DestroyRef as et,inject as rt,signal as ot}from"@angular/core";function st(){let t=f(),e=rt(et),o=ot(t.getHistoryMetadata()),r=t.subscribe(()=>{o.set(t.getHistoryMetadata())});return e.onDestroy(()=>r()),{canUndo:I(()=>o().canUndo),canRedo:I(()=>o().canRedo),historyIndex:I(()=>o().historyIndex),historySize:I(()=>o().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}import{signal as nt,computed as k,DestroyRef as it,inject as at}from"@angular/core";function ct(t,e){let o=Object.keys(t),r=Object.keys(e);return o.length!==r.length?!1:o.every(n=>t[n]===e[n])}function ut(t){let e=f(),o=e.getStepStatus(t),r=nt(o),n=e.subscribe(()=>{let c=e.getStepStatus(t),y=r();(c.hasErrors!==y.hasErrors||c.isDirty!==y.isDirty||!ct(c.errors,y.errors))&&r.set(c)});try{at(it).onDestroy(()=>n())}catch{}let a=async()=>{let c=await e.validate({scope:t}),y=e.getStepErrors(t);return{valid:c,errors:y}},g=()=>e.getStepErrors(t),s=k(()=>!r().hasErrors),i=k(()=>r().isDirty),u=k(()=>r().errors);return{scopeName:t,status:r,errors:u,validate:a,getErrors:g,isValid:s,isDirty:i,unsubscribe:n}}import{signal as C,computed as R,DestroyRef as lt,inject as dt}from"@angular/core";function pt(t,e){let o=Object.keys(t),r=Object.keys(e);return o.length!==r.length?!1:o.every(n=>t[n]===e[n])}function mt(t){let e=f(),o=C(0),r=R(()=>t[o()]??""),n=()=>t[o()]??"",a=C(e.getStepStatus(n())),g=()=>{let l=n(),m=e.getStepStatus(l),d=a();(m.hasErrors!==d.hasErrors||m.isDirty!==d.isDirty||!pt(m.errors,d.errors))&&a.set(m)},s=e.subscribe(g);try{dt(lt).onDestroy(()=>s())}catch{}let i=async()=>{let l=n(),m=await e.validate({scope:l}),d=e.getStepErrors(l);return{valid:m,errors:d}},u=()=>e.getStepErrors(n()),c=async()=>{let l=n(),m=e.getConfig().scopes?.[l];if(e.hasValidationsInProgress(m))return!1;let d=await e.validate({scope:l});if(d){let p=Math.min(o()+1,t.length-1);o.set(p),a.set(e.getStepStatus(t[p]??""))}else{let p=e.getStepErrors(l),j=Object.keys(p);j.length>0&&e.markFieldsTouched(j)}return d},y=()=>{let l=Math.max(o()-1,0);o.set(l),a.set(e.getStepStatus(t[l]??""))},V=l=>{let m=Math.max(0,Math.min(l-1,t.length-1));o.set(m),a.set(e.getStepStatus(t[m]??""))},x=R(()=>o()+1),E=R(()=>o()===0),b=R(()=>o()>=t.length-1),v=R(()=>!a().hasErrors),T=R(()=>a().isDirty),B=R(()=>a().errors);return{step:x,stepIndex:o,scope:r,next:c,prev:y,goTo:V,isFirst:E,isLast:b,status:a,errors:B,isValid:v,isDirty:T,validate:i,getErrors:u}}import{DestroyRef as yt,signal as gt,inject as ft}from"@angular/core";function St(t){let e=f(),o=ft(yt),r=gt(P(e.getState().values,t),{equal:U}),n=e.watch(t,a=>{r.set(a)});return o.onDestroy(n),r.asReadonly()}import{computed as O,inject as Bt}from"@angular/core";function bt(t,e,o){let r=Bt(F),n=A(t),a=null,g=async i=>{if(i){r.beginFieldValidation(t),await r.clearFieldAsyncError(t);try{let u=await e(i);n.setValue(u.url),a=u.key,await r.clearFieldAsyncError(t)}catch(u){let c=u instanceof Error?u.message:"Upload failed";await r.setFieldAsyncError(t,c)}finally{r.endFieldValidation(t)}}},s=async()=>{if(a&&o)try{await o(a)}catch(i){let u=i instanceof Error?i.message:"Delete failed";await r.setFieldAsyncError(t,u);return}n.setValue(null),a=null,await r.clearFieldAsyncError(t)};return{value:O(()=>n.value()),setValue:n.setValue,error:O(()=>n.meta.error()),isValidating:O(()=>n.meta.isValidating()||!1),upload:g,remove:s}}export{tt as injectBitArray,A as injectBitField,Q as injectBitForm,st as injectBitHistory,ut as injectBitScope,mt as injectBitSteps,bt as injectBitUpload,St as injectBitWatch,$ as provideBitStore,f as useBitStore};
1
+ import{d as U,e as h,h as M,i as _}from"../chunk-XHZAMKSZ.js";import{inject as z,InjectionToken as $}from"@angular/core";var b=new $("BIT_STORE");function L(t){return{provide:b,useValue:t}}function f(){let t=z(b,{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 D,computed as w,inject as G,DestroyRef as J}from"@angular/core";function Q(){let t=f(),e=G(J),s=D(t.getState()),r=D(null),n=D(null),a=t.subscribe(()=>{s.set(t.getState())});e.onDestroy(()=>a());let g=w(()=>s().isValid),o=w(()=>s().isSubmitting),i=w(()=>s().isDirty),u=()=>s().values,c=()=>s().errors,y=()=>s().touched,E=()=>t.getDirtyValues(),I=v=>S=>(S?.preventDefault(),S?.stopPropagation(),t.submit(v)),P=v=>S=>(S?.preventDefault(),S?.stopPropagation(),r.set(null),t.submit(async(l,p)=>{try{let d=await v(l,p);n.set(d),r.set(null)}catch(d){M(d)?t.setServerErrors(_(d)):r.set(d instanceof Error?d:new Error(String(d)))}})),F=()=>{t.reset(),r.set(null),n.set(null)};return{meta:{isValid:g,isDirty:i,isSubmitting:o,submitError:r.asReadonly(),lastResponse:n.asReadonly()},getValues:u,getErrors:c,getTouched:y,getDirtyValues:E,submit:I,onSubmit:P,reset:F,setValues:t.setValues.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),mutations:{pushItem:t.pushItem.bind(t),prependItem:t.prependItem.bind(t),removeItem:t.removeItem.bind(t),insertItem:t.insertItem.bind(t),moveItem:t.moveItem.bind(t),swapItems:t.swapItems.bind(t)}}}import{inject as H,DestroyRef as X,computed as B,signal as Y}from"@angular/core";function k(t,e,s){let r=H(b),n=Y(r.getState()),a=r.subscribe(()=>{n.set(r.getState())});H(X).onDestroy(()=>{a(),r.unregisterField&&r.unregisterField(t)}),e&&r.registerField(t,e);let g=B(()=>h(n().values,t)),o=B(()=>n().errors[t]),i=B(()=>!!n().touched[t]),u=B(()=>i()?o():void 0),c=B(()=>(n(),r.isFieldDirty(t))),y=B(()=>(n(),r.isFieldValidating(t))),E=B(()=>(n(),r.isHidden(t))),I=B(()=>(n(),r.isRequired(t))),P=B(()=>i()&&!!o()),F=s?.mask??r.config.fields?.[t]?.mask,T=F?typeof F=="string"?r.config.masks[F]:F:void 0,v=B(()=>{let m=g();return m==null||m===""?"":T?T.format(m):String(m)}),S=m=>{if(!T){r.setField(t,m);return}let V=String(m??"");r.setField(t,T.parse(V))},l=()=>r.blurField(t),p=B(()=>!!o());return{value:g,displayValue:v,setValue:S,setBlur:l,update:m=>S(m?.target?.value??m),meta:{error:u,touched:i,invalid:P,isDirty:c,isValidating:y,isHidden:E,isRequired:I,hasError:p}}}import{DestroyRef as Z,signal as q,computed as K,inject as C,untracked as N}from"@angular/core";var j=()=>Math.random().toString(36).substring(2,9);function tt(t){let e=C(b),s=C(Z),r=()=>{let o=h(e.getState().values,t);return Array.isArray(o)?o:[]},n=q(r()),a=q(n().map(j)),g=e.subscribe(()=>{let o=r(),i=N(a);n.set(o),o.length!==i.length&&(o.length>i.length?a.set([...i,...Array.from({length:o.length-i.length},j)]):a.set(i.slice(0,o.length)))});return s.onDestroy(()=>{g(),e.unregisterPrefix&&e.unregisterPrefix(`${t}.`)}),{fields:K(()=>n().map((o,i)=>({key:a()[i]||`temp-${i}`,value:o,index:i}))),length:K(()=>n().length),append:o=>{a.update(i=>[...i,j()]),e.pushItem(t,o)},prepend:o=>{a.update(i=>[j(),...i]),e.prependItem(t,o)},remove:o=>{a.update(i=>i.filter((u,c)=>c!==o)),e.removeItem(t,o)},insert:(o,i)=>{a.update(u=>{let c=[...u];return c.splice(o,0,j()),c}),e.insertItem(t,o,i)},swap:(o,i)=>{a.update(u=>{let c=[...u];return[c[o],c[i]]=[c[i],c[o]],c}),e.swapItems(t,o,i)},move:(o,i)=>{a.update(u=>{let c=[...u],[y]=c.splice(o,1);return c.splice(i,0,y),c}),e.moveItem(t,o,i)},replace:o=>{a.set(o.map(()=>j())),e.setField(t,o)},clear:()=>{a.set([]),e.setField(t,[])}}}import{computed as x,DestroyRef as et,inject as rt,signal as st}from"@angular/core";function ot(){let t=f(),e=rt(et),s=st(t.getHistoryMetadata()),r=t.subscribe(()=>{s.set(t.getHistoryMetadata())});return e.onDestroy(()=>r()),{canUndo:x(()=>s().canUndo),canRedo:x(()=>s().canRedo),historyIndex:x(()=>s().historyIndex),historySize:x(()=>s().historySize),undo:()=>t.undo(),redo:()=>t.redo()}}import{signal as nt,computed as A,DestroyRef as it,inject as at}from"@angular/core";function ct(t,e){let s=Object.keys(t),r=Object.keys(e);return s.length!==r.length?!1:s.every(n=>t[n]===e[n])}function ut(t){let e=f(),s=e.getStepStatus(t),r=nt(s),n=e.subscribe(()=>{let c=e.getStepStatus(t),y=r();(c.hasErrors!==y.hasErrors||c.isDirty!==y.isDirty||!ct(c.errors,y.errors))&&r.set(c)});try{at(it).onDestroy(()=>n())}catch{}let a=async()=>{let c=await e.validate({scope:t}),y=e.getStepErrors(t);return{valid:c,errors:y}},g=()=>e.getStepErrors(t),o=A(()=>!r().hasErrors),i=A(()=>r().isDirty),u=A(()=>r().errors);return{scopeName:t,status:r,errors:u,validate:a,getErrors:g,isValid:o,isDirty:i,unsubscribe:n}}import{signal as W,computed as R,DestroyRef as lt,inject as dt}from"@angular/core";function mt(t,e){let s=Object.keys(t),r=Object.keys(e);return s.length!==r.length?!1:s.every(n=>t[n]===e[n])}function pt(t){let e=f(),s=W(0),r=R(()=>t[s()]??""),n=()=>t[s()]??"",a=W(e.getStepStatus(n())),g=()=>{let l=n(),p=e.getStepStatus(l),d=a();(p.hasErrors!==d.hasErrors||p.isDirty!==d.isDirty||!mt(p.errors,d.errors))&&a.set(p)},o=e.subscribe(g);try{dt(lt).onDestroy(()=>o())}catch{}let i=async()=>{let l=n(),p=await e.validate({scope:l}),d=e.getStepErrors(l);return{valid:p,errors:d}},u=()=>e.getStepErrors(n()),c=async()=>{let l=n(),p=e.getConfig().scopes?.[l];if(e.hasValidationsInProgress(p))return!1;let d=await e.validate({scope:l});if(d){let m=Math.min(s()+1,t.length-1);s.set(m),a.set(e.getStepStatus(t[m]??""))}else{let m=e.getStepErrors(l),V=Object.keys(m);V.length>0&&e.markFieldsTouched(V)}return d},y=()=>{let l=Math.max(s()-1,0);s.set(l),a.set(e.getStepStatus(t[l]??""))},E=l=>{let p=Math.max(0,Math.min(l-1,t.length-1));s.set(p),a.set(e.getStepStatus(t[p]??""))},I=R(()=>s()+1),P=R(()=>s()===0),F=R(()=>s()>=t.length-1),T=R(()=>!a().hasErrors),v=R(()=>a().isDirty),S=R(()=>a().errors);return{step:I,stepIndex:s,scope:r,next:c,prev:y,goTo:E,isFirst:P,isLast:F,status:a,errors:S,isValid:T,isDirty:v,validate:i,getErrors:u}}import{DestroyRef as yt,signal as gt,inject as ft}from"@angular/core";function Bt(t){let e=f(),s=ft(yt),r=gt(h(e.getState().values,t),{equal:U}),n=e.watch(t,a=>{r.set(a)});return s.onDestroy(n),r.asReadonly()}import{computed as O,inject as St}from"@angular/core";function Ft(t,e,s){let r=St(b),n=k(t),a=null,g=async i=>{if(i){r.beginFieldValidation(t),await r.clearFieldAsyncError(t);try{let u=await e(i);n.setValue(u.url),a=u.key,await r.clearFieldAsyncError(t)}catch(u){let c=u instanceof Error?u.message:"Upload failed";await r.setFieldAsyncError(t,c)}finally{r.endFieldValidation(t)}}},o=async()=>{if(a&&s)try{await s(a)}catch(i){let u=i instanceof Error?i.message:"Delete failed";await r.setFieldAsyncError(t,u);return}n.setValue(null),a=null,await r.clearFieldAsyncError(t)};return{value:O(()=>n.value()),setValue:n.setValue,error:O(()=>n.meta.error()),isValidating:O(()=>n.meta.isValidating()||!1),upload:g,remove:o}}export{tt as injectBitArray,k as injectBitField,Q as injectBitForm,ot as injectBitHistory,ut as injectBitScope,pt as injectBitSteps,Ft as injectBitUpload,Bt as injectBitWatch,L as provideBitStore,f as useBitStore};
2
2
  //# sourceMappingURL=index.js.map