@lehnihon/bit-form 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +37 -44
  4. package/dist/angular/index.d.ts +37 -44
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/bus-B1my-s_o.d.ts +16 -0
  8. package/dist/bus-BI29cKpD.d.cts +16 -0
  9. package/dist/chunk-2UVV7SU4.js +2 -0
  10. package/dist/chunk-2UVV7SU4.js.map +1 -0
  11. package/dist/chunk-676WXU4S.cjs +2 -0
  12. package/dist/chunk-676WXU4S.cjs.map +1 -0
  13. package/dist/chunk-7MBRAKBL.js +2 -0
  14. package/dist/chunk-7MBRAKBL.js.map +1 -0
  15. package/dist/chunk-AD7T42HJ.js +1 -0
  16. package/dist/chunk-AD7T42HJ.js.map +1 -0
  17. package/dist/chunk-C4BYXZGB.cjs +1 -0
  18. package/dist/chunk-C4BYXZGB.cjs.map +1 -0
  19. package/dist/chunk-ER2DNS7T.cjs +2 -0
  20. package/dist/chunk-ER2DNS7T.cjs.map +1 -0
  21. package/dist/chunk-NWPA4F3B.cjs +2 -0
  22. package/dist/chunk-NWPA4F3B.cjs.map +1 -0
  23. package/dist/chunk-O5RRLZR7.js +2 -0
  24. package/dist/chunk-O5RRLZR7.js.map +1 -0
  25. package/dist/chunk-TRPMTJ35.js +2 -0
  26. package/dist/chunk-TRPMTJ35.js.map +1 -0
  27. package/dist/chunk-VSWCUQAF.cjs +2 -0
  28. package/dist/chunk-VSWCUQAF.cjs.map +1 -0
  29. package/dist/cli/index.cjs +3 -3
  30. package/dist/core/light.cjs +2 -0
  31. package/dist/core/light.cjs.map +1 -0
  32. package/dist/core/light.d.cts +29 -0
  33. package/dist/core/light.d.ts +29 -0
  34. package/dist/core/light.js +2 -0
  35. package/dist/core/light.js.map +1 -0
  36. package/dist/devtools/bridge.cjs +1 -1
  37. package/dist/devtools/bridge.cjs.map +1 -1
  38. package/dist/devtools/bridge.js +1 -1
  39. package/dist/devtools/bridge.js.map +1 -1
  40. package/dist/devtools/index.cjs +132 -1
  41. package/dist/devtools/index.cjs.map +1 -1
  42. package/dist/devtools/index.js +132 -1
  43. package/dist/devtools/index.js.map +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +19 -52
  47. package/dist/index.d.ts +19 -52
  48. package/dist/index.js +1 -1
  49. package/dist/public-types-Bl94ECPb.d.ts +91 -0
  50. package/dist/public-types-CLIDR8aC.d.cts +91 -0
  51. package/dist/react/index.cjs +1 -1
  52. package/dist/react/index.cjs.map +1 -1
  53. package/dist/react/index.d.cts +6 -5
  54. package/dist/react/index.d.ts +6 -5
  55. package/dist/react/index.js +1 -1
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react-native/index.cjs +1 -1
  58. package/dist/react-native/index.cjs.map +1 -1
  59. package/dist/react-native/index.d.cts +5 -4
  60. package/dist/react-native/index.d.ts +5 -4
  61. package/dist/react-native/index.js +1 -1
  62. package/dist/react-native/index.js.map +1 -1
  63. package/dist/resolvers/joi.cjs +1 -1
  64. package/dist/resolvers/joi.cjs.map +1 -1
  65. package/dist/resolvers/joi.d.cts +4 -4
  66. package/dist/resolvers/joi.d.ts +4 -4
  67. package/dist/resolvers/joi.js +1 -1
  68. package/dist/resolvers/joi.js.map +1 -1
  69. package/dist/resolvers/types.cjs +1 -0
  70. package/dist/resolvers/types.cjs.map +1 -0
  71. package/dist/resolvers/types.d.cts +16 -0
  72. package/dist/resolvers/types.d.ts +16 -0
  73. package/dist/resolvers/types.js +1 -0
  74. package/dist/resolvers/types.js.map +1 -0
  75. package/dist/resolvers/yup.cjs +1 -1
  76. package/dist/resolvers/yup.cjs.map +1 -1
  77. package/dist/resolvers/yup.d.cts +4 -4
  78. package/dist/resolvers/yup.d.ts +4 -4
  79. package/dist/resolvers/yup.js +1 -1
  80. package/dist/resolvers/yup.js.map +1 -1
  81. package/dist/resolvers/zod.cjs +1 -1
  82. package/dist/resolvers/zod.cjs.map +1 -1
  83. package/dist/resolvers/zod.d.cts +4 -4
  84. package/dist/resolvers/zod.d.ts +4 -4
  85. package/dist/resolvers/zod.js +1 -1
  86. package/dist/resolvers/zod.js.map +1 -1
  87. package/dist/{bus-70e4jnBj.d.cts → types-DqeN9Kq_.d.cts} +16 -17
  88. package/dist/{bus-70e4jnBj.d.ts → types-DqeN9Kq_.d.ts} +16 -17
  89. package/dist/{use-bit-persist-COdNw_fv.d.ts → use-bit-persist-BgFBg8lQ.d.cts} +43 -53
  90. package/dist/{use-bit-persist-JshPvwwy.d.cts → use-bit-persist-JtinX6Vy.d.ts} +43 -53
  91. package/dist/vue/index.cjs +1 -1
  92. package/dist/vue/index.cjs.map +1 -1
  93. package/dist/vue/index.d.cts +54 -61
  94. package/dist/vue/index.d.ts +54 -61
  95. package/dist/vue/index.js +1 -1
  96. package/dist/vue/index.js.map +1 -1
  97. package/package.json +7 -1
  98. package/dist/chunk-25Q2XJBV.cjs +0 -133
  99. package/dist/chunk-25Q2XJBV.cjs.map +0 -1
  100. package/dist/chunk-2HAQ3QEQ.js +0 -133
  101. package/dist/chunk-2HAQ3QEQ.js.map +0 -1
  102. package/dist/chunk-HTB6QIUQ.js +0 -2
  103. package/dist/chunk-HTB6QIUQ.js.map +0 -1
  104. package/dist/chunk-W22D7QVJ.cjs +0 -2
  105. package/dist/chunk-W22D7QVJ.cjs.map +0 -1
  106. package/dist/public-types-BVZ16kgZ.d.ts +0 -74
  107. package/dist/public-types-r2aP68Gg.d.cts +0 -74
@@ -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","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","onUnmounted","getValues","getErrors","getTouched","getDirtyValues","isValid","computed","isSubmitting","isDirty","onSuccess","e","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","useBitField","path","resolvedMask","rawValue","getDeepValue","displayValue","val","modelValue","rawError","error","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","generateId","useBitArray","getSnapshot","initialValues","ids","newValues","currentIds","diff","newIds"],"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 { BitFrameworkStore } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitFrameworkStore<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitFrameworkStore<T>) {\n provide(BIT_STORE_KEY, 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 BitFrameworkStore<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n const state = shallowRef(store.getState());\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribe(() => {\n state.value = { ...store.getState() };\n });\n\n onUnmounted(unsubscribe);\n\n const getValues = () => state.value.values;\n const getErrors = () => state.value.errors;\n const getTouched = () => state.value.touched;\n const getDirtyValues = () => store.getDirtyValues();\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 = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\n lastResponse.value = result;\n submitError.value = null;\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.value =\n err instanceof Error ? err : new Error(String(err));\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.value = null;\n lastResponse.value = null;\n };\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,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit: (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n onSubmit,\n reset,\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n // Array mutations (grouped)\n mutations: {\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n },\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { getDeepValue } from \"../core\";\nimport type { UseBitFieldVueMeta, UseBitFieldVueResult } from \"./types\";\n\nexport function useBitField<TValue = any>(\n path: string,\n): UseBitFieldVueResult<TValue> {\n const store = useBitStore<any>();\n\n const resolvedMask = store.resolveMask(path as string);\n\n const state = shallowRef(store.getState());\n\n const unsubscribe = store.subscribe(() => {\n state.value = store.getState();\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path as string);\n }\n });\n\n const rawValue = computed(\n () => getDeepValue(state.value.values, path as string) as TValue,\n );\n\n const displayValue = computed(() => {\n const val = rawValue.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val as any) : String(val);\n });\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: any) => {\n if (!resolvedMask) {\n store.setField(path, val);\n return;\n }\n\n store.setField(path, resolvedMask.parse(String(val ?? \"\")));\n },\n });\n\n const rawError = computed(() => state.value.errors[path]);\n const error = computed(() =>\n state.value.touched[path] ? state.value.errors[path] : undefined,\n );\n const touched = computed(() => !!state.value.touched[path]);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => {\n state.value;\n return store.isFieldValidating(path);\n });\n\n const isDirty = computed(() => {\n state.value;\n return store.isFieldDirty(path);\n });\n\n const isHidden = computed(() => {\n state.value;\n return store.isHidden(path);\n });\n\n const isRequired = computed(() => {\n state.value;\n return store.isRequired(path);\n });\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (val: any) => {\n modelValue.value = val;\n };\n\n const setBlur = () => store.blurField(path);\n\n const onInput = (val: any) => {\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\nconst generateId = () => Math.random().toString(36).substring(2, 9);\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 type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P> | 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(generateId));\n\n const unsubscribe = store.subscribe(() => {\n const newValues = getSnapshot();\n values.value = [...newValues];\n\n if (newValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (newValues.length > currentIds.length) {\n const diff = newValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, newValues.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(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\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(generateId);\n store.setField(path as unknown as BitPath<TForm>, items as any);\n },\n clear: () => {\n ids.value = [];\n store.setField(path as unknown as BitPath<TForm>, [] as any);\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/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","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","generateId","useBitArray","initialValues","getDeepValue","values","ids","newValues","nextValues","currentIds","diff","newIds"],"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 } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\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 { createFormController } 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 );\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\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 replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n };\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\nconst generateId = () => Math.random().toString(36).substring(2, 9);\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 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(generateId));\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 }, generateId);\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(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\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(generateId);\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,73 +1,39 @@
1
- import { b as BitFrameworkStore } from '../public-types-r2aP68Gg.cjs';
2
- import { i as BitErrors, z as BitTouched, p as BitPath, q as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, e as BitArrayPath, d as BitArrayItem } from '../bus-70e4jnBj.cjs';
1
+ import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-CLIDR8aC.cjs';
2
+ import '../bus-BI29cKpD.cjs';
3
+ import { S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, f as BitPath, g as BitPathValue, k as BitArrayPath, l as BitArrayItem } from '../types-DqeN9Kq_.cjs';
3
4
  import * as vue from 'vue';
4
- import { Ref, ComputedRef } from 'vue';
5
+ import { ComputedRef, Ref } from 'vue';
5
6
  import * as _vue_reactivity from '@vue/reactivity';
6
7
  import * as _vue_shared from '@vue/shared';
7
8
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
8
9
 
9
- declare function provideBitStore<T extends object>(store: BitFrameworkStore<T>): void;
10
- declare function useBitStore<T extends object>(): BitFrameworkStore<T>;
11
-
12
- declare function useBitForm<T extends object>(): {
13
- meta: {
14
- isValid: vue.ComputedRef<boolean>;
15
- isDirty: vue.ComputedRef<boolean>;
16
- isSubmitting: vue.ComputedRef<boolean>;
17
- submitError: vue.Ref<Error | null, Error | null>;
18
- lastResponse: vue.Ref<unknown, unknown>;
19
- };
20
- getValues: () => T;
21
- getErrors: () => BitErrors<T>;
22
- getTouched: () => BitTouched<T>;
23
- getDirtyValues: () => Partial<T>;
24
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
25
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
26
- reset: () => void;
27
- setValues: (values: T) => void;
28
- setError: (path: string, message: string | undefined) => void;
29
- setErrors: (errors: BitErrors<T>) => void;
30
- setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
31
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
32
- blurField: <P extends BitPath<T, "">>(path: P) => void;
33
- validate: (options?: {
34
- scope?: string;
35
- scopeFields?: string[];
36
- }) => Promise<boolean>;
37
- mutations: {
38
- pushItem: (path: any, value: any) => void;
39
- prependItem: (path: any, value: any) => void;
40
- removeItem: (path: any, index: number) => void;
41
- insertItem: (path: any, index: number, value: any) => void;
42
- moveItem: (path: any, from: number, to: number) => void;
43
- swapItems: (path: any, indexA: number, indexB: number) => void;
44
- };
45
- };
10
+ declare function provideBitStore<T extends object>(store: BitStoreApi<T>): void;
11
+ declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
46
12
 
47
13
  /**
48
14
  * Metadata describing the current state of a form field (Vue reactive).
49
15
  */
50
16
  interface UseBitFieldVueMeta {
51
- error: Readonly<any>;
52
- touched: Readonly<any>;
53
- invalid: Readonly<any>;
54
- isValidating: Readonly<any>;
55
- isDirty: Readonly<any>;
56
- isHidden: Readonly<any>;
57
- isRequired: Readonly<any>;
58
- hasError: Readonly<any>;
17
+ error: ComputedRef<string | undefined>;
18
+ touched: ComputedRef<boolean>;
19
+ invalid: ComputedRef<boolean>;
20
+ isValidating: ComputedRef<boolean>;
21
+ isDirty: ComputedRef<boolean>;
22
+ isHidden: ComputedRef<boolean>;
23
+ isRequired: ComputedRef<boolean>;
24
+ hasError: ComputedRef<boolean>;
59
25
  }
60
26
  /**
61
27
  * Result from useBitField hook in Vue.
62
28
  * Provides field state, value, handlers, and metadata with Vue reactivity.
63
29
  */
64
30
  interface UseBitFieldVueResult<TValue = any> {
65
- value: Readonly<any>;
66
- displayValue: Readonly<any>;
67
- modelValue: any;
68
- setValue: (val: any) => void;
31
+ value: ComputedRef<TValue>;
32
+ displayValue: ComputedRef<string>;
33
+ modelValue: ComputedRef<string>;
34
+ setValue: (val: TValue | string | number | null | undefined) => void;
69
35
  setBlur: () => void;
70
- onInput: (val: any) => void;
36
+ onInput: (val: TValue | string | number | null | undefined) => void;
71
37
  onBlur: () => void;
72
38
  meta: UseBitFieldVueMeta;
73
39
  }
@@ -108,10 +74,10 @@ interface UseBitUploadResult {
108
74
  * Provides form history undo/redo capabilities (Vue reactive).
109
75
  */
110
76
  interface UseBitHistoryResult {
111
- canUndo: Readonly<any>;
112
- canRedo: Readonly<any>;
113
- historyIndex: Readonly<any>;
114
- historySize: Readonly<any>;
77
+ canUndo: ComputedRef<BitHistoryMetadata["canUndo"]>;
78
+ canRedo: ComputedRef<BitHistoryMetadata["canRedo"]>;
79
+ historyIndex: ComputedRef<BitHistoryMetadata["historyIndex"]>;
80
+ historySize: ComputedRef<BitHistoryMetadata["historySize"]>;
115
81
  undo: () => void;
116
82
  redo: () => void;
117
83
  }
@@ -120,13 +86,40 @@ interface UseBitPersistResult {
120
86
  save: () => Promise<void>;
121
87
  clear: () => Promise<void>;
122
88
  meta: {
123
- isSaving: Ref<boolean>;
124
- isRestoring: Ref<boolean>;
125
- error: Ref<Error | null>;
89
+ isSaving: Ref<BitPersistMetadata["isSaving"]>;
90
+ isRestoring: Ref<BitPersistMetadata["isRestoring"]>;
91
+ error: Ref<BitPersistMetadata["error"]>;
92
+ };
93
+ }
94
+ interface UseBitFormResult<T extends object = any> {
95
+ meta: {
96
+ isValid: ComputedRef<boolean>;
97
+ isDirty: ComputedRef<boolean>;
98
+ isSubmitting: ComputedRef<boolean>;
99
+ submitError: Ref<Error | null>;
100
+ lastResponse: Ref<unknown>;
126
101
  };
102
+ getValues: () => T;
103
+ getErrors: () => BitErrors<T>;
104
+ getTouched: () => BitTouched<T>;
105
+ getDirtyValues: () => Partial<T>;
106
+ submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
107
+ onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
108
+ reset: () => void;
109
+ replaceValues: (values: T) => void;
110
+ hydrate: (values: DeepPartial<T>) => void;
111
+ rebase: (values: T) => void;
112
+ setError: (path: string, message: string | undefined) => void;
113
+ setErrors: (errors: BitErrors<T>) => void;
114
+ setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
115
+ setField: <P extends BitPath<T>>(path: P, value: BitPathValue<T, P>) => void;
116
+ blurField: <P extends BitPath<T>>(path: P) => void;
117
+ validate: (options?: BitValidationOptions) => Promise<boolean>;
127
118
  }
128
119
 
129
- declare function useBitField<TValue = any>(path: string): UseBitFieldVueResult<TValue>;
120
+ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
121
+
122
+ declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>>;
130
123
 
131
124
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
132
125
  fields: vue.ComputedRef<{
@@ -1,73 +1,39 @@
1
- import { b as BitFrameworkStore } from '../public-types-BVZ16kgZ.js';
2
- import { i as BitErrors, z as BitTouched, p as BitPath, q as BitPathValue, S as ScopeStatus, V as ValidateScopeResult, e as BitArrayPath, d as BitArrayItem } from '../bus-70e4jnBj.js';
1
+ import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-Bl94ECPb.js';
2
+ import '../bus-B1my-s_o.js';
3
+ import { S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, f as BitPath, g as BitPathValue, k as BitArrayPath, l as BitArrayItem } from '../types-DqeN9Kq_.js';
3
4
  import * as vue from 'vue';
4
- import { Ref, ComputedRef } from 'vue';
5
+ import { ComputedRef, Ref } from 'vue';
5
6
  import * as _vue_reactivity from '@vue/reactivity';
6
7
  import * as _vue_shared from '@vue/shared';
7
8
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
8
9
 
9
- declare function provideBitStore<T extends object>(store: BitFrameworkStore<T>): void;
10
- declare function useBitStore<T extends object>(): BitFrameworkStore<T>;
11
-
12
- declare function useBitForm<T extends object>(): {
13
- meta: {
14
- isValid: vue.ComputedRef<boolean>;
15
- isDirty: vue.ComputedRef<boolean>;
16
- isSubmitting: vue.ComputedRef<boolean>;
17
- submitError: vue.Ref<Error | null, Error | null>;
18
- lastResponse: vue.Ref<unknown, unknown>;
19
- };
20
- getValues: () => T;
21
- getErrors: () => BitErrors<T>;
22
- getTouched: () => BitTouched<T>;
23
- getDirtyValues: () => Partial<T>;
24
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
25
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
26
- reset: () => void;
27
- setValues: (values: T) => void;
28
- setError: (path: string, message: string | undefined) => void;
29
- setErrors: (errors: BitErrors<T>) => void;
30
- setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
31
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
32
- blurField: <P extends BitPath<T, "">>(path: P) => void;
33
- validate: (options?: {
34
- scope?: string;
35
- scopeFields?: string[];
36
- }) => Promise<boolean>;
37
- mutations: {
38
- pushItem: (path: any, value: any) => void;
39
- prependItem: (path: any, value: any) => void;
40
- removeItem: (path: any, index: number) => void;
41
- insertItem: (path: any, index: number, value: any) => void;
42
- moveItem: (path: any, from: number, to: number) => void;
43
- swapItems: (path: any, indexA: number, indexB: number) => void;
44
- };
45
- };
10
+ declare function provideBitStore<T extends object>(store: BitStoreApi<T>): void;
11
+ declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
46
12
 
47
13
  /**
48
14
  * Metadata describing the current state of a form field (Vue reactive).
49
15
  */
50
16
  interface UseBitFieldVueMeta {
51
- error: Readonly<any>;
52
- touched: Readonly<any>;
53
- invalid: Readonly<any>;
54
- isValidating: Readonly<any>;
55
- isDirty: Readonly<any>;
56
- isHidden: Readonly<any>;
57
- isRequired: Readonly<any>;
58
- hasError: Readonly<any>;
17
+ error: ComputedRef<string | undefined>;
18
+ touched: ComputedRef<boolean>;
19
+ invalid: ComputedRef<boolean>;
20
+ isValidating: ComputedRef<boolean>;
21
+ isDirty: ComputedRef<boolean>;
22
+ isHidden: ComputedRef<boolean>;
23
+ isRequired: ComputedRef<boolean>;
24
+ hasError: ComputedRef<boolean>;
59
25
  }
60
26
  /**
61
27
  * Result from useBitField hook in Vue.
62
28
  * Provides field state, value, handlers, and metadata with Vue reactivity.
63
29
  */
64
30
  interface UseBitFieldVueResult<TValue = any> {
65
- value: Readonly<any>;
66
- displayValue: Readonly<any>;
67
- modelValue: any;
68
- setValue: (val: any) => void;
31
+ value: ComputedRef<TValue>;
32
+ displayValue: ComputedRef<string>;
33
+ modelValue: ComputedRef<string>;
34
+ setValue: (val: TValue | string | number | null | undefined) => void;
69
35
  setBlur: () => void;
70
- onInput: (val: any) => void;
36
+ onInput: (val: TValue | string | number | null | undefined) => void;
71
37
  onBlur: () => void;
72
38
  meta: UseBitFieldVueMeta;
73
39
  }
@@ -108,10 +74,10 @@ interface UseBitUploadResult {
108
74
  * Provides form history undo/redo capabilities (Vue reactive).
109
75
  */
110
76
  interface UseBitHistoryResult {
111
- canUndo: Readonly<any>;
112
- canRedo: Readonly<any>;
113
- historyIndex: Readonly<any>;
114
- historySize: Readonly<any>;
77
+ canUndo: ComputedRef<BitHistoryMetadata["canUndo"]>;
78
+ canRedo: ComputedRef<BitHistoryMetadata["canRedo"]>;
79
+ historyIndex: ComputedRef<BitHistoryMetadata["historyIndex"]>;
80
+ historySize: ComputedRef<BitHistoryMetadata["historySize"]>;
115
81
  undo: () => void;
116
82
  redo: () => void;
117
83
  }
@@ -120,13 +86,40 @@ interface UseBitPersistResult {
120
86
  save: () => Promise<void>;
121
87
  clear: () => Promise<void>;
122
88
  meta: {
123
- isSaving: Ref<boolean>;
124
- isRestoring: Ref<boolean>;
125
- error: Ref<Error | null>;
89
+ isSaving: Ref<BitPersistMetadata["isSaving"]>;
90
+ isRestoring: Ref<BitPersistMetadata["isRestoring"]>;
91
+ error: Ref<BitPersistMetadata["error"]>;
92
+ };
93
+ }
94
+ interface UseBitFormResult<T extends object = any> {
95
+ meta: {
96
+ isValid: ComputedRef<boolean>;
97
+ isDirty: ComputedRef<boolean>;
98
+ isSubmitting: ComputedRef<boolean>;
99
+ submitError: Ref<Error | null>;
100
+ lastResponse: Ref<unknown>;
126
101
  };
102
+ getValues: () => T;
103
+ getErrors: () => BitErrors<T>;
104
+ getTouched: () => BitTouched<T>;
105
+ getDirtyValues: () => Partial<T>;
106
+ submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
107
+ onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
108
+ reset: () => void;
109
+ replaceValues: (values: T) => void;
110
+ hydrate: (values: DeepPartial<T>) => void;
111
+ rebase: (values: T) => void;
112
+ setError: (path: string, message: string | undefined) => void;
113
+ setErrors: (errors: BitErrors<T>) => void;
114
+ setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
115
+ setField: <P extends BitPath<T>>(path: P, value: BitPathValue<T, P>) => void;
116
+ blurField: <P extends BitPath<T>>(path: P) => void;
117
+ validate: (options?: BitValidationOptions) => Promise<boolean>;
127
118
  }
128
119
 
129
- declare function useBitField<TValue = any>(path: string): UseBitFieldVueResult<TValue>;
120
+ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
121
+
122
+ declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>>;
130
123
 
131
124
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
132
125
  fields: vue.ComputedRef<{
package/dist/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{d as A,e as V,h as j,i as M}from"../chunk-2HAQ3QEQ.js";import{inject as z,provide as C}from"vue";var H=Symbol("BIT_STORE");function $(e){C(H,e)}function l(){let e=z(H);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as R,onUnmounted as L,shallowRef as Y,ref as O}from"vue";function G(){let e=l(),t=Y(e.getState()),o=O(null),r=O(null),n=e.subscribe(()=>{t.value={...e.getState()}});L(n);let i=()=>t.value.values,f=()=>t.value.errors,u=()=>t.value.touched,v=()=>e.getDirtyValues(),s=R(()=>t.value.isValid),a=R(()=>t.value.isSubmitting),c=R(()=>t.value.isDirty);return{meta:{isValid:s,isDirty:c,isSubmitting:a,submitError:o,lastResponse:r},getValues:i,getErrors:f,getTouched:u,getDirtyValues:v,submit:S=>B=>(B?.preventDefault?.(),e.submit(S)),onSubmit:S=>B=>(B?.preventDefault?.(),o.value=null,e.submit(async(F,m)=>{try{let d=await S(F,m);r.value=d,o.value=null}catch(d){j(d)?e.setServerErrors(M(d)):o.value=d instanceof Error?d:new Error(String(d))}})),reset:()=>{e.reset(),o.value=null,r.value=null},setValues:e.setValues.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}import{computed as y,onUnmounted as J,shallowRef as Q}from"vue";function T(e){let t=l(),o=t.resolveMask(e),r=Q(t.getState()),n=t.subscribe(()=>{r.value=t.getState()});J(()=>{n(),t.unregisterField&&t.unregisterField(e)});let i=y(()=>V(r.value.values,e)),f=y(()=>{let p=i.value;return p==null||p===""?"":o?o.format(p):String(p)}),u=y({get:()=>f.value,set:p=>{if(!o){t.setField(e,p);return}t.setField(e,o.parse(String(p??"")))}}),v=y(()=>r.value.errors[e]),s=y(()=>r.value.touched[e]?r.value.errors[e]:void 0),a=y(()=>!!r.value.touched[e]),c=y(()=>!!(a.value&&s.value)),g=y(()=>(r.value,t.isFieldValidating(e))),I=y(()=>(r.value,t.isFieldDirty(e))),w=y(()=>(r.value,t.isHidden(e))),S=y(()=>(r.value,t.isRequired(e))),B=y(()=>!!v.value),F=p=>{u.value=p},m=()=>t.blurField(e);return{value:i,displayValue:f,modelValue:u,setValue:F,setBlur:m,onInput:p=>{F(p)},onBlur:()=>{m()},meta:{error:s,touched:a,invalid:c,isValidating:g,isDirty:I,isHidden:w,isRequired:S,hasError:B}}}import{ref as q,computed as K,onUnmounted as X}from"vue";var E=()=>Math.random().toString(36).substring(2,9);function Z(e){let t=l(),o=()=>{let s=V(t.getState().values,e);return Array.isArray(s)?s:[]},r=o(),n=q(r),i=q(r.map(E)),f=t.subscribe(()=>{let s=o();if(n.value=[...s],s.length!==i.value.length){let a=[...i.value];if(s.length>a.length){let c=s.length-a.length,g=Array.from({length:c},E);i.value=[...a,...g]}else i.value=a.slice(0,s.length)}});X(()=>{f(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=K(()=>n.value.map((s,a)=>({key:i.value[a]||`temp-${a}`,value:s,index:a}))),v=K(()=>n.value.length);return{fields:u,length:v,append:s=>{i.value.push(E()),t.pushItem(e,s)},prepend:s=>{i.value.unshift(E()),t.prependItem(e,s)},insert:(s,a)=>{i.value.splice(s,0,E()),t.insertItem(e,s,a)},remove:s=>{i.value.splice(s,1),t.removeItem(e,s)},move:(s,a)=>{let c=[...i.value],[g]=c.splice(s,1);c.splice(a,0,g),i.value=c,t.moveItem(e,s,a)},swap:(s,a)=>{let c=[...i.value];[c[s],c[a]]=[c[a],c[s]],i.value=c,t.swapItems(e,s,a)},replace:s=>{i.value=s.map(E),t.setField(e,s)},clear:()=>{i.value=[],t.setField(e,[])}}}import{computed as x,onUnmounted as N,shallowRef as ee}from"vue";function te(){let e=l(),t=ee(e.getHistoryMetadata()),o=e.subscribe(()=>{t.value=e.getHistoryMetadata()});N(o);let r=()=>e.undo(),n=()=>e.redo();return{canUndo:x(()=>t.value.canUndo),canRedo:x(()=>t.value.canRedo),historyIndex:x(()=>t.value.historyIndex),historySize:x(()=>t.value.historySize),undo:r,redo:n}}import{ref as re,computed as P,onMounted as se,onUnmounted as oe}from"vue";function ne(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function ie(e){let t=l(),o=re(t.getStepStatus(e)),r;se(()=>{r=t.subscribe(()=>{let s=t.getStepStatus(e);(s.hasErrors!==o.value.hasErrors||s.isDirty!==o.value.isDirty||!ne(s.errors,o.value.errors))&&(o.value=s)})}),oe(()=>{r?.()});let n=async()=>{let s=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:s,errors:a}},i=()=>t.getStepErrors(e),f=P(()=>!o.value.hasErrors),u=P(()=>o.value.isDirty),v=P(()=>o.value.errors);return{scopeName:e,status:o,errors:v,validate:n,getErrors:i,isValid:f,isDirty:u}}import{ref as W,computed as b,watch as ae,onMounted as ue,onUnmounted as le}from"vue";function ce(e,t){let o=Object.keys(e),r=Object.keys(t);return o.length!==r.length?!1:o.every(n=>e[n]===t[n])}function me(e){let t=l(),o=W(0),r=b(()=>e[o.value]??""),n=W(t.getStepStatus(r.value)),i;ae(r,m=>{n.value=t.getStepStatus(m)});let f=()=>{let m=r.value,d=t.getStepStatus(m);(d.hasErrors!==n.value.hasErrors||d.isDirty!==n.value.isDirty||!ce(d.errors,n.value.errors))&&(n.value=d)};ue(()=>{i=t.subscribe(f)}),le(()=>{i?.()});let u=async()=>{let m=r.value,d=await t.validate({scope:m}),h=t.getStepErrors(m);return{valid:d,errors:h}},v=()=>t.getStepErrors(r.value),s=async()=>{let m=r.value,d=t.getScopeFields(m);if(t.hasValidationsInProgress(d))return!1;let h=await t.validate({scope:m});if(h)o.value=Math.min(o.value+1,e.length-1);else{let p=t.getStepErrors(m),k=Object.keys(p);k.length>0&&t.markFieldsTouched(k)}return h},a=()=>{o.value=Math.max(o.value-1,0)},c=m=>{o.value=Math.max(0,Math.min(m-1,e.length-1))},g=b(()=>o.value+1),I=b(()=>o.value===0),w=b(()=>o.value>=e.length-1),S=b(()=>!n.value.hasErrors),B=b(()=>n.value.isDirty),F=b(()=>n.value.errors);return{step:g,stepIndex:o,scope:r,next:s,prev:a,goTo:c,isFirst:I,isLast:w,status:n,errors:F,isValid:S,isDirty:B,validate:u,getErrors:v}}import{ref as de,onUnmounted as ve,readonly as pe}from"vue";function fe(e){let t=l(),o=V(t.getState().values,e),r=de(o),n=t.watch(e,i=>{A(r.value,i)||(r.value=i)});return ve(n),pe(r)}import{computed as _}from"vue";function ye(e,t,o){let r=l(),n=T(e),i=null,f=async v=>{if(v){r.beginFieldValidation(e),await r.clearFieldAsyncError(e);try{let s=await t(v);n.setValue(s.url),i=s.key,await r.clearFieldAsyncError(e)}catch(s){let a=s instanceof Error?s.message:"Upload failed";await r.setFieldAsyncError(e,a)}finally{r.endFieldValidation(e)}}},u=async()=>{if(i&&o)try{await o(i)}catch(v){let s=v instanceof Error?v.message:"Delete failed";await r.setFieldAsyncError(e,s);return}n.setValue(null),i=null,await r.clearFieldAsyncError(e)};return{value:n.value,setValue:n.setValue,error:_(()=>n.meta.error.value),isValidating:_(()=>n.meta.isValidating.value||!1),upload:f,remove:u}}import{ref as U,readonly as D}from"vue";function ge(){let e=l(),t=U(!1),o=U(!1),r=U(null);return{restore:async()=>{o.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{o.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:D(t),isRestoring:D(o),error:D(r)}}}export{$ as provideBitStore,Z as useBitArray,T as useBitField,G as useBitForm,te as useBitHistory,ge as useBitPersist,ie as useBitScope,me as useBitSteps,l as useBitStore,ye as useBitUpload,fe as useBitWatch};
1
+ import{a as H,b as M,c as O}from"../chunk-O5RRLZR7.js";import"../chunk-AD7T42HJ.js";import{Y as j,e as A,f as F}from"../chunk-2UVV7SU4.js";import{inject as $,provide as L}from"vue";var q=Symbol("BIT_STORE");function Y(e){L(q,j(e))}function c(){let e=$(q);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as R,onUnmounted as G,shallowRef as J,ref as C}from"vue";function Q(){let e=c(),t=J({isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),i=C(null),r=C(null),s=e.subscribeSelector(m=>({isValid:m.isValid,isSubmitting:m.isSubmitting,isDirty:m.isDirty}),m=>{t.value=m});G(s);let n=H(e,{clearSubmissionState:()=>{i.value=null,r.value=null},setSubmissionResult:m=>{r.value=m},setSubmissionError:m=>{i.value=m}}),d=R(()=>t.value.isValid),u=R(()=>t.value.isSubmitting),f=R(()=>t.value.isDirty),o=n.onSubmit,a=n.reset;return{meta:{isValid:d,isDirty:f,isSubmitting:u,submitError:i,lastResponse:r},getValues:n.getValues,getErrors:n.getErrors,getTouched:n.getTouched,getDirtyValues:n.getDirtyValues,submit:n.submit,onSubmit:o,reset:a,replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e)}}import{computed as v,onUnmounted as X,shallowRef as Z}from"vue";function U(e){let t=c(),i=t.resolveMask(e),r=O(t,e,i),s=Z(t.getFieldState(e)),n=M(t,e,g=>{s.value=g});X(()=>{n(),t.unregisterField&&t.unregisterField(e)});let d=v(()=>s.value.value),u=v(()=>r.displayValue(d.value)),f=v({get:()=>u.value,set:g=>{r.setValue(g)}}),o=v(()=>s.value.error),a=v(()=>s.value.touched?s.value.error:void 0),l=v(()=>s.value.touched),m=v(()=>!!(l.value&&a.value)),b=v(()=>s.value.isValidating),P=v(()=>s.value.isDirty),E=v(()=>s.value.isHidden),T=v(()=>s.value.isRequired),x=v(()=>!!o.value),p=g=>{r.setValue(g)},y=()=>r.setBlur();return{value:d,displayValue:u,modelValue:f,setValue:p,setBlur:y,onInput:g=>{p(g)},onBlur:()=>{y()},meta:{error:a,touched:l,invalid:m,isValidating:b,isDirty:P,isHidden:E,isRequired:T,hasError:x}}}import{ref as K,computed as W,onUnmounted as N}from"vue";var S=()=>Math.random().toString(36).substring(2,9);function ee(e){let t=c(),r=(()=>{let o=F(t.getState().values,e);return Array.isArray(o)?o:[]})(),s=K(r),n=K(r.map(S)),d=t.subscribePath(e,o=>{let a=Array.isArray(o)?o:[];if(s.value=[...a],a.length!==n.value.length){let l=[...n.value];if(a.length>l.length){let m=a.length-l.length,b=Array.from({length:m},S);n.value=[...l,...b]}else n.value=l.slice(0,a.length)}});N(()=>{d(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=W(()=>s.value.map((o,a)=>({key:n.value[a]||`temp-${a}`,value:o,index:a}))),f=W(()=>s.value.length);return{fields:u,length:f,append:o=>{n.value.push(S()),t.pushItem(e,o)},prepend:o=>{n.value.unshift(S()),t.prependItem(e,o)},insert:(o,a)=>{n.value.splice(o,0,S()),t.insertItem(e,o,a)},remove:o=>{n.value.splice(o,1),t.removeItem(e,o)},move:(o,a)=>{let l=[...n.value],[m]=l.splice(o,1);l.splice(a,0,m),n.value=l,t.moveItem(e,o,a)},swap:(o,a)=>{let l=[...n.value];[l[o],l[a]]=[l[a],l[o]],n.value=l,t.swapItems(e,o,a)},replace:o=>{n.value=o.map(S),t.setField(e,o)},clear:()=>{n.value=[],t.setField(e,[])}}}import{computed as V,onUnmounted as te,shallowRef as re}from"vue";function se(){let e=c(),t=re(e.getHistoryMetadata()),i=e.subscribe(()=>{t.value=e.getHistoryMetadata()});te(i);let r=()=>e.undo(),s=()=>e.redo();return{canUndo:V(()=>t.value.canUndo),canRedo:V(()=>t.value.canRedo),historyIndex:V(()=>t.value.historyIndex),historySize:V(()=>t.value.historySize),undo:r,redo:s}}import{ref as oe,computed as I,onMounted as ie,onUnmounted as ne}from"vue";function ae(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function ue(e){let t=c(),i=oe(t.getStepStatus(e)),r;ie(()=>{r=t.subscribe(()=>{let o=t.getStepStatus(e);(o.hasErrors!==i.value.hasErrors||o.isDirty!==i.value.isDirty||!ae(o.errors,i.value.errors))&&(i.value=o)})}),ne(()=>{r?.()});let s=async()=>{let o=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:o,errors:a}},n=()=>t.getStepErrors(e),d=I(()=>!i.value.hasErrors),u=I(()=>i.value.isDirty),f=I(()=>i.value.errors);return{scopeName:e,status:i,errors:f,validate:s,getErrors:n,isValid:d,isDirty:u}}import{ref as _,computed as B,watch as le,onMounted as ce,onUnmounted as me}from"vue";function de(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function pe(e){let t=c(),i=_(0),r=B(()=>e[i.value]??""),s=_(t.getStepStatus(r.value)),n;le(r,p=>{s.value=t.getStepStatus(p)});let d=()=>{let p=r.value,y=t.getStepStatus(p);(y.hasErrors!==s.value.hasErrors||y.isDirty!==s.value.isDirty||!de(y.errors,s.value.errors))&&(s.value=y)};ce(()=>{n=t.subscribe(d)}),me(()=>{n?.()});let u=async()=>{let p=r.value,y=await t.validate({scope:p}),h=t.getStepErrors(p);return{valid:y,errors:h}},f=()=>t.getStepErrors(r.value),o=async()=>{let p=r.value,y=t.getScopeFields(p);if(t.hasValidationsInProgress(y))return!1;let h=await t.validate({scope:p});if(h)i.value=Math.min(i.value+1,e.length-1);else{let D=t.getStepErrors(p),g=Object.keys(D);g.length>0&&t.markFieldsTouched(g)}return h},a=()=>{i.value=Math.max(i.value-1,0)},l=p=>{i.value=Math.max(0,Math.min(p-1,e.length-1))},m=B(()=>i.value+1),b=B(()=>i.value===0),P=B(()=>i.value>=e.length-1),E=B(()=>!s.value.hasErrors),T=B(()=>s.value.isDirty),x=B(()=>s.value.errors);return{step:m,stepIndex:i,scope:r,next:o,prev:a,goTo:l,isFirst:b,isLast:P,status:s,errors:x,isValid:E,isDirty:T,validate:u,getErrors:f}}import{ref as ve,onUnmounted as fe,readonly as ye}from"vue";function ge(e){let t=c(),i=F(t.getState().values,e),r=ve(i),s=t.watch(e,n=>{A(r.value,n)||(r.value=n)});return fe(s),ye(r)}import{computed as z,ref as Be}from"vue";function Se(e,t,i){let r=c(),s=U(e),n=null,d=Be(!1),u=async o=>{if(o){d.value=!0,r.setError(e,void 0);try{let a=await t(o);s.setValue(a.url),n=a.key,r.setError(e,void 0)}catch(a){let l=a instanceof Error?a.message:"Upload failed";r.setError(e,l)}finally{d.value=!1}}},f=async()=>{if(n&&i)try{await i(n)}catch(o){let a=o instanceof Error?o.message:"Delete failed";r.setError(e,a);return}s.setValue(null),n=null,r.setError(e,void 0)};return{value:s.value,setValue:s.setValue,error:z(()=>s.meta.error.value),isValidating:z(()=>!!s.meta.isValidating.value||d.value),upload:u,remove:f}}import{ref as w,readonly as k}from"vue";function be(){let e=c(),t=w(!1),i=w(!1),r=w(null);return{restore:async()=>{i.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{i.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:k(t),isRestoring:k(i),error:k(r)}}}export{Y as provideBitStore,ee as useBitArray,U as useBitField,Q as useBitForm,se as useBitHistory,be as useBitPersist,ue as useBitScope,pe as useBitSteps,c as useBitStore,Se as useBitUpload,ge as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map