@lehnihon/bit-form 2.2.19 → 2.2.26
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.
- package/README.md +10 -13
- package/dist/angular/index.cjs +1 -1
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.d.cts +7 -7
- package/dist/angular/index.d.ts +7 -7
- package/dist/angular/index.js +1 -1
- package/dist/angular/index.js.map +1 -1
- package/dist/chunk-4WPLTOBT.cjs.map +1 -1
- package/dist/chunk-725CMNAV.cjs.map +1 -1
- package/dist/chunk-7T7L2TZX.js +2 -0
- package/dist/chunk-7T7L2TZX.js.map +1 -0
- package/dist/chunk-AV7YYSFI.cjs +2 -0
- package/dist/chunk-AV7YYSFI.cjs.map +1 -0
- package/dist/chunk-BSGJ3T5S.cjs.map +1 -1
- package/dist/chunk-CATA7YEV.js +2 -0
- package/dist/chunk-CATA7YEV.js.map +1 -0
- package/dist/chunk-EYCJKAK3.js +2 -0
- package/dist/chunk-EYCJKAK3.js.map +1 -0
- package/dist/chunk-GBHOCY7E.cjs +2 -0
- package/dist/chunk-GBHOCY7E.cjs.map +1 -0
- package/dist/{chunk-EPBSLPRL.cjs → chunk-H27ROY4F.cjs} +2 -2
- package/dist/chunk-H27ROY4F.cjs.map +1 -0
- package/dist/chunk-H3RTOA6X.cjs +2 -0
- package/dist/chunk-H3RTOA6X.cjs.map +1 -0
- package/dist/chunk-H6HGYVRV.cjs +2 -0
- package/dist/chunk-H6HGYVRV.cjs.map +1 -0
- package/dist/chunk-L42NQRVD.js +2 -0
- package/dist/{chunk-3WNZPBME.js.map → chunk-L42NQRVD.js.map} +1 -1
- package/dist/chunk-L57KMBXS.js +2 -0
- package/dist/chunk-L57KMBXS.js.map +1 -0
- package/dist/chunk-MBEQLBJB.js +2 -0
- package/dist/chunk-MBEQLBJB.js.map +1 -0
- package/dist/chunk-MFSDDSVG.cjs.map +1 -1
- package/dist/chunk-OWDDAM6C.cjs +2 -0
- package/dist/chunk-OWDDAM6C.cjs.map +1 -0
- package/dist/chunk-QKGTVKBU.cjs.map +1 -1
- package/dist/chunk-RHMJPKNV.cjs.map +1 -1
- package/dist/chunk-U6UFULNS.cjs +2 -0
- package/dist/chunk-U6UFULNS.cjs.map +1 -0
- package/dist/chunk-UBVVBVLS.js +2 -0
- package/dist/chunk-UBVVBVLS.js.map +1 -0
- package/dist/chunk-W5CLDRRE.cjs.map +1 -1
- package/dist/chunk-WKLCAC74.cjs +2 -0
- package/dist/chunk-WKLCAC74.cjs.map +1 -0
- package/dist/chunk-WYYVVM2C.js +2 -0
- package/dist/chunk-WYYVVM2C.js.map +1 -0
- package/dist/chunk-X3DGA5UC.cjs +2 -0
- package/dist/chunk-X3DGA5UC.cjs.map +1 -0
- package/dist/chunk-Y7TQTZY7.js +2 -0
- package/dist/chunk-Y7TQTZY7.js.map +1 -0
- package/dist/cli/index.cjs +21 -19
- package/dist/{config-types-bTt2lcw9.d.ts → config-types-DB6FaTiZ.d.ts} +3 -3
- package/dist/{config-types-Dbyt7t3D.d.cts → config-types-mZFlp2Bi.d.cts} +3 -3
- package/dist/core/bindings.cjs +1 -1
- package/dist/core/bindings.cjs.map +1 -1
- package/dist/core/bindings.d.cts +4 -4
- package/dist/core/bindings.d.ts +4 -4
- package/dist/core/bindings.js +1 -1
- package/dist/core/status.cjs.map +1 -1
- package/dist/core/status.d.cts +3 -3
- package/dist/core/status.d.ts +3 -3
- package/dist/core/store.cjs +1 -1
- package/dist/core/store.cjs.map +1 -1
- package/dist/core/store.d.cts +5 -5
- package/dist/core/store.d.ts +5 -5
- package/dist/core/store.js +1 -1
- package/dist/core/utils.cjs +1 -1
- package/dist/core/utils.cjs.map +1 -1
- package/dist/core/utils.js +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +4 -4
- package/dist/core.d.ts +4 -4
- package/dist/core.js +1 -1
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.cjs.map +1 -1
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/index.cjs +17 -17
- package/dist/devtools/index.cjs.map +1 -1
- package/dist/devtools/index.d.cts +2 -2
- package/dist/devtools/index.d.ts +2 -2
- package/dist/devtools/index.js +17 -17
- package/dist/devtools/index.js.map +1 -1
- package/dist/devtools/protocol.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +1 -1
- package/dist/mask.cjs +1 -1
- package/dist/mask.cjs.map +1 -1
- package/dist/mask.d.cts +1 -1
- package/dist/mask.d.ts +1 -1
- package/dist/mask.js +1 -1
- package/dist/{meta-types-BC1VLABk.d.cts → meta-types-1Xcht8hj.d.cts} +1 -1
- package/dist/{meta-types-BC1VLABk.d.ts → meta-types-1Xcht8hj.d.ts} +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +6 -6
- package/dist/react/index.d.ts +6 -6
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react-native/index.cjs +1 -1
- package/dist/react-native/index.cjs.map +1 -1
- package/dist/react-native/index.d.cts +5 -5
- package/dist/react-native/index.d.ts +5 -5
- package/dist/react-native/index.js +1 -1
- package/dist/resolvers/index.cjs +1 -1
- package/dist/resolvers/index.cjs.map +1 -1
- package/dist/resolvers/index.d.cts +0 -8
- package/dist/resolvers/index.d.ts +0 -8
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/joi.cjs +1 -1
- package/dist/resolvers/joi.cjs.map +1 -1
- package/dist/resolvers/joi.js +1 -1
- package/dist/resolvers/joi.js.map +1 -1
- package/dist/resolvers/types.cjs.map +1 -1
- package/dist/resolvers/yup.cjs +1 -1
- package/dist/resolvers/yup.cjs.map +1 -1
- package/dist/resolvers/yup.js +1 -1
- package/dist/resolvers/yup.js.map +1 -1
- package/dist/resolvers/zod.cjs +1 -1
- package/dist/resolvers/zod.cjs.map +1 -1
- package/dist/resolvers/zod.js +1 -1
- package/dist/resolvers/zod.js.map +1 -1
- package/dist/{runtime-types-D1SRZr-n.d.cts → runtime-types-BLCkMgcy.d.cts} +1 -1
- package/dist/{runtime-types-D1SRZr-n.d.ts → runtime-types-BLCkMgcy.d.ts} +1 -1
- package/dist/{store-api-types-i-zmM25p.d.ts → store-api-types-CgRVo2DA.d.ts} +4 -4
- package/dist/{store-api-types-BPD27biP.d.cts → store-api-types-D7i0KWbr.d.cts} +4 -4
- package/dist/{use-bit-persist-BGH2Bazx.d.ts → use-bit-persist-CFcuAzwp.d.ts} +5 -5
- package/dist/{use-bit-persist-DiwICsEm.d.cts → use-bit-persist-Dsr69hme.d.cts} +5 -5
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.cts +5 -5
- package/dist/vue/index.d.ts +5 -5
- package/dist/vue/index.js +1 -1
- package/dist/vue/index.js.map +1 -1
- package/package.json +84 -11
- package/dist/chunk-23DHXQOC.js +0 -2
- package/dist/chunk-23DHXQOC.js.map +0 -1
- package/dist/chunk-27LJCW56.cjs +0 -2
- package/dist/chunk-27LJCW56.cjs.map +0 -1
- package/dist/chunk-32RH5MSM.js +0 -2
- package/dist/chunk-32RH5MSM.js.map +0 -1
- package/dist/chunk-33TGLA5D.cjs +0 -2
- package/dist/chunk-33TGLA5D.cjs.map +0 -1
- package/dist/chunk-3CPIJF3Z.cjs +0 -2
- package/dist/chunk-3CPIJF3Z.cjs.map +0 -1
- package/dist/chunk-3KI3GEU3.cjs +0 -2
- package/dist/chunk-3KI3GEU3.cjs.map +0 -1
- package/dist/chunk-3WNZPBME.js +0 -2
- package/dist/chunk-5ILGCBKG.cjs +0 -2
- package/dist/chunk-5ILGCBKG.cjs.map +0 -1
- package/dist/chunk-7IO2KLSJ.cjs +0 -2
- package/dist/chunk-7IO2KLSJ.cjs.map +0 -1
- package/dist/chunk-AJUX7LYB.js +0 -2
- package/dist/chunk-AJUX7LYB.js.map +0 -1
- package/dist/chunk-B45EMB4Q.js +0 -2
- package/dist/chunk-B45EMB4Q.js.map +0 -1
- package/dist/chunk-CIS3YZSK.cjs +0 -2
- package/dist/chunk-CIS3YZSK.cjs.map +0 -1
- package/dist/chunk-EPBSLPRL.cjs.map +0 -1
- package/dist/chunk-ICYXODTQ.js +0 -2
- package/dist/chunk-ICYXODTQ.js.map +0 -1
- package/dist/chunk-JUDBIEZK.js +0 -2
- package/dist/chunk-JUDBIEZK.js.map +0 -1
- package/dist/chunk-K2JSAJAF.cjs +0 -2
- package/dist/chunk-K2JSAJAF.cjs.map +0 -1
- package/dist/chunk-K2KCQEER.js +0 -2
- package/dist/chunk-K2KCQEER.js.map +0 -1
- package/dist/chunk-K65TKDQ2.cjs +0 -2
- package/dist/chunk-K65TKDQ2.cjs.map +0 -1
- package/dist/chunk-S5A65JVL.cjs +0 -2
- package/dist/chunk-S5A65JVL.cjs.map +0 -1
- package/dist/chunk-SFVGMVIE.js +0 -2
- package/dist/chunk-SFVGMVIE.js.map +0 -1
- package/dist/chunk-T7TOEIOH.js +0 -2
- package/dist/chunk-T7TOEIOH.js.map +0 -1
- package/dist/chunk-TLUCO2ZN.cjs +0 -2
- package/dist/chunk-TLUCO2ZN.cjs.map +0 -1
- package/dist/chunk-WEZ5Q6YO.js +0 -2
- package/dist/chunk-WEZ5Q6YO.js.map +0 -1
- package/dist/chunk-Y34N5TWV.js +0 -2
- package/dist/chunk-Y34N5TWV.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,15 +3,12 @@
|
|
|
3
3
|
</div>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<i>Made with ❤️ by <a href="https://
|
|
6
|
+
<i>Made with ❤️ by <a href="https://gitlab.com/kenji.ccp-group">kenji.ccp-group</a> & contributors</i>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="https://
|
|
11
|
-
<img src="https://
|
|
12
|
-
</a>
|
|
13
|
-
<a href="https://github.com/lehnihon/bit-form/actions/workflows/ci.yml">
|
|
14
|
-
<img src="https://img.shields.io/github/actions/workflow/status/lehnihon/bit-form/ci.yml?branch=main&label=build&style=flat-square" alt="build" />
|
|
10
|
+
<a href="https://gitlab.com/kenji.ccp-group/bit-form/-/pipelines">
|
|
11
|
+
<img src="https://gitlab.com/kenji.ccp-group/bit-form/badges/main/pipeline.svg" alt="pipeline status" />
|
|
15
12
|
</a>
|
|
16
13
|
<a href="https://www.npmjs.com/package/@lehnihon/bit-form">
|
|
17
14
|
<img src="https://img.shields.io/npm/v/@lehnihon/bit-form?style=flat-square" alt="npm version" />
|
|
@@ -19,16 +16,16 @@
|
|
|
19
16
|
<a href="https://www.npmjs.com/package/@lehnihon/bit-form">
|
|
20
17
|
<img src="https://img.shields.io/npm/dm/@lehnihon/bit-form?style=flat-square" alt="npm downloads" />
|
|
21
18
|
</a>
|
|
22
|
-
<a href="https://
|
|
23
|
-
<img src="https://img.shields.io/
|
|
19
|
+
<a href="https://gitlab.com/kenji.ccp-group/bit-form/-/starrers">
|
|
20
|
+
<img src="https://img.shields.io/gitlab/stars/kenji.ccp-group/bit-form?style=flat-square" alt="stars" />
|
|
24
21
|
</a>
|
|
25
|
-
<a href="https://
|
|
26
|
-
<img src="https://img.shields.io/
|
|
22
|
+
<a href="https://gitlab.com/kenji.ccp-group/bit-form/-/forks">
|
|
23
|
+
<img src="https://img.shields.io/gitlab/forks/kenji.ccp-group/bit-form?style=flat-square" alt="forks" />
|
|
27
24
|
</a>
|
|
28
|
-
<a href="https://
|
|
29
|
-
<img src="https://img.shields.io/
|
|
25
|
+
<a href="https://gitlab.com/kenji.ccp-group/bit-form/-/issues">
|
|
26
|
+
<img src="https://img.shields.io/gitlab/issues/open/kenji.ccp-group/bit-form?style=flat-square" alt="issues" />
|
|
30
27
|
</a>
|
|
31
|
-
<a href="https://
|
|
28
|
+
<a href="https://gitlab.com/kenji.ccp-group/bit-form/-/blob/main/LICENSE">
|
|
32
29
|
<img src="https://img.shields.io/npm/l/@lehnihon/bit-form?style=flat-square" alt="license" />
|
|
33
30
|
</a>
|
|
34
31
|
<img src="https://img.shields.io/badge/TypeScript-007ACC?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript" />
|
package/dist/angular/index.cjs
CHANGED
|
@@ -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
|
|
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 _chunkH3RTOA6Xcjs = require('../chunk-H3RTOA6X.cjs');require('../chunk-W5CLDRRE.cjs');var _chunkU6UFULNScjs = require('../chunk-U6UFULNS.cjs');var _chunkH27ROY4Fcjs = require('../chunk-H27ROY4F.cjs');var _chunkBSGJ3T5Scjs = require('../chunk-BSGJ3T5S.cjs');var _chunkRHMJPKNVcjs = require('../chunk-RHMJPKNV.cjs');var _chunkH6HGYVRVcjs = require('../chunk-H6HGYVRV.cjs');require('../chunk-AV7YYSFI.cjs');var _chunkOWDDAM6Ccjs = require('../chunk-OWDDAM6C.cjs');require('../chunk-X3DGA5UC.cjs');var _chunk725CMNAVcjs = require('../chunk-725CMNAV.cjs');var _core = require('@angular/core');var R=new (0, _core.InjectionToken)("BIT_STORE");function ut(t){let e=_chunkU6UFULNScjs.d.call(void 0, t);try{_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{_optionalChain([e, 'access', _2 => _2.feature, 'optionalAccess', _3 => _3.cleanup, 'optionalCall', _4 => _4()])})}catch(r){if(!(r instanceof Error&&_optionalChain([r, 'access', _5 => _5.message, 'optionalAccess', _6 => _6.includes, 'call', _7 => _7("inject")])))throw r}return{provide:R,useValue:e}}function d(){let t=_core.inject.call(void 0, R,{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 mt(){let t=d(),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),i=_core.signal.call(void 0, null),s=_chunkH27ROY4Fcjs.c.call(void 0, t,n=>{r.set(n)});e.onDestroy(()=>s());let u=_core.computed.call(void 0, ()=>r().isValid),c=_core.computed.call(void 0, ()=>r().isSubmitting),p=_core.computed.call(void 0, ()=>r().isDirty),{controller:l,actions:S}=_chunkH27ROY4Fcjs.i.call(void 0, t,{clearSubmissionState:()=>{o.set(null),i.set(null)},setSubmissionResult:n=>{i.set(n)},setSubmissionError:n=>{o.set(n)}},{stopPropagation:!0});return{meta:{isValid:u,isDirty:p,isSubmitting:c,submitError:o.asReadonly(),lastResponse:i.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,...S}}function k(t){let e=_core.inject.call(void 0, R),r=_core.signal.call(void 0, e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,g=>{r.set(g)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{o(),_chunkH27ROY4Fcjs.j.call(void 0, e,t)});let i=_core.computed.call(void 0, ()=>r().value),s=_core.computed.call(void 0, ()=>_chunkH6HGYVRVcjs.a.call(void 0, r())),u=_core.computed.call(void 0, ()=>s().error),c=_core.computed.call(void 0, ()=>s().touched),p=_core.computed.call(void 0, ()=>s().invalid),l=_core.computed.call(void 0, ()=>s().isDirty),S=_core.computed.call(void 0, ()=>s().isValidating),y=_core.computed.call(void 0, ()=>s().isHidden),n=_core.computed.call(void 0, ()=>s().isRequired),{fieldController:B}=_chunkH27ROY4Fcjs.h.call(void 0, e,t),h=_core.computed.call(void 0, ()=>B.displayValue(i())),P=g=>{B.setValue(g)},x=()=>B.setBlur(),V=_core.computed.call(void 0, ()=>s().hasError);return{value:i,displayValue:h,setValue:P,setBlur:x,update:g=>P(_chunk725CMNAVcjs.a.call(void 0, g)?_nullishCoalesce(_optionalChain([g, 'access', _8 => _8.target, 'optionalAccess', _9 => _9.value]), () => (null)):g),onBlur:()=>B.setBlur(),meta:{error:u,touched:c,invalid:p,isDirty:l,isValidating:S,isHidden:y,isRequired:n,hasError:V}}}function Bt(t){let e=_core.inject.call(void 0, R),r=_core.inject.call(void 0, _core.DestroyRef),o=_chunkH27ROY4Fcjs.g.call(void 0, e,t),i=_core.signal.call(void 0, o.readItems()),s=e.observe.subscribePath(t,()=>{i.set(o.readItems())});return r.onDestroy(()=>{s(),_chunkH27ROY4Fcjs.k.call(void 0, e,`${t}.`)}),{fields:_core.computed.call(void 0, ()=>o.getFields(i())),length:_core.computed.call(void 0, ()=>i().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 vt(){let t=d(),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,i=>{r.set(i)});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 ht(t){let e=d(),r=e.read.getScopeStatus(t),o=_core.signal.call(void 0, r),i=_chunkBSGJ3T5Scjs.a.call(void 0, e,t,y=>{o.set(y)});_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>i());let u=async()=>{let y=await e.feature.validate({scope:t}),n=e.read.getScopeErrors(t);return{valid:y,errors:n}},c=()=>e.read.getScopeErrors(t),p=_core.computed.call(void 0, ()=>!o().hasErrors),l=_core.computed.call(void 0, ()=>o().isDirty),S=_core.computed.call(void 0, ()=>o().errors);return{scopeName:t,status:o,errors:S,validate:u,getErrors:c,isValid:p,isDirty:l}}function It(t){if(t.length===0)throw new Error("injectBitSteps: scopeNames must not be empty");let e=d(),r=_core.signal.call(void 0, 0),o=_core.computed.call(void 0, ()=>_nullishCoalesce(t[r()], () => (""))),i=()=>_nullishCoalesce(t[r()], () => ("")),s=_core.signal.call(void 0, e.read.getScopeStatus(i())),u=i(),c=e.observe.subscribeScopeStatus(u,a=>{i()===u&&(_chunkRHMJPKNVcjs.b.call(void 0, s(),a)||s.set(a))}),p=()=>{let a=i(),m=e.observe.subscribeScopeStatus(a,b=>{i()===a&&(_chunkRHMJPKNVcjs.b.call(void 0, s(),b)||s.set(b))}),F=c;c=m,u=a,F()};_core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>c());let S=async()=>{let a=i(),m=r(),F=await e.feature.validate({scope:a});if(r()!==m){let j=i();return{valid:await e.feature.validate({scope:j}),errors:e.read.getScopeErrors(j)}}let b=e.read.getScopeErrors(a);return{valid:F,errors:b}},y=()=>e.read.getScopeErrors(i()),n=async()=>{let a=r(),m=_nullishCoalesce(t[a], () => (""));if(!m)return!1;let F=e.read.getScopeFields(m);if(e.feature.hasValidationsInProgress(F))return!1;let b=await e.feature.validate({scope:m});if(r()!==a)return!1;if(b){let j=Math.min(a+1,t.length-1);r.set(j),s.set(e.read.getScopeStatus(_nullishCoalesce(t[j], () => ("")))),p()}else{let j=e.read.getScopeErrors(m),I=Object.keys(j);I.length>0&&e.write.markFieldsTouched(I),s.set(e.read.getScopeStatus(m))}return b},B=()=>{let a=Math.max(r()-1,0);r.set(a),s.set(e.read.getScopeStatus(_nullishCoalesce(t[a], () => ("")))),p()},h=a=>{let m=Math.max(0,Math.min(a-1,t.length-1));r.set(m),s.set(e.read.getScopeStatus(_nullishCoalesce(t[m], () => ("")))),p()},P=_core.computed.call(void 0, ()=>r()+1),x=_core.computed.call(void 0, ()=>r()===0),V=_core.computed.call(void 0, ()=>r()>=t.length-1),H=_core.computed.call(void 0, ()=>!s().hasErrors),O=_core.computed.call(void 0, ()=>s().isDirty),g=_core.computed.call(void 0, ()=>s().errors);return{step:P,stepIndex:r,scope:o,next:n,prev:B,goTo:h,isFirst:x,isLast:V,status:s,errors:g,isValid:H,isDirty:O,validate:S,getErrors:y}}function kt(t){let e=d(),r=_core.inject.call(void 0, _core.DestroyRef),o=_core.signal.call(void 0, _chunkOWDDAM6Ccjs.f.call(void 0, e.read.getState().values,t),{equal:_chunkOWDDAM6Ccjs.c}),i=e.observe.subscribePath(t,s=>{o.set(s)});return r.onDestroy(i),o.asReadonly()}function Mt(t,e,r){let o=_core.inject.call(void 0, R),i=k(t),s=null,u=_core.signal.call(void 0, !1),c={current:0},p={setLoading:n=>u.set(n),setError:(n,B)=>o.write.setError(n,B),setValue:n=>i.setValue(n),getUploadKey:()=>s,setUploadKey:n=>{s=n},onCallbackError:n=>o.read.config.onUnhandledError(n,"upload")},l=_chunkH3RTOA6Xcjs.a.call(void 0, t,e,p,c),S=_chunkH3RTOA6Xcjs.b.call(void 0, t,r,p,c);return _core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>{c.current++,s=null}),{value:_core.computed.call(void 0, ()=>i.value()),setValue:i.setValue,error:_core.computed.call(void 0, ()=>i.meta.error()),isValidating:_core.computed.call(void 0, ()=>!!i.meta.isValidating()||u()),upload:l,remove:S}}function qt(){let t=d(),e=_core.signal.call(void 0, t.read.getPersistMetadata()),r=_chunkH27ROY4Fcjs.f.call(void 0, t,c=>{e.set(c)});return _core.inject.call(void 0, _core.DestroyRef).onDestroy(()=>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 = Bt; exports.injectBitField = k; exports.injectBitForm = mt; exports.injectBitHistory = vt; exports.injectBitPersist = qt; exports.injectBitScope = ht; exports.injectBitSteps = It; exports.injectBitUpload = Mt; exports.injectBitWatch = kt; exports.provideBitStore = ut; exports.useBitStore = d;
|
|
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","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
|
+
{"version":3,"sources":["/builds/kenji.ccp-group/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","adapted","createFrameworkStoreAdapter","inject","error","useBitStore","injectBitForm","destroyRef","stateSignal","signal","submitError","lastResponse","sub","observeFormMetaSnapshot","nextMeta","isValid","computed","isSubmitting","isDirty","controller","actions","createFrameworkFormBinding","result","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":"AAAA,0uBAAkD,iCAA8B,yDAA0C,yDAAoF,yDAA0C,yDAAwD,yDAA0C,iCAA8B,yDAAiD,iCAA8B,yDAA0C,qCCApb,IAIhDA,CAAAA,CAAkB,IAAIC,yBAAAA,CACjC,WACF,CAAA,CAEO,SAASC,EAAAA,CACdC,CAAAA,CACU,CACV,IAAMC,CAAAA,CAAUC,iCAAAA,CAAoC,CAAA,CAEpD,GAAI,CACiBC,0BAAAA,gBAAiB,CAAA,CACzB,SAAA,CAAU,CAAA,CAAA,EAAM,iBACzBF,CAAAA,qBAAQ,OAAA,6BAAS,OAAA,0BAAA,CAAU,GAC7B,CAAC,CACH,CAAA,KAAA,CAASG,CAAAA,CAAgB,CACvB,EAAA,CAAI,CAAA,CAAAA,EAAAA,WAAiB,KAAA,kBAASA,CAAAA,qBAAM,OAAA,6BAAS,QAAA,mBAAS,QAAQ,GAAA,CAAA,CAG5D,MAAMA,CAEV,CAEA,MAAO,CACL,OAAA,CAASP,CAAAA,CACT,QAAA,CAAUI,CACZ,CACF,CAEO,SAASI,CAAAA,CAAAA,CAAgC,CAC9C,IAAML,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,CC3CA,SAKgBM,EAAAA,CAAAA,CAA0D,CACxE,IAAMN,CAAAA,CAAQK,CAAAA,CAAe,CAAA,CACvBE,CAAAA,CAAaJ,0BAAAA,gBAAiB,CAAA,CAC9BK,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,CAAwBb,CAAQc,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,CAC9BrB,CACA,CACE,oBAAA,CAAsB,CAAA,CAAA,EAAM,CAC1BU,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,CAAqBlB,CAAAA,EAAU,CAC7BM,CAAAA,CAAY,GAAA,CAAIN,CAAK,CACvB,CACF,CAAA,CACA,CAAE,eAAA,CAAiB,CAAA,CAAK,CAC1B,CAAA,CAUA,MAAO,CAEL,IAAA,CAVW,CACX,OAAA,CAAAW,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,SAYgBG,CAAAA,CAIdC,CAAAA,CAAyC,CACzC,IAAMxB,CAAAA,CAAQG,0BAAAA,CAAsB,CAAA,CAE9BK,CAAAA,CAAcC,0BAAAA,CAAOT,CAAM,IAAA,CAAK,aAAA,CAAcwB,CAAI,CAAC,CAAA,CAEnDC,CAAAA,CAAczB,CAAAA,CAAM,OAAA,CAAQ,mBAAA,CAAoBwB,CAAAA,CAAOE,CAAAA,EAAc,CACzElB,CAAAA,CAAY,GAAA,CAAIkB,CAAS,CAC3B,CAAC,CAAA,CAEDvB,0BAAAA,gBAAiB,CAAA,CAAE,SAAA,CAAU,CAAA,CAAA,EAAM,CACjCsB,CAAAA,CAAY,CAAA,CACZE,iCAAAA,CAAuB3B,CAAOwB,CAAc,CAC9C,CAAC,CAAA,CAED,IAAMI,CAAAA,CAAQZ,4BAAAA,CAAS,CAAA,EAAMR,CAAAA,CAAY,CAAA,CAAE,KAA+B,CAAA,CACpEqB,CAAAA,CAAYb,4BAAAA,CAAS,CAAA,EAAMc,iCAAAA,CAAgBtB,CAAY,CAAC,CAAC,CAAA,CACzDJ,CAAAA,CAAQY,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,KAAK,CAAA,CACxCE,CAAAA,CAAUf,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CG,CAAAA,CAAUhB,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CX,CAAAA,CAAUF,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,OAAO,CAAA,CAC5CI,CAAAA,CAAejB,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,YAAY,CAAA,CACtDK,CAAAA,CAAWlB,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,QAAQ,CAAA,CAC9CM,CAAAA,CAAanB,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,UAAU,CAAA,CAElD,CAAE,eAAA,CAAAO,CAAgB,CAAA,CAAIC,iCAAAA,CAAkCrC,CAAOwB,CAAI,CAAA,CAEnEc,CAAAA,CAAetB,4BAAAA,CAAS,CAAA,EAAMoB,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,CAAW1B,4BAAAA,CAAS,CAAA,EAAMa,CAAAA,CAAU,CAAA,CAAE,QAAQ,CAAA,CAOpD,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,CAStE,MAAA,CAZa,CAAA,CAAA,EAAMP,CAAAA,CAAgB,OAAA,CAAQ,CAAA,CAc3C,IAAA,CAAM,CACJ,KAAA,CAAAhC,CAAAA,CACA,OAAA,CAAA2B,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,OAAA,CAAAd,CAAAA,CACA,YAAA,CAAAe,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAO,CACF,CACF,CACF,CC/EA,SAUgBG,EAAAA,CAGdrB,CAAAA,CAAS,CACT,IAAMxB,CAAAA,CAAQG,0BAAAA,CAAsB,CAAA,CAC9BI,CAAAA,CAAaJ,0BAAAA,gBAAiB,CAAA,CAC9BgB,CAAAA,CAAa2B,iCAAAA,CAA6B9C,CAAOwB,CAAI,CAAA,CAErDuB,CAAAA,CAAYtC,0BAAAA,CAChBU,CAAW,SAAA,CAAU,CACvB,CAAA,CAEM6B,CAAAA,CAAQhD,CAAAA,CAAM,OAAA,CAAQ,aAAA,CAAcwB,CAAAA,CAAM,CAAA,CAAA,EAAM,CACpDuB,CAAAA,CAAU,GAAA,CAAI5B,CAAAA,CAAW,SAAA,CAAU,CAAC,CACtC,CAAC,CAAA,CAED,OAAAZ,CAAAA,CAAW,SAAA,CAAU,CAAA,CAAA,EAAM,CACzByC,CAAAA,CAAM,CAAA,CACNC,iCAAAA,CAAwBjD,CAAO,CAAA,EAAA","file":"/builds/kenji.ccp-group/bit-form/dist/angular/index.cjs","sourcesContent":[null,"import { DestroyRef, 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 const adapted = createFrameworkStoreAdapter<T>(store);\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => {\n adapted.feature?.cleanup?.();\n });\n } catch (error: unknown) {\n if (error instanceof Error && error.message?.includes(\"inject\")) {\n // Called outside injection context (e.g., root module)\n } else {\n throw error;\n }\n }\n\n return {\n provide: BIT_STORE_TOKEN,\n useValue: adapted,\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 onBlur = () => fieldController.setBlur();\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 onBlur,\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"]}
|
package/dist/angular/index.d.cts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Provider, Signal } from '@angular/core';
|
|
3
|
-
import { b as BitFrameworkStoreApi,
|
|
3
|
+
import { b as BitFrameworkStoreApi, f as BitStoreApi } from '../store-api-types-D7i0KWbr.cjs';
|
|
4
4
|
import '../bus-DzTqgkZ4.cjs';
|
|
5
|
-
import { d as BitPath, e as BitPathValue,
|
|
6
|
-
import { V as ValidateScopeResult, S as ScopeStatus } from '../runtime-types-
|
|
7
|
-
import {
|
|
5
|
+
import { d as BitPath, e as BitPathValue, b as BitErrors, h as BitTouched, D as DeepPartial, f as BitPersistMetadata, a as BitArrayPath, B as BitArrayItem } from '../state-types-8bUndWfg.cjs';
|
|
6
|
+
import { V as ValidateScopeResult, S as ScopeStatus } from '../runtime-types-BLCkMgcy.cjs';
|
|
7
|
+
import { c as BitValidationOptions } from '../meta-types-1Xcht8hj.cjs';
|
|
8
8
|
import { B as BitFieldInputEvent } from '../field-binding-X5TkvfUt.cjs';
|
|
9
9
|
import { c as BitHistoryAdapterResult, d as BitPersistAdapterResult, e as BitStepsAdapterResult, f as BitUploadAdapterResult, a as BitArrayBindingField, g as BitUploadFn, b as BitDeleteUploadFn } from '../upload-C4JqIaU2.cjs';
|
|
10
10
|
import '../types-CUXh7PqD.cjs';
|
|
11
|
-
import '../config-types-
|
|
11
|
+
import '../config-types-mZFlp2Bi.cjs';
|
|
12
12
|
|
|
13
13
|
declare function provideBitStore<T extends object>(store: BitFrameworkStoreApi<T> | BitStoreApi<T>): Provider;
|
|
14
14
|
declare function useBitStore<T extends object>(): BitFrameworkStoreApi<T>;
|
|
@@ -36,6 +36,7 @@ interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TFo
|
|
|
36
36
|
setValue: (val: BitPathValue<TForm, P> | string | number | null | undefined) => void;
|
|
37
37
|
setBlur: () => void;
|
|
38
38
|
update: (e: BitFieldInputEvent) => void;
|
|
39
|
+
onBlur: () => void;
|
|
39
40
|
meta: InjectBitFieldMeta;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
@@ -113,7 +114,6 @@ interface InjectBitScopeResult {
|
|
|
113
114
|
getErrors: () => Record<string, string>;
|
|
114
115
|
isValid: Signal<boolean>;
|
|
115
116
|
isDirty: Signal<boolean>;
|
|
116
|
-
unsubscribe: () => void;
|
|
117
117
|
}
|
|
118
118
|
declare function injectBitScope(scopeName: string): InjectBitScopeResult;
|
|
119
119
|
|
|
@@ -131,4 +131,4 @@ declare function injectBitUpload<TMetadata extends Record<string, unknown> = Rec
|
|
|
131
131
|
|
|
132
132
|
declare function injectBitPersist<T extends object = any>(): InjectBitPersistResult;
|
|
133
133
|
|
|
134
|
-
export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitHistoryResult, type InjectBitPersistResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitPersist, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
|
|
134
|
+
export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitFormResult, type InjectBitHistoryResult, type InjectBitPersistResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitPersist, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
|
package/dist/angular/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { Provider, Signal } from '@angular/core';
|
|
3
|
-
import { b as BitFrameworkStoreApi,
|
|
3
|
+
import { b as BitFrameworkStoreApi, f as BitStoreApi } from '../store-api-types-CgRVo2DA.js';
|
|
4
4
|
import '../bus-BFOBGmd9.js';
|
|
5
|
-
import { d as BitPath, e as BitPathValue,
|
|
6
|
-
import { V as ValidateScopeResult, S as ScopeStatus } from '../runtime-types-
|
|
7
|
-
import {
|
|
5
|
+
import { d as BitPath, e as BitPathValue, b as BitErrors, h as BitTouched, D as DeepPartial, f as BitPersistMetadata, a as BitArrayPath, B as BitArrayItem } from '../state-types-8bUndWfg.js';
|
|
6
|
+
import { V as ValidateScopeResult, S as ScopeStatus } from '../runtime-types-BLCkMgcy.js';
|
|
7
|
+
import { c as BitValidationOptions } from '../meta-types-1Xcht8hj.js';
|
|
8
8
|
import { B as BitFieldInputEvent } from '../field-binding-Bi1g-D8X.js';
|
|
9
9
|
import { c as BitHistoryAdapterResult, d as BitPersistAdapterResult, e as BitStepsAdapterResult, f as BitUploadAdapterResult, a as BitArrayBindingField, g as BitUploadFn, b as BitDeleteUploadFn } from '../upload-ao6skK9K.js';
|
|
10
10
|
import '../types-CUXh7PqD.js';
|
|
11
|
-
import '../config-types-
|
|
11
|
+
import '../config-types-DB6FaTiZ.js';
|
|
12
12
|
|
|
13
13
|
declare function provideBitStore<T extends object>(store: BitFrameworkStoreApi<T> | BitStoreApi<T>): Provider;
|
|
14
14
|
declare function useBitStore<T extends object>(): BitFrameworkStoreApi<T>;
|
|
@@ -36,6 +36,7 @@ interface InjectBitFieldResult<TForm extends object = any, P extends BitPath<TFo
|
|
|
36
36
|
setValue: (val: BitPathValue<TForm, P> | string | number | null | undefined) => void;
|
|
37
37
|
setBlur: () => void;
|
|
38
38
|
update: (e: BitFieldInputEvent) => void;
|
|
39
|
+
onBlur: () => void;
|
|
39
40
|
meta: InjectBitFieldMeta;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
@@ -113,7 +114,6 @@ interface InjectBitScopeResult {
|
|
|
113
114
|
getErrors: () => Record<string, string>;
|
|
114
115
|
isValid: Signal<boolean>;
|
|
115
116
|
isDirty: Signal<boolean>;
|
|
116
|
-
unsubscribe: () => void;
|
|
117
117
|
}
|
|
118
118
|
declare function injectBitScope(scopeName: string): InjectBitScopeResult;
|
|
119
119
|
|
|
@@ -131,4 +131,4 @@ declare function injectBitUpload<TMetadata extends Record<string, unknown> = Rec
|
|
|
131
131
|
|
|
132
132
|
declare function injectBitPersist<T extends object = any>(): InjectBitPersistResult;
|
|
133
133
|
|
|
134
|
-
export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitHistoryResult, type InjectBitPersistResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitPersist, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
|
|
134
|
+
export { type InjectBitFieldMeta, type InjectBitFieldResult, type InjectBitFormResult, type InjectBitHistoryResult, type InjectBitPersistResult, type InjectBitStepsResult, type InjectBitUploadResult, ScopeStatus, ValidateScopeResult, injectBitArray, injectBitField, injectBitForm, injectBitHistory, injectBitPersist, injectBitScope, injectBitSteps, injectBitUpload, injectBitWatch, provideBitStore, useBitStore };
|
package/dist/angular/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as tt,b as et}from"../chunk-CATA7YEV.js";import"../chunk-5NA2TFPG.js";import{d as W}from"../chunk-7T7L2TZX.js";import{c as z,f as L,g as G,h as J,i as Q,j as X,k as Y}from"../chunk-L42NQRVD.js";import{a as Z}from"../chunk-W2E5UIXT.js";import{b as E,f as K,g as C}from"../chunk-UIKO6GGW.js";import{a as N}from"../chunk-L57KMBXS.js";import"../chunk-Y7TQTZY7.js";import{c as _,f as q}from"../chunk-UBVVBVLS.js";import"../chunk-MBEQLBJB.js";import{a as $}from"../chunk-DGEGYNQL.js";import{DestroyRef as ct,inject as rt,InjectionToken as lt}from"@angular/core";var R=new lt("BIT_STORE");function ut(t){let e=W(t);try{rt(ct).onDestroy(()=>{e.feature?.cleanup?.()})}catch(r){if(!(r instanceof Error&&r.message?.includes("inject")))throw r}return{provide:R,useValue:e}}function d(){let t=rt(R,{optional:!0});if(!t)throw new Error('BitForm: N\xE3o foi poss\xEDvel encontrar a BitStore. Certifique-se de que voc\xEA adicionou "provideBitStore(store)" nos providers do seu componente.');return t}import{signal as D,computed as w,inject as dt,DestroyRef as pt}from"@angular/core";function mt(){let t=d(),e=dt(pt),r=D({isValid:!0,isDirty:!1,isSubmitting:!1}),o=D(null),i=D(null),s=z(t,n=>{r.set(n)});e.onDestroy(()=>s());let u=w(()=>r().isValid),c=w(()=>r().isSubmitting),p=w(()=>r().isDirty),{controller:l,actions:S}=Q(t,{clearSubmissionState:()=>{o.set(null),i.set(null)},setSubmissionResult:n=>{i.set(n)},setSubmissionError:n=>{o.set(n)}},{stopPropagation:!0});return{meta:{isValid:u,isDirty:p,isSubmitting:c,submitError:o.asReadonly(),lastResponse:i.asReadonly()},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:l.onSubmit,reset:l.reset,...S}}import{DestroyRef as ft,computed as f,inject as ot,signal as St}from"@angular/core";function k(t){let e=ot(R),r=St(e.read.getFieldState(t)),o=e.observe.subscribeFieldState(t,g=>{r.set(g)});ot(ft).onDestroy(()=>{o(),X(e,t)});let i=f(()=>r().value),s=f(()=>N(r())),u=f(()=>s().error),c=f(()=>s().touched),p=f(()=>s().invalid),l=f(()=>s().isDirty),S=f(()=>s().isValidating),y=f(()=>s().isHidden),n=f(()=>s().isRequired),{fieldController:B}=J(e,t),h=f(()=>B.displayValue(i())),P=g=>{B.setValue(g)},x=()=>B.setBlur(),V=f(()=>s().hasError);return{value:i,displayValue:h,setValue:P,setBlur:x,update:g=>P($(g)?g.target?.value??null:g),onBlur:()=>B.setBlur(),meta:{error:u,touched:c,invalid:p,isDirty:l,isValidating:S,isHidden:y,isRequired:n,hasError:V}}}import{computed as st,DestroyRef as yt,inject as it,signal as gt}from"@angular/core";function Bt(t){let e=it(R),r=it(yt),o=G(e,t),i=gt(o.readItems()),s=e.observe.subscribePath(t,()=>{i.set(o.readItems())});return r.onDestroy(()=>{s(),Y(e,`${t}.`)}),{fields:st(()=>o.getFields(i())),length:st(()=>i().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 T,DestroyRef as Rt,inject as bt,signal as jt}from"@angular/core";function vt(){let t=d(),e=bt(Rt),r=jt(K(t)),o=C(t,i=>{r.set(i)});return e.onDestroy(()=>o()),{canUndo:T(()=>r().canUndo),canRedo:T(()=>r().canRedo),historyIndex:T(()=>r().historyIndex),historySize:T(()=>r().historySize),undo:()=>t.feature.undo(),redo:()=>t.feature.redo()}}import{computed as U,DestroyRef as Ft,inject as Pt,signal as Tt}from"@angular/core";function ht(t){let e=d(),r=e.read.getScopeStatus(t),o=Tt(r),i=Z(e,t,y=>{o.set(y)});Pt(Ft).onDestroy(()=>i());let u=async()=>{let y=await e.feature.validate({scope:t}),n=e.read.getScopeErrors(t);return{valid:y,errors:n}},c=()=>e.read.getScopeErrors(t),p=U(()=>!o().hasErrors),l=U(()=>o().isDirty),S=U(()=>o().errors);return{scopeName:t,status:o,errors:S,validate:u,getErrors:c,isValid:p,isDirty:l}}import{computed as v,DestroyRef as xt,inject as Vt,signal as nt}from"@angular/core";function It(t){if(t.length===0)throw new Error("injectBitSteps: scopeNames must not be empty");let e=d(),r=nt(0),o=v(()=>t[r()]??""),i=()=>t[r()]??"",s=nt(e.read.getScopeStatus(i())),u=i(),c=e.observe.subscribeScopeStatus(u,a=>{i()===u&&(E(s(),a)||s.set(a))}),p=()=>{let a=i(),m=e.observe.subscribeScopeStatus(a,b=>{i()===a&&(E(s(),b)||s.set(b))}),F=c;c=m,u=a,F()};Vt(xt).onDestroy(()=>c());let S=async()=>{let a=i(),m=r(),F=await e.feature.validate({scope:a});if(r()!==m){let j=i();return{valid:await e.feature.validate({scope:j}),errors:e.read.getScopeErrors(j)}}let b=e.read.getScopeErrors(a);return{valid:F,errors:b}},y=()=>e.read.getScopeErrors(i()),n=async()=>{let a=r(),m=t[a]??"";if(!m)return!1;let F=e.read.getScopeFields(m);if(e.feature.hasValidationsInProgress(F))return!1;let b=await e.feature.validate({scope:m});if(r()!==a)return!1;if(b){let j=Math.min(a+1,t.length-1);r.set(j),s.set(e.read.getScopeStatus(t[j]??"")),p()}else{let j=e.read.getScopeErrors(m),I=Object.keys(j);I.length>0&&e.write.markFieldsTouched(I),s.set(e.read.getScopeStatus(m))}return b},B=()=>{let a=Math.max(r()-1,0);r.set(a),s.set(e.read.getScopeStatus(t[a]??"")),p()},h=a=>{let m=Math.max(0,Math.min(a-1,t.length-1));r.set(m),s.set(e.read.getScopeStatus(t[m]??"")),p()},P=v(()=>r()+1),x=v(()=>r()===0),V=v(()=>r()>=t.length-1),H=v(()=>!s().hasErrors),O=v(()=>s().isDirty),g=v(()=>s().errors);return{step:P,stepIndex:r,scope:o,next:n,prev:B,goTo:h,isFirst:x,isLast:V,status:s,errors:g,isValid:H,isDirty:O,validate:S,getErrors:y}}import{DestroyRef as Et,signal as Dt,inject as wt}from"@angular/core";function kt(t){let e=d(),r=wt(Et),o=Dt(q(e.read.getState().values,t),{equal:_}),i=e.observe.subscribePath(t,s=>{o.set(s)});return r.onDestroy(i),o.asReadonly()}import{computed as A,DestroyRef as Ut,inject as at,signal as At}from"@angular/core";function Mt(t,e,r){let o=at(R),i=k(t),s=null,u=At(!1),c={current:0},p={setLoading:n=>u.set(n),setError:(n,B)=>o.write.setError(n,B),setValue:n=>i.setValue(n),getUploadKey:()=>s,setUploadKey:n=>{s=n},onCallbackError:n=>o.read.config.onUnhandledError(n,"upload")},l=tt(t,e,p,c),S=et(t,r,p,c);return at(Ut).onDestroy(()=>{c.current++,s=null}),{value:A(()=>i.value()),setValue:i.setValue,error:A(()=>i.meta.error()),isValidating:A(()=>!!i.meta.isValidating()||u()),upload:l,remove:S}}import{computed as M,DestroyRef as Ht,inject as Ot,signal as _t}from"@angular/core";function qt(){let t=d(),e=_t(t.read.getPersistMetadata()),r=L(t,c=>{e.set(c)});return Ot(Ht).onDestroy(()=>r()),{restore:async()=>t.feature.restorePersisted(),save:async()=>{await t.feature.forceSave()},clear:async()=>{await t.feature.clearPersisted()},meta:{isSaving:M(()=>e().isSaving),isRestoring:M(()=>e().isRestoring),error:M(()=>e().error)}}}export{Bt as injectBitArray,k as injectBitField,mt as injectBitForm,vt as injectBitHistory,qt as injectBitPersist,ht as injectBitScope,It as injectBitSteps,Mt as injectBitUpload,kt as injectBitWatch,ut as provideBitStore,d 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 { 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);\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 = (scopeName: string) => {\n const newStatus = store.read.getScopeStatus(scopeName);\n const current = status();\n if (getCurrentScope() === scopeName && !isScopeStatusEqual(current, newStatus)) {\n status.set(newStatus);\n }\n };\n\n let unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n () => updateStatus(getCurrentScope()),\n );\n\n const rebindScopeSubscription = () => {\n unsubscribe();\n unsubscribe = store.observe.subscribeScopeStatus(\n getCurrentScope(),\n () => updateStatus(getCurrentScope()),\n );\n };\n\n const destroyRef = inject(DestroyRef);\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 type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { injectBitField } from \"./inject-bit-field\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport type { InjectBitUploadResult } from \"./types\";\n\nexport function injectBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\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 onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\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);\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":"qeAAA,OAAS,UAAAA,GAAQ,kBAAAC,OAAgC,gBAI1C,IAAMC,EAAkB,IAAIC,GACjC,WACF,EAEO,SAASC,GACdC,EACU,CACV,MAAO,CACL,QAASH,EACT,SAAUI,EAA+BD,CAAK,CAChD,CACF,CAEO,SAASE,GAAgC,CAC9C,IAAMF,EAAQG,GAAON,EAAiB,CAAE,SAAU,EAAK,CAAC,EAExD,GAAI,CAACG,EACH,MAAM,IAAI,MACR,wJAEF,EAGF,OAAOA,CACT,CC5BA,OAAS,UAAAI,EAAQ,YAAAC,EAAU,UAAAC,GAAQ,cAAAC,OAAkB,gBAK9C,SAASC,IAA0D,CACxE,IAAMC,EAAQC,EAAe,EACvBC,EAAaC,GAAOC,EAAU,EAC9BC,EAAcC,EAAO,CACzB,QAAS,GACT,QAAS,GACT,aAAc,EAChB,CAAC,EACKC,EAAcD,EAAqB,IAAI,EACvCE,EAAeF,EAAgB,IAAI,EAEnCG,EAAMC,EAAwBV,EAAQW,GAAa,CACvDN,EAAY,IAAIM,CAAQ,CAC1B,CAAC,EAEDT,EAAW,UAAU,IAAMO,EAAI,CAAC,EAEhC,IAAMG,EAAUC,EAAS,IAAMR,EAAY,EAAE,OAAO,EAC9CS,EAAeD,EAAS,IAAMR,EAAY,EAAE,YAAY,EACxDU,EAAUF,EAAS,IAAMR,EAAY,EAAE,OAAO,EAE9C,CAAE,WAAAW,EAAY,QAAAC,CAAQ,EAAIC,EAC9BlB,EACA,CACE,qBAAsB,IAAM,CAC1BO,EAAY,IAAI,IAAI,EACpBC,EAAa,IAAI,IAAI,CACvB,EACA,oBAAsBW,GAAW,CAC/BX,EAAa,IAAIW,CAAM,CACzB,EACA,mBAAqBC,GAAU,CAC7Bb,EAAY,IAAIa,CAAK,CACvB,CACF,EACA,CAAE,gBAAiB,EAAK,CAC1B,EAUA,MAAO,CAEL,KAVW,CACX,QAAAR,EACA,QAAAG,EACA,aAAAD,EACA,YAAaP,EAAY,WAAW,EACpC,aAAcC,EAAa,WAAW,CACxC,EAME,UAAWQ,EAAW,UACtB,UAAWA,EAAW,UACtB,WAAYA,EAAW,WACvB,eAAgBA,EAAW,eAE3B,OAAQA,EAAW,OACnB,SAAUA,EAAW,SACrB,MAAOA,EAAW,MAClB,GAAGC,CACL,CACF,CCjEA,OAAS,cAAAI,GAAY,YAAAC,EAAU,UAAAC,GAAQ,UAAAC,OAAc,gBAY9C,SAASC,EAIdC,EAAyC,CACzC,IAAMC,EAAQC,GAAOC,CAAe,EAE9BC,EAAcC,GAAOJ,EAAM,KAAK,cAAcD,CAAI,CAAC,EAEnDM,EAAcL,EAAM,QAAQ,oBAAoBD,EAAOO,GAAc,CACzEH,EAAY,IAAIG,CAAS,CAC3B,CAAC,EAEDL,GAAOM,EAAU,EAAE,UAAU,IAAM,CACjCF,EAAY,EACZG,EAAuBR,EAAOD,CAAc,CAC9C,CAAC,EAED,IAAMU,EAAQC,EAAS,IAAMP,EAAY,EAAE,KAA+B,EACpEQ,EAAYD,EAAS,IAAME,EAAgBT,EAAY,CAAC,CAAC,EACzDU,EAAQH,EAAS,IAAMC,EAAU,EAAE,KAAK,EACxCG,EAAUJ,EAAS,IAAMC,EAAU,EAAE,OAAO,EAC5CI,EAAUL,EAAS,IAAMC,EAAU,EAAE,OAAO,EAC5CK,EAAUN,EAAS,IAAMC,EAAU,EAAE,OAAO,EAC5CM,EAAeP,EAAS,IAAMC,EAAU,EAAE,YAAY,EACtDO,EAAWR,EAAS,IAAMC,EAAU,EAAE,QAAQ,EAC9CQ,EAAaT,EAAS,IAAMC,EAAU,EAAE,UAAU,EAElD,CAAE,gBAAAS,CAAgB,EAAIC,EAAkCrB,EAAOD,CAAI,EAEnEuB,EAAeZ,EAAS,IAAMU,EAAgB,aAAaX,EAAM,CAAC,CAAC,EAEnEc,EACJC,GACG,CACHJ,EAAgB,SAASI,CAAG,CAC9B,EAEMC,EAAU,IAAML,EAAgB,QAAQ,EAExCM,EAAWhB,EAAS,IAAMC,EAAU,EAAE,QAAQ,EAKpD,MAAO,CAEL,MAAAF,EACA,aAAAa,EACA,SAAAC,EACA,QAAAE,EACA,OATcE,GACdJ,EAASK,EAA2BD,CAAC,EAAKA,EAAE,QAAQ,OAAS,KAAQA,CAAC,EAUtE,KAAM,CACJ,MAAAd,EACA,QAAAC,EACA,QAAAC,EACA,QAAAC,EACA,aAAAC,EACA,SAAAC,EACA,WAAAC,EACA,SAAAO,CACF,CACF,CACF,CC5EA,OAAS,YAAAG,GAAU,cAAAC,GAAY,UAAAC,GAAQ,UAAAC,OAAc,gBAU9C,SAASC,GAGdC,EAAS,CACT,IAAMC,EAAQC,GAAOC,CAAe,EAC9BC,EAAaF,GAAOG,EAAU,EAC9BC,EAAaC,EAA6BN,EAAOD,CAAI,EAErDQ,EAAYC,GAChBH,EAAW,UAAU,CACvB,EAEMI,EAAQT,EAAM,QAAQ,cAAcD,EAAM,IAAM,CACpDQ,EAAU,IAAIF,EAAW,UAAU,CAAC,CACtC,CAAC,EAED,OAAAF,EAAW,UAAU,IAAM,CACzBM,EAAM,EACNC,EAAwBV,EAAO,GAAGD,CAAc,GAAG,CACrD,CAAC,EAEM,CACL,OAAQY,GAAS,IAAMN,EAAW,UAAUE,EAAU,CAAC,CAAC,EACxD,OAAQI,GAAS,IAAMJ,EAAU,EAAE,MAAM,EACzC,OAAQF,EAAW,OACnB,QAASA,EAAW,QACpB,OAAQA,EAAW,OACnB,OAAQA,EAAW,OACnB,KAAMA,EAAW,KACjB,KAAMA,EAAW,KACjB,QAASA,EAAW,QACpB,MAAOA,EAAW,KACpB,CACF,CC3CA,OAAS,YAAAO,EAAU,cAAAC,GAAY,UAAAC,GAAQ,UAAAC,OAAc,gBAK9C,SAASC,IAEY,CAC1B,IAAMC,EAAQC,EAAe,EACvBC,EAAaC,GAAOC,EAAU,EAE9BC,EAAOC,GAAOC,EAAwBP,CAAK,CAAC,EAE5CQ,EAAMC,EAA2BT,EAAQU,GAAa,CAC1DL,EAAK,IAAIK,CAAQ,CACnB,CAAC,EAED,OAAAR,EAAW,UAAU,IAAMM,EAAI,CAAC,EAEzB,CACL,QAASG,EAAS,IAAMN,EAAK,EAAE,OAAO,EACtC,QAASM,EAAS,IAAMN,EAAK,EAAE,OAAO,EACtC,aAAcM,EAAS,IAAMN,EAAK,EAAE,YAAY,EAChD,YAAaM,EAAS,IAAMN,EAAK,EAAE,WAAW,EAC9C,KAAM,IAAML,EAAM,QAAQ,KAAK,EAC/B,KAAM,IAAMA,EAAM,QAAQ,KAAK,CACjC,CACF,CC1BA,OAAS,YAAAY,EAAU,cAAAC,GAAY,UAAAC,GAAQ,UAAAC,OAAc,gBAkB9C,SAASC,GAAeC,EAAyC,CACtE,IAAMC,EAAQC,EAAY,EACpBC,EAAgBF,EAAM,KAAK,eAAeD,CAAS,EAEnDI,EAASC,GAAoBF,CAAa,EAE1CG,EAAcC,EAClBN,EACAD,EACCQ,GAAe,CACdJ,EAAO,IAAII,CAAU,CACvB,CACF,EAEmBC,GAAOC,EAAU,EACzB,UAAU,IAAMJ,EAAY,CAAC,EAExC,IAAMK,EAAW,SAA0C,CACzD,IAAMC,EAAQ,MAAMX,EAAM,QAAQ,SAAS,CAAE,MAAOD,CAAU,CAAC,EACzDa,EAASZ,EAAM,KAAK,eAAeD,CAAS,EAClD,MAAO,CAAE,MAAAY,EAAO,OAAAC,CAAO,CACzB,EAEMC,EAAY,IAAMb,EAAM,KAAK,eAAeD,CAAS,EAErDe,EAAUC,EAAS,IAAM,CAACZ,EAAO,EAAE,SAAS,EAC5Ca,EAAUD,EAAS,IAAMZ,EAAO,EAAE,OAAO,EACzCS,EAASG,EAAS,IAAMZ,EAAO,EAAE,MAAM,EAE7C,MAAO,CACL,UAAAJ,EACA,OAAAI,EACA,OAAAS,EACA,SAAAF,EACA,UAAAG,EACA,QAAAC,EACA,QAAAE,EACA,YAAAX,CACF,CACF,CC1DA,OAAS,YAAAY,EAAU,cAAAC,GAAY,UAAAC,GAAQ,UAAAC,OAAc,gBAM9C,SAASC,GAAeC,EAA4C,CACzE,IAAMC,EAAQC,EAAY,EACpBC,EAAYC,GAAO,CAAC,EAEpBC,EAAQC,EAAS,IAAMN,EAAWG,EAAU,CAAC,GAAK,EAAE,EAEpDI,EAAkB,IAAMP,EAAWG,EAAU,CAAC,GAAK,GACnDK,EAASJ,GACbH,EAAM,KAAK,eAAeM,EAAgB,CAAC,CAC7C,EAEME,EAAgBC,GAAsB,CAC1C,IAAMC,EAAYV,EAAM,KAAK,eAAeS,CAAS,EAC/CE,EAAUJ,EAAO,EACnBD,EAAgB,IAAMG,GAAa,CAACG,EAAmBD,EAASD,CAAS,GAC3EH,EAAO,IAAIG,CAAS,CAExB,EAEIG,EAAcb,EAAM,QAAQ,qBAC9BM,EAAgB,EAChB,IAAME,EAAaF,EAAgB,CAAC,CACtC,EAEMQ,EAA0B,IAAM,CACpCD,EAAY,EACZA,EAAcb,EAAM,QAAQ,qBAC1BM,EAAgB,EAChB,IAAME,EAAaF,EAAgB,CAAC,CACtC,CACF,EAEmBS,GAAOC,EAAU,EACzB,UAAU,IAAMH,EAAY,CAAC,EAExC,IAAMI,EAAW,SAA0C,CACzD,IAAMR,EAAYH,EAAgB,EAC5BY,EAAQ,MAAMlB,EAAM,QAAQ,SAAS,CAAE,MAAOS,CAAU,CAAC,EACzDU,EAASnB,EAAM,KAAK,eAAeS,CAAS,EAClD,MAAO,CAAE,MAAAS,EAAO,OAAAC,CAAO,CACzB,EAEMC,EAAY,IAAMpB,EAAM,KAAK,eAAeM,EAAgB,CAAC,EAE7De,EAAO,SAA8B,CACzC,IAAMZ,EAAYH,EAAgB,EAE5BgB,EAActB,EAAM,KAAK,eAAeS,CAAS,EACvD,GAAIT,EAAM,QAAQ,yBAAyBsB,CAAW,EACpD,MAAO,GAGT,IAAMJ,EAAQ,MAAMlB,EAAM,QAAQ,SAAS,CAAE,MAAOS,CAAU,CAAC,EAC/D,GAAIS,EAAO,CACT,IAAMK,EAAW,KAAK,IAAIrB,EAAU,EAAI,EAAGH,EAAW,OAAS,CAAC,EAChEG,EAAU,IAAIqB,CAAQ,EACtBhB,EAAO,IAAIP,EAAM,KAAK,eAAeD,EAAWwB,CAAQ,GAAK,EAAE,CAAC,EAChET,EAAwB,CAC1B,KAAO,CACL,IAAMK,EAASnB,EAAM,KAAK,eAAeS,CAAS,EAC5Ce,EAAkB,OAAO,KAAKL,CAAM,EACtCK,EAAgB,OAAS,GAC3BxB,EAAM,MAAM,kBAAkBwB,CAAe,CAEjD,CACA,OAAON,CACT,EAEMO,EAAO,IAAM,CACjB,IAAMF,EAAW,KAAK,IAAIrB,EAAU,EAAI,EAAG,CAAC,EAC5CA,EAAU,IAAIqB,CAAQ,EACtBhB,EAAO,IAAIP,EAAM,KAAK,eAAeD,EAAWwB,CAAQ,GAAK,EAAE,CAAC,EAChET,EAAwB,CAC1B,EAEMY,EAAQC,GAAuB,CACnC,IAAMJ,EAAW,KAAK,IACpB,EACA,KAAK,IAAII,EAAa,EAAG5B,EAAW,OAAS,CAAC,CAChD,EACAG,EAAU,IAAIqB,CAAQ,EACtBhB,EAAO,IAAIP,EAAM,KAAK,eAAeD,EAAWwB,CAAQ,GAAK,EAAE,CAAC,EAChET,EAAwB,CAC1B,EAEMc,EAAOvB,EAAS,IAAMH,EAAU,EAAI,CAAC,EACrC2B,EAAUxB,EAAS,IAAMH,EAAU,IAAM,CAAC,EAC1C4B,EAASzB,EAAS,IAAMH,EAAU,GAAKH,EAAW,OAAS,CAAC,EAC5DgC,EAAU1B,EAAS,IAAM,CAACE,EAAO,EAAE,SAAS,EAC5CyB,EAAU3B,EAAS,IAAME,EAAO,EAAE,OAAO,EACzCY,GAASd,EAAS,IAAME,EAAO,EAAE,MAAM,EAE7C,MAAO,CACL,KAAAqB,EACA,UAAA1B,EACA,MAAAE,EACA,KAAAiB,EACA,KAAAI,EACA,KAAAC,EACA,QAAAG,EACA,OAAAC,EACA,OAAAvB,EACA,OAAAY,GACA,QAAAY,EACA,QAAAC,EACA,SAAAf,EACA,UAAAG,CACF,CACF,CClHA,OAAS,cAAAa,GAAY,UAAAC,GAAgB,UAAAC,OAAc,gBAI5C,SAASC,GAGdC,EAAyC,CACzC,IAAMC,EAAQC,EAAmB,EAC3BC,EAAaC,GAAOC,EAAU,EAC9BC,EAAWC,GACfC,EAAaP,EAAM,KAAK,SAAS,EAAE,OAAQD,CAAc,EAIzD,CAAE,MAAOS,CAAW,CACtB,EAEMC,EAAQT,EAAM,QAAQ,cAAcD,EAAOW,GAAM,CACrDL,EAAS,IAAIK,CAA2B,CAC1C,CAAC,EAED,OAAAR,EAAW,UAAUO,CAAK,EAEnBJ,EAAS,WAAW,CAC7B,CCnBA,OAAS,YAAAM,EAAU,UAAAC,GAAQ,UAAAC,OAAc,gBAOlC,SAASC,GAGdC,EACAC,EACAC,EACuB,CACvB,IAAMC,EAAQC,GAAOC,CAAe,EAC9BC,EAAQC,EAAeP,CAAS,EAClCQ,EAA2B,KACzBC,EAAcC,GAAO,EAAK,EAE1BC,EAAkB,CACtB,WAAaC,GAAiBH,EAAY,IAAIG,CAAG,EACjD,SAAU,CAACC,EAAcC,IACvBX,EAAM,MAAM,SAASU,EAAMC,CAAG,EAChC,SAAWF,GAAuBN,EAAM,SAASM,CAAG,EACpD,aAAc,IAAMJ,EACpB,aAAeO,GAAuB,CACpCP,EAAYO,CACd,EACA,gBAAkBC,GAChBb,EAAM,KAAK,OAAO,iBAAiBa,EAAG,QAAQ,CAClD,EAEMC,EAASC,EAAoBlB,EAAWC,EAAUU,CAAe,EACjEQ,EAASC,EAAoBpB,EAAWE,EAAYS,CAAe,EAEzE,MAAO,CACL,MAAOU,EAAS,IAAMf,EAAM,MAAM,CAAC,EACnC,SAAUA,EAAM,SAChB,MAAOe,EAAS,IAAMf,EAAM,KAAK,MAAM,CAAC,EACxC,aAAce,EAAS,IAAM,CAAC,CAACf,EAAM,KAAK,aAAa,GAAKG,EAAY,CAAC,EACzE,OAAAQ,EACA,OAAAE,CACF,CACF,CCjDA,OAAS,YAAAG,EAAU,cAAAC,GAAY,UAAAC,GAAQ,UAAAC,OAAc,gBAK9C,SAASC,IAEY,CAC1B,IAAMC,EAAQC,EAAe,EACvBC,EAAUC,GAAOH,EAAM,KAAK,mBAAmB,CAAC,EAEhDI,EAAcC,EAA2BL,EAAQM,GAAgB,CACrEJ,EAAQ,IAAII,CAAW,CACzB,CAAC,EAGD,OADmBC,GAAOC,EAAU,EACzB,UAAU,IAAMJ,EAAY,CAAC,EAcjC,CACL,QAbc,SACPJ,EAAM,QAAQ,iBAAiB,EAatC,KAVW,SAA2B,CACtC,MAAMA,EAAM,QAAQ,UAAU,CAChC,EASE,MAPY,SAA2B,CACvC,MAAMA,EAAM,QAAQ,eAAe,CACrC,EAME,KAAM,CACJ,SAAUS,EAAS,IAAMP,EAAQ,EAAE,QAAQ,EAC3C,YAAaO,EAAS,IAAMP,EAAQ,EAAE,WAAW,EACjD,MAAOO,EAAS,IAAMP,EAAQ,EAAE,KAAK,CACvC,CACF,CACF","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","e","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","DestroyRef","inject","signal","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 { DestroyRef, 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 const adapted = createFrameworkStoreAdapter<T>(store);\n\n try {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => {\n adapted.feature?.cleanup?.();\n });\n } catch (error: unknown) {\n if (error instanceof Error && error.message?.includes(\"inject\")) {\n // Called outside injection context (e.g., root module)\n } else {\n throw error;\n }\n }\n\n return {\n provide: BIT_STORE_TOKEN,\n useValue: adapted,\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 onBlur = () => fieldController.setBlur();\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 onBlur,\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}\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);\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 };\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 if (scopeNames.length === 0) {\n throw new Error(\"injectBitSteps: scopeNames must not be empty\");\n }\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 let currentSubscribedScope = getCurrentScope();\n let unsubscribe = store.observe.subscribeScopeStatus(\n currentSubscribedScope,\n (nextStatus) => {\n if (getCurrentScope() !== currentSubscribedScope) return;\n if (!isScopeStatusEqual(status(), nextStatus)) {\n status.set(nextStatus);\n }\n },\n );\n\n const rebindScopeSubscription = () => {\n const newScope = getCurrentScope();\n const newUnsub = store.observe.subscribeScopeStatus(\n newScope,\n (nextStatus) => {\n if (getCurrentScope() !== newScope) return;\n if (!isScopeStatusEqual(status(), nextStatus)) {\n status.set(nextStatus);\n }\n },\n );\n const oldUnsub = unsubscribe;\n unsubscribe = newUnsub;\n currentSubscribedScope = newScope;\n oldUnsub();\n };\n\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => unsubscribe());\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = getCurrentScope();\n const startIndex = stepIndex();\n const valid = await store.feature.validate({ scope: scopeName });\n if (stepIndex() !== startIndex) {\n const current = getCurrentScope();\n const reValid = await store.feature.validate({ scope: current });\n return { valid: reValid, errors: store.read.getScopeErrors(current) };\n }\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 startIndex = stepIndex();\n const scopeName = scopeNames[startIndex] ?? \"\";\n\n if (!scopeName) return false;\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\n if (stepIndex() !== startIndex) return false;\n\n if (valid) {\n const newIndex = Math.min(startIndex + 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 status.set(store.read.getScopeStatus(scopeName));\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 = (stepNumber: number) => {\n const newIndex = Math.max(\n 0,\n Math.min(stepNumber - 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, DestroyRef, inject, signal } from \"@angular/core\";\nimport type { BitDeleteUploadFn, BitUploadFn } from \"../core\";\nimport { createRemoveHandler, createUploadHandler } from \"../core/adapters\";\nimport { injectBitField } from \"./inject-bit-field\";\nimport { BIT_STORE_TOKEN } from \"./provider\";\nimport type { InjectBitUploadResult } from \"./types\";\n\nexport function injectBitUpload<\n TMetadata extends Record<string, unknown> = Record<string, unknown>,\n>(\n fieldPath: string,\n uploadFn: BitUploadFn<TMetadata>,\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 const sharedGen = { current: 0 };\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 onCallbackError: (e: unknown) =>\n store.read.config.onUnhandledError(e, \"upload\"),\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks, sharedGen);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks, sharedGen);\n\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => {\n sharedGen.current++;\n uploadKey = null;\n });\n\n return {\n value: computed(() => field.value()),\n setValue: field.setValue,\n error: computed(() => field.meta.error()),\n isValidating: computed(() => !!field.meta.isValidating() || isUploading()),\n upload,\n remove,\n };\n}\n","import { 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);\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":["DestroyRef","inject","InjectionToken","BIT_STORE_TOKEN","InjectionToken","provideBitStore","store","adapted","createFrameworkStoreAdapter","inject","DestroyRef","error","useBitStore","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","currentSubscribedScope","unsubscribe","nextStatus","isScopeStatusEqual","rebindScopeSubscription","newScope","newUnsub","oldUnsub","inject","DestroyRef","validate","scopeName","startIndex","valid","current","errors","getErrors","next","scopeFields","newIndex","pathsWithErrors","prev","goTo","stepNumber","step","isFirst","isLast","isValid","isDirty","DestroyRef","signal","inject","injectBitWatch","path","store","useBitStore","destroyRef","inject","DestroyRef","valueSig","signal","getDeepValue","valueEqual","unsub","v","computed","DestroyRef","inject","signal","injectBitUpload","fieldPath","uploadFn","deleteFile","store","inject","BIT_STORE_TOKEN","field","injectBitField","uploadKey","isUploading","signal","sharedGen","kernelCallbacks","val","path","msg","key","e","upload","createUploadHandler","remove","createRemoveHandler","DestroyRef","computed","computed","DestroyRef","inject","signal","injectBitPersist","store","useBitStore","persist","signal","unsubscribe","observePersistMetaSnapshot","nextPersist","inject","DestroyRef","computed"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resolvers/utils.ts"],"names":["normalizeErrorPath","path","matchScopePath","errorPath","scopePath"],"mappings":"AAEO,kFAASA,CAAAA,CAAmBC,CAAAA,CAAsB,CACvD,OAAOA,CAAAA,CACJ,OAAA,CAAQ,YAAA,CAAc,KAAK,CAAA,CAC3B,OAAA,CAAQ,MAAA,CAAQ,EAAE,CAAA,CAClB,OAAA,CAAQ,SAAA,CAAW,GAAG,CAC3B,CAEA,SAASC,CAAAA,CAAeC,CAAAA,CAAmBC,CAAAA,CAA4B,CACrE,OACED,CAAAA,GAAcC,CAAAA,EACdD,CAAAA,CAAU,UAAA,CAAW,CAAA,EAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/resolvers/utils.ts"],"names":["normalizeErrorPath","path","matchScopePath","errorPath","scopePath"],"mappings":"AAEO,kFAASA,CAAAA,CAAmBC,CAAAA,CAAsB,CACvD,OAAOA,CAAAA,CACJ,OAAA,CAAQ,YAAA,CAAc,KAAK,CAAA,CAC3B,OAAA,CAAQ,MAAA,CAAQ,EAAE,CAAA,CAClB,OAAA,CAAQ,SAAA,CAAW,GAAG,CAC3B,CAEA,SAASC,CAAAA,CAAeC,CAAAA,CAAmBC,CAAAA,CAA4B,CACrE,OACED,CAAAA,GAAcC,CAAAA,EACdD,CAAAA,CAAU,UAAA,CAAW,CAAA,EAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-4WPLTOBT.cjs","sourcesContent":["import { BitErrors } from \"../core\";\n\nexport function normalizeErrorPath(path: string): string {\n return path\n .replace(/\\[(\\d+)\\]/g, \".$1\")\n .replace(/^\\.+/, \"\")\n .replace(/\\.{2,}/g, \".\");\n}\n\nfunction matchScopePath(errorPath: string, scopePath: string): boolean {\n return (\n errorPath === scopePath ||\n errorPath.startsWith(`${scopePath}.`) ||\n scopePath.startsWith(`${errorPath}.`)\n );\n}\n\nexport function setFirstError<T extends object>(\n errors: BitErrors<T>,\n path: string,\n message: string | undefined,\n) {\n const normalizedPath = normalizeErrorPath(path);\n\n if (!normalizedPath || !message) {\n return;\n }\n\n if (\n normalizedPath === \"__proto__\" ||\n normalizedPath === \"constructor\" ||\n normalizedPath === \"prototype\"\n ) {\n return;\n }\n\n if (!errors[normalizedPath as keyof BitErrors<T>]) {\n errors[normalizedPath as keyof BitErrors<T>] = message;\n }\n}\n\nexport function filterErrorsByScope<T extends object>(\n errors: BitErrors<T>,\n scopeFields?: string[],\n): BitErrors<T> {\n if (!scopeFields || scopeFields.length === 0) {\n return errors;\n }\n\n const normalizedScopeFields = scopeFields\n .map((scopeField) => normalizeErrorPath(scopeField))\n .filter((scopeField) => scopeField.length > 0);\n\n if (normalizedScopeFields.length === 0) {\n return {};\n }\n\n const filtered: BitErrors<T> = {};\n\n for (const [key, message] of Object.entries(errors)) {\n const normalizedKey = normalizeErrorPath(key);\n if (\n message &&\n normalizedScopeFields.some((scopeField) =>\n matchScopePath(normalizedKey, scopeField),\n )\n ) {\n const typedKey = key as keyof BitErrors<T>;\n filtered[typedKey] = message as BitErrors<T>[typeof typedKey];\n }\n }\n\n return filtered;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/mask/field-binding.ts"],"names":["isBitFieldInputEventObject","value","formatMaskedValue","mask","parseMaskedInput"],"mappings":"AAkBO,sLAASA,CAAAA,CACdC,CAAAA,CAIA,CACA,OAAOA,CAAAA,EAAS,IAAA,EAAQ,OAAOA,CAAAA,EAAU,QAAA,EAAY,QAAA,GAAYA,CACnE,CAEO,IAAMC,CAAAA,CAAoB,CAACD,CAAAA,CAAgBE,CAAAA,CAAAA,EAA2B,CAC3E,EAAA,CAA2BF,CAAAA,EAAU,IAAA,EAAQA,CAAAA,GAAU,EAAA,CACrD,MAAO,EAAA,CAGT,EAAA,CAAI,CAACE,CAAAA,CACH,OAAO,MAAA,CAAOF,CAAK,CAAA,CAGrB,GAAI,CACF,OAAOE,CAAAA,CAAK,MAAA,CAAOF,CAAK,CAC1B,CAAA,UAAQ,CACN,OAAO,MAAA,CAAOA,CAAK,CACrB,CACF,CAAA,CAEaG,CAAAA,aAAmB,CAACH,CAAAA,CAAgBE,CAAAA,CAAAA,EAA4B,CAC3E,EAAA,CAAI,CAACA,CAAAA,CACH,OAAOF,CAAAA,CAGT,GAAI,CACF,OAAOE,CAAAA,CAAK,KAAA,CAAM,MAAA,kBAAOF,CAAAA,SAAS,IAAE,CAAC,CACvC,CAAA,UAAQ,CACN,OAAO,MAAA,kBAAOA,CAAAA,SAAS,IAAE,CAC3B,CACF,CAAA,CAAA,4CAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/core/mask/field-binding.ts"],"names":["isBitFieldInputEventObject","value","formatMaskedValue","mask","parseMaskedInput"],"mappings":"AAkBO,sLAASA,CAAAA,CACdC,CAAAA,CAIA,CACA,OAAOA,CAAAA,EAAS,IAAA,EAAQ,OAAOA,CAAAA,EAAU,QAAA,EAAY,QAAA,GAAYA,CACnE,CAEO,IAAMC,CAAAA,CAAoB,CAACD,CAAAA,CAAgBE,CAAAA,CAAAA,EAA2B,CAC3E,EAAA,CAA2BF,CAAAA,EAAU,IAAA,EAAQA,CAAAA,GAAU,EAAA,CACrD,MAAO,EAAA,CAGT,EAAA,CAAI,CAACE,CAAAA,CACH,OAAO,MAAA,CAAOF,CAAK,CAAA,CAGrB,GAAI,CACF,OAAOE,CAAAA,CAAK,MAAA,CAAOF,CAAK,CAC1B,CAAA,UAAQ,CACN,OAAO,MAAA,CAAOA,CAAK,CACrB,CACF,CAAA,CAEaG,CAAAA,aAAmB,CAACH,CAAAA,CAAgBE,CAAAA,CAAAA,EAA4B,CAC3E,EAAA,CAAI,CAACA,CAAAA,CACH,OAAOF,CAAAA,CAGT,GAAI,CACF,OAAOE,CAAAA,CAAK,KAAA,CAAM,MAAA,kBAAOF,CAAAA,SAAS,IAAE,CAAC,CACvC,CAAA,UAAQ,CACN,OAAO,MAAA,kBAAOA,CAAAA,SAAS,IAAE,CAC3B,CACF,CAAA,CAAA,4CAAA","file":"/builds/kenji.ccp-group/bit-form/dist/chunk-725CMNAV.cjs","sourcesContent":["import type { BitMask } from \"./types\";\n\n/**\n * Tipo de entrada aceito pelos handlers de campo.\n * Cobre eventos nativos (`e.target.value`), eventos sintéticos e valores diretos.\n * Definido aqui para ser compartilhado entre todos os frameworks.\n */\nexport type BitFieldInputEvent =\n | { target?: { value?: string | number | null } }\n | string\n | number\n | null\n | undefined;\n\n/**\n * Type guard: verifica se o valor de entrada é um objeto de evento\n * (com propriedade `target`), diferenciando-o de um valor direto.\n */\nexport function isBitFieldInputEventObject(\n value: BitFieldInputEvent,\n): value is Extract<\n BitFieldInputEvent,\n { target?: { value?: string | number | null } }\n> {\n return value != null && typeof value === \"object\" && \"target\" in value;\n}\n\nexport const formatMaskedValue = (value: unknown, mask?: BitMask): string => {\n if (value === undefined || value === null || value === \"\") {\n return \"\";\n }\n\n if (!mask) {\n return String(value);\n }\n\n try {\n return mask.format(value);\n } catch {\n return String(value);\n }\n};\n\nexport const parseMaskedInput = (value: unknown, mask?: BitMask): unknown => {\n if (!mask) {\n return value;\n }\n\n try {\n return mask.parse(String(value ?? \"\"));\n } catch {\n return String(value ?? \"\");\n }\n};\n"]}
|