@abtnode/webapp 1.7.12 → 1.7.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/lodash/upperFirst.js","../../../node_modules/@arcblock/ux/lib/Tabs/index.js","../../../node_modules/@arcblock/ux/lib/ClickToCopy/index.js","../../../node_modules/lodash/_createCompounder.js","../../../node_modules/lodash/_createCaseFirst.js","../../../node_modules/lodash/camelCase.js","../../../node_modules/lodash/capitalize.js","../../../node_modules/lodash/_arrayReduce.js","../../../node_modules/lodash/deburr.js","../../../node_modules/lodash/_deburrLetter.js","../../../node_modules/lodash/_basePropertyOf.js","../../../node_modules/lodash/words.js","../../../node_modules/lodash/_asciiWords.js","../../../node_modules/lodash/_hasUnicodeWord.js","../../../node_modules/lodash/_unicodeWords.js","../../../node_modules/@material-ui/icons/MoreVert.js","../../../node_modules/@material-ui/icons/Link.js","../../../node_modules/@material-ui/icons/Https.js","../../../node_modules/@material-ui/icons/CallMerge.js","../../src/utils/isHTMLElement.ts","../../src/constants.ts","../../src/logic/attachEventListeners.ts","../../src/utils/isNullOrUndefined.ts","../../src/utils/isObject.ts","../../src/utils/isKey.ts","../../src/utils/compact.ts","../../src/utils/stringToPath.ts","../../src/utils/set.ts","../../src/logic/transformToNestObject.ts","../../src/utils/isUndefined.ts","../../src/utils/get.ts","../../src/logic/focusOnErrorField.ts","../../src/logic/removeAllEventListeners.ts","../../src/logic/getRadioValue.ts","../../src/utils/isRadioInput.ts","../../src/utils/isFileInput.ts","../../src/utils/isCheckBoxInput.ts","../../src/utils/isMultipleSelect.ts","../../src/logic/getCheckboxValue.ts","../../src/logic/getFieldValue.ts","../../src/logic/getMultipleSelectValue.ts","../../src/utils/isDetached.ts","../../src/utils/isEmptyObject.ts","../../src/utils/isBoolean.ts","../../src/utils/unset.ts","../../src/logic/findRemovedFieldAndRemoveListener.ts","../../src/utils/isPrimitive.ts","../../src/utils/deepMerge.ts","../../src/utils/deepEqual.ts","../../src/logic/setFieldArrayDirtyFields.ts","../../src/utils/isString.ts","../../src/logic/getFieldsValues.ts","../../src/logic/isErrorStateChanged.ts","../../src/utils/isRegex.ts","../../src/logic/getValueAndMessage.ts","../../src/utils/isFunction.ts","../../src/utils/isMessage.ts","../../src/logic/getValidateError.ts","../../src/logic/appendErrors.ts","../../src/logic/validateField.ts","../../src/utils/getPath.ts","../../src/logic/assignWatchFields.ts","../../src/logic/skipValidation.ts","../../src/logic/getNodeParentName.ts","../../src/logic/isNameInFieldArray.ts","../../src/utils/isSelectInput.ts","../../src/utils/onDomRemove.ts","../../src/utils/isWeb.ts","../../src/utils/cloneObject.ts","../../src/utils/validationModeChecker.ts","../../src/utils/isRadioOrCheckbox.ts","../../src/useForm.ts","../../src/useFormContext.tsx","../../src/useController.ts","../../src/logic/getInputValue.ts","../../src/controller.tsx","../../../node_modules/@material-ui/icons/Public.js","../../../node_modules/@material-ui/icons/Send.js","../../../node_modules/@material-ui/icons/Storage.js","../../../node_modules/@material-ui/icons/SubdirectoryArrowRight.js","../../../node_modules/attr-accept/dist/es/index.js","../../../node_modules/@material-ui/icons/Details.js","../../../node_modules/@material-ui/icons/InfoOutlined.js","../../../src/file.ts","../../../src/file-selector.ts","../../../node_modules/react-dropzone/dist/es/utils/index.js","../../../node_modules/react-dropzone/dist/es/index.js","../../../node_modules/@material-ui/core/esm/Tabs/index.js","../../../node_modules/@material-ui/core/esm/Tab/index.js"],"names":["upperFirst","require","createCaseFirst","module","exports","Object","defineProperty","value","default","Tabs","_react","_interopRequireDefault","_propTypes","_core","_Tabs","_Tab","_excluded","obj","__esModule","_objectWithoutProperties","source","excluded","key","i","target","sourceKeys","keys","length","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call","useStyles","makeStyles","theme","tabs","tab","fontSize","breakpoints","up","_ref","current","_onChange","onChange","rest","classes","createElement","assign","scrollButtons","variant","_","newValue","indicatorColor","className","join","map","x","label","icon","propTypes","array","isRequired","string","func","ClickToCopy","nodeInterop","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","hasOwnProperty","desc","set","_interopRequireWildcard","_copyToClipboard","_useWindowSize","_Tooltip","_Typography","_styledComponents","_Toast","_Util","WeakMap","cacheBabelInterop","cacheNodeInterop","props","newProps","mergeProps","children","content","tip","copiedTip","tipPlacement","style","useState","copied","setCopied","childrenRef","createRef","width","useEffect","timer","setTimeout","clearTimeout","title","placement","disableFocusListener","Container","ref","component","color","fontWeight","onClick","e","textContent","message","any","object","defaultProps","withConfig","displayName","componentId","arrayReduce","deburr","words","reApos","RegExp","callback","replace","castSlice","hasUnicode","stringToArray","toString","methodName","strSymbols","undefined","chr","charAt","trailing","slice","capitalize","camelCase","createCompounder","result","word","index","toLowerCase","iteratee","accumulator","initAccum","deburrLetter","reLatin","reComboMark","basePropertyOf","asciiWords","hasUnicodeWord","unicodeWords","pattern","guard","match","reAsciiWord","reHasUnicodeWord","test","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","reOptMod","rsModifier","rsSeq","rsEmoji","reUnicodeWord","React","_default","d","HTMLElement","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","attachEventListeners","shouldAttachChangeEvent","handleChange","isHTMLElement","addEventListener","isObjectType","isNullOrUndefined","Array","isArray","Date","filter","Boolean","input","compact","split","path","tempPath","isKey","stringToPath","lastIndex","objValue","isObject","isNaN","data","val","defaultValue","reduce","isUndefined","fields","fieldErrors","field","focus","options","validateWithStateUpdate","removeEventListener","defaultReturn","isValid","previous","option","checked","element","type","defaultResult","validResult","values","attributes","getFieldValue","fieldsRef","name","shallowFieldsStateRef","excludeDisabled","shouldKeepRawValue","disabled","valueAsNumber","valueAsDate","setValueAs","isFileInput","files","isRadioInput","getRadioValue","isMultipleSelect","selected","isCheckBox","getCheckboxValue","NaN","isDetached","nodeType","Node","DOCUMENT_NODE","parentNode","unset","previousObjRef","updatePath","childObject","baseGet","k","objectRef","currentPaths","currentPathsLength","item","isEmptyObject","isBoolean","isSameRef","fieldValue","findRemovedFieldAndRemoveListener","shouldUnregister","forceDelete","fieldRef","isCheckBoxInput","forEach","removeAllEventListeners","deepMerge","isPrimitive","targetValue","sourceValue","deepEqual","object1","object2","isErrorObject","React.isValidElement","keys1","keys2","val1","val2","setDirtyFields","defaultValues","dirtyFields","parentName","shallowFieldsState","search","output","isString","startsWith","find","transformToNestObject","errors","error","validFields","fieldsWithValidation","previousError","validationData","isRegex","getValidateError","isMessage","validateAllFieldCriteria","types","a","required","maxLength","minLength","min","max","validate","isRadio","isRadioOrCheckbox","isEmpty","appendErrorsCurry","appendErrors","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","getValueAndMessage","maxOutput","minOutput","valueDate","exceedMin","valueNumber","parseFloat","maxLengthOutput","minLengthOutput","patternValue","getFieldsValue","validateRef","isFunction","validateError","validationResult","entries","validateFunction","validateResult","getPath","rootPath","paths","property","rootName","push","fieldValues","fieldName","watchFields","inputValue","isSingleField","add","isOnBlur","isOnChange","isOnTouch","isTouched","isReValidateOnBlur","isReValidateOnChange","isBlurEvent","isSubmitted","isOnAll","substring","isMatchFieldArrayName","searchName","names","some","onDomRemove","removeFieldEventListenerAndRef","observer","MutationObserver","observe","window","document","childList","subtree","cloneObject","copy","isWeb","File","includes","constructor","getTime","Set","Map","mode","isOnSubmit","isWindowUndefined","isProxyEnabled","Proxy","useForm","reValidateMode","resolver","context","shouldFocusError","criteriaMode","React.useRef","fieldArrayDefaultValuesRef","fieldArrayValuesRef","watchFieldsRef","useWatchFieldsRef","useWatchRenderFunctionsRef","fieldsWithValidationRef","validFieldsRef","defaultValuesRef","isUnMount","isWatchAllRef","handleChangeRef","resetFieldArrayFunctionRef","contextRef","resolverRef","fieldArrayNamesRef","modeRef","modeChecker","isValidateAllFieldCriteria","React.useState","isDirty","isValidating","submitCount","touched","isSubmitting","isSubmitSuccessful","formState","setFormState","readFormStateRef","formStateRef","observerRef","updateFormState","React.useCallback","state","updateIsValidating","shouldRenderBaseOnError","shouldRender","shouldReRender","isErrorStateChanged","setFieldValue","rawValue","radioRef","selectRef","checkboxRef","isFormDirty","formValues","getValues","updateAndGetDirtyState","isFieldDirty","isDirtyFieldExist","previousIsDirty","isChanged","executeValidation","skipReRender","validateField","executeSchemaOrResolverValidation","previousFormIsValid","isInputsValid","every","trigger","Promise","all","setInternalValues","shouldDirty","shouldValidate","setInternalValue","config","getNodeParentName","setFieldArrayDirtyFields","isFieldWatched","renderWatchedInputs","found","size","setValue","setFieldArrayDefaultValues","payload","getFieldsValues","shouldSkipValidation","skipValidation","parentNodeName","currentError","validateResolver","newDefaultValues","removeFieldEventListener","updateWatchedValue","clearErrors","inputName","setError","shouldFocus","watchInternal","fieldNames","watchId","assignWatchFields","combinedDefaultValues","watch","unregister","registerFieldRef","fieldRefAndValidationOptions","isRadioOrCheckboxFunction","isFieldArray","isNameInFieldArray","compareRef","currentRef","isEmptyDefaultValue","isEmptyUnmountFields","then","isSelectInput","register","refOrRegisterOptions","handleSubmit","onValid","onInvalid","preventDefault","persist","fieldError","focusOnErrorField","resetRefs","reset","omitResetState","inputRef","closest","resetFieldArray","React.useEffect","disconnect","commonProps","prop","control","React.useMemo","FormContext","React.createContext","useFormContext","React.useContext","useController","rules","onFocus","methods","isNotFieldArray","getInitialValue","setInputStateValue","valueRef","onFocusRef","commonTask","event","getInputValue","registerField","shouldUpdateValue","defineProperties","onBlur","meta","invalid","Controller","as","render","componentProps","React.cloneElement","React.createElement","file","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","trim","endsWith","v","items","flatten","ownKeys","enumerableOnly","symbols","sym","enumerable","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","from","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","getInvalidTypeRejectionErr","accept","messageSuffix","concat","code","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","multiple","maxFiles","accepted","sizeMatch","isPropagationStopped","cancelBubble","isEvtWithFiles","dataTransfer","onDocumentDragOver","isIe","userAgent","isEdge","isIeOrEdge","navigator","composeEventHandlers","_len","fns","_key","_len2","args","_key2","fn","canUseFileSystemAccessAPI","filePickerOptionsTypes","description","b","_excluded2","_excluded3","_excluded4","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Dropzone","forwardRef","_useDropzone","useDropzone","open","useImperativeHandle","Fragment","getFilesFromEvent","Infinity","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","validator","useFsAccessApi","PropTypes","oneOfType","arrayOf","bool","number","onFileDialogCancel","onFileDialogOpen","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_defaultProps$options","onFileDialogOpenCb","useMemo","noop","onFileDialogCancelCb","rootRef","useRef","_useReducer","useReducer","reducer","_useReducer2","dispatch","onWindowFocus","dragTargetsRef","onDocumentDrop","contains","onDragEnterCb","useCallback","stopPropagation","resolve","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","splice","setFiles","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","customErrors","onDropCb","openFileDialog","opts","showOpenFilePicker","handles","catch","finally","click","onKeyDownCb","isEqualNode","keyCode","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2","_ref2$refKey","refKey","role","onKeyDown","tabIndex","onInputElementClick","getInputProps","_ref3","_ref3$refKey","inputProps","display","autoComplete","fileCount","action"],"mappings":"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","file":"static/js/13.f8a31bf7.chunk.js","sourcesContent":["var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Tabs;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _core = require(\"@material-ui/core\");\n\nvar _Tabs = _interopRequireDefault(require(\"@material-ui/core/Tabs\"));\n\nvar _Tab = _interopRequireDefault(require(\"@material-ui/core/Tab\"));\n\nconst _excluded = [\"tabs\", \"current\", \"onChange\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nconst useStyles = (0, _core.makeStyles)(theme => ({\n tabs: {},\n tab: {\n fontSize: '0.875rem',\n [theme.breakpoints.up('md')]: {\n fontSize: '1rem'\n }\n }\n}));\n\nfunction Tabs(_ref) {\n let {\n tabs,\n current,\n onChange: _onChange\n } = _ref,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n const classes = useStyles();\n return /*#__PURE__*/_react.default.createElement(_Tabs.default, Object.assign({\n scrollButtons: \"on\",\n variant: \"scrollable\",\n value: current,\n onChange: (_, newValue) => _onChange(newValue),\n indicatorColor: \"primary\"\n }, rest, {\n className: [classes.tabs, rest.className || ''].join(' ')\n }), tabs.map(x => /*#__PURE__*/_react.default.createElement(_Tab.default, {\n className: classes.tab,\n key: x.value,\n value: x.value,\n label: x.label,\n icon: x.icon || null\n })));\n}\n\nTabs.propTypes = {\n tabs: _propTypes.default.array.isRequired,\n current: _propTypes.default.string.isRequired,\n onChange: _propTypes.default.func.isRequired\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ClickToCopy;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _copyToClipboard = _interopRequireDefault(require(\"copy-to-clipboard\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _useWindowSize = _interopRequireDefault(require(\"react-use/lib/useWindowSize\"));\n\nvar _Tooltip = _interopRequireDefault(require(\"@material-ui/core/Tooltip\"));\n\nvar _Typography = _interopRequireDefault(require(\"@material-ui/core/Typography\"));\n\nvar _styledComponents = _interopRequireDefault(require(\"styled-components\"));\n\nvar _Toast = _interopRequireDefault(require(\"../Toast\"));\n\nvar _Util = require(\"../Util\");\n\nconst _excluded = [\"children\", \"content\", \"tip\", \"copiedTip\", \"tipPlacement\", \"style\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ClickToCopy(props) {\n const newProps = (0, _Util.mergeProps)(props, ClickToCopy, ['style']);\n\n const {\n children,\n content,\n tip,\n copiedTip,\n tipPlacement,\n style\n } = newProps,\n rest = _objectWithoutProperties(newProps, _excluded);\n\n const [copied, setCopied] = (0, _react.useState)(false);\n\n const childrenRef = /*#__PURE__*/_react.default.createRef();\n\n const {\n width\n } = (0, _useWindowSize.default)();\n\n const onCopy = e => {\n (0, _copyToClipboard.default)(content || e.current.textContent);\n setCopied(true);\n };\n\n (0, _react.useEffect)(() => {\n let timer = null;\n\n if (copied) {\n timer = setTimeout(() => {\n setCopied(false);\n }, 2000);\n }\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n });\n return /*#__PURE__*/_react.default.createElement(_Tooltip.default, Object.assign({\n title: copied ? copiedTip : tip\n }, rest, {\n placement: tipPlacement,\n disableFocusListener: true\n }), /*#__PURE__*/_react.default.createElement(Container, {\n ref: childrenRef,\n component: \"span\",\n style: Object.assign({\n fontSize: 'inherit',\n color: 'inherit',\n fontWeight: 'inherit'\n }, style),\n onClick: () => onCopy(childrenRef)\n }, children || content, copied && width < 600 && /*#__PURE__*/_react.default.createElement(_Toast.default, {\n variant: \"success\",\n message: copiedTip\n })));\n}\n\nClickToCopy.propTypes = {\n children: _propTypes.default.any.isRequired,\n content: _propTypes.default.string,\n tip: _propTypes.default.string,\n tipPlacement: _propTypes.default.string,\n copiedTip: _propTypes.default.string,\n style: _propTypes.default.object\n};\nClickToCopy.defaultProps = {\n content: '',\n tip: 'Click To Copy',\n copiedTip: 'Copied',\n tipPlacement: 'right',\n style: {}\n};\nconst Container = (0, _styledComponents.default)(_Typography.default).withConfig({\n displayName: \"ClickToCopy__Container\",\n componentId: \"sc-1vo2vcj-0\"\n})([\"display:inline;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;align-items:center;justify-content:start;border-radius:15px;padding:1px 12px;background-color:rgba(0,0,0,0.08);cursor:pointer;\"]);","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","var basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreVert');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\"\n}), 'Link');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\"\n}), 'Https');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\"\n}), 'CallMerge');\n\nexports.default = _default;","export default (value: any): value is HTMLElement =>\n value instanceof HTMLElement;\n","import { ValidationMode } from './types';\n\nexport const EVENTS = {\n BLUR: 'blur',\n CHANGE: 'change',\n INPUT: 'input',\n};\n\nexport const VALIDATION_MODE: ValidationMode = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\n\nexport const SELECT = 'select';\n\nexport const UNDEFINED = 'undefined';\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Field } from '../types';\n\nexport default function attachEventListeners(\n { ref }: Field,\n shouldAttachChangeEvent?: boolean,\n handleChange?: EventListenerOrEventListenerObject,\n): void {\n if (isHTMLElement(ref) && handleChange) {\n ref.addEventListener(\n shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT,\n handleChange,\n );\n ref.addEventListener(EVENTS.BLUR, handleChange);\n }\n}\n","export default (value: unknown): value is null | undefined => value == null;\n","import isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown) => typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !(value instanceof Date);\n","export default (value: string) => /^\\w*$/.test(value);\n","export default (value: any[]) => value.filter(Boolean);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(\n input\n .replace(/[\"|']/g, '')\n .replace(/\\[/g, '.')\n .replace(/\\]/g, '')\n .split('.'),\n );\n","import isObject from './isObject';\nimport isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport { FieldValues } from '../types';\n\nexport default function set(\n object: FieldValues,\n path: string,\n value?: unknown,\n) {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n}\n","import set from '../utils/set';\nimport isKey from '../utils/isKey';\nimport { FieldValues } from '../types';\n\nexport default (data: FieldValues, value: Record<string, any> = {}): any => {\n for (const key in data) {\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\n }\n return value;\n};\n","export default (val: unknown): val is undefined => val === undefined;\n","import isUndefined from './isUndefined';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport compact from './compact';\n\nexport default (obj: any = {}, path: string, defaultValue?: unknown) => {\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) => (isNullOrUndefined(result) ? result : result[key]),\n obj,\n );\n\n return isUndefined(result) || result === obj\n ? isUndefined(obj[path])\n ? defaultValue\n : obj[path]\n : result;\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport { FieldErrors, FieldRefs } from '../types';\n\nexport default <TFieldValues>(\n fields: FieldRefs<TFieldValues>,\n fieldErrors: FieldErrors<TFieldValues>,\n) => {\n for (const key in fields) {\n if (get(fieldErrors, key)) {\n const field = fields[key];\n\n if (field) {\n if (field.ref.focus && isUndefined(field.ref.focus())) {\n break;\n } else if (field.options) {\n field.options[0].ref.focus();\n\n break;\n }\n }\n }\n }\n};\n","import isHTMLElement from '../utils/isHTMLElement';\nimport { EVENTS } from '../constants';\nimport { Ref } from '../types';\n\nexport default (\n ref: Ref,\n validateWithStateUpdate: EventListenerOrEventListenerObject,\n): void => {\n if (isHTMLElement(ref) && ref.removeEventListener) {\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\n }\n};\n","import { RadioOrCheckboxOption } from '../types';\n\ntype RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: RadioOrCheckboxOption[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.ref.checked\n ? {\n isValid: true,\n value: option.ref.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-multiple`;\n","import isUndefined from '../utils/isUndefined';\nimport { RadioOrCheckboxOption } from '../types';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: RadioOrCheckboxOption[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.ref.checked)\n .map(({ ref: { value } }) => value);\n return { value: values, isValid: !!values.length };\n }\n\n const { checked, value, attributes } = options[0].ref;\n\n return checked\n ? attributes && !isUndefined((attributes as any).value)\n ? isUndefined(value) || value === ''\n ? validResult\n : { value: value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","import * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getMultipleSelectValue from './getMultipleSelectValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport get from '../utils/get';\nimport isFileInput from '../utils/isFileInput';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport getCheckboxValue from './getCheckboxValue';\nimport { FieldRefs, FieldValues, InternalFieldName } from '../types';\n\nexport default function getFieldValue<TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n name: InternalFieldName<TFieldValues>,\n shallowFieldsStateRef?: React.MutableRefObject<Partial<FieldValues>>,\n excludeDisabled?: boolean,\n shouldKeepRawValue?: boolean,\n) {\n const field = fieldsRef.current[name]!;\n\n if (field) {\n const {\n ref: { value, disabled },\n ref,\n valueAsNumber,\n valueAsDate,\n setValueAs,\n } = field;\n\n if (disabled && excludeDisabled) {\n return;\n }\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(field.options).value;\n }\n\n if (isMultipleSelect(ref)) {\n return getMultipleSelectValue(ref.options);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(field.options).value;\n }\n\n return shouldKeepRawValue\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : +value\n : valueAsDate\n ? (ref as HTMLInputElement).valueAsDate\n : setValueAs\n ? setValueAs(value)\n : value;\n }\n\n if (shallowFieldsStateRef) {\n return get(shallowFieldsStateRef.current, name);\n }\n}\n","export default (\n options: HTMLOptionElement[] | HTMLOptionsCollection,\n): string[] =>\n [...options]\n .filter(({ selected }): boolean => selected)\n .map(({ value }): string => value);\n","import { Ref } from '../types';\n\nexport default function isDetached(element: Ref): boolean {\n if (!element) {\n return true;\n }\n\n if (\n !(element instanceof HTMLElement) ||\n element.nodeType === Node.DOCUMENT_NODE\n ) {\n return false;\n }\n\n return isDetached(element.parentNode as Ref);\n}\n","import isObject from './isObject';\nimport { EmptyObject } from '../types';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","import isKey from './isKey';\nimport stringToPath from './stringToPath';\nimport isEmptyObject from './isEmptyObject';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport isBoolean from './isBoolean';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nexport default function unset(object: any, path: string) {\n const updatePath = isKey(path) ? [path] : stringToPath(path);\n const childObject =\n updatePath.length == 1 ? object : baseGet(object, updatePath);\n const key = updatePath[updatePath.length - 1];\n let previousObjRef;\n\n if (childObject) {\n delete childObject[key];\n }\n\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\n let index = -1;\n let objectRef;\n const currentPaths = updatePath.slice(0, -(k + 1));\n const currentPathsLength = currentPaths.length - 1;\n\n if (k > 0) {\n previousObjRef = object;\n }\n\n while (++index < currentPaths.length) {\n const item = currentPaths[index];\n objectRef = objectRef ? objectRef[item] : object[item];\n\n if (\n currentPathsLength === index &&\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\n (Array.isArray(objectRef) &&\n !objectRef.filter(\n (data) =>\n (isObject(data) && !isEmptyObject(data)) || isBoolean(data),\n ).length))\n ) {\n previousObjRef ? delete previousObjRef[item] : delete object[item];\n }\n\n previousObjRef = objectRef;\n }\n }\n\n return object;\n}\n","import * as React from 'react';\nimport removeAllEventListeners from './removeAllEventListeners';\nimport getFieldValue from './getFieldValue';\nimport isRadioInput from '../utils/isRadioInput';\nimport set from '../utils/set';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDetached from '../utils/isDetached';\nimport unset from '../utils/unset';\nimport compact from '../utils/compact';\nimport isUndefined from '../utils/isUndefined';\nimport { Field, FieldRefs, FieldValues, Ref } from '../types';\n\nconst isSameRef = (fieldValue: Field, ref: Ref) =>\n fieldValue && fieldValue.ref === ref;\n\nexport default function findRemovedFieldAndRemoveListener<\n TFieldValues extends FieldValues\n>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n handleChange: ({ type, target }: Event) => Promise<void | boolean>,\n field: Field,\n shallowFieldsStateRef: React.MutableRefObject<FieldValues>,\n shouldUnregister?: boolean,\n forceDelete?: boolean,\n): void {\n const {\n ref,\n ref: { name },\n } = field;\n const fieldRef = fieldsRef.current[name] as Field;\n\n if (!shouldUnregister) {\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\n\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\n }\n\n if (!ref.type || !fieldRef) {\n delete fieldsRef.current[name];\n return;\n }\n\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\n compact(fieldRef.options).forEach((option = {}, index): void => {\n if (\n (isDetached(option.ref) && isSameRef(option, option.ref)) ||\n forceDelete\n ) {\n removeAllEventListeners(option.ref, handleChange);\n unset(fieldRef.options, `[${index}]`);\n }\n });\n\n if (fieldRef.options && !compact(fieldRef.options).length) {\n delete fieldsRef.current[name];\n }\n } else {\n delete fieldsRef.current[name];\n }\n } else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\n removeAllEventListeners(ref, handleChange);\n\n delete fieldsRef.current[name];\n }\n}\n","import isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\nimport { Primitive } from '../types';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from './isObject';\nimport isPrimitive from './isPrimitive';\n\nexport function deepMerge<\n T extends Record<keyof T, any>,\n U extends Record<keyof U, any>\n>(target: T, source: U): T & U {\n if (isPrimitive(target) || isPrimitive(source)) {\n return source;\n }\n\n for (const key in source) {\n const targetValue = target[key];\n const sourceValue = source[key];\n\n try {\n target[key] =\n (isObject(targetValue) && isObject(sourceValue)) ||\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\n ? deepMerge(targetValue, sourceValue)\n : sourceValue;\n } catch {}\n }\n\n return target;\n}\n","import * as React from 'react';\nimport isObject from '../utils/isObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(\n object1: any,\n object2: any,\n isErrorObject?: boolean,\n) {\n if (\n isPrimitive(object1) ||\n isPrimitive(object2) ||\n object1 instanceof Date ||\n object2 instanceof Date\n ) {\n return object1 === object2;\n }\n\n if (!React.isValidElement(object1)) {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!(isErrorObject && key === 'ref')) {\n const val2 = object2[key];\n\n if (\n (isObject(val1) || Array.isArray(val1)) &&\n (isObject(val2) || Array.isArray(val2))\n ? !deepEqual(val1, val2, isErrorObject)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n","import { get } from '../utils';\nimport set from '../utils/set';\nimport { deepMerge } from '../utils/deepMerge';\nimport deepEqual from '../utils/deepEqual';\n\nfunction setDirtyFields<\n T extends Record<string, unknown>[],\n U extends Record<string, unknown>[],\n K extends Record<string, boolean | []>\n>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n parentNode?: K,\n parentName?: keyof K,\n) {\n let index = -1;\n\n while (++index < values.length) {\n for (const key in values[index]) {\n if (Array.isArray(values[index][key])) {\n !dirtyFields[index] && (dirtyFields[index] = {});\n dirtyFields[index][key] = [];\n setDirtyFields(\n values[index][key] as T,\n get(defaultValues[index] || {}, key, []),\n dirtyFields[index][key] as [],\n dirtyFields[index],\n key,\n );\n } else {\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\n ? set(dirtyFields[index] || {}, key)\n : (dirtyFields[index] = {\n ...dirtyFields[index],\n [key]: true,\n });\n }\n }\n\n parentNode &&\n !dirtyFields.length &&\n delete parentNode[parentName as keyof K];\n }\n\n return dirtyFields;\n}\n\nexport default <T extends U, U extends Record<string, unknown>[]>(\n values: T,\n defaultValues: U,\n dirtyFields: Record<string, boolean | []>[],\n) =>\n deepMerge(\n setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)),\n setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)),\n );\n","export default (value: unknown): value is string => typeof value === 'string';\n","import * as React from 'react';\nimport getFieldValue from './getFieldValue';\nimport isString from '../utils/isString';\nimport { deepMerge } from '../utils/deepMerge';\nimport isUndefined from '../utils/isUndefined';\nimport { InternalFieldName, FieldValues, FieldRefs } from '../types';\nimport transformToNestObject from './transformToNestObject';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n shallowFieldsState: Record<string, any>,\n shouldUnregister: boolean,\n excludeDisabled?: boolean,\n search?:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[]\n | { nest: boolean },\n) => {\n const output = {} as TFieldValues;\n\n for (const name in fieldsRef.current) {\n if (\n isUndefined(search) ||\n (isString(search)\n ? name.startsWith(search)\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))\n ) {\n output[name as InternalFieldName<TFieldValues>] = getFieldValue(\n fieldsRef,\n name,\n undefined,\n excludeDisabled,\n );\n }\n }\n\n return shouldUnregister\n ? transformToNestObject(output)\n : deepMerge(shallowFieldsState, transformToNestObject(output));\n};\n","import get from '../utils/get';\nimport isUndefined from '../utils/isUndefined';\nimport deepEqual from '../utils/deepEqual';\nimport {\n FieldValues,\n InternalFieldName,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldError,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>({\n errors,\n name,\n error,\n validFields,\n fieldsWithValidation,\n}: {\n errors: FieldErrors<TFieldValues>;\n error: FieldError | undefined;\n name: InternalFieldName<TFieldValues>;\n validFields: FieldNamesMarkedBoolean<TFieldValues>;\n fieldsWithValidation: FieldNamesMarkedBoolean<TFieldValues>;\n}): boolean => {\n const isValid = isUndefined(error);\n const previousError = get(errors, name);\n\n return (\n (isValid && !!previousError) ||\n (!isValid && !deepEqual(previousError, error, true)) ||\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name))\n );\n};\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport { ValidationRule } from '../types';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import * as React from 'react';\nimport isString from '../utils/isString';\nimport { Message } from '../types';\n\nexport default (value: unknown): value is Message =>\n isString(value) || React.isValidElement(value as JSX.Element);\n","import isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport { FieldError, ValidateResult, Ref } from '../types';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (isMessage(result) || (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import {\n InternalFieldName,\n ValidateResult,\n InternalFieldErrors,\n} from '../types';\n\nexport default <TFieldValues>(\n name: InternalFieldName<TFieldValues>,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors<TFieldValues>,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","import * as React from 'react';\nimport getRadioValue from './getRadioValue';\nimport getCheckboxValue from './getCheckboxValue';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isRadioInput from '../utils/isRadioInput';\nimport getValueAndMessage from './getValueAndMessage';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isString from '../utils/isString';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isObject from '../utils/isObject';\nimport isFunction from '../utils/isFunction';\nimport getFieldsValue from './getFieldValue';\nimport isRegex from '../utils/isRegex';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\nimport getValidateError from './getValidateError';\nimport appendErrors from './appendErrors';\nimport { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldValues,\n FieldRefs,\n Message,\n FieldError,\n InternalFieldName,\n InternalFieldErrors,\n} from '../types';\n\nexport default async <TFieldValues extends FieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n validateAllFieldCriteria: boolean,\n {\n ref,\n ref: { value },\n options,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n }: Field,\n shallowFieldsStateRef: React.MutableRefObject<Record<string, any>>,\n): Promise<InternalFieldErrors<TFieldValues>> => {\n const name: InternalFieldName<TFieldValues> = ref.name;\n const error: InternalFieldErrors<TFieldValues> = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = value === '';\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType = INPUT_VALIDATION_RULES.maxLength,\n minType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...(exceedMax\n ? appendErrorsCurry(maxType, message)\n : appendErrorsCurry(minType, message)),\n };\n };\n\n if (\n required &&\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\n (isBoolean(value) && !value) ||\n (isCheckBox && !getCheckboxValue(options).isValid) ||\n (isRadio && !getRadioValue(options).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: isRadioOrCheckbox\n ? (((fieldsRef.current[name] as Field).options || [])[0] || {}).ref\n : ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNaN(value)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber || parseFloat(value);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(value);\n if (isString(maxOutput.value)) {\n exceedMax = valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value)) {\n exceedMin = valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n value.length > maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n value.length < minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (isString(value) && pattern && !isEmpty) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !patternValue.test(value)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n\n if (validate) {\n const fieldValue = getFieldsValue(\n fieldsRef,\n name,\n shallowFieldsStateRef,\n false,\n true,\n );\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\n\n if (isFunction(validate)) {\n const result = await validate(fieldValue);\n const validateError = getValidateError(result, validateRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n for (const [key, validateFunction] of Object.entries(validate)) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateResult = await validateFunction(fieldValue);\n const validateError = getValidateError(\n validateResult,\n validateRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: validateRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n return error;\n};\n","import isPrimitive from './isPrimitive';\nimport isObject from './isObject';\nimport { FieldName } from '../types';\n\nexport const getPath = <TFieldValues>(\n rootPath: FieldName<TFieldValues>,\n values: any,\n paths: FieldName<TFieldValues>[] = [],\n): FieldName<TFieldValues>[] => {\n for (const property in values) {\n const rootName = (rootPath +\n (isObject(values)\n ? `.${property}`\n : `[${property}]`)) as FieldName<TFieldValues>;\n\n isPrimitive(values[property])\n ? paths.push(rootName)\n : getPath(rootName, values[property], paths);\n }\n\n return paths;\n};\n","import get from '../utils/get';\nimport { getPath } from '../utils/getPath';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport {\n DeepPartial,\n FieldValue,\n FieldValues,\n InternalFieldName,\n UnpackNestedValue,\n} from '../types';\n\nexport default <TFieldValues extends FieldValues>(\n fieldValues: TFieldValues,\n fieldName: InternalFieldName<TFieldValues>,\n watchFields: Set<InternalFieldName<TFieldValues>>,\n inputValue: UnpackNestedValue<DeepPartial<TFieldValues>>,\n isSingleField?: boolean,\n):\n | FieldValue<TFieldValues>\n | UnpackNestedValue<DeepPartial<TFieldValues>>\n | undefined => {\n let value = undefined;\n\n watchFields.add(fieldName);\n\n if (!isEmptyObject(fieldValues)) {\n value = get(fieldValues, fieldName);\n\n if (isObject(value) || Array.isArray(value)) {\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\n }\n }\n\n return isUndefined(value)\n ? isSingleField\n ? inputValue\n : get(inputValue, fieldName)\n : value;\n};\n","export default ({\n isOnBlur,\n isOnChange,\n isOnTouch,\n isTouched,\n isReValidateOnBlur,\n isReValidateOnChange,\n isBlurEvent,\n isSubmitted,\n isOnAll,\n}: {\n isOnAll?: boolean;\n isOnBlur?: boolean;\n isOnChange?: boolean;\n isReValidateOnBlur?: boolean;\n isReValidateOnChange?: boolean;\n isBlurEvent?: boolean;\n isSubmitted?: boolean;\n isOnTouch?: boolean;\n isTouched?: boolean;\n}) => {\n if (isOnAll) {\n return false;\n } else if (!isSubmitted && isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? isReValidateOnChange : isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","export default (name: string) => name.substring(0, name.indexOf('['));\n","import { FieldValues, InternalFieldName } from '../types';\n\nexport const isMatchFieldArrayName = (name: string, searchName: string) =>\n RegExp(\n `^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]'),\n ).test(name);\n\nexport default (\n names: Set<InternalFieldName<FieldValues>>,\n name: InternalFieldName<FieldValues>,\n) => [...names].some((current) => isMatchFieldArrayName(name, current));\n","import { FieldElement } from '../types';\nimport { SELECT } from '../constants';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `${SELECT}-one`;\n","import * as React from 'react';\nimport { Field, FieldRefs } from '../types';\nimport isDetached from './isDetached';\n\nexport default function onDomRemove<TFieldValues>(\n fieldsRef: React.MutableRefObject<FieldRefs<TFieldValues>>,\n removeFieldEventListenerAndRef: (\n field: Field | undefined,\n forceDelete?: boolean,\n ) => void,\n): MutationObserver {\n const observer = new MutationObserver((): void => {\n for (const field of Object.values(fieldsRef.current)) {\n if (field && field.options) {\n for (const option of field.options) {\n if (option && option.ref && isDetached(option.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n } else if (field && isDetached(field.ref)) {\n removeFieldEventListenerAndRef(field);\n }\n }\n });\n\n observer.observe(window.document, {\n childList: true,\n subtree: true,\n });\n\n return observer;\n}\n","import { UNDEFINED } from '../constants';\n\nexport default typeof window !== UNDEFINED && typeof document !== UNDEFINED;\n","import isPrimitive from './isPrimitive';\nimport isHTMLElement from './isHTMLElement';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T extends unknown>(data: T): T {\n let copy: any;\n\n if (\n isPrimitive(data) ||\n (isWeb && (data instanceof File || isHTMLElement(data)))\n ) {\n return data;\n }\n\n if (\n !['Set', 'Map', 'Object', 'Date', 'Array'].includes(\n (data as Object).constructor?.name,\n )\n ) {\n return data;\n }\n\n if (data instanceof Date) {\n copy = new Date(data.getTime());\n return copy;\n }\n\n if (data instanceof Set) {\n copy = new Set();\n for (const item of data) {\n copy.add(item);\n }\n return copy;\n }\n\n if (data instanceof Map) {\n copy = new Map();\n for (const key of data.keys()) {\n copy.set(key, cloneObject(data.get(key)));\n }\n return copy;\n }\n\n copy = Array.isArray(data) ? [] : {};\n\n for (const key in data) {\n copy[key] = cloneObject(data[key]);\n }\n\n return copy;\n}\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode } from '../types';\n\nexport default (\n mode?: Mode,\n): {\n isOnSubmit: boolean;\n isOnBlur: boolean;\n isOnChange: boolean;\n isOnAll: boolean;\n isOnTouch: boolean;\n} => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import isRadioInput from './isRadioInput';\nimport isCheckBoxInput from './isCheckBoxInput';\nimport { FieldElement } from '../types';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import * as React from 'react';\nimport attachEventListeners from './logic/attachEventListeners';\nimport transformToNestObject from './logic/transformToNestObject';\nimport focusOnErrorField from './logic/focusOnErrorField';\nimport findRemovedFieldAndRemoveListener from './logic/findRemovedFieldAndRemoveListener';\nimport setFieldArrayDirtyFields from './logic/setFieldArrayDirtyFields';\nimport getFieldsValues from './logic/getFieldsValues';\nimport getFieldValue from './logic/getFieldValue';\nimport isErrorStateChanged from './logic/isErrorStateChanged';\nimport validateField from './logic/validateField';\nimport assignWatchFields from './logic/assignWatchFields';\nimport skipValidation from './logic/skipValidation';\nimport getNodeParentName from './logic/getNodeParentName';\nimport deepEqual from './utils/deepEqual';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isCheckBoxInput from './utils/isCheckBoxInput';\nimport isEmptyObject from './utils/isEmptyObject';\nimport isRadioInput from './utils/isRadioInput';\nimport isSelectInput from './utils/isSelectInput';\nimport isFileInput from './utils/isFileInput';\nimport onDomRemove from './utils/onDomRemove';\nimport isObject from './utils/isObject';\nimport { getPath } from './utils/getPath';\nimport isPrimitive from './utils/isPrimitive';\nimport isFunction from './utils/isFunction';\nimport isString from './utils/isString';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport set from './utils/set';\nimport unset from './utils/unset';\nimport isKey from './utils/isKey';\nimport cloneObject from './utils/cloneObject';\nimport modeChecker from './utils/validationModeChecker';\nimport isMultipleSelect from './utils/isMultipleSelect';\nimport compact from './utils/compact';\nimport isNullOrUndefined from './utils/isNullOrUndefined';\nimport isRadioOrCheckboxFunction from './utils/isRadioOrCheckbox';\nimport isWeb from './utils/isWeb';\nimport isHTMLElement from './utils/isHTMLElement';\nimport { EVENTS, UNDEFINED, VALIDATION_MODE } from './constants';\nimport {\n UseFormMethods,\n FieldValues,\n UnpackNestedValue,\n FieldName,\n InternalFieldName,\n FieldErrors,\n Field,\n FieldRefs,\n UseFormOptions,\n RegisterOptions,\n SubmitHandler,\n FieldElement,\n FormStateProxy,\n ReadFormState,\n Ref,\n HandleChange,\n RadioOrCheckboxOption,\n OmitResetState,\n SetValueConfig,\n ErrorOption,\n FormState,\n SubmitErrorHandler,\n FieldNamesMarkedBoolean,\n LiteralToPrimitive,\n DeepPartial,\n InternalNameSet,\n DefaultValues,\n FieldError,\n SetFieldValue,\n FieldArrayDefaultValues,\n ResetFieldArrayFunctionRef,\n UseWatchRenderFunctions,\n RecordInternalNameSet,\n} from './types';\n\nconst isWindowUndefined = typeof window === UNDEFINED;\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\n\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext extends object = object\n>({\n mode = VALIDATION_MODE.onSubmit,\n reValidateMode = VALIDATION_MODE.onChange,\n resolver,\n context,\n defaultValues = {} as DefaultValues<TFieldValues>,\n shouldFocusError = true,\n shouldUnregister = true,\n criteriaMode,\n}: UseFormOptions<TFieldValues, TContext> = {}): UseFormMethods<TFieldValues> {\n const fieldsRef = React.useRef<FieldRefs<TFieldValues>>({});\n const fieldArrayDefaultValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const fieldArrayValuesRef = React.useRef<FieldArrayDefaultValues>({});\n const watchFieldsRef = React.useRef<InternalNameSet<TFieldValues>>(new Set());\n const useWatchFieldsRef = React.useRef<RecordInternalNameSet<TFieldValues>>(\n {},\n );\n const useWatchRenderFunctionsRef = React.useRef<UseWatchRenderFunctions>({});\n const fieldsWithValidationRef = React.useRef<\n FieldNamesMarkedBoolean<TFieldValues>\n >({});\n const validFieldsRef = React.useRef<FieldNamesMarkedBoolean<TFieldValues>>(\n {},\n );\n const defaultValuesRef = React.useRef<DefaultValues<TFieldValues>>(\n defaultValues,\n );\n const isUnMount = React.useRef(false);\n const isWatchAllRef = React.useRef(false);\n const handleChangeRef = React.useRef<HandleChange>();\n const shallowFieldsStateRef = React.useRef({});\n const resetFieldArrayFunctionRef = React.useRef<\n ResetFieldArrayFunctionRef<TFieldValues>\n >({});\n const contextRef = React.useRef(context);\n const resolverRef = React.useRef(resolver);\n const fieldArrayNamesRef = React.useRef<InternalNameSet<TFieldValues>>(\n new Set(),\n );\n const modeRef = React.useRef(modeChecker(mode));\n const { isOnSubmit, isOnTouch } = modeRef.current;\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\n const [formState, setFormState] = React.useState<FormState<TFieldValues>>({\n isDirty: false,\n isValidating: false,\n dirtyFields: {},\n isSubmitted: false,\n submitCount: 0,\n touched: {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: !isOnSubmit,\n errors: {},\n });\n const readFormStateRef = React.useRef<ReadFormState>({\n isDirty: !isProxyEnabled,\n dirtyFields: !isProxyEnabled,\n touched: !isProxyEnabled || isOnTouch,\n isValidating: !isProxyEnabled,\n isSubmitting: !isProxyEnabled,\n isValid: !isProxyEnabled,\n });\n const formStateRef = React.useRef(formState);\n const observerRef = React.useRef<MutationObserver | undefined>();\n const {\n isOnBlur: isReValidateOnBlur,\n isOnChange: isReValidateOnChange,\n } = React.useRef(modeChecker(reValidateMode)).current;\n\n contextRef.current = context;\n resolverRef.current = resolver;\n formStateRef.current = formState;\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : isEmptyObject(shallowFieldsStateRef.current)\n ? cloneObject(defaultValues)\n : shallowFieldsStateRef.current;\n\n const updateFormState = React.useCallback(\n (state: Partial<FormState<TFieldValues>> = {}) => {\n if (!isUnMount.current) {\n formStateRef.current = {\n ...formStateRef.current,\n ...state,\n };\n setFormState(formStateRef.current);\n }\n },\n [],\n );\n\n const updateIsValidating = () =>\n readFormStateRef.current.isValidating &&\n updateFormState({\n isValidating: true,\n });\n\n const shouldRenderBaseOnError = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n error: FieldError | undefined,\n shouldRender: boolean | null = false,\n state: {\n dirtyFields?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n } = {},\n isValid?: boolean,\n ): boolean | void => {\n let shouldReRender =\n shouldRender ||\n isErrorStateChanged<TFieldValues>({\n errors: formStateRef.current.errors,\n error,\n name,\n validFields: validFieldsRef.current,\n fieldsWithValidation: fieldsWithValidationRef.current,\n });\n const previousError = get(formStateRef.current.errors, name);\n\n if (error) {\n unset(validFieldsRef.current, name);\n shouldReRender =\n shouldReRender ||\n !previousError ||\n !deepEqual(previousError, error, true);\n set(formStateRef.current.errors, name, error);\n } else {\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\n set(validFieldsRef.current, name, true);\n shouldReRender = shouldReRender || previousError;\n }\n\n unset(formStateRef.current.errors, name);\n }\n\n if (\n (shouldReRender && !isNullOrUndefined(shouldRender)) ||\n !isEmptyObject(state) ||\n readFormStateRef.current.isValidating\n ) {\n updateFormState({\n ...state,\n ...(resolverRef.current ? { isValid: !!isValid } : {}),\n isValidating: false,\n });\n }\n },\n [],\n );\n\n const setFieldValue = React.useCallback(\n (name: FieldName<TFieldValues>, rawValue: SetFieldValue<TFieldValues>) => {\n const { ref, options } = fieldsRef.current[name] as Field;\n const value =\n isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\n ? ''\n : rawValue;\n\n if (isRadioInput(ref)) {\n (options || []).forEach(\n ({ ref: radioRef }: { ref: HTMLInputElement }) =>\n (radioRef.checked = radioRef.value === value),\n );\n } else if (isFileInput(ref) && !isString(value)) {\n ref.files = value as FileList;\n } else if (isMultipleSelect(ref)) {\n [...ref.options].forEach(\n (selectRef) =>\n (selectRef.selected = (value as string[]).includes(\n selectRef.value,\n )),\n );\n } else if (isCheckBoxInput(ref) && options) {\n options.length > 1\n ? options.forEach(\n ({ ref: checkboxRef }) =>\n (checkboxRef.checked = Array.isArray(value)\n ? !!(value as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : value === checkboxRef.value),\n )\n : (options[0].ref.checked = !!value);\n } else {\n ref.value = value;\n }\n },\n [],\n );\n\n const isFormDirty = React.useCallback(\n (name?: string, data?: unknown[]): boolean => {\n if (readFormStateRef.current.isDirty) {\n const formValues = getValues();\n\n name && data && set(formValues, name, data);\n\n return !deepEqual(formValues, defaultValuesRef.current);\n }\n\n return false;\n },\n [],\n );\n\n const updateAndGetDirtyState = React.useCallback(\n (\n name: InternalFieldName<TFieldValues>,\n shouldRender = true,\n ): Partial<\n Pick<FormState<TFieldValues>, 'dirtyFields' | 'isDirty' | 'touched'>\n > => {\n if (\n readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields\n ) {\n const isFieldDirty = !deepEqual(\n get(defaultValuesRef.current, name),\n getFieldValue(fieldsRef, name, shallowFieldsStateRef),\n );\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\n const previousIsDirty = formStateRef.current.isDirty;\n\n isFieldDirty\n ? set(formStateRef.current.dirtyFields, name, true)\n : unset(formStateRef.current.dirtyFields, name);\n\n const state = {\n isDirty: isFormDirty(),\n dirtyFields: formStateRef.current.dirtyFields,\n };\n\n const isChanged =\n (readFormStateRef.current.isDirty &&\n previousIsDirty !== state.isDirty) ||\n (readFormStateRef.current.dirtyFields &&\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\n\n isChanged && shouldRender && updateFormState(state);\n\n return isChanged ? state : {};\n }\n\n return {};\n },\n [],\n );\n\n const executeValidation = React.useCallback(\n async (\n name: InternalFieldName<TFieldValues>,\n skipReRender?: boolean | null,\n ): Promise<boolean> => {\n if (process.env.NODE_ENV !== 'production') {\n if (!fieldsRef.current[name]) {\n console.warn('📋 Field is missing with `name` attribute: ', name);\n return false;\n }\n }\n\n const error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n fieldsRef.current[name] as Field,\n shallowFieldsStateRef,\n )\n )[name];\n\n shouldRenderBaseOnError(name, error, skipReRender);\n\n return isUndefined(error);\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const executeSchemaOrResolverValidation = React.useCallback(\n async (\n names:\n | InternalFieldName<TFieldValues>\n | InternalFieldName<TFieldValues>[],\n ) => {\n const { errors } = await resolverRef.current!(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n\n if (Array.isArray(names)) {\n const isInputsValid = names\n .map((name) => {\n const error = get(errors, name);\n\n error\n ? set(formStateRef.current.errors, name, error)\n : unset(formStateRef.current.errors, name);\n\n return !error;\n })\n .every(Boolean);\n\n updateFormState({\n isValid: isEmptyObject(errors),\n isValidating: false,\n });\n\n return isInputsValid;\n } else {\n const error = get(errors, names);\n\n shouldRenderBaseOnError(\n names,\n error,\n previousFormIsValid !== isEmptyObject(errors),\n {},\n isEmptyObject(errors),\n );\n\n return !error;\n }\n },\n [shouldRenderBaseOnError, isValidateAllFieldCriteria],\n );\n\n const trigger = React.useCallback(\n async (\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): Promise<boolean> => {\n const fields = name || Object.keys(fieldsRef.current);\n\n updateIsValidating();\n\n if (resolverRef.current) {\n return executeSchemaOrResolverValidation(fields);\n }\n\n if (Array.isArray(fields)) {\n !name && (formStateRef.current.errors = {});\n const result = await Promise.all(\n fields.map(async (data) => await executeValidation(data, null)),\n );\n updateFormState({\n isValidating: false,\n });\n return result.every(Boolean);\n }\n\n return await executeValidation(fields);\n },\n [executeSchemaOrResolverValidation, executeValidation],\n );\n\n const setInternalValues = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n { shouldDirty, shouldValidate }: SetValueConfig,\n ) => {\n const data = {};\n set(data, name, value);\n\n for (const fieldName of getPath(name, value)) {\n if (fieldsRef.current[fieldName]) {\n setFieldValue(fieldName, get(data, fieldName));\n shouldDirty && updateAndGetDirtyState(fieldName);\n shouldValidate && trigger(fieldName as FieldName<TFieldValues>);\n }\n }\n },\n [trigger, setFieldValue, updateAndGetDirtyState],\n );\n\n const setInternalValue = React.useCallback(\n (\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config: SetValueConfig,\n ) => {\n !shouldUnregister &&\n !isPrimitive(value) &&\n set(\n shallowFieldsStateRef.current,\n name,\n Array.isArray(value) ? [...value] : { ...value },\n );\n\n if (fieldsRef.current[name]) {\n setFieldValue(name, value);\n config.shouldDirty && updateAndGetDirtyState(name);\n config.shouldValidate && trigger(name as any);\n } else if (!isPrimitive(value)) {\n setInternalValues(name, value, config);\n\n if (fieldArrayNamesRef.current.has(name)) {\n const parentName = getNodeParentName(name) || name;\n set(fieldArrayDefaultValuesRef.current, name, value);\n\n resetFieldArrayFunctionRef.current[parentName]({\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\n } as UnpackNestedValue<DeepPartial<TFieldValues>>);\n\n if (\n (readFormStateRef.current.isDirty ||\n readFormStateRef.current.dirtyFields) &&\n config.shouldDirty\n ) {\n set(\n formStateRef.current.dirtyFields,\n name,\n setFieldArrayDirtyFields(\n value,\n get(defaultValuesRef.current, name, []),\n get(formStateRef.current.dirtyFields, name, []),\n ),\n );\n\n updateFormState({\n isDirty: !deepEqual(\n { ...getValues(), [name]: value },\n defaultValuesRef.current,\n ),\n });\n }\n }\n }\n\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\n },\n [updateAndGetDirtyState, setFieldValue, setInternalValues],\n );\n\n const isFieldWatched = <T extends FieldName<TFieldValues>>(name: T) =>\n isWatchAllRef.current ||\n watchFieldsRef.current.has(name) ||\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\n\n const renderWatchedInputs = <T extends FieldName<FieldValues>>(\n name: T,\n ): boolean => {\n let found = true;\n\n if (!isEmptyObject(useWatchFieldsRef.current)) {\n for (const key in useWatchFieldsRef.current) {\n if (\n !name ||\n !useWatchFieldsRef.current[key].size ||\n useWatchFieldsRef.current[key].has(name) ||\n useWatchFieldsRef.current[key].has(getNodeParentName(name))\n ) {\n useWatchRenderFunctionsRef.current[key]();\n found = false;\n }\n }\n }\n\n return found;\n };\n\n function setValue(\n name: FieldName<TFieldValues>,\n value: SetFieldValue<TFieldValues>,\n config?: SetValueConfig,\n ): void {\n setInternalValue(name, value, config || {});\n isFieldWatched(name) && updateFormState();\n renderWatchedInputs(name);\n }\n\n handleChangeRef.current = handleChangeRef.current\n ? handleChangeRef.current\n : async ({ type, target }: Event): Promise<void | boolean> => {\n let name = (target as Ref)!.name;\n const field = fieldsRef.current[name];\n let error;\n let isValid;\n\n if (field) {\n const isBlurEvent = type === EVENTS.BLUR;\n const shouldSkipValidation = skipValidation({\n isBlurEvent,\n isReValidateOnChange,\n isReValidateOnBlur,\n isTouched: !!get(formStateRef.current.touched, name),\n isSubmitted: formStateRef.current.isSubmitted,\n ...modeRef.current,\n });\n let state = updateAndGetDirtyState(name, false);\n let shouldRender =\n !isEmptyObject(state) ||\n (!isBlurEvent && isFieldWatched(name as FieldName<TFieldValues>));\n\n if (\n isBlurEvent &&\n !get(formStateRef.current.touched, name) &&\n readFormStateRef.current.touched\n ) {\n set(formStateRef.current.touched, name, true);\n state = {\n ...state,\n touched: formStateRef.current.touched,\n };\n }\n\n if (!shouldUnregister && isCheckBoxInput(target as Ref)) {\n set(\n shallowFieldsStateRef.current,\n name,\n getFieldValue(fieldsRef, name),\n );\n }\n\n if (shouldSkipValidation) {\n !isBlurEvent && renderWatchedInputs(name);\n return (\n (!isEmptyObject(state) ||\n (shouldRender && isEmptyObject(state))) &&\n updateFormState(state)\n );\n }\n\n updateIsValidating();\n\n if (resolverRef.current) {\n const { errors } = await resolverRef.current(\n getValues(),\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n const previousFormIsValid = formStateRef.current.isValid;\n error = get(errors, name);\n\n if (\n isCheckBoxInput(target as Ref) &&\n !error &&\n resolverRef.current\n ) {\n const parentNodeName = getNodeParentName(name);\n const currentError = get(errors, parentNodeName, {});\n currentError.type &&\n currentError.message &&\n (error = currentError);\n\n if (\n parentNodeName &&\n (currentError ||\n get(formStateRef.current.errors, parentNodeName))\n ) {\n name = parentNodeName;\n }\n }\n\n isValid = isEmptyObject(errors);\n\n previousFormIsValid !== isValid && (shouldRender = true);\n } else {\n error = (\n await validateField<TFieldValues>(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n )\n )[name];\n }\n\n !isBlurEvent && renderWatchedInputs(name);\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\n }\n };\n\n function setFieldArrayDefaultValues<T extends FieldValues>(data: T): T {\n if (!shouldUnregister) {\n let copy = cloneObject(data);\n\n for (const value of fieldArrayNamesRef.current) {\n if (isKey(value) && !copy[value]) {\n copy = {\n ...copy,\n [value]: [],\n };\n }\n }\n\n return copy;\n }\n return data;\n }\n\n function getValues(): UnpackNestedValue<TFieldValues>;\n function getValues<TFieldName extends string, TFieldValue extends unknown>(\n name: TFieldName,\n ): TFieldName extends keyof TFieldValues\n ? UnpackNestedValue<TFieldValues>[TFieldName]\n : TFieldValue;\n function getValues<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function getValues(payload?: string | string[]): unknown {\n if (isString(payload)) {\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\n }\n\n if (Array.isArray(payload)) {\n const data = {};\n\n for (const name of payload) {\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\n }\n\n return data;\n }\n\n return setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n ),\n );\n }\n\n const validateResolver = React.useCallback(\n async (values = {}) => {\n const newDefaultValues = isEmptyObject(fieldsRef.current)\n ? defaultValuesRef.current\n : {};\n\n const { errors } =\n (await resolverRef.current!(\n {\n ...newDefaultValues,\n ...getValues(),\n ...values,\n },\n contextRef.current,\n isValidateAllFieldCriteria,\n )) || {};\n const isValid = isEmptyObject(errors);\n\n formStateRef.current.isValid !== isValid &&\n updateFormState({\n isValid,\n });\n },\n [isValidateAllFieldCriteria],\n );\n\n const removeFieldEventListener = React.useCallback(\n (field: Field, forceDelete?: boolean) => {\n findRemovedFieldAndRemoveListener(\n fieldsRef,\n handleChangeRef.current!,\n field,\n shallowFieldsStateRef,\n shouldUnregister,\n forceDelete,\n );\n\n if (shouldUnregister) {\n unset(validFieldsRef.current, field.ref.name);\n unset(fieldsWithValidationRef.current, field.ref.name);\n }\n },\n [shouldUnregister],\n );\n\n const updateWatchedValue = React.useCallback((name: string) => {\n if (isWatchAllRef.current) {\n updateFormState();\n } else {\n for (const watchField of watchFieldsRef.current) {\n if (watchField.startsWith(name)) {\n updateFormState();\n break;\n }\n }\n\n renderWatchedInputs(name);\n }\n }, []);\n\n const removeFieldEventListenerAndRef = React.useCallback(\n (field?: Field, forceDelete?: boolean) => {\n if (field) {\n removeFieldEventListener(field, forceDelete);\n\n if (shouldUnregister && !compact(field.options || []).length) {\n unset(formStateRef.current.errors, field.ref.name);\n set(formStateRef.current.dirtyFields, field.ref.name, true);\n\n updateFormState({\n isDirty: isFormDirty(),\n });\n\n readFormStateRef.current.isValid &&\n resolverRef.current &&\n validateResolver();\n updateWatchedValue(field.ref.name);\n }\n }\n },\n [validateResolver, removeFieldEventListener],\n );\n\n function clearErrors(\n name?: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n name &&\n (Array.isArray(name) ? name : [name]).forEach((inputName) =>\n fieldsRef.current[inputName] && isKey(inputName)\n ? delete formStateRef.current.errors[inputName]\n : unset(formStateRef.current.errors, inputName),\n );\n\n updateFormState({\n errors: name ? formStateRef.current.errors : {},\n });\n }\n\n function setError(name: FieldName<TFieldValues>, error: ErrorOption) {\n const ref = (fieldsRef.current[name] || {})!.ref;\n\n set(formStateRef.current.errors, name, {\n ...error,\n ref,\n });\n\n updateFormState({\n isValid: false,\n });\n\n error.shouldFocus && ref && ref.focus && ref.focus();\n }\n\n const watchInternal = React.useCallback(\n <T>(fieldNames?: string | string[], defaultValue?: T, watchId?: string) => {\n const watchFields = watchId\n ? useWatchFieldsRef.current[watchId]\n : watchFieldsRef.current;\n let fieldValues = getFieldsValues<TFieldValues>(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n false,\n fieldNames,\n );\n\n if (isString(fieldNames)) {\n const parentNodeName = getNodeParentName(fieldNames) || fieldNames;\n\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\n fieldValues = {\n ...fieldArrayValuesRef.current,\n ...fieldValues,\n };\n }\n\n return assignWatchFields<TFieldValues>(\n fieldValues,\n fieldNames,\n watchFields,\n isUndefined(get(defaultValuesRef.current, fieldNames))\n ? defaultValue\n : get(defaultValuesRef.current, fieldNames),\n true,\n );\n }\n\n const combinedDefaultValues = isUndefined(defaultValue)\n ? defaultValuesRef.current\n : defaultValue;\n\n if (Array.isArray(fieldNames)) {\n return fieldNames.reduce(\n (previous, name) => ({\n ...previous,\n [name]: assignWatchFields<TFieldValues>(\n fieldValues,\n name,\n watchFields,\n combinedDefaultValues as UnpackNestedValue<\n DeepPartial<TFieldValues>\n >,\n ),\n }),\n {},\n );\n }\n\n isWatchAllRef.current = isUndefined(watchId);\n\n return transformToNestObject(\n (!isEmptyObject(fieldValues) && fieldValues) ||\n (combinedDefaultValues as FieldValues),\n );\n },\n [],\n );\n\n function watch(): UnpackNestedValue<TFieldValues>;\n function watch<\n TFieldName extends string,\n TFieldValue extends TFieldValues[TFieldName]\n >(\n name?: TFieldName,\n defaultValue?: UnpackNestedValue<LiteralToPrimitive<TFieldValue>>,\n ): UnpackNestedValue<LiteralToPrimitive<TFieldValue>>;\n function watch<TFieldName extends keyof TFieldValues>(\n names: TFieldName[],\n defaultValues?: UnpackNestedValue<\n DeepPartial<Pick<TFieldValues, TFieldName>>\n >,\n ): UnpackNestedValue<Pick<TFieldValues, TFieldName>>;\n function watch(\n names: string[],\n defaultValues?: UnpackNestedValue<DeepPartial<TFieldValues>>,\n ): UnpackNestedValue<DeepPartial<TFieldValues>>;\n function watch(\n fieldNames?: string | string[] | undefined,\n defaultValue?: unknown,\n ): unknown {\n return watchInternal(fieldNames, defaultValue);\n }\n\n function unregister(\n name: FieldName<TFieldValues> | FieldName<TFieldValues>[],\n ): void {\n for (const fieldName of Array.isArray(name) ? name : [name]) {\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\n }\n }\n\n function registerFieldRef<TFieldElement extends FieldElement<TFieldValues>>(\n ref: TFieldElement & Ref,\n options: RegisterOptions | null = {},\n ): ((name: InternalFieldName<TFieldValues>) => void) | void {\n if (process.env.NODE_ENV !== 'production') {\n if (!ref.name) {\n return console.warn(\n '📋 Field is missing `name` attribute',\n ref,\n `https://react-hook-form.com/api#useForm`,\n );\n }\n\n if (\n fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\n !RegExp(\n `^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\n .replace(/\\[/g, '\\\\[')\n .replace(/\\]/g, '\\\\]'),\n ).test(ref.name)\n ) {\n return console.warn(\n '📋 `name` prop should be in object shape: name=\"test[index].name\"',\n ref,\n 'https://react-hook-form.com/api#useFieldArray',\n );\n }\n }\n\n const { name, type, value } = ref;\n const fieldRefAndValidationOptions = {\n ref,\n ...options,\n };\n const fields = fieldsRef.current;\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\n const compareRef = (currentRef: Ref) =>\n isWeb && (!isHTMLElement(ref) || currentRef === ref);\n let field = fields[name] as Field;\n let isEmptyDefaultValue = true;\n let defaultValue;\n\n if (\n field &&\n (isRadioOrCheckbox\n ? Array.isArray(field.options) &&\n compact(field.options).find((option) => {\n return value === option.ref.value && compareRef(option.ref);\n })\n : compareRef(field.ref))\n ) {\n fields[name] = {\n ...field,\n ...options,\n };\n return;\n }\n\n if (type) {\n field = isRadioOrCheckbox\n ? {\n options: [\n ...compact((field && field.options) || []),\n {\n ref,\n } as RadioOrCheckboxOption,\n ],\n ref: { type, name },\n ...options,\n }\n : {\n ...fieldRefAndValidationOptions,\n };\n } else {\n field = fieldRefAndValidationOptions;\n }\n\n fields[name] = field;\n\n const isEmptyUnmountFields = isUndefined(\n get(shallowFieldsStateRef.current, name),\n );\n\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\n defaultValue = get(\n isEmptyUnmountFields\n ? defaultValuesRef.current\n : shallowFieldsStateRef.current,\n name,\n );\n isEmptyDefaultValue = isUndefined(defaultValue);\n\n if (!isEmptyDefaultValue && !isFieldArray) {\n setFieldValue(name as FieldName<TFieldValues>, defaultValue);\n }\n }\n\n if (!isEmptyObject(options)) {\n set(fieldsWithValidationRef.current, name, true);\n\n if (!isOnSubmit && readFormStateRef.current.isValid) {\n validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n ).then((error: FieldErrors) => {\n const previousFormIsValid = formStateRef.current.isValid;\n\n isEmptyObject(error)\n ? set(validFieldsRef.current, name, true)\n : unset(validFieldsRef.current, name);\n\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\n });\n }\n }\n\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\n }\n\n if (type) {\n attachEventListeners(\n isRadioOrCheckbox && field.options\n ? field.options[field.options.length - 1]\n : field,\n isRadioOrCheckbox || isSelectInput(ref),\n handleChangeRef.current,\n );\n }\n }\n\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n options?: RegisterOptions,\n ): (ref: (TFieldElement & Ref) | null) => void;\n function register(\n name: FieldName<TFieldValues>,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n ref: (TFieldElement & Ref) | null,\n options?: RegisterOptions,\n ): void;\n function register<TFieldElement extends FieldElement<TFieldValues>>(\n refOrRegisterOptions?:\n | FieldName<TFieldValues>\n | RegisterOptions\n | (TFieldElement & Ref)\n | null,\n options?: RegisterOptions,\n ): ((ref: (TFieldElement & Ref) | null) => void) | void {\n if (!isWindowUndefined) {\n if (isString(refOrRegisterOptions)) {\n registerFieldRef({ name: refOrRegisterOptions }, options);\n } else if (\n isObject(refOrRegisterOptions) &&\n 'name' in refOrRegisterOptions\n ) {\n registerFieldRef(refOrRegisterOptions, options);\n } else {\n return (ref: (TFieldElement & Ref) | null) =>\n ref && registerFieldRef(ref, refOrRegisterOptions);\n }\n }\n }\n\n const handleSubmit = React.useCallback(\n <TSubmitFieldValues extends FieldValues = TFieldValues>(\n onValid: SubmitHandler<TSubmitFieldValues>,\n onInvalid?: SubmitErrorHandler<TFieldValues>,\n ) => async (e?: React.BaseSyntheticEvent): Promise<void> => {\n if (e && e.preventDefault) {\n e.preventDefault();\n e.persist();\n }\n let fieldErrors: FieldErrors<TFieldValues> = {};\n let fieldValues = setFieldArrayDefaultValues(\n getFieldsValues(\n fieldsRef,\n cloneObject(shallowFieldsStateRef.current),\n shouldUnregister,\n true,\n ),\n );\n\n readFormStateRef.current.isSubmitting &&\n updateFormState({\n isSubmitting: true,\n });\n\n try {\n if (resolverRef.current) {\n const { errors, values } = await resolverRef.current(\n fieldValues,\n contextRef.current,\n isValidateAllFieldCriteria,\n );\n formStateRef.current.errors = fieldErrors = errors;\n fieldValues = values;\n } else {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { name } = field.ref;\n\n const fieldError = await validateField(\n fieldsRef,\n isValidateAllFieldCriteria,\n field,\n shallowFieldsStateRef,\n );\n\n if (fieldError[name]) {\n set(fieldErrors, name, fieldError[name]);\n unset(validFieldsRef.current, name);\n } else if (get(fieldsWithValidationRef.current, name)) {\n unset(formStateRef.current.errors, name);\n set(validFieldsRef.current, name, true);\n }\n }\n }\n }\n\n if (\n isEmptyObject(fieldErrors) &&\n Object.keys(formStateRef.current.errors).every(\n (name) => name in fieldsRef.current,\n )\n ) {\n updateFormState({\n errors: {},\n isSubmitting: true,\n });\n await onValid(fieldValues, e);\n } else {\n formStateRef.current.errors = {\n ...formStateRef.current.errors,\n ...fieldErrors,\n };\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\n shouldFocusError &&\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\n }\n } finally {\n formStateRef.current.isSubmitting = false;\n updateFormState({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\n submitCount: formStateRef.current.submitCount + 1,\n });\n }\n },\n [shouldFocusError, isValidateAllFieldCriteria],\n );\n\n const resetRefs = ({\n errors,\n isDirty,\n isSubmitted,\n touched,\n isValid,\n submitCount,\n dirtyFields,\n }: OmitResetState) => {\n if (!isValid) {\n validFieldsRef.current = {};\n fieldsWithValidationRef.current = {};\n }\n\n fieldArrayDefaultValuesRef.current = {};\n watchFieldsRef.current = new Set();\n isWatchAllRef.current = false;\n\n updateFormState({\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\n isDirty: isDirty ? formStateRef.current.isDirty : false,\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\n isValid: isValid ? formStateRef.current.isValid : false,\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\n touched: touched ? formStateRef.current.touched : {},\n errors: errors ? formStateRef.current.errors : {},\n isSubmitting: false,\n isSubmitSuccessful: false,\n });\n };\n\n const reset = (\n values?: DefaultValues<TFieldValues>,\n omitResetState: OmitResetState = {},\n ): void => {\n if (isWeb) {\n for (const field of Object.values(fieldsRef.current)) {\n if (field) {\n const { ref, options } = field;\n const inputRef =\n isRadioOrCheckboxFunction(ref) && Array.isArray(options)\n ? options[0].ref\n : ref;\n\n if (isHTMLElement(inputRef)) {\n try {\n inputRef.closest('form')!.reset();\n break;\n } catch {}\n }\n }\n }\n }\n\n fieldsRef.current = {};\n defaultValuesRef.current = { ...(values || defaultValuesRef.current) };\n values && renderWatchedInputs('');\n\n Object.values(resetFieldArrayFunctionRef.current).forEach(\n (resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray(),\n );\n\n shallowFieldsStateRef.current = shouldUnregister\n ? {}\n : cloneObject(values || defaultValuesRef.current);\n\n resetRefs(omitResetState);\n };\n\n React.useEffect(() => {\n resolver && readFormStateRef.current.isValid && validateResolver();\n observerRef.current =\n observerRef.current || !isWeb\n ? observerRef.current\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\n\n React.useEffect(\n () => () => {\n observerRef.current && observerRef.current.disconnect();\n isUnMount.current = true;\n\n if (process.env.NODE_ENV !== 'production') {\n return;\n }\n\n Object.values(fieldsRef.current).forEach((field) =>\n removeFieldEventListenerAndRef(field, true),\n );\n },\n [],\n );\n\n if (!resolver && readFormStateRef.current.isValid) {\n formState.isValid =\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\n isEmptyObject(formStateRef.current.errors);\n }\n\n const commonProps = {\n trigger,\n setValue: React.useCallback(setValue, [setInternalValue, trigger]),\n getValues: React.useCallback(getValues, []),\n register: React.useCallback(register, [defaultValuesRef.current]),\n unregister: React.useCallback(unregister, []),\n formState: isProxyEnabled\n ? new Proxy(formState, {\n get: (obj, prop: keyof FormStateProxy) => {\n if (process.env.NODE_ENV !== 'production') {\n if (prop === 'isValid' && isOnSubmit) {\n console.warn(\n '📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState',\n );\n }\n }\n\n if (prop in obj) {\n readFormStateRef.current[prop] = true;\n return obj[prop];\n }\n\n return undefined;\n },\n })\n : formState,\n };\n\n const control = React.useMemo(\n () => ({\n isFormDirty,\n updateWatchedValue,\n shouldUnregister,\n updateFormState,\n removeFieldEventListener,\n watchInternal,\n mode: modeRef.current,\n reValidateMode: {\n isReValidateOnBlur,\n isReValidateOnChange,\n },\n validateResolver: resolver ? validateResolver : undefined,\n fieldsRef,\n resetFieldArrayFunctionRef,\n useWatchFieldsRef,\n useWatchRenderFunctionsRef,\n fieldArrayDefaultValuesRef,\n validFieldsRef,\n fieldsWithValidationRef,\n fieldArrayNamesRef,\n readFormStateRef,\n formStateRef,\n defaultValuesRef,\n shallowFieldsStateRef,\n fieldArrayValuesRef,\n ...commonProps,\n }),\n [\n defaultValuesRef.current,\n updateWatchedValue,\n shouldUnregister,\n removeFieldEventListener,\n watchInternal,\n ],\n );\n\n return {\n watch,\n control,\n handleSubmit,\n reset: React.useCallback(reset, []),\n clearErrors: React.useCallback(clearErrors, []),\n setError: React.useCallback(setError, []),\n errors: formState.errors,\n ...commonProps,\n };\n}\n","import * as React from 'react';\nimport { UseFormMethods, FieldValues, FormProviderProps } from './types';\n\nconst FormContext = React.createContext<UseFormMethods | null>(null);\n\nFormContext.displayName = 'RHFContext';\n\nexport const useFormContext = <\n TFieldValues extends FieldValues\n>(): UseFormMethods<TFieldValues> =>\n React.useContext(FormContext) as UseFormMethods<TFieldValues>;\n\nexport const FormProvider = <TFieldValues extends FieldValues>({\n children,\n ...props\n}: FormProviderProps<TFieldValues>) => (\n <FormContext.Provider value={{ ...props } as UseFormMethods}>\n {children}\n </FormContext.Provider>\n);\n","import { useFormContext } from './useFormContext';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport isUndefined from './utils/isUndefined';\nimport get from './utils/get';\nimport * as React from 'react';\nimport isFunction from './utils/isFunction';\nimport skipValidation from './logic/skipValidation';\nimport getInputValue from './logic/getInputValue';\nimport set from './utils/set';\nimport {\n FieldValues,\n UseControllerOptions,\n UseControllerMethods,\n} from './types';\n\nexport function useController<TFieldValues extends FieldValues = FieldValues>({\n name,\n rules,\n defaultValue,\n control,\n onFocus,\n}: UseControllerOptions<TFieldValues>): UseControllerMethods<TFieldValues> {\n const methods = useFormContext<TFieldValues>();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!control && !methods) {\n throw new Error(\n '📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n const {\n defaultValuesRef,\n setValue,\n register,\n unregister,\n trigger,\n mode,\n reValidateMode: { isReValidateOnBlur, isReValidateOnChange },\n formState,\n formStateRef: {\n current: { isSubmitted, touched, errors },\n },\n updateFormState,\n readFormStateRef,\n fieldsRef,\n fieldArrayNamesRef,\n shallowFieldsStateRef,\n } = control || methods.control;\n\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\n const getInitialValue = () =>\n !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\n ? get(shallowFieldsStateRef.current, name)\n : isUndefined(defaultValue)\n ? get(defaultValuesRef.current, name)\n : defaultValue;\n const [value, setInputStateValue] = React.useState(getInitialValue());\n const valueRef = React.useRef(value);\n const ref = React.useRef({\n focus: () => null,\n });\n const onFocusRef = React.useRef(\n onFocus ||\n (() => {\n if (isFunction(ref.current.focus)) {\n ref.current.focus();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isFunction(ref.current.focus)) {\n console.warn(\n `📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`,\n );\n }\n }\n }),\n );\n\n const shouldValidate = React.useCallback(\n (isBlurEvent?: boolean) =>\n !skipValidation({\n isBlurEvent,\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n isTouched: !!get(touched, name),\n ...mode,\n }),\n [\n isReValidateOnBlur,\n isReValidateOnChange,\n isSubmitted,\n touched,\n name,\n mode,\n ],\n );\n\n const commonTask = React.useCallback(([event]: any[]) => {\n const data = getInputValue(event);\n setInputStateValue(data);\n valueRef.current = data;\n return data;\n }, []);\n\n const registerField = React.useCallback(\n (shouldUpdateValue?: boolean) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n return console.warn(\n '📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n if (fieldsRef.current[name]) {\n fieldsRef.current[name] = {\n ref: fieldsRef.current[name]!.ref,\n ...rules,\n };\n } else {\n register(\n Object.defineProperties(\n {\n name,\n focus: onFocusRef.current,\n },\n {\n value: {\n set(data) {\n setInputStateValue(data);\n valueRef.current = data;\n },\n get() {\n return valueRef.current;\n },\n },\n },\n ),\n rules,\n );\n\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\n }\n\n shouldUpdateValue &&\n isNotFieldArray &&\n setInputStateValue(getInitialValue());\n },\n [rules, name, register],\n );\n\n React.useEffect(() => () => unregister(name), [name]);\n\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n if (isUndefined(value)) {\n console.warn(\n `📋 ${name} is missing in the 'defaultValue' prop of either its Controller (https://react-hook-form.com/api#Controller) or useForm (https://react-hook-form.com/api#useForm)`,\n );\n }\n\n if (!isNotFieldArray && isUndefined(defaultValue)) {\n console.warn(\n '📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller',\n );\n }\n }\n\n registerField();\n }, [registerField]);\n\n React.useEffect(() => {\n !fieldsRef.current[name] && registerField(true);\n });\n\n const onBlur = React.useCallback(() => {\n if (readFormStateRef.current.touched && !get(touched, name)) {\n set(touched, name, true);\n updateFormState({\n touched,\n });\n }\n\n shouldValidate(true) && trigger(name);\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\n\n const onChange = React.useCallback(\n (...event: any[]) =>\n setValue(name, commonTask(event), {\n shouldValidate: shouldValidate(),\n shouldDirty: true,\n }),\n [setValue, name, shouldValidate],\n );\n\n return {\n field: {\n onChange,\n onBlur,\n name,\n value,\n ref,\n },\n meta: Object.defineProperties(\n {\n invalid: !!get(errors, name),\n },\n {\n isDirty: {\n get() {\n return !!get(formState.dirtyFields, name);\n },\n },\n isTouched: {\n get() {\n return !!get(formState.touched, name);\n },\n },\n },\n ),\n };\n}\n","import isUndefined from '../utils/isUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\n\nexport default (event: any) =>\n isPrimitive(event) ||\n !isObject(event.target) ||\n (isObject(event.target) && !event.type)\n ? event\n : isUndefined(event.target.value)\n ? event.target.checked\n : event.target.value;\n","import * as React from 'react';\nimport { useController } from './useController';\nimport { ControllerProps, FieldValues } from './types';\n\ntype NativeInputs = 'input' | 'select' | 'textarea';\n\nconst Controller = <\n TAs extends React.ReactElement | React.ComponentType<any> | NativeInputs,\n TFieldValues extends FieldValues = FieldValues\n>(\n props: ControllerProps<TAs, TFieldValues>,\n) => {\n const { rules, as, render, defaultValue, control, onFocus, ...rest } = props;\n const { field, meta } = useController(props);\n\n const componentProps = {\n ...rest,\n ...field,\n };\n\n return as\n ? React.isValidElement(as)\n ? React.cloneElement(as, componentProps)\n : React.createElement(as as NativeInputs, componentProps as any)\n : render\n ? render(field, meta)\n : null;\n};\n\nexport { Controller };\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\"\n}), 'Public');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\"\n}), 'Send');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\"\n}), 'Storage');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\"\n}), 'SubdirectoryArrowRight');\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z\"\n}), 'Details');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"\n}), 'InfoOutlined');\n\nexports.default = _default;","export var COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If <input webkitdirectory> is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n return f;\n}\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n var ext = name.split('.')\n .pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\n//# sourceMappingURL=file.js.map","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store',\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isObject(evt) && isDataTransfer(evt)) {\n return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];\n }\n else if (isChangeEvt(evt)) {\n return [2 /*return*/, getInputFiles(evt)];\n }\n else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {\n return [2 /*return*/, getFsHandleFiles(evt)];\n }\n return [2 /*return*/, []];\n });\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value.dataTransfer);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function () {\n var files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];\n }\n });\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (dt === null) {\n return [2 /*return*/, []];\n }\n if (!dt.items) return [3 /*break*/, 2];\n items = fromList(dt.items)\n .filter(function (item) { return item.kind === 'file'; });\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return [2 /*return*/, items];\n }\n return [4 /*yield*/, Promise.all(items.map(toFilePromises))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, noIgnoredFiles(flatten(files))];\n case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)\n .map(function (file) { return toFileWithPath(file); }))];\n }\n });\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n var files = [];\n // tslint:disable: prefer-for-of\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n var entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item);\n}\nfunction flatten(items) {\n return items.reduce(function (acc, files) { return __spread(acc, (Array.isArray(files) ? flatten(files) : [files])); }, []);\n}\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n function readEntries() {\n var _this = this;\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(entries)];\n case 2:\n files = _a.sent();\n resolve(files);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, function (err) {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files';\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? 'byte' : 'bytes')\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return 'showOpenFilePicker' in window;\n}\n/**\n * filePickerOptionsTypes returns the {types} option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n * based on the accept attr (see https://github.com/react-dropzone/attr-accept)\n * E.g: converts ['image/*', 'text/*'] to {'image/*': [], 'text/*': []}\n * @param {string|string[]} accept\n */\n\nexport function filePickerOptionsTypes(accept) {\n accept = typeof accept === 'string' ? accept.split(',') : accept;\n return [{\n description: 'everything',\n // TODO: Need to handle filtering more elegantly than this!\n accept: Array.isArray(accept) // Accept just MIME types as per spec\n // NOTE: accept can be https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers\n ? accept.filter(function (item) {\n return item === 'audio/*' || item === 'video/*' || item === 'image/*' || item === 'text/*' || /\\w+\\/[-+.\\w]+/g.test(item);\n }).reduce(function (a, b) {\n return _objectSpread(_objectSpread({}, a), {}, _defineProperty({}, b, []));\n }, {}) : {}\n }];\n}","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, filePickerOptionsTypes, canUseFileSystemAccessAPI, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * <Dropzone>\n * {({getRootProps, getInputProps}) => (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag 'n' drop some files here, or click to select files</p>\n * </div>\n * )}\n * </Dropzone>\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone'; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Custom validation function\n * @param {File} file\n * @returns {FileError|FileError[]}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise<File[]>)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n * <div {...getRootProps()}>\n * <input {...getInputProps()} />\n * <p>Drag and drop some files here, or click to select files</p>\n * </div>\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$options = _objectSpread(_objectSpread({}, defaultProps), options),\n accept = _defaultProps$options.accept,\n disabled = _defaultProps$options.disabled,\n getFilesFromEvent = _defaultProps$options.getFilesFromEvent,\n maxSize = _defaultProps$options.maxSize,\n minSize = _defaultProps$options.minSize,\n multiple = _defaultProps$options.multiple,\n maxFiles = _defaultProps$options.maxFiles,\n onDragEnter = _defaultProps$options.onDragEnter,\n onDragLeave = _defaultProps$options.onDragLeave,\n onDragOver = _defaultProps$options.onDragOver,\n onDrop = _defaultProps$options.onDrop,\n onDropAccepted = _defaultProps$options.onDropAccepted,\n onDropRejected = _defaultProps$options.onDropRejected,\n onFileDialogCancel = _defaultProps$options.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$options.onFileDialogOpen,\n useFsAccessApi = _defaultProps$options.useFsAccessApi,\n preventDropOnDocument = _defaultProps$options.preventDropOnDocument,\n noClick = _defaultProps$options.noClick,\n noKeyboard = _defaultProps$options.noKeyboard,\n noDrag = _defaultProps$options.noDrag,\n noDragEventsBubbling = _defaultProps$options.noDragEventsBubbling,\n validator = _defaultProps$options.validator;\n\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === 'function' ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === 'function' ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n return function () {};\n }\n\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, useFsAccessApi]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, accept, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [getFilesFromEvent, setFiles, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (useFsAccessApi && canUseFileSystemAccessAPI()) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: filePickerOptionsTypes(accept)\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n return setFiles(files, null);\n }).catch(function (e) {\n return onFileDialogCancelCb(e);\n }).finally(function () {\n return dispatch({\n type: 'closeDialog'\n });\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, accept, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === 'string' && role !== '' ? role : 'button'\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread(_objectSpread({}, state), {}, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from './utils';","export { default } from './Tabs';","export { default } from './Tab';"],"sourceRoot":""}