{"version":3,"sources":["../node_modules/react-hook-form/dist/react-hook-form.es.js"],"names":["__webpack_require__","d","__webpack_exports__","useForm","react__WEBPACK_IMPORTED_MODULE_0__","VALIDATION_MODE","onBlur","onChange","onSubmit","UNDEFINED","EVENTS","BLUR","CHANGE","INPUT","INPUT_VALIDATION_RULES","REGEX_IS_DEEP_PROP","REGEX_IS_PLAIN_PROP","REGEX_PROP_NAME","REGEX_ESCAPE_CHAR","isUndefined","val","undefined","isNullOrUndefined","value","isArray","Array","isObjectType","isObject","isKey","test","stringToPath","string","result","replace","match","number","quote","push","set","object","path","index","tempPath","length","lastIndex","key","newValue","objValue","isNaN","transformToNestObject","data","Object","entries","reduce","previous","assign","[object Object]","removeAllEventListeners","ref","validateWithStateUpdate","removeEventListener","isRadioInput","type","isCheckBoxInput","isDetached","element","HTMLElement","nodeType","Node","DOCUMENT_NODE","parentNode","defaultReturn","isValid","getRadioValue","options","checked","getMultipleSelectValue","filter","selected","map","isFileInput","isMultipleSelect","isEmptyString","defaultResult","validResult","getCheckboxValue","values","attributes","getFieldValue","fields","name","files","field","getFieldsValues","isEmptyObject","keys","isSameError","error","message","get","obj","defaultValue","split","Boolean","isRegex","RegExp","getValueAndMessage","validationData","isPureObject","isString","isFunction","isBoolean","getValidateError","isStringValue","appendErrors","validateAllFieldCriteria","errors","types","validateField","async","fieldsRef","valueAsNumber","valueAsDate","required","maxLength","minLength","min","max","pattern","validate","current","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxValue","maxMessage","minValue","minMessage","valueNumber","parseFloat","valueDate","Date","maxLengthValue","minLengthValue","inputLength","toString","patternValue","patternMessage","fieldValue","validateRef","validateError","validateFunctions","validationResult","Promise","resolve","parseErrorSchema","inner","validateWithSchema","validationSchema","abortEarly","e","getDefaultValue","defaultValues","getPath","getInnerPath","pathWithIndex","isPrimitive","getPath$1","parentPath","flatArray","list","a","b","concat","assignWatchFields","fieldValues","fieldName","watchFields","combinedDefaultValues","forEach","add","skipValidation","hasError","isBlurEvent","isOnSubmit","isReValidateOnSubmit","isOnBlur","isReValidateOnBlur","isSubmitted","getIsFieldsDifferent","referenceArray","differenceArray","isMatch","i","dataA","dataB","isMatchFieldArrayName","searchName","startsWith","isNameInFieldArray","names","prev","__rest","s","t","p","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","propertyIsEnumerable","omitObject","_a","unsetObject","target","isArrayObject","unset","paths","modeChecker","mode","isOnChange","useRef","useState","useCallback","useEffect","reValidateMode","submitFocusError","validateCriteriaMode","errorsRef","touchedFieldsRef","watchFieldsRef","Set","dirtyFieldsRef","fieldsWithValidationRef","validFieldsRef","isValidRef","defaultRenderValuesRef","defaultValuesRef","isUnMount","isWatchAllRef","isSubmittedRef","isDirtyRef","submitCountRef","isSubmittingRef","handleChangeRef","resetFieldArrayFunctionRef","fieldArrayNamesRef","render","isWindowUndefined","window","isWeb","document","isProxyEnabled","readFormStateRef","dirty","submitCount","touched","isSubmitting","reRender","validateFieldCurry","validateFieldsSchemaCurry","renderBaseOnError","shouldRender","skipReRender","shouldReRender","validFields","fieldsWithValidation","isFieldValid","isFormValid","currentFieldError","existFieldError","has","isManual","shouldUpdateWithError","delete","setFieldValue","rawValue","radioRef","FileList","selectRef","includes","checkboxRef","setDirty","isFieldArray","isDirty","fieldArrayName","substring","isDirtyChanged","size","setInternalValue","executeValidation","executeSchemaValidation","payload","previousFormIsValid","triggerValidation","all","every","setValue","shouldValidate","currentError","shouldSkipValidation","shouldUpdateDirty","shouldUpdateState","validForm","validateSchemaIsValid","then","resetFieldRef","removeEventListenerAndRef","forceDelete","handleChange","mutationWatcher","disconnect","splice","findRemovedFieldAndRemoveListener","setInternalError","preventRender","unregister","registerFieldsRef","validateOptions","console","warn","fieldAttributes","currentField","isEmptyDefaultValue","find","onDetachCallback","observer","MutationObserver","observe","childList","subtree","onDomRemove","addEventListener","attachEventListeners","register","refOrValidationOptions","validationOptions","handleSubmit","callback","fieldErrors","preventDefault","persist","resolvedPrevious","fieldError","focus","formState","watch","fieldNames","nest","control","getValues","outputValues","reset","closest","resetFieldArray","clearError","setError","Proxy","prop"],"mappings":"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","file":"static/js/vendors~widget.89282fef.chunk.js","sourcesContent":["import * as React from 'react';\nimport { createContext, useContext, createElement, useMemo, useState as useState$1, useEffect as useEffect$1, useRef as useRef$1, isValidElement, cloneElement, Fragment } from 'react';\n\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n};\r\nconst RADIO_INPUT = 'radio';\r\nconst FILE_INPUT = 'file';\r\nconst VALUE = 'value';\r\nconst UNDEFINED = 'undefined';\r\nconst EVENTS = {\r\n BLUR: 'blur',\r\n CHANGE: 'change',\r\n INPUT: 'input',\r\n};\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\r\nconst REGEX_IS_DEEP_PROP = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\r\nconst REGEX_IS_PLAIN_PROP = /^\\w*$/;\r\nconst REGEX_PROP_NAME = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\r\nconst REGEX_ESCAPE_CHAR = /\\\\(\\\\)?/g;\n\nfunction attachEventListeners({ field, handleChange, isRadioOrCheckbox, }) {\r\n const { ref } = field;\r\n if (ref.addEventListener) {\r\n ref.addEventListener(isRadioOrCheckbox ? EVENTS.CHANGE : EVENTS.INPUT, handleChange);\r\n ref.addEventListener(EVENTS.BLUR, handleChange);\r\n }\r\n}\n\nvar isUndefined = (val) => val === undefined;\n\nvar isNullOrUndefined = (value) => value === null || isUndefined(value);\n\nvar isArray = (value) => Array.isArray(value);\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) && !isArray(value) && isObjectType(value);\n\nconst isKey = (value) => !isArray(value) &&\r\n (REGEX_IS_PLAIN_PROP.test(value) || !REGEX_IS_DEEP_PROP.test(value));\r\nconst stringToPath = (string) => {\r\n const result = [];\r\n string.replace(REGEX_PROP_NAME, (match, number, quote, string) => {\r\n result.push(quote ? string.replace(REGEX_ESCAPE_CHAR, '$1') : number || match);\r\n });\r\n return result;\r\n};\r\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || isArray(objValue)\r\n ? objValue\r\n : !isNaN(tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nvar transformToNestObject = (data) => Object.entries(data).reduce((previous, [key, value]) => {\r\n if (REGEX_IS_DEEP_PROP.test(key)) {\r\n set(previous, key, value);\r\n return previous;\r\n }\r\n return Object.assign(Object.assign({}, previous), { [key]: value });\r\n}, {});\n\nvar removeAllEventListeners = (ref, validateWithStateUpdate) => {\r\n if (ref.removeEventListener) {\r\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\r\n }\r\n};\n\nvar isRadioInput = (type) => type === RADIO_INPUT;\n\nvar isCheckBoxInput = (type) => type === 'checkbox';\n\nfunction isDetached(element) {\r\n if (!element) {\r\n return true;\r\n }\r\n if (!(element instanceof HTMLElement) ||\r\n element.nodeType === Node.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n return isDetached(element.parentNode);\r\n}\n\nfunction findRemovedFieldAndRemoveListener(fields, handleChange, field, forceDelete) {\r\n if (!field) {\r\n return;\r\n }\r\n const { ref, ref: { name, type }, mutationWatcher, } = field;\r\n if (!type) {\r\n return;\r\n }\r\n const fieldValue = fields[name];\r\n if ((isRadioInput(type) || isCheckBoxInput(type)) && fieldValue) {\r\n const { options } = fieldValue;\r\n if (isArray(options) && options.length) {\r\n options.forEach(({ ref }, index) => {\r\n if ((ref && isDetached(ref)) || forceDelete) {\r\n const mutationWatcher = ref.mutationWatcher;\r\n removeAllEventListeners(ref, handleChange);\r\n if (mutationWatcher) {\r\n mutationWatcher.disconnect();\r\n }\r\n options.splice(index, 1);\r\n }\r\n });\r\n if (options && !options.length) {\r\n delete fields[name];\r\n }\r\n }\r\n else {\r\n delete fields[name];\r\n }\r\n }\r\n else if (isDetached(ref) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n if (mutationWatcher) {\r\n mutationWatcher.disconnect();\r\n }\r\n delete fields[name];\r\n }\r\n}\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: '',\r\n};\r\nvar getRadioValue = (options) => isArray(options)\r\n ? options.reduce((previous, { ref: { checked, value } }) => checked\r\n ? {\r\n isValid: true,\r\n value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nvar getMultipleSelectValue = (options) => [...options]\r\n .filter(({ selected }) => selected)\r\n .map(({ value }) => value);\n\nvar isFileInput = (type) => type === FILE_INPUT;\n\nvar isMultipleSelect = (type) => type === 'select-multiple';\n\nvar isEmptyString = (value) => value === '';\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter(({ ref: { checked } }) => checked)\r\n .map(({ ref: { value } }) => value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n const { checked, value, attributes } = options[0].ref;\r\n return checked\r\n ? attributes && !isUndefined(attributes.value)\r\n ? isUndefined(value) || isEmptyString(value)\r\n ? validResult\r\n : { value: value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nfunction getFieldValue(fields, ref) {\r\n const { type, name, options, value, files } = ref;\r\n const field = fields[name];\r\n if (isFileInput(type)) {\r\n return files;\r\n }\r\n if (isRadioInput(type)) {\r\n return field ? getRadioValue(field.options).value : '';\r\n }\r\n if (isMultipleSelect(type)) {\r\n return getMultipleSelectValue(options);\r\n }\r\n if (isCheckBoxInput(type)) {\r\n return field ? getCheckboxValue(field.options).value : false;\r\n }\r\n return value;\r\n}\n\nvar getFieldsValues = (fields) => Object.values(fields).reduce((previous, { ref, ref: { name } }) => (Object.assign(Object.assign({}, previous), { [name]: getFieldValue(fields, ref) })), {});\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isSameError = (error, type, message) => isObject(error) && error.type === type && error.message === message;\n\nvar get = (obj, path, defaultValue) => {\r\n const result = path\r\n .split(/[,[\\].]+?/)\r\n .filter(Boolean)\r\n .reduce((result, key) => (isNullOrUndefined(result) ? result : result[key]), obj);\r\n return isUndefined(result) || result === obj\r\n ? obj[path] || defaultValue\r\n : result;\r\n};\n\nfunction shouldUpdateWithError({ errors, name, error, validFields, fieldsWithValidation, }) {\r\n const isFieldValid = isEmptyObject(error);\r\n const isFormValid = isEmptyObject(errors);\r\n const currentFieldError = get(error, name);\r\n const existFieldError = get(errors, name);\r\n if ((isFieldValid && validFields.has(name)) ||\r\n (existFieldError && existFieldError.isManual)) {\r\n return false;\r\n }\r\n if (isFormValid !== isFieldValid ||\r\n (!isFormValid && !existFieldError) ||\r\n (isFieldValid && fieldsWithValidation.has(name) && !validFields.has(name))) {\r\n return true;\r\n }\r\n return (currentFieldError &&\r\n !isSameError(existFieldError, currentFieldError.type, currentFieldError.message));\r\n}\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getValueAndMessage = (validationData) => {\r\n const isPureObject = isObject(validationData) && !isRegex(validationData);\r\n return {\r\n value: isPureObject\r\n ? validationData.value\r\n : validationData,\r\n message: isPureObject\r\n ? validationData.message\r\n : '',\r\n };\r\n};\n\nvar isString = (value) => typeof value === 'string';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n const isStringValue = isString(result);\r\n if (isStringValue || (isBoolean(result) && !result)) {\r\n const message = isStringValue ? result : '';\r\n return {\r\n type,\r\n message,\r\n ref,\r\n };\r\n }\r\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => {\r\n if (!validateAllFieldCriteria) {\r\n return {};\r\n }\r\n const error = errors[name];\r\n return Object.assign(Object.assign({}, error), { types: Object.assign(Object.assign({}, (error && error.types ? error.types : {})), { [type]: message || true }) });\r\n};\n\nvar validateField = async (fieldsRef, validateAllFieldCriteria, { ref, ref: { type, value, name, valueAsNumber, valueAsDate }, options, required, maxLength, minLength, min, max, pattern, validate, }) => {\r\n const fields = fieldsRef.current;\r\n const error = {};\r\n const isRadio = isRadioInput(type);\r\n const isCheckBox = isCheckBoxInput(type);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = isEmptyString(value);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = Object.assign({ type: exceedMax ? maxType : minType, message,\r\n ref }, (exceedMax\r\n ? appendErrorsCurry(maxType, message)\r\n : appendErrorsCurry(minType, message)));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n };\r\n if (required &&\r\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\r\n (isBoolean(value) && !value) ||\r\n (isCheckBox && !getCheckboxValue(options).isValid) ||\r\n (isRadio && !getRadioValue(options).isValid))) {\r\n const message = isString(required)\r\n ? required\r\n : getValueAndMessage(required).message;\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message, ref: isRadioOrCheckbox ? fields[name].options[0].ref : ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n if (!isNullOrUndefined(min) || !isNullOrUndefined(max)) {\r\n let exceedMax;\r\n let exceedMin;\r\n const { value: maxValue, message: maxMessage } = getValueAndMessage(max);\r\n const { value: minValue, message: minMessage } = getValueAndMessage(min);\r\n if (type === 'number' || (!type && !isNaN(value))) {\r\n const valueNumber = valueAsNumber || parseFloat(value);\r\n if (!isNullOrUndefined(maxValue)) {\r\n exceedMax = valueNumber > maxValue;\r\n }\r\n if (!isNullOrUndefined(minValue)) {\r\n exceedMin = valueNumber < minValue;\r\n }\r\n }\r\n else {\r\n const valueDate = valueAsDate || new Date(value);\r\n if (isString(maxValue)) {\r\n exceedMax = valueDate > new Date(maxValue);\r\n }\r\n if (isString(minValue)) {\r\n exceedMin = valueDate < new Date(minValue);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxMessage, minMessage, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\r\n const { value: maxLengthValue, message: maxLengthMessage, } = getValueAndMessage(maxLength);\r\n const { value: minLengthValue, message: minLengthMessage, } = getValueAndMessage(minLength);\r\n const inputLength = value.toString().length;\r\n const exceedMax = maxLength && inputLength > maxLengthValue;\r\n const exceedMin = minLength && inputLength < minLengthValue;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxLengthMessage, minLengthMessage);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty) {\r\n const { value: patternValue, message: patternMessage } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !patternValue.test(value)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message: patternMessage, ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, patternMessage));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n const fieldValue = getFieldValue(fields, ref);\r\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\r\n if (isFunction(validate)) {\r\n const result = await validate(fieldValue);\r\n const validateError = getValidateError(result, validateRef);\r\n if (validateError) {\r\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n const validateFunctions = Object.entries(validate);\r\n const validationResult = await new Promise((resolve) => {\r\n validateFunctions.reduce(async (previous, [key, validate], index) => {\r\n if ((!isEmptyObject(await previous) && !validateAllFieldCriteria) ||\r\n !isFunction(validate)) {\r\n return resolve(previous);\r\n }\r\n let result;\r\n const validateResult = await validate(fieldValue);\r\n const validateError = getValidateError(validateResult, validateRef, key);\r\n if (validateError) {\r\n result = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n if (validateAllFieldCriteria) {\r\n error[name] = result;\r\n }\r\n }\r\n else {\r\n result = previous;\r\n }\r\n return validateFunctions.length - 1 === index\r\n ? resolve(result)\r\n : result;\r\n }, {});\r\n });\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = Object.assign({ ref: validateRef }, validationResult);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n return error;\r\n};\n\nconst parseErrorSchema = (error, validateAllFieldCriteria) => isArray(error.inner)\r\n ? error.inner.reduce((previous, { path, message, type }) => (Object.assign(Object.assign({}, previous), (previous[path] && validateAllFieldCriteria\r\n ? {\r\n [path]: appendErrors(path, validateAllFieldCriteria, previous, type, message),\r\n }\r\n : {\r\n [path]: previous[path] || Object.assign({ message,\r\n type }, (validateAllFieldCriteria\r\n ? {\r\n types: { [type]: message || true },\r\n }\r\n : {})),\r\n }))), {})\r\n : {\r\n [error.path]: { message: error.message, type: error.type },\r\n };\r\nasync function validateWithSchema(validationSchema, validateAllFieldCriteria, data) {\r\n try {\r\n return {\r\n values: await validationSchema.validate(data, { abortEarly: false }),\r\n errors: {},\r\n };\r\n }\r\n catch (e) {\r\n return {\r\n values: {},\r\n errors: transformToNestObject(parseErrorSchema(e, validateAllFieldCriteria)),\r\n };\r\n }\r\n}\n\nvar getDefaultValue = (defaultValues, name, defaultValue) => isUndefined(defaultValues[name])\r\n ? get(defaultValues, name, defaultValue)\r\n : defaultValues[name];\n\nfunction flatArray(list) {\r\n return list.reduce((a, b) => a.concat(isArray(b) ? flatArray(b) : b), []);\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nconst getPath = (path, values) => {\r\n const getInnerPath = (value, key, isObject) => {\r\n const pathWithIndex = isObject ? `${path}.${key}` : `${path}[${key}]`;\r\n return isPrimitive(value) ? pathWithIndex : getPath(pathWithIndex, value);\r\n };\r\n return isArray(values)\r\n ? values.map((value, key) => getInnerPath(value, key))\r\n : Object.entries(values).map(([key, value]) => getInnerPath(value, key, true));\r\n};\r\nvar getPath$1 = (parentPath, value) => flatArray(getPath(parentPath, value));\n\nvar assignWatchFields = (fieldValues, fieldName, watchFields, combinedDefaultValues) => {\r\n let value;\r\n if (isEmptyObject(fieldValues)) {\r\n value = undefined;\r\n }\r\n else if (!isUndefined(fieldValues[fieldName])) {\r\n watchFields.add(fieldName);\r\n value = fieldValues[fieldName];\r\n }\r\n else {\r\n value = get(transformToNestObject(fieldValues), fieldName);\r\n if (!isUndefined(value)) {\r\n getPath$1(fieldName, value).forEach(name => watchFields.add(name));\r\n }\r\n }\r\n return isUndefined(value)\r\n ? isObject(combinedDefaultValues)\r\n ? getDefaultValue(combinedDefaultValues, fieldName)\r\n : combinedDefaultValues\r\n : value;\r\n};\n\nvar skipValidation = ({ hasError, isBlurEvent, isOnSubmit, isReValidateOnSubmit, isOnBlur, isReValidateOnBlur, isSubmitted, }) => (isOnSubmit && isReValidateOnSubmit) ||\r\n (isOnSubmit && !isSubmitted) ||\r\n (isOnBlur && !isBlurEvent && !hasError) ||\r\n (isReValidateOnBlur && !isBlurEvent && hasError) ||\r\n (isReValidateOnSubmit && isSubmitted);\n\nfunction getIsFieldsDifferent(referenceArray, differenceArray) {\r\n let isMatch = false;\r\n if (!isArray(referenceArray) ||\r\n !isArray(differenceArray) ||\r\n referenceArray.length !== differenceArray.length) {\r\n return true;\r\n }\r\n for (let i = 0; i < referenceArray.length; i++) {\r\n if (isMatch) {\r\n break;\r\n }\r\n const dataA = referenceArray[i];\r\n const dataB = differenceArray[i];\r\n if (!dataB || Object.keys(dataA).length !== Object.keys(dataB).length) {\r\n isMatch = true;\r\n break;\r\n }\r\n for (const key in dataA) {\r\n if (!dataB[key] || dataA[key] !== dataB[key]) {\r\n isMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isMatch;\r\n}\n\nconst isMatchFieldArrayName = (name, searchName) => name.startsWith(`${searchName}[`);\r\nvar isNameInFieldArray = (names, name) => [...names].reduce((prev, current) => (isMatchFieldArrayName(name, current) ? true : prev), false);\n\nfunction onDomRemove(element, onDetachCallback) {\r\n const observer = new MutationObserver(() => {\r\n if (isDetached(element)) {\r\n observer.disconnect();\r\n onDetachCallback();\r\n }\r\n });\r\n observer.observe(window.document, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nconst omitObject = (obj, key) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const _a = key, omitted = obj[_a], rest = __rest(obj, [typeof _a === \"symbol\" ? _a : _a + \"\"]);\r\n return rest;\r\n};\n\nconst unsetObject = (target) => {\r\n for (const key in target) {\r\n const data = target[key];\r\n const isArrayObject = isArray(data);\r\n if ((isObject(data) || isArrayObject) && !data.ref) {\r\n unsetObject(data);\r\n }\r\n if (isUndefined(data) ||\r\n isEmptyObject(data) ||\r\n (isArrayObject && !target[key].filter(Boolean).length)) {\r\n delete target[key];\r\n }\r\n }\r\n return target;\r\n};\r\nconst unset = (target, paths) => {\r\n paths.forEach(path => {\r\n set(target, path, undefined);\r\n });\r\n return unsetObject(target);\r\n};\n\nvar modeChecker = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n});\n\nconst { useRef, useState, useCallback, useEffect } = React;\r\nfunction useForm({ mode = VALIDATION_MODE.onSubmit, reValidateMode = VALIDATION_MODE.onChange, validationSchema, defaultValues = {}, submitFocusError = true, validateCriteriaMode, } = {}) {\r\n const fieldsRef = useRef({});\r\n const validateAllFieldCriteria = validateCriteriaMode === 'all';\r\n const errorsRef = useRef({});\r\n const touchedFieldsRef = useRef({});\r\n const watchFieldsRef = useRef(new Set());\r\n const dirtyFieldsRef = useRef(new Set());\r\n const fieldsWithValidationRef = useRef(new Set());\r\n const validFieldsRef = useRef(new Set());\r\n const isValidRef = useRef(true);\r\n const defaultRenderValuesRef = useRef({});\r\n const defaultValuesRef = useRef(defaultValues);\r\n const isUnMount = useRef(false);\r\n const isWatchAllRef = useRef(false);\r\n const isSubmittedRef = useRef(false);\r\n const isDirtyRef = useRef(false);\r\n const submitCountRef = useRef(0);\r\n const isSubmittingRef = useRef(false);\r\n const handleChangeRef = useRef();\r\n const resetFieldArrayFunctionRef = useRef({});\r\n const fieldArrayNamesRef = useRef(new Set());\r\n const [, render] = useState();\r\n const { isOnBlur, isOnSubmit } = useRef(modeChecker(mode)).current;\r\n const isWindowUndefined = typeof window === UNDEFINED;\r\n const isWeb = typeof document !== UNDEFINED &&\r\n !isWindowUndefined &&\r\n !isUndefined(window.HTMLElement);\r\n const isProxyEnabled = isWeb && 'Proxy' in window;\r\n const readFormStateRef = useRef({\r\n dirty: !isProxyEnabled,\r\n isSubmitted: isOnSubmit,\r\n submitCount: !isProxyEnabled,\r\n touched: !isProxyEnabled,\r\n isSubmitting: !isProxyEnabled,\r\n isValid: !isProxyEnabled,\r\n });\r\n const { isOnBlur: isReValidateOnBlur, isOnSubmit: isReValidateOnSubmit, } = useRef(modeChecker(reValidateMode)).current;\r\n defaultValuesRef.current = defaultValuesRef.current\r\n ? defaultValuesRef.current\r\n : defaultValues;\r\n const reRender = useCallback(() => {\r\n if (!isUnMount.current) {\r\n render({});\r\n }\r\n }, []);\r\n const validateFieldCurry = useCallback(validateField.bind(null, fieldsRef, validateAllFieldCriteria), []);\r\n const validateFieldsSchemaCurry = useCallback(validateWithSchema.bind(null, validationSchema, validateAllFieldCriteria), [validationSchema]);\r\n const renderBaseOnError = useCallback((name, error, shouldRender, skipReRender) => {\r\n let shouldReRender = shouldRender ||\r\n shouldUpdateWithError({\r\n errors: errorsRef.current,\r\n error,\r\n name,\r\n validFields: validFieldsRef.current,\r\n fieldsWithValidation: fieldsWithValidationRef.current,\r\n });\r\n if (isEmptyObject(error)) {\r\n if (fieldsWithValidationRef.current.has(name) || validationSchema) {\r\n validFieldsRef.current.add(name);\r\n shouldReRender = shouldReRender || get(errorsRef.current, name);\r\n }\r\n errorsRef.current = unset(errorsRef.current, [name]);\r\n }\r\n else {\r\n validFieldsRef.current.delete(name);\r\n shouldReRender = shouldReRender || !get(errorsRef.current, name);\r\n set(errorsRef.current, name, error[name]);\r\n }\r\n if (shouldReRender && !skipReRender) {\r\n reRender();\r\n return true;\r\n }\r\n }, [reRender, validationSchema]);\r\n const setFieldValue = useCallback((name, rawValue) => {\r\n const field = fieldsRef.current[name];\r\n if (!field) {\r\n return false;\r\n }\r\n const ref = field.ref;\r\n const { type } = ref;\r\n const options = field.options;\r\n const value = isWeb &&\r\n ref instanceof window.HTMLElement &&\r\n isNullOrUndefined(rawValue)\r\n ? ''\r\n : rawValue;\r\n if (isRadioInput(type) && options) {\r\n options.forEach(({ ref: radioRef }) => (radioRef.checked = radioRef.value === value));\r\n }\r\n else if (isFileInput(type)) {\r\n if (value instanceof FileList || value === '') {\r\n ref.files = value;\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n }\r\n else if (isMultipleSelect(type)) {\r\n [...ref.options].forEach(selectRef => (selectRef.selected = value.includes(selectRef.value)));\r\n }\r\n else if (isCheckBoxInput(type) && options) {\r\n options.length > 1\r\n ? options.forEach(({ ref: checkboxRef }) => (checkboxRef.checked = value.includes(checkboxRef.value)))\r\n : (options[0].ref.checked = !!value);\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n return type;\r\n }, [isWeb]);\r\n const setDirty = (name) => {\r\n if (!fieldsRef.current[name] || !readFormStateRef.current.dirty) {\r\n return false;\r\n }\r\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n let isDirty = defaultRenderValuesRef.current[name] !==\r\n getFieldValue(fieldsRef.current, fieldsRef.current[name].ref);\r\n if (isFieldArray) {\r\n const fieldArrayName = name.substring(0, name.indexOf('['));\r\n isDirty = getIsFieldsDifferent(transformToNestObject(getFieldsValues(fieldsRef.current))[fieldArrayName], get(defaultValuesRef.current, fieldArrayName));\r\n }\r\n const isDirtyChanged = isFieldArray\r\n ? isDirtyRef.current !== isDirty\r\n : dirtyFieldsRef.current.has(name) !== isDirty;\r\n if (isDirty) {\r\n dirtyFieldsRef.current.add(name);\r\n }\r\n else {\r\n dirtyFieldsRef.current.delete(name);\r\n }\r\n isDirtyRef.current = isFieldArray ? isDirty : !!dirtyFieldsRef.current.size;\r\n return isDirtyChanged;\r\n };\r\n const setInternalValue = useCallback((name, value) => {\r\n setFieldValue(name, value);\r\n if (setDirty(name) ||\r\n (!get(touchedFieldsRef.current, name) &&\r\n readFormStateRef.current.touched)) {\r\n return !!set(touchedFieldsRef.current, name, true);\r\n }\r\n }, [setFieldValue]);\r\n const executeValidation = useCallback(async (name, shouldRender, skipReRender) => {\r\n const field = fieldsRef.current[name];\r\n if (!field) {\r\n return false;\r\n }\r\n if (shouldRender) {\r\n reRender();\r\n }\r\n const error = await validateField(fieldsRef, validateAllFieldCriteria, field);\r\n renderBaseOnError(name, error, false, skipReRender);\r\n return isEmptyObject(error);\r\n }, [reRender, renderBaseOnError, validateAllFieldCriteria]);\r\n const executeSchemaValidation = useCallback(async (payload, shouldRender) => {\r\n const { errors } = await validateWithSchema(validationSchema, validateAllFieldCriteria, transformToNestObject(getFieldsValues(fieldsRef.current)));\r\n const previousFormIsValid = isValidRef.current;\r\n isValidRef.current = isEmptyObject(errors);\r\n if (isArray(payload)) {\r\n payload.forEach(name => {\r\n if (errors[name]) {\r\n set(errorsRef.current, name, errors[name]);\r\n }\r\n else {\r\n unset(errorsRef.current, [name]);\r\n }\r\n });\r\n reRender();\r\n }\r\n else {\r\n const fieldName = payload;\r\n const error = (get(errors, fieldName)\r\n ? { [fieldName]: get(errors, fieldName) }\r\n : {});\r\n renderBaseOnError(fieldName, error, shouldRender || previousFormIsValid !== isValidRef.current);\r\n }\r\n return isEmptyObject(errorsRef.current);\r\n }, [reRender, renderBaseOnError, validateAllFieldCriteria, validationSchema]);\r\n const triggerValidation = useCallback(async (payload, shouldRender) => {\r\n const fields = payload || Object.keys(fieldsRef.current);\r\n if (validationSchema) {\r\n return executeSchemaValidation(fields, shouldRender);\r\n }\r\n if (isArray(fields)) {\r\n const result = await Promise.all(fields.map(async (data) => await executeValidation(data, false, true)));\r\n reRender();\r\n return result.every(Boolean);\r\n }\r\n return await executeValidation(fields, shouldRender);\r\n }, [executeSchemaValidation, executeValidation, reRender, validationSchema]);\r\n const setValue = useCallback((name, value, shouldValidate) => {\r\n const shouldRender = setInternalValue(name, value) ||\r\n isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name);\r\n if (shouldValidate) {\r\n return triggerValidation(name, shouldRender);\r\n }\r\n if (shouldRender) {\r\n reRender();\r\n }\r\n return;\r\n }, [reRender, setInternalValue, triggerValidation]);\r\n handleChangeRef.current = handleChangeRef.current\r\n ? handleChangeRef.current\r\n : async ({ type, target }) => {\r\n const name = target ? target.name : '';\r\n const fields = fieldsRef.current;\r\n const errors = errorsRef.current;\r\n const field = fields[name];\r\n const currentError = get(errors, name);\r\n let error;\r\n if (!field) {\r\n return;\r\n }\r\n const isBlurEvent = type === EVENTS.BLUR;\r\n const shouldSkipValidation = skipValidation({\r\n hasError: !!currentError,\r\n isBlurEvent,\r\n isOnSubmit,\r\n isReValidateOnSubmit,\r\n isOnBlur,\r\n isReValidateOnBlur,\r\n isSubmitted: isSubmittedRef.current,\r\n });\r\n const shouldUpdateDirty = setDirty(name);\r\n let shouldUpdateState = isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name) ||\r\n shouldUpdateDirty;\r\n if (isBlurEvent &&\r\n !get(touchedFieldsRef.current, name) &&\r\n readFormStateRef.current.touched) {\r\n set(touchedFieldsRef.current, name, true);\r\n shouldUpdateState = true;\r\n }\r\n if (shouldSkipValidation) {\r\n return shouldUpdateState && reRender();\r\n }\r\n if (validationSchema) {\r\n const { errors } = await validateWithSchema(validationSchema, validateAllFieldCriteria, transformToNestObject(getFieldsValues(fields)));\r\n const validForm = isEmptyObject(errors);\r\n error = (get(errors, name)\r\n ? { [name]: get(errors, name) }\r\n : {});\r\n if (isValidRef.current !== validForm) {\r\n shouldUpdateState = true;\r\n }\r\n isValidRef.current = validForm;\r\n }\r\n else {\r\n error = await validateField(fieldsRef, validateAllFieldCriteria, field);\r\n }\r\n if (!renderBaseOnError(name, error) && shouldUpdateState) {\r\n reRender();\r\n }\r\n };\r\n const validateSchemaIsValid = useCallback(() => {\r\n const fieldValues = isEmptyObject(defaultValuesRef.current)\r\n ? getFieldsValues(fieldsRef.current)\r\n : defaultValuesRef.current;\r\n validateFieldsSchemaCurry(transformToNestObject(fieldValues)).then(({ errors }) => {\r\n const previousFormIsValid = isValidRef.current;\r\n isValidRef.current = isEmptyObject(errors);\r\n if (previousFormIsValid && previousFormIsValid !== isValidRef.current) {\r\n reRender();\r\n }\r\n });\r\n }, [reRender, validateFieldsSchemaCurry]);\r\n const resetFieldRef = useCallback((name) => {\r\n errorsRef.current = unset(errorsRef.current, [name]);\r\n touchedFieldsRef.current = unset(touchedFieldsRef.current, [name]);\r\n fieldsRef.current = omitObject(fieldsRef.current, name);\r\n defaultRenderValuesRef.current = omitObject(defaultRenderValuesRef.current, name);\r\n [\r\n dirtyFieldsRef,\r\n fieldsWithValidationRef,\r\n validFieldsRef,\r\n watchFieldsRef,\r\n ].forEach(data => data.current.delete(name));\r\n if (readFormStateRef.current.isValid ||\r\n readFormStateRef.current.touched) {\r\n reRender();\r\n }\r\n if (validationSchema) {\r\n validateSchemaIsValid();\r\n }\r\n }, [reRender]);\r\n const removeEventListenerAndRef = useCallback((field, forceDelete) => {\r\n if (!field) {\r\n return;\r\n }\r\n if (!isUndefined(handleChangeRef.current)) {\r\n findRemovedFieldAndRemoveListener(fieldsRef.current, handleChangeRef.current, field, forceDelete);\r\n }\r\n resetFieldRef(field.ref.name);\r\n }, [resetFieldRef]);\r\n function clearError(name) {\r\n if (isUndefined(name)) {\r\n errorsRef.current = {};\r\n }\r\n else {\r\n unset(errorsRef.current, isArray(name) ? name : [name]);\r\n }\r\n reRender();\r\n }\r\n const setInternalError = ({ name, type, types, message, preventRender, }) => {\r\n const field = fieldsRef.current[name];\r\n if (!isSameError(errorsRef.current[name], type, message)) {\r\n set(errorsRef.current, name, {\r\n type,\r\n types,\r\n message,\r\n ref: field ? field.ref : {},\r\n isManual: true,\r\n });\r\n if (!preventRender) {\r\n reRender();\r\n }\r\n }\r\n };\r\n function setError(name, type = '', message) {\r\n if (isString(name)) {\r\n setInternalError(Object.assign({ name }, (isObject(type)\r\n ? {\r\n types: type,\r\n type: '',\r\n }\r\n : {\r\n type,\r\n message,\r\n })));\r\n }\r\n else if (isArray(name)) {\r\n name.forEach(error => setInternalError(Object.assign(Object.assign({}, error), { preventRender: true })));\r\n reRender();\r\n }\r\n }\r\n function watch(fieldNames, defaultValue) {\r\n const combinedDefaultValues = isUndefined(defaultValue)\r\n ? isUndefined(defaultValuesRef.current)\r\n ? {}\r\n : defaultValuesRef.current\r\n : defaultValue;\r\n const fieldValues = getFieldsValues(fieldsRef.current);\r\n const watchFields = watchFieldsRef.current;\r\n if (isProxyEnabled) {\r\n readFormStateRef.current.dirty = true;\r\n }\r\n if (isString(fieldNames)) {\r\n return assignWatchFields(fieldValues, fieldNames, watchFields, combinedDefaultValues);\r\n }\r\n if (isArray(fieldNames)) {\r\n return fieldNames.reduce((previous, name) => {\r\n let value;\r\n if (isEmptyObject(fieldsRef.current) &&\r\n isObject(combinedDefaultValues)) {\r\n value = getDefaultValue(combinedDefaultValues, name);\r\n }\r\n else {\r\n value = assignWatchFields(fieldValues, name, watchFields, combinedDefaultValues);\r\n }\r\n return Object.assign(Object.assign({}, previous), { [name]: value });\r\n }, {});\r\n }\r\n isWatchAllRef.current = true;\r\n const result = (!isEmptyObject(fieldValues) && fieldValues) ||\r\n defaultValue ||\r\n defaultValuesRef.current;\r\n return fieldNames && fieldNames.nest\r\n ? transformToNestObject(result)\r\n : result;\r\n }\r\n function unregister(names) {\r\n if (!isEmptyObject(fieldsRef.current)) {\r\n (isArray(names) ? names : [names]).forEach(fieldName => removeEventListenerAndRef(fieldsRef.current[fieldName], true));\r\n }\r\n }\r\n function registerFieldsRef(ref, validateOptions = {}) {\r\n if (!ref.name) {\r\n return console.warn('Missing name @', ref);\r\n }\r\n const { name, type, value } = ref;\r\n const fieldAttributes = Object.assign({ ref }, validateOptions);\r\n const fields = fieldsRef.current;\r\n const isRadioOrCheckbox = isRadioInput(type) || isCheckBoxInput(type);\r\n let currentField = fields[name];\r\n let isEmptyDefaultValue = true;\r\n let isFieldArray = false;\r\n let defaultValue;\r\n if (isRadioOrCheckbox\r\n ? currentField &&\r\n isArray(currentField.options) &&\r\n currentField.options.find(({ ref }) => value === ref.value)\r\n : currentField) {\r\n fields[name] = Object.assign(Object.assign({}, currentField), validateOptions);\r\n return;\r\n }\r\n if (type) {\r\n const mutationWatcher = onDomRemove(ref, () => removeEventListenerAndRef(fieldAttributes));\r\n if (isRadioOrCheckbox) {\r\n currentField = Object.assign({ options: [\r\n ...((currentField && currentField.options) || []),\r\n {\r\n ref,\r\n mutationWatcher,\r\n },\r\n ], ref: { type, name } }, validateOptions);\r\n }\r\n else {\r\n currentField = Object.assign(Object.assign({}, fieldAttributes), { mutationWatcher });\r\n }\r\n }\r\n else {\r\n currentField = fieldAttributes;\r\n }\r\n fields[name] = currentField;\r\n if (!isEmptyObject(defaultValuesRef.current)) {\r\n defaultValue = getDefaultValue(defaultValuesRef.current, name);\r\n isEmptyDefaultValue = isUndefined(defaultValue);\r\n isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n if (!isEmptyDefaultValue && !isFieldArray) {\r\n setFieldValue(name, defaultValue);\r\n }\r\n }\r\n if (validationSchema && readFormStateRef.current.isValid) {\r\n validateSchemaIsValid();\r\n }\r\n else if (!isEmptyObject(validateOptions)) {\r\n fieldsWithValidationRef.current.add(name);\r\n if (!isOnSubmit && readFormStateRef.current.isValid) {\r\n validateFieldCurry(currentField).then(error => {\r\n const previousFormIsValid = isValidRef.current;\r\n if (isEmptyObject(error)) {\r\n validFieldsRef.current.add(name);\r\n }\r\n else {\r\n isValidRef.current = false;\r\n }\r\n if (previousFormIsValid !== isValidRef.current) {\r\n reRender();\r\n }\r\n });\r\n }\r\n }\r\n if (!defaultRenderValuesRef.current[name] &&\r\n !(isFieldArray && isEmptyDefaultValue)) {\r\n defaultRenderValuesRef.current[name] = isEmptyDefaultValue\r\n ? getFieldValue(fields, currentField.ref)\r\n : defaultValue;\r\n }\r\n if (!type) {\r\n return;\r\n }\r\n const fieldToAttachListener = isRadioOrCheckbox && currentField.options\r\n ? currentField.options[currentField.options.length - 1]\r\n : currentField;\r\n attachEventListeners({\r\n field: fieldToAttachListener,\r\n isRadioOrCheckbox,\r\n handleChange: handleChangeRef.current,\r\n });\r\n }\r\n function register(refOrValidationOptions, validationOptions) {\r\n if (isWindowUndefined || !refOrValidationOptions) {\r\n return;\r\n }\r\n if (isString(refOrValidationOptions)) {\r\n registerFieldsRef({ name: refOrValidationOptions }, validationOptions);\r\n return;\r\n }\r\n if (isObject(refOrValidationOptions) && 'name' in refOrValidationOptions) {\r\n registerFieldsRef(refOrValidationOptions, validationOptions);\r\n return;\r\n }\r\n return (ref) => ref && registerFieldsRef(ref, refOrValidationOptions);\r\n }\r\n const handleSubmit = useCallback((callback) => async (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n e.persist();\r\n }\r\n let fieldErrors;\r\n let fieldValues;\r\n const fields = fieldsRef.current;\r\n if (readFormStateRef.current.isSubmitting) {\r\n isSubmittingRef.current = true;\r\n reRender();\r\n }\r\n try {\r\n if (validationSchema) {\r\n fieldValues = getFieldsValues(fields);\r\n const { errors, values } = await validateFieldsSchemaCurry(transformToNestObject(fieldValues));\r\n errorsRef.current = errors;\r\n fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n const { errors, values, } = await Object.values(fields).reduce(async (previous, field) => {\r\n if (!field) {\r\n return previous;\r\n }\r\n const resolvedPrevious = await previous;\r\n const { ref, ref: { name }, } = field;\r\n if (!fields[name]) {\r\n return Promise.resolve(resolvedPrevious);\r\n }\r\n const fieldError = await validateFieldCurry(field);\r\n if (fieldError[name]) {\r\n set(resolvedPrevious.errors, name, fieldError[name]);\r\n validFieldsRef.current.delete(name);\r\n return Promise.resolve(resolvedPrevious);\r\n }\r\n if (fieldsWithValidationRef.current.has(name)) {\r\n validFieldsRef.current.add(name);\r\n }\r\n resolvedPrevious.values[name] = getFieldValue(fields, ref);\r\n return Promise.resolve(resolvedPrevious);\r\n }, Promise.resolve({\r\n errors: {},\r\n values: {},\r\n }));\r\n fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n if (isEmptyObject(fieldErrors)) {\r\n errorsRef.current = {};\r\n await callback(transformToNestObject(fieldValues), e);\r\n }\r\n else {\r\n if (submitFocusError) {\r\n for (const key in fieldsRef.current) {\r\n if (get(fieldErrors, key)) {\r\n const field = fieldsRef.current[key];\r\n if (field) {\r\n if (field.ref.focus) {\r\n field.ref.focus();\r\n break;\r\n }\r\n else if (field.options) {\r\n field.options[0].ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n errorsRef.current = fieldErrors;\r\n }\r\n }\r\n finally {\r\n isSubmittedRef.current = true;\r\n isSubmittingRef.current = false;\r\n submitCountRef.current = submitCountRef.current + 1;\r\n reRender();\r\n }\r\n }, [\r\n reRender,\r\n submitFocusError,\r\n validateFieldCurry,\r\n validateFieldsSchemaCurry,\r\n validationSchema,\r\n ]);\r\n const resetRefs = () => {\r\n errorsRef.current = {};\r\n fieldsRef.current = {};\r\n touchedFieldsRef.current = {};\r\n validFieldsRef.current = new Set();\r\n fieldsWithValidationRef.current = new Set();\r\n defaultRenderValuesRef.current = {};\r\n watchFieldsRef.current = new Set();\r\n dirtyFieldsRef.current = new Set();\r\n isWatchAllRef.current = false;\r\n isSubmittedRef.current = false;\r\n isDirtyRef.current = false;\r\n isValidRef.current = true;\r\n submitCountRef.current = 0;\r\n };\r\n const reset = (values) => {\r\n for (const value of Object.values(fieldsRef.current)) {\r\n if (value && value.ref && value.ref.closest) {\r\n try {\r\n value.ref.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n Object.values(resetFieldArrayFunctionRef.current).forEach(resetFieldArray => isFunction(resetFieldArray) && resetFieldArray(values));\r\n resetRefs();\r\n if (values) {\r\n defaultValuesRef.current = values;\r\n }\r\n reRender();\r\n };\r\n const getValues = (payload) => {\r\n const fieldValues = getFieldsValues(fieldsRef.current);\r\n const outputValues = isEmptyObject(fieldValues)\r\n ? defaultValuesRef.current\r\n : fieldValues;\r\n return payload && payload.nest\r\n ? transformToNestObject(outputValues)\r\n : outputValues;\r\n };\r\n useEffect(() => () => {\r\n isUnMount.current = true;\r\n fieldsRef.current &&\r\n Object.values(fieldsRef.current).forEach((field) => removeEventListenerAndRef(field, true));\r\n }, [removeEventListenerAndRef]);\r\n if (!validationSchema) {\r\n isValidRef.current =\r\n validFieldsRef.current.size >= fieldsWithValidationRef.current.size &&\r\n isEmptyObject(errorsRef.current);\r\n }\r\n const formState = {\r\n dirty: isDirtyRef.current,\r\n isSubmitted: isSubmittedRef.current,\r\n submitCount: submitCountRef.current,\r\n touched: touchedFieldsRef.current,\r\n isSubmitting: isSubmittingRef.current,\r\n isValid: isOnSubmit\r\n ? isSubmittedRef.current && isEmptyObject(errorsRef.current)\r\n : isEmptyObject(fieldsRef.current) || isValidRef.current,\r\n };\r\n const control = {\r\n register,\r\n unregister,\r\n setValue,\r\n triggerValidation,\r\n formState,\r\n mode: {\r\n isOnBlur,\r\n isOnSubmit,\r\n },\r\n reValidateMode: {\r\n isReValidateOnBlur,\r\n isReValidateOnSubmit,\r\n },\r\n errors: errorsRef.current,\r\n fieldsRef,\r\n resetFieldArrayFunctionRef,\r\n fieldArrayNamesRef,\r\n isDirtyRef,\r\n readFormStateRef,\r\n defaultValuesRef,\r\n };\r\n return {\r\n watch,\r\n control,\r\n handleSubmit,\r\n setValue,\r\n triggerValidation,\r\n getValues: useCallback(getValues, []),\r\n reset: useCallback(reset, [reRender]),\r\n register: useCallback(register, [defaultValuesRef.current]),\r\n unregister: useCallback(unregister, [removeEventListenerAndRef]),\r\n clearError: useCallback(clearError, []),\r\n setError: useCallback(setError, []),\r\n errors: errorsRef.current,\r\n formState: isProxyEnabled\r\n ? new Proxy(formState, {\r\n get: (obj, prop) => {\r\n if (prop in obj) {\r\n readFormStateRef.current[prop] = true;\r\n return obj[prop];\r\n }\r\n return {};\r\n },\r\n })\r\n : formState,\r\n };\r\n}\n\nconst FormGlobalContext = createContext(null);\r\nfunction useFormContext() {\r\n return useContext(FormGlobalContext);\r\n}\r\nfunction FormContext(_a) {\r\n var { children, formState, errors } = _a, restMethods = __rest(_a, [\"children\", \"formState\", \"errors\"]);\r\n return (createElement(FormGlobalContext.Provider, { value: Object.assign(Object.assign({}, restMethods), { formState, errors }) }, children));\r\n}\n\nvar generateId = () => {\r\n const d = typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nconst appendId = (value) => (Object.assign(Object.assign({}, value), { id: generateId() }));\r\nconst mapIds = (data) => (isArray(data) ? data : []).map(value => appendId(value));\n\nvar removeArrayAt = (data, index) => !isUndefined(index) && isArray(data)\r\n ? [...data.slice(0, index), ...data.slice(index + 1)]\r\n : [];\n\nvar moveArrayAt = (data, from, to) => isArray(data) && data.splice(to, 0, data.splice(from, 1)[0]);\n\nvar swapArrayAt = (fields, indexA, indexB) => isArray(fields) &&\r\n ([fields[indexA], fields[indexB]] = [fields[indexB], fields[indexA]]);\n\nfunction useFieldArray({ control, name }) {\r\n const methods = useFormContext();\r\n const { resetFieldArrayFunctionRef, fieldArrayNamesRef, fieldsRef, defaultValuesRef, unregister, isDirtyRef, readFormStateRef, } = control || methods.control;\r\n const memoizedDefaultValues = useMemo(() => get(defaultValuesRef.current, name, []), \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [name]);\r\n const [fields, setField] = useState$1(mapIds(memoizedDefaultValues));\r\n const getFieldValuesByName = (fields, name) => transformToNestObject(getFieldsValues(fields))[name];\r\n const resetFields = (flagOrFields) => {\r\n if (readFormStateRef.current.dirty) {\r\n isDirtyRef.current = isUndefined(flagOrFields)\r\n ? true\r\n : getIsFieldsDifferent(flagOrFields, memoizedDefaultValues);\r\n }\r\n for (const key in fieldsRef.current) {\r\n if (isMatchFieldArrayName(key, name)) {\r\n unregister(key);\r\n }\r\n }\r\n };\r\n const append = (value) => {\r\n if (readFormStateRef.current.dirty) {\r\n isDirtyRef.current = true;\r\n }\r\n setField([...fields, appendId(value)]);\r\n };\r\n const prepend = (value) => {\r\n resetFields();\r\n setField(mapIds([appendId(value), ...fields]));\r\n };\r\n const remove = (index) => {\r\n const updatedFields = removeArrayAt(getFieldValuesByName(fieldsRef.current, name), index);\r\n resetFields(updatedFields);\r\n setField(mapIds(updatedFields));\r\n };\r\n const insert = (index, value) => {\r\n const fieldValues = getFieldValuesByName(fieldsRef.current, name);\r\n resetFields();\r\n setField(mapIds([\r\n ...fieldValues.slice(0, index),\r\n appendId(value),\r\n ...fieldValues.slice(index),\r\n ]));\r\n };\r\n const swap = (indexA, indexB) => {\r\n const fieldValues = getFieldValuesByName(fieldsRef.current, name);\r\n swapArrayAt(fieldValues, indexA, indexB);\r\n resetFields(fieldValues);\r\n setField(mapIds(fieldValues));\r\n };\r\n const move = (from, to) => {\r\n const fieldValues = getFieldValuesByName(fieldsRef.current, name);\r\n moveArrayAt(fieldValues, from, to);\r\n resetFields(fieldValues);\r\n setField(mapIds(fieldValues));\r\n };\r\n const reset = (values) => {\r\n resetFields();\r\n setField(mapIds(get(values, name)));\r\n };\r\n useEffect$1(() => {\r\n const resetFunctions = resetFieldArrayFunctionRef.current;\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n fieldArrayNames.add(name);\r\n resetFunctions[name] = reset;\r\n return () => {\r\n resetFields();\r\n delete resetFunctions[name];\r\n fieldArrayNames.delete(name);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [name]);\r\n return {\r\n swap,\r\n move,\r\n prepend,\r\n append,\r\n remove,\r\n insert,\r\n fields,\r\n };\r\n}\n\nvar getInputValue = (target, isCheckbox) => {\r\n if (isNullOrUndefined(target)) {\r\n return target;\r\n }\r\n return isCheckbox\r\n ? isUndefined(target.checked)\r\n ? target\r\n : target.checked\r\n : isUndefined(target.value)\r\n ? target\r\n : target.value;\r\n};\n\nconst Controller = (_a) => {\r\n var { name, rules, as: InnerComponent, onChange, onChangeName = VALIDATION_MODE.onChange, onBlurName = VALIDATION_MODE.onBlur, valueName, defaultValue, control } = _a, rest = __rest(_a, [\"name\", \"rules\", \"as\", \"onChange\", \"onChangeName\", \"onBlurName\", \"valueName\", \"defaultValue\", \"control\"]);\r\n const methods = useFormContext();\r\n const { defaultValuesRef, setValue, register, unregister, errors, triggerValidation, mode: { isOnSubmit, isOnBlur }, reValidateMode: { isReValidateOnBlur, isReValidateOnSubmit }, formState: { isSubmitted }, fieldsRef, fieldArrayNamesRef, } = control || methods.control;\r\n const [value, setInputStateValue] = useState$1(isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue);\r\n const valueRef = useRef$1(value);\r\n const isCheckboxInput = isBoolean(value);\r\n const shouldValidate = () => !skipValidation({\r\n hasError: !!get(errors, name),\r\n isOnBlur,\r\n isOnSubmit,\r\n isReValidateOnBlur,\r\n isReValidateOnSubmit,\r\n isSubmitted,\r\n });\r\n const commonTask = (target) => {\r\n const data = getInputValue(target, isCheckboxInput);\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n return data;\r\n };\r\n const eventWrapper = (event) => (...arg) => setValue(name, commonTask(event(arg)), shouldValidate());\r\n const handleChange = (e) => {\r\n const data = commonTask(e && e.target ? e.target : e);\r\n setValue(name, data, shouldValidate());\r\n };\r\n const registerField = () => register(Object.defineProperty({\r\n name,\r\n }, VALUE, {\r\n set(data) {\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n },\r\n get() {\r\n return valueRef.current;\r\n },\r\n }), Object.assign({}, rules));\r\n if (!fieldsRef.current[name]) {\r\n registerField();\r\n }\r\n useEffect$1(() => {\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n registerField();\r\n return () => {\r\n if (!isNameInFieldArray(fieldArrayNames, name)) {\r\n unregister(name);\r\n }\r\n };\r\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [name]);\r\n const props = Object.assign(Object.assign(Object.assign(Object.assign({ name }, rest), (onChange\r\n ? { [onChangeName]: eventWrapper(onChange) }\r\n : { [onChangeName]: handleChange })), (isOnBlur || isReValidateOnBlur\r\n ? { [onBlurName]: () => triggerValidation(name) }\r\n : {})), { [valueName || (isCheckboxInput ? 'checked' : VALUE)]: value });\r\n return isValidElement(InnerComponent) ? (cloneElement(InnerComponent, props)) : (createElement(InnerComponent, Object.assign({}, props)));\r\n};\n\nconst ErrorMessage = ({ as: InnerComponent, errors, name, children, }) => {\r\n const methods = useFormContext();\r\n const { message, types } = get(errors || methods.errors, name, {});\r\n if (!message) {\r\n return null;\r\n }\r\n const props = {\r\n children: children ? children({ message, messages: types }) : message,\r\n };\r\n return InnerComponent ? (isValidElement(InnerComponent) ? (cloneElement(InnerComponent, props)) : (createElement(InnerComponent, Object.assign({}, props)))) : (createElement(Fragment, Object.assign({}, props)));\r\n};\n\nexport { Controller, ErrorMessage, FormContext, useFieldArray, useForm, useFormContext };\n"],"sourceRoot":""}