@tanstack/form-core 0.0.8 → 0.0.11
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/build/cjs/FieldApi.js +105 -112
- package/build/cjs/FieldApi.js.map +1 -1
- package/build/cjs/FormApi.js +69 -127
- package/build/cjs/FormApi.js.map +1 -1
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +70 -9
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
- package/build/esm/index.js +242 -253
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +74 -68
- package/build/types/FieldApi.d.ts +19 -13
- package/build/types/FormApi.d.ts +13 -9
- package/build/umd/index.development.js +256 -265
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +2 -2
- package/build/umd/index.production.js.map +1 -1
- package/package.json +2 -2
- package/src/FieldApi.ts +99 -103
- package/src/FormApi.ts +51 -106
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils.ts","../../src/FormApi.ts","../../src/FieldApi.ts"],"sourcesContent":["export type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput = TInput> =\n | TOutput\n | UpdaterFn<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as UpdaterFn<TInput, TOutput>)(input)\n : updater\n}\n\nexport function getBy(obj: any, path: any) {\n const pathArray = makePathArray(path)\n const pathObj = pathArray\n return pathObj.reduce((current: any, pathPart: any) => {\n if (typeof current !== 'undefined') {\n return current[pathPart]\n }\n return undefined\n }, obj)\n}\n\nexport function setBy(obj: any, _path: any, updater: Updater<any>) {\n const path = makePathArray(_path)\n\n function doSet(parent?: any): any {\n if (!path.length) {\n return functionalUpdate(updater, parent)\n }\n\n const key = path.shift()\n\n if (typeof key === 'string') {\n if (typeof parent === 'object') {\n return {\n ...parent,\n [key]: doSet(parent[key]),\n }\n }\n return {\n [key]: doSet(),\n }\n }\n\n if (typeof key === 'number') {\n if (Array.isArray(parent)) {\n const prefix = parent.slice(0, key)\n return [\n ...(prefix.length ? prefix : new Array(key)),\n doSet(parent[key]),\n ...parent.slice(key + 1),\n ]\n }\n return [...new Array(key), doSet()]\n }\n\n throw new Error('Uh oh!')\n }\n\n return doSet(obj)\n}\n\nconst reFindNumbers0 = /^(\\d*)$/gm\nconst reFindNumbers1 = /\\.(\\d*)\\./gm\nconst reFindNumbers2 = /^(\\d*)\\./gm\nconst reFindNumbers3 = /\\.(\\d*$)/gm\nconst reFindMultiplePeriods = /\\.{2,}/gm\n\nconst intPrefix = '__int__'\nconst intReplace = `${intPrefix}$1`\n\nfunction makePathArray(str: string) {\n if (typeof str !== 'string') {\n throw new Error()\n }\n\n return str\n .replace('[', '.')\n .replace(']', '')\n .replace(reFindNumbers0, intReplace)\n .replace(reFindNumbers1, `.${intReplace}.`)\n .replace(reFindNumbers2, `${intReplace}.`)\n .replace(reFindNumbers3, `.${intReplace}`)\n .replace(reFindMultiplePeriods, '.')\n .split('.')\n .map((d) => {\n if (d.indexOf(intPrefix) === 0) {\n return parseInt(d.substring(intPrefix.length), 10)\n }\n return d\n })\n}\n\nexport type RequiredByKey<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\n\ntype ComputeRange<\n N extends number,\n Result extends Array<unknown> = [],\n> = Result['length'] extends N\n ? Result\n : ComputeRange<N, [...Result, Result['length']]>\ntype Index40 = ComputeRange<40>[number]\n\n// Is this type a tuple?\ntype IsTuple<T> = T extends readonly any[] & { length: infer Length }\n ? Length extends Index40\n ? T\n : never\n : never\n\n// If this type is a tuple, what indices are allowed?\ntype AllowedIndexes<\n Tuple extends ReadonlyArray<any>,\n Keys extends number = never,\n> = Tuple extends readonly []\n ? Keys\n : Tuple extends readonly [infer _, ...infer Tail]\n ? AllowedIndexes<Tail, Keys | Tail['length']>\n : Keys\n\nexport type DeepKeys<T> = unknown extends T\n ? keyof T\n : object extends T\n ? string\n : T extends readonly any[] & IsTuple<T>\n ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>>\n : T extends any[]\n ? DeepKeys<T[number]>\n : T extends Date\n ? never\n : T extends object\n ? (keyof T & string) | DeepKeysPrefix<T, keyof T>\n : never\n\ntype DeepKeysPrefix<T, TPrefix> = TPrefix extends keyof T & (number | string)\n ? `${TPrefix}.${DeepKeys<T[TPrefix]> & string}`\n : never\n\nexport type DeepValue<T, TProp> = T extends Record<string | number, any>\n ? TProp extends `${infer TBranch}.${infer TDeepProp}`\n ? DeepValue<T[TBranch], TDeepProp>\n : T[TProp & string]\n : never\n\ntype Narrowable = string | number | bigint | boolean\n\ntype NarrowRaw<A> =\n | (A extends [] ? [] : never)\n | (A extends Narrowable ? A : never)\n | {\n [K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw<A[K]>\n }\n\nexport type Narrow<A> = Try<A, [], NarrowRaw<A>>\n\ntype Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch\n","import { Store } from '@tanstack/store'\n//\nimport type { DeepKeys, DeepValue, Updater } from './utils'\nimport { functionalUpdate, getBy, setBy } from './utils'\nimport type { FieldApi, FieldMeta, ValidationCause } from './FieldApi'\n\nexport interface Register {\n // FormSubmitEvent\n}\n\nexport type FormSubmitEvent = Register extends {\n FormSubmitEvent: infer E\n}\n ? E\n : Event\n\nexport type FormOptions<TData> = {\n defaultValues?: TData\n defaultState?: Partial<FormState<TData>>\n onSubmit?: (values: TData, formApi: FormApi<TData>) => void\n onInvalidSubmit?: (values: TData, formApi: FormApi<TData>) => void\n validate?: (values: TData, formApi: FormApi<TData>) => Promise<any>\n defaultValidatePristine?: boolean\n defaultValidateOn?: ValidationCause\n defaultValidateAsyncOn?: ValidationCause\n defaultValidateAsyncDebounceMs?: number\n}\n\nexport type FieldInfo<TFormData> = {\n instances: Record<string, FieldApi<any, TFormData>>\n} & ValidationMeta\n\nexport type ValidationMeta = {\n validationCount?: number\n validationAsyncCount?: number\n validationPromise?: Promise<ValidationError>\n validationResolve?: (error: ValidationError) => void\n validationReject?: (error: unknown) => void\n}\n\nexport type ValidationError = undefined | false | null | string\n\nexport type FormState<TData> = {\n values: TData\n // Form Validation\n isFormValidating: boolean\n formValidationCount: number\n isFormValid: boolean\n formError?: ValidationError\n // Fields\n fieldMeta: Record<DeepKeys<TData>, FieldMeta>\n isFieldsValidating: boolean\n isFieldsValid: boolean\n isSubmitting: boolean\n // General\n isTouched: boolean\n isSubmitted: boolean\n isValidating: boolean\n isValid: boolean\n canSubmit: boolean\n submissionAttempts: number\n}\n\nfunction getDefaultFormState<TData>(\n defaultState: Partial<FormState<TData>>,\n): FormState<TData> {\n return {\n values: {} as any,\n fieldMeta: {} as any,\n canSubmit: true,\n isFieldsValid: false,\n isFieldsValidating: false,\n isFormValid: false,\n isFormValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isTouched: false,\n isValid: false,\n isValidating: false,\n submissionAttempts: 0,\n formValidationCount: 0,\n ...defaultState,\n }\n}\n\nexport class FormApi<TFormData> {\n // // This carries the context for nested fields\n options: FormOptions<TFormData> = {}\n store!: Store<FormState<TFormData>>\n // Do not use __state directly, as it is not reactive.\n // Please use form.useStore() utility to subscribe to state\n state!: FormState<TFormData>\n fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData>> = {} as any\n fieldName?: string\n validationMeta: ValidationMeta = {}\n\n constructor(opts?: FormOptions<TFormData>) {\n this.store = new Store<FormState<TFormData>>(\n getDefaultFormState({\n ...opts?.defaultState,\n values: opts?.defaultValues ?? opts?.defaultState?.values,\n isFormValid: !opts?.validate,\n }),\n {\n onUpdate: (next) => {\n // Computed state\n const fieldMetaValues = Object.values(next.fieldMeta) as (\n | FieldMeta\n | undefined\n )[]\n\n const isFieldsValidating = fieldMetaValues.some(\n (field) => field?.isValidating,\n )\n\n const isFieldsValid = !fieldMetaValues.some((field) => field?.error)\n\n const isTouched = fieldMetaValues.some((field) => field?.isTouched)\n\n const isValidating = isFieldsValidating || next.isFormValidating\n const isFormValid = !next.formError\n const isValid = isFieldsValid && isFormValid\n const canSubmit =\n (next.submissionAttempts === 0 && !isTouched) ||\n (!isValidating && !next.isSubmitting && isValid)\n\n next = {\n ...next,\n isFieldsValidating,\n isFieldsValid,\n isFormValid,\n isValid,\n canSubmit,\n isTouched,\n }\n\n // Create a shortcut for the state\n // Write it back to the store\n this.store.state = next\n this.state = next\n console.log(this.state)\n },\n },\n )\n\n this.state = this.store.state\n\n this.update(opts || {})\n }\n\n update = (options?: FormOptions<TFormData>) => {\n if (!options) return\n\n this.store.batch(() => {\n if (\n options.defaultState &&\n options.defaultState !== this.options.defaultState\n ) {\n this.store.setState((prev) => ({\n ...prev,\n ...options.defaultState,\n }))\n }\n\n if (options.defaultValues !== this.options.defaultValues) {\n this.store.setState((prev) => ({\n ...prev,\n values: options.defaultValues as TFormData,\n }))\n }\n })\n\n this.options = options\n }\n\n reset = () =>\n this.store.setState(() => getDefaultFormState(this.options.defaultValues!))\n\n validateAllFields = async () => {\n const fieldValidationPromises: Promise<ValidationError>[] = [] as any\n\n this.store.batch(() => {\n void (Object.values(this.fieldInfo) as FieldInfo<any>[]).forEach(\n (field) => {\n Object.values(field.instances).forEach((instance) => {\n // If any fields are not touched\n if (!instance.state.meta.isTouched) {\n // Mark them as touched\n instance.setMeta((prev) => ({ ...prev, isTouched: true }))\n // Validate the field\n if (instance.options.validate) {\n fieldValidationPromises.push(instance.validate())\n }\n }\n })\n },\n )\n })\n\n return Promise.all(fieldValidationPromises)\n }\n\n validateForm = async () => {\n const { validate } = this.options\n\n if (!validate) {\n return\n }\n\n // Use the formValidationCount for all field instances to\n // track freshness of the validation\n this.store.setState((prev) => ({\n ...prev,\n isValidating: true,\n formValidationCount: prev.formValidationCount + 1,\n }))\n\n const formValidationCount = this.state.formValidationCount\n\n const checkLatest = () =>\n formValidationCount === this.state.formValidationCount\n\n if (!this.validationMeta.validationPromise) {\n this.validationMeta.validationPromise = new Promise((resolve, reject) => {\n this.validationMeta.validationResolve = resolve\n this.validationMeta.validationReject = reject\n })\n }\n\n const doValidation = async () => {\n try {\n const error = await validate(this.state.values, this)\n\n if (checkLatest()) {\n this.store.setState((prev) => ({\n ...prev,\n isValidating: false,\n error: error\n ? typeof error === 'string'\n ? error\n : 'Invalid Form Values'\n : null,\n }))\n\n this.validationMeta.validationResolve?.(error)\n }\n } catch (err) {\n if (checkLatest()) {\n this.validationMeta.validationReject?.(err)\n }\n } finally {\n delete this.validationMeta.validationPromise\n }\n }\n\n doValidation()\n\n return this.validationMeta.validationPromise\n }\n\n handleSubmit = async (e: FormSubmitEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n // Check to see that the form and all fields have been touched\n // If they have not, touch them all and run validation\n // Run form validation\n // Submit the form\n\n this.store.setState((old) => ({\n ...old,\n // Submittion attempts mark the form as not submitted\n isSubmitted: false,\n // Count submission attempts\n submissionAttempts: old.submissionAttempts + 1,\n }))\n\n // Don't let invalid forms submit\n if (!this.state.canSubmit) return\n\n this.store.setState((d) => ({ ...d, isSubmitting: true }))\n\n const done = () => {\n this.store.setState((prev) => ({ ...prev, isSubmitting: false }))\n }\n\n // Validate all fields\n await this.validateAllFields()\n\n // Fields are invalid, do not submit\n if (!this.state.isFieldsValid) {\n done()\n this.options.onInvalidSubmit?.(this.state.values, this)\n return\n }\n\n // Run validation for the form\n await this.validateForm()\n\n if (!this.state.isValid) {\n done()\n this.options.onInvalidSubmit?.(this.state.values, this)\n return\n }\n\n try {\n // Run the submit code\n await this.options.onSubmit?.(this.state.values, this)\n\n this.store.batch(() => {\n this.store.setState((prev) => ({ ...prev, isSubmitted: true }))\n done()\n })\n } catch (err) {\n done()\n throw err\n }\n }\n\n getFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): DeepValue<TFormData, TField> => getBy(this.state.values, field)\n\n getFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): FieldMeta => {\n return this.state.fieldMeta[field]\n }\n\n getFieldInfo = <TField extends DeepKeys<TFormData>>(field: TField) => {\n return (this.fieldInfo[field] ||= {\n instances: {},\n })\n }\n\n setFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<FieldMeta>,\n ) => {\n this.store.setState((prev) => {\n return {\n ...prev,\n fieldMeta: {\n ...prev.fieldMeta,\n [field]: functionalUpdate(updater, prev.fieldMeta[field]),\n },\n }\n })\n }\n\n setFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<DeepValue<TFormData, TField>>,\n opts?: { touch?: boolean },\n ) => {\n const touch = opts?.touch ?? true\n\n this.store.batch(() => {\n this.store.setState((prev) => {\n return {\n ...prev,\n values: setBy(prev.values, field, updater),\n }\n })\n\n if (touch) {\n this.setFieldMeta(field, (prev) => ({\n ...prev,\n isTouched: true,\n }))\n }\n })\n }\n\n pushFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n return this.setFieldValue(\n field,\n (prev) => [...(Array.isArray(prev) ? prev : []), value] as any,\n opts,\n )\n }\n\n insertFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n // invariant( // TODO: bring in invariant\n // Array.isArray(prev),\n // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`\n // )\n return (prev as DeepValue<TFormData, TField>[]).map((d, i) =>\n i === index ? value : d,\n ) as any\n },\n opts,\n )\n }\n\n removeFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n // invariant( // TODO: bring in invariant\n // Array.isArray(prev),\n // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`\n // )\n return (prev as DeepValue<TFormData, TField>[]).filter(\n (_d, i) => i !== index,\n ) as any\n },\n opts,\n )\n }\n\n swapFieldValues = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index1: number,\n index2: number,\n ) => {\n this.setFieldValue(field, (prev: any) => {\n const prev1 = prev[index1]!\n const prev2 = prev[index2]!\n return setBy(setBy(prev, [index1], prev2), [index2], prev1)\n })\n }\n}\n","//\nimport type { DeepKeys, DeepValue, RequiredByKey, Updater } from './utils'\nimport type { FormApi, ValidationError } from './FormApi'\nimport { Store } from '@tanstack/store'\n\nexport type ValidationCause = 'change' | 'blur' | 'submit'\n\nexport interface FieldOptions<TData, TFormData> {\n name: unknown extends TFormData ? string : DeepKeys<TFormData>\n index?: TData extends any[] ? number : never\n defaultValue?: TData\n validate?: (\n value: TData,\n fieldApi: FieldApi<TData, TFormData>,\n ) => ValidationError\n validateAsync?: (\n value: TData,\n fieldApi: FieldApi<TData, TFormData>,\n ) => ValidationError | Promise<ValidationError>\n validatePristine?: boolean // Default: false\n validateOn?: ValidationCause // Default: 'change'\n validateAsyncOn?: ValidationCause // Default: 'blur'\n validateAsyncDebounceMs?: number\n defaultMeta?: Partial<FieldMeta>\n}\n\nexport type FieldApiOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n form: FormApi<TFormData>\n}\n\nexport type FieldMeta = {\n isTouched: boolean\n touchedError?: ValidationError\n error?: ValidationError\n isValidating: boolean\n}\n\nexport type UserChangeProps<TData> = {\n onChange?: (updater: Updater<TData>) => void\n onBlur?: (event: any) => void\n}\n\nexport type UserInputProps = {\n onChange?: (event: any) => void\n onBlur?: (event: any) => void\n}\n\nexport type ChangeProps<TData> = {\n value: TData\n onChange: (updater: Updater<TData>) => void\n onBlur: (event: any) => void\n}\n\nexport type InputProps = {\n value: string\n onChange: (event: any) => void\n onBlur: (event: any) => void\n}\n\nlet uid = 0\n\nexport type FieldState<TData> = {\n value: TData\n meta: FieldMeta\n}\n\nexport class FieldApi<TData, TFormData> {\n uid: number\n form: FormApi<TFormData>\n name!: DeepKeys<TFormData>\n store!: Store<FieldState<TData>>\n state!: FieldState<TData>\n options: RequiredByKey<\n FieldOptions<TData, TFormData>,\n | 'validatePristine'\n | 'validateOn'\n | 'validateAsyncOn'\n | 'validateAsyncDebounceMs'\n > = {} as any\n\n constructor(opts: FieldApiOptions<TData, TFormData>) {\n this.form = opts.form\n this.uid = uid++\n // Support field prefixing from FieldScope\n // let fieldPrefix = ''\n // if (this.form.fieldName) {\n // fieldPrefix = `${this.form.fieldName}.`\n // }\n\n this.name = opts.name as any\n\n this.store = new Store<FieldState<TData>>(\n {\n value: this.getValue(),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n meta: this.getMeta() ?? {\n isValidating: false,\n isTouched: false,\n ...this.options.defaultMeta,\n },\n },\n {\n onUpdate: (next) => {\n next.meta.touchedError = next.meta.isTouched\n ? next.meta.error\n : undefined\n\n // Do not validate pristine fields\n const prevState = this.state\n this.state = next\n if (next.value !== prevState.value) {\n this.validate('change', next.value)\n }\n console.log(this)\n },\n },\n )\n\n this.state = this.store.state\n this.update(opts)\n }\n\n mount = () => {\n const info = this.getInfo()\n info.instances[this.uid] = this\n\n const unsubscribe = this.form.store.subscribe(() => {\n this.#updateStore()\n })\n\n return () => {\n unsubscribe()\n delete info.instances[this.uid]\n if (!Object.keys(info.instances).length) {\n delete this.form.fieldInfo[this.name]\n }\n }\n }\n\n #updateStore = () => {\n this.store.batch(() => {\n const nextValue = this.getValue()\n const nextMeta = this.getMeta()\n\n if (nextValue !== this.state.value) {\n this.store.setState((prev) => ({ ...prev, value: nextValue }))\n }\n\n if (nextMeta !== this.state.meta) {\n this.store.setState((prev) => ({ ...prev, meta: nextMeta }))\n }\n })\n }\n\n update = (opts: FieldApiOptions<TData, TFormData>) => {\n this.options = {\n validatePristine: this.form.options.defaultValidatePristine ?? false,\n validateOn: this.form.options.defaultValidateOn ?? 'change',\n validateAsyncOn: this.form.options.defaultValidateAsyncOn ?? 'blur',\n validateAsyncDebounceMs:\n this.form.options.defaultValidateAsyncDebounceMs ?? 0,\n ...opts,\n }\n\n // Default Value\n if (\n this.state.value === undefined &&\n this.options.defaultValue !== undefined\n ) {\n this.setValue(this.options.defaultValue)\n }\n\n // Default Meta\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (this.getMeta() === undefined) {\n this.setMeta(this.state.meta)\n }\n }\n\n getValue = (): TData => {\n return this.form.getFieldValue(this.name)\n }\n setValue = (\n updater: Updater<TData>,\n options?: { touch?: boolean; notify?: boolean },\n ) => this.form.setFieldValue(this.name, updater as any, options)\n\n getMeta = (): FieldMeta => this.form.getFieldMeta(this.name)\n setMeta = (updater: Updater<FieldMeta>) =>\n this.form.setFieldMeta(this.name, updater)\n\n getInfo = () => this.form.getFieldInfo(this.name)\n\n pushValue = (value: TData extends any[] ? TData[number] : never) =>\n this.form.pushFieldValue(this.name, value as any)\n insertValue = (index: number, value: TData) =>\n this.form.insertFieldValue(this.name, index, value as any)\n removeValue = (index: number) => this.form.removeFieldValue(this.name, index)\n swapValues = (aIndex: number, bIndex: number) =>\n this.form.swapFieldValues(this.name, aIndex, bIndex)\n\n getSubField = <TName extends DeepKeys<TData>>(name: TName) =>\n new FieldApi<DeepValue<TData, TName>, TFormData>({\n name: `${this.name}.${name}` as any,\n form: this.form,\n })\n\n validateSync = async (value = this.state.value) => {\n const { validate } = this.options\n\n if (!validate) {\n return\n }\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationCount = (this.getInfo().validationCount || 0) + 1\n this.getInfo().validationCount = validationCount\n const error = normalizeError(validate(value, this))\n\n if (this.state.meta.error !== error) {\n this.setMeta((prev) => ({\n ...prev,\n error,\n }))\n }\n\n // If a sync error is encountered, cancel any async validation\n if (this.state.meta.error) {\n this.cancelValidateAsync()\n }\n }\n\n #leaseValidateAsync = () => {\n const count = (this.getInfo().validationAsyncCount || 0) + 1\n this.getInfo().validationAsyncCount = count\n return count\n }\n\n cancelValidateAsync = () => {\n // Lease a new validation count to ignore any pending validations\n this.#leaseValidateAsync()\n // Cancel any pending validation state\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n }))\n }\n\n validateAsync = async (value = this.state.value) => {\n const { validateAsync, validateAsyncDebounceMs } = this.options\n\n if (!validateAsync) {\n return\n }\n\n if (this.state.meta.isValidating !== true)\n this.setMeta((prev) => ({ ...prev, isValidating: true }))\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationAsyncCount = this.#leaseValidateAsync()\n\n const checkLatest = () =>\n validationAsyncCount === this.getInfo().validationAsyncCount\n\n if (!this.getInfo().validationPromise) {\n this.getInfo().validationPromise = new Promise((resolve, reject) => {\n this.getInfo().validationResolve = resolve\n this.getInfo().validationReject = reject\n })\n }\n\n if (validateAsyncDebounceMs > 0) {\n await new Promise((r) => setTimeout(r, validateAsyncDebounceMs))\n }\n\n // Only kick off validation if this validation is the latest attempt\n if (checkLatest()) {\n try {\n const rawError = await validateAsync(value, this)\n\n if (checkLatest()) {\n const error = normalizeError(rawError)\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n error,\n }))\n this.getInfo().validationResolve?.(error)\n }\n } catch (error) {\n if (checkLatest()) {\n this.getInfo().validationReject?.(error)\n throw error\n }\n } finally {\n if (checkLatest()) {\n this.setMeta((prev) => ({ ...prev, isValidating: false }))\n delete this.getInfo().validationPromise\n }\n }\n }\n\n // Always return the latest validation promise to the caller\n return this.getInfo().validationPromise\n }\n\n shouldValidate = (isAsync: boolean, cause?: ValidationCause) => {\n const { validateOn, validateAsyncOn } = this.options\n const level = getValidationCauseLevel(cause)\n\n // Must meet *at least* the validation level to validate,\n // e.g. if validateOn is 'change' and validateCause is 'blur',\n // the field will still validate\n return Object.keys(validateCauseLevels).some((d) =>\n isAsync\n ? validateAsyncOn\n : validateOn === d && level >= validateCauseLevels[d],\n )\n }\n\n validate = async (\n cause?: ValidationCause,\n value?: TData,\n ): Promise<ValidationError> => {\n // If the field is pristine and validatePristine is false, do not validate\n if (!this.options.validatePristine && !this.state.meta.isTouched) return\n\n // Attempt to sync validate first\n if (this.shouldValidate(false, cause)) {\n this.validateSync(value)\n }\n\n // If there is an error, return it, do not attempt async validation\n if (this.state.meta.error) {\n return this.state.meta.error\n }\n\n // No error? Attempt async validation\n if (this.shouldValidate(true, cause)) {\n return this.validateAsync(value)\n }\n\n // If there is no sync error or async validation attempt, there is no error\n return undefined\n }\n\n getChangeProps = <T extends UserChangeProps<any>>(\n props: T = {} as T,\n ): ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>> => {\n return {\n ...props,\n value: this.state.value,\n onChange: (value) => {\n this.setValue(value)\n props.onChange?.(value)\n },\n onBlur: (e) => {\n this.setMeta((prev) => ({ ...prev, isTouched: true }))\n this.validate('blur')\n props.onBlur?.(e)\n },\n } as ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>>\n }\n\n getInputProps = <T extends UserInputProps>(\n props: T = {} as T,\n ): InputProps & Omit<T, keyof InputProps> => {\n return {\n ...props,\n value: String(this.state.value),\n onChange: (e) => {\n this.setValue(e.target.value)\n props.onChange?.(e.target.value)\n },\n onBlur: this.getChangeProps(props).onBlur,\n }\n }\n}\n\nconst validateCauseLevels = {\n change: 0,\n blur: 1,\n submit: 2,\n}\n\nfunction getValidationCauseLevel(cause?: ValidationCause) {\n return !cause ? 3 : validateCauseLevels[cause]\n}\n\nfunction normalizeError(rawError?: ValidationError) {\n if (rawError) {\n if (typeof rawError !== 'string') {\n return 'Invalid Form Values'\n }\n\n return rawError\n }\n\n return undefined\n}\n"],"names":["functionalUpdate","updater","input","getBy","obj","path","pathArray","makePathArray","pathObj","reduce","current","pathPart","undefined","setBy","_path","doSet","parent","length","key","shift","Array","isArray","prefix","slice","Error","reFindNumbers0","reFindNumbers1","reFindNumbers2","reFindNumbers3","reFindMultiplePeriods","intPrefix","intReplace","str","replace","split","map","d","indexOf","parseInt","substring","getDefaultFormState","defaultState","values","fieldMeta","canSubmit","isFieldsValid","isFieldsValidating","isFormValid","isFormValidating","isSubmitted","isSubmitting","isTouched","isValid","isValidating","submissionAttempts","formValidationCount","FormApi","constructor","opts","options","fieldInfo","validationMeta","update","store","batch","setState","prev","defaultValues","reset","validateAllFields","fieldValidationPromises","Object","forEach","field","instances","instance","state","meta","setMeta","validate","push","Promise","all","validateForm","checkLatest","validationPromise","resolve","reject","validationResolve","validationReject","doValidation","error","err","handleSubmit","e","preventDefault","stopPropagation","old","done","onInvalidSubmit","onSubmit","getFieldValue","getFieldMeta","getFieldInfo","setFieldMeta","setFieldValue","touch","pushFieldValue","value","insertFieldValue","index","i","removeFieldValue","filter","_d","swapFieldValues","index1","index2","prev1","prev2","Store","onUpdate","next","fieldMetaValues","some","formError","console","log","uid","FieldApi","mount","info","getInfo","unsubscribe","form","subscribe","keys","name","nextValue","getValue","nextMeta","getMeta","validatePristine","defaultValidatePristine","validateOn","defaultValidateOn","validateAsyncOn","defaultValidateAsyncOn","validateAsyncDebounceMs","defaultValidateAsyncDebounceMs","defaultValue","setValue","pushValue","insertValue","removeValue","swapValues","aIndex","bIndex","getSubField","validateSync","validationCount","normalizeError","cancelValidateAsync","count","validationAsyncCount","validateAsync","r","setTimeout","rawError","shouldValidate","isAsync","cause","level","getValidationCauseLevel","validateCauseLevels","getChangeProps","props","onChange","onBlur","getInputProps","String","target","defaultMeta","touchedError","prevState","change","blur","submit"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils.ts","../../src/FormApi.ts","../../src/FieldApi.ts"],"sourcesContent":["export type UpdaterFn<TInput, TOutput = TInput> = (input: TInput) => TOutput\n\nexport type Updater<TInput, TOutput = TInput> =\n | TOutput\n | UpdaterFn<TInput, TOutput>\n\nexport function functionalUpdate<TInput, TOutput = TInput>(\n updater: Updater<TInput, TOutput>,\n input: TInput,\n): TOutput {\n return typeof updater === 'function'\n ? (updater as UpdaterFn<TInput, TOutput>)(input)\n : updater\n}\n\nexport function getBy(obj: any, path: any) {\n const pathArray = makePathArray(path)\n const pathObj = pathArray\n return pathObj.reduce((current: any, pathPart: any) => {\n if (typeof current !== 'undefined') {\n return current[pathPart]\n }\n return undefined\n }, obj)\n}\n\nexport function setBy(obj: any, _path: any, updater: Updater<any>) {\n const path = makePathArray(_path)\n\n function doSet(parent?: any): any {\n if (!path.length) {\n return functionalUpdate(updater, parent)\n }\n\n const key = path.shift()\n\n if (typeof key === 'string') {\n if (typeof parent === 'object') {\n return {\n ...parent,\n [key]: doSet(parent[key]),\n }\n }\n return {\n [key]: doSet(),\n }\n }\n\n if (typeof key === 'number') {\n if (Array.isArray(parent)) {\n const prefix = parent.slice(0, key)\n return [\n ...(prefix.length ? prefix : new Array(key)),\n doSet(parent[key]),\n ...parent.slice(key + 1),\n ]\n }\n return [...new Array(key), doSet()]\n }\n\n throw new Error('Uh oh!')\n }\n\n return doSet(obj)\n}\n\nconst reFindNumbers0 = /^(\\d*)$/gm\nconst reFindNumbers1 = /\\.(\\d*)\\./gm\nconst reFindNumbers2 = /^(\\d*)\\./gm\nconst reFindNumbers3 = /\\.(\\d*$)/gm\nconst reFindMultiplePeriods = /\\.{2,}/gm\n\nconst intPrefix = '__int__'\nconst intReplace = `${intPrefix}$1`\n\nfunction makePathArray(str: string) {\n if (typeof str !== 'string') {\n throw new Error()\n }\n\n return str\n .replace('[', '.')\n .replace(']', '')\n .replace(reFindNumbers0, intReplace)\n .replace(reFindNumbers1, `.${intReplace}.`)\n .replace(reFindNumbers2, `${intReplace}.`)\n .replace(reFindNumbers3, `.${intReplace}`)\n .replace(reFindMultiplePeriods, '.')\n .split('.')\n .map((d) => {\n if (d.indexOf(intPrefix) === 0) {\n return parseInt(d.substring(intPrefix.length), 10)\n }\n return d\n })\n}\n\nexport type RequiredByKey<T, K extends keyof T> = Omit<T, K> &\n Required<Pick<T, K>>\n\ntype ComputeRange<\n N extends number,\n Result extends Array<unknown> = [],\n> = Result['length'] extends N\n ? Result\n : ComputeRange<N, [...Result, Result['length']]>\ntype Index40 = ComputeRange<40>[number]\n\n// Is this type a tuple?\ntype IsTuple<T> = T extends readonly any[] & { length: infer Length }\n ? Length extends Index40\n ? T\n : never\n : never\n\n// If this type is a tuple, what indices are allowed?\ntype AllowedIndexes<\n Tuple extends ReadonlyArray<any>,\n Keys extends number = never,\n> = Tuple extends readonly []\n ? Keys\n : Tuple extends readonly [infer _, ...infer Tail]\n ? AllowedIndexes<Tail, Keys | Tail['length']>\n : Keys\n\nexport type DeepKeys<T> = unknown extends T\n ? keyof T\n : object extends T\n ? string\n : T extends readonly any[] & IsTuple<T>\n ? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>>\n : T extends any[]\n ? DeepKeys<T[number]>\n : T extends Date\n ? never\n : T extends object\n ? (keyof T & string) | DeepKeysPrefix<T, keyof T>\n : never\n\ntype DeepKeysPrefix<T, TPrefix> = TPrefix extends keyof T & (number | string)\n ? `${TPrefix}.${DeepKeys<T[TPrefix]> & string}`\n : never\n\nexport type DeepValue<T, TProp> = T extends Record<string | number, any>\n ? TProp extends `${infer TBranch}.${infer TDeepProp}`\n ? DeepValue<T[TBranch], TDeepProp>\n : T[TProp & string]\n : never\n\ntype Narrowable = string | number | bigint | boolean\n\ntype NarrowRaw<A> =\n | (A extends [] ? [] : never)\n | (A extends Narrowable ? A : never)\n | {\n [K in keyof A]: A[K] extends Function ? A[K] : NarrowRaw<A[K]>\n }\n\nexport type Narrow<A> = Try<A, [], NarrowRaw<A>>\n\ntype Try<A1, A2, Catch = never> = A1 extends A2 ? A1 : Catch\n","import { Store } from '@tanstack/store'\n//\nimport type { DeepKeys, DeepValue, Updater } from './utils'\nimport { functionalUpdate, getBy, setBy } from './utils'\nimport type { FieldApi, FieldMeta, ValidationCause } from './FieldApi'\n\nexport interface Register {\n // FormSubmitEvent\n}\n\nexport type FormSubmitEvent = Register extends {\n FormSubmitEvent: infer E\n}\n ? E\n : Event\n\nexport type FormOptions<TData> = {\n defaultValues?: TData\n defaultState?: Partial<FormState<TData>>\n asyncDebounceMs?: number\n onMount?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onMountAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onMountAsyncDebounceMs?: number\n onChange?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onChangeAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onChangeAsyncDebounceMs?: number\n onBlur?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onBlurAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onBlurAsyncDebounceMs?: number\n onSubmit?: (values: TData, formApi: FormApi<TData>) => any | Promise<any>\n onSubmitInvalid?: (values: TData, formApi: FormApi<TData>) => void\n}\n\nexport type FieldInfo<TFormData> = {\n instances: Record<string, FieldApi<any, TFormData>>\n} & ValidationMeta\n\nexport type ValidationMeta = {\n validationCount?: number\n validationAsyncCount?: number\n validationPromise?: Promise<ValidationError>\n validationResolve?: (error: ValidationError) => void\n validationReject?: (error: unknown) => void\n}\n\nexport type ValidationError = undefined | false | null | string\n\nexport type FormState<TData> = {\n values: TData\n // Form Validation\n isFormValidating: boolean\n formValidationCount: number\n isFormValid: boolean\n formError?: ValidationError\n // Fields\n fieldMeta: Record<DeepKeys<TData>, FieldMeta>\n isFieldsValidating: boolean\n isFieldsValid: boolean\n isSubmitting: boolean\n // General\n isTouched: boolean\n isSubmitted: boolean\n isValidating: boolean\n isValid: boolean\n canSubmit: boolean\n submissionAttempts: number\n}\n\nfunction getDefaultFormState<TData>(\n defaultState: Partial<FormState<TData>>,\n): FormState<TData> {\n return {\n values: {} as any,\n fieldMeta: {} as any,\n canSubmit: true,\n isFieldsValid: false,\n isFieldsValidating: false,\n isFormValid: false,\n isFormValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isTouched: false,\n isValid: false,\n isValidating: false,\n submissionAttempts: 0,\n formValidationCount: 0,\n ...defaultState,\n }\n}\n\nexport class FormApi<TFormData> {\n // // This carries the context for nested fields\n options: FormOptions<TFormData> = {}\n store!: Store<FormState<TFormData>>\n // Do not use __state directly, as it is not reactive.\n // Please use form.useStore() utility to subscribe to state\n state!: FormState<TFormData>\n fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData>> = {} as any\n fieldName?: string\n validationMeta: ValidationMeta = {}\n\n constructor(opts?: FormOptions<TFormData>) {\n this.store = new Store<FormState<TFormData>>(\n getDefaultFormState({\n ...opts?.defaultState,\n values: opts?.defaultValues ?? opts?.defaultState?.values,\n isFormValid: true,\n }),\n {\n onUpdate: () => {\n let { state } = this.store\n // Computed state\n const fieldMetaValues = Object.values(state.fieldMeta) as (\n | FieldMeta\n | undefined\n )[]\n\n const isFieldsValidating = fieldMetaValues.some(\n (field) => field?.isValidating,\n )\n\n const isFieldsValid = !fieldMetaValues.some((field) => field?.error)\n\n const isTouched = fieldMetaValues.some((field) => field?.isTouched)\n\n const isValidating = isFieldsValidating || state.isFormValidating\n const isFormValid = !state.formError\n const isValid = isFieldsValid && isFormValid\n const canSubmit =\n (state.submissionAttempts === 0 && !isTouched) ||\n (!isValidating && !state.isSubmitting && isValid)\n\n state = {\n ...state,\n isFieldsValidating,\n isFieldsValid,\n isFormValid,\n isValid,\n canSubmit,\n isTouched,\n }\n\n this.store.state = state\n this.state = state\n },\n },\n )\n\n this.state = this.store.state\n\n this.update(opts || {})\n }\n\n update = (options?: FormOptions<TFormData>) => {\n if (!options) return\n\n this.store.batch(() => {\n if (\n options.defaultState &&\n options.defaultState !== this.options.defaultState\n ) {\n this.store.setState((prev) => ({\n ...prev,\n ...options.defaultState,\n }))\n }\n\n if (options.defaultValues !== this.options.defaultValues) {\n this.store.setState(() => getDefaultFormState(options.defaultValues!))\n }\n })\n\n this.options = options\n }\n\n reset = () =>\n this.store.setState(() => getDefaultFormState(this.options.defaultValues!))\n\n validateAllFields = async (cause: ValidationCause) => {\n const fieldValidationPromises: Promise<ValidationError>[] = [] as any\n\n this.store.batch(() => {\n void (Object.values(this.fieldInfo) as FieldInfo<any>[]).forEach(\n (field) => {\n Object.values(field.instances).forEach((instance) => {\n // If any fields are not touched\n if (!instance.state.meta.isTouched) {\n // Mark them as touched\n instance.setMeta((prev) => ({ ...prev, isTouched: true }))\n // Validate the field\n fieldValidationPromises.push(\n Promise.resolve().then(() => instance.validate(cause)),\n )\n }\n })\n },\n )\n })\n\n return Promise.all(fieldValidationPromises)\n }\n\n // validateForm = async () => {}\n\n handleSubmit = async (e: FormSubmitEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n // Check to see that the form and all fields have been touched\n // If they have not, touch them all and run validation\n // Run form validation\n // Submit the form\n\n this.store.setState((old) => ({\n ...old,\n // Submittion attempts mark the form as not submitted\n isSubmitted: false,\n // Count submission attempts\n submissionAttempts: old.submissionAttempts + 1,\n }))\n\n // Don't let invalid forms submit\n if (!this.state.canSubmit) return\n\n this.store.setState((d) => ({ ...d, isSubmitting: true }))\n\n const done = () => {\n this.store.setState((prev) => ({ ...prev, isSubmitting: false }))\n }\n\n // Validate all fields\n await this.validateAllFields('submit')\n\n // Fields are invalid, do not submit\n if (!this.state.isFieldsValid) {\n done()\n this.options.onSubmitInvalid?.(this.state.values, this)\n return\n }\n\n // Run validation for the form\n // await this.validateForm()\n\n if (!this.state.isValid) {\n done()\n this.options.onSubmitInvalid?.(this.state.values, this)\n return\n }\n\n try {\n // Run the submit code\n await this.options.onSubmit?.(this.state.values, this)\n\n this.store.batch(() => {\n this.store.setState((prev) => ({ ...prev, isSubmitted: true }))\n done()\n })\n } catch (err) {\n done()\n throw err\n }\n }\n\n getFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): DeepValue<TFormData, TField> => getBy(this.state.values, field)\n\n getFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): FieldMeta => {\n return this.state.fieldMeta[field]\n }\n\n getFieldInfo = <TField extends DeepKeys<TFormData>>(field: TField) => {\n return (this.fieldInfo[field] ||= {\n instances: {},\n })\n }\n\n setFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<FieldMeta>,\n ) => {\n this.store.setState((prev) => {\n return {\n ...prev,\n fieldMeta: {\n ...prev.fieldMeta,\n [field]: functionalUpdate(updater, prev.fieldMeta[field]),\n },\n }\n })\n }\n\n setFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<DeepValue<TFormData, TField>>,\n opts?: { touch?: boolean },\n ) => {\n const touch = opts?.touch\n\n this.store.batch(() => {\n if (touch) {\n this.setFieldMeta(field, (prev) => ({\n ...prev,\n isTouched: true,\n }))\n }\n\n this.store.setState((prev) => {\n return {\n ...prev,\n values: setBy(prev.values, field, updater),\n }\n })\n })\n }\n\n pushFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n return this.setFieldValue(\n field,\n (prev) => [...(Array.isArray(prev) ? prev : []), value] as any,\n opts,\n )\n }\n\n insertFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n return (prev as DeepValue<TFormData, TField>[]).map((d, i) =>\n i === index ? value : d,\n ) as any\n },\n opts,\n )\n }\n\n removeFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n return (prev as DeepValue<TFormData, TField>[]).filter(\n (_d, i) => i !== index,\n ) as any\n },\n opts,\n )\n }\n\n swapFieldValues = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index1: number,\n index2: number,\n ) => {\n this.setFieldValue(field, (prev: any) => {\n const prev1 = prev[index1]!\n const prev2 = prev[index2]!\n return setBy(setBy(prev, [index1], prev2), [index2], prev1)\n })\n }\n}\n","//\nimport type { DeepKeys, DeepValue, RequiredByKey, Updater } from './utils'\nimport type { FormApi, ValidationError } from './FormApi'\nimport { Store } from '@tanstack/store'\n\nexport type ValidationCause = 'change' | 'blur' | 'submit'\n\ntype ValidateFn<TData, TFormData> = (\n value: TData,\n fieldApi: FieldApi<TData, TFormData>,\n) => ValidationError\n\ntype ValidateAsyncFn<TData, TFormData> = (\n value: TData,\n fieldApi: FieldApi<TData, TFormData>,\n) => ValidationError | Promise<ValidationError>\n\nexport interface FieldOptions<TData, TFormData> {\n name: unknown extends TFormData ? string : DeepKeys<TFormData>\n index?: TData extends any[] ? number : never\n defaultValue?: TData\n asyncDebounceMs?: number\n asyncAlways?: boolean\n onMount?: (formApi: FieldApi<TData, TFormData>) => void\n onChange?: ValidateFn<TData, TFormData>\n onChangeAsync?: ValidateAsyncFn<TData, TFormData>\n onChangeAsyncDebounceMs?: number\n onBlur?: ValidateFn<TData, TFormData>\n onBlurAsync?: ValidateAsyncFn<TData, TFormData>\n onBlurAsyncDebounceMs?: number\n onSubmitAsync?: ValidateAsyncFn<TData, TFormData>\n defaultMeta?: Partial<FieldMeta>\n}\n\nexport type FieldApiOptions<TData, TFormData> = FieldOptions<\n TData,\n TFormData\n> & {\n form: FormApi<TFormData>\n}\n\nexport type FieldMeta = {\n isTouched: boolean\n touchedError?: ValidationError\n error?: ValidationError\n isValidating: boolean\n}\n\nexport type UserChangeProps<TData> = {\n onChange?: (updater: Updater<TData>) => void\n onBlur?: (event: any) => void\n}\n\nexport type UserInputProps = {\n onChange?: (event: any) => void\n onBlur?: (event: any) => void\n}\n\nexport type ChangeProps<TData> = {\n value: TData\n onChange: (value: TData) => void\n onBlur: (event: any) => void\n}\n\nexport type InputProps = {\n value: string\n onChange: (event: any) => void\n onBlur: (event: any) => void\n}\n\nlet uid = 0\n\nexport type FieldState<TData> = {\n value: TData\n meta: FieldMeta\n}\n\nexport class FieldApi<TData, TFormData> {\n uid: number\n form: FormApi<TFormData>\n name!: DeepKeys<TFormData>\n store!: Store<FieldState<TData>>\n state!: FieldState<TData>\n #prevState!: FieldState<TData>\n options: FieldOptions<TData, TFormData> = {} as any\n\n constructor(opts: FieldApiOptions<TData, TFormData>) {\n this.form = opts.form\n this.uid = uid++\n // Support field prefixing from FieldScope\n // let fieldPrefix = ''\n // if (this.form.fieldName) {\n // fieldPrefix = `${this.form.fieldName}.`\n // }\n\n this.name = opts.name as any\n\n this.store = new Store<FieldState<TData>>(\n {\n value: this.getValue(),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n meta: this.getMeta() ?? {\n isValidating: false,\n isTouched: false,\n ...this.options.defaultMeta,\n },\n },\n {\n onUpdate: () => {\n const state = this.store.state\n\n state.meta.touchedError = state.meta.isTouched\n ? state.meta.error\n : undefined\n\n if (state.value !== this.#prevState.value) {\n this.validate('change', state.value)\n }\n\n this.#prevState = state\n this.state = state\n },\n },\n )\n\n this.state = this.store.state\n this.#prevState = this.state\n this.update(opts)\n }\n\n mount = () => {\n const info = this.getInfo()\n info.instances[this.uid] = this\n\n const unsubscribe = this.form.store.subscribe(() => {\n this.store.batch(() => {\n const nextValue = this.getValue()\n const nextMeta = this.getMeta()\n\n if (nextValue !== this.state.value) {\n this.store.setState((prev) => ({ ...prev, value: nextValue }))\n }\n\n if (nextMeta !== this.state.meta) {\n this.store.setState((prev) => ({ ...prev, meta: nextMeta }))\n }\n })\n })\n\n this.options.onMount?.(this)\n\n return () => {\n unsubscribe()\n delete info.instances[this.uid]\n if (!Object.keys(info.instances).length) {\n delete this.form.fieldInfo[this.name]\n }\n }\n }\n\n update = (opts: FieldApiOptions<TData, TFormData>) => {\n this.options = {\n asyncDebounceMs: this.form.options.asyncDebounceMs ?? 0,\n onChangeAsyncDebounceMs: this.form.options.onChangeAsyncDebounceMs ?? 0,\n onBlurAsyncDebounceMs: this.form.options.onBlurAsyncDebounceMs ?? 0,\n ...opts,\n }\n\n // Default Value\n if (\n this.state.value === undefined &&\n this.options.defaultValue !== undefined\n ) {\n this.setValue(this.options.defaultValue)\n }\n\n // Default Meta\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (this.getMeta() === undefined) {\n this.setMeta(this.state.meta)\n }\n }\n\n getValue = (): TData => {\n return this.form.getFieldValue(this.name)\n }\n setValue = (\n updater: Updater<TData>,\n options?: { touch?: boolean; notify?: boolean },\n ) => this.form.setFieldValue(this.name, updater as any, options)\n\n getMeta = (): FieldMeta => this.form.getFieldMeta(this.name)\n setMeta = (updater: Updater<FieldMeta>) =>\n this.form.setFieldMeta(this.name, updater)\n\n getInfo = () => this.form.getFieldInfo(this.name)\n\n pushValue = (value: TData extends any[] ? TData[number] : never) =>\n this.form.pushFieldValue(this.name, value as any)\n insertValue = (index: number, value: TData) =>\n this.form.insertFieldValue(this.name, index, value as any)\n removeValue = (index: number) => this.form.removeFieldValue(this.name, index)\n swapValues = (aIndex: number, bIndex: number) =>\n this.form.swapFieldValues(this.name, aIndex, bIndex)\n\n getSubField = <TName extends DeepKeys<TData>>(name: TName) =>\n new FieldApi<DeepValue<TData, TName>, TFormData>({\n name: `${this.name}.${name}` as any,\n form: this.form,\n })\n\n validateSync = async (value = this.state.value, cause: ValidationCause) => {\n const { onChange, onBlur } = this.options\n const validate =\n cause === 'submit' ? undefined : cause === 'change' ? onChange : onBlur\n\n if (!validate) return\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationCount = (this.getInfo().validationCount || 0) + 1\n this.getInfo().validationCount = validationCount\n const error = normalizeError(validate(value, this))\n\n if (this.state.meta.error !== error) {\n this.setMeta((prev) => ({\n ...prev,\n error,\n }))\n }\n\n // If a sync error is encountered, cancel any async validation\n if (this.state.meta.error) {\n this.cancelValidateAsync()\n }\n }\n\n #leaseValidateAsync = () => {\n const count = (this.getInfo().validationAsyncCount || 0) + 1\n this.getInfo().validationAsyncCount = count\n return count\n }\n\n cancelValidateAsync = () => {\n // Lease a new validation count to ignore any pending validations\n this.#leaseValidateAsync()\n // Cancel any pending validation state\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n }))\n }\n\n validateAsync = async (value = this.state.value, cause: ValidationCause) => {\n const {\n onChangeAsync,\n onBlurAsync,\n onSubmitAsync,\n asyncDebounceMs,\n onBlurAsyncDebounceMs,\n onChangeAsyncDebounceMs,\n } = this.options\n\n const validate =\n cause === 'change'\n ? onChangeAsync\n : cause === 'submit'\n ? onSubmitAsync\n : onBlurAsync\n\n if (!validate) return\n\n const debounceMs =\n cause === 'submit'\n ? 0\n : (cause === 'change'\n ? onChangeAsyncDebounceMs\n : onBlurAsyncDebounceMs) ??\n asyncDebounceMs ??\n 500\n\n if (this.state.meta.isValidating !== true)\n this.setMeta((prev) => ({ ...prev, isValidating: true }))\n\n // Use the validationCount for all field instances to\n // track freshness of the validation\n const validationAsyncCount = this.#leaseValidateAsync()\n\n const checkLatest = () =>\n validationAsyncCount === this.getInfo().validationAsyncCount\n\n if (!this.getInfo().validationPromise) {\n this.getInfo().validationPromise = new Promise((resolve, reject) => {\n this.getInfo().validationResolve = resolve\n this.getInfo().validationReject = reject\n })\n }\n\n if (debounceMs > 0) {\n await new Promise((r) => setTimeout(r, debounceMs))\n }\n\n // Only kick off validation if this validation is the latest attempt\n if (checkLatest()) {\n try {\n const rawError = await validate(value, this)\n\n if (checkLatest()) {\n const error = normalizeError(rawError)\n this.setMeta((prev) => ({\n ...prev,\n isValidating: false,\n error,\n }))\n this.getInfo().validationResolve?.(error)\n }\n } catch (error) {\n if (checkLatest()) {\n this.getInfo().validationReject?.(error)\n throw error\n }\n } finally {\n if (checkLatest()) {\n this.setMeta((prev) => ({ ...prev, isValidating: false }))\n delete this.getInfo().validationPromise\n }\n }\n }\n\n // Always return the latest validation promise to the caller\n return this.getInfo().validationPromise\n }\n\n validate = (\n cause: ValidationCause,\n value?: TData,\n ): ValidationError | Promise<ValidationError> => {\n // If the field is pristine and validatePristine is false, do not validate\n if (!this.state.meta.isTouched) return\n\n // Attempt to sync validate first\n this.validateSync(value, cause)\n\n // If there is an error, return it, do not attempt async validation\n if (this.state.meta.error) {\n if (!this.options.asyncAlways) {\n return this.state.meta.error\n }\n }\n\n // No error? Attempt async validation\n return this.validateAsync(value, cause)\n }\n\n getChangeProps = <T extends UserChangeProps<any>>(\n props: T = {} as T,\n ): ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>> => {\n return {\n ...props,\n value: this.state.value,\n onChange: (value) => {\n this.setValue(value)\n props.onChange?.(value)\n },\n onBlur: (e) => {\n const prevTouched = this.state.meta.isTouched\n this.setMeta((prev) => ({ ...prev, isTouched: true }))\n if (!prevTouched) {\n this.validate('change')\n }\n this.validate('blur')\n },\n } as ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>>\n }\n\n getInputProps = <T extends UserInputProps>(\n props: T = {} as T,\n ): InputProps & Omit<T, keyof InputProps> => {\n return {\n ...props,\n value: String(this.state.value),\n onChange: (e) => {\n this.setValue(e.target.value)\n props.onChange?.(e.target.value)\n },\n onBlur: this.getChangeProps(props).onBlur,\n }\n }\n}\n\nfunction normalizeError(rawError?: ValidationError) {\n if (rawError) {\n if (typeof rawError !== 'string') {\n return 'Invalid Form Values'\n }\n\n return rawError\n }\n\n return undefined\n}\n"],"names":["functionalUpdate","updater","input","getBy","obj","path","pathArray","makePathArray","pathObj","reduce","current","pathPart","undefined","setBy","_path","doSet","parent","length","key","shift","Array","isArray","prefix","slice","Error","reFindNumbers0","reFindNumbers1","reFindNumbers2","reFindNumbers3","reFindMultiplePeriods","intPrefix","intReplace","str","replace","split","map","d","indexOf","parseInt","substring","getDefaultFormState","defaultState","values","fieldMeta","canSubmit","isFieldsValid","isFieldsValidating","isFormValid","isFormValidating","isSubmitted","isSubmitting","isTouched","isValid","isValidating","submissionAttempts","formValidationCount","FormApi","constructor","opts","options","store","batch","setState","prev","defaultValues","cause","fieldValidationPromises","Object","fieldInfo","forEach","field","instances","instance","state","meta","setMeta","push","Promise","resolve","then","validate","all","e","preventDefault","stopPropagation","old","done","validateAllFields","onSubmitInvalid","onSubmit","err","touch","setFieldMeta","value","setFieldValue","index","i","filter","_d","index1","index2","prev1","prev2","Store","onUpdate","fieldMetaValues","some","error","formError","update","uid","FieldApi","info","getInfo","unsubscribe","form","subscribe","nextValue","getValue","nextMeta","getMeta","onMount","keys","name","asyncDebounceMs","onChangeAsyncDebounceMs","onBlurAsyncDebounceMs","defaultValue","setValue","getFieldValue","getFieldMeta","getFieldInfo","pushFieldValue","insertFieldValue","removeFieldValue","aIndex","bIndex","swapFieldValues","onChange","onBlur","validationCount","normalizeError","cancelValidateAsync","count","validationAsyncCount","onChangeAsync","onBlurAsync","onSubmitAsync","debounceMs","checkLatest","validationPromise","reject","validationResolve","validationReject","r","setTimeout","rawError","validateSync","asyncAlways","validateAsync","props","prevTouched","String","target","getChangeProps","defaultMeta","touchedError"],"mappings":"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"}
|
package/build/stats-html.html
CHANGED
|
@@ -2669,7 +2669,7 @@ var drawChart = (function (exports) {
|
|
|
2669
2669
|
</script>
|
|
2670
2670
|
<script>
|
|
2671
2671
|
/*<!--*/
|
|
2672
|
-
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"name":"node_modules/.pnpm/@tanstack+store@0.0.1-beta.
|
|
2672
|
+
const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"90cf-1","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js","uid":"90cf-3"},{"name":"packages/form-core/src","children":[{"uid":"90cf-5","name":"utils.ts"},{"uid":"90cf-7","name":"FormApi.ts"},{"uid":"90cf-9","name":"FieldApi.ts"},{"uid":"90cf-11","name":"index.ts"}]}]}],"isRoot":true},"nodeParts":{"90cf-1":{"renderedLength":1793,"gzipLength":535,"brotliLength":0,"mainUid":"90cf-0"},"90cf-3":{"renderedLength":1313,"gzipLength":489,"brotliLength":0,"mainUid":"90cf-2"},"90cf-5":{"renderedLength":2008,"gzipLength":694,"brotliLength":0,"mainUid":"90cf-4"},"90cf-7":{"renderedLength":8246,"gzipLength":1914,"brotliLength":0,"mainUid":"90cf-6"},"90cf-9":{"renderedLength":10854,"gzipLength":2441,"brotliLength":0,"mainUid":"90cf-8"},"90cf-11":{"renderedLength":0,"gzipLength":0,"brotliLength":0,"mainUid":"90cf-10"}},"nodeMetas":{"90cf-0":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"90cf-1"},"imported":[],"importedBy":[{"uid":"90cf-6"},{"uid":"90cf-8"}]},"90cf-2":{"id":"/node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js","moduleParts":{"index.production.js":"90cf-3"},"imported":[],"importedBy":[{"uid":"90cf-6"},{"uid":"90cf-8"}]},"90cf-4":{"id":"/packages/form-core/src/utils.ts","moduleParts":{"index.production.js":"90cf-5"},"imported":[],"importedBy":[{"uid":"90cf-10"},{"uid":"90cf-6"}]},"90cf-6":{"id":"/packages/form-core/src/FormApi.ts","moduleParts":{"index.production.js":"90cf-7"},"imported":[{"uid":"90cf-0"},{"uid":"90cf-2"},{"uid":"90cf-4"}],"importedBy":[{"uid":"90cf-10"}]},"90cf-8":{"id":"/packages/form-core/src/FieldApi.ts","moduleParts":{"index.production.js":"90cf-9"},"imported":[{"uid":"90cf-0"},{"uid":"90cf-2"}],"importedBy":[{"uid":"90cf-10"}]},"90cf-10":{"id":"/packages/form-core/src/index.ts","moduleParts":{"index.production.js":"90cf-11"},"imported":[{"uid":"90cf-6"},{"uid":"90cf-8"},{"uid":"90cf-4"}],"importedBy":[],"isEntry":true}},"env":{"rollup":"2.78.1"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
|
|
2673
2673
|
|
|
2674
2674
|
const run = () => {
|
|
2675
2675
|
const width = window.innerWidth;
|
package/build/stats-react.json
CHANGED
|
@@ -7,33 +7,33 @@
|
|
|
7
7
|
"name": "index.production.js",
|
|
8
8
|
"children": [
|
|
9
9
|
{
|
|
10
|
-
"
|
|
11
|
-
"
|
|
10
|
+
"uid": "90cf-13",
|
|
11
|
+
"name": "\u0000rollupPluginBabelHelpers.js"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js",
|
|
15
|
+
"uid": "90cf-15"
|
|
12
16
|
},
|
|
13
17
|
{
|
|
14
18
|
"name": "packages/form-core/src",
|
|
15
19
|
"children": [
|
|
16
20
|
{
|
|
17
|
-
"uid": "
|
|
21
|
+
"uid": "90cf-17",
|
|
18
22
|
"name": "utils.ts"
|
|
19
23
|
},
|
|
20
24
|
{
|
|
21
|
-
"uid": "
|
|
25
|
+
"uid": "90cf-19",
|
|
22
26
|
"name": "FormApi.ts"
|
|
23
27
|
},
|
|
24
28
|
{
|
|
25
|
-
"uid": "
|
|
29
|
+
"uid": "90cf-21",
|
|
26
30
|
"name": "FieldApi.ts"
|
|
27
31
|
},
|
|
28
32
|
{
|
|
29
|
-
"uid": "
|
|
33
|
+
"uid": "90cf-23",
|
|
30
34
|
"name": "index.ts"
|
|
31
35
|
}
|
|
32
36
|
]
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"uid": "68f1-19",
|
|
36
|
-
"name": "\u0000rollupPluginBabelHelpers.js"
|
|
37
37
|
}
|
|
38
38
|
]
|
|
39
39
|
}
|
|
@@ -41,138 +41,144 @@
|
|
|
41
41
|
"isRoot": true
|
|
42
42
|
},
|
|
43
43
|
"nodeParts": {
|
|
44
|
-
"
|
|
45
|
-
"renderedLength":
|
|
46
|
-
"gzipLength":
|
|
44
|
+
"90cf-13": {
|
|
45
|
+
"renderedLength": 1793,
|
|
46
|
+
"gzipLength": 535,
|
|
47
47
|
"brotliLength": 0,
|
|
48
|
-
"mainUid": "
|
|
48
|
+
"mainUid": "90cf-12"
|
|
49
49
|
},
|
|
50
|
-
"
|
|
51
|
-
"renderedLength":
|
|
52
|
-
"gzipLength":
|
|
50
|
+
"90cf-15": {
|
|
51
|
+
"renderedLength": 1313,
|
|
52
|
+
"gzipLength": 489,
|
|
53
53
|
"brotliLength": 0,
|
|
54
|
-
"mainUid": "
|
|
54
|
+
"mainUid": "90cf-14"
|
|
55
55
|
},
|
|
56
|
-
"
|
|
57
|
-
"renderedLength":
|
|
58
|
-
"gzipLength":
|
|
56
|
+
"90cf-17": {
|
|
57
|
+
"renderedLength": 2008,
|
|
58
|
+
"gzipLength": 694,
|
|
59
59
|
"brotliLength": 0,
|
|
60
|
-
"mainUid": "
|
|
60
|
+
"mainUid": "90cf-16"
|
|
61
61
|
},
|
|
62
|
-
"
|
|
63
|
-
"renderedLength":
|
|
64
|
-
"gzipLength":
|
|
62
|
+
"90cf-19": {
|
|
63
|
+
"renderedLength": 8246,
|
|
64
|
+
"gzipLength": 1914,
|
|
65
65
|
"brotliLength": 0,
|
|
66
|
-
"mainUid": "
|
|
66
|
+
"mainUid": "90cf-18"
|
|
67
67
|
},
|
|
68
|
-
"
|
|
69
|
-
"renderedLength":
|
|
70
|
-
"gzipLength":
|
|
68
|
+
"90cf-21": {
|
|
69
|
+
"renderedLength": 10854,
|
|
70
|
+
"gzipLength": 2441,
|
|
71
71
|
"brotliLength": 0,
|
|
72
|
-
"mainUid": "
|
|
72
|
+
"mainUid": "90cf-20"
|
|
73
73
|
},
|
|
74
|
-
"
|
|
74
|
+
"90cf-23": {
|
|
75
75
|
"renderedLength": 0,
|
|
76
76
|
"gzipLength": 0,
|
|
77
77
|
"brotliLength": 0,
|
|
78
|
-
"mainUid": "
|
|
78
|
+
"mainUid": "90cf-22"
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"nodeMetas": {
|
|
82
|
-
"
|
|
83
|
-
"id": "
|
|
82
|
+
"90cf-12": {
|
|
83
|
+
"id": "\u0000rollupPluginBabelHelpers.js",
|
|
84
84
|
"moduleParts": {
|
|
85
|
-
"index.production.js": "
|
|
85
|
+
"index.production.js": "90cf-13"
|
|
86
86
|
},
|
|
87
87
|
"imported": [],
|
|
88
88
|
"importedBy": [
|
|
89
89
|
{
|
|
90
|
-
"uid": "
|
|
90
|
+
"uid": "90cf-18"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
"uid": "
|
|
93
|
+
"uid": "90cf-20"
|
|
94
94
|
}
|
|
95
95
|
]
|
|
96
96
|
},
|
|
97
|
-
"
|
|
98
|
-
"id": "/
|
|
97
|
+
"90cf-14": {
|
|
98
|
+
"id": "/node_modules/.pnpm/@tanstack+store@0.0.1-beta.89/node_modules/@tanstack/store/build/esm/index.js",
|
|
99
99
|
"moduleParts": {
|
|
100
|
-
"index.production.js": "
|
|
100
|
+
"index.production.js": "90cf-15"
|
|
101
101
|
},
|
|
102
102
|
"imported": [],
|
|
103
103
|
"importedBy": [
|
|
104
104
|
{
|
|
105
|
-
"uid": "
|
|
105
|
+
"uid": "90cf-18"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
|
-
"uid": "
|
|
108
|
+
"uid": "90cf-20"
|
|
109
109
|
}
|
|
110
110
|
]
|
|
111
111
|
},
|
|
112
|
-
"
|
|
113
|
-
"id": "/packages/form-core/src/
|
|
112
|
+
"90cf-16": {
|
|
113
|
+
"id": "/packages/form-core/src/utils.ts",
|
|
114
114
|
"moduleParts": {
|
|
115
|
-
"index.production.js": "
|
|
115
|
+
"index.production.js": "90cf-17"
|
|
116
116
|
},
|
|
117
|
-
"imported": [
|
|
117
|
+
"imported": [],
|
|
118
|
+
"importedBy": [
|
|
118
119
|
{
|
|
119
|
-
"uid": "
|
|
120
|
+
"uid": "90cf-22"
|
|
120
121
|
},
|
|
121
122
|
{
|
|
122
|
-
"uid": "
|
|
123
|
-
}
|
|
124
|
-
],
|
|
125
|
-
"importedBy": [
|
|
126
|
-
{
|
|
127
|
-
"uid": "68f1-22"
|
|
123
|
+
"uid": "90cf-18"
|
|
128
124
|
}
|
|
129
125
|
]
|
|
130
126
|
},
|
|
131
|
-
"
|
|
132
|
-
"id": "
|
|
127
|
+
"90cf-18": {
|
|
128
|
+
"id": "/packages/form-core/src/FormApi.ts",
|
|
133
129
|
"moduleParts": {
|
|
134
|
-
"index.production.js": "
|
|
130
|
+
"index.production.js": "90cf-19"
|
|
135
131
|
},
|
|
136
|
-
"imported": [
|
|
132
|
+
"imported": [
|
|
133
|
+
{
|
|
134
|
+
"uid": "90cf-12"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"uid": "90cf-14"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"uid": "90cf-16"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
137
143
|
"importedBy": [
|
|
138
144
|
{
|
|
139
|
-
"uid": "
|
|
145
|
+
"uid": "90cf-22"
|
|
140
146
|
}
|
|
141
147
|
]
|
|
142
148
|
},
|
|
143
|
-
"
|
|
149
|
+
"90cf-20": {
|
|
144
150
|
"id": "/packages/form-core/src/FieldApi.ts",
|
|
145
151
|
"moduleParts": {
|
|
146
|
-
"index.production.js": "
|
|
152
|
+
"index.production.js": "90cf-21"
|
|
147
153
|
},
|
|
148
154
|
"imported": [
|
|
149
155
|
{
|
|
150
|
-
"uid": "
|
|
156
|
+
"uid": "90cf-12"
|
|
151
157
|
},
|
|
152
158
|
{
|
|
153
|
-
"uid": "
|
|
159
|
+
"uid": "90cf-14"
|
|
154
160
|
}
|
|
155
161
|
],
|
|
156
162
|
"importedBy": [
|
|
157
163
|
{
|
|
158
|
-
"uid": "
|
|
164
|
+
"uid": "90cf-22"
|
|
159
165
|
}
|
|
160
166
|
]
|
|
161
167
|
},
|
|
162
|
-
"
|
|
168
|
+
"90cf-22": {
|
|
163
169
|
"id": "/packages/form-core/src/index.ts",
|
|
164
170
|
"moduleParts": {
|
|
165
|
-
"index.production.js": "
|
|
171
|
+
"index.production.js": "90cf-23"
|
|
166
172
|
},
|
|
167
173
|
"imported": [
|
|
168
174
|
{
|
|
169
|
-
"uid": "
|
|
175
|
+
"uid": "90cf-18"
|
|
170
176
|
},
|
|
171
177
|
{
|
|
172
|
-
"uid": "
|
|
178
|
+
"uid": "90cf-20"
|
|
173
179
|
},
|
|
174
180
|
{
|
|
175
|
-
"uid": "
|
|
181
|
+
"uid": "90cf-16"
|
|
176
182
|
}
|
|
177
183
|
],
|
|
178
184
|
"importedBy": [],
|
|
@@ -1,17 +1,23 @@
|
|
|
1
|
-
import type { DeepKeys, DeepValue,
|
|
1
|
+
import type { DeepKeys, DeepValue, Updater } from './utils';
|
|
2
2
|
import type { FormApi, ValidationError } from './FormApi';
|
|
3
3
|
import { Store } from '@tanstack/store';
|
|
4
4
|
export type ValidationCause = 'change' | 'blur' | 'submit';
|
|
5
|
+
type ValidateFn<TData, TFormData> = (value: TData, fieldApi: FieldApi<TData, TFormData>) => ValidationError;
|
|
6
|
+
type ValidateAsyncFn<TData, TFormData> = (value: TData, fieldApi: FieldApi<TData, TFormData>) => ValidationError | Promise<ValidationError>;
|
|
5
7
|
export interface FieldOptions<TData, TFormData> {
|
|
6
8
|
name: unknown extends TFormData ? string : DeepKeys<TFormData>;
|
|
7
9
|
index?: TData extends any[] ? number : never;
|
|
8
10
|
defaultValue?: TData;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
asyncDebounceMs?: number;
|
|
12
|
+
asyncAlways?: boolean;
|
|
13
|
+
onMount?: (formApi: FieldApi<TData, TFormData>) => void;
|
|
14
|
+
onChange?: ValidateFn<TData, TFormData>;
|
|
15
|
+
onChangeAsync?: ValidateAsyncFn<TData, TFormData>;
|
|
16
|
+
onChangeAsyncDebounceMs?: number;
|
|
17
|
+
onBlur?: ValidateFn<TData, TFormData>;
|
|
18
|
+
onBlurAsync?: ValidateAsyncFn<TData, TFormData>;
|
|
19
|
+
onBlurAsyncDebounceMs?: number;
|
|
20
|
+
onSubmitAsync?: ValidateAsyncFn<TData, TFormData>;
|
|
15
21
|
defaultMeta?: Partial<FieldMeta>;
|
|
16
22
|
}
|
|
17
23
|
export type FieldApiOptions<TData, TFormData> = FieldOptions<TData, TFormData> & {
|
|
@@ -33,7 +39,7 @@ export type UserInputProps = {
|
|
|
33
39
|
};
|
|
34
40
|
export type ChangeProps<TData> = {
|
|
35
41
|
value: TData;
|
|
36
|
-
onChange: (
|
|
42
|
+
onChange: (value: TData) => void;
|
|
37
43
|
onBlur: (event: any) => void;
|
|
38
44
|
};
|
|
39
45
|
export type InputProps = {
|
|
@@ -52,7 +58,7 @@ export declare class FieldApi<TData, TFormData> {
|
|
|
52
58
|
name: DeepKeys<TFormData>;
|
|
53
59
|
store: Store<FieldState<TData>>;
|
|
54
60
|
state: FieldState<TData>;
|
|
55
|
-
options:
|
|
61
|
+
options: FieldOptions<TData, TFormData>;
|
|
56
62
|
constructor(opts: FieldApiOptions<TData, TFormData>);
|
|
57
63
|
mount: () => () => void;
|
|
58
64
|
update: (opts: FieldApiOptions<TData, TFormData>) => void;
|
|
@@ -69,11 +75,11 @@ export declare class FieldApi<TData, TFormData> {
|
|
|
69
75
|
removeValue: (index: number) => void;
|
|
70
76
|
swapValues: (aIndex: number, bIndex: number) => void;
|
|
71
77
|
getSubField: <TName extends DeepKeys<TData>>(name: TName) => FieldApi<DeepValue<TData, TName>, TFormData>;
|
|
72
|
-
validateSync: (value
|
|
78
|
+
validateSync: (value: TData | undefined, cause: ValidationCause) => Promise<void>;
|
|
73
79
|
cancelValidateAsync: () => void;
|
|
74
|
-
validateAsync: (value
|
|
75
|
-
|
|
76
|
-
validate: (cause?: ValidationCause, value?: TData) => Promise<ValidationError>;
|
|
80
|
+
validateAsync: (value: TData | undefined, cause: ValidationCause) => Promise<ValidationError>;
|
|
81
|
+
validate: (cause: ValidationCause, value?: TData) => ValidationError | Promise<ValidationError>;
|
|
77
82
|
getChangeProps: <T extends UserChangeProps<any>>(props?: T) => ChangeProps<TData> & Omit<T, keyof ChangeProps<TData>>;
|
|
78
83
|
getInputProps: <T extends UserInputProps>(props?: T) => InputProps & Omit<T, keyof InputProps>;
|
|
79
84
|
}
|
|
85
|
+
export {};
|