{"version":3,"sources":["../node_modules/react-final-form/dist/react-final-form.es.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/final-form/dist/final-form.es.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/InputGroup.js","../node_modules/react-bootstrap/esm/FormGroup.js"],"names":["renderComponent","props","lazyProps","name","render","children","component","rest","_objectWithoutPropertiesLoose","createElement","Object","assign","undefined","Error","useWhenValueChanges","value","callback","isEqual","a","b","previous","React__default","useRef","useEffect","current","shallowEqual","keysA","keys","keysB","length","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","isSyntheticEvent","candidate","stopPropagation","ReactFinalFormContext","createContext","useLatest","ref","version","addLazyState","dest","state","forEach","defineProperty","get","enumerable","addLazyFormState","versions","version$1","all","formSubscriptionItems","reduce","result","ReactFinalForm","_ref","debug","decorators","destroyOnUnregister","alternateFormApi","form","initialValues","initialValuesEqual","keepDirtyOnReinitialize","mutators","onSubmit","_ref$subscription","subscription","validate","validateOnBlur","config","init","useConstant","f","createForm","pauseValidation","_React$useState","useState","initialState","subscribe","setState","stateRef","isValidationPaused","resumeValidation","unsubscriptions","s","concat","map","decorator","reverse","unsubscribe","setConfig","renderProps","_extends","reset","eventOrValues","handleSubmit","event","preventDefault","submit","Provider","__versions","useForm","componentName","useContext","useFormState","_temp","onChange","firstRender","onChangeRef","newState","lazyState","isReactNative","window","navigator","product","all$1","fieldSubscriptionItems","defaultFormat","defaultParse","defaultIsEqual","useField","_config","afterSubmit","allowNull","data","defaultValue","_config$format","format","formatOnBlur","initialValue","multiple","_config$parse","parse","_config$subscription","type","validateFields","_value","configRef","register","silent","registerField","beforeSubmit","_configRef$current","_configRef$current$fo","getFieldState","formatted","change","getValidator","handlers","onBlur","useCallback","blur","fieldState","target","currentValue","valueProp","nativeEvent","text","_detypedEvent$target","checked","Array","isArray","index","indexOf","slice","options","option","selected","push","getSelectedValues","getValue","onFocus","focus","meta","addLazyFieldMetaState","input","Field","forwardRef","field","FormContext","React","controlId","keysCache","keysRegex","toPath","split","filter","Boolean","getIn","complexKey","path","i","isNaN","_toPropertyKey","arg","hint","prim","Symbol","toPrimitive","res","call","TypeError","String","Number","_toPrimitive","setInRecursor","destroyArrays","_extends2","_result2","_result","numKeys","numericKey","_result3","_array","array","splice","setIn","FORM_ERROR","ARRAY_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","filterFieldState","previousState","force","shallowEqualKeys$1","filterFormState","memoize","fn","lastArgs","lastResult","_len","arguments","args","_key","some","apply","isPromise","obj","then","tripleEquals","hasAnyError","notifySubscriber","subscriber","lastState","notification","notify","_ref2","entries","entry","notified","subscribers","fieldSubscribers","fields","lastFormState","inBatch","validationPaused","validationBlocked","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","fieldLevelErrors","promises","setErrors","errorsOrPromise","runRecordLevelValidation","setError","errorOrPromise","promise","runFieldLevelValidation","hasAsyncValidations","asyncValidationPromiseKey","Promise","processErrors","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","batch","getRegisteredFields","getState","initialize","savedDirtyValues","fieldConfig","haveValidator","validatorRemoved","lastOne","restart","asyncValidationPromisesKeys","console","resolvePromise","completeCalled","complete","resolve","memoized","exports","default","allPropTypes","_len2","_key2","_createChainableTypeChecker2","_createChainableTypeChecker","require","__esModule","module","checkType","isRequired","propName","location","propFullName","componentNameSafe","propFullNameSafe","chainedCheckType","propTypes","PropTypes","string","tooltip","bool","as","elementType","Feedback","_ref$as","Component","className","_ref$type","_ref$tooltip","classNames","displayName","FormControl","classes","_classes","bsPrefix","bsCustomPrefix","size","htmlSize","id","_ref$isValid","isValid","_ref$isInvalid","isInvalid","plaintext","readOnly","custom","prefix","defaultPrefix","useBootstrapPrefix","_classes2","_classes3","_classes4","_classes5","FormLabel","column","srOnly","htmlFor","columnClass","Col","defaultProps","InputGroupAppend","createWithBsPrefix","InputGroupPrepend","InputGroupText","InputGroup","InputGroupWithExtras","Text","Radio","Checkbox","Append","Prepend","FormGroup","context","useMemo"],"mappings":"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","file":"static/js/2.8f1b12ac.chunk.js","sourcesContent":["import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport React__default, { createElement, createContext, useState, useEffect, useContext, useRef, useCallback, forwardRef } from 'react';\nimport { formSubscriptionItems, createForm, version as version$1, fieldSubscriptionItems } from 'final-form';\n\n// shared logic between components that use either render prop,\n// children render function, or component prop\nfunction renderComponent(props, lazyProps, name) {\n var render = props.render,\n children = props.children,\n component = props.component,\n rest = _objectWithoutPropertiesLoose(props, [\"render\", \"children\", \"component\"]);\n\n if (component) {\n return /*#__PURE__*/createElement(component, Object.assign(lazyProps, rest, {\n children: children,\n render: render\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/**\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\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 = /*#__PURE__*/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.1\";\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};\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 versions = {\n 'final-form': version$1,\n 'react-final-form': version\n};\nvar all = formSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nfunction ReactFinalForm(_ref) {\n var debug = _ref.debug,\n decorators = _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 : _ref$subscription,\n validate = _ref.validate,\n validateOnBlur = _ref.validateOnBlur,\n rest = _objectWithoutPropertiesLoose(_ref, [\"debug\", \"decorators\", \"destroyOnUnregister\", \"form\", \"initialValues\", \"initialValuesEqual\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"subscription\", \"validate\", \"validateOnBlur\"]);\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 = 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 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 /*#__PURE__*/createElement(ReactFinalFormContext.Provider, {\n value: form\n }, renderComponent(_extends({}, rest, {\n __versions: versions\n }), renderProps, 'ReactFinalForm'));\n}\n\nfunction useForm(componentName) {\n var form = 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 : _ref$subscription;\n\n var form = useForm('useFormState');\n var firstRender = useRef(true);\n var onChangeRef = 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 = 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 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\nfunction FormSpy(_ref) {\n var onChange = _ref.onChange,\n subscription = _ref.subscription,\n rest = _objectWithoutPropertiesLoose(_ref, [\"onChange\", \"subscription\"]);\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\nvar all$1 = 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$1 : _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 = useRef(true); // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = useState(function () {\n var initialState = {}; // 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\n form.destroyOnUnregister = destroyOnUnregister;\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n 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 handlers = {\n onBlur: useCallback(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 }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [state.blur, state.name, format, formatOnBlur]),\n onChange: useCallback(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 }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [_value, name, parse, state.change, state.value, type]),\n onFocus: useCallback(function (event) {\n state.focus();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [state.focus])\n };\n var meta = {};\n addLazyFieldMetaState(meta, state);\n\n var input = _extends({\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 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\n return undefined;\n }\n\n }, handlers);\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 Field = /*#__PURE__*/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, [\"afterSubmit\", \"allowNull\", \"beforeSubmit\", \"children\", \"component\", \"data\", \"defaultValue\", \"format\", \"formatOnBlur\", \"initialValue\", \"isEqual\", \"multiple\", \"name\", \"parse\", \"subscription\", \"type\", \"validate\", \"validateFields\", \"value\"]);\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 /*#__PURE__*/createElement(component, _extends({}, field.input, {\n children: children,\n ref: ref\n }, rest));\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 };\n","import React from 'react'; // TODO\n\nvar FormContext = React.createContext({\n controlId: undefined\n});\nexport default FormContext;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\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 keysCache[key] = key.split(keysRegex).filter(Boolean);\n }\n\n return keysCache[key];\n};\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) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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;\n\n // object set\n if (current === undefined || current === null) {\n var _ref;\n\n // recurse\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 var _removed = current[key],\n _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/**\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\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 = ['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) || !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\n// \nvar shallowEqualKeys$1 = ['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$1) || !previousState;\n return different || force ? result : undefined;\n}\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 (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n});\n\nvar version = \"4.20.1\";\n\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 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 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 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(setErrors));\n } else {\n setErrors(errorsOrPromise);\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 field.validating = false;\n setError(error);\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 fieldLevelErrors = {};\n var promises = [].concat(runRecordLevelValidation(function (errors) {\n recordLevelErrors = errors || {};\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() {\n var merged = _extends({}, limitedFieldLevelValidation ? formState.errors : {}, recordLevelErrors);\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 formState.error = recordLevelErrors[FORM_ERROR];\n }; // process sync errors\n\n\n processErrors(); // sync errors have been set. notify listeners while we wait for others\n\n callback();\n\n if (hasAsyncValidations) {\n state.formState.validating++;\n callback();\n\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();\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) {\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() {\n validationPaused = true;\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 };\n\n if (!state.fields[name]) {\n // create initial field state\n state.fields[name] = {\n active: false,\n afterSubmit: fieldConfig && fieldConfig.afterSubmit,\n beforeSubmit: fieldConfig && fieldConfig.beforeSubmit,\n blur: function blur() {\n return api.blur(name);\n },\n change: function change(value) {\n return api.change(name, value);\n },\n data: fieldConfig && fieldConfig.data || {},\n focus: function focus() {\n return api.focus(name);\n },\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 };\n }\n\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 if (fieldConfig.initialValue !== undefined && getIn(state.formState.values, name) === undefined // 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 }\n\n if (fieldConfig.defaultValue !== undefined && fieldConfig.initialValue === undefined && getIn(state.formState.initialValues, name) === undefined) {\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 delete state.fieldSubscribers[name].entries[index];\n var lastOne = !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 throw Error('Cannot reset() in onSubmit(), use setTimeout(form.reset)');\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\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 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\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 formState.submitFailed = false;\n formState.submitSucceeded = true;\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 };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nvar propTypes = {\n /**\n * Specify whether the feedback is for valid or invalid fields\n *\n * @type {('valid'|'invalid')}\n */\n type: PropTypes.string,\n\n /** Display feedback as a tooltip. */\n tooltip: PropTypes.bool,\n as: PropTypes.elementType\n};\nvar Feedback = React.forwardRef( // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\nfunction (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'valid' : _ref$type,\n _ref$tooltip = _ref.tooltip,\n tooltip = _ref$tooltip === void 0 ? false : _ref$tooltip,\n props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"className\", \"type\", \"tooltip\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, type + \"-\" + (tooltip ? 'tooltip' : 'feedback'))\n }));\n});\nFeedback.displayName = 'Feedback';\nFeedback.propTypes = propTypes;\nexport default Feedback;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport all from 'prop-types-extra/lib/all';\nimport React, { useContext } from 'react';\nimport warning from 'warning';\nimport Feedback from './Feedback';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormControl = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n bsCustomPrefix = _ref.bsCustomPrefix,\n type = _ref.type,\n size = _ref.size,\n htmlSize = _ref.htmlSize,\n id = _ref.id,\n className = _ref.className,\n _ref$isValid = _ref.isValid,\n isValid = _ref$isValid === void 0 ? false : _ref$isValid,\n _ref$isInvalid = _ref.isInvalid,\n isInvalid = _ref$isInvalid === void 0 ? false : _ref$isInvalid,\n plaintext = _ref.plaintext,\n readOnly = _ref.readOnly,\n custom = _ref.custom,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'input' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"bsCustomPrefix\", \"type\", \"size\", \"htmlSize\", \"id\", \"className\", \"isValid\", \"isInvalid\", \"plaintext\", \"readOnly\", \"custom\", \"as\"]);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n var _ref2 = custom ? [bsCustomPrefix, 'custom'] : [bsPrefix, 'form-control'],\n prefix = _ref2[0],\n defaultPrefix = _ref2[1];\n\n bsPrefix = useBootstrapPrefix(prefix, defaultPrefix);\n var classes;\n\n if (plaintext) {\n var _classes;\n\n classes = (_classes = {}, _classes[bsPrefix + \"-plaintext\"] = true, _classes);\n } else if (type === 'file') {\n var _classes2;\n\n classes = (_classes2 = {}, _classes2[bsPrefix + \"-file\"] = true, _classes2);\n } else if (type === 'range') {\n var _classes3;\n\n classes = (_classes3 = {}, _classes3[bsPrefix + \"-range\"] = true, _classes3);\n } else if (Component === 'select' && custom) {\n var _classes4;\n\n classes = (_classes4 = {}, _classes4[bsPrefix + \"-select\"] = true, _classes4[bsPrefix + \"-select-\" + size] = size, _classes4);\n } else {\n var _classes5;\n\n classes = (_classes5 = {}, _classes5[bsPrefix] = true, _classes5[bsPrefix + \"-\" + size] = size, _classes5);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !id, '`controlId` is ignored on `` when `id` is specified.') : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n type: type,\n size: htmlSize,\n ref: ref,\n readOnly: readOnly,\n id: id || controlId,\n className: classNames(className, classes, isValid && \"is-valid\", isInvalid && \"is-invalid\")\n }));\n});\nFormControl.displayName = 'FormControl';\nexport default Object.assign(FormControl, {\n Feedback: Feedback\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React, { useContext } from 'react';\nimport warning from 'warning';\nimport Col from './Col';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n column: false,\n srOnly: false\n};\nvar FormLabel = React.forwardRef(function (_ref, ref) {\n var _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'label' : _ref$as,\n bsPrefix = _ref.bsPrefix,\n column = _ref.column,\n srOnly = _ref.srOnly,\n className = _ref.className,\n htmlFor = _ref.htmlFor,\n props = _objectWithoutPropertiesLoose(_ref, [\"as\", \"bsPrefix\", \"column\", \"srOnly\", \"className\", \"htmlFor\"]);\n\n var _useContext = useContext(FormContext),\n controlId = _useContext.controlId;\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label');\n var columnClass = 'col-form-label';\n if (typeof column === 'string') columnClass = columnClass + \"-\" + column;\n var classes = classNames(className, bsPrefix, srOnly && 'sr-only', column && columnClass);\n process.env.NODE_ENV !== \"production\" ? warning(controlId == null || !htmlFor, '`controlId` is ignored on `` when `htmlFor` is specified.') : void 0;\n htmlFor = htmlFor || controlId;\n if (column) return /*#__PURE__*/React.createElement(Col, _extends({\n as: \"label\",\n className: classes,\n htmlFor: htmlFor\n }, props));\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control\n React.createElement(Component, _extends({\n ref: ref,\n className: classes,\n htmlFor: htmlFor\n }, props))\n );\n});\nFormLabel.displayName = 'FormLabel';\nFormLabel.defaultProps = defaultProps;\nexport default FormLabel;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport React from 'react';\nimport createWithBsPrefix from './createWithBsPrefix';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar InputGroupAppend = createWithBsPrefix('input-group-append');\nvar InputGroupPrepend = createWithBsPrefix('input-group-prepend');\nvar InputGroupText = createWithBsPrefix('input-group-text', {\n Component: 'span'\n});\n\nvar InputGroupCheckbox = function InputGroupCheckbox(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"checkbox\"\n }, props)));\n};\n\nvar InputGroupRadio = function InputGroupRadio(props) {\n return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement(\"input\", _extends({\n type: \"radio\"\n }, props)));\n};\n\n/**\n *\n * @property {InputGroupAppend} Append\n * @property {InputGroupPrepend} Prepend\n * @property {InputGroupText} Text\n * @property {InputGroupRadio} Radio\n * @property {InputGroupCheckbox} Checkbox\n */\nvar InputGroup = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n size = _ref.size,\n className = _ref.className,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"size\", \"className\", \"as\"]);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, bsPrefix, size && bsPrefix + \"-\" + size)\n }));\n});\nInputGroup.displayName = 'InputGroup';\n\nvar InputGroupWithExtras = _extends({}, InputGroup, {\n Text: InputGroupText,\n Radio: InputGroupRadio,\n Checkbox: InputGroupCheckbox,\n Append: InputGroupAppend,\n Prepend: InputGroupPrepend\n});\n\nexport default InputGroupWithExtras;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\nimport FormContext from './FormContext';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar FormGroup = React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n children = _ref.children,\n controlId = _ref.controlId,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, [\"bsPrefix\", \"className\", \"children\", \"controlId\", \"as\"]);\n\n bsPrefix = useBootstrapPrefix(bsPrefix, 'form-group');\n var context = useMemo(function () {\n return {\n controlId: controlId\n };\n }, [controlId]);\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n ref: ref,\n className: classNames(className, bsPrefix)\n }), children));\n});\nFormGroup.displayName = 'FormGroup';\nexport default FormGroup;"],"sourceRoot":""}