@lehnihon/bit-form 2.2.8 → 2.2.9

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 (142) 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 +12 -11
  4. package/dist/angular/index.d.ts +12 -11
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{array-controller-Cx-DMH7Y.d.ts → array-controller-C61ByyG6.d.ts} +5 -5
  8. package/dist/{array-controller-B5bfXV1W.d.cts → array-controller-CtlqjA0e.d.cts} +5 -5
  9. package/dist/{bus-B2VEKrPI.d.ts → bus-BKuMV3E7.d.ts} +1 -1
  10. package/dist/{bus-ZLQeq4Vr.d.cts → bus-WOHGxuVy.d.cts} +1 -1
  11. package/dist/chunk-2QLQPMCZ.js +2 -0
  12. package/dist/chunk-2QLQPMCZ.js.map +1 -0
  13. package/dist/chunk-3KI3GEU3.cjs +2 -0
  14. package/dist/chunk-3KI3GEU3.cjs.map +1 -0
  15. package/dist/chunk-6LNXTSZ6.cjs +2 -0
  16. package/dist/{chunk-T2JRSWQU.cjs.map → chunk-6LNXTSZ6.cjs.map} +1 -1
  17. package/dist/{chunk-P2YWYBWG.cjs → chunk-GGZPA7AO.cjs} +2 -2
  18. package/dist/{chunk-P2YWYBWG.cjs.map → chunk-GGZPA7AO.cjs.map} +1 -1
  19. package/dist/chunk-ICYXODTQ.js +2 -0
  20. package/dist/chunk-ICYXODTQ.js.map +1 -0
  21. package/dist/chunk-J5ALITQW.cjs +2 -0
  22. package/dist/chunk-J5ALITQW.cjs.map +1 -0
  23. package/dist/chunk-J5GQLEVA.js +2 -0
  24. package/dist/chunk-J5GQLEVA.js.map +1 -0
  25. package/dist/chunk-KDHPLXZF.cjs +2 -0
  26. package/dist/chunk-KDHPLXZF.cjs.map +1 -0
  27. package/dist/{chunk-JC4R5WCC.js → chunk-N4HCGMMM.js} +2 -2
  28. package/dist/chunk-OLQVH24Z.cjs +2 -0
  29. package/dist/chunk-OLQVH24Z.cjs.map +1 -0
  30. package/dist/chunk-QX2IVNMK.js +2 -0
  31. package/dist/chunk-QX2IVNMK.js.map +1 -0
  32. package/dist/{chunk-D7JQWF6V.cjs → chunk-RHMJPKNV.cjs} +1 -1
  33. package/dist/{chunk-D7JQWF6V.cjs.map → chunk-RHMJPKNV.cjs.map} +1 -1
  34. package/dist/chunk-UARLAXZX.js +2 -0
  35. package/dist/chunk-UARLAXZX.js.map +1 -0
  36. package/dist/{chunk-EQ55DKX2.js → chunk-UIKO6GGW.js} +1 -1
  37. package/dist/chunk-UIKO6GGW.js.map +1 -0
  38. package/dist/chunk-X5UCRGYJ.cjs +2 -0
  39. package/dist/chunk-X5UCRGYJ.cjs.map +1 -0
  40. package/dist/chunk-Y3XVQGCU.js +2 -0
  41. package/dist/chunk-Y3XVQGCU.js.map +1 -0
  42. package/dist/cli/index.cjs +2 -2
  43. package/dist/core/bindings.cjs +1 -1
  44. package/dist/core/bindings.cjs.map +1 -1
  45. package/dist/core/bindings.d.cts +22 -14
  46. package/dist/core/bindings.d.ts +22 -14
  47. package/dist/core/bindings.js +1 -1
  48. package/dist/core/status.cjs +1 -1
  49. package/dist/core/status.d.cts +4 -4
  50. package/dist/core/status.d.ts +4 -4
  51. package/dist/core/status.js +1 -1
  52. package/dist/core/store.cjs +1 -1
  53. package/dist/core/store.cjs.map +1 -1
  54. package/dist/core/store.d.cts +4 -4
  55. package/dist/core/store.d.ts +4 -4
  56. package/dist/core/store.js +1 -1
  57. package/dist/core/utils.cjs +1 -1
  58. package/dist/core/utils.cjs.map +1 -1
  59. package/dist/core/utils.d.cts +4 -11
  60. package/dist/core/utils.d.ts +4 -11
  61. package/dist/core/utils.js +1 -1
  62. package/dist/core.cjs +1 -1
  63. package/dist/core.cjs.map +1 -1
  64. package/dist/core.d.cts +4 -4
  65. package/dist/core.d.ts +4 -4
  66. package/dist/core.js +1 -1
  67. package/dist/devtools/bridge.cjs +1 -1
  68. package/dist/devtools/bridge.cjs.map +1 -1
  69. package/dist/devtools/bridge.d.cts +2 -2
  70. package/dist/devtools/bridge.d.ts +2 -2
  71. package/dist/devtools/bridge.js +1 -1
  72. package/dist/devtools/index.cjs +2 -2
  73. package/dist/devtools/index.cjs.map +1 -1
  74. package/dist/devtools/index.d.cts +2 -2
  75. package/dist/devtools/index.d.ts +2 -2
  76. package/dist/devtools/index.js +1 -1
  77. package/dist/devtools/index.js.map +1 -1
  78. package/dist/index.cjs +1 -1
  79. package/dist/index.cjs.map +1 -1
  80. package/dist/index.d.cts +3 -3
  81. package/dist/index.d.ts +3 -3
  82. package/dist/index.js +1 -1
  83. package/dist/mask.cjs +1 -1
  84. package/dist/mask.cjs.map +1 -1
  85. package/dist/mask.js +1 -1
  86. package/dist/mask.js.map +1 -1
  87. package/dist/react/index.cjs +1 -1
  88. package/dist/react/index.cjs.map +1 -1
  89. package/dist/react/index.d.cts +7 -7
  90. package/dist/react/index.d.ts +7 -7
  91. package/dist/react/index.js +1 -1
  92. package/dist/react/index.js.map +1 -1
  93. package/dist/react-native/index.cjs +1 -1
  94. package/dist/react-native/index.cjs.map +1 -1
  95. package/dist/react-native/index.d.cts +6 -6
  96. package/dist/react-native/index.d.ts +6 -6
  97. package/dist/react-native/index.js +1 -1
  98. package/dist/react-native/index.js.map +1 -1
  99. package/dist/resolvers/index.d.cts +2 -2
  100. package/dist/resolvers/index.d.ts +2 -2
  101. package/dist/resolvers/joi.d.cts +2 -2
  102. package/dist/resolvers/joi.d.ts +2 -2
  103. package/dist/resolvers/yup.d.cts +2 -2
  104. package/dist/resolvers/yup.d.ts +2 -2
  105. package/dist/resolvers/zod.d.cts +2 -2
  106. package/dist/resolvers/zod.d.ts +2 -2
  107. package/dist/{store-api-types-D-ZHxzRy.d.cts → store-api-types-Bm3EAqR_.d.cts} +10 -10
  108. package/dist/{store-api-types-DPi30jQF.d.ts → store-api-types-DfTFy2h4.d.ts} +10 -10
  109. package/dist/{types-CG5nYeRk.d.ts → types-CRCP4Pgq.d.ts} +9 -3
  110. package/dist/{types-D6LhF5GC.d.cts → types-SOg9xEce.d.cts} +9 -3
  111. package/dist/{use-bit-persist-BTwy8kvA.d.ts → use-bit-persist-BDMZmxBh.d.ts} +4 -4
  112. package/dist/{use-bit-persist-C2LHNTVv.d.cts → use-bit-persist-CBTZIMc5.d.cts} +4 -4
  113. package/dist/utils.cjs +1 -1
  114. package/dist/utils.js +1 -1
  115. package/dist/vue/index.cjs +1 -1
  116. package/dist/vue/index.cjs.map +1 -1
  117. package/dist/vue/index.d.cts +4 -4
  118. package/dist/vue/index.d.ts +4 -4
  119. package/dist/vue/index.js +1 -1
  120. package/dist/vue/index.js.map +1 -1
  121. package/package.json +9 -6
  122. package/dist/chunk-63OJBMKK.js +0 -2
  123. package/dist/chunk-63OJBMKK.js.map +0 -1
  124. package/dist/chunk-CPP7ELA5.js +0 -2
  125. package/dist/chunk-CPP7ELA5.js.map +0 -1
  126. package/dist/chunk-E2NZR44P.js +0 -2
  127. package/dist/chunk-E2NZR44P.js.map +0 -1
  128. package/dist/chunk-EQ55DKX2.js.map +0 -1
  129. package/dist/chunk-M6WBNHIT.cjs +0 -2
  130. package/dist/chunk-M6WBNHIT.cjs.map +0 -1
  131. package/dist/chunk-MFSQATNZ.cjs +0 -2
  132. package/dist/chunk-MFSQATNZ.cjs.map +0 -1
  133. package/dist/chunk-MFTWAFMG.cjs +0 -2
  134. package/dist/chunk-MFTWAFMG.cjs.map +0 -1
  135. package/dist/chunk-RD73EBSN.js +0 -2
  136. package/dist/chunk-RD73EBSN.js.map +0 -1
  137. package/dist/chunk-T2JRSWQU.cjs +0 -2
  138. package/dist/chunk-UQ3DSUWC.js +0 -2
  139. package/dist/chunk-UQ3DSUWC.js.map +0 -1
  140. package/dist/chunk-VZHG372Q.cjs +0 -2
  141. package/dist/chunk-VZHG372Q.cjs.map +0 -1
  142. /package/dist/{chunk-JC4R5WCC.js.map → chunk-N4HCGMMM.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 _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');require('../chunk-W5CLDRRE.cjs');var _chunkVZHG372Qcjs = require('../chunk-VZHG372Q.cjs');var _chunkMFTWAFMGcjs = require('../chunk-MFTWAFMG.cjs');var _chunkBSGJ3T5Scjs = require('../chunk-BSGJ3T5S.cjs');var _chunkD7JQWF6Vcjs = require('../chunk-D7JQWF6V.cjs');var _chunkM6WBNHITcjs = require('../chunk-M6WBNHIT.cjs');var _chunkT2JRSWQUcjs = require('../chunk-T2JRSWQU.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _core = require('@angular/core');var g=new (0, _core.InjectionToken)("BIT_STORE");function nt(t){return{provide:g,useValue:_chunkVZHG372Qcjs.d.call(void 0, t)}}function u(){let t=_core.inject.call(void 0, g,{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 lt(){let t=u(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, {isValid:!0,isDirty:!1,isSubmitting:!1}),o=_core.signal.call(void 0, null),s=_core.signal.call(void 0, null),i=_chunkMFTWAFMGcjs.c.call(void 0, t,S=>{r.set(S)});e.onDestroy(()=>i());let l=_core.computed.call(void 0, ()=>r().isValid),p=_core.computed.call(void 0, ()=>r().isSubmitting),d=_core.computed.call(void 0, ()=>r().isDirty),{controller:a,actions:n}=_chunkMFTWAFMGcjs.g.call(void 0, t,{clearSubmissionState:()=>{o.set(null),s.set(null)},setSubmissionResult:S=>{s.set(S)},setSubmissionError:S=>{o.set(S)}},{stopPropagation:!0});return{meta:{isValid:l,isDirty:d,isSubmitting:p,submitError:o.asReadonly(),lastResponse:s.asReadonly()},getValues:a.getValues,getErrors:a.getErrors,getTouched:a.getTouched,getDirtyValues:a.getDirtyValues,submit:a.submit,onSubmit:a.onSubmit,reset:a.reset,...n}}function E(t){let e=_core.inject.call(void 0, g),r=_core.signal.call(void 0, e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,f=>{r.set(f)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{o(),_chunkMFTWAFMGcjs.j.call(void 0, e,t)});let s=_core.computed.call(void 0, ()=>r().value),i=_core.computed.call(void 0, ()=>_chunkM6WBNHITcjs.c.call(void 0, r())),l=_core.computed.call(void 0, ()=>i().error),p=_core.computed.call(void 0, ()=>i().touched),d=_core.computed.call(void 0, ()=>i().invalid),a=_core.computed.call(void 0, ()=>i().isDirty),n=_core.computed.call(void 0, ()=>i().isValidating),B=_core.computed.call(void 0, ()=>i().isHidden),S=_core.computed.call(void 0, ()=>i().isRequired),{fieldController:j}=_chunkMFTWAFMGcjs.h.call(void 0, e,t),T=_core.computed.call(void 0, ()=>j.displayValue(s())),F=f=>{j.setValue(f)},h=()=>j.setBlur(),x=_core.computed.call(void 0, ()=>i().hasError);return{value:s,displayValue:T,setValue:F,setBlur:h,update:f=>F(_chunkPFPGASVZcjs.a.call(void 0, f)?_nullishCoalesce(_optionalChain([f, 'access', _2 => _2.target, 'optionalAccess', _3 => _3.value]), () => (null)):f),meta:{error:l,touched:p,invalid:d,isDirty:a,isValidating:n,isHidden:B,isRequired:S,hasError:x}}}function St(t){let e=_core.inject.call(void 0, g),r=_core.inject.call(void 0, _core.DestroyRef),o=_chunkMFTWAFMGcjs.i.call(void 0, e,t),s=_core.signal.call(void 0, o.readItems()),i=e.observe.subscribePath(t,()=>{s.set(o.readItems())});return r.onDestroy(()=>{i(),_chunkMFTWAFMGcjs.k.call(void 0, e,`${t}.`)}),{fields:_core.computed.call(void 0, ()=>o.getFields(s())),length:_core.computed.call(void 0, ()=>s().length),append:o.append,prepend:o.prepend,remove:o.remove,insert:o.insert,swap:o.swap,move:o.move,replace:o.replace,clear:o.clear}}function gt(){let t=u(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, _chunkD7JQWF6Vcjs.f.call(void 0, t)),o=_chunkD7JQWF6Vcjs.g.call(void 0, t,s=>{r.set(s)});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.feature.undo(),redo:()=>t.feature.redo()}}function Ft(t){let e=u(),r=e.read.getScopeStatus(t),o=_core.signal.call(void 0, r),s=_chunkBSGJ3T5Scjs.a.call(void 0, e,t,n=>{o.set(n)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>s())}catch (e2){}let i=async()=>{let n=await e.write.validate({scope:t}),B=e.read.getScopeErrors(t);return{valid:n,errors:B}},l=()=>e.read.getScopeErrors(t),p=_core.computed.call(void 0, ()=>!o().hasErrors),d=_core.computed.call(void 0, ()=>o().isDirty),a=_core.computed.call(void 0, ()=>o().errors);return{scopeName:t,status:o,errors:a,validate:i,getErrors:l,isValid:p,isDirty:d,unsubscribe:s}}function Tt(t){let e=u(),r=_core.signal.call(void 0, 0),o=_core.computed.call(void 0, ()=>_nullishCoalesce(t[r()], () => (""))),s=()=>_nullishCoalesce(t[r()], () => ("")),i=_core.signal.call(void 0, e.read.getScopeStatus(s())),l=()=>{let c=s(),y=e.read.getScopeStatus(c),R=i();_chunkD7JQWF6Vcjs.b.call(void 0, R,y)||i.set(y)},p=e.observe.subscribeScopeStatus(s(),l),d=()=>{p(),p=e.observe.subscribeScopeStatus(s(),l)};try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>p())}catch (e3){}let a=async()=>{let c=s(),y=await e.write.validate({scope:c}),R=e.read.getScopeErrors(c);return{valid:y,errors:R}},n=()=>e.read.getScopeErrors(s()),B=async()=>{let c=s(),y=e.read.getScopeFields(c);if(e.feature.hasValidationsInProgress(y))return!1;let R=await e.write.validate({scope:c});if(R){let v=Math.min(r()+1,t.length-1);r.set(v),i.set(e.read.getScopeStatus(_nullishCoalesce(t[v], () => ("")))),d()}else{let v=e.read.getScopeErrors(c),k=Object.keys(v);k.length>0&&e.write.markFieldsTouched(k)}return R},S=()=>{let c=Math.max(r()-1,0);r.set(c),i.set(e.read.getScopeStatus(_nullishCoalesce(t[c], () => ("")))),d()},j=c=>{let y=Math.max(0,Math.min(c-1,t.length-1));r.set(y),i.set(e.read.getScopeStatus(_nullishCoalesce(t[y], () => ("")))),d()},T=_core.computed.call(void 0, ()=>r()+1),F=_core.computed.call(void 0, ()=>r()===0),h=_core.computed.call(void 0, ()=>r()>=t.length-1),x=_core.computed.call(void 0, ()=>!i().hasErrors),U=_core.computed.call(void 0, ()=>i().isDirty),f=_core.computed.call(void 0, ()=>i().errors);return{step:T,stepIndex:r,scope:o,next:B,prev:S,goTo:j,isFirst:F,isLast:h,status:i,errors:f,isValid:x,isDirty:U,validate:a,getErrors:n}}function It(t){let e=u(),r=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, _chunkT2JRSWQUcjs.f.call(void 0, e.read.getState().values,t),{equal:_chunkT2JRSWQUcjs.c}),s=e.observe.subscribePath(t,i=>{o.set(i)});return r.onDestroy(s),o.asReadonly()}function wt(t,e,r){let o=_core.inject.call(void 0, g),s=E(t),i=null,l=_core.signal.call(void 0, !1),p={setLoading:n=>l.set(n),setError:(n,B)=>o.write.setError(n,B),setValue:n=>s.setValue(n),getUploadKey:()=>i,setUploadKey:n=>{i=n}},d=_chunkIV32WXCFcjs.a.call(void 0, t,e,p),a=_chunkIV32WXCFcjs.b.call(void 0, t,r,p);return{value:_core.computed.call(void 0, ()=>s.value()),setValue:s.setValue,error:_core.computed.call(void 0, ()=>s.meta.error()),isValidating:_core.computed.call(void 0, ()=>!!s.meta.isValidating()||l()),upload:d,remove:a}}function Mt(){let t=u(),e=_core.signal.call(void 0, t.read.getPersistMetadata()),r=_chunkMFTWAFMGcjs.f.call(void 0, t,l=>{e.set(l)});try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>r())}catch (e4){}return{restore:async()=>t.feature.restorePersisted(),save:async()=>{await t.feature.forceSave()},clear:async()=>{await t.feature.clearPersisted()},meta:{isSaving:_core.computed.call(void 0, ()=>e().isSaving),isRestoring:_core.computed.call(void 0, ()=>e().isRestoring),error:_core.computed.call(void 0, ()=>e().error)}}}exports.injectBitArray = St; exports.injectBitField = E; exports.injectBitForm = lt; exports.injectBitHistory = gt; exports.injectBitPersist = Mt; exports.injectBitScope = Ft; exports.injectBitSteps = Tt; exports.injectBitUpload = wt; exports.injectBitWatch = It; exports.provideBitStore = nt; exports.useBitStore = u;
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 _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');require('../chunk-W5CLDRRE.cjs');var _chunkJ5ALITQWcjs = require('../chunk-J5ALITQW.cjs');var _chunkKDHPLXZFcjs = require('../chunk-KDHPLXZF.cjs');var _chunkBSGJ3T5Scjs = require('../chunk-BSGJ3T5S.cjs');var _chunkRHMJPKNVcjs = require('../chunk-RHMJPKNV.cjs');var _chunk3KI3GEU3cjs = require('../chunk-3KI3GEU3.cjs');require('../chunk-OLQVH24Z.cjs');var _chunk6LNXTSZ6cjs = require('../chunk-6LNXTSZ6.cjs');var _chunkPFPGASVZcjs = require('../chunk-PFPGASVZ.cjs');var _core = require('@angular/core');var B=new (0, _core.InjectionToken)("BIT_STORE");function at(t){return{provide:B,useValue:_chunkJ5ALITQWcjs.d.call(void 0, t)}}function u(){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 ut(){let t=u(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, {isValid:!0,isDirty:!1,isSubmitting:!1}),o=_core.signal.call(void 0, null),s=_core.signal.call(void 0, null),i=_chunkKDHPLXZFcjs.c.call(void 0, t,m=>{r.set(m)});e.onDestroy(()=>i());let p=_core.computed.call(void 0, ()=>r().isValid),a=_core.computed.call(void 0, ()=>r().isSubmitting),d=_core.computed.call(void 0, ()=>r().isDirty),{controller:c,actions:n}=_chunkKDHPLXZFcjs.i.call(void 0, t,{clearSubmissionState:()=>{o.set(null),s.set(null)},setSubmissionResult:m=>{s.set(m)},setSubmissionError:m=>{o.set(m)}},{stopPropagation:!0});return{meta:{isValid:p,isDirty:d,isSubmitting:a,submitError:o.asReadonly(),lastResponse:s.asReadonly()},getValues:c.getValues,getErrors:c.getErrors,getTouched:c.getTouched,getDirtyValues:c.getDirtyValues,submit:c.submit,onSubmit:c.onSubmit,reset:c.reset,...n}}function E(t){let e=_core.inject.call(void 0, B),r=_core.signal.call(void 0, e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,y=>{r.set(y)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{o(),_chunkKDHPLXZFcjs.j.call(void 0, e,t)});let s=_core.computed.call(void 0, ()=>r().value),i=_core.computed.call(void 0, ()=>_chunk3KI3GEU3cjs.a.call(void 0, r())),p=_core.computed.call(void 0, ()=>i().error),a=_core.computed.call(void 0, ()=>i().touched),d=_core.computed.call(void 0, ()=>i().invalid),c=_core.computed.call(void 0, ()=>i().isDirty),n=_core.computed.call(void 0, ()=>i().isValidating),f=_core.computed.call(void 0, ()=>i().isHidden),m=_core.computed.call(void 0, ()=>i().isRequired),{fieldController:j}=_chunkKDHPLXZFcjs.h.call(void 0, e,t),T=_core.computed.call(void 0, ()=>j.displayValue(s())),v=y=>{j.setValue(y)},h=()=>j.setBlur(),x=_core.computed.call(void 0, ()=>i().hasError);return{value:s,displayValue:T,setValue:v,setBlur:h,update:y=>v(_chunkPFPGASVZcjs.a.call(void 0, y)?_nullishCoalesce(_optionalChain([y, 'access', _2 => _2.target, 'optionalAccess', _3 => _3.value]), () => (null)):y),meta:{error:p,touched:a,invalid:d,isDirty:c,isValidating:n,isHidden:f,isRequired:m,hasError:x}}}function ft(t){let e=_core.inject.call(void 0, B),r=_core.inject.call(void 0, _core.DestroyRef),o=_chunkKDHPLXZFcjs.g.call(void 0, e,t),s=_core.signal.call(void 0, o.readItems()),i=e.observe.subscribePath(t,()=>{s.set(o.readItems())});return r.onDestroy(()=>{i(),_chunkKDHPLXZFcjs.k.call(void 0, e,`${t}.`)}),{fields:_core.computed.call(void 0, ()=>o.getFields(s())),length:_core.computed.call(void 0, ()=>s().length),append:o.append,prepend:o.prepend,remove:o.remove,insert:o.insert,swap:o.swap,move:o.move,replace:o.replace,clear:o.clear}}function Rt(){let t=u(),e=_core.inject.call(void 0, _core.DestroyRef),r=_core.signal.call(void 0, _chunkRHMJPKNVcjs.f.call(void 0, t)),o=_chunkRHMJPKNVcjs.g.call(void 0, t,s=>{r.set(s)});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.feature.undo(),redo:()=>t.feature.redo()}}function Ft(t){let e=u(),r=e.read.getScopeStatus(t),o=_core.signal.call(void 0, r),s=_chunkBSGJ3T5Scjs.a.call(void 0, e,t,f=>{o.set(f)});_optionalChain([_core.inject.call(void 0, _core.DestroyRef,{optional:!0}), 'optionalAccess', _4 => _4.onDestroy, 'call', _5 => _5(()=>s())]);let p=async()=>{let f=await e.feature.validate({scope:t}),m=e.read.getScopeErrors(t);return{valid:f,errors:m}},a=()=>e.read.getScopeErrors(t),d=_core.computed.call(void 0, ()=>!o().hasErrors),c=_core.computed.call(void 0, ()=>o().isDirty),n=_core.computed.call(void 0, ()=>o().errors);return{scopeName:t,status:o,errors:n,validate:p,getErrors:a,isValid:d,isDirty:c,unsubscribe:s}}function ht(t){let e=u(),r=_core.signal.call(void 0, 0),o=_core.computed.call(void 0, ()=>_nullishCoalesce(t[r()], () => (""))),s=()=>_nullishCoalesce(t[r()], () => ("")),i=_core.signal.call(void 0, e.read.getScopeStatus(s())),p=()=>{let l=s(),g=e.read.getScopeStatus(l),b=i();_chunkRHMJPKNVcjs.b.call(void 0, b,g)||i.set(g)},a=e.observe.subscribeScopeStatus(s(),p),d=()=>{a(),a=e.observe.subscribeScopeStatus(s(),p)};_optionalChain([_core.inject.call(void 0, _core.DestroyRef,{optional:!0}), 'optionalAccess', _6 => _6.onDestroy, 'call', _7 => _7(()=>a())]);let n=async()=>{let l=s(),g=await e.feature.validate({scope:l}),b=e.read.getScopeErrors(l);return{valid:g,errors:b}},f=()=>e.read.getScopeErrors(s()),m=async()=>{let l=s(),g=e.read.getScopeFields(l);if(e.feature.hasValidationsInProgress(g))return!1;let b=await e.feature.validate({scope:l});if(b){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.read.getScopeStatus(_nullishCoalesce(t[F], () => ("")))),d()}else{let F=e.read.getScopeErrors(l),k=Object.keys(F);k.length>0&&e.write.markFieldsTouched(k)}return b},j=()=>{let l=Math.max(r()-1,0);r.set(l),i.set(e.read.getScopeStatus(_nullishCoalesce(t[l], () => ("")))),d()},T=l=>{let g=Math.max(0,Math.min(l-1,t.length-1));r.set(g),i.set(e.read.getScopeStatus(_nullishCoalesce(t[g], () => ("")))),d()},v=_core.computed.call(void 0, ()=>r()+1),h=_core.computed.call(void 0, ()=>r()===0),x=_core.computed.call(void 0, ()=>r()>=t.length-1),U=_core.computed.call(void 0, ()=>!i().hasErrors),y=_core.computed.call(void 0, ()=>i().isDirty),st=_core.computed.call(void 0, ()=>i().errors);return{step:v,stepIndex:r,scope:o,next:m,prev:j,goTo:T,isFirst:h,isLast:x,status:i,errors:st,isValid:U,isDirty:y,validate:n,getErrors:f}}function Et(t){let e=u(),r=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, _chunk6LNXTSZ6cjs.f.call(void 0, e.read.getState().values,t),{equal:_chunk6LNXTSZ6cjs.c}),s=e.observe.subscribePath(t,i=>{o.set(i)});return r.onDestroy(s),o.asReadonly()}function At(t,e,r){let o=_core.inject.call(void 0, B),s=E(t),i=null,p=_core.signal.call(void 0, !1),a={setLoading:n=>p.set(n),setError:(n,f)=>o.write.setError(n,f),setValue:n=>s.setValue(n),getUploadKey:()=>i,setUploadKey:n=>{i=n}},d=_chunkIV32WXCFcjs.a.call(void 0, t,e,a),c=_chunkIV32WXCFcjs.b.call(void 0, t,r,a);return{value:_core.computed.call(void 0, ()=>s.value()),setValue:s.setValue,error:_core.computed.call(void 0, ()=>s.meta.error()),isValidating:_core.computed.call(void 0, ()=>!!s.meta.isValidating()||p()),upload:d,remove:c}}function Ht(){let t=u(),e=_core.signal.call(void 0, t.read.getPersistMetadata()),r=_chunkKDHPLXZFcjs.f.call(void 0, t,a=>{e.set(a)});return _optionalChain([_core.inject.call(void 0, _core.DestroyRef,{optional:!0}), 'optionalAccess', _8 => _8.onDestroy, 'call', _9 => _9(()=>r())]),{restore:async()=>t.feature.restorePersisted(),save:async()=>{await t.feature.forceSave()},clear:async()=>{await t.feature.clearPersisted()},meta:{isSaving:_core.computed.call(void 0, ()=>e().isSaving),isRestoring:_core.computed.call(void 0, ()=>e().isRestoring),error:_core.computed.call(void 0, ()=>e().error)}}}exports.injectBitArray = ft; exports.injectBitField = E; exports.injectBitForm = ut; exports.injectBitHistory = Rt; exports.injectBitPersist = Ht; exports.injectBitScope = Ft; exports.injectBitSteps = ht; exports.injectBitUpload = At; exports.injectBitWatch = Et; exports.provideBitStore = at; exports.useBitStore = u;
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","createFrameworkStoreAdapter","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","observeFormMetaSnapshot","nextMeta","isValid","computed","isSubmitting","isDirty","controller","actions","createFrameworkFormBinding","result","error","injectBitField","path","unsubscribe","nextState","cleanupRegisteredField","value","metaState","deriveFieldMeta","touched","invalid","isValidating","isHidden","isRequired","fieldController","createFrameworkMaskedFieldBinding","displayValue","setValue","val","setBlur","hasError","e","isBitFieldInputEventObject","injectBitArray","createArrayBindingController","valuesSig","unsub","cleanupRegisteredPrefix"],"mappings":"AAAA,0uBAAgD,iCAA8B,yDAA0C,yDAAoF,yDAA0C,yDAAwD,yDAA0C,yDAAiD,yDAA0C,qCCAlY,IAIpCA,CAAAA,CAAkB,IAAIC,yBAAAA,CACjC,WACF,CAAA,CAEO,SAASC,EAAAA,CACdC,CAAAA,CACU,CACV,MAAO,CACL,OAAA,CAASH,CAAAA,CACT,QAAA,CAAUI,iCAAAA,CAAoC,CAChD,CACF,CAEO,SAASC,CAAAA,CAAAA,CAAgC,CAC9C,IAAMF,CAAAA,CAAQG,0BAAAA,CAAON,CAAiB,CAAE,QAAA,CAAU,CAAA,CAAK,CAAC,CAAA,CAExD,EAAA,CAAI,CAACG,CAAAA,CACH,MAAM,IAAI,KAAA,CACR,wJAEF,CAAA,CAGF,OAAOA,CACT,CC5BA,SAKgBI,EAAAA,CAAAA,CAA0D,CACxE,IAAMJ,CAAAA,CAAQE,CAAAA,CAAe,CAAA,CACvBG,CAAAA,CAAaF,0BAAAA,gBAAiB,CAAA,CAC9BG,CAAAA,CAAcC,0BAAAA,CAClB,OAAA,CAAS,CAAA,CAAA,CACT,OAAA,CAAS,CAAA,CAAA,CACT,YAAA,CAAc,CAAA,CAChB,CAAC,CAAA,CACKC,CAAAA,CAAcD,0BAAAA,IAAyB,CAAA,CACvCE,CAAAA,CAAeF,0BAAAA,IAAoB,CAAA,CAEnCG,CAAAA,CAAMC,iCAAAA,CAAwBX,CAAQY,CAAAA,EAAa,CACvDN,CAAAA,CAAY,GAAA,CAAIM,CAAQ,CAC1B,CAAC,CAAA,CAEDP,CAAAA,CAAW,SAAA,CAAU,CAAA,CAAA,EAAMK,CAAAA,CAAI,CAAC,CAAA,CAEhC,IAAMG,CAAAA,CAAUC,4BAAAA,CAAS,CAAA,EAAMR,CAAAA,CAAY,CAAA,CAAE,OAAO,CAAA,CAC9CS,CAAAA,CAAeD,4BAAAA,CAAS,CAAA,EAAMR,CAAAA,CAAY,CAAA,CAAE,YAAY,CAAA,CACxDU,CAAAA,CAAUF,4BAAAA,CAAS,CAAA,EAAMR,CAAAA,CAAY,CAAA,CAAE,OAAO,CAAA,CAE9C,CAAE,UAAA,CAAAW,CAAAA,CAAY,OAAA,CAAAC,CAAQ,CAAA,CAAIC,iCAAAA,CAC9BnB,CACA,CACE,oBAAA,CAAsB,CAAA,CAAA,EAAM,CAC1BQ,CAAAA,CAAY,GAAA,CAAI,IAAI,CAAA,CACpBC,CAAAA,CAAa,GAAA,CAAI,IAAI,CACvB,CAAA,CACA,mBAAA,CAAsBW,CAAAA,EAAW,CAC/BX,CAAAA,CAAa,GAAA,CAAIW,CAAM,CACzB,CAAA,CACA,kBAAA,CAAqBC,CAAAA,EAAU,CAC7Bb,CAAAA,CAAY,GAAA,CAAIa,CAAK,CACvB,CACF,CAAA,CACA,CAAE,eAAA,CAAiB,CAAA,CAAK,CAC1B,CAAA,CAUA,MAAO,CAEL,IAAA,CAVW,CACX,OAAA,CAAAR,CAAAA,CACA,OAAA,CAAAG,CAAAA,CACA,YAAA,CAAAD,CAAAA,CACA,WAAA,CAAaP,CAAAA,CAAY,UAAA,CAAW,CAAA,CACpC,YAAA,CAAcC,CAAAA,CAAa,UAAA,CAAW,CACxC,CAAA,CAME,SAAA,CAAWQ,CAAAA,CAAW,SAAA,CACtB,SAAA,CAAWA,CAAAA,CAAW,SAAA,CACtB,UAAA,CAAYA,CAAAA,CAAW,UAAA,CACvB,cAAA,CAAgBA,CAAAA,CAAW,cAAA,CAE3B,MAAA,CAAQA,CAAAA,CAAW,MAAA,CACnB,QAAA,CAAUA,CAAAA,CAAW,QAAA,CACrB,KAAA,CAAOA,CAAAA,CAAW,KAAA,CAClB,GAAGC,CACL,CACF,CCjEA,SAegBI,CAAAA,CAIdC,CAAAA,CAAyC,CACzC,IAAMvB,CAAAA,CAAQG,0BAAAA,CAAsB,CAAA,CAE9BG,CAAAA,CAAcC,0BAAAA,CAAOP,CAAM,IAAA,CAAK,aAAA,CAAcuB,CAAI,CAAC,CAAA,CAEnDC,CAAAA,CAAcxB,CAAAA,CAAM,OAAA,CAAQ,mBAAA,CAAoBuB,CAAAA,CAAOE,CAAAA,EAAc,CACzEnB,CAAAA,CAAY,GAAA,CAAImB,CAAS,CAC3B,CAAC,CAAA,CAEDtB,0BAAAA,gBAAiB,CAAA,CAAE,SAAA,CAAU,CAAA,CAAA,EAAM,CACjCqB,CAAAA,CAAY,CAAA,CACZE,iCAAAA,CAAuB1B,CAAOuB,CAAc,CAC9C,CAAC,CAAA,CAED,IAAMI,CAAAA,CAAQb,4BAAAA,CAAS,CAAA,EAAMR,CAAAA,CAAY,CAAA,CAAE,KAA+B,CAAA,CACpEsB,CAAAA,CAAYd,4BAAAA,CAAS,CAAA,EAAMe,iCAAAA,CAAgBvB,CAAY,CAAC,CAAC,CAAA,CACzDe,CAAAA,CAAQP,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,KAAK,CAAA,CACxCE,CAAAA,CAAUhB,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CG,CAAAA,CAAUjB,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CZ,CAAAA,CAAUF,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CI,CAAAA,CAAelB,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,YAAY,CAAA,CACtDK,CAAAA,CAAWnB,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,QAAQ,CAAA,CAC9CM,CAAAA,CAAapB,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,UAAU,CAAA,CAElD,CAAE,eAAA,CAAAO,CAAgB,CAAA,CAAIC,iCAAAA,CAAkCpC,CAAOuB,CAAI,CAAA,CAEnEc,CAAAA,CAAevB,4BAAAA,CAAS,CAAA,EAAMqB,CAAAA,CAAgB,YAAA,CAAaR,CAAAA,CAAM,CAAC,CAAC,CAAA,CAEnEW,CAAAA,CACJC,CAAAA,EACG,CACHJ,CAAAA,CAAgB,QAAA,CAASI,CAAG,CAC9B,CAAA,CAEMC,CAAAA,CAAU,CAAA,CAAA,EAAML,CAAAA,CAAgB,OAAA,CAAQ,CAAA,CAExCM,CAAAA,CAAW3B,4BAAAA,CAAS,CAAA,EAAMc,CAAAA,CAAU,CAAA,CAAE,QAAQ,CAAA,CAKpD,MAAO,CAEL,KAAA,CAAAD,CAAAA,CACA,YAAA,CAAAU,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAE,CAAAA,CACA,MAAA,CATcE,CAAAA,EACdJ,CAAAA,CAASK,iCAAAA,CAA4B,CAAA,kCAAKD,CAAAA,qBAAE,MAAA,6BAAQ,OAAA,SAAS,MAAA,CAAQA,CAAC,CAAA,CAUtE,IAAA,CAAM,CACJ,KAAA,CAAArB,CAAAA,CACA,OAAA,CAAAS,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAf,CAAAA,CACA,YAAA,CAAAgB,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAO,CACF,CACF,CACF,CC/EA,SAUgBG,EAAAA,CAGdrB,CAAAA,CAAS,CACT,IAAMvB,CAAAA,CAAQG,0BAAAA,CAAsB,CAAA,CAC9BE,CAAAA,CAAaF,0BAAAA,gBAAiB,CAAA,CAC9Bc,CAAAA,CAAa4B,iCAAAA,CAAuC7C,CAAOuB,CAAI,CAAA,CAE/DuB,CAAAA,CAAYvC,0BAAAA,CAChBU,CAAW,SAAA,CAAU,CACvB,CAAA,CAEM8B,CAAAA,CAAQ/C,CAAAA,CAAM,OAAA,CAAQ,aAAA,CAAcuB,CAAAA,CAAM,CAAA,CAAA,EAAM,CACpDuB,CAAAA,CAAU,GAAA,CAAI7B,CAAAA,CAAW,SAAA,CAAU,CAAC,CACtC,CAAC,CAAA,CAED,OAAAZ,CAAAA,CAAW,SAAA,CAAU,CAAA,CAAA,EAAM,CACzB0C,CAAAA,CAAM,CAAA,CACNC,iCAAAA,CAAwBhD,CAAO,CAAA,EAAA","file":"/home/runner/work/bit-form/bit-form/dist/angular/index.cjs","sourcesContent":[null,"import { inject, InjectionToken, Provider } from \"@angular/core\";\nimport type { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitFrameworkStoreApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>,\n): Provider {\n return {\n provide: BIT_STORE_TOKEN,\n useValue: createFrameworkStoreAdapter<T>(store),\n };\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 BitFrameworkStoreApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\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: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = observeFormMetaSnapshot(store, (nextMeta) => {\n stateSignal.set(nextMeta);\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, actions } = createFrameworkFormBinding(\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 ...actions,\n };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n BitPath,\n BitPathValue,\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n InjectBitFieldResult,\n} 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.read.getFieldState(path));\n\n const unsubscribe = store.observe.subscribeFieldState(path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const metaState = computed(() => deriveFieldMeta(stateSignal()));\n const error = computed(() => metaState().error);\n const touched = computed(() => metaState().touched);\n const invalid = computed(() => metaState().invalid);\n const isDirty = computed(() => metaState().isDirty);\n const isValidating = computed(() => metaState().isValidating);\n const isHidden = computed(() => metaState().isHidden);\n const isRequired = computed(() => metaState().isRequired);\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => metaState().hasError);\n\n const update = (e: BitFieldInputEvent) =>\n setValue(isBitFieldInputEventObject(e) ? (e.target?.value ?? null) : 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 } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n createArrayBindingController,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n cleanupRegisteredPrefix,\n} from \"../core\";\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 const controller = createArrayBindingController<TForm, P>(store, path);\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(\n controller.readItems(),\n );\n\n const unsub = store.observe.subscribePath(path, () => {\n valuesSig.set(controller.readItems());\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n return {\n fields: computed(() => controller.getFields(valuesSig())),\n length: computed(() => valuesSig().length),\n append: controller.append,\n prepend: controller.prepend,\n remove: controller.remove,\n insert: controller.insert,\n swap: controller.swap,\n move: controller.move,\n replace: controller.replace,\n clear: controller.clear,\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","createFrameworkStoreAdapter","useBitStore","inject","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","observeFormMetaSnapshot","nextMeta","isValid","computed","isSubmitting","isDirty","controller","actions","createFrameworkFormBinding","result","error","injectBitField","path","unsubscribe","nextState","cleanupRegisteredField","value","metaState","deriveFieldMeta","touched","invalid","isValidating","isHidden","isRequired","fieldController","createFrameworkMaskedFieldBinding","displayValue","setValue","val","setBlur","hasError","e","isBitFieldInputEventObject","injectBitArray","createArrayBinding","valuesSig","unsub","cleanupRegisteredPrefix"],"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 { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitFrameworkStoreApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>,\n): Provider {\n return {\n provide: BIT_STORE_TOKEN,\n useValue: createFrameworkStoreAdapter<T>(store),\n };\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 BitFrameworkStoreApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\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: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = observeFormMetaSnapshot(store, (nextMeta) => {\n stateSignal.set(nextMeta);\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, actions } = createFrameworkFormBinding(\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 ...actions,\n };\n}\n","import { DestroyRef, computed, inject, signal } from \"@angular/core\";\nimport {\n BitPath,\n BitPathValue,\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport type { BitFieldInputEvent, 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.read.getFieldState(path));\n\n const unsubscribe = store.observe.subscribeFieldState(path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const metaState = computed(() => deriveFieldMeta(stateSignal()));\n const error = computed(() => metaState().error);\n const touched = computed(() => metaState().touched);\n const invalid = computed(() => metaState().invalid);\n const isDirty = computed(() => metaState().isDirty);\n const isValidating = computed(() => metaState().isValidating);\n const isHidden = computed(() => metaState().isHidden);\n const isRequired = computed(() => metaState().isRequired);\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => metaState().hasError);\n\n const update = (e: BitFieldInputEvent) =>\n setValue(isBitFieldInputEventObject(e) ? (e.target?.value ?? null) : 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 { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport {\n BitArrayItem,\n BitArrayPath,\n BitPathValue,\n cleanupRegisteredPrefix,\n createArrayBinding,\n} from \"../core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 const controller = createArrayBinding<TForm, P>(store, path);\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(\n controller.readItems(),\n );\n\n const unsub = store.observe.subscribePath(path, () => {\n valuesSig.set(controller.readItems());\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n return {\n fields: computed(() => controller.getFields(valuesSig())),\n length: computed(() => valuesSig().length),\n append: controller.append,\n prepend: controller.prepend,\n remove: controller.remove,\n insert: controller.insert,\n swap: controller.swap,\n move: controller.move,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Provider, Signal } from '@angular/core';
3
- import { b as BitFrameworkStoreApi, e as BitStoreApi } from '../store-api-types-D-ZHxzRy.cjs';
4
- import '../bus-ZLQeq4Vr.cjs';
5
- import { u as BitPath, v as BitPathValue, x as BitPersistMetadata, V as ValidateScopeResult, k as BitErrors, I as BitTouched, L as DeepPartial, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../types-D6LhF5GC.cjs';
3
+ import { b as BitFrameworkStoreApi, e as BitStoreApi } from '../store-api-types-Bm3EAqR_.cjs';
4
+ import '../bus-WOHGxuVy.cjs';
5
+ import { u as BitPath, v as BitPathValue, x as BitPersistMetadata, V as ValidateScopeResult, k as BitErrors, I as BitTouched, L as DeepPartial, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../types-SOg9xEce.cjs';
6
6
  import { b as BitValidationOptions } from '../meta-types-Bzmm21TP.cjs';
7
7
  import { B as BitFieldInputEvent } from '../field-binding-B_OX3bjp.cjs';
8
- import { a as BitArrayBindingField } from '../array-controller-B5bfXV1W.cjs';
8
+ import { a as BitArrayBindingField } from '../array-controller-CtlqjA0e.cjs';
9
9
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.cjs';
10
10
  import '../types-D8DgIUhJ.cjs';
11
11
 
@@ -121,7 +121,7 @@ interface InjectBitFormResult<T extends object = any> {
121
121
 
122
122
  declare function injectBitForm<T extends object>(): InjectBitFormResult<T>;
123
123
 
124
- declare function injectBitField<TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): InjectBitFieldResult<TForm, P>;
124
+ declare function injectBitField<_TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): InjectBitFieldResult<TForm, P>;
125
125
 
126
126
  declare function injectBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
127
127
  fields: _angular_core.Signal<BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[]>;
@@ -138,16 +138,17 @@ declare function injectBitArray<TForm extends object = any, P extends BitArrayPa
138
138
 
139
139
  declare function injectBitHistory<T extends object = any>(): InjectBitHistoryResult;
140
140
 
141
- declare function injectBitScope(scopeName: string): {
141
+ interface InjectBitScopeResult {
142
142
  scopeName: string;
143
- status: _angular_core.WritableSignal<ScopeStatus>;
144
- errors: _angular_core.Signal<Record<string, string>>;
143
+ status: Signal<ScopeStatus>;
144
+ errors: Signal<Record<string, string>>;
145
145
  validate: () => Promise<ValidateScopeResult>;
146
146
  getErrors: () => Record<string, string>;
147
- isValid: _angular_core.Signal<boolean>;
148
- isDirty: _angular_core.Signal<boolean>;
147
+ isValid: Signal<boolean>;
148
+ isDirty: Signal<boolean>;
149
149
  unsubscribe: () => void;
150
- };
150
+ }
151
+ declare function injectBitScope(scopeName: string): InjectBitScopeResult;
151
152
 
152
153
  declare function injectBitSteps(scopeNames: string[]): InjectBitStepsResult;
153
154
 
@@ -1,11 +1,11 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { Provider, Signal } from '@angular/core';
3
- import { b as BitFrameworkStoreApi, e as BitStoreApi } from '../store-api-types-DPi30jQF.js';
4
- import '../bus-B2VEKrPI.js';
5
- import { u as BitPath, v as BitPathValue, x as BitPersistMetadata, V as ValidateScopeResult, k as BitErrors, I as BitTouched, L as DeepPartial, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../types-CG5nYeRk.js';
3
+ import { b as BitFrameworkStoreApi, e as BitStoreApi } from '../store-api-types-DfTFy2h4.js';
4
+ import '../bus-BKuMV3E7.js';
5
+ import { u as BitPath, v as BitPathValue, x as BitPersistMetadata, V as ValidateScopeResult, k as BitErrors, I as BitTouched, L as DeepPartial, c as BitArrayPath, b as BitArrayItem, S as ScopeStatus } from '../types-CRCP4Pgq.js';
6
6
  import { b as BitValidationOptions } from '../meta-types-Bzmm21TP.js';
7
7
  import { B as BitFieldInputEvent } from '../field-binding-MX6jVQbT.js';
8
- import { a as BitArrayBindingField } from '../array-controller-Cx-DMH7Y.js';
8
+ import { a as BitArrayBindingField } from '../array-controller-C61ByyG6.js';
9
9
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../upload-C2mpfhp1.js';
10
10
  import '../types-D8DgIUhJ.js';
11
11
 
@@ -121,7 +121,7 @@ interface InjectBitFormResult<T extends object = any> {
121
121
 
122
122
  declare function injectBitForm<T extends object>(): InjectBitFormResult<T>;
123
123
 
124
- declare function injectBitField<TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): InjectBitFieldResult<TForm, P>;
124
+ declare function injectBitField<_TValue = any, TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): InjectBitFieldResult<TForm, P>;
125
125
 
126
126
  declare function injectBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
127
127
  fields: _angular_core.Signal<BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[]>;
@@ -138,16 +138,17 @@ declare function injectBitArray<TForm extends object = any, P extends BitArrayPa
138
138
 
139
139
  declare function injectBitHistory<T extends object = any>(): InjectBitHistoryResult;
140
140
 
141
- declare function injectBitScope(scopeName: string): {
141
+ interface InjectBitScopeResult {
142
142
  scopeName: string;
143
- status: _angular_core.WritableSignal<ScopeStatus>;
144
- errors: _angular_core.Signal<Record<string, string>>;
143
+ status: Signal<ScopeStatus>;
144
+ errors: Signal<Record<string, string>>;
145
145
  validate: () => Promise<ValidateScopeResult>;
146
146
  getErrors: () => Record<string, string>;
147
- isValid: _angular_core.Signal<boolean>;
148
- isDirty: _angular_core.Signal<boolean>;
147
+ isValid: Signal<boolean>;
148
+ isDirty: Signal<boolean>;
149
149
  unsubscribe: () => void;
150
- };
150
+ }
151
+ declare function injectBitScope(scopeName: string): InjectBitScopeResult;
151
152
 
152
153
  declare function injectBitSteps(scopeNames: string[]): InjectBitStepsResult;
153
154
 
@@ -1,2 +1,2 @@
1
- import{a as Z,b as N}from"../chunk-O5UPA33R.js";import"../chunk-5NA2TFPG.js";import{d as K}from"../chunk-UQ3DSUWC.js";import{c as C,f as W,g as z,h as $,i as G,j as J,k as Q}from"../chunk-E2NZR44P.js";import{a as X}from"../chunk-W2E5UIXT.js";import{b as O,f as _,g as q}from"../chunk-EQ55DKX2.js";import{c as Y}from"../chunk-63OJBMKK.js";import{c as M,f as H}from"../chunk-RD73EBSN.js";import{a as L}from"../chunk-3NUJVIAM.js";import{inject as st,InjectionToken as it}from"@angular/core";var g=new it("BIT_STORE");function nt(t){return{provide:g,useValue:K(t)}}function u(){let t=st(g,{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 V,computed as I,inject as at,DestroyRef as ct}from"@angular/core";function lt(){let t=u(),e=at(ct),r=V({isValid:!0,isDirty:!1,isSubmitting:!1}),o=V(null),s=V(null),i=C(t,S=>{r.set(S)});e.onDestroy(()=>i());let l=I(()=>r().isValid),p=I(()=>r().isSubmitting),d=I(()=>r().isDirty),{controller:a,actions:n}=z(t,{clearSubmissionState:()=>{o.set(null),s.set(null)},setSubmissionResult:S=>{s.set(S)},setSubmissionError:S=>{o.set(S)}},{stopPropagation:!0});return{meta:{isValid:l,isDirty:d,isSubmitting:p,submitError:o.asReadonly(),lastResponse:s.asReadonly()},getValues:a.getValues,getErrors:a.getErrors,getTouched:a.getTouched,getDirtyValues:a.getDirtyValues,submit:a.submit,onSubmit:a.onSubmit,reset:a.reset,...n}}import{inject as tt,DestroyRef as ut,computed as m,signal as pt}from"@angular/core";function E(t){let e=tt(g),r=pt(e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,f=>{r.set(f)});tt(ut).onDestroy(()=>{o(),J(e,t)});let s=m(()=>r().value),i=m(()=>Y(r())),l=m(()=>i().error),p=m(()=>i().touched),d=m(()=>i().invalid),a=m(()=>i().isDirty),n=m(()=>i().isValidating),B=m(()=>i().isHidden),S=m(()=>i().isRequired),{fieldController:j}=$(e,t),T=m(()=>j.displayValue(s())),F=f=>{j.setValue(f)},h=()=>j.setBlur(),x=m(()=>i().hasError);return{value:s,displayValue:T,setValue:F,setBlur:h,update:f=>F(L(f)?f.target?.value??null:f),meta:{error:l,touched:p,invalid:d,isDirty:a,isValidating:n,isHidden:B,isRequired:S,hasError:x}}}import{DestroyRef as dt,signal as mt,computed as et,inject as rt}from"@angular/core";function St(t){let e=rt(g),r=rt(dt),o=G(e,t),s=mt(o.readItems()),i=e.observe.subscribePath(t,()=>{s.set(o.readItems())});return r.onDestroy(()=>{i(),Q(e,`${t}.`)}),{fields:et(()=>o.getFields(s())),length:et(()=>s().length),append:o.append,prepend:o.prepend,remove:o.remove,insert:o.insert,swap:o.swap,move:o.move,replace:o.replace,clear:o.clear}}import{computed as P,DestroyRef as ft,inject as yt,signal as Bt}from"@angular/core";function gt(){let t=u(),e=yt(ft),r=Bt(_(t)),o=q(t,s=>{r.set(s)});return e.onDestroy(()=>o()),{canUndo:P(()=>r().canUndo),canRedo:P(()=>r().canRedo),historyIndex:P(()=>r().historyIndex),historySize:P(()=>r().historySize),undo:()=>t.feature.undo(),redo:()=>t.feature.redo()}}import{signal as bt,computed as D,DestroyRef as Rt,inject as jt}from"@angular/core";function Ft(t){let e=u(),r=e.read.getScopeStatus(t),o=bt(r),s=X(e,t,n=>{o.set(n)});try{jt(Rt).onDestroy(()=>s())}catch{}let i=async()=>{let n=await e.write.validate({scope:t}),B=e.read.getScopeErrors(t);return{valid:n,errors:B}},l=()=>e.read.getScopeErrors(t),p=D(()=>!o().hasErrors),d=D(()=>o().isDirty),a=D(()=>o().errors);return{scopeName:t,status:o,errors:a,validate:i,getErrors:l,isValid:p,isDirty:d,unsubscribe:s}}import{signal as ot,computed as b,DestroyRef as vt,inject as Pt}from"@angular/core";function Tt(t){let e=u(),r=ot(0),o=b(()=>t[r()]??""),s=()=>t[r()]??"",i=ot(e.read.getScopeStatus(s())),l=()=>{let c=s(),y=e.read.getScopeStatus(c),R=i();O(R,y)||i.set(y)},p=e.observe.subscribeScopeStatus(s(),l),d=()=>{p(),p=e.observe.subscribeScopeStatus(s(),l)};try{Pt(vt).onDestroy(()=>p())}catch{}let a=async()=>{let c=s(),y=await e.write.validate({scope:c}),R=e.read.getScopeErrors(c);return{valid:y,errors:R}},n=()=>e.read.getScopeErrors(s()),B=async()=>{let c=s(),y=e.read.getScopeFields(c);if(e.feature.hasValidationsInProgress(y))return!1;let R=await e.write.validate({scope:c});if(R){let v=Math.min(r()+1,t.length-1);r.set(v),i.set(e.read.getScopeStatus(t[v]??"")),d()}else{let v=e.read.getScopeErrors(c),k=Object.keys(v);k.length>0&&e.write.markFieldsTouched(k)}return R},S=()=>{let c=Math.max(r()-1,0);r.set(c),i.set(e.read.getScopeStatus(t[c]??"")),d()},j=c=>{let y=Math.max(0,Math.min(c-1,t.length-1));r.set(y),i.set(e.read.getScopeStatus(t[y]??"")),d()},T=b(()=>r()+1),F=b(()=>r()===0),h=b(()=>r()>=t.length-1),x=b(()=>!i().hasErrors),U=b(()=>i().isDirty),f=b(()=>i().errors);return{step:T,stepIndex:r,scope:o,next:B,prev:S,goTo:j,isFirst:F,isLast:h,status:i,errors:f,isValid:x,isDirty:U,validate:a,getErrors:n}}import{DestroyRef as ht,signal as xt,inject as Vt}from"@angular/core";function It(t){let e=u(),r=Vt(ht),o=xt(H(e.read.getState().values,t),{equal:M}),s=e.observe.subscribePath(t,i=>{o.set(i)});return r.onDestroy(s),o.asReadonly()}import{computed as w,inject as Et,signal as Dt}from"@angular/core";function wt(t,e,r){let o=Et(g),s=E(t),i=null,l=Dt(!1),p={setLoading:n=>l.set(n),setError:(n,B)=>o.write.setError(n,B),setValue:n=>s.setValue(n),getUploadKey:()=>i,setUploadKey:n=>{i=n}},d=Z(t,e,p),a=N(t,r,p);return{value:w(()=>s.value()),setValue:s.setValue,error:w(()=>s.meta.error()),isValidating:w(()=>!!s.meta.isValidating()||l()),upload:d,remove:a}}import{computed as A,inject as At,signal as Ut,DestroyRef as kt}from"@angular/core";function Mt(){let t=u(),e=Ut(t.read.getPersistMetadata()),r=W(t,l=>{e.set(l)});try{At(kt).onDestroy(()=>r())}catch{}return{restore:async()=>t.feature.restorePersisted(),save:async()=>{await t.feature.forceSave()},clear:async()=>{await t.feature.clearPersisted()},meta:{isSaving:A(()=>e().isSaving),isRestoring:A(()=>e().isRestoring),error:A(()=>e().error)}}}export{St as injectBitArray,E as injectBitField,lt as injectBitForm,gt as injectBitHistory,Mt as injectBitPersist,Ft as injectBitScope,Tt as injectBitSteps,wt as injectBitUpload,It as injectBitWatch,nt as provideBitStore,u as useBitStore};
1
+ import{a as Z,b as N}from"../chunk-O5UPA33R.js";import"../chunk-5NA2TFPG.js";import{d as K}from"../chunk-UARLAXZX.js";import{c as C,f as W,g as z,h as $,i as G,j as J,k as Q}from"../chunk-Y3XVQGCU.js";import{a as X}from"../chunk-W2E5UIXT.js";import{b as O,f as _,g as q}from"../chunk-UIKO6GGW.js";import{a as Y}from"../chunk-ICYXODTQ.js";import"../chunk-2QLQPMCZ.js";import{c as M,f as H}from"../chunk-QX2IVNMK.js";import{a as L}from"../chunk-3NUJVIAM.js";import{inject as it,InjectionToken as nt}from"@angular/core";var B=new nt("BIT_STORE");function at(t){return{provide:B,useValue:K(t)}}function u(){let t=it(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 V,computed as I,inject as ct,DestroyRef as lt}from"@angular/core";function ut(){let t=u(),e=ct(lt),r=V({isValid:!0,isDirty:!1,isSubmitting:!1}),o=V(null),s=V(null),i=C(t,m=>{r.set(m)});e.onDestroy(()=>i());let p=I(()=>r().isValid),a=I(()=>r().isSubmitting),d=I(()=>r().isDirty),{controller:c,actions:n}=G(t,{clearSubmissionState:()=>{o.set(null),s.set(null)},setSubmissionResult:m=>{s.set(m)},setSubmissionError:m=>{o.set(m)}},{stopPropagation:!0});return{meta:{isValid:p,isDirty:d,isSubmitting:a,submitError:o.asReadonly(),lastResponse:s.asReadonly()},getValues:c.getValues,getErrors:c.getErrors,getTouched:c.getTouched,getDirtyValues:c.getDirtyValues,submit:c.submit,onSubmit:c.onSubmit,reset:c.reset,...n}}import{DestroyRef as pt,computed as S,inject as tt,signal as dt}from"@angular/core";function E(t){let e=tt(B),r=dt(e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,y=>{r.set(y)});tt(pt).onDestroy(()=>{o(),J(e,t)});let s=S(()=>r().value),i=S(()=>Y(r())),p=S(()=>i().error),a=S(()=>i().touched),d=S(()=>i().invalid),c=S(()=>i().isDirty),n=S(()=>i().isValidating),f=S(()=>i().isHidden),m=S(()=>i().isRequired),{fieldController:j}=$(e,t),T=S(()=>j.displayValue(s())),v=y=>{j.setValue(y)},h=()=>j.setBlur(),x=S(()=>i().hasError);return{value:s,displayValue:T,setValue:v,setBlur:h,update:y=>v(L(y)?y.target?.value??null:y),meta:{error:p,touched:a,invalid:d,isDirty:c,isValidating:n,isHidden:f,isRequired:m,hasError:x}}}import{computed as et,DestroyRef as mt,inject as rt,signal as St}from"@angular/core";function ft(t){let e=rt(B),r=rt(mt),o=z(e,t),s=St(o.readItems()),i=e.observe.subscribePath(t,()=>{s.set(o.readItems())});return r.onDestroy(()=>{i(),Q(e,`${t}.`)}),{fields:et(()=>o.getFields(s())),length:et(()=>s().length),append:o.append,prepend:o.prepend,remove:o.remove,insert:o.insert,swap:o.swap,move:o.move,replace:o.replace,clear:o.clear}}import{computed as P,DestroyRef as yt,inject as gt,signal as Bt}from"@angular/core";function Rt(){let t=u(),e=gt(yt),r=Bt(_(t)),o=q(t,s=>{r.set(s)});return e.onDestroy(()=>o()),{canUndo:P(()=>r().canUndo),canRedo:P(()=>r().canRedo),historyIndex:P(()=>r().historyIndex),historySize:P(()=>r().historySize),undo:()=>t.feature.undo(),redo:()=>t.feature.redo()}}import{computed as D,DestroyRef as bt,inject as jt,signal as vt}from"@angular/core";function Ft(t){let e=u(),r=e.read.getScopeStatus(t),o=vt(r),s=X(e,t,f=>{o.set(f)});jt(bt,{optional:!0})?.onDestroy(()=>s());let p=async()=>{let f=await e.feature.validate({scope:t}),m=e.read.getScopeErrors(t);return{valid:f,errors:m}},a=()=>e.read.getScopeErrors(t),d=D(()=>!o().hasErrors),c=D(()=>o().isDirty),n=D(()=>o().errors);return{scopeName:t,status:o,errors:n,validate:p,getErrors:a,isValid:d,isDirty:c,unsubscribe:s}}import{computed as R,DestroyRef as Pt,inject as Tt,signal as ot}from"@angular/core";function ht(t){let e=u(),r=ot(0),o=R(()=>t[r()]??""),s=()=>t[r()]??"",i=ot(e.read.getScopeStatus(s())),p=()=>{let l=s(),g=e.read.getScopeStatus(l),b=i();O(b,g)||i.set(g)},a=e.observe.subscribeScopeStatus(s(),p),d=()=>{a(),a=e.observe.subscribeScopeStatus(s(),p)};Tt(Pt,{optional:!0})?.onDestroy(()=>a());let n=async()=>{let l=s(),g=await e.feature.validate({scope:l}),b=e.read.getScopeErrors(l);return{valid:g,errors:b}},f=()=>e.read.getScopeErrors(s()),m=async()=>{let l=s(),g=e.read.getScopeFields(l);if(e.feature.hasValidationsInProgress(g))return!1;let b=await e.feature.validate({scope:l});if(b){let F=Math.min(r()+1,t.length-1);r.set(F),i.set(e.read.getScopeStatus(t[F]??"")),d()}else{let F=e.read.getScopeErrors(l),k=Object.keys(F);k.length>0&&e.write.markFieldsTouched(k)}return b},j=()=>{let l=Math.max(r()-1,0);r.set(l),i.set(e.read.getScopeStatus(t[l]??"")),d()},T=l=>{let g=Math.max(0,Math.min(l-1,t.length-1));r.set(g),i.set(e.read.getScopeStatus(t[g]??"")),d()},v=R(()=>r()+1),h=R(()=>r()===0),x=R(()=>r()>=t.length-1),U=R(()=>!i().hasErrors),y=R(()=>i().isDirty),st=R(()=>i().errors);return{step:v,stepIndex:r,scope:o,next:m,prev:j,goTo:T,isFirst:h,isLast:x,status:i,errors:st,isValid:U,isDirty:y,validate:n,getErrors:f}}import{DestroyRef as xt,signal as Vt,inject as It}from"@angular/core";function Et(t){let e=u(),r=It(xt),o=Vt(H(e.read.getState().values,t),{equal:M}),s=e.observe.subscribePath(t,i=>{o.set(i)});return r.onDestroy(s),o.asReadonly()}import{computed as w,inject as Dt,signal as wt}from"@angular/core";function At(t,e,r){let o=Dt(B),s=E(t),i=null,p=wt(!1),a={setLoading:n=>p.set(n),setError:(n,f)=>o.write.setError(n,f),setValue:n=>s.setValue(n),getUploadKey:()=>i,setUploadKey:n=>{i=n}},d=Z(t,e,a),c=N(t,r,a);return{value:w(()=>s.value()),setValue:s.setValue,error:w(()=>s.meta.error()),isValidating:w(()=>!!s.meta.isValidating()||p()),upload:d,remove:c}}import{computed as A,DestroyRef as Ut,inject as kt,signal as Mt}from"@angular/core";function Ht(){let t=u(),e=Mt(t.read.getPersistMetadata()),r=W(t,a=>{e.set(a)});return kt(Ut,{optional:!0})?.onDestroy(()=>r()),{restore:async()=>t.feature.restorePersisted(),save:async()=>{await t.feature.forceSave()},clear:async()=>{await t.feature.clearPersisted()},meta:{isSaving:A(()=>e().isSaving),isRestoring:A(()=>e().isRestoring),error:A(()=>e().error)}}}export{ft as injectBitArray,E as injectBitField,ut as injectBitForm,Rt as injectBitHistory,Ht as injectBitPersist,Ft as injectBitScope,ht as injectBitSteps,At as injectBitUpload,Et as injectBitWatch,at as provideBitStore,u 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 { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitFrameworkStoreApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>,\n): Provider {\n return {\n provide: BIT_STORE_TOKEN,\n useValue: createFrameworkStoreAdapter<T>(store),\n };\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 BitFrameworkStoreApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\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: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = observeFormMetaSnapshot(store, (nextMeta) => {\n stateSignal.set(nextMeta);\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, actions } = createFrameworkFormBinding(\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 ...actions,\n };\n}\n","import { inject, DestroyRef, computed, signal } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n BitPath,\n BitPathValue,\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport type {\n BitFieldInputEvent,\n InjectBitFieldResult,\n} 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.read.getFieldState(path));\n\n const unsubscribe = store.observe.subscribeFieldState(path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const metaState = computed(() => deriveFieldMeta(stateSignal()));\n const error = computed(() => metaState().error);\n const touched = computed(() => metaState().touched);\n const invalid = computed(() => metaState().invalid);\n const isDirty = computed(() => metaState().isDirty);\n const isValidating = computed(() => metaState().isValidating);\n const isHidden = computed(() => metaState().isHidden);\n const isRequired = computed(() => metaState().isRequired);\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => metaState().hasError);\n\n const update = (e: BitFieldInputEvent) =>\n setValue(isBitFieldInputEventObject(e) ? (e.target?.value ?? null) : 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 } from \"@angular/core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport {\n createArrayBindingController,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n cleanupRegisteredPrefix,\n} from \"../core\";\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 const controller = createArrayBindingController<TForm, P>(store, path);\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(\n controller.readItems(),\n );\n\n const unsub = store.observe.subscribePath(path, () => {\n valuesSig.set(controller.readItems());\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n return {\n fields: computed(() => controller.getFields(valuesSig())),\n length: computed(() => valuesSig().length),\n append: controller.append,\n prepend: controller.prepend,\n remove: controller.remove,\n insert: controller.insert,\n swap: controller.swap,\n move: controller.move,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n","import { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport { observeHistoryMetaSnapshot, readHistoryMetaSnapshot } from \"../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(readHistoryMetaSnapshot(store));\n\n const sub = observeHistoryMetaSnapshot(store, (nextMeta) => {\n meta.set(nextMeta);\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.feature.undo(),\n redo: () => store.feature.redo(),\n };\n}\n","import { signal, computed, DestroyRef, inject } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { observeScopeStatusSnapshot } from \"../core\";\nimport { useBitStore } from \"./provider\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function injectBitScope(scopeName: string) {\n const store = useBitStore();\n const initialStatus = store.read.getScopeStatus(scopeName);\n\n const status = signal<ScopeStatus>(initialStatus);\n\n const unsubscribe = observeScopeStatusSnapshot(\n store,\n scopeName,\n (nextStatus) => {\n status.set(nextStatus);\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.write.validate({ scope: scopeName });\n const errors = store.read.getScopeErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.read.getScopeErrors(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 { isScopeStatusEqual } from \"../core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitStepsResult } from \"./types\";\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>(\n store.read.getScopeStatus(getCurrentScope()),\n );\n\n const updateStatus = () => {\n const scopeName = getCurrentScope();\n const newStatus = store.read.getScopeStatus(scopeName);\n const current = status();\n if (!isScopeStatusEqual(current, newStatus)) {\n status.set(newStatus);\n }\n };\n\n let unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n updateStatus,\n );\n\n const rebindScopeSubscription = () => {\n unsubscribe();\n unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n updateStatus,\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 scopeName = getCurrentScope();\n const valid = await store.write.validate({ scope: scopeName });\n const errors = store.read.getScopeErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.read.getScopeErrors(getCurrentScope());\n\n const next = async (): Promise<boolean> => {\n const scopeName = getCurrentScope();\n\n const scopeFields = store.read.getScopeFields(scopeName);\n if (store.feature.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.write.validate({ scope: scopeName });\n if (valid) {\n const newIndex = Math.min(stepIndex() + 1, scopeNames.length - 1);\n stepIndex.set(newIndex);\n status.set(store.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\n } else {\n const errors = store.read.getScopeErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.write.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.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\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.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\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 { getDeepValue, valueEqual, BitPath, BitPathValue } 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.read.getState().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n { equal: valueEqual },\n );\n\n const unsub = store.observe.subscribePath(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 { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\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 kernelCallbacks = {\n setLoading: (val: boolean) => isUploading.set(val),\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val),\n getUploadKey: () => uploadKey,\n setUploadKey: (key: string | null) => {\n uploadKey = key;\n },\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks);\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 { computed, inject, signal, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { observePersistMetaSnapshot } from \"../core\";\nimport type { InjectBitPersistResult } from \"./types\";\n\nexport function injectBitPersist<\n T extends object = any,\n>(): InjectBitPersistResult {\n const store = useBitStore<T>();\n const persist = signal(store.read.getPersistMetadata());\n\n const unsubscribe = observePersistMetaSnapshot(store, (nextPersist) => {\n persist.set(nextPersist);\n });\n\n try {\n inject(DestroyRef).onDestroy(() => unsubscribe());\n } catch {}\n\n const restore = async (): Promise<boolean> => {\n return store.feature.restorePersisted();\n };\n\n const save = async (): Promise<void> => {\n await store.feature.forceSave();\n };\n\n const clear = async (): Promise<void> => {\n await store.feature.clearPersisted();\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: computed(() => persist().isSaving),\n isRestoring: computed(() => persist().isRestoring),\n error: computed(() => persist().error),\n },\n };\n}\n"],"mappings":"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","names":["inject","InjectionToken","BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","createFrameworkStoreAdapter","useBitStore","inject","signal","computed","inject","DestroyRef","injectBitForm","store","useBitStore","destroyRef","inject","DestroyRef","stateSignal","signal","submitError","lastResponse","sub","observeFormMetaSnapshot","nextMeta","isValid","computed","isSubmitting","isDirty","controller","actions","createFrameworkFormBinding","result","error","inject","DestroyRef","computed","signal","injectBitField","path","store","inject","BIT_STORE_TOKEN","stateSignal","signal","unsubscribe","nextState","DestroyRef","cleanupRegisteredField","value","computed","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","fieldController","createFrameworkMaskedFieldBinding","displayValue","setValue","val","setBlur","hasError","e","isBitFieldInputEventObject","DestroyRef","signal","computed","inject","injectBitArray","path","store","inject","BIT_STORE_TOKEN","destroyRef","DestroyRef","controller","createArrayBindingController","valuesSig","signal","unsub","cleanupRegisteredPrefix","computed","computed","DestroyRef","inject","signal","injectBitHistory","store","useBitStore","destroyRef","inject","DestroyRef","meta","signal","readHistoryMetaSnapshot","sub","observeHistoryMetaSnapshot","nextMeta","computed","signal","computed","DestroyRef","inject","injectBitScope","scopeName","store","useBitStore","initialStatus","status","signal","unsubscribe","observeScopeStatusSnapshot","nextStatus","inject","DestroyRef","validate","valid","errors","getErrors","isValid","computed","isDirty","signal","computed","DestroyRef","inject","injectBitSteps","scopeNames","store","useBitStore","stepIndex","signal","scope","computed","getCurrentScope","status","updateStatus","scopeName","newStatus","current","isScopeStatusEqual","unsubscribe","rebindScopeSubscription","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","valueEqual","unsub","v","computed","inject","signal","injectBitUpload","fieldPath","uploadFn","deleteFile","store","inject","BIT_STORE_TOKEN","field","injectBitField","uploadKey","isUploading","signal","kernelCallbacks","val","path","msg","key","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","inject","signal","DestroyRef","injectBitPersist","store","useBitStore","persist","signal","unsubscribe","observePersistMetaSnapshot","nextPersist","inject","DestroyRef","computed"]}
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 { BitFrameworkStoreApi, BitStoreApi } from \"../core\";\nimport { createFrameworkStoreAdapter } from \"../core\";\n\nexport const BIT_STORE_TOKEN = new InjectionToken<BitFrameworkStoreApi<any>>(\n \"BIT_STORE\",\n);\n\nexport function provideBitStore<T extends object>(\n store: BitFrameworkStoreApi<T> | BitStoreApi<T>,\n): Provider {\n return {\n provide: BIT_STORE_TOKEN,\n useValue: createFrameworkStoreAdapter<T>(store),\n };\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 BitFrameworkStoreApi<T>;\n}\n","import { signal, computed, inject, DestroyRef } from \"@angular/core\";\nimport { useBitStore } from \"./provider\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\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: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = signal<Error | null>(null);\n const lastResponse = signal<unknown>(null);\n\n const sub = observeFormMetaSnapshot(store, (nextMeta) => {\n stateSignal.set(nextMeta);\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, actions } = createFrameworkFormBinding(\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 ...actions,\n };\n}\n","import { DestroyRef, computed, inject, signal } from \"@angular/core\";\nimport {\n BitPath,\n BitPathValue,\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n isBitFieldInputEventObject,\n} from \"../core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport type { BitFieldInputEvent, 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.read.getFieldState(path));\n\n const unsubscribe = store.observe.subscribeFieldState(path, (nextState) => {\n stateSignal.set(nextState);\n });\n\n inject(DestroyRef).onDestroy(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const value = computed(() => stateSignal().value as BitPathValue<TForm, P>);\n const metaState = computed(() => deriveFieldMeta(stateSignal()));\n const error = computed(() => metaState().error);\n const touched = computed(() => metaState().touched);\n const invalid = computed(() => metaState().invalid);\n const isDirty = computed(() => metaState().isDirty);\n const isValidating = computed(() => metaState().isValidating);\n const isHidden = computed(() => metaState().isHidden);\n const isRequired = computed(() => metaState().isRequired);\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const displayValue = computed(() => fieldController.displayValue(value()));\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const hasError = computed(() => metaState().hasError);\n\n const update = (e: BitFieldInputEvent) =>\n setValue(isBitFieldInputEventObject(e) ? (e.target?.value ?? null) : 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 { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport {\n BitArrayItem,\n BitArrayPath,\n BitPathValue,\n cleanupRegisteredPrefix,\n createArrayBinding,\n} from \"../core\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\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 const controller = createArrayBinding<TForm, P>(store, path);\n\n const valuesSig = signal<BitArrayItem<BitPathValue<TForm, P>>[]>(\n controller.readItems(),\n );\n\n const unsub = store.observe.subscribePath(path, () => {\n valuesSig.set(controller.readItems());\n });\n\n destroyRef.onDestroy(() => {\n unsub();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n return {\n fields: computed(() => controller.getFields(valuesSig())),\n length: computed(() => valuesSig().length),\n append: controller.append,\n prepend: controller.prepend,\n remove: controller.remove,\n insert: controller.insert,\n swap: controller.swap,\n move: controller.move,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n","import { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport { observeHistoryMetaSnapshot, readHistoryMetaSnapshot } from \"../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(readHistoryMetaSnapshot(store));\n\n const sub = observeHistoryMetaSnapshot(store, (nextMeta) => {\n meta.set(nextMeta);\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.feature.undo(),\n redo: () => store.feature.redo(),\n };\n}\n","import type { Signal } from \"@angular/core\";\nimport { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { observeScopeStatusSnapshot } from \"../core\";\nimport { useBitStore } from \"./provider\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\ninterface InjectBitScopeResult {\n scopeName: string;\n status: Signal<ScopeStatus>;\n errors: Signal<Record<string, string>>;\n validate: () => Promise<ValidateScopeResult>;\n getErrors: () => Record<string, string>;\n isValid: Signal<boolean>;\n isDirty: Signal<boolean>;\n unsubscribe: () => void;\n}\n\nexport function injectBitScope(scopeName: string): InjectBitScopeResult {\n const store = useBitStore();\n const initialStatus = store.read.getScopeStatus(scopeName);\n\n const status = signal<ScopeStatus>(initialStatus);\n\n const unsubscribe = observeScopeStatusSnapshot(\n store,\n scopeName,\n (nextStatus) => {\n status.set(nextStatus);\n },\n );\n\n const destroyRef = inject(DestroyRef, { optional: true });\n destroyRef?.onDestroy(() => unsubscribe());\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.feature.validate({ scope: scopeName });\n const errors = store.read.getScopeErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.read.getScopeErrors(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 { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { isScopeStatusEqual } from \"../core\";\nimport { useBitStore } from \"./provider\";\nimport type { InjectBitStepsResult } from \"./types\";\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>(\n store.read.getScopeStatus(getCurrentScope()),\n );\n\n const updateStatus = () => {\n const scopeName = getCurrentScope();\n const newStatus = store.read.getScopeStatus(scopeName);\n const current = status();\n if (!isScopeStatusEqual(current, newStatus)) {\n status.set(newStatus);\n }\n };\n\n let unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n updateStatus,\n );\n\n const rebindScopeSubscription = () => {\n unsubscribe();\n unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n updateStatus,\n );\n };\n\n const destroyRef = inject(DestroyRef, { optional: true });\n destroyRef?.onDestroy(() => unsubscribe());\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = getCurrentScope();\n const valid = await store.feature.validate({ scope: scopeName });\n const errors = store.read.getScopeErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.read.getScopeErrors(getCurrentScope());\n\n const next = async (): Promise<boolean> => {\n const scopeName = getCurrentScope();\n\n const scopeFields = store.read.getScopeFields(scopeName);\n if (store.feature.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.feature.validate({ scope: scopeName });\n if (valid) {\n const newIndex = Math.min(stepIndex() + 1, scopeNames.length - 1);\n stepIndex.set(newIndex);\n status.set(store.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\n } else {\n const errors = store.read.getScopeErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.write.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.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\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.read.getScopeStatus(scopeNames[newIndex] ?? \"\"));\n rebindScopeSubscription();\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 { getDeepValue, valueEqual, BitPath, BitPathValue } 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.read.getState().values, path as string) as BitPathValue<\n TForm,\n P\n >,\n { equal: valueEqual },\n );\n\n const unsub = store.observe.subscribePath(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 { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\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 kernelCallbacks = {\n setLoading: (val: boolean) => isUploading.set(val),\n setError: (path: string, msg: string | undefined) =>\n store.write.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val),\n getUploadKey: () => uploadKey,\n setUploadKey: (key: string | null) => {\n uploadKey = key;\n },\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks);\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 { computed, DestroyRef, inject, signal } from \"@angular/core\";\nimport { observePersistMetaSnapshot } from \"../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 persist = signal(store.read.getPersistMetadata());\n\n const unsubscribe = observePersistMetaSnapshot(store, (nextPersist) => {\n persist.set(nextPersist);\n });\n\n const destroyRef = inject(DestroyRef, { optional: true });\n destroyRef?.onDestroy(() => unsubscribe());\n\n const restore = async (): Promise<boolean> => {\n return store.feature.restorePersisted();\n };\n\n const save = async (): Promise<void> => {\n await store.feature.forceSave();\n };\n\n const clear = async (): Promise<void> => {\n await store.feature.clearPersisted();\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: computed(() => persist().isSaving),\n isRestoring: computed(() => persist().isRestoring),\n error: computed(() => persist().error),\n },\n };\n}\n"],"mappings":"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","names":["inject","InjectionToken","BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","createFrameworkStoreAdapter","useBitStore","inject","signal","computed","inject","DestroyRef","injectBitForm","store","useBitStore","destroyRef","inject","DestroyRef","stateSignal","signal","submitError","lastResponse","sub","observeFormMetaSnapshot","nextMeta","isValid","computed","isSubmitting","isDirty","controller","actions","createFrameworkFormBinding","result","error","DestroyRef","computed","inject","signal","injectBitField","path","store","inject","BIT_STORE_TOKEN","stateSignal","signal","unsubscribe","nextState","DestroyRef","cleanupRegisteredField","value","computed","metaState","deriveFieldMeta","error","touched","invalid","isDirty","isValidating","isHidden","isRequired","fieldController","createFrameworkMaskedFieldBinding","displayValue","setValue","val","setBlur","hasError","e","isBitFieldInputEventObject","computed","DestroyRef","inject","signal","injectBitArray","path","store","inject","BIT_STORE_TOKEN","destroyRef","DestroyRef","controller","createArrayBinding","valuesSig","signal","unsub","cleanupRegisteredPrefix","computed","computed","DestroyRef","inject","signal","injectBitHistory","store","useBitStore","destroyRef","inject","DestroyRef","meta","signal","readHistoryMetaSnapshot","sub","observeHistoryMetaSnapshot","nextMeta","computed","computed","DestroyRef","inject","signal","injectBitScope","scopeName","store","useBitStore","initialStatus","status","signal","unsubscribe","observeScopeStatusSnapshot","nextStatus","inject","DestroyRef","validate","valid","errors","getErrors","isValid","computed","isDirty","computed","DestroyRef","inject","signal","injectBitSteps","scopeNames","store","useBitStore","stepIndex","signal","scope","computed","getCurrentScope","status","updateStatus","scopeName","newStatus","current","isScopeStatusEqual","unsubscribe","rebindScopeSubscription","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","valueEqual","unsub","v","computed","inject","signal","injectBitUpload","fieldPath","uploadFn","deleteFile","store","inject","BIT_STORE_TOKEN","field","injectBitField","uploadKey","isUploading","signal","kernelCallbacks","val","path","msg","key","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","DestroyRef","inject","signal","injectBitPersist","store","useBitStore","persist","signal","unsubscribe","observePersistMetaSnapshot","nextPersist","inject","DestroyRef","computed"]}
@@ -1,12 +1,12 @@
1
- import { e as BitStoreApi } from './store-api-types-DPi30jQF.js';
2
- import { c as BitArrayPath, b as BitArrayItem, v as BitPathValue } from './types-CG5nYeRk.js';
1
+ import { e as BitStoreApi } from './store-api-types-DfTFy2h4.js';
2
+ import { c as BitArrayPath, b as BitArrayItem, v as BitPathValue } from './types-CRCP4Pgq.js';
3
3
 
4
4
  interface BitArrayBindingField<TItem> {
5
5
  key: string;
6
6
  value: TItem;
7
7
  index: number;
8
8
  }
9
- interface BitArrayBindingController<TForm extends object, P extends BitArrayPath<TForm>> {
9
+ interface BitArrayBinding<TForm extends object, P extends BitArrayPath<TForm>> {
10
10
  readItems(): BitArrayItem<BitPathValue<TForm, P>>[];
11
11
  getFields(items: BitArrayItem<BitPathValue<TForm, P>>[]): BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[];
12
12
  append(value: BitArrayItem<BitPathValue<TForm, P>>): void;
@@ -18,6 +18,6 @@ interface BitArrayBindingController<TForm extends object, P extends BitArrayPath
18
18
  replace(items: BitArrayItem<BitPathValue<TForm, P>>[]): void;
19
19
  clear(): void;
20
20
  }
21
- declare function createArrayBindingController<TForm extends object, P extends BitArrayPath<TForm>>(store: BitStoreApi<TForm>, path: P): BitArrayBindingController<TForm, P>;
21
+ declare function createArrayBinding<TForm extends object, P extends BitArrayPath<TForm>>(store: BitStoreApi<TForm>, path: P): BitArrayBinding<TForm, P>;
22
22
 
23
- export { type BitArrayBindingController as B, type BitArrayBindingField as a, createArrayBindingController as c };
23
+ export { type BitArrayBinding as B, type BitArrayBindingField as a, createArrayBinding as c };
@@ -1,12 +1,12 @@
1
- import { e as BitStoreApi } from './store-api-types-D-ZHxzRy.cjs';
2
- import { c as BitArrayPath, b as BitArrayItem, v as BitPathValue } from './types-D6LhF5GC.cjs';
1
+ import { e as BitStoreApi } from './store-api-types-Bm3EAqR_.cjs';
2
+ import { c as BitArrayPath, b as BitArrayItem, v as BitPathValue } from './types-SOg9xEce.cjs';
3
3
 
4
4
  interface BitArrayBindingField<TItem> {
5
5
  key: string;
6
6
  value: TItem;
7
7
  index: number;
8
8
  }
9
- interface BitArrayBindingController<TForm extends object, P extends BitArrayPath<TForm>> {
9
+ interface BitArrayBinding<TForm extends object, P extends BitArrayPath<TForm>> {
10
10
  readItems(): BitArrayItem<BitPathValue<TForm, P>>[];
11
11
  getFields(items: BitArrayItem<BitPathValue<TForm, P>>[]): BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[];
12
12
  append(value: BitArrayItem<BitPathValue<TForm, P>>): void;
@@ -18,6 +18,6 @@ interface BitArrayBindingController<TForm extends object, P extends BitArrayPath
18
18
  replace(items: BitArrayItem<BitPathValue<TForm, P>>[]): void;
19
19
  clear(): void;
20
20
  }
21
- declare function createArrayBindingController<TForm extends object, P extends BitArrayPath<TForm>>(store: BitStoreApi<TForm>, path: P): BitArrayBindingController<TForm, P>;
21
+ declare function createArrayBinding<TForm extends object, P extends BitArrayPath<TForm>>(store: BitStoreApi<TForm>, path: P): BitArrayBinding<TForm, P>;
22
22
 
23
- export { type BitArrayBindingController as B, type BitArrayBindingField as a, createArrayBindingController as c };
23
+ export { type BitArrayBinding as B, type BitArrayBindingField as a, createArrayBinding as c };
@@ -1,4 +1,4 @@
1
- import { r as BitFormGlobal } from './types-CG5nYeRk.js';
1
+ import { r as BitFormGlobal } from './types-CRCP4Pgq.js';
2
2
 
3
3
  declare global {
4
4
  var __BIT_FORM__: BitFormGlobal | undefined;
@@ -1,4 +1,4 @@
1
- import { r as BitFormGlobal } from './types-D6LhF5GC.cjs';
1
+ import { r as BitFormGlobal } from './types-SOg9xEce.cjs';
2
2
 
3
3
  declare global {
4
4
  var __BIT_FORM__: BitFormGlobal | undefined;
@@ -0,0 +1,2 @@
1
+ import{d as r}from"./chunk-QX2IVNMK.js";function o(i,e){return e&&e.value===i.value&&e.error===i.error&&e.touched===i.touched&&e.isHidden===i.isHidden&&e.isRequired===i.isRequired&&e.isDirty===i.isDirty&&e.isValidating===i.isValidating?e:{value:i.value,error:i.error,touched:i.touched,isHidden:i.isHidden,isRequired:i.isRequired,isDirty:i.isDirty,isValidating:i.isValidating}}function d(i,e){return i===e?!0:!i||!e?!1:r(i.value,e.value)&&i.error===e.error&&i.touched===e.touched&&i.isHidden===e.isHidden&&i.isRequired===e.isRequired&&i.isDirty===e.isDirty&&i.isValidating===e.isValidating}var n=d;export{o as a,d as b,n as c};
2
+ //# sourceMappingURL=chunk-2QLQPMCZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/field-state-snapshot.ts"],"sourcesContent":["/**\n * Field State Snapshot Utilities\n *\n * Shared utilities for creating and managing field state snapshots across frameworks\n * (React, Vue, Angular). Reduces code duplication while maintaining type safety.\n */\n\nimport type { BitFieldState } from \"../store/contracts/types\";\nimport { deepEqual } from \"../utils\";\n\n/**\n * Represents a stable snapshot of field state that can be compared for equality.\n */\nexport type BitFieldSnapshot<TValue = unknown> = BitFieldState<\n Record<string, unknown>,\n TValue\n>;\n\n/**\n * Creates or reuses a field state snapshot with shallow equality checking.\n *\n * This function prevents unnecessary re-renders in frameworks like React by\n * returning the same object reference when field state hasn't changed.\n *\n * @param nextState - The new field state from the store\n * @param lastSnapshot - The previous snapshot (can be null on first call)\n * @returns A stable snapshot object that can be used for equality comparison\n *\n * @example\n * ```typescript\n * const snapshot = createFieldStateSnapshot(store.getFieldState(\"email\"), lastSnapshot);\n * if (snapshot !== lastSnapshot) {\n * // Field state changed, update component\n * render(snapshot);\n * }\n * ```\n */\nexport function createFieldStateSnapshot<TValue = unknown>(\n nextState: {\n value: TValue;\n error: string | undefined;\n touched: boolean;\n isHidden: boolean;\n isRequired: boolean;\n isDirty: boolean;\n isValidating: boolean;\n },\n lastSnapshot: BitFieldSnapshot<TValue> | null,\n): BitFieldSnapshot<TValue> {\n // Use shallow equality: return cached if all fields are equal by reference\n if (lastSnapshot) {\n const shallowEqual =\n lastSnapshot.value === nextState.value &&\n lastSnapshot.error === nextState.error &&\n lastSnapshot.touched === nextState.touched &&\n lastSnapshot.isHidden === nextState.isHidden &&\n lastSnapshot.isRequired === nextState.isRequired &&\n lastSnapshot.isDirty === nextState.isDirty &&\n lastSnapshot.isValidating === nextState.isValidating;\n\n if (shallowEqual) {\n return lastSnapshot;\n }\n }\n\n return {\n value: nextState.value,\n error: nextState.error,\n touched: nextState.touched,\n isHidden: nextState.isHidden,\n isRequired: nextState.isRequired,\n isDirty: nextState.isDirty,\n isValidating: nextState.isValidating,\n };\n}\n\n/**\n * Deep comparison utility for field state snapshots.\n * Useful for scenarios where shallow comparison isn't sufficient (e.g., object/array values).\n *\n * @param snapshotA - First snapshot\n * @param snapshotB - Second snapshot\n * @returns true if snapshots are deeply equal\n */\nexport function areFieldSnapshotsEqual(\n snapshotA: BitFieldSnapshot | null | undefined,\n snapshotB: BitFieldSnapshot | null | undefined,\n): boolean {\n if (snapshotA === snapshotB) return true;\n if (!snapshotA || !snapshotB) return false;\n\n return (\n deepEqual(snapshotA.value, snapshotB.value) &&\n snapshotA.error === snapshotB.error &&\n snapshotA.touched === snapshotB.touched &&\n snapshotA.isHidden === snapshotB.isHidden &&\n snapshotA.isRequired === snapshotB.isRequired &&\n snapshotA.isDirty === snapshotB.isDirty &&\n snapshotA.isValidating === snapshotB.isValidating\n );\n}\n\nexport const areFieldStatesEqual = areFieldSnapshotsEqual;\n"],"mappings":"wCAqCO,SAASA,EACdC,EASAC,EAC0B,CAE1B,OAAIA,GAEAA,EAAa,QAAUD,EAAU,OACjCC,EAAa,QAAUD,EAAU,OACjCC,EAAa,UAAYD,EAAU,SACnCC,EAAa,WAAaD,EAAU,UACpCC,EAAa,aAAeD,EAAU,YACtCC,EAAa,UAAYD,EAAU,SACnCC,EAAa,eAAiBD,EAAU,aAGjCC,EAIJ,CACL,MAAOD,EAAU,MACjB,MAAOA,EAAU,MACjB,QAASA,EAAU,QACnB,SAAUA,EAAU,SACpB,WAAYA,EAAU,WACtB,QAASA,EAAU,QACnB,aAAcA,EAAU,YAC1B,CACF,CAUO,SAASE,EACdC,EACAC,EACS,CACT,OAAID,IAAcC,EAAkB,GAChC,CAACD,GAAa,CAACC,EAAkB,GAGnCC,EAAUF,EAAU,MAAOC,EAAU,KAAK,GAC1CD,EAAU,QAAUC,EAAU,OAC9BD,EAAU,UAAYC,EAAU,SAChCD,EAAU,WAAaC,EAAU,UACjCD,EAAU,aAAeC,EAAU,YACnCD,EAAU,UAAYC,EAAU,SAChCD,EAAU,eAAiBC,EAAU,YAEzC,CAEO,IAAME,EAAsBJ","names":["createFieldStateSnapshot","nextState","lastSnapshot","areFieldSnapshotsEqual","snapshotA","snapshotB","deepEqual","areFieldStatesEqual"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});function o(e){let i=e.touched?e.error:void 0,r=!!e.error;return{error:i,touched:e.touched,invalid:!!(e.touched&&e.error),isValidating:e.isValidating,isDirty:e.isDirty,isHidden:e.isHidden,isRequired:e.isRequired,hasError:r}}exports.a = o;
2
+ //# sourceMappingURL=chunk-3KI3GEU3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/field-meta.ts"],"names":["deriveFieldMeta","state","error","hasError"],"mappings":"AAaO,kFAASA,CAAAA,CACdC,CAAAA,CACqB,CACrB,IAAMC,CAAAA,CAAQD,CAAAA,CAAM,OAAA,CAAUA,CAAAA,CAAM,KAAA,CAAQ,KAAA,CAAA,CACtCE,CAAAA,CAAW,CAAC,CAACF,CAAAA,CAAM,KAAA,CAEzB,MAAO,CACL,KAAA,CAAAC,CAAAA,CACA,OAAA,CAASD,CAAAA,CAAM,OAAA,CACf,OAAA,CAAS,CAAC,CAAA,CAAEA,CAAAA,CAAM,OAAA,EAAWA,CAAAA,CAAM,KAAA,CAAA,CACnC,YAAA,CAAcA,CAAAA,CAAM,YAAA,CACpB,OAAA,CAASA,CAAAA,CAAM,OAAA,CACf,QAAA,CAAUA,CAAAA,CAAM,QAAA,CAChB,UAAA,CAAYA,CAAAA,CAAM,UAAA,CAClB,QAAA,CAAAE,CACF,CACF,CAAA,cAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-3KI3GEU3.cjs","sourcesContent":["import type { BitFieldState } from \"../store/contracts/types\";\n\nexport interface BitDerivedFieldMeta {\n error: string | undefined;\n touched: boolean;\n invalid: boolean;\n isValidating: boolean;\n isDirty: boolean;\n isHidden: boolean;\n isRequired: boolean;\n hasError: boolean;\n}\n\nexport function deriveFieldMeta<T extends object, TValue>(\n state: Readonly<BitFieldState<T, TValue>>,\n): BitDerivedFieldMeta {\n const error = state.touched ? state.error : undefined;\n const hasError = !!state.error;\n\n return {\n error,\n touched: state.touched,\n invalid: !!(state.touched && state.error),\n isValidating: state.isValidating,\n isDirty: state.isDirty,\n isHidden: state.isHidden,\n isRequired: state.isRequired,\n hasError,\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }function p(e){if(e===null||typeof e!="object")return e;if(typeof structuredClone=="function")return structuredClone(e);if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(Array.isArray(e))return e.map(r=>p(r));let n={};for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=p(e[r]));return n}function d(e){return p(e)}function m(e,n){if(n===void 0)return d(e);if(n===null||typeof n!="object"||n instanceof Date||n instanceof RegExp||Array.isArray(n))return d(n);let r=e&&typeof e=="object"&&!Array.isArray(e)?d(e):{};for(let t of Object.keys(n)){let s=n[t],a=r[t];if(s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp)){r[t]=m(a,s);continue}r[t]=d(s)}return r}function k(e,n){return e===n?!0:e===null||typeof e!="object"||n===null||typeof n!="object"?!1:h(e,n)}function h(e,n){if(e===n)return!0;if(e===null||typeof e!="object"||n===null||typeof n!="object")return!1;if(e instanceof Date&&n instanceof Date)return e.getTime()===n.getTime();if(e instanceof RegExp&&n instanceof RegExp)return e.toString()===n.toString();let r=Object.keys(e),t=Object.keys(n);if(r.length!==t.length)return!1;for(let s of r)if(!Object.prototype.hasOwnProperty.call(n,s)||!h(e[s],n[s]))return!1;return!0}function V(e,n,r="",t=new Set){if(k(e,n))return t;if(e===null||typeof e!="object"||n===null||typeof n!="object")return r&&t.add(r),t;if(Array.isArray(e)||Array.isArray(n))return!k(e,n)&&r&&t.add(r),t;let s=new Set;for(let a of Object.keys(e||{}))s.add(a);for(let a of Object.keys(n||{}))s.add(a);for(let a of s){let o=r?`${r}.${a}`:a;V(_optionalChain([e, 'optionalAccess', _ => _[a]]),_optionalChain([n, 'optionalAccess', _2 => _2[a]]),o,t)}return t}var g=new Map;function T(e,n){if(g.has(e))g.delete(e);else if(g.size>=5e3){let r=g.keys().next().value;r!==void 0&&g.delete(r)}g.set(e,n)}function A(e){let n=g.get(e);if(n)return n;let r=e.split(".");return T(e,r),r}function K(e,n){if(!n)return e;let r=A(n),t=e;for(let s of r){if(t==null)return;t=t[s]}return t}function D(e,n,r){if(!n)return r;let t=A(n),s=Array.isArray(e)?[...e]:{...e},a=s;for(let o=0;o<t.length-1;o++){let i=t[o],c=t[o+1],u=Number(c),y=Number.isInteger(u)&&String(u)===c,f=a[i];f==null?a[i]=y?[]:{}:a[i]=Array.isArray(f)?[...f]:{...f},a=a[i]}return a[t[t.length-1]]=r,s}function b(e,n){if(n.length===0)return e;let r=Array.isArray(e)?[...e]:{...e},t=new WeakSet;r&&typeof r=="object"&&t.add(r);for(let[s,a]of n){let o=A(s),i=r;for(let c=0;c<o.length-1;c++){let u=o[c],y=o[c+1],f=Number(y),R=Number.isInteger(f)&&String(f)===y,l=i[u];l==null?(i[u]=R?[]:{},t.add(i[u])):typeof l=="object"?t.has(l)||(i[u]=Array.isArray(l)?[...l]:{...l},t.add(i[u])):(i[u]=R?[]:{},t.add(i[u])),i=i[u]}i[o[o.length-1]]=a}return r}function E(e,n){if(n.length===0)return e;let r=Array.isArray(e)?[...e]:{...e},t=new WeakSet;r&&typeof r=="object"&&t.add(r);for(let s of n){if(!s)return Array.isArray(e)?[]:{};let a=A(s),o=r;for(let c=0;c<a.length-1;c++){let u=a[c],y=_optionalChain([o, 'optionalAccess', _3 => _3[u]]);if(y==null){o=void 0;break}if(typeof y=="object")t.has(y)||(o[u]=Array.isArray(y)?[...y]:{...y},t.add(o[u]));else{o=void 0;break}o=o[u]}if(!o)continue;let i=a[a.length-1];Array.isArray(o)?o.splice(Number(i),1):o&&typeof o=="object"&&delete o[i]}return r}function O(e,n){let r={},t=`${n}.`;for(let s in e)s!==n&&!s.startsWith(t)&&(r[s]=e[s]);return r}function $(e,n,r){let t={},s={},a={},o=`${n}.`;for(let i of Object.keys(e.errors)){let c=x(i,o,r);c&&(t[c]=e.errors[i])}for(let i of Object.keys(e.touched)){let c=x(i,o,r);c&&(s[c]=e.touched[i])}for(let i of Object.keys(e.isValidating)){let c=x(i,o,r);c&&(a[c]=e.isValidating[i])}return{errors:t,touched:s,isValidating:a}}function x(e,n,r){if(!e.startsWith(n))return e;let s=e.substring(n.length).split("."),a=parseInt(s[0],10),o=r(a);if(o===null)return null;let i=s.slice(1).join(".");return i?`${n}${o}.${i}`:`${n}${o}`}function w(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let n=_nullishCoalesce(e.errors, () => (e));return typeof n!="object"||n===null||Array.isArray(n)?!1:Object.values(n).every(r=>typeof r=="string"||Array.isArray(r)&&r.every(t=>typeof t=="string"))}function N(e){return w(e)?_nullishCoalesce(e.errors, () => (e)):{}}exports.a = d; exports.b = m; exports.c = k; exports.d = h; exports.e = V; exports.f = K; exports.g = D; exports.h = b; exports.i = E; exports.j = O; exports.k = $; exports.l = w; exports.m = N;
2
+ //# sourceMappingURL=chunk-6LNXTSZ6.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/utils/clone.ts","../src/core/utils/structural.ts"],"names":["cloneValue","obj","item","clone","key","deepClone","deepMerge","target","source","base","sourceValue","baseValue","valueEqual","a","b","deepEqual","keysA","keysB","collectDirtyPaths","initial","prefix","result","allKeys","k","p"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/chunk-T2JRSWQU.cjs","sourcesContent":["export function cloneValue<T>(obj: T): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (typeof structuredClone === \"function\") {\n return structuredClone(obj);\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => cloneValue(item)) as any as T;\n }\n\n const clone: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = cloneValue((obj as any)[key]);\n }\n }\n\n return clone as T;\n}\n","import { cloneValue } from \"./clone\";\n\nexport function deepClone<T>(obj: T): T {\n return cloneValue(obj);\n}\n\nexport function deepMerge<T>(target: T, source: any): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n\n return base as T;\n}\n\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqual(a[key], b[key])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set<string>();\n for (const key of Object.keys(obj || {})) {\n allKeys.add(key);\n }\n for (const key of Object.keys(initial || {})) {\n allKeys.add(key);\n }\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths((obj as any)?.[k], (initial as any)?.[k], p, result);\n }\n return result;\n}\n"]}
1
+ {"version":3,"sources":["../src/core/utils/clone.ts","../src/core/utils/structural.ts"],"names":["cloneValue","obj","item","clone","key","deepClone","deepMerge","target","source","base","sourceValue","baseValue","valueEqual","a","b","deepEqual","keysA","keysB","collectDirtyPaths","initial","prefix","result","allKeys","k","p"],"mappings":"AAAO,0rBAASA,CAAAA,CAAcC,CAAAA,CAAW,CACvC,EAAA,CAAIA,CAAAA,GAAQ,IAAA,EAAQ,OAAOA,CAAAA,EAAQ,QAAA,CACjC,OAAOA,CAAAA,CAGT,EAAA,CAAI,OAAO,eAAA,EAAoB,UAAA,CAC7B,OAAO,eAAA,CAAgBA,CAAG,CAAA,CAG5B,EAAA,CAAIA,EAAAA,WAAe,IAAA,CACjB,OAAO,IAAI,IAAA,CAAKA,CAAAA,CAAI,OAAA,CAAQ,CAAC,CAAA,CAG/B,EAAA,CAAIA,EAAAA,WAAe,MAAA,CACjB,OAAO,IAAI,MAAA,CAAOA,CAAAA,CAAI,MAAA,CAAQA,CAAAA,CAAI,KAAK,CAAA,CAGzC,EAAA,CAAI,KAAA,CAAM,OAAA,CAAQA,CAAG,CAAA,CACnB,OAAOA,CAAAA,CAAI,GAAA,CAAKC,CAAAA,EAASF,CAAAA,CAAWE,CAAI,CAAC,CAAA,CAG3C,IAAMC,CAAAA,CAAa,CAAC,CAAA,CACpB,GAAA,CAAA,IAAWC,EAAAA,GAAOH,CAAAA,CACZ,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAKA,CAAAA,CAAKG,CAAG,CAAA,EAAA,CAC/CD,CAAAA,CAAMC,CAAG,CAAA,CAAIJ,CAAAA,CAAYC,CAAAA,CAAYG,CAAG,CAAC,CAAA,CAAA,CAI7C,OAAOD,CACT,CC3BO,SAASE,CAAAA,CAAaJ,CAAAA,CAAW,CACtC,OAAOD,CAAAA,CAAWC,CAAG,CACvB,CAEO,SAASK,CAAAA,CAAaC,CAAAA,CAAWC,CAAAA,CAAgB,CACtD,EAAA,CAAIA,CAAAA,GAAW,KAAA,CAAA,CACb,OAAOH,CAAAA,CAAUE,CAAM,CAAA,CAGzB,EAAA,CACEC,CAAAA,GAAW,IAAA,EACX,OAAOA,CAAAA,EAAW,QAAA,EAClBA,EAAAA,WAAkB,IAAA,EAClBA,EAAAA,WAAkB,MAAA,EAClB,KAAA,CAAM,OAAA,CAAQA,CAAM,CAAA,CAEpB,OAAOH,CAAAA,CAAUG,CAAW,CAAA,CAG9B,IAAMC,CAAAA,CACJF,CAAAA,EAAU,OAAOA,CAAAA,EAAW,QAAA,EAAY,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAM,CAAA,CACzDF,CAAAA,CAAUE,CAAa,CAAA,CACtB,CAAC,CAAA,CAER,GAAA,CAAA,IAAWH,EAAAA,GAAO,MAAA,CAAO,IAAA,CAAKI,CAAM,CAAA,CAAG,CACrC,IAAME,CAAAA,CAAcF,CAAAA,CAAOJ,CAAG,CAAA,CACxBO,CAAAA,CAAaF,CAAAA,CAAiCL,CAAG,CAAA,CAEvD,EAAA,CACEM,CAAAA,GAAgB,IAAA,EAChB,OAAOA,CAAAA,EAAgB,QAAA,EACvB,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAW,CAAA,EAC1B,CAAA,CAAEA,EAAAA,WAAuB,IAAA,CAAA,EACzB,CAAA,CAAEA,EAAAA,WAAuB,MAAA,CAAA,CACzB,CACCD,CAAAA,CAAiCL,CAAG,CAAA,CAAIE,CAAAA,CACvCK,CAAAA,CACAD,CACF,CAAA,CACA,QACF,CAECD,CAAAA,CAAiCL,CAAG,CAAA,CAAIC,CAAAA,CAAUK,CAAW,CAChE,CAEA,OAAOD,CACT,CAEO,SAASG,CAAAA,CAAWC,CAAAA,CAAQC,CAAAA,CAAiB,CAClD,OAAID,CAAAA,GAAMC,CAAAA,CAAU,CAAA,CAAA,CAElBD,CAAAA,GAAM,IAAA,EACN,OAAOA,CAAAA,EAAM,QAAA,EACbC,CAAAA,GAAM,IAAA,EACN,OAAOA,CAAAA,EAAM,QAAA,CAEN,CAAA,CAAA,CAEFC,CAAAA,CAAUF,CAAAA,CAAGC,CAAC,CACvB,CAEO,SAASC,CAAAA,CAAUF,CAAAA,CAAQC,CAAAA,CAAiB,CACjD,EAAA,CAAID,CAAAA,GAAMC,CAAAA,CAAG,MAAO,CAAA,CAAA,CACpB,EAAA,CACED,CAAAA,GAAM,IAAA,EACN,OAAOA,CAAAA,EAAM,QAAA,EACbC,CAAAA,GAAM,IAAA,EACN,OAAOA,CAAAA,EAAM,QAAA,CAEb,MAAO,CAAA,CAAA,CAGT,EAAA,CAAID,EAAAA,WAAa,IAAA,EAAQC,EAAAA,WAAa,IAAA,CACpC,OAAOD,CAAAA,CAAE,OAAA,CAAQ,CAAA,GAAMC,CAAAA,CAAE,OAAA,CAAQ,CAAA,CACnC,EAAA,CAAID,EAAAA,WAAa,MAAA,EAAUC,EAAAA,WAAa,MAAA,CACtC,OAAOD,CAAAA,CAAE,QAAA,CAAS,CAAA,GAAMC,CAAAA,CAAE,QAAA,CAAS,CAAA,CAErC,IAAME,CAAAA,CAAQ,MAAA,CAAO,IAAA,CAAKH,CAAC,CAAA,CACrBI,CAAAA,CAAQ,MAAA,CAAO,IAAA,CAAKH,CAAC,CAAA,CAE3B,EAAA,CAAIE,CAAAA,CAAM,MAAA,GAAWC,CAAAA,CAAM,MAAA,CAAQ,MAAO,CAAA,CAAA,CAE1C,GAAA,CAAA,IAAWb,EAAAA,GAAOY,CAAAA,CAChB,EAAA,CACE,CAAC,MAAA,CAAO,SAAA,CAAU,cAAA,CAAe,IAAA,CAAKF,CAAAA,CAAGV,CAAG,CAAA,EAC5C,CAACW,CAAAA,CAAUF,CAAAA,CAAET,CAAG,CAAA,CAAGU,CAAAA,CAAEV,CAAG,CAAC,CAAA,CAEzB,MAAO,CAAA,CAAA,CAIX,MAAO,CAAA,CACT,CAEO,SAASc,CAAAA,CACdjB,CAAAA,CACAkB,CAAAA,CACAC,CAAAA,CAAS,EAAA,CACTC,CAAAA,CAAsB,IAAI,GAAA,CACb,CACb,EAAA,CAAIT,CAAAA,CAAWX,CAAAA,CAAKkB,CAAO,CAAA,CAAG,OAAOE,CAAAA,CACrC,EAAA,CACEpB,CAAAA,GAAQ,IAAA,EACR,OAAOA,CAAAA,EAAQ,QAAA,EACfkB,CAAAA,GAAY,IAAA,EACZ,OAAOA,CAAAA,EAAY,QAAA,CAEnB,OAAIC,CAAAA,EAAQC,CAAAA,CAAO,GAAA,CAAID,CAAM,CAAA,CACtBC,CAAAA,CAET,EAAA,CAAI,KAAA,CAAM,OAAA,CAAQpB,CAAG,CAAA,EAAK,KAAA,CAAM,OAAA,CAAQkB,CAAO,CAAA,CAC7C,MAAI,CAACP,CAAAA,CAAWX,CAAAA,CAAKkB,CAAO,CAAA,EAAKC,CAAAA,EAAQC,CAAAA,CAAO,GAAA,CAAID,CAAM,CAAA,CACnDC,CAAAA,CAET,IAAMC,CAAAA,CAAU,IAAI,GAAA,CACpB,GAAA,CAAA,IAAWlB,EAAAA,GAAO,MAAA,CAAO,IAAA,CAAKH,CAAAA,EAAO,CAAC,CAAC,CAAA,CACrCqB,CAAAA,CAAQ,GAAA,CAAIlB,CAAG,CAAA,CAEjB,GAAA,CAAA,IAAWA,EAAAA,GAAO,MAAA,CAAO,IAAA,CAAKe,CAAAA,EAAW,CAAC,CAAC,CAAA,CACzCG,CAAAA,CAAQ,GAAA,CAAIlB,CAAG,CAAA,CAEjB,GAAA,CAAA,IAAWmB,EAAAA,GAAKD,CAAAA,CAAS,CACvB,IAAME,CAAAA,CAAIJ,CAAAA,CAAS,CAAA,EAAA","file":"/home/runner/work/bit-form/bit-form/dist/chunk-6LNXTSZ6.cjs","sourcesContent":["export function cloneValue<T>(obj: T): T {\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n\n if (typeof structuredClone === \"function\") {\n return structuredClone(obj);\n }\n\n if (obj instanceof Date) {\n return new Date(obj.getTime()) as any as T;\n }\n\n if (obj instanceof RegExp) {\n return new RegExp(obj.source, obj.flags) as any as T;\n }\n\n if (Array.isArray(obj)) {\n return obj.map((item) => cloneValue(item)) as any as T;\n }\n\n const clone: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n clone[key] = cloneValue((obj as any)[key]);\n }\n }\n\n return clone as T;\n}\n","import { cloneValue } from \"./clone\";\n\nexport function deepClone<T>(obj: T): T {\n return cloneValue(obj);\n}\n\nexport function deepMerge<T>(target: T, source: any): T {\n if (source === undefined) {\n return deepClone(target);\n }\n\n if (\n source === null ||\n typeof source !== \"object\" ||\n source instanceof Date ||\n source instanceof RegExp ||\n Array.isArray(source)\n ) {\n return deepClone(source as T);\n }\n\n const base =\n target && typeof target === \"object\" && !Array.isArray(target)\n ? deepClone(target as any)\n : ({} as Record<string, unknown>);\n\n for (const key of Object.keys(source)) {\n const sourceValue = source[key];\n const baseValue = (base as Record<string, unknown>)[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === \"object\" &&\n !Array.isArray(sourceValue) &&\n !(sourceValue instanceof Date) &&\n !(sourceValue instanceof RegExp)\n ) {\n (base as Record<string, unknown>)[key] = deepMerge(\n baseValue,\n sourceValue,\n );\n continue;\n }\n\n (base as Record<string, unknown>)[key] = deepClone(sourceValue);\n }\n\n return base as T;\n}\n\nexport function valueEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n return deepEqual(a, b);\n}\n\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n if (\n a === null ||\n typeof a !== \"object\" ||\n b === null ||\n typeof b !== \"object\"\n ) {\n return false;\n }\n\n if (a instanceof Date && b instanceof Date)\n return a.getTime() === b.getTime();\n if (a instanceof RegExp && b instanceof RegExp)\n return a.toString() === b.toString();\n\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) return false;\n\n for (const key of keysA) {\n if (\n !Object.prototype.hasOwnProperty.call(b, key) ||\n !deepEqual(a[key], b[key])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function collectDirtyPaths(\n obj: any,\n initial: any,\n prefix = \"\",\n result: Set<string> = new Set(),\n): Set<string> {\n if (valueEqual(obj, initial)) return result;\n if (\n obj === null ||\n typeof obj !== \"object\" ||\n initial === null ||\n typeof initial !== \"object\"\n ) {\n if (prefix) result.add(prefix);\n return result;\n }\n if (Array.isArray(obj) || Array.isArray(initial)) {\n if (!valueEqual(obj, initial) && prefix) result.add(prefix);\n return result;\n }\n const allKeys = new Set<string>();\n for (const key of Object.keys(obj || {})) {\n allKeys.add(key);\n }\n for (const key of Object.keys(initial || {})) {\n allKeys.add(key);\n }\n for (const k of allKeys) {\n const p = prefix ? `${prefix}.${k}` : k;\n collectDirtyPaths((obj as any)?.[k], (initial as any)?.[k], p, result);\n }\n return result;\n}\n"]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQKGTVKBUcjs = require('./chunk-QKGTVKBU.cjs');var _chunkVZHG372Qcjs = require('./chunk-VZHG372Q.cjs');function R(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function k(e){let o=e.getHistoryMetadata();return{...R(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function b(e){let o={};for(let[t,i]of Object.entries(e))o[t]=k(i);return o}function w(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function I(e){if(!w(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function B(e,o){let t=e[o];return I(t)?t:null}var S=null,O=50;function N(e,o=_chunkVZHG372Qcjs.a){S&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),S());let t=null,i=null,f,n=null,a=new Set,T=!1,u=r=>{_optionalChain([t, 'optionalAccess', _ => _.readyState])===WebSocket.OPEN&&t.send(JSON.stringify(r))},h=()=>{if(a.size===0)return;let r=b(Array.from(a).reduce((s,l)=>{let d=o.stores[l];return d&&(s[l]=d),s},{}));a.clear(),n=null,Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r})},D=()=>{n||(n=setTimeout(()=>{h()},O))},y=()=>{T=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),u({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=b(o.stores);Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),D()}),f=setInterval(()=>{u({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(_chunkQKGTVKBUcjs.c.call(void 0, s)){let{storeId:l,action:d}=s.payload,p=B(o.stores,l);if(!p)return;switch(d){case"undo":p.undo();break;case"redo":p.redo();break;case"reset":p.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),T?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(y,3e3))}};y();let m=()=>{T=!0,i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),S=null};return S=m,m}exports.a = b; exports.b = B; exports.c = N;
2
- //# sourceMappingURL=chunk-P2YWYBWG.cjs.map
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkQKGTVKBUcjs = require('./chunk-QKGTVKBU.cjs');var _chunkJ5ALITQWcjs = require('./chunk-J5ALITQW.cjs');function R(e){return{values:e.values,errors:e.errors,touched:e.touched,isValid:e.isValid,isDirty:e.isDirty,isSubmitting:e.isSubmitting,isValidating:e.isValidating,persist:e.persist}}function k(e){let o=e.getHistoryMetadata();return{...R(e.getState()),_meta:{canUndo:o.canUndo,canRedo:o.canRedo,totalSteps:o.historySize,currentIndex:o.historyIndex}}}function b(e){let o={};for(let[t,i]of Object.entries(e))o[t]=k(i);return o}function w(e){if(!e||typeof e!="object")return!1;let o=e;return typeof o.getState=="function"&&typeof o.getHistoryMetadata=="function"}function I(e){if(!w(e))return!1;let o=e;return typeof o.undo=="function"&&typeof o.redo=="function"&&typeof o.reset=="function"}function B(e,o){let t=e[o];return I(t)?t:null}var S=null,O=50;function N(e,o=_chunkJ5ALITQWcjs.a){S&&(console.warn("[bit-form] Reiniciando ponte do DevTools (Fast Refresh detectado)."),S());let t=null,i=null,f,n=null,a=new Set,T=!1,u=r=>{_optionalChain([t, 'optionalAccess', _ => _.readyState])===WebSocket.OPEN&&t.send(JSON.stringify(r))},h=()=>{if(a.size===0)return;let r=b(Array.from(a).reduce((s,l)=>{let d=o.stores[l];return d&&(s[l]=d),s},{}));a.clear(),n=null,Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r})},D=()=>{n||(n=setTimeout(()=>{h()},O))},y=()=>{T=!1,t=new WebSocket(e),t.onopen=()=>{console.log("[bit-form] \u{1F50C} Conectado ao CLI DevTools via WebSocket."),u({type:"HELLO",protocolVersion:1,payload:{role:"server",protocolVersion:1}});let r=b(o.stores);Object.keys(r).length>0&&u({type:"STATE_UPDATE",protocolVersion:1,payload:r}),i=o.subscribe((s,l)=>{a.add(s),D()}),f=setInterval(()=>{u({type:"PING",protocolVersion:1})},3e4)},t.onmessage=r=>{try{let s=JSON.parse(r.data);if(_chunkQKGTVKBUcjs.c.call(void 0, s)){let{storeId:l,action:d}=s.payload,p=B(o.stores,l);if(!p)return;switch(d){case"undo":p.undo();break;case"redo":p.redo();break;case"reset":p.reset();break}}}catch(s){console.warn("[bit-form] Erro ao processar comando do CLI:",s)}},t.onclose=()=>{i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),T?console.log("[bit-form] Ponte antiga encerrada com sucesso."):(console.log("[bit-form] Conex\xE3o perdida. Reconectando em 3s..."),setTimeout(y,3e3))}};y();let m=()=>{T=!0,i&&i(),clearInterval(f),n&&(clearTimeout(n),n=null),a.clear(),t&&(t.readyState===WebSocket.OPEN||t.readyState===WebSocket.CONNECTING)&&t.close(),S=null};return S=m,m}exports.a = b; exports.b = B; exports.c = N;
2
+ //# sourceMappingURL=chunk-GGZPA7AO.cjs.map