{"version":3,"sources":["../node_modules/react-final-form/dist/react-final-form.es.js","../node_modules/final-form/dist/final-form.es.js"],"names":["__webpack_require__","d","__webpack_exports__","Field","ReactFinalForm","useField","useForm","version","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2__","react__WEBPACK_IMPORTED_MODULE_2___default","n","final_form__WEBPACK_IMPORTED_MODULE_3__","_excluded$3","renderComponent","props","lazyProps","name","render","children","component","rest","Object","assign","undefined","Error","useWhenValueChanges","value","callback","isEqual","a","b","previous","useRef","useEffect","current","shallowEqual","keysA","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","isSyntheticEvent","candidate","stopPropagation","ReactFinalFormContext","useLatest","ref","addLazyState","dest","state","forEach","defineProperty","get","enumerable","addLazyFormState","addLazyFieldMetaState","_excluded$2","versions","final-form","react-final-form","all$1","reduce","result","_ref","debug","_ref$decorators","decorators","destroyOnUnregister","alternateFormApi","form","initialValues","initialValuesEqual","keepDirtyOnReinitialize","mutators","onSubmit","_ref$subscription","subscription","validate","validateOnBlur","config","init","useConstant","f","pauseValidation","_React$useState","initialState","subscribe","setState","stateRef","isValidationPaused","resumeValidation","unsubscriptions","s","concat","map","decorator","reverse","unsubscribe","setConfig","renderProps","reset","eventOrValues","handleSubmit","event","preventDefault","submit","Provider","__versions","componentName","isReactNative","window","navigator","product","getValue","currentValue","valueProp","nativeEvent","text","_detypedEvent$target","target","type","checked","Array","isArray","index","indexOf","slice","options","option","selected","push","getSelectedValues","useConstantCallback","_len","arguments","args","_key","apply","all","defaultFormat","defaultParse","defaultIsEqual","_config","afterSubmit","allowNull","data","defaultValue","_config$format","format","formatOnBlur","initialValue","multiple","_config$parse","parse","_config$subscription","validateFields","_value","configRef","register","silent","registerField","beforeSubmit","_configRef$current","_configRef$current$fo","getFieldState","formatted","change","getValidator","firstRender","meta","input","onBlur","blur","fieldState","onChange","onFocus","focus","_excluded","field","ARRAY_ERROR","createForm","fieldSubscriptionItems","formSubscriptionItems","getIn","charCodeOfDot","charCodeAt","reEscapeChar","rePropName","RegExp","keysCache","keysRegex","toPath","endsWith","split","filter","Boolean","string","replace","match","expression","quote","subString","trim","stringToPath","complexKey","path","i","isNaN","_toPropertyKey","arg","hint","prim","Symbol","toPrimitive","res","call","TypeError","String","Number","_toPrimitive","setIn","destroyArrays","setInRecursor","_extends2","_result2","_result","numKeys","numericKey","_result3","_array","array","splice","FORM_ERROR","publishFieldState","formState","errors","lastSubmittedValues","submitErrors","submitFailed","submitSucceeded","submitting","values","active","modified","modifiedSinceLastSubmit","touched","validating","visited","error","submitError","initial","pristine","valid","dirty","dirtySinceLastSubmit","invalid","subscriptionFilter","src","shallowEqualKeys","different","shallowEqualKeys$1","filterFieldState","previousState","force","filterFormState","memoize","fn","lastArgs","lastResult","some","isPromise","obj","then","tripleEquals","hasAnyError","notifySubscriber","subscriber","lastState","notification","notify","_ref2","entries","entry","notified","subscribers","fieldSubscribers","fields","asyncErrors","resetWhileSubmitting","lastFormState","inBatch","validationPaused","validationBlocked","preventNotificationWhileValidationPaused","nextAsyncValidationKey","asyncValidationPromises","changeValue","mutate","after","renameField","from","to","_extends3","api","lastFieldState","getMutatorApi","mutatableState","returnValue","resetFieldState","runValidation","notifyFieldListeners","notifyFormListeners","mutatorsApi","getValidators","validators","validator","fieldChanged","safeFields","fieldKeys","limitedFieldLevelValidation","changedField","recordLevelErrors","asyncRecordLevelErrors","fieldLevelErrors","promises","setErrors","errorsOrPromise","runRecordLevelValidation","wasAsync","setError","errorOrPromise","promise","runFieldLevelValidation","hasAsyncValidations","asyncValidationPromiseKey","Promise","processErrors","afterAsync","merged","forEachError","recordLevelError","errorFromParent","hasFieldLevelValidation","fieldLevelError","existing","copy","afterPromise","notifyField","fieldSubscriber","markAllFieldsTouched","calculateNextFormState","safeFieldKeys","foundDirty","dirtyFields","dirtyFieldsSinceLastSubmit","nonNullLastSubmittedValues","nextFormState","hasSubmitErrors","hasValidationErrors","convertToExternalFormState","_safeFieldKeys$reduce","notifying","scheduleNotification","resetModifiedAfterSubmit","batch","getRegisteredFields","getState","initialize","savedDirtyValues","preventNotification","fieldConfig","haveValidator","noValueInFormState","validatorRemoved","hasFieldSubscribers","lastOne","restart","asyncValidationPromisesKeys","console","resolvePromise","completeCalled","complete","resolve","memoized"],"mappings":"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","file":"static/js/1.efc26683.chunk.js","sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport * as React from 'react';\nimport React__default from 'react';\nimport { formSubscriptionItems, createForm, version as version$1, fieldSubscriptionItems } from 'final-form';\nvar _excluded$3 = [\"render\", \"children\", \"component\"]; // shared logic between components that use either render prop,\n// children render function, or component prop\n\nfunction renderComponent(props, lazyProps, name) {\n var render = props.render,\n children = props.children,\n component = props.component,\n rest = _objectWithoutPropertiesLoose(props, _excluded$3);\n\n if (component) {\n return (\n /*#__PURE__*/\n React.createElement(component, Object.assign(lazyProps, rest, {\n children: children,\n render: render\n }))\n );\n }\n\n if (render) {\n return render(children === undefined ? Object.assign(lazyProps, rest) : // inject children back in\n Object.assign(lazyProps, rest, {\n children: children\n }));\n }\n\n if (typeof children !== \"function\") {\n throw new Error(\"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\nfunction useWhenValueChanges(value, callback, isEqual) {\n if (isEqual === void 0) {\n isEqual = function isEqual(a, b) {\n return a === b;\n };\n }\n\n var previous = React__default.useRef(value);\n React__default.useEffect(function () {\n if (!isEqual(value, previous.current)) {\n callback();\n previous.current = value;\n }\n });\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 */\n\n\nfunction useConstant(init) {\n var ref = React__default.useRef();\n\n if (!ref.current) {\n ref.current = init();\n }\n\n return ref.current;\n}\n\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nvar isSyntheticEvent = function isSyntheticEvent(candidate) {\n return !!(candidate && typeof candidate.stopPropagation === \"function\");\n};\n\nvar ReactFinalFormContext =\n/*#__PURE__*/\nReact.createContext();\n\nfunction useLatest(value) {\n var ref = React__default.useRef(value);\n React__default.useEffect(function () {\n ref.current = value;\n });\n return ref;\n}\n\nvar version = \"6.5.8\";\n\nvar addLazyState = function addLazyState(dest, state, keys) {\n keys.forEach(function (key) {\n Object.defineProperty(dest, key, {\n get: function get() {\n return state[key];\n },\n enumerable: true\n });\n });\n};\n\nvar addLazyFormState = function addLazyFormState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"dirty\", \"dirtyFields\", \"dirtySinceLastSubmit\", \"dirtyFieldsSinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"]);\n};\n\nvar addLazyFieldMetaState = function addLazyFieldMetaState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"visited\"]);\n};\n\nvar _excluded$2 = [\"debug\", \"decorators\", \"destroyOnUnregister\", \"form\", \"initialValues\", \"initialValuesEqual\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"subscription\", \"validate\", \"validateOnBlur\"];\nvar versions = {\n \"final-form\": version$1,\n \"react-final-form\": version\n};\nvar all$1 = formSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nfunction ReactFinalForm(_ref) {\n var debug = _ref.debug,\n _ref$decorators = _ref.decorators,\n decorators = _ref$decorators === void 0 ? [] : _ref$decorators,\n destroyOnUnregister = _ref.destroyOnUnregister,\n alternateFormApi = _ref.form,\n initialValues = _ref.initialValues,\n initialValuesEqual = _ref.initialValuesEqual,\n keepDirtyOnReinitialize = _ref.keepDirtyOnReinitialize,\n mutators = _ref.mutators,\n onSubmit = _ref.onSubmit,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription,\n validate = _ref.validate,\n validateOnBlur = _ref.validateOnBlur,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var config = {\n debug: debug,\n destroyOnUnregister: destroyOnUnregister,\n initialValues: initialValues,\n keepDirtyOnReinitialize: keepDirtyOnReinitialize,\n mutators: mutators,\n onSubmit: onSubmit,\n validate: validate,\n validateOnBlur: validateOnBlur\n };\n var form = useConstant(function () {\n var f = alternateFormApi || createForm(config); // pause validation until children register all fields on first render (unpaused in useEffect() below)\n\n f.pauseValidation();\n return f;\n }); // synchronously register and unregister to query form state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1]; // save a copy of state that can break through the closure\n // on the shallowEqual() line below.\n\n\n var stateRef = useLatest(state);\n React.useEffect(function () {\n // We have rendered, so all fields are now registered, so we can unpause validation\n form.isValidationPaused() && form.resumeValidation();\n var unsubscriptions = [form.subscribe(function (s) {\n if (!shallowEqual(s, stateRef.current)) {\n setState(s);\n }\n }, subscription)].concat(decorators ? decorators.map(function (decorator) {\n return (// this noop ternary is to appease the flow gods\n // istanbul ignore next\n decorator(form)\n );\n }) : []);\n return function () {\n form.pauseValidation(); // pause validation so we don't revalidate on every field deregistration\n\n unsubscriptions.reverse().forEach(function (unsubscribe) {\n return unsubscribe();\n }); // don't need to resume validation here; either unmounting, or will re-run this hook with new deps\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, decorators); // warn about decorator changes\n // istanbul ignore next\n\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 // eslint-disable-next-line react-hooks/rules-of-hooks\n useWhenValueChanges(decorators, function () {\n console.error(\"Form decorators should not change from one render to the next as new values will be ignored\");\n }, shallowEqual);\n } // allow updatable config\n\n\n useWhenValueChanges(debug, function () {\n form.setConfig(\"debug\", debug);\n });\n useWhenValueChanges(destroyOnUnregister, function () {\n form.destroyOnUnregister = !!destroyOnUnregister;\n });\n useWhenValueChanges(keepDirtyOnReinitialize, function () {\n form.setConfig(\"keepDirtyOnReinitialize\", keepDirtyOnReinitialize);\n });\n useWhenValueChanges(initialValues, function () {\n form.setConfig(\"initialValues\", initialValues);\n }, initialValuesEqual || shallowEqual);\n useWhenValueChanges(mutators, function () {\n form.setConfig(\"mutators\", mutators);\n });\n useWhenValueChanges(onSubmit, function () {\n form.setConfig(\"onSubmit\", onSubmit);\n });\n useWhenValueChanges(validate, function () {\n form.setConfig(\"validate\", validate);\n });\n useWhenValueChanges(validateOnBlur, function () {\n form.setConfig(\"validateOnBlur\", validateOnBlur);\n });\n\n var handleSubmit = function handleSubmit(event) {\n if (event) {\n // sometimes not true, e.g. React Native\n if (typeof event.preventDefault === \"function\") {\n event.preventDefault();\n }\n\n if (typeof event.stopPropagation === \"function\") {\n // prevent any outer forms from receiving the event too\n event.stopPropagation();\n }\n }\n\n return form.submit();\n };\n\n var renderProps = {\n form: _extends({}, form, {\n reset: function 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: handleSubmit\n };\n addLazyFormState(renderProps, state);\n return (\n /*#__PURE__*/\n React.createElement(ReactFinalFormContext.Provider, {\n value: form\n }, renderComponent(_extends({}, rest, {\n __versions: versions\n }), renderProps, \"ReactFinalForm\"))\n );\n}\n\nfunction useForm(componentName) {\n var form = React.useContext(ReactFinalFormContext);\n\n if (!form) {\n throw new Error((componentName || \"useForm\") + \" must be used inside of a
component\");\n }\n\n return form;\n}\n\nfunction useFormState(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onChange = _ref.onChange,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription;\n\n var form = useForm(\"useFormState\");\n var firstRender = React.useRef(true);\n var onChangeRef = React.useRef(onChange);\n onChangeRef.current = onChange; // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n\n if (onChange) {\n onChange(initialState);\n }\n\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return form.subscribe(function (newState) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(newState);\n\n if (onChangeRef.current) {\n onChangeRef.current(newState);\n }\n }\n }, subscription);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n var lazyState = {};\n addLazyFormState(lazyState, state);\n return lazyState;\n}\n\nvar _excluded$1 = [\"onChange\", \"subscription\"];\n\nfunction FormSpy(_ref) {\n var onChange = _ref.onChange,\n subscription = _ref.subscription,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var reactFinalForm = useForm(\"FormSpy\");\n var state = useFormState({\n onChange: onChange,\n subscription: subscription\n });\n\n if (onChange) {\n return null;\n }\n\n var renderProps = {\n form: _extends({}, reactFinalForm, {\n reset: function 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(_extends({}, rest, renderProps), state, \"FormSpy\");\n}\n\nvar isReactNative = typeof window !== \"undefined\" && window.navigator && window.navigator.product && window.navigator.product === \"ReactNative\";\n\nvar getSelectedValues = function getSelectedValues(options) {\n var result = [];\n\n if (options) {\n for (var index = 0; index < options.length; index++) {\n var option = options[index];\n\n if (option.selected) {\n result.push(option.value);\n }\n }\n }\n\n return result;\n};\n\nvar getValue = function getValue(event, currentValue, valueProp, isReactNative) {\n if (!isReactNative && event.nativeEvent && event.nativeEvent.text !== undefined) {\n return event.nativeEvent.text;\n }\n\n if (isReactNative && event.nativeEvent) {\n return event.nativeEvent.text;\n }\n\n var detypedEvent = event;\n var _detypedEvent$target = detypedEvent.target,\n type = _detypedEvent$target.type,\n value = _detypedEvent$target.value,\n checked = _detypedEvent$target.checked;\n\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) ? currentValue.concat(valueProp) : [valueProp];\n } else {\n // remove value from current array value\n if (!Array.isArray(currentValue)) {\n return currentValue;\n }\n\n var index = currentValue.indexOf(valueProp);\n\n if (index < 0) {\n return currentValue;\n } else {\n return currentValue.slice(0, index).concat(currentValue.slice(index + 1));\n }\n }\n } else {\n // it's just a boolean\n return !!checked;\n }\n\n case \"select-multiple\":\n return getSelectedValues(event.target.options);\n\n default:\n return value;\n }\n};\n/**\n * Creates a callback, even with closures, that will be\n * instance === for the lifetime of the component, always\n * calling the most recent version of the function and its\n * closures.\n */\n\n\nfunction useConstantCallback(callback) {\n var ref = React.useRef(callback);\n React.useEffect(function () {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(null, args);\n }, []);\n}\n\nvar all = fieldSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nvar defaultFormat = function defaultFormat(value, name) {\n return value === undefined ? \"\" : value;\n};\n\nvar defaultParse = function defaultParse(value, name) {\n return value === \"\" ? undefined : value;\n};\n\nvar defaultIsEqual = function defaultIsEqual(a, b) {\n return a === b;\n};\n\nfunction useField(name, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _config = config,\n afterSubmit = _config.afterSubmit,\n allowNull = _config.allowNull,\n component = _config.component,\n data = _config.data,\n defaultValue = _config.defaultValue,\n _config$format = _config.format,\n format = _config$format === void 0 ? defaultFormat : _config$format,\n formatOnBlur = _config.formatOnBlur,\n initialValue = _config.initialValue,\n multiple = _config.multiple,\n _config$parse = _config.parse,\n parse = _config$parse === void 0 ? defaultParse : _config$parse,\n _config$subscription = _config.subscription,\n subscription = _config$subscription === void 0 ? all : _config$subscription,\n type = _config.type,\n validateFields = _config.validateFields,\n _value = _config.value;\n var form = useForm(\"useField\");\n var configRef = useLatest(config);\n\n var register = function register(callback, silent) {\n return (// avoid using `state` const in any closures created inside `register`\n // because they would refer `state` from current execution context\n // whereas actual `state` would defined in the subsequent `useField` hook\n // execution\n // (that would be caused by `setState` call performed in `register` callback)\n form.registerField(name, callback, subscription, {\n afterSubmit: afterSubmit,\n beforeSubmit: function beforeSubmit() {\n var _configRef$current = configRef.current,\n beforeSubmit = _configRef$current.beforeSubmit,\n formatOnBlur = _configRef$current.formatOnBlur,\n _configRef$current$fo = _configRef$current.format,\n format = _configRef$current$fo === void 0 ? defaultFormat : _configRef$current$fo;\n\n if (formatOnBlur) {\n var _ref = form.getFieldState(name),\n value = _ref.value;\n\n var formatted = format(value, name);\n\n if (formatted !== value) {\n form.change(name, formatted);\n }\n }\n\n return beforeSubmit && beforeSubmit();\n },\n data: data,\n defaultValue: defaultValue,\n getValidator: function getValidator() {\n return configRef.current.validate;\n },\n initialValue: initialValue,\n isEqual: function isEqual(a, b) {\n return (configRef.current.isEqual || defaultIsEqual)(a, b);\n },\n silent: silent,\n validateFields: validateFields\n })\n );\n };\n\n var firstRender = React.useRef(true); // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {}; // temporarily disable destroyOnUnregister\n // temporarily disable destroyOnUnregister\n\n var destroyOnUnregister = form.destroyOnUnregister;\n form.destroyOnUnregister = false;\n register(function (state) {\n initialState = state;\n }, true)(); // return destroyOnUnregister to its original value\n // return destroyOnUnregister to its original value\n\n form.destroyOnUnregister = destroyOnUnregister;\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return register(function (state) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(state);\n }\n }, false);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [name, data, defaultValue, // 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 // 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 var meta = {};\n addLazyFieldMetaState(meta, state);\n var input = {\n name: name,\n\n get value() {\n var value = state.value;\n\n if (formatOnBlur) {\n if (component === \"input\") {\n value = defaultFormat(value);\n }\n } else {\n value = format(value, name);\n }\n\n if (value === null && !allowNull) {\n value = \"\";\n }\n\n if (type === \"checkbox\" || type === \"radio\") {\n return _value;\n } else if (component === \"select\" && multiple) {\n return value || [];\n }\n\n return value;\n },\n\n get checked() {\n var value = state.value;\n\n if (type === \"checkbox\") {\n value = format(value, name);\n\n if (_value === undefined) {\n return !!value;\n } else {\n return !!(Array.isArray(value) && ~value.indexOf(_value));\n }\n } else if (type === \"radio\") {\n return format(value, name) === _value;\n }\n\n return undefined;\n },\n\n onBlur: useConstantCallback(function (event) {\n state.blur();\n\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 var fieldState = form.getFieldState(state.name);\n state.change(format(fieldState.value, state.name));\n }\n }),\n onChange: useConstantCallback(function (event) {\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\" && event && event.target) {\n var targetType = event.target.type;\n var unknown = ~[\"checkbox\", \"radio\", \"select-multiple\"].indexOf(targetType) && !type && component !== \"select\";\n\n var _value2 = targetType === \"select-multiple\" ? state.value : _value;\n\n if (unknown) {\n console.error(\"You must pass `type=\\\"\" + (targetType === \"select-multiple\" ? \"select\" : targetType) + \"\\\"` prop to your Field(\" + name + \") component.\\n\" + (\"Without it we don't know how to unpack your `value` prop - \" + (Array.isArray(_value2) ? \"[\" + _value2 + \"]\" : \"\\\"\" + _value2 + \"\\\"\") + \".\"));\n }\n }\n\n var value = event && event.target ? getValue(event, state.value, _value, isReactNative) : event;\n state.change(parse(value, name));\n }),\n onFocus: useConstantCallback(function (event) {\n return state.focus();\n })\n };\n\n if (multiple) {\n input.multiple = multiple;\n }\n\n if (type !== undefined) {\n input.type = type;\n }\n\n var renderProps = {\n input: input,\n meta: meta\n }; // assign to force Flow check\n\n return renderProps;\n}\n\nvar _excluded = [\"afterSubmit\", \"allowNull\", \"beforeSubmit\", \"children\", \"component\", \"data\", \"defaultValue\", \"format\", \"formatOnBlur\", \"initialValue\", \"isEqual\", \"multiple\", \"name\", \"parse\", \"subscription\", \"type\", \"validate\", \"validateFields\", \"value\"];\nvar Field =\n/*#__PURE__*/\nReact.forwardRef(function Field(_ref, ref) {\n var afterSubmit = _ref.afterSubmit,\n allowNull = _ref.allowNull,\n beforeSubmit = _ref.beforeSubmit,\n children = _ref.children,\n component = _ref.component,\n data = _ref.data,\n defaultValue = _ref.defaultValue,\n format = _ref.format,\n formatOnBlur = _ref.formatOnBlur,\n initialValue = _ref.initialValue,\n isEqual = _ref.isEqual,\n multiple = _ref.multiple,\n name = _ref.name,\n parse = _ref.parse,\n subscription = _ref.subscription,\n type = _ref.type,\n validate = _ref.validate,\n validateFields = _ref.validateFields,\n value = _ref.value,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var field = useField(name, {\n afterSubmit: afterSubmit,\n allowNull: allowNull,\n beforeSubmit: beforeSubmit,\n children: children,\n component: component,\n data: data,\n defaultValue: defaultValue,\n format: format,\n formatOnBlur: formatOnBlur,\n initialValue: initialValue,\n isEqual: isEqual,\n multiple: multiple,\n parse: parse,\n subscription: subscription,\n type: type,\n validate: validate,\n validateFields: validateFields,\n value: value\n });\n\n if (typeof children === \"function\") {\n return children(_extends({}, field, rest));\n }\n\n if (typeof component === \"string\") {\n // ignore meta, combine input with any other props\n return (\n /*#__PURE__*/\n React.createElement(component, _extends({}, field.input, {\n children: children,\n ref: ref\n }, rest))\n );\n }\n\n if (!name) {\n throw new Error(\"prop name cannot be undefined in component\");\n }\n\n return renderComponent(_extends({\n children: children,\n component: component,\n ref: ref\n }, rest), field, \"Field(\" + name + \")\");\n});\n\nfunction withTypes() {\n return {\n Form: ReactFinalForm,\n FormSpy: FormSpy\n };\n}\n\nexport { Field, ReactFinalForm as Form, FormSpy, useField, useForm, useFormState, version, withTypes };","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; // \n\nvar charCodeOfDot = \".\".charCodeAt(0);\nvar reEscapeChar = /\\\\(\\\\)?/g;\nvar rePropName = RegExp( // Match anything that isn't a dot or bracket.\n\"[^.[\\\\]]+\" + \"|\" + // Or match property names within brackets.\n\"\\\\[(?:\" + // Match a non-string expression.\n\"([^\\\"'][^[]*)\" + \"|\" + // Or match strings (supports escaping characters).\n\"([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2\" + \")\\\\]\" + \"|\" + // Or match \"\" as the space between consecutive dots or empty brackets.\n\"(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))\", \"g\");\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n\nvar stringToPath = function stringToPath(string) {\n var result = [];\n\n if (string.charCodeAt(0) === charCodeOfDot) {\n result.push(\"\");\n }\n\n string.replace(rePropName, function (match, expression, quote, subString) {\n var key = match;\n\n if (quote) {\n key = subString.replace(reEscapeChar, \"$1\");\n } else if (expression) {\n key = expression.trim();\n }\n\n result.push(key);\n });\n return result;\n};\n\nvar keysCache = {};\nvar keysRegex = /[.[\\]]+/;\n\nvar toPath = function toPath(key) {\n if (key === null || key === undefined || !key.length) {\n return [];\n }\n\n if (typeof key !== \"string\") {\n throw new Error(\"toPath() expects a string\");\n }\n\n if (keysCache[key] == null) {\n /**\n * The following patch fixes issue 456, introduced since v4.20.3:\n *\n * Before v4.20.3, i.e. in v4.20.2, a `key` like 'choices[]' would map to ['choices']\n * (e.g. an array of choices used where 'choices[]' is name attribute of an input of type checkbox).\n *\n * Since v4.20.3, a `key` like 'choices[]' would map to ['choices', ''] which is wrong and breaks\n * this kind of inputs e.g. in React.\n *\n * v4.20.3 introduced an unwanted breaking change, this patch fixes it, see the issue at the link below.\n *\n * @see https://github.com/final-form/final-form/issues/456\n */\n if (key.endsWith(\"[]\")) {\n // v4.20.2 (a `key` like 'choices[]' should map to ['choices'], which is fine).\n keysCache[key] = key.split(keysRegex).filter(Boolean);\n } else {\n // v4.20.3 (a `key` like 'choices[]' maps to ['choices', ''], which breaks applications relying on inputs like ``).\n keysCache[key] = stringToPath(key);\n }\n }\n\n return keysCache[key];\n}; // \n\n\nvar getIn = function getIn(state, complexKey) {\n // Intentionally using iteration rather than recursion\n var path = toPath(complexKey);\n var current = state;\n\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n\n if (current === undefined || current === null || typeof current !== \"object\" || Array.isArray(current) && isNaN(key)) {\n return undefined;\n }\n\n current = current[key];\n }\n\n return current;\n};\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return typeof key === \"symbol\" ? key : String(key);\n}\n\nfunction _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n}\n\nvar setInRecursor = function setInRecursor(current, index, path, value, destroyArrays) {\n if (index >= path.length) {\n // end of recursion\n return value;\n }\n\n var key = path[index]; // determine type of key\n\n if (isNaN(key)) {\n var _extends2; // object set\n\n\n if (current === undefined || current === null) {\n var _ref; // recurse\n\n\n var _result2 = setInRecursor(undefined, index + 1, path, value, destroyArrays); // delete or create an object\n\n\n return _result2 === undefined ? undefined : (_ref = {}, _ref[key] = _result2, _ref);\n }\n\n if (Array.isArray(current)) {\n throw new Error(\"Cannot set a non-numeric property on an array\");\n } // current exists, so make a copy of all its values, and add/update the new one\n\n\n var _result = setInRecursor(current[key], index + 1, path, value, destroyArrays);\n\n if (_result === undefined) {\n var numKeys = Object.keys(current).length;\n\n if (current[key] === undefined && numKeys === 0) {\n // object was already empty\n return undefined;\n }\n\n if (current[key] !== undefined && numKeys <= 1) {\n // only key we had was the one we are deleting\n if (!isNaN(path[index - 1]) && !destroyArrays) {\n // we are in an array, so return an empty object\n return {};\n } else {\n return undefined;\n }\n }\n\n current[key];\n\n var _final = _objectWithoutPropertiesLoose(current, [key].map(_toPropertyKey));\n\n return _final;\n } // set result in key\n\n\n return _extends({}, current, (_extends2 = {}, _extends2[key] = _result, _extends2));\n } // array set\n\n\n var numericKey = Number(key);\n\n if (current === undefined || current === null) {\n // recurse\n var _result3 = setInRecursor(undefined, index + 1, path, value, destroyArrays); // if nothing returned, delete it\n\n\n if (_result3 === undefined) {\n return undefined;\n } // create an array\n\n\n var _array = [];\n _array[numericKey] = _result3;\n return _array;\n }\n\n if (!Array.isArray(current)) {\n throw new Error(\"Cannot set a numeric property on an object\");\n } // recurse\n\n\n var existingValue = current[numericKey];\n var result = setInRecursor(existingValue, index + 1, path, value, destroyArrays); // current exists, so make a copy of all its values, and add/update the new one\n\n var array = [].concat(current);\n\n if (destroyArrays && result === undefined) {\n array.splice(numericKey, 1);\n\n if (array.length === 0) {\n return undefined;\n }\n } else {\n array[numericKey] = result;\n }\n\n return array;\n};\n\nvar setIn = function setIn(state, key, value, destroyArrays) {\n if (destroyArrays === void 0) {\n destroyArrays = false;\n }\n\n if (state === undefined || state === null) {\n throw new Error(\"Cannot call setIn() with \" + String(state) + \" state\");\n }\n\n if (key === undefined || key === null) {\n throw new Error(\"Cannot call setIn() with \" + String(key) + \" key\");\n } // Recursive function needs to accept and return State, but public API should\n // only deal with Objects\n\n\n return setInRecursor(state, 0, toPath(key), value, destroyArrays);\n};\n\nvar FORM_ERROR = \"FINAL_FORM/form-error\";\nvar ARRAY_ERROR = \"FINAL_FORM/array-error\"; // \n\n/**\n * Converts internal field state to published field state\n */\n\nfunction publishFieldState(formState, field) {\n var errors = formState.errors,\n initialValues = formState.initialValues,\n lastSubmittedValues = formState.lastSubmittedValues,\n submitErrors = formState.submitErrors,\n submitFailed = formState.submitFailed,\n submitSucceeded = formState.submitSucceeded,\n submitting = formState.submitting,\n values = formState.values;\n var active = field.active,\n blur = field.blur,\n change = field.change,\n data = field.data,\n focus = field.focus,\n modified = field.modified,\n modifiedSinceLastSubmit = field.modifiedSinceLastSubmit,\n name = field.name,\n touched = field.touched,\n validating = field.validating,\n visited = field.visited;\n var value = getIn(values, name);\n var error = getIn(errors, name);\n\n if (error && error[ARRAY_ERROR]) {\n error = error[ARRAY_ERROR];\n }\n\n var submitError = submitErrors && getIn(submitErrors, name);\n var initial = initialValues && getIn(initialValues, name);\n var pristine = field.isEqual(initial, value);\n var dirtySinceLastSubmit = !!(lastSubmittedValues && !field.isEqual(getIn(lastSubmittedValues, name), value));\n var valid = !error && !submitError;\n return {\n active: active,\n blur: blur,\n change: change,\n data: data,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n error: error,\n focus: focus,\n initial: initial,\n invalid: !valid,\n length: Array.isArray(value) ? value.length : undefined,\n modified: modified,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n name: name,\n pristine: pristine,\n submitError: submitError,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitting: submitting,\n touched: touched,\n valid: valid,\n value: value,\n visited: visited,\n validating: validating\n };\n} // \n\n\nvar fieldSubscriptionItems = [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"value\", \"visited\", \"validating\"]; // \n\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}; // \n\n\nfunction subscriptionFilter(dest, src, previous, subscription, keys, shallowEqualKeys) {\n var different = false;\n keys.forEach(function (key) {\n if (subscription[key]) {\n dest[key] = src[key];\n\n if (!previous || (~shallowEqualKeys.indexOf(key) ? !shallowEqual(src[key], previous[key]) : src[key] !== previous[key])) {\n different = true;\n }\n }\n });\n return different;\n} // \n\n\nvar shallowEqualKeys$1 = [\"data\"];\n/**\n * Filters items in a FieldState based on a FieldSubscription\n */\n\nvar filterFieldState = function filterFieldState(state, previousState, subscription, force) {\n var result = {\n blur: state.blur,\n change: state.change,\n focus: state.focus,\n name: state.name\n };\n var different = subscriptionFilter(result, state, previousState, subscription, fieldSubscriptionItems, shallowEqualKeys$1) || !previousState;\n return different || force ? result : undefined;\n}; // \n\n\nvar formSubscriptionItems = [\"active\", \"dirty\", \"dirtyFields\", \"dirtyFieldsSinceLastSubmit\", \"dirtySinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitting\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"]; // \n\nvar shallowEqualKeys = [\"touched\", \"visited\"];\n/**\n * Filters items in a FormState based on a FormSubscription\n */\n\nfunction filterFormState(state, previousState, subscription, force) {\n var result = {};\n var different = subscriptionFilter(result, state, previousState, subscription, formSubscriptionItems, shallowEqualKeys) || !previousState;\n return different || force ? result : undefined;\n} // \n\n\nvar memoize = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (!lastArgs || args.length !== lastArgs.length || args.some(function (arg, index) {\n return !shallowEqual(lastArgs[index], arg);\n })) {\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n }\n\n return lastResult;\n };\n};\n\nvar isPromise = function isPromise(obj) {\n return !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\n};\n\nvar version = \"4.20.8\";\nvar configOptions = [\"debug\", \"initialValues\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"validate\", \"validateOnBlur\"];\n\nvar tripleEquals = function tripleEquals(a, b) {\n return a === b;\n};\n\nvar hasAnyError = function hasAnyError(errors) {\n return Object.keys(errors).some(function (key) {\n var value = errors[key];\n\n if (value && typeof value === \"object\" && !(value instanceof Error)) {\n return hasAnyError(value);\n }\n\n return typeof value !== \"undefined\";\n });\n};\n\nfunction convertToExternalFormState(_ref) {\n var active = _ref.active,\n dirtySinceLastSubmit = _ref.dirtySinceLastSubmit,\n modifiedSinceLastSubmit = _ref.modifiedSinceLastSubmit,\n error = _ref.error,\n errors = _ref.errors,\n initialValues = _ref.initialValues,\n pristine = _ref.pristine,\n submitting = _ref.submitting,\n submitFailed = _ref.submitFailed,\n submitSucceeded = _ref.submitSucceeded,\n submitError = _ref.submitError,\n submitErrors = _ref.submitErrors,\n valid = _ref.valid,\n validating = _ref.validating,\n values = _ref.values;\n return {\n active: active,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n error: error,\n errors: errors,\n hasSubmitErrors: !!(submitError || submitErrors && hasAnyError(submitErrors)),\n hasValidationErrors: !!(error || hasAnyError(errors)),\n invalid: !valid,\n initialValues: initialValues,\n pristine: pristine,\n submitting: submitting,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitError: submitError,\n submitErrors: submitErrors,\n valid: valid,\n validating: validating > 0,\n values: values\n };\n}\n\nfunction notifySubscriber(subscriber, subscription, state, lastState, filter, force) {\n var notification = filter(state, lastState, subscription, force);\n\n if (notification) {\n subscriber(notification);\n return true;\n }\n\n return false;\n}\n\nfunction notify(_ref2, state, lastState, filter, force) {\n var entries = _ref2.entries;\n Object.keys(entries).forEach(function (key) {\n var entry = entries[Number(key)]; // istanbul ignore next\n\n if (entry) {\n var subscription = entry.subscription,\n subscriber = entry.subscriber,\n notified = entry.notified;\n\n if (notifySubscriber(subscriber, subscription, state, lastState, filter, force || !notified)) {\n entry.notified = true;\n }\n }\n });\n}\n\nfunction createForm(config) {\n if (!config) {\n throw new Error(\"No config specified\");\n }\n\n var debug = config.debug,\n destroyOnUnregister = config.destroyOnUnregister,\n keepDirtyOnReinitialize = config.keepDirtyOnReinitialize,\n initialValues = config.initialValues,\n mutators = config.mutators,\n onSubmit = config.onSubmit,\n validate = config.validate,\n validateOnBlur = config.validateOnBlur;\n\n if (!onSubmit) {\n throw new Error(\"No onSubmit function specified\");\n }\n\n var state = {\n subscribers: {\n index: 0,\n entries: {}\n },\n fieldSubscribers: {},\n fields: {},\n formState: {\n asyncErrors: {},\n dirtySinceLastSubmit: false,\n modifiedSinceLastSubmit: false,\n errors: {},\n initialValues: initialValues && _extends({}, initialValues),\n invalid: false,\n pristine: true,\n submitting: false,\n submitFailed: false,\n submitSucceeded: false,\n resetWhileSubmitting: false,\n valid: true,\n validating: 0,\n values: initialValues ? _extends({}, initialValues) : {}\n },\n lastFormState: undefined\n };\n var inBatch = 0;\n var validationPaused = false;\n var validationBlocked = false;\n var preventNotificationWhileValidationPaused = false;\n var nextAsyncValidationKey = 0;\n var asyncValidationPromises = {};\n\n var clearAsyncValidationPromise = function clearAsyncValidationPromise(key) {\n return function (result) {\n delete asyncValidationPromises[key];\n return result;\n };\n };\n\n var changeValue = function changeValue(state, name, mutate) {\n var before = getIn(state.formState.values, name);\n var after = mutate(before);\n state.formState.values = setIn(state.formState.values, name, after) || {};\n };\n\n var renameField = function renameField(state, from, to) {\n if (state.fields[from]) {\n var _extends2, _extends3;\n\n state.fields = _extends({}, state.fields, (_extends2 = {}, _extends2[to] = _extends({}, state.fields[from], {\n name: to,\n // rebind event handlers\n blur: function blur() {\n return api.blur(to);\n },\n change: function change(value) {\n return api.change(to, value);\n },\n focus: function focus() {\n return api.focus(to);\n },\n lastFieldState: undefined\n }), _extends2));\n delete state.fields[from];\n state.fieldSubscribers = _extends({}, state.fieldSubscribers, (_extends3 = {}, _extends3[to] = state.fieldSubscribers[from], _extends3));\n delete state.fieldSubscribers[from];\n var value = getIn(state.formState.values, from);\n state.formState.values = setIn(state.formState.values, from, undefined) || {};\n state.formState.values = setIn(state.formState.values, to, value);\n delete state.lastFormState;\n }\n }; // bind state to mutators\n\n\n var getMutatorApi = function getMutatorApi(key) {\n return function () {\n // istanbul ignore next\n if (mutators) {\n // ^^ causes branch coverage warning, but needed to appease the Flow gods\n var mutatableState = {\n formState: state.formState,\n fields: state.fields,\n fieldSubscribers: state.fieldSubscribers,\n lastFormState: state.lastFormState\n };\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var returnValue = mutators[key](args, mutatableState, {\n changeValue: changeValue,\n getIn: getIn,\n renameField: renameField,\n resetFieldState: api.resetFieldState,\n setIn: setIn,\n shallowEqual: shallowEqual\n });\n state.formState = mutatableState.formState;\n state.fields = mutatableState.fields;\n state.fieldSubscribers = mutatableState.fieldSubscribers;\n state.lastFormState = mutatableState.lastFormState;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n return returnValue;\n }\n };\n };\n\n var mutatorsApi = mutators ? Object.keys(mutators).reduce(function (result, key) {\n result[key] = getMutatorApi(key);\n return result;\n }, {}) : {};\n\n var runRecordLevelValidation = function runRecordLevelValidation(setErrors) {\n var promises = [];\n\n if (validate) {\n var errorsOrPromise = validate(_extends({}, state.formState.values)); // clone to avoid writing\n\n if (isPromise(errorsOrPromise)) {\n promises.push(errorsOrPromise.then(function (errors) {\n return setErrors(errors, true);\n }));\n } else {\n setErrors(errorsOrPromise, false);\n }\n }\n\n return promises;\n };\n\n var getValidators = function getValidators(field) {\n return Object.keys(field.validators).reduce(function (result, index) {\n var validator = field.validators[Number(index)]();\n\n if (validator) {\n result.push(validator);\n }\n\n return result;\n }, []);\n };\n\n var runFieldLevelValidation = function runFieldLevelValidation(field, setError) {\n var promises = [];\n var validators = getValidators(field);\n\n if (validators.length) {\n var error;\n validators.forEach(function (validator) {\n var errorOrPromise = validator(getIn(state.formState.values, field.name), state.formState.values, validator.length === 0 || validator.length === 3 ? publishFieldState(state.formState, state.fields[field.name]) : undefined);\n\n if (errorOrPromise && isPromise(errorOrPromise)) {\n field.validating = true;\n var promise = errorOrPromise.then(function (error) {\n if (state.fields[field.name]) {\n state.fields[field.name].validating = false;\n setError(error);\n }\n }); // errors must be resolved, not rejected\n\n promises.push(promise);\n } else if (!error) {\n // first registered validator wins\n error = errorOrPromise;\n }\n });\n setError(error);\n }\n\n return promises;\n };\n\n var runValidation = function runValidation(fieldChanged, callback) {\n if (validationPaused) {\n validationBlocked = true;\n callback();\n return;\n }\n\n var fields = state.fields,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var fieldKeys = Object.keys(safeFields);\n\n if (!validate && !fieldKeys.some(function (key) {\n return getValidators(safeFields[key]).length;\n })) {\n callback();\n return; // no validation rules\n } // pare down field keys to actually validate\n\n\n var limitedFieldLevelValidation = false;\n\n if (fieldChanged) {\n var changedField = safeFields[fieldChanged];\n\n if (changedField) {\n var validateFields = changedField.validateFields;\n\n if (validateFields) {\n limitedFieldLevelValidation = true;\n fieldKeys = validateFields.length ? validateFields.concat(fieldChanged) : [fieldChanged];\n }\n }\n }\n\n var recordLevelErrors = {};\n var asyncRecordLevelErrors = {};\n var fieldLevelErrors = {};\n var promises = [].concat(runRecordLevelValidation(function (errors, wasAsync) {\n if (wasAsync) {\n asyncRecordLevelErrors = errors || {};\n } else {\n recordLevelErrors = errors || {};\n }\n }), fieldKeys.reduce(function (result, name) {\n return result.concat(runFieldLevelValidation(fields[name], function (error) {\n fieldLevelErrors[name] = error;\n }));\n }, []));\n var hasAsyncValidations = promises.length > 0;\n var asyncValidationPromiseKey = ++nextAsyncValidationKey;\n var promise = Promise.all(promises).then(clearAsyncValidationPromise(asyncValidationPromiseKey)); // backwards-compat: add promise to submit-blocking promises iff there are any promises to await\n\n if (hasAsyncValidations) {\n asyncValidationPromises[asyncValidationPromiseKey] = promise;\n }\n\n var processErrors = function processErrors(afterAsync) {\n var merged = _extends({}, limitedFieldLevelValidation ? formState.errors : {}, recordLevelErrors, afterAsync ? asyncRecordLevelErrors // new async errors\n : formState.asyncErrors);\n\n var forEachError = function forEachError(fn) {\n fieldKeys.forEach(function (name) {\n if (fields[name]) {\n // make sure field is still registered\n // field-level errors take precedent over record-level errors\n var recordLevelError = getIn(recordLevelErrors, name);\n var errorFromParent = getIn(merged, name);\n var hasFieldLevelValidation = getValidators(safeFields[name]).length;\n var fieldLevelError = fieldLevelErrors[name];\n fn(name, hasFieldLevelValidation && fieldLevelError || validate && recordLevelError || (!recordLevelError && !limitedFieldLevelValidation ? errorFromParent : undefined));\n }\n });\n };\n\n forEachError(function (name, error) {\n merged = setIn(merged, name, error) || {};\n });\n forEachError(function (name, error) {\n if (error && error[ARRAY_ERROR]) {\n var existing = getIn(merged, name);\n var copy = [].concat(existing);\n copy[ARRAY_ERROR] = error[ARRAY_ERROR];\n merged = setIn(merged, name, copy);\n }\n });\n\n if (!shallowEqual(formState.errors, merged)) {\n formState.errors = merged;\n }\n\n if (afterAsync) {\n formState.asyncErrors = asyncRecordLevelErrors;\n }\n\n formState.error = recordLevelErrors[FORM_ERROR];\n };\n\n if (hasAsyncValidations) {\n // async validations are running, ensure validating is true before notifying\n state.formState.validating++;\n callback();\n } // process sync errors\n\n\n processErrors(false); // sync errors have been set. notify listeners while we wait for others\n\n callback();\n\n if (hasAsyncValidations) {\n var afterPromise = function afterPromise() {\n state.formState.validating--;\n callback();\n };\n\n promise.then(function () {\n if (nextAsyncValidationKey > asyncValidationPromiseKey) {\n // if this async validator has been superseded by another, ignore its results\n return;\n }\n\n processErrors(true);\n }).then(afterPromise, afterPromise);\n }\n };\n\n var notifyFieldListeners = function notifyFieldListeners(name) {\n if (inBatch) {\n return;\n }\n\n var fields = state.fields,\n fieldSubscribers = state.fieldSubscribers,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var notifyField = function notifyField(name) {\n var field = safeFields[name];\n var fieldState = publishFieldState(formState, field);\n var lastFieldState = field.lastFieldState;\n field.lastFieldState = fieldState;\n var fieldSubscriber = fieldSubscribers[name];\n\n if (fieldSubscriber) {\n notify(fieldSubscriber, fieldState, lastFieldState, filterFieldState, lastFieldState === undefined);\n }\n };\n\n if (name) {\n notifyField(name);\n } else {\n Object.keys(safeFields).forEach(notifyField);\n }\n };\n\n var markAllFieldsTouched = function markAllFieldsTouched() {\n Object.keys(state.fields).forEach(function (key) {\n state.fields[key].touched = true;\n });\n };\n\n var hasSyncErrors = function hasSyncErrors() {\n return !!(state.formState.error || hasAnyError(state.formState.errors));\n };\n\n var calculateNextFormState = function calculateNextFormState() {\n var fields = state.fields,\n formState = state.formState,\n lastFormState = state.lastFormState;\n\n var safeFields = _extends({}, fields);\n\n var safeFieldKeys = Object.keys(safeFields); // calculate dirty/pristine\n\n var foundDirty = false;\n var dirtyFields = safeFieldKeys.reduce(function (result, key) {\n var dirty = !safeFields[key].isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n\n if (dirty) {\n foundDirty = true;\n result[key] = true;\n }\n\n return result;\n }, {});\n var dirtyFieldsSinceLastSubmit = safeFieldKeys.reduce(function (result, key) {\n // istanbul ignore next\n var nonNullLastSubmittedValues = formState.lastSubmittedValues || {}; // || {} is for flow, but causes branch coverage complaint\n\n if (!safeFields[key].isEqual(getIn(formState.values, key), getIn(nonNullLastSubmittedValues, key))) {\n result[key] = true;\n }\n\n return result;\n }, {});\n formState.pristine = !foundDirty;\n formState.dirtySinceLastSubmit = !!(formState.lastSubmittedValues && Object.values(dirtyFieldsSinceLastSubmit).some(function (value) {\n return value;\n }));\n formState.modifiedSinceLastSubmit = !!(formState.lastSubmittedValues && // Object.values would treat values as mixed (facebook/flow#2221)\n Object.keys(safeFields).some(function (value) {\n return safeFields[value].modifiedSinceLastSubmit;\n }));\n formState.valid = !formState.error && !formState.submitError && !hasAnyError(formState.errors) && !(formState.submitErrors && hasAnyError(formState.submitErrors));\n var nextFormState = convertToExternalFormState(formState);\n\n var _safeFieldKeys$reduce = safeFieldKeys.reduce(function (result, key) {\n result.modified[key] = safeFields[key].modified;\n result.touched[key] = safeFields[key].touched;\n result.visited[key] = safeFields[key].visited;\n return result;\n }, {\n modified: {},\n touched: {},\n visited: {}\n }),\n modified = _safeFieldKeys$reduce.modified,\n touched = _safeFieldKeys$reduce.touched,\n visited = _safeFieldKeys$reduce.visited;\n\n nextFormState.dirtyFields = lastFormState && shallowEqual(lastFormState.dirtyFields, dirtyFields) ? lastFormState.dirtyFields : dirtyFields;\n nextFormState.dirtyFieldsSinceLastSubmit = lastFormState && shallowEqual(lastFormState.dirtyFieldsSinceLastSubmit, dirtyFieldsSinceLastSubmit) ? lastFormState.dirtyFieldsSinceLastSubmit : dirtyFieldsSinceLastSubmit;\n nextFormState.modified = lastFormState && shallowEqual(lastFormState.modified, modified) ? lastFormState.modified : modified;\n nextFormState.touched = lastFormState && shallowEqual(lastFormState.touched, touched) ? lastFormState.touched : touched;\n nextFormState.visited = lastFormState && shallowEqual(lastFormState.visited, visited) ? lastFormState.visited : visited;\n return lastFormState && shallowEqual(lastFormState, nextFormState) ? lastFormState : nextFormState;\n };\n\n var callDebug = function callDebug() {\n return debug && \"development\" !== \"production\" && debug(calculateNextFormState(), Object.keys(state.fields).reduce(function (result, key) {\n result[key] = state.fields[key];\n return result;\n }, {}));\n };\n\n var notifying = false;\n var scheduleNotification = false;\n\n var notifyFormListeners = function notifyFormListeners() {\n if (notifying) {\n scheduleNotification = true;\n } else {\n notifying = true;\n callDebug();\n\n if (!inBatch && !(validationPaused && preventNotificationWhileValidationPaused)) {\n var lastFormState = state.lastFormState;\n var nextFormState = calculateNextFormState();\n\n if (nextFormState !== lastFormState) {\n state.lastFormState = nextFormState;\n notify(state.subscribers, nextFormState, lastFormState, filterFormState);\n }\n }\n\n notifying = false;\n\n if (scheduleNotification) {\n scheduleNotification = false;\n notifyFormListeners();\n }\n }\n };\n\n var beforeSubmit = function beforeSubmit() {\n return Object.keys(state.fields).some(function (name) {\n return state.fields[name].beforeSubmit && state.fields[name].beforeSubmit() === false;\n });\n };\n\n var afterSubmit = function afterSubmit() {\n return Object.keys(state.fields).forEach(function (name) {\n return state.fields[name].afterSubmit && state.fields[name].afterSubmit();\n });\n };\n\n var resetModifiedAfterSubmit = function resetModifiedAfterSubmit() {\n return Object.keys(state.fields).forEach(function (key) {\n return state.fields[key].modifiedSinceLastSubmit = false;\n });\n }; // generate initial errors\n\n\n runValidation(undefined, function () {\n notifyFormListeners();\n });\n var api = {\n batch: function batch(fn) {\n inBatch++;\n fn();\n inBatch--;\n notifyFieldListeners();\n notifyFormListeners();\n },\n blur: function blur(name) {\n var fields = state.fields,\n formState = state.formState;\n var previous = fields[name];\n\n if (previous) {\n // can only blur registered fields\n delete formState.active;\n fields[name] = _extends({}, previous, {\n active: false,\n touched: true\n });\n\n if (validateOnBlur) {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n } else {\n notifyFieldListeners();\n notifyFormListeners();\n }\n }\n },\n change: function change(name, value) {\n var fields = state.fields,\n formState = state.formState;\n\n if (getIn(formState.values, name) !== value) {\n changeValue(state, name, function () {\n return value;\n });\n var previous = fields[name];\n\n if (previous) {\n // only track modified for registered fields\n fields[name] = _extends({}, previous, {\n modified: true,\n modifiedSinceLastSubmit: !!formState.lastSubmittedValues\n });\n }\n\n if (validateOnBlur) {\n notifyFieldListeners();\n notifyFormListeners();\n } else {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n }\n },\n\n get destroyOnUnregister() {\n return !!destroyOnUnregister;\n },\n\n set destroyOnUnregister(value) {\n destroyOnUnregister = value;\n },\n\n focus: function focus(name) {\n var field = state.fields[name];\n\n if (field && !field.active) {\n state.formState.active = name;\n field.active = true;\n field.visited = true;\n notifyFieldListeners();\n notifyFormListeners();\n }\n },\n mutators: mutatorsApi,\n getFieldState: function getFieldState(name) {\n var field = state.fields[name];\n return field && field.lastFieldState;\n },\n getRegisteredFields: function getRegisteredFields() {\n return Object.keys(state.fields);\n },\n getState: function getState() {\n return calculateNextFormState();\n },\n initialize: function initialize(data) {\n var fields = state.fields,\n formState = state.formState;\n\n var safeFields = _extends({}, fields);\n\n var values = typeof data === \"function\" ? data(formState.values) : data;\n\n if (!keepDirtyOnReinitialize) {\n formState.values = values;\n }\n /**\n * Hello, inquisitive code reader! Thanks for taking the time to dig in!\n *\n * The following code is the way it is to allow for non-registered deep\n * field values to be set via initialize()\n */\n // save dirty values\n\n\n var savedDirtyValues = keepDirtyOnReinitialize ? Object.keys(safeFields).reduce(function (result, key) {\n var field = safeFields[key];\n var pristine = field.isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n\n if (!pristine) {\n result[key] = getIn(formState.values, key);\n }\n\n return result;\n }, {}) : {}; // update initalValues and values\n\n formState.initialValues = values;\n formState.values = values; // restore the dirty values\n\n Object.keys(savedDirtyValues).forEach(function (key) {\n formState.values = setIn(formState.values, key, savedDirtyValues[key]) || {};\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n isValidationPaused: function isValidationPaused() {\n return validationPaused;\n },\n pauseValidation: function pauseValidation(preventNotification) {\n if (preventNotification === void 0) {\n preventNotification = true;\n }\n\n validationPaused = true;\n preventNotificationWhileValidationPaused = preventNotification;\n },\n registerField: function registerField(name, subscriber, subscription, fieldConfig) {\n if (subscription === void 0) {\n subscription = {};\n }\n\n if (!state.fieldSubscribers[name]) {\n state.fieldSubscribers[name] = {\n index: 0,\n entries: {}\n };\n }\n\n var index = state.fieldSubscribers[name].index++; // save field subscriber callback\n\n state.fieldSubscribers[name].entries[index] = {\n subscriber: memoize(subscriber),\n subscription: subscription,\n notified: false\n }; // create initial field state if not exists\n\n var field = state.fields[name] || {\n active: false,\n afterSubmit: fieldConfig && fieldConfig.afterSubmit,\n beforeSubmit: fieldConfig && fieldConfig.beforeSubmit,\n data: fieldConfig && fieldConfig.data || {},\n isEqual: fieldConfig && fieldConfig.isEqual || tripleEquals,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n name: name,\n touched: false,\n valid: true,\n validateFields: fieldConfig && fieldConfig.validateFields,\n validators: {},\n validating: false,\n visited: false\n }; // Mutators can create a field in order to keep the field states\n // We must update this field when registerField is called afterwards\n\n field.blur = field.blur || function () {\n return api.blur(name);\n };\n\n field.change = field.change || function (value) {\n return api.change(name, value);\n };\n\n field.focus = field.focus || function () {\n return api.focus(name);\n };\n\n state.fields[name] = field;\n var haveValidator = false;\n var silent = fieldConfig && fieldConfig.silent;\n\n var notify = function notify() {\n if (silent) {\n notifyFieldListeners(name);\n } else {\n notifyFormListeners();\n notifyFieldListeners();\n }\n };\n\n if (fieldConfig) {\n haveValidator = !!(fieldConfig.getValidator && fieldConfig.getValidator());\n\n if (fieldConfig.getValidator) {\n state.fields[name].validators[index] = fieldConfig.getValidator;\n }\n\n var noValueInFormState = getIn(state.formState.values, name) === undefined;\n\n if (fieldConfig.initialValue !== undefined && (noValueInFormState || getIn(state.formState.values, name) === getIn(state.formState.initialValues, name)) // only initialize if we don't yet have any value for this field\n ) {\n state.formState.initialValues = setIn(state.formState.initialValues || {}, name, fieldConfig.initialValue);\n state.formState.values = setIn(state.formState.values, name, fieldConfig.initialValue);\n runValidation(undefined, notify);\n } // only use defaultValue if we don't yet have any value for this field\n\n\n if (fieldConfig.defaultValue !== undefined && fieldConfig.initialValue === undefined && getIn(state.formState.initialValues, name) === undefined && noValueInFormState) {\n state.formState.values = setIn(state.formState.values, name, fieldConfig.defaultValue);\n }\n }\n\n if (haveValidator) {\n runValidation(undefined, notify);\n } else {\n notify();\n }\n\n return function () {\n var validatorRemoved = false; // istanbul ignore next\n\n if (state.fields[name]) {\n // state.fields[name] may have been removed by a mutator\n validatorRemoved = !!(state.fields[name].validators[index] && state.fields[name].validators[index]());\n delete state.fields[name].validators[index];\n }\n\n var hasFieldSubscribers = !!state.fieldSubscribers[name];\n\n if (hasFieldSubscribers) {\n // state.fieldSubscribers[name] may have been removed by a mutator\n delete state.fieldSubscribers[name].entries[index];\n }\n\n var lastOne = hasFieldSubscribers && !Object.keys(state.fieldSubscribers[name].entries).length;\n\n if (lastOne) {\n delete state.fieldSubscribers[name];\n delete state.fields[name];\n\n if (validatorRemoved) {\n state.formState.errors = setIn(state.formState.errors, name, undefined) || {};\n }\n\n if (destroyOnUnregister) {\n state.formState.values = setIn(state.formState.values, name, undefined, true) || {};\n }\n }\n\n if (!silent) {\n if (validatorRemoved) {\n runValidation(undefined, function () {\n notifyFormListeners();\n notifyFieldListeners();\n });\n } else if (lastOne) {\n // values or errors may have changed\n notifyFormListeners();\n }\n }\n };\n },\n reset: function reset(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n\n if (state.formState.submitting) {\n state.formState.resetWhileSubmitting = true;\n }\n\n state.formState.submitFailed = false;\n state.formState.submitSucceeded = false;\n delete state.formState.submitError;\n delete state.formState.submitErrors;\n delete state.formState.lastSubmittedValues;\n api.initialize(initialValues || {});\n },\n\n /**\n * Resets all field flags (e.g. touched, visited, etc.) to their initial state\n */\n resetFieldState: function resetFieldState(name) {\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n\n /**\n * Returns the form to a clean slate; that is:\n * - Clear all values\n * - Resets all fields to their initial state\n */\n restart: function restart(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n\n api.batch(function () {\n for (var name in state.fields) {\n api.resetFieldState(name);\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n }\n\n api.reset(initialValues);\n });\n },\n resumeValidation: function resumeValidation() {\n validationPaused = false;\n preventNotificationWhileValidationPaused = false;\n\n if (validationBlocked) {\n // validation was attempted while it was paused, so run it now\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n\n validationBlocked = false;\n },\n setConfig: function setConfig(name, value) {\n switch (name) {\n case \"debug\":\n debug = value;\n break;\n\n case \"destroyOnUnregister\":\n destroyOnUnregister = value;\n break;\n\n case \"initialValues\":\n api.initialize(value);\n break;\n\n case \"keepDirtyOnReinitialize\":\n keepDirtyOnReinitialize = value;\n break;\n\n case \"mutators\":\n mutators = value;\n\n if (value) {\n Object.keys(mutatorsApi).forEach(function (key) {\n if (!(key in value)) {\n delete mutatorsApi[key];\n }\n });\n Object.keys(value).forEach(function (key) {\n mutatorsApi[key] = getMutatorApi(key);\n });\n } else {\n Object.keys(mutatorsApi).forEach(function (key) {\n delete mutatorsApi[key];\n });\n }\n\n break;\n\n case \"onSubmit\":\n onSubmit = value;\n break;\n\n case \"validate\":\n validate = value;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n break;\n\n case \"validateOnBlur\":\n validateOnBlur = value;\n break;\n\n default:\n throw new Error(\"Unrecognised option \" + name);\n }\n },\n submit: function submit() {\n var formState = state.formState;\n\n if (formState.submitting) {\n return;\n }\n\n delete formState.submitErrors;\n delete formState.submitError;\n formState.lastSubmittedValues = _extends({}, formState.values);\n\n if (hasSyncErrors()) {\n markAllFieldsTouched();\n resetModifiedAfterSubmit();\n state.formState.submitFailed = true;\n notifyFormListeners();\n notifyFieldListeners();\n return; // no submit for you!!\n }\n\n var asyncValidationPromisesKeys = Object.keys(asyncValidationPromises);\n\n if (asyncValidationPromisesKeys.length) {\n // still waiting on async validation to complete...\n Promise.all(asyncValidationPromisesKeys.map(function (key) {\n return asyncValidationPromises[Number(key)];\n })).then(api.submit, console.error);\n return;\n }\n\n var submitIsBlocked = beforeSubmit();\n\n if (submitIsBlocked) {\n return;\n }\n\n var resolvePromise;\n var completeCalled = false;\n\n var complete = function complete(errors) {\n formState.submitting = false;\n var resetWhileSubmitting = formState.resetWhileSubmitting;\n\n if (resetWhileSubmitting) {\n formState.resetWhileSubmitting = false;\n }\n\n if (errors && hasAnyError(errors)) {\n formState.submitFailed = true;\n formState.submitSucceeded = false;\n formState.submitErrors = errors;\n formState.submitError = errors[FORM_ERROR];\n markAllFieldsTouched();\n } else {\n if (!resetWhileSubmitting) {\n formState.submitFailed = false;\n formState.submitSucceeded = true;\n }\n\n afterSubmit();\n }\n\n notifyFormListeners();\n notifyFieldListeners();\n completeCalled = true;\n\n if (resolvePromise) {\n resolvePromise(errors);\n }\n\n return errors;\n };\n\n formState.submitting = true;\n formState.submitFailed = false;\n formState.submitSucceeded = false;\n formState.lastSubmittedValues = _extends({}, formState.values);\n resetModifiedAfterSubmit(); // onSubmit is either sync, callback or async with a Promise\n\n var result = onSubmit(formState.values, api, complete);\n\n if (!completeCalled) {\n if (result && isPromise(result)) {\n // onSubmit is async with a Promise\n notifyFormListeners(); // let everyone know we are submitting\n\n notifyFieldListeners(); // notify fields also\n\n return result.then(complete, function (error) {\n complete();\n throw error;\n });\n } else if (onSubmit.length >= 3) {\n // must be async, so we should return a Promise\n notifyFormListeners(); // let everyone know we are submitting\n\n notifyFieldListeners(); // notify fields also\n\n return new Promise(function (resolve) {\n resolvePromise = resolve;\n });\n } else {\n // onSubmit is sync\n complete(result);\n }\n }\n },\n subscribe: function subscribe(subscriber, subscription) {\n if (!subscriber) {\n throw new Error(\"No callback given.\");\n }\n\n if (!subscription) {\n throw new Error(\"No subscription provided. What values do you want to listen to?\");\n }\n\n var memoized = memoize(subscriber);\n var subscribers = state.subscribers;\n var index = subscribers.index++;\n subscribers.entries[index] = {\n subscriber: memoized,\n subscription: subscription,\n notified: false\n };\n var nextFormState = calculateNextFormState();\n notifySubscriber(memoized, subscription, nextFormState, nextFormState, filterFormState, true);\n return function () {\n delete subscribers.entries[index];\n };\n }\n };\n return api;\n}\n\nexport { ARRAY_ERROR, FORM_ERROR, configOptions, createForm, fieldSubscriptionItems, formSubscriptionItems, getIn, setIn, version };"],"sourceRoot":""}