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