@lehnihon/bit-form 2.2.5 → 2.2.7
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 +80 -24
- package/dist/angular/index.cjs +1 -1
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.d.cts +18 -20
- package/dist/angular/index.d.ts +18 -20
- package/dist/angular/index.js +1 -1
- package/dist/angular/index.js.map +1 -1
- package/dist/array-controller-C1A5VKYd.d.cts +23 -0
- package/dist/array-controller-DtkmcnUr.d.ts +23 -0
- package/dist/{bus-B4zZmB9C.d.ts → bus-DgilLszS.d.ts} +83 -15
- package/dist/{bus-BeAeZwWu.d.cts → bus-rcUiufS7.d.cts} +83 -15
- package/dist/chunk-DIEE6LUO.js +2 -0
- package/dist/chunk-DIEE6LUO.js.map +1 -0
- package/dist/chunk-FUUQB4DV.cjs +2 -0
- package/dist/chunk-FUUQB4DV.cjs.map +1 -0
- package/dist/chunk-IV32WXCF.cjs +2 -0
- package/dist/chunk-IV32WXCF.cjs.map +1 -0
- package/dist/chunk-K5X37E3U.js +2 -0
- package/dist/chunk-K5X37E3U.js.map +1 -0
- package/dist/chunk-KWLLYQOL.cjs +2 -0
- package/dist/chunk-KWLLYQOL.cjs.map +1 -0
- package/dist/chunk-LIYZPSWM.js +2 -0
- package/dist/chunk-LIYZPSWM.js.map +1 -0
- package/dist/chunk-O5UPA33R.js +2 -0
- package/dist/chunk-O5UPA33R.js.map +1 -0
- package/dist/chunk-QAL6J5GQ.cjs +2 -0
- package/dist/chunk-QAL6J5GQ.cjs.map +1 -0
- package/dist/chunk-QKGTVKBU.cjs +2 -0
- package/dist/chunk-QKGTVKBU.cjs.map +1 -0
- package/dist/chunk-SA47B5OP.js +2 -0
- package/dist/chunk-SA47B5OP.js.map +1 -0
- package/dist/cli/index.cjs +22 -22
- package/dist/core.cjs +2 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +122 -0
- package/dist/core.d.ts +122 -0
- package/dist/core.js +2 -0
- package/dist/core.js.map +1 -0
- package/dist/devtools/bridge.cjs +1 -1
- package/dist/devtools/bridge.cjs.map +1 -1
- package/dist/devtools/bridge.d.cts +4 -1
- package/dist/devtools/bridge.d.ts +4 -1
- package/dist/devtools/bridge.js +1 -1
- package/dist/devtools/bridge.js.map +1 -1
- package/dist/devtools/index.cjs +18 -18
- package/dist/devtools/index.cjs.map +1 -1
- package/dist/devtools/index.d.cts +26 -2
- package/dist/devtools/index.d.ts +26 -2
- package/dist/devtools/index.js +18 -18
- package/dist/devtools/index.js.map +1 -1
- package/dist/devtools/protocol.cjs +2 -0
- package/dist/devtools/protocol.cjs.map +1 -0
- package/dist/devtools/protocol.d.cts +54 -0
- package/dist/devtools/protocol.d.ts +54 -0
- package/dist/devtools/protocol.js +2 -0
- package/dist/devtools/protocol.js.map +1 -0
- package/dist/field-binding-Bi1g-D8X.d.ts +25 -0
- package/dist/field-binding-X5TkvfUt.d.cts +25 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +64 -150
- package/dist/index.d.ts +64 -150
- package/dist/index.js +1 -1
- package/dist/mask.d.cts +2 -2
- package/dist/mask.d.ts +2 -2
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +8 -7
- package/dist/react/index.d.ts +8 -7
- 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 +7 -6
- package/dist/react-native/index.d.ts +7 -6
- package/dist/react-native/index.js +1 -1
- package/dist/react-native/index.js.map +1 -1
- package/dist/resolvers/index.cjs +1 -1
- package/dist/resolvers/index.cjs.map +1 -1
- package/dist/resolvers/index.d.cts +2 -2
- package/dist/resolvers/index.d.ts +2 -2
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/joi.d.cts +2 -2
- package/dist/resolvers/joi.d.ts +2 -2
- package/dist/resolvers/yup.d.cts +2 -2
- package/dist/resolvers/yup.d.ts +2 -2
- package/dist/resolvers/zod.d.cts +2 -2
- package/dist/resolvers/zod.d.ts +2 -2
- package/dist/store-api-types-9ipdute1.d.ts +187 -0
- package/dist/store-api-types-B6_bPoVI.d.cts +187 -0
- package/dist/{types-D8DgIUhJ.d.cts → types-CUXh7PqD.d.cts} +1 -1
- package/dist/{types-D8DgIUhJ.d.ts → types-CUXh7PqD.d.ts} +1 -1
- package/dist/{use-bit-persist-iPWLbD8l.d.ts → use-bit-persist-Bc06fmqZ.d.ts} +12 -14
- package/dist/{use-bit-persist-CIVN-oIi.d.cts → use-bit-persist-CIKFwtdM.d.cts} +12 -14
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.d.cts +15 -18
- package/dist/vue/index.d.ts +15 -18
- package/dist/vue/index.js +1 -1
- package/dist/vue/index.js.map +1 -1
- package/package.json +20 -11
- package/dist/chunk-2FDEJYA5.js +0 -2
- package/dist/chunk-2FDEJYA5.js.map +0 -1
- package/dist/chunk-3CARTBEN.cjs +0 -2
- package/dist/chunk-3CARTBEN.cjs.map +0 -1
- package/dist/chunk-64KSP4TP.js +0 -2
- package/dist/chunk-64KSP4TP.js.map +0 -1
- package/dist/chunk-JIWR4KSZ.cjs +0 -2
- package/dist/chunk-JIWR4KSZ.cjs.map +0 -1
- package/dist/chunk-OZKLQRO6.cjs +0 -2
- package/dist/chunk-OZKLQRO6.cjs.map +0 -1
- package/dist/chunk-QWH2NBVB.js +0 -2
- package/dist/chunk-QWH2NBVB.js.map +0 -1
- package/dist/chunk-UMKOKAPD.js +0 -2
- package/dist/chunk-UMKOKAPD.js.map +0 -1
- package/dist/chunk-VQ7MK5VB.cjs +0 -2
- package/dist/chunk-VQ7MK5VB.cjs.map +0 -1
- package/dist/field-binding-BXw0Ku2c.d.cts +0 -12
- package/dist/field-binding-BXw0Ku2c.d.ts +0 -12
- package/dist/public-types-BQXaxmAE.d.cts +0 -94
- package/dist/public-types-CVgFf_qY.d.ts +0 -94
package/dist/vue/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 _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');var _chunkFUUQB4DVcjs = require('../chunk-FUUQB4DV.cjs');require('../chunk-PFPGASVZ.cjs');var _vue = require('vue');var J=Symbol("BIT_STORE");function oe(t){_vue.provide.call(void 0, J,_chunkFUUQB4DVcjs.s.call(void 0, t))}function n(){let t=_vue.inject.call(void 0, J);if(!t)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return t}function ie(){let t=n(),e=_vue.shallowRef.call(void 0, {isValid:!0,isDirty:!1,isSubmitting:!1}),o=_vue.ref.call(void 0, null),r=_vue.ref.call(void 0, null),i=_chunkFUUQB4DVcjs.y.call(void 0, t,v=>{e.value=v});_vue.onUnmounted.call(void 0, i);let{controller:s,actions:a}=_chunkFUUQB4DVcjs.C.call(void 0, t,{clearSubmissionState:()=>{o.value=null,r.value=null},setSubmissionResult:v=>{r.value=v},setSubmissionError:v=>{o.value=v}}),d=_vue.computed.call(void 0, ()=>e.value.isValid),u=_vue.computed.call(void 0, ()=>e.value.isSubmitting),p=_vue.computed.call(void 0, ()=>e.value.isDirty),c=s.onSubmit,B=s.reset;return{meta:{isValid:d,isDirty:p,isSubmitting:u,submitError:o,lastResponse:r},getValues:s.getValues,getErrors:s.getErrors,getTouched:s.getTouched,getDirtyValues:s.getDirtyValues,submit:s.submit,onSubmit:c,reset:B,...a}}function U(t){let e=n(),{fieldController:o}=_chunkFUUQB4DVcjs.E.call(void 0, e,t),r=_vue.shallowRef.call(void 0, e.getFieldState(t)),i=_chunkFUUQB4DVcjs.D.call(void 0, e,t,f=>{r.value=f});_vue.onUnmounted.call(void 0, ()=>{i(),_chunkFUUQB4DVcjs.G.call(void 0, e,t)});let s=_vue.computed.call(void 0, ()=>r.value.value),a=_vue.computed.call(void 0, ()=>o.displayValue(s.value)),d=_vue.computed.call(void 0, {get:()=>a.value,set:f=>{o.setValue(f)}}),u=_vue.computed.call(void 0, ()=>_chunkFUUQB4DVcjs.I.call(void 0, r.value)),p=_vue.computed.call(void 0, ()=>u.value.error),c=_vue.computed.call(void 0, ()=>u.value.touched),B=_vue.computed.call(void 0, ()=>u.value.invalid),b=_vue.computed.call(void 0, ()=>u.value.isValidating),v=_vue.computed.call(void 0, ()=>u.value.isDirty),P=_vue.computed.call(void 0, ()=>u.value.isHidden),V=_vue.computed.call(void 0, ()=>u.value.isRequired),x=_vue.computed.call(void 0, ()=>u.value.hasError),F=f=>{o.setValue(f)},l=()=>o.setBlur();return{value:s,displayValue:a,modelValue:d,setValue:F,setBlur:l,onInput:f=>{F(f)},onBlur:()=>{l()},meta:{error:p,touched:c,invalid:B,isValidating:b,isDirty:v,isHidden:P,isRequired:V,hasError:x}}}function ce(t){let e=n(),o=_chunkFUUQB4DVcjs.F.call(void 0, e,t),r=_vue.shallowRef.call(void 0, o.readItems()),i=e.subscribePath(t,()=>{r.value=o.readItems()});_vue.onUnmounted.call(void 0, ()=>{i(),_chunkFUUQB4DVcjs.H.call(void 0, e,`${t}.`)});let s=_vue.computed.call(void 0, ()=>o.getFields(r.value)),a=_vue.computed.call(void 0, ()=>r.value.length);return{fields:s,length:a,append:o.append,prepend:o.prepend,insert:o.insert,remove:o.remove,move:o.move,swap:o.swap,replace:o.replace,clear:o.clear}}function de(){let t=n(),e=_vue.shallowRef.call(void 0, _chunkFUUQB4DVcjs.m.call(void 0, t)),o=_chunkFUUQB4DVcjs.n.call(void 0, t,s=>{e.value=s});_vue.onUnmounted.call(void 0, o);let r=()=>t.undo(),i=()=>t.redo();return{canUndo:_vue.computed.call(void 0, ()=>e.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>e.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>e.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>e.value.historySize),undo:r,redo:i}}function Se(t){let e=n(),o=_vue.ref.call(void 0, e.getStepStatus(t)),r;_vue.onMounted.call(void 0, ()=>{r=_chunkFUUQB4DVcjs.r.call(void 0, e,t,p=>{o.value=p})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _2 => _2()])});let i=async()=>{let p=await e.validate({scope:t}),c=e.getStepErrors(t);return{valid:p,errors:c}},s=()=>e.getStepErrors(t),a=_vue.computed.call(void 0, ()=>!o.value.hasErrors),d=_vue.computed.call(void 0, ()=>o.value.isDirty),u=_vue.computed.call(void 0, ()=>o.value.errors);return{scopeName:t,status:o,errors:u,validate:i,getErrors:s,isValid:a,isDirty:d}}function Fe(t){let e=n(),o=_vue.ref.call(void 0, 0),r=_vue.computed.call(void 0, ()=>_nullishCoalesce(t[o.value], () => (""))),i=_vue.ref.call(void 0, e.getStepStatus(r.value)),s;_vue.watch.call(void 0, r,l=>{i.value=e.getStepStatus(l),_optionalChain([s, 'optionalCall', _3 => _3()]),s=e.subscribeScopeStatus(l,a)});let a=()=>{let l=r.value,S=e.getStepStatus(l);_chunkFUUQB4DVcjs.p.call(void 0, i.value,S)||(i.value=S)};_vue.onMounted.call(void 0, ()=>{s=e.subscribeScopeStatus(r.value,a)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([s, 'optionalCall', _4 => _4()])});let d=async()=>{let l=r.value,S=await e.validate({scope:l}),y=e.getStepErrors(l);return{valid:S,errors:y}},u=()=>e.getStepErrors(r.value),p=async()=>{let l=r.value,S=e.getScopeFields(l);if(e.hasValidationsInProgress(S))return!1;let y=await e.validate({scope:l});if(y)o.value=Math.min(o.value+1,t.length-1);else{let f=e.getStepErrors(l),w=Object.keys(f);w.length>0&&e.markFieldsTouched(w)}return y},c=()=>{o.value=Math.max(o.value-1,0)},B=l=>{o.value=Math.max(0,Math.min(l-1,t.length-1))},b=_vue.computed.call(void 0, ()=>o.value+1),v=_vue.computed.call(void 0, ()=>o.value===0),P=_vue.computed.call(void 0, ()=>o.value>=t.length-1),V=_vue.computed.call(void 0, ()=>!i.value.hasErrors),x=_vue.computed.call(void 0, ()=>i.value.isDirty),F=_vue.computed.call(void 0, ()=>i.value.errors);return{step:b,stepIndex:o,scope:r,next:p,prev:c,goTo:B,isFirst:v,isLast:P,status:i,errors:F,isValid:V,isDirty:x,validate:d,getErrors:u}}function xe(t){let e=n(),o=_chunkFUUQB4DVcjs.e.call(void 0, e.getState().values,t),r=_vue.ref.call(void 0, o),i=e.subscribePath(t,s=>{_chunkFUUQB4DVcjs.c.call(void 0, r.value,s)||(r.value=s)});return _vue.onUnmounted.call(void 0, i),_vue.readonly.call(void 0, r)}function Ue(t,e,o){let r=n(),i=U(t),s=null,a=_vue.ref.call(void 0, !1),d={setLoading:c=>{a.value=c},setError:(c,B)=>r.setError(c,B),setValue:c=>i.setValue(c),getUploadKey:()=>s,setUploadKey:c=>{s=c}},u=_chunkIV32WXCFcjs.a.call(void 0, t,e,d),p=_chunkIV32WXCFcjs.b.call(void 0, t,o,d);return{value:i.value,setValue:i.setValue,error:_vue.computed.call(void 0, ()=>i.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>!!i.meta.isValidating.value||a.value),upload:u,remove:p}}function we(){let t=n(),e=_vue.ref.call(void 0, t.getPersistMetadata()),o=_chunkFUUQB4DVcjs.B.call(void 0, t,a=>{e.value=a});return _vue.onUnmounted.call(void 0, ()=>o()),{restore:async()=>t.restorePersisted(),save:async()=>{await t.forceSave()},clear:async()=>{await t.clearPersisted()},meta:{isSaving:_vue.computed.call(void 0, ()=>e.value.isSaving),isRestoring:_vue.computed.call(void 0, ()=>e.value.isRestoring),error:_vue.computed.call(void 0, ()=>e.value.error)}}}exports.provideBitStore = oe; exports.useBitArray = ce; exports.useBitField = U; exports.useBitForm = ie; exports.useBitHistory = de; exports.useBitPersist = we; exports.useBitScope = Se; exports.useBitSteps = Fe; exports.useBitStore = n; exports.useBitUpload = Ue; exports.useBitWatch = xe;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/vue/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","actions","createStoreFormActions","isValid","computed","isSubmitting","isDirty","onSubmit","reset","useBitField","path","resolvedMask","fieldController","createMaskedFieldController","subscribeFieldState","rawValue","displayValue","modelValue","val","rawError","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","useBitArray","createId","index","initialValues","getDeepValue","values","ids","_","newValues","nextValues","currentIds","diff","newIds","i"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreHooksApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreHooksApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n createFormController,\n createStoreFormActions,\n} from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n { paths: [\"isValid\", \"isSubmitting\", \"isDirty\"] },\n );\n\n onUnmounted(unsubscribe);\n\n const controller = createFormController(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n const actions = createStoreFormActions(store);\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\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,\n reset,\n ...actions,\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.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 onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n const createId = (index?: number) =>\n store.config.idFactory({\n scope: \"array\",\n path: path as string,\n index,\n });\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map((_, index) => createId(index)));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, (_, i) =>\n createId(currentIds.length + i),\n );\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(createId(ids.value.length));\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(createId(0));\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, createId(index));\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map((_, index) => createId(index));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","observeFormMetaSnapshot","nextMeta","onUnmounted","controller","actions","createFrameworkFormBinding","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","useBitField","path","fieldController","createFrameworkMaskedFieldBinding","subscribeFieldState","nextState","cleanupRegisteredField","rawValue","displayValue","modelValue","val","metaState","deriveFieldMeta","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","useBitArray","createArrayBindingController","values","cleanupRegisteredPrefix"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitFormBindingApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitFormBindingApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreHooksApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitFormBindingApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = observeFormMetaSnapshot(store, (nextMeta) => {\n state.value = nextMeta;\n });\n\n onUnmounted(unsubscribe);\n\n const { controller, actions } = createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\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,\n reset,\n ...actions,\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n subscribeFieldState,\n} from \"../core\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const metaState = computed(() => deriveFieldMeta(state.value));\n const error = computed(() => metaState.value.error);\n const touched = computed(() => metaState.value.touched);\n const invalid = computed(() => metaState.value.invalid);\n const isValidating = computed(() => metaState.value.isValidating);\n const isDirty = computed(() => metaState.value.isDirty);\n const isHidden = computed(() => metaState.value.isHidden);\n const isRequired = computed(() => metaState.value.isRequired);\n const hasError = computed(() => metaState.value.hasError);\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 onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { shallowRef, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createArrayBindingController, BitArrayPath } from \"../core\";\nimport { cleanupRegisteredPrefix } from \"../core\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = createArrayBindingController<TForm, P>(store, path);\n const values = shallowRef(controller.readItems());\n\n const unsubscribe = store.subscribePath(path, () => {\n values.value = controller.readItems();\n });\n\n onUnmounted(() => {\n unsubscribe();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n const fields = computed(() => controller.getFields(values.value));\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n"]}
|
package/dist/vue/index.d.cts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as BitStoreHooksApi, b as BitFormBindingApi, c as BitHistoryMetadata, d as BitValidationOptions } from '../store-api-types-B6_bPoVI.cjs';
|
|
2
|
+
import { i as BitPersistMetadata, S as ScopeStatus, V as ValidateScopeResult, c as BitErrors, r as BitTouched, D as DeepPartial, e as BitPath, b as BitPathValue, B as BitArrayPath, a as BitArrayItem } from '../bus-rcUiufS7.cjs';
|
|
3
3
|
import * as vue from 'vue';
|
|
4
4
|
import { ComputedRef, Ref } from 'vue';
|
|
5
|
-
import
|
|
5
|
+
import { B as BitArrayBindingField } from '../array-controller-C1A5VKYd.cjs';
|
|
6
6
|
import * as _vue_shared from '@vue/shared';
|
|
7
7
|
import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.cjs';
|
|
8
|
-
import '../types-
|
|
8
|
+
import '../types-CUXh7PqD.cjs';
|
|
9
9
|
|
|
10
|
-
declare function provideBitStore<T extends object>(store:
|
|
11
|
-
declare function useBitStore<T extends object>():
|
|
10
|
+
declare function provideBitStore<T extends object>(store: BitStoreHooksApi<T>): void;
|
|
11
|
+
declare function useBitStore<T extends object>(): BitFormBindingApi<T>;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Metadata describing the current state of a form field (Vue reactive).
|
|
@@ -107,9 +107,10 @@ interface UseBitFormResult<T extends object = any> {
|
|
|
107
107
|
onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
|
|
108
108
|
reset: () => void;
|
|
109
109
|
transaction: <TResult>(callback: () => TResult) => TResult;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
setValues: (values: T | DeepPartial<T>, options?: {
|
|
111
|
+
partial?: boolean;
|
|
112
|
+
rebase?: boolean;
|
|
113
|
+
}) => void;
|
|
113
114
|
setError: (path: string, message: string | undefined) => void;
|
|
114
115
|
setErrors: (errors: BitErrors<T>) => void;
|
|
115
116
|
setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
|
|
@@ -123,18 +124,14 @@ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
|
|
|
123
124
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>>;
|
|
124
125
|
|
|
125
126
|
declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
|
|
126
|
-
fields: vue.ComputedRef<
|
|
127
|
-
key: string;
|
|
128
|
-
value: _vue_reactivity.UnwrapRefSimple<BitArrayItem<BitPathValue<TForm, P>>>;
|
|
129
|
-
index: number;
|
|
130
|
-
}[]>;
|
|
127
|
+
fields: vue.ComputedRef<BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[]>;
|
|
131
128
|
length: vue.ComputedRef<number>;
|
|
132
|
-
append: (
|
|
133
|
-
prepend: (
|
|
134
|
-
insert: (index: number,
|
|
129
|
+
append: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
130
|
+
prepend: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
131
|
+
insert: (index: number, value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
135
132
|
remove: (index: number) => void;
|
|
136
133
|
move: (from: number, to: number) => void;
|
|
137
|
-
swap: (
|
|
134
|
+
swap: (indexA: number, indexB: number) => void;
|
|
138
135
|
replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => void;
|
|
139
136
|
clear: () => void;
|
|
140
137
|
};
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as BitStoreHooksApi, b as BitFormBindingApi, c as BitHistoryMetadata, d as BitValidationOptions } from '../store-api-types-9ipdute1.js';
|
|
2
|
+
import { i as BitPersistMetadata, S as ScopeStatus, V as ValidateScopeResult, c as BitErrors, r as BitTouched, D as DeepPartial, e as BitPath, b as BitPathValue, B as BitArrayPath, a as BitArrayItem } from '../bus-DgilLszS.js';
|
|
3
3
|
import * as vue from 'vue';
|
|
4
4
|
import { ComputedRef, Ref } from 'vue';
|
|
5
|
-
import
|
|
5
|
+
import { B as BitArrayBindingField } from '../array-controller-DtkmcnUr.js';
|
|
6
6
|
import * as _vue_shared from '@vue/shared';
|
|
7
7
|
import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.js';
|
|
8
|
-
import '../types-
|
|
8
|
+
import '../types-CUXh7PqD.js';
|
|
9
9
|
|
|
10
|
-
declare function provideBitStore<T extends object>(store:
|
|
11
|
-
declare function useBitStore<T extends object>():
|
|
10
|
+
declare function provideBitStore<T extends object>(store: BitStoreHooksApi<T>): void;
|
|
11
|
+
declare function useBitStore<T extends object>(): BitFormBindingApi<T>;
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Metadata describing the current state of a form field (Vue reactive).
|
|
@@ -107,9 +107,10 @@ interface UseBitFormResult<T extends object = any> {
|
|
|
107
107
|
onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
|
|
108
108
|
reset: () => void;
|
|
109
109
|
transaction: <TResult>(callback: () => TResult) => TResult;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
setValues: (values: T | DeepPartial<T>, options?: {
|
|
111
|
+
partial?: boolean;
|
|
112
|
+
rebase?: boolean;
|
|
113
|
+
}) => void;
|
|
113
114
|
setError: (path: string, message: string | undefined) => void;
|
|
114
115
|
setErrors: (errors: BitErrors<T>) => void;
|
|
115
116
|
setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
|
|
@@ -123,18 +124,14 @@ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
|
|
|
123
124
|
declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>>;
|
|
124
125
|
|
|
125
126
|
declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
|
|
126
|
-
fields: vue.ComputedRef<
|
|
127
|
-
key: string;
|
|
128
|
-
value: _vue_reactivity.UnwrapRefSimple<BitArrayItem<BitPathValue<TForm, P>>>;
|
|
129
|
-
index: number;
|
|
130
|
-
}[]>;
|
|
127
|
+
fields: vue.ComputedRef<BitArrayBindingField<BitArrayItem<BitPathValue<TForm, P>>>[]>;
|
|
131
128
|
length: vue.ComputedRef<number>;
|
|
132
|
-
append: (
|
|
133
|
-
prepend: (
|
|
134
|
-
insert: (index: number,
|
|
129
|
+
append: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
130
|
+
prepend: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
131
|
+
insert: (index: number, value: BitArrayItem<BitPathValue<TForm, P>>) => void;
|
|
135
132
|
remove: (index: number) => void;
|
|
136
133
|
move: (from: number, to: number) => void;
|
|
137
|
-
swap: (
|
|
134
|
+
swap: (indexA: number, indexB: number) => void;
|
|
138
135
|
replace: (items: BitArrayItem<BitPathValue<TForm, P>>[]) => void;
|
|
139
136
|
clear: () => void;
|
|
140
137
|
};
|
package/dist/vue/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as $,b as G}from"../chunk-O5UPA33R.js";import{B as C,C as q,D as O,E as W,F as _,G as z,H as L,I as Y,c as D,e as H,m as M,n as j,p as k,r as I,s as A,y as K}from"../chunk-SA47B5OP.js";import"../chunk-3NUJVIAM.js";import{inject as ee,provide as te}from"vue";var J=Symbol("BIT_STORE");function oe(t){te(J,A(t))}function n(){let t=ee(J);if(!t)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return t}import{computed as R,onUnmounted as re,shallowRef as se,ref as Q}from"vue";function ie(){let t=n(),e=se({isValid:!0,isDirty:!1,isSubmitting:!1}),o=Q(null),r=Q(null),i=K(t,v=>{e.value=v});re(i);let{controller:s,actions:a}=q(t,{clearSubmissionState:()=>{o.value=null,r.value=null},setSubmissionResult:v=>{r.value=v},setSubmissionError:v=>{o.value=v}}),d=R(()=>e.value.isValid),u=R(()=>e.value.isSubmitting),p=R(()=>e.value.isDirty),c=s.onSubmit,B=s.reset;return{meta:{isValid:d,isDirty:p,isSubmitting:u,submitError:o,lastResponse:r},getValues:s.getValues,getErrors:s.getErrors,getTouched:s.getTouched,getDirtyValues:s.getDirtyValues,submit:s.submit,onSubmit:c,reset:B,...a}}import{computed as m,onUnmounted as ne,shallowRef as ae}from"vue";function U(t){let e=n(),{fieldController:o}=W(e,t),r=ae(e.getFieldState(t)),i=O(e,t,f=>{r.value=f});ne(()=>{i(),z(e,t)});let s=m(()=>r.value.value),a=m(()=>o.displayValue(s.value)),d=m({get:()=>a.value,set:f=>{o.setValue(f)}}),u=m(()=>Y(r.value)),p=m(()=>u.value.error),c=m(()=>u.value.touched),B=m(()=>u.value.invalid),b=m(()=>u.value.isValidating),v=m(()=>u.value.isDirty),P=m(()=>u.value.isHidden),V=m(()=>u.value.isRequired),x=m(()=>u.value.hasError),F=f=>{o.setValue(f)},l=()=>o.setBlur();return{value:s,displayValue:a,modelValue:d,setValue:F,setBlur:l,onInput:f=>{F(f)},onBlur:()=>{l()},meta:{error:p,touched:c,invalid:B,isValidating:b,isDirty:v,isHidden:P,isRequired:V,hasError:x}}}import{shallowRef as ue,computed as X,onUnmounted as le}from"vue";function ce(t){let e=n(),o=_(e,t),r=ue(o.readItems()),i=e.subscribePath(t,()=>{r.value=o.readItems()});le(()=>{i(),L(e,`${t}.`)});let s=X(()=>o.getFields(r.value)),a=X(()=>r.value.length);return{fields:s,length:a,append:o.append,prepend:o.prepend,insert:o.insert,remove:o.remove,move:o.move,swap:o.swap,replace:o.replace,clear:o.clear}}import{computed as h,onUnmounted as me,shallowRef as pe}from"vue";function de(){let t=n(),e=pe(M(t)),o=j(t,s=>{e.value=s});me(o);let r=()=>t.undo(),i=()=>t.redo();return{canUndo:h(()=>e.value.canUndo),canRedo:h(()=>e.value.canRedo),historyIndex:h(()=>e.value.historyIndex),historySize:h(()=>e.value.historySize),undo:r,redo:i}}import{ref as ve,computed as T,onMounted as fe,onUnmounted as Be}from"vue";function Se(t){let e=n(),o=ve(e.getStepStatus(t)),r;fe(()=>{r=I(e,t,p=>{o.value=p})}),Be(()=>{r?.()});let i=async()=>{let p=await e.validate({scope:t}),c=e.getStepErrors(t);return{valid:p,errors:c}},s=()=>e.getStepErrors(t),a=T(()=>!o.value.hasErrors),d=T(()=>o.value.isDirty),u=T(()=>o.value.errors);return{scopeName:t,status:o,errors:u,validate:i,getErrors:s,isValid:a,isDirty:d}}import{ref as Z,computed as g,watch as ge,onMounted as ye,onUnmounted as be}from"vue";function Fe(t){let e=n(),o=Z(0),r=g(()=>t[o.value]??""),i=Z(e.getStepStatus(r.value)),s;ge(r,l=>{i.value=e.getStepStatus(l),s?.(),s=e.subscribeScopeStatus(l,a)});let a=()=>{let l=r.value,S=e.getStepStatus(l);k(i.value,S)||(i.value=S)};ye(()=>{s=e.subscribeScopeStatus(r.value,a)}),be(()=>{s?.()});let d=async()=>{let l=r.value,S=await e.validate({scope:l}),y=e.getStepErrors(l);return{valid:S,errors:y}},u=()=>e.getStepErrors(r.value),p=async()=>{let l=r.value,S=e.getScopeFields(l);if(e.hasValidationsInProgress(S))return!1;let y=await e.validate({scope:l});if(y)o.value=Math.min(o.value+1,t.length-1);else{let f=e.getStepErrors(l),w=Object.keys(f);w.length>0&&e.markFieldsTouched(w)}return y},c=()=>{o.value=Math.max(o.value-1,0)},B=l=>{o.value=Math.max(0,Math.min(l-1,t.length-1))},b=g(()=>o.value+1),v=g(()=>o.value===0),P=g(()=>o.value>=t.length-1),V=g(()=>!i.value.hasErrors),x=g(()=>i.value.isDirty),F=g(()=>i.value.errors);return{step:b,stepIndex:o,scope:r,next:p,prev:c,goTo:B,isFirst:v,isLast:P,status:i,errors:F,isValid:V,isDirty:x,validate:d,getErrors:u}}import{ref as he,onUnmounted as Pe,readonly as Ve}from"vue";function xe(t){let e=n(),o=H(e.getState().values,t),r=he(o),i=e.subscribePath(t,s=>{D(r.value,s)||(r.value=s)});return Pe(i),Ve(r)}import{computed as N,ref as Re}from"vue";function Ue(t,e,o){let r=n(),i=U(t),s=null,a=Re(!1),d={setLoading:c=>{a.value=c},setError:(c,B)=>r.setError(c,B),setValue:c=>i.setValue(c),getUploadKey:()=>s,setUploadKey:c=>{s=c}},u=$(t,e,d),p=G(t,o,d);return{value:i.value,setValue:i.setValue,error:N(()=>i.meta.error.value),isValidating:N(()=>!!i.meta.isValidating.value||a.value),upload:u,remove:p}}import{computed as E,onUnmounted as Te,ref as Ee}from"vue";function we(){let t=n(),e=Ee(t.getPersistMetadata()),o=C(t,a=>{e.value=a});return Te(()=>o()),{restore:async()=>t.restorePersisted(),save:async()=>{await t.forceSave()},clear:async()=>{await t.clearPersisted()},meta:{isSaving:E(()=>e.value.isSaving),isRestoring:E(()=>e.value.isRestoring),error:E(()=>e.value.error)}}}export{oe as provideBitStore,ce as useBitArray,U as useBitField,ie as useBitForm,de as useBitHistory,we as useBitPersist,Se as useBitScope,Fe as useBitSteps,n as useBitStore,Ue as useBitUpload,xe as useBitWatch};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/vue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts","../../src/vue/use-bit-persist.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreHooksApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreHooksApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n createFormController,\n createStoreFormActions,\n} from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n { paths: [\"isValid\", \"isSubmitting\", \"isDirty\"] },\n );\n\n onUnmounted(unsubscribe);\n\n const controller = createFormController(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n const actions = createStoreFormActions(store);\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\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,\n reset,\n ...actions,\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.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 onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n const createId = (index?: number) =>\n store.config.idFactory({\n scope: \"array\",\n path: path as string,\n index,\n });\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map((_, index) => createId(index)));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, (_, i) =>\n createId(currentIds.length + i),\n );\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(createId(ids.value.length));\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(createId(0));\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, createId(index));\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map((_, index) => createId(index));\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { isHistoryMetaEqual } from \"../core/history-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(store.getHistoryMetadata());\n\n const unsubscribe = store.subscribe(() => {\n const nextMeta = store.getHistoryMetadata();\n if (!isHistoryMetaEqual(meta.value, nextMeta)) {\n meta.value = nextMeta;\n }\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport {\n getScopeSubscriptionPaths,\n isScopeStatusEqual,\n} from \"../core/scope-status\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const scopeFields = store.getScopeFields(scopeName);\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = store.subscribeSelector(\n (state) => ({ errors: state.errors, isDirty: state.isDirty }),\n () => {\n const newStatus = store.getStepStatus(scopeName);\n if (!isScopeStatusEqual(status.value, newStatus)) {\n status.value = newStatus;\n }\n },\n { paths: getScopeSubscriptionPaths(scopeFields) },\n );\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport {\n getScopeSubscriptionPaths,\n isScopeStatusEqual,\n} from \"../core/scope-status\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: () => void;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (!isScopeStatusEqual(status.value, newStatus)) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribeSelector(\n (state) => ({ errors: state.errors, isDirty: state.isDirty }),\n updateStatus,\n { paths: getScopeSubscriptionPaths(store.getScopeFields(scope.value)) },\n );\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.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 { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.watch(path, (newValue) => {\n if (!deepEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef, ref } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = ref(false);\n\n const kernelCallbacks = {\n setLoading: (val: boolean) => {\n isUploading.value = val;\n },\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val),\n getUploadKey: () => uploadKey,\n setUploadKey: (key: string | null) => {\n uploadKey = key;\n },\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks);\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(\n () => !!field.meta.isValidating.value || isUploading.value,\n ),\n upload,\n remove,\n };\n}\n","import { computed, onUnmounted, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist<T extends object = any>(): UseBitPersistResult {\n const store = useBitStore<T>();\n const meta = ref(store.getPersistMetadata());\n\n const unsubscribe = store.subscribeSelector(\n (state) => state.persist,\n (nextMeta) => {\n meta.value = nextMeta;\n },\n { paths: [\"persist\"] },\n );\n\n onUnmounted(() => unsubscribe());\n\n const restore = async (): Promise<boolean> => {\n return store.restorePersisted();\n };\n\n const save = async (): Promise<void> => {\n await store.forceSave();\n };\n\n const clear = async (): Promise<void> => {\n await store.clearPersisted();\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: computed(() => meta.value.isSaving),\n isRestoring: computed(() => meta.value.isRestoring),\n error: computed(() => meta.value.error),\n },\n };\n}\n"],"mappings":"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","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","actions","createStoreFormActions","isValid","computed","isSubmitting","isDirty","onSubmit","reset","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","resolvedMask","fieldController","createMaskedFieldController","state","shallowRef","unsubscribe","subscribeFieldState","nextState","onUnmounted","rawValue","computed","displayValue","modelValue","val","rawError","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","ref","computed","onUnmounted","useBitArray","path","store","useBitStore","createId","index","initialValues","val","getDeepValue","values","ref","ids","_","unsubscribe","newValues","nextValues","currentIds","diff","newIds","i","onUnmounted","fields","computed","v","length","from","to","id","a","b","items","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","unsubscribe","nextMeta","isHistoryMetaEqual","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","useBitScope","scopeName","store","useBitStore","scopeFields","status","ref","unsubscribe","onMounted","state","newStatus","isScopeStatusEqual","getScopeSubscriptionPaths","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","isScopeStatusEqual","onMounted","state","getScopeSubscriptionPaths","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","deepEqual","onUnmounted","readonly","computed","ref","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","isUploading","ref","kernelCallbacks","val","path","msg","key","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","onUnmounted","ref","useBitPersist","store","useBitStore","meta","ref","unsubscribe","state","nextMeta","onUnmounted","computed"]}
|
|
1
|
+
{"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts","../../src/vue/use-bit-persist.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitFormBindingApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitFormBindingApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreHooksApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitFormBindingApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createFrameworkFormBinding, observeFormMetaSnapshot } from \"../core\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: true,\n isDirty: false,\n isSubmitting: false,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = observeFormMetaSnapshot(store, (nextMeta) => {\n state.value = nextMeta;\n });\n\n onUnmounted(unsubscribe);\n\n const { controller, actions } = createFrameworkFormBinding(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\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,\n reset,\n ...actions,\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n cleanupRegisteredField,\n createFrameworkMaskedFieldBinding,\n deriveFieldMeta,\n subscribeFieldState,\n} from \"../core\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const { fieldController } = createFrameworkMaskedFieldBinding(store, path);\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n cleanupRegisteredField(store, path as string);\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const metaState = computed(() => deriveFieldMeta(state.value));\n const error = computed(() => metaState.value.error);\n const touched = computed(() => metaState.value.touched);\n const invalid = computed(() => metaState.value.invalid);\n const isValidating = computed(() => metaState.value.isValidating);\n const isDirty = computed(() => metaState.value.isDirty);\n const isHidden = computed(() => metaState.value.isHidden);\n const isRequired = computed(() => metaState.value.isRequired);\n const hasError = computed(() => metaState.value.hasError);\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 onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { shallowRef, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createArrayBindingController, BitArrayPath } from \"../core\";\nimport { cleanupRegisteredPrefix } from \"../core\";\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const controller = createArrayBindingController<TForm, P>(store, path);\n const values = shallowRef(controller.readItems());\n\n const unsubscribe = store.subscribePath(path, () => {\n values.value = controller.readItems();\n });\n\n onUnmounted(() => {\n unsubscribe();\n cleanupRegisteredPrefix(store, `${path as string}.`);\n });\n\n const fields = computed(() => controller.getFields(values.value));\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: controller.append,\n prepend: controller.prepend,\n insert: controller.insert,\n remove: controller.remove,\n move: controller.move,\n swap: controller.swap,\n replace: controller.replace,\n clear: controller.clear,\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { observeHistoryMetaSnapshot, readHistoryMetaSnapshot } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(readHistoryMetaSnapshot(store));\n\n const unsubscribe = observeHistoryMetaSnapshot(store, (nextMeta) => {\n meta.value = nextMeta;\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { observeScopeStatusSnapshot } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = observeScopeStatusSnapshot(store, scopeName, (nextStatus) => {\n status.value = nextStatus;\n });\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { isScopeStatusEqual } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: (() => void) | undefined;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n unsubscribe?.();\n unsubscribe = store.subscribeScopeStatus(newScope, updateStatus);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (!isScopeStatusEqual(status.value, newStatus)) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribeScopeStatus(scope.value, updateStatus);\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.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 { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue, valueEqual, BitPath, BitPathValue } from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.subscribePath(path, (newValue) => {\n if (!valueEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef, ref } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = ref(false);\n\n const kernelCallbacks = {\n setLoading: (val: boolean) => {\n isUploading.value = val;\n },\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val),\n getUploadKey: () => uploadKey,\n setUploadKey: (key: string | null) => {\n uploadKey = key;\n },\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks);\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(\n () => !!field.meta.isValidating.value || isUploading.value,\n ),\n upload,\n remove,\n };\n}\n","import { computed, onUnmounted, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { observePersistMetaSnapshot } from \"../core\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist<T extends object = any>(): UseBitPersistResult {\n const store = useBitStore<T>();\n const meta = ref(store.getPersistMetadata());\n\n const unsubscribe = observePersistMetaSnapshot(store, (nextMeta) => {\n meta.value = nextMeta;\n });\n\n onUnmounted(() => unsubscribe());\n\n const restore = async (): Promise<boolean> => {\n return store.restorePersisted();\n };\n\n const save = async (): Promise<void> => {\n await store.forceSave();\n };\n\n const clear = async (): Promise<void> => {\n await store.clearPersisted();\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: computed(() => meta.value.isSaving),\n isRestoring: computed(() => meta.value.isRestoring),\n error: computed(() => meta.value.error),\n },\n };\n}\n"],"mappings":"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","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","observeFormMetaSnapshot","nextMeta","onUnmounted","controller","actions","createFrameworkFormBinding","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","fieldController","createFrameworkMaskedFieldBinding","state","shallowRef","unsubscribe","subscribeFieldState","nextState","onUnmounted","cleanupRegisteredField","rawValue","computed","displayValue","modelValue","val","metaState","deriveFieldMeta","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","shallowRef","computed","onUnmounted","useBitArray","path","store","useBitStore","controller","createArrayBindingController","values","shallowRef","unsubscribe","onUnmounted","cleanupRegisteredPrefix","fields","computed","length","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","readHistoryMetaSnapshot","unsubscribe","observeHistoryMetaSnapshot","nextMeta","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","useBitScope","scopeName","store","useBitStore","status","ref","unsubscribe","onMounted","observeScopeStatusSnapshot","nextStatus","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","isScopeStatusEqual","onMounted","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","valueEqual","onUnmounted","readonly","computed","ref","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","isUploading","ref","kernelCallbacks","val","path","msg","key","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","onUnmounted","ref","useBitPersist","store","useBitStore","meta","ref","unsubscribe","observePersistMetaSnapshot","nextMeta","onUnmounted","computed"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lehnihon/bit-form",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.7",
|
|
4
4
|
"description": "Gerenciamento de estado de formulários agnóstico e performático",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
"import": "./dist/index.js",
|
|
41
41
|
"require": "./dist/index.cjs"
|
|
42
42
|
},
|
|
43
|
+
"./core": {
|
|
44
|
+
"types": "./dist/core.d.ts",
|
|
45
|
+
"import": "./dist/core.js",
|
|
46
|
+
"require": "./dist/core.cjs"
|
|
47
|
+
},
|
|
43
48
|
"./react": {
|
|
44
49
|
"types": "./dist/react/index.d.ts",
|
|
45
50
|
"import": "./dist/react/index.js",
|
|
@@ -84,6 +89,11 @@
|
|
|
84
89
|
"types": "./dist/devtools/bridge.d.ts",
|
|
85
90
|
"import": "./dist/devtools/bridge.js",
|
|
86
91
|
"require": "./dist/devtools/bridge.cjs"
|
|
92
|
+
},
|
|
93
|
+
"./devtools/protocol": {
|
|
94
|
+
"types": "./dist/devtools/protocol.d.ts",
|
|
95
|
+
"import": "./dist/devtools/protocol.js",
|
|
96
|
+
"require": "./dist/devtools/protocol.cjs"
|
|
87
97
|
}
|
|
88
98
|
},
|
|
89
99
|
"files": [
|
|
@@ -108,16 +118,18 @@
|
|
|
108
118
|
"test:e2e:headed": "playwright test -c quality/e2e/playwright.config.ts --headed",
|
|
109
119
|
"test:e2e:debug": "playwright test -c quality/e2e/playwright.config.ts --debug",
|
|
110
120
|
"quality:e2e:serve": "vite --config quality/e2e/fixtures/react-pilot/vite.config.ts",
|
|
121
|
+
"quality:e2e:serve:prod": "vite build --config quality/e2e/fixtures/react-pilot/vite.config.ts && vite preview --config quality/e2e/fixtures/react-pilot/vite.config.ts --host 127.0.0.1 --port 4173 --strictPort",
|
|
111
122
|
"test:bench": "vitest run -c quality/vitest.quality.config.ts quality/bench/perf.test.ts",
|
|
123
|
+
"test:bench:memory": "vitest run -c quality/vitest.quality.config.ts quality/bench/memory.bench.ts",
|
|
112
124
|
"test:bench:compare": "vitest run -c quality/vitest.quality.config.ts quality/bench/rhf-compare.test.ts --maxWorkers=1 --minWorkers=1",
|
|
113
|
-
"test:bench:
|
|
125
|
+
"test:bench:compare:browser": "playwright test -c quality/e2e/playwright.config.ts quality/e2e/tests/benchmark-compare.spec.ts --project=chromium",
|
|
126
|
+
"test:bench:compare:browser:prod": "E2E_PROD=1 playwright test -c quality/e2e/playwright.config.ts quality/e2e/tests/benchmark-compare.spec.ts --project=chromium",
|
|
127
|
+
"test:bench:all": "npm run test:bench && npm run test:bench:memory && npm run test:bench:compare",
|
|
128
|
+
"test:quality:critical": "npm run test:bench && npm run test:bench:memory && npm run test:release-gates",
|
|
114
129
|
"test:compat": "node quality/compat/run-compat.mjs",
|
|
115
130
|
"test:observability": "vitest run -c quality/vitest.quality.config.ts quality/release-gates/observability.test.ts",
|
|
116
131
|
"test:bundle-size": "vitest run -c quality/vitest.quality.config.ts quality/release-gates/bundle-size.test.ts",
|
|
117
|
-
"
|
|
118
|
-
"changeset": "changeset",
|
|
119
|
-
"changeset:status": "changeset status",
|
|
120
|
-
"changeset:version": "changeset version",
|
|
132
|
+
"test:release-gates": "npm run build && npm run test:bench && npm run test:bench:memory && npm run test:bundle-size && vitest run -c quality/vitest.quality.config.ts quality/release-gates/bundle-size-gate.test.ts && npm run test:observability",
|
|
121
133
|
"clean": "rm -rf dist && rm -f *.tsbuildinfo",
|
|
122
134
|
"lint": "npm run clean && tsc --build && tsc -p tsconfig.test.json",
|
|
123
135
|
"prepublishOnly": "npm run build && npm run test",
|
|
@@ -129,7 +141,6 @@
|
|
|
129
141
|
"@angular/core": ">=16.0.0",
|
|
130
142
|
"joi": "^17.0.0",
|
|
131
143
|
"react": ">=16.8.0",
|
|
132
|
-
"rxjs": "^7.0.0",
|
|
133
144
|
"vue": ">=3.0.0",
|
|
134
145
|
"yup": "^1.0.0",
|
|
135
146
|
"zod": "^3.0.0"
|
|
@@ -152,19 +163,16 @@
|
|
|
152
163
|
},
|
|
153
164
|
"joi": {
|
|
154
165
|
"optional": true
|
|
155
|
-
},
|
|
156
|
-
"rxjs": {
|
|
157
|
-
"optional": true
|
|
158
166
|
}
|
|
159
167
|
},
|
|
160
168
|
"devDependencies": {
|
|
161
|
-
"@changesets/cli": "^2.29.7",
|
|
162
169
|
"@angular/common": "^21.1.3",
|
|
163
170
|
"@angular/compiler": "^21.1.3",
|
|
164
171
|
"@angular/core": "^21.1.3",
|
|
165
172
|
"@angular/platform-browser": "^21.1.3",
|
|
166
173
|
"@angular/platform-browser-dynamic": "^21.1.3",
|
|
167
174
|
"@playwright/test": "^1.55.0",
|
|
175
|
+
"@tanstack/react-form": "^1.28.5",
|
|
168
176
|
"@testing-library/jest-dom": "^6.6.3",
|
|
169
177
|
"@testing-library/react": "^16.2.0",
|
|
170
178
|
"@types/node": "^22.19.11",
|
|
@@ -176,6 +184,7 @@
|
|
|
176
184
|
"@vitejs/plugin-vue": "^5.2.1",
|
|
177
185
|
"@vitest/coverage-v8": "^3.0.5",
|
|
178
186
|
"@vue/test-utils": "^2.4.6",
|
|
187
|
+
"formik": "^2.4.9",
|
|
179
188
|
"joi": "^17.13.3",
|
|
180
189
|
"jsdom": "^26.0.0",
|
|
181
190
|
"react": "^19.0.0",
|
package/dist/chunk-2FDEJYA5.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as l,i as u}from"./chunk-64KSP4TP.js";import{b as d,c}from"./chunk-3NUJVIAM.js";async function m(e,r,o,i){try{let t=await e(r,o);i.onSuccess(t)}catch(t){if(l(t)){i.onServerErrors(u(t));return}i.onUnhandledError(t instanceof Error?t:new Error(String(t)))}}function E(e){return{setField:(r,o)=>e.setField(r,o),blurField:r=>e.blurField(r),replaceValues:r=>e.replaceValues(r),hydrate:r=>e.hydrate(r),rebase:r=>e.rebase(r),setError:(r,o)=>e.setError(r,o),setErrors:r=>e.setErrors(r),setServerErrors:r=>e.setServerErrors(r),validate:r=>e.validate(r),transaction:r=>e.transaction(r)}}function p(e,r){e?.preventDefault?.(),r?.stopPropagation&&e?.stopPropagation?.()}function f(e,r,o){return{submit:s=>a=>(p(a,o),e.submit(s)),onSubmit:s=>a=>(p(a,o),r.setSubmissionError(null),e.submit(async(b,F)=>{await m(s,b,F,{onSuccess:n=>{r.setSubmissionResult(n),r.setSubmissionError(null)},onServerErrors:n=>{e.setServerErrors(n)},onUnhandledError:n=>{r.setSubmissionError(n)}})})),reset:()=>{e.reset(),r.clearSubmissionState()},getValues:()=>e.getState().values,getErrors:()=>e.getState().errors,getTouched:()=>e.getState().touched,getDirtyValues:()=>e.getDirtyValues()}}function k(e,r,o){return e.subscribeSelector(()=>e.getFieldState(r),o,{paths:[r],autoTrackPaths:!1,equalityFn:(i,t)=>i.value===t.value&&i.error===t.error&&i.touched===t.touched&&i.isHidden===t.isHidden&&i.isRequired===t.isRequired&&i.isDirty===t.isDirty&&i.isValidating===t.isValidating})}function h(e,r,o){return{setValue:s=>{e.setField(r,c(s,o))},setBlur:()=>e.blurField(r),displayValue:s=>d(s,o)}}function P(e,r){let o=Object.keys(e),i=Object.keys(r);return o.length!==i.length?!1:o.every(t=>e[t]===r[t])}function x(e,r){return e.hasErrors===r.hasErrors&&e.isDirty===r.isDirty&&P(e.errors,r.errors)}function H(e){return[...e,"isDirty"]}export{E as a,f as b,k as c,h as d,x as e,H as f};
|
|
2
|
-
//# sourceMappingURL=chunk-2FDEJYA5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/submit-handler.ts","../src/core/form-controller.ts","../src/core/field-controller.ts","../src/core/scope-status.ts"],"sourcesContent":["import { extractServerErrors, isValidationErrorShape } from \"./utils\";\n\nexport interface BitSubmitExecutionHandlers {\n onServerErrors: (errors: Record<string, string[] | string>) => void;\n onUnhandledError: (error: Error) => void;\n onSuccess: (result: unknown) => void;\n}\n\nexport async function executeSubmitHandler<T extends object>(\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n values: T,\n dirtyValues: Partial<T> | undefined,\n handlers: BitSubmitExecutionHandlers,\n): Promise<void> {\n try {\n const result = await handler(values, dirtyValues);\n handlers.onSuccess(result);\n } catch (error) {\n if (isValidationErrorShape(error)) {\n handlers.onServerErrors(extractServerErrors(error));\n return;\n }\n\n handlers.onUnhandledError(\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n}\n","import { executeSubmitHandler } from \"./submit-handler\";\nimport type { BitStoreHooksApi } from \"./store/contracts/public-types\";\n\nexport type BitFormDomEvent = {\n preventDefault?: () => void;\n stopPropagation?: () => void;\n};\n\nexport interface BitFormControllerRuntime {\n clearSubmissionState: () => void;\n setSubmissionResult: (result: unknown) => void;\n setSubmissionError: (error: Error | null) => void;\n}\n\nexport interface BitFormControllerOptions {\n stopPropagation?: boolean;\n}\n\nexport function createStoreFormActions<T extends object>(\n store: BitStoreHooksApi<T>,\n) {\n return {\n setField: <P extends Parameters<BitStoreHooksApi<T>[\"setField\"]>[0]>(\n path: P,\n value: Parameters<BitStoreHooksApi<T>[\"setField\"]>[1],\n ) => store.setField(path, value),\n blurField: <P extends Parameters<BitStoreHooksApi<T>[\"blurField\"]>[0]>(\n path: P,\n ) => store.blurField(path),\n replaceValues: (values: T) => store.replaceValues(values),\n hydrate: (values: Parameters<BitStoreHooksApi<T>[\"hydrate\"]>[0]) =>\n store.hydrate(values),\n rebase: (values: T) => store.rebase(values),\n setError: (path: string, message: string | undefined) =>\n store.setError(path, message),\n setErrors: (errors: Parameters<BitStoreHooksApi<T>[\"setErrors\"]>[0]) =>\n store.setErrors(errors),\n setServerErrors: (\n serverErrors: Parameters<BitStoreHooksApi<T>[\"setServerErrors\"]>[0],\n ) => store.setServerErrors(serverErrors),\n validate: (options?: Parameters<BitStoreHooksApi<T>[\"validate\"]>[0]) =>\n store.validate(options),\n transaction: <TResult>(callback: () => TResult) =>\n store.transaction(callback),\n };\n}\n\nexport function preventFormEvent(\n event?: BitFormDomEvent,\n options?: BitFormControllerOptions,\n) {\n event?.preventDefault?.();\n if (options?.stopPropagation) {\n event?.stopPropagation?.();\n }\n}\n\nexport function createFormController<T extends object>(\n store: BitStoreHooksApi<T>,\n runtime: BitFormControllerRuntime,\n options?: BitFormControllerOptions,\n) {\n const submit = (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n return store.submit(onSuccess);\n };\n };\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (event?: BitFormDomEvent) => {\n preventFormEvent(event, options);\n runtime.setSubmissionError(null);\n\n return store.submit(async (values, dirtyValues) => {\n await executeSubmitHandler(handler, values, dirtyValues, {\n onSuccess: (result) => {\n runtime.setSubmissionResult(result);\n runtime.setSubmissionError(null);\n },\n onServerErrors: (serverErrors) => {\n store.setServerErrors(serverErrors);\n },\n onUnhandledError: (error) => {\n runtime.setSubmissionError(error);\n },\n });\n });\n };\n };\n\n const reset = () => {\n store.reset();\n runtime.clearSubmissionState();\n };\n\n return {\n submit,\n onSubmit,\n reset,\n getValues: () => store.getState().values,\n getErrors: () => store.getState().errors,\n getTouched: () => store.getState().touched,\n getDirtyValues: () => store.getDirtyValues(),\n };\n}\n","import { formatMaskedValue, parseMaskedInput } from \"./mask/field-binding\";\nimport type { BitMask } from \"./mask/types\";\nimport type { BitStoreHooksApi } from \"./store/contracts/public-types\";\nimport type {\n BitFieldState,\n BitPath,\n BitPathValue,\n} from \"./store/contracts/types\";\n\nexport function subscribeFieldState<\n TForm extends object,\n P extends BitPath<TForm>,\n>(\n store: BitStoreHooksApi<TForm>,\n path: P,\n listener: (\n value: Readonly<BitFieldState<TForm, BitPathValue<TForm, P>>>,\n ) => void,\n) {\n return store.subscribeSelector(\n () =>\n store.getFieldState(path) as Readonly<\n BitFieldState<TForm, BitPathValue<TForm, P>>\n >,\n listener,\n {\n paths: [path as string],\n autoTrackPaths: false,\n equalityFn: (prev, next) =>\n prev.value === next.value &&\n prev.error === next.error &&\n prev.touched === next.touched &&\n prev.isHidden === next.isHidden &&\n prev.isRequired === next.isRequired &&\n prev.isDirty === next.isDirty &&\n prev.isValidating === next.isValidating,\n },\n );\n}\n\nexport function createMaskedFieldController<\n TForm extends object,\n P extends BitPath<TForm>,\n>(store: BitStoreHooksApi<TForm>, path: P, mask: BitMask | undefined) {\n const setValue = (value: unknown) => {\n store.setField(\n path,\n parseMaskedInput(value, mask) as BitPathValue<TForm, P>,\n );\n };\n\n const setBlur = () => store.blurField(path);\n\n const displayValue = (value: unknown) => formatMaskedValue(value, mask);\n\n return {\n setValue,\n setBlur,\n displayValue,\n };\n}\n","import type { ScopeStatus } from \"./store/contracts/types\";\n\nexport function areScopeErrorsEqual(\n currentErrors: Record<string, string>,\n nextErrors: Record<string, string>,\n): boolean {\n const currentKeys = Object.keys(currentErrors);\n const nextKeys = Object.keys(nextErrors);\n\n if (currentKeys.length !== nextKeys.length) {\n return false;\n }\n\n return currentKeys.every((key) => currentErrors[key] === nextErrors[key]);\n}\n\nexport function isScopeStatusEqual(\n currentStatus: ScopeStatus,\n nextStatus: ScopeStatus,\n): boolean {\n return (\n currentStatus.hasErrors === nextStatus.hasErrors &&\n currentStatus.isDirty === nextStatus.isDirty &&\n areScopeErrorsEqual(currentStatus.errors, nextStatus.errors)\n );\n}\n\nexport function getScopeSubscriptionPaths(scopeFields: readonly string[]) {\n return [...scopeFields, \"isDirty\"];\n}\n"],"mappings":"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","names":["executeSubmitHandler","handler","values","dirtyValues","handlers","result","error","isValidationErrorShape","extractServerErrors","createStoreFormActions","store","path","value","values","message","errors","serverErrors","options","callback","preventFormEvent","event","createFormController","runtime","onSuccess","handler","dirtyValues","executeSubmitHandler","result","error","subscribeFieldState","store","path","listener","prev","next","createMaskedFieldController","mask","value","parseMaskedInput","formatMaskedValue","areScopeErrorsEqual","currentErrors","nextErrors","currentKeys","nextKeys","key","isScopeStatusEqual","currentStatus","nextStatus","getScopeSubscriptionPaths","scopeFields"]}
|