1 line
35 KiB
Plaintext
1 line
35 KiB
Plaintext
{"version":3,"file":"react-final-form.umd.min.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../src/renderComponent.js","../src/useWhenValueChanges.js","../src/shallowEqual.js","../src/isSyntheticEvent.js","../src/context.js","../src/useLatest.js","../src/getters.js","../src/ReactFinalForm.js","../src/useConstant.js","../src/useForm.js","../src/useFormState.js","../src/FormSpy.js","../src/useField.js","../src/isReactNative.js","../src/getValue.js","../src/Field.js","../src/index.js"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// @flow\nimport * as React from 'react'\nimport type { RenderableProps } from './types'\n\n// shared logic between components that use either render prop,\n// children render function, or component prop\nexport default function renderComponent<T>(\n props: RenderableProps<T> & T,\n lazyProps: Object,\n name: string\n): React.Node {\n const { render, children, component, ...rest } = props\n if (component) {\n return React.createElement(\n component,\n Object.assign(lazyProps, rest, {\n children,\n render\n })\n )\n }\n if (render) {\n return render(\n children === undefined\n ? Object.assign(lazyProps, rest)\n : // inject children back in\n Object.assign(lazyProps, rest, { children })\n )\n }\n if (typeof children !== 'function') {\n throw new Error(\n `Must specify either a render prop, a render function as children, or a component prop to ${name}`\n )\n }\n return children(Object.assign(lazyProps, rest))\n}\n","// @flow\nimport React from 'react'\n\nexport default function useWhenValueChanges(\n value: any,\n callback: () => void,\n isEqual: (any, any) => boolean = (a, b) => a === b\n) {\n const previous = React.useRef(value)\n React.useEffect(() => {\n if (!isEqual(value, previous.current)) {\n callback()\n previous.current = value\n }\n })\n}\n","// @flow\nconst shallowEqual = (a: any, b: any): boolean => {\n if (a === b) {\n return true\n }\n if (typeof a !== 'object' || !a || typeof b !== 'object' || !b) {\n return false\n }\n var keysA = Object.keys(a)\n var keysB = Object.keys(b)\n if (keysA.length !== keysB.length) {\n return false\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b)\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx]\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false\n }\n }\n return true\n}\n\nexport default shallowEqual\n","// @flow\nconst isSyntheticEvent = (candidate: any): boolean =>\n !!(candidate && typeof candidate.stopPropagation === 'function')\n\nexport default isSyntheticEvent\n","// @flow\nimport * as React from 'react'\nimport type { FormApi } from 'final-form'\n\nexport default React.createContext<?FormApi<any>>()\n","// @flow\nimport React from 'react'\n\nexport default function useLatest<T>(value: T): { +current: T } {\n const ref = React.useRef(value)\n\n React.useEffect(() => {\n ref.current = value\n })\n\n return ref\n}\n","import type { FormState, FieldState } from 'final-form'\n\nconst addLazyState = (dest: Object, state: Object, keys: string[]): void => {\n keys.forEach(key => {\n Object.defineProperty(dest, key, {\n get: () => state[key],\n enumerable: true\n })\n })\n}\n\nexport const addLazyFormState = (dest: Object, state: FormState): void =>\n addLazyState(dest, state, [\n 'active',\n 'dirty',\n 'dirtyFields',\n 'dirtySinceLastSubmit',\n 'error',\n 'errors',\n 'hasSubmitErrors',\n 'hasValidationErrors',\n 'initialValues',\n 'invalid',\n 'modified',\n 'pristine',\n 'submitError',\n 'submitErrors',\n 'submitFailed',\n 'submitSucceeded',\n 'submitting',\n 'touched',\n 'valid',\n 'validating',\n 'values',\n 'visited'\n ])\n\nexport const addLazyFieldMetaState = (dest: Object, state: FieldState): void =>\n addLazyState(dest, state, [\n 'active',\n 'data',\n 'dirty',\n 'dirtySinceLastSubmit',\n 'error',\n 'initial',\n 'invalid',\n 'length',\n 'modified',\n 'pristine',\n 'submitError',\n 'submitFailed',\n 'submitSucceeded',\n 'submitting',\n 'touched',\n 'valid',\n 'validating',\n 'visited'\n ])\n","// @flow\nimport * as React from 'react'\nimport {\n createForm,\n formSubscriptionItems,\n version as ffVersion\n} from 'final-form'\nimport type {\n FormApi,\n Config,\n FormSubscription,\n FormState,\n FormValuesShape,\n Unsubscribe\n} from 'final-form'\nimport type { FormProps as Props } from './types'\nimport renderComponent from './renderComponent'\nimport useWhenValueChanges from './useWhenValueChanges'\nimport useConstant from './useConstant'\nimport shallowEqual from './shallowEqual'\nimport isSyntheticEvent from './isSyntheticEvent'\nimport type { FormRenderProps } from './types.js.flow'\nimport ReactFinalFormContext from './context'\nimport useLatest from './useLatest'\nimport { version } from '../package.json'\nimport { addLazyFormState } from './getters'\n\nexport { version }\n\nconst versions = {\n 'final-form': ffVersion,\n 'react-final-form': version\n}\n\nexport const all: FormSubscription = formSubscriptionItems.reduce(\n (result, key) => {\n result[key] = true\n return result\n },\n {}\n)\n\nfunction ReactFinalForm<FormValues: FormValuesShape>({\n debug,\n decorators,\n destroyOnUnregister,\n form: alternateFormApi,\n initialValues,\n initialValuesEqual,\n keepDirtyOnReinitialize,\n mutators,\n onSubmit,\n subscription = all,\n validate,\n validateOnBlur,\n ...rest\n}: Props<FormValues>) {\n const config: Config<FormValues> = {\n debug,\n destroyOnUnregister,\n initialValues,\n keepDirtyOnReinitialize,\n mutators,\n onSubmit,\n validate,\n validateOnBlur\n }\n\n const form: FormApi<FormValues> = useConstant(() => {\n const f = alternateFormApi || createForm<FormValues>(config)\n // pause validation until children register all fields on first render (unpaused in useEffect() below)\n f.pauseValidation()\n return f\n })\n\n // synchronously register and unregister to query form state for our subscription on first render\n const [state, setState] = React.useState<FormState<FormValues>>(\n (): FormState<FormValues> => {\n let initialState: FormState<FormValues> = {}\n form.subscribe(state => {\n initialState = state\n }, subscription)()\n return initialState\n }\n )\n\n // save a copy of state that can break through the closure\n // on the shallowEqual() line below.\n const stateRef = useLatest<FormState<FormValues>>(state)\n\n React.useEffect(() => {\n // We have rendered, so all fields are now registered, so we can unpause validation\n form.isValidationPaused() && form.resumeValidation()\n const unsubscriptions: Unsubscribe[] = [\n form.subscribe(s => {\n if (!shallowEqual(s, stateRef.current)) {\n setState(s)\n }\n }, subscription),\n ...(decorators\n ? decorators.map(decorator =>\n // this noop ternary is to appease the flow gods\n // istanbul ignore next\n decorator(form)\n )\n : [])\n ]\n\n return () => {\n form.pauseValidation() // pause validation so we don't revalidate on every field deregistration\n unsubscriptions.reverse().forEach(unsubscribe => unsubscribe())\n // don't need to resume validation here; either unmounting, or will re-run this hook with new deps\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [decorators])\n\n // warn about decorator changes\n // istanbul ignore next\n if (process.env.NODE_ENV !== 'production') {\n // You're never supposed to use hooks inside a conditional, but in this\n // case we can be certain that you're not going to be changing your\n // NODE_ENV between renders, so this is safe.\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useWhenValueChanges(\n decorators,\n () => {\n console.error(\n 'Form decorators should not change from one render to the next as new values will be ignored'\n )\n },\n shallowEqual\n )\n }\n\n // allow updatable config\n useWhenValueChanges(debug, () => {\n form.setConfig('debug', debug)\n })\n useWhenValueChanges(destroyOnUnregister, () => {\n form.destroyOnUnregister = !!destroyOnUnregister\n })\n useWhenValueChanges(\n initialValues,\n () => {\n form.setConfig('initialValues', initialValues)\n },\n initialValuesEqual || shallowEqual\n )\n useWhenValueChanges(keepDirtyOnReinitialize, () => {\n form.setConfig('keepDirtyOnReinitialize', keepDirtyOnReinitialize)\n })\n useWhenValueChanges(mutators, () => {\n form.setConfig('mutators', mutators)\n })\n useWhenValueChanges(onSubmit, () => {\n form.setConfig('onSubmit', onSubmit)\n })\n useWhenValueChanges(validate, () => {\n form.setConfig('validate', validate)\n })\n useWhenValueChanges(validateOnBlur, () => {\n form.setConfig('validateOnBlur', validateOnBlur)\n })\n\n const handleSubmit = (event: ?SyntheticEvent<HTMLFormElement>) => {\n if (event) {\n // sometimes not true, e.g. React Native\n if (typeof event.preventDefault === 'function') {\n event.preventDefault()\n }\n if (typeof event.stopPropagation === 'function') {\n // prevent any outer forms from receiving the event too\n event.stopPropagation()\n }\n }\n return form.submit()\n }\n\n const renderProps: FormRenderProps<FormValues> = {\n form: {\n ...form,\n reset: eventOrValues => {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n form.reset()\n } else {\n form.reset(eventOrValues)\n }\n }\n },\n handleSubmit\n }\n addLazyFormState(renderProps, state)\n return React.createElement(\n ReactFinalFormContext.Provider,\n { value: form },\n renderComponent(\n {\n ...rest,\n __versions: versions\n },\n renderProps,\n 'ReactFinalForm'\n )\n )\n}\n\nexport default ReactFinalForm\n","// @flow\nimport React from 'react'\n\n/**\n * A simple hook to create a constant value that lives for\n * the lifetime of the component.\n *\n * Plagiarized from https://github.com/Andarist/use-constant\n *\n * Do NOT reuse this code unless you know what you're doing.\n * Use Andarist's hook; it's more fault tolerant to things like\n * falsy values.\n *\n * @param {Function} init - A function to generate the value\n */\nexport default function useConstant<T>(init: () => T): T {\n const ref = React.useRef<?T>()\n if (!ref.current) {\n ref.current = init()\n }\n return ref.current\n}\n","// @flow\nimport * as React from 'react'\nimport type { FormApi, FormValuesShape } from 'final-form'\nimport ReactFinalFormContext from './context'\n\nfunction useForm<FormValues: FormValuesShape>(\n componentName?: string\n): FormApi<FormValues> {\n const form: ?FormApi<FormValues> = React.useContext(ReactFinalFormContext)\n if (!form) {\n throw new Error(\n `${componentName || 'useForm'} must be used inside of a <Form> component`\n )\n }\n return form\n}\n\nexport default useForm\n","// @flow\nimport * as React from 'react'\nimport type { UseFormStateParams } from './types'\nimport type { FormState, FormApi, FormValuesShape } from 'final-form'\nimport { all } from './ReactFinalForm'\nimport useForm from './useForm'\nimport { addLazyFormState } from './getters'\n\nfunction useFormState<FormValues: FormValuesShape>({\n onChange,\n subscription = all\n}: UseFormStateParams<FormValues> = {}): FormState<FormValues> {\n const form: FormApi<FormValues> = useForm<FormValues>('useFormState')\n const firstRender = React.useRef(true)\n const onChangeRef = React.useRef(onChange)\n onChangeRef.current = onChange\n\n // synchronously register and unregister to query field state for our subscription on first render\n const [state, setState] = React.useState<FormState<FormValues>>(\n (): FormState<FormValues> => {\n let initialState: FormState<FormValues> = {}\n form.subscribe(state => {\n initialState = state\n }, subscription)()\n if (onChange) {\n onChange(initialState)\n }\n return initialState\n }\n )\n\n React.useEffect(\n () =>\n form.subscribe(newState => {\n if (firstRender.current) {\n firstRender.current = false\n } else {\n setState(newState)\n if (onChangeRef.current) {\n onChangeRef.current(newState)\n }\n }\n }, subscription),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n )\n const lazyState = {}\n addLazyFormState(lazyState, state)\n return lazyState\n}\n\nexport default useFormState\n","// @flow\nimport renderComponent from './renderComponent'\nimport type { FormSpyPropsWithForm as Props, FormSpyRenderProps } from './types'\nimport type { FormValuesShape } from 'final-form'\nimport isSyntheticEvent from './isSyntheticEvent'\nimport useForm from './useForm'\nimport useFormState from './useFormState'\n\nfunction FormSpy<FormValues: FormValuesShape>({\n onChange,\n subscription,\n ...rest\n}: Props<FormValues>) {\n const reactFinalForm = useForm<FormValues>('FormSpy')\n const state = useFormState({ onChange, subscription })\n if (onChange) {\n return null\n }\n\n const renderProps: FormSpyRenderProps<FormValues> = {\n form: {\n ...reactFinalForm,\n reset: eventOrValues => {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n reactFinalForm.reset()\n } else {\n reactFinalForm.reset(eventOrValues)\n }\n }\n }\n }\n return renderComponent(\n {\n ...rest,\n ...renderProps\n },\n state,\n 'FormSpy'\n )\n}\n\nexport default FormSpy\n","// @flow\nimport * as React from 'react'\nimport { fieldSubscriptionItems } from 'final-form'\nimport type {\n FieldSubscription,\n FieldState,\n FormApi,\n FormValuesShape\n} from 'final-form'\nimport type { UseFieldConfig, FieldInputProps, FieldRenderProps } from './types'\nimport isReactNative from './isReactNative'\nimport getValue from './getValue'\nimport useForm from './useForm'\nimport useLatest from './useLatest'\nimport { addLazyFieldMetaState } from './getters'\n\nconst all: FieldSubscription = fieldSubscriptionItems.reduce((result, key) => {\n result[key] = true\n return result\n}, {})\n\nconst defaultFormat = (value: ?any, name: string) =>\n value === undefined ? '' : value\nconst defaultParse = (value: ?any, name: string) =>\n value === '' ? undefined : value\n\nconst defaultIsEqual = (a: any, b: any): boolean => a === b\n\nfunction useField<FormValues: FormValuesShape>(\n name: string,\n config: UseFieldConfig = {}\n): FieldRenderProps {\n const {\n afterSubmit,\n allowNull,\n component,\n defaultValue,\n format = defaultFormat,\n formatOnBlur,\n initialValue,\n multiple,\n parse = defaultParse,\n subscription = all,\n type,\n validateFields,\n value: _value\n } = config\n const form: FormApi<FormValues> = useForm<FormValues>('useField')\n\n const configRef = useLatest(config)\n\n const register = (callback: FieldState => void) =>\n form.registerField(name, callback, subscription, {\n afterSubmit,\n beforeSubmit: () => {\n const {\n beforeSubmit,\n formatOnBlur,\n format = defaultFormat\n } = configRef.current\n\n if (formatOnBlur) {\n const { value } = ((form.getFieldState(state.name): any): FieldState)\n const formatted = format(value, state.name)\n\n if (formatted !== value) {\n state.change(formatted)\n }\n }\n\n return beforeSubmit && beforeSubmit()\n },\n defaultValue,\n getValidator: () => configRef.current.validate,\n initialValue,\n isEqual: (a, b) => (configRef.current.isEqual || defaultIsEqual)(a, b),\n validateFields\n })\n\n const firstRender = React.useRef(true)\n\n // synchronously register and unregister to query field state for our subscription on first render\n const [state, setState] = React.useState<FieldState>((): FieldState => {\n let initialState: FieldState = {}\n\n // temporarily disable destroyOnUnregister\n const destroyOnUnregister = form.destroyOnUnregister\n form.destroyOnUnregister = false\n\n register(state => {\n initialState = state\n })()\n\n // return destroyOnUnregister to its original value\n form.destroyOnUnregister = destroyOnUnregister\n\n return initialState\n })\n\n React.useEffect(\n () =>\n register(state => {\n if (firstRender.current) {\n firstRender.current = false\n } else {\n setState(state)\n }\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n name,\n defaultValue,\n // If we want to allow inline fat-arrow field-level validation functions, we\n // cannot reregister field every time validate function !==.\n // validate,\n initialValue\n // The validateFields array is often passed as validateFields={[]}, creating\n // a !== new array every time. If it needs to be changed, a rerender/reregister\n // can be forced by changing the key prop\n // validateFields\n ]\n )\n\n const handlers = {\n onBlur: React.useCallback(\n (event: ?SyntheticFocusEvent<*>) => {\n state.blur()\n if (formatOnBlur) {\n /**\n * Here we must fetch the value directly from Final Form because we cannot\n * trust that our `state` closure has the most recent value. This is a problem\n * if-and-only-if the library consumer has called `onChange()` immediately\n * before calling `onBlur()`, but before the field has had a chance to receive\n * the value update from Final Form.\n */\n const fieldState: any = form.getFieldState(state.name)\n state.change(format(fieldState.value, state.name))\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state.name, format, formatOnBlur]\n ),\n onChange: React.useCallback(\n (event: SyntheticInputEvent<*> | any) => {\n // istanbul ignore next\n if (process.env.NODE_ENV !== 'production' && event && event.target) {\n const targetType = event.target.type\n const unknown =\n ~['checkbox', 'radio', 'select-multiple'].indexOf(targetType) &&\n !type\n\n const value: any =\n targetType === 'select-multiple' ? state.value : _value\n\n if (unknown) {\n console.error(\n `You must pass \\`type=\"${\n targetType === 'select-multiple' ? 'select' : targetType\n }\"\\` prop to your Field(${name}) component.\\n` +\n `Without it we don't know how to unpack your \\`value\\` prop - ${\n Array.isArray(value) ? `[${value}]` : `\"${value}\"`\n }.`\n )\n }\n }\n\n const value: any =\n event && event.target\n ? getValue(event, state.value, _value, isReactNative)\n : event\n state.change(parse(value, name))\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_value, name, parse, state.change, state.value, type]\n ),\n onFocus: React.useCallback((event: ?SyntheticFocusEvent<*>) => {\n state.focus()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n }\n\n const meta = {}\n addLazyFieldMetaState(meta, state)\n const input: FieldInputProps = {\n name,\n get value() {\n let value = state.value\n if (formatOnBlur) {\n if (component === 'input') {\n value = defaultFormat(value, name)\n }\n } else {\n value = format(value, name)\n }\n if (value === null && !allowNull) {\n value = ''\n }\n if (type === 'checkbox' || type === 'radio') {\n return _value\n } else if (component === 'select' && multiple) {\n return value || []\n }\n return value\n },\n get checked() {\n if (type === 'checkbox') {\n if (_value === undefined) {\n return !!state.value\n } else {\n return !!(Array.isArray(state.value) && ~state.value.indexOf(_value))\n }\n } else if (type === 'radio') {\n return state.value === _value\n }\n return undefined\n },\n ...handlers\n }\n\n if (multiple) {\n input.multiple = multiple\n }\n if (type !== undefined) {\n input.type = type\n }\n\n const renderProps: FieldRenderProps = { input, meta } // assign to force Flow check\n return renderProps\n}\n\nexport default useField\n","// @flow\nconst isReactNative =\n typeof window !== 'undefined' &&\n window.navigator &&\n window.navigator.product &&\n window.navigator.product === 'ReactNative'\n\nexport default isReactNative\n","// @flow\nconst getSelectedValues = options => {\n const result = []\n if (options) {\n for (let index = 0; index < options.length; index++) {\n const option = options[index]\n if (option.selected) {\n result.push(option.value)\n }\n }\n }\n return result\n}\n\nconst getValue = (\n event: SyntheticInputEvent<*>,\n currentValue: any,\n valueProp: any,\n isReactNative: boolean\n) => {\n if (\n !isReactNative &&\n event.nativeEvent &&\n (event.nativeEvent: Object).text !== undefined\n ) {\n return (event.nativeEvent: Object).text\n }\n if (isReactNative && event.nativeEvent) {\n return (event.nativeEvent: any).text\n }\n const detypedEvent: any = event\n const { target: { type, value, checked } } = detypedEvent\n switch (type) {\n case 'checkbox':\n if (valueProp !== undefined) {\n // we are maintaining an array, not just a boolean\n if (checked) {\n // add value to current array value\n return Array.isArray(currentValue)\n ? currentValue.concat(valueProp)\n : [valueProp]\n } else {\n // remove value from current array value\n if (!Array.isArray(currentValue)) {\n return currentValue\n }\n const index = currentValue.indexOf(valueProp)\n if (index < 0) {\n return currentValue\n } else {\n return currentValue\n .slice(0, index)\n .concat(currentValue.slice(index + 1))\n }\n }\n } else {\n // it's just a boolean\n return !!checked\n }\n case 'select-multiple':\n return getSelectedValues((event.target: any).options)\n default:\n return value\n }\n}\n\nexport default getValue\n","// @flow\nimport * as React from 'react'\nimport type { FieldProps as Props, FieldRenderProps } from './types'\nimport renderComponent from './renderComponent'\nimport useField from './useField'\n\nconst Field = ({\n afterSubmit,\n allowNull,\n beforeSubmit,\n children,\n component,\n defaultValue,\n format,\n formatOnBlur,\n initialValue,\n isEqual,\n multiple,\n name,\n parse,\n subscription,\n type,\n validate,\n validateFields,\n value,\n ...rest\n}: Props) => {\n const field: FieldRenderProps = useField(name, {\n afterSubmit,\n allowNull,\n beforeSubmit,\n children,\n component,\n defaultValue,\n format,\n formatOnBlur,\n initialValue,\n isEqual,\n multiple,\n parse,\n subscription,\n type,\n validate,\n validateFields,\n value\n })\n\n if (typeof children === 'function') {\n return (children: Function)({ ...field, ...rest })\n }\n\n if (typeof component === 'string') {\n // ignore meta, combine input with any other props\n return React.createElement(component, { ...field.input, children, ...rest })\n }\n return renderComponent(\n { children, component, ...rest },\n field,\n `Field(${name})`\n )\n}\n\nexport default Field\n","// @flow\nimport Form from './ReactFinalForm'\nimport FormSpy from './FormSpy'\nexport { default as Field } from './Field'\nexport { default as Form, version } from './ReactFinalForm'\nexport { default as FormSpy } from './FormSpy'\nexport { default as useField } from './useField'\nexport { default as useFormState } from './useFormState'\nexport { default as useForm } from './useForm'\nexport function withTypes() {\n return { Form, FormSpy }\n}\n"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","renderComponent","props","lazyProps","name","render","children","component","rest","React","undefined","Error","useWhenValueChanges","value","callback","isEqual","a","b","previous","useRef","useEffect","current","shallowEqual","keysA","keysB","bHasOwnProperty","bind","idx","isSyntheticEvent","candidate","stopPropagation","useLatest","ref","addLazyState","dest","state","forEach","defineProperty","get","enumerable","addLazyFormState","versions","ffVersion","version","all","formSubscriptionItems","reduce","result","ReactFinalForm","debug","decorators","destroyOnUnregister","alternateFormApi","form","initialValues","initialValuesEqual","keepDirtyOnReinitialize","mutators","onSubmit","subscription","validate","validateOnBlur","config","init","useConstant","f","createForm","pauseValidation","initialState","subscribe","setState","stateRef","isValidationPaused","resumeValidation","unsubscriptions","s","map","decorator","reverse","unsubscribe","setConfig","renderProps","reset","eventOrValues","handleSubmit","event","preventDefault","submit","ReactFinalFormContext","Provider","__versions","useForm","componentName","useFormState","onChange","firstRender","onChangeRef","newState","lazyState","FormSpy","reactFinalForm","defaultFormat","defaultParse","isReactNative","window","navigator","product","fieldSubscriptionItems","useField","register","registerField","afterSubmit","beforeSubmit","configRef","formatOnBlur","format","getFieldState","formatted","change","defaultValue","getValidator","initialValue","validateFields","allowNull","multiple","parse","type","_value","handlers","onBlur","blur","fieldState","currentValue","valueProp","nativeEvent","text","checked","Array","isArray","concat","index","slice","options","option","selected","push","getSelectedValues","getValue","onFocus","focus","meta","addLazyFieldMetaState","input","field","Form"],"mappings":"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"} |