UNPKG

@nlabs/gothamjs

Version:
1 lines 51.2 kB
"use strict";(self.webpackChunk_nlabs_gothamjs=self.webpackChunk_nlabs_gothamjs||[]).push([[286],{"./node_modules/react-hook-form/dist/index.esm.mjs":function(__unused_webpack_module,__webpack_exports__,__webpack_require__){__webpack_require__.d(__webpack_exports__,{Op:function(){return FormProvider},mN:function(){return useForm},xI:function(){return Controller},xW:function(){return useFormContext}});var react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../lex/node_modules/react/index.js"),react__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__),isCheckBoxInput=element=>"checkbox"===element.type,isDateObject=value=>value instanceof Date,isNullOrUndefined=value=>null==value;const isObjectType=value=>"object"==typeof value;var isObject=value=>!isNullOrUndefined(value)&&!Array.isArray(value)&&isObjectType(value)&&!isDateObject(value),getEventValue=event=>isObject(event)&&event.target?isCheckBoxInput(event.target)?event.target.checked:event.target.value:event,isNameInFieldArray=(names,name)=>names.has((name=>name.substring(0,name.search(/\.\d+(\.|$)/))||name)(name)),isPlainObject=tempObject=>{const prototypeCopy=tempObject.constructor&&tempObject.constructor.prototype;return isObject(prototypeCopy)&&prototypeCopy.hasOwnProperty("isPrototypeOf")},isWeb="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document;function cloneObject(data){let copy;const isArray=Array.isArray(data),isFileListInstance="undefined"!=typeof FileList&&data instanceof FileList;if(data instanceof Date)copy=new Date(data);else{if(isWeb&&(data instanceof Blob||isFileListInstance)||!isArray&&!isObject(data))return data;if(copy=isArray?[]:{},isArray||isPlainObject(data))for(const key in data)data.hasOwnProperty(key)&&(copy[key]=cloneObject(data[key]));else copy=data}return copy}var isKey=value=>/^\w*$/.test(value),isUndefined=val=>void 0===val,compact=value=>Array.isArray(value)?value.filter(Boolean):[],stringToPath=input=>compact(input.replace(/["|']|\]/g,"").split(/\.|\[/)),get=(object,path,defaultValue)=>{if(!path||!isObject(object))return defaultValue;const result=(isKey(path)?[path]:stringToPath(path)).reduce((result,key)=>isNullOrUndefined(result)?result:result[key],object);return isUndefined(result)||result===object?isUndefined(object[path])?defaultValue:object[path]:result},isBoolean=value=>"boolean"==typeof value,set=(object,path,value)=>{let index=-1;const tempPath=isKey(path)?[path]:stringToPath(path),length=tempPath.length,lastIndex=length-1;for(;++index<length;){const key=tempPath[index];let newValue=value;if(index!==lastIndex){const objValue=object[key];newValue=isObject(objValue)||Array.isArray(objValue)?objValue:isNaN(+tempPath[index+1])?{}:[]}if("__proto__"===key||"constructor"===key||"prototype"===key)return;object[key]=newValue,object=object[key]}};const EVENTS={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},VALIDATION_MODE={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},INPUT_VALIDATION_RULES_max="max",INPUT_VALIDATION_RULES_min="min",INPUT_VALIDATION_RULES_maxLength="maxLength",INPUT_VALIDATION_RULES_minLength="minLength",INPUT_VALIDATION_RULES_pattern="pattern",INPUT_VALIDATION_RULES_required="required",INPUT_VALIDATION_RULES_validate="validate",HookFormContext=react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null);HookFormContext.displayName="HookFormContext";const useFormContext=()=>react__WEBPACK_IMPORTED_MODULE_0___default().useContext(HookFormContext),FormProvider=props=>{const{children:children,...data}=props;return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(HookFormContext.Provider,{value:data},children)};var getProxyFormState=(formState,control,localProxyFormState,isRoot=!0)=>{const result={defaultValues:control._defaultValues};for(const key in formState)Object.defineProperty(result,key,{get:()=>{const _key=key;return control._proxyFormState[_key]!==VALIDATION_MODE.all&&(control._proxyFormState[_key]=!isRoot||VALIDATION_MODE.all),localProxyFormState&&(localProxyFormState[_key]=!0),formState[_key]}});return result};const useIsomorphicLayoutEffect="undefined"!=typeof window?react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect:react__WEBPACK_IMPORTED_MODULE_0__.useEffect;var isString=value=>"string"==typeof value,generateWatchOutput=(names,_names,formValues,isGlobal,defaultValue)=>isString(names)?(isGlobal&&_names.watch.add(names),get(formValues,names,defaultValue)):Array.isArray(names)?names.map(fieldName=>(isGlobal&&_names.watch.add(fieldName),get(formValues,fieldName))):(isGlobal&&(_names.watchAll=!0),formValues);function useController(props){const methods=useFormContext(),{name:name,disabled:disabled,control:control=methods.control,shouldUnregister:shouldUnregister}=props,isArrayField=isNameInFieldArray(control._names.array,name),value=function useWatch(props){const methods=useFormContext(),{control:control=methods.control,name:name,defaultValue:defaultValue,disabled:disabled,exact:exact}=props||{},_defaultValue=react__WEBPACK_IMPORTED_MODULE_0___default().useRef(defaultValue),[value,updateValue]=react__WEBPACK_IMPORTED_MODULE_0___default().useState(control._getWatch(name,_defaultValue.current));return useIsomorphicLayoutEffect(()=>control._subscribe({name:name,formState:{values:!0},exact:exact,callback:formState=>!disabled&&updateValue(generateWatchOutput(name,control._names,formState.values||control._formValues,!1,_defaultValue.current))}),[name,control,disabled,exact]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>control._removeUnmounted()),value}({control:control,name:name,defaultValue:get(control._formValues,name,get(control._defaultValues,name,props.defaultValue)),exact:!0}),formState=function useFormState(props){const methods=useFormContext(),{control:control=methods.control,disabled:disabled,name:name,exact:exact}=props||{},[formState,updateFormState]=react__WEBPACK_IMPORTED_MODULE_0___default().useState(control._formState),_localProxyFormState=react__WEBPACK_IMPORTED_MODULE_0___default().useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return useIsomorphicLayoutEffect(()=>control._subscribe({name:name,formState:_localProxyFormState.current,exact:exact,callback:formState=>{!disabled&&updateFormState({...control._formState,...formState})}}),[name,disabled,exact]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>{_localProxyFormState.current.isValid&&control._setValid(!0)},[control]),react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(()=>getProxyFormState(formState,control,_localProxyFormState.current,!1),[formState,control])}({control:control,name:name,exact:!0}),_props=react__WEBPACK_IMPORTED_MODULE_0___default().useRef(props),_registerProps=react__WEBPACK_IMPORTED_MODULE_0___default().useRef(control.register(name,{...props.rules,value:value,...isBoolean(props.disabled)?{disabled:props.disabled}:{}})),fieldState=react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!get(formState.errors,name)},isDirty:{enumerable:!0,get:()=>!!get(formState.dirtyFields,name)},isTouched:{enumerable:!0,get:()=>!!get(formState.touchedFields,name)},isValidating:{enumerable:!0,get:()=>!!get(formState.validatingFields,name)},error:{enumerable:!0,get:()=>get(formState.errors,name)}}),[formState,name]),onChange=react__WEBPACK_IMPORTED_MODULE_0___default().useCallback(event=>_registerProps.current.onChange({target:{value:getEventValue(event),name:name},type:EVENTS.CHANGE}),[name]),onBlur=react__WEBPACK_IMPORTED_MODULE_0___default().useCallback(()=>_registerProps.current.onBlur({target:{value:get(control._formValues,name),name:name},type:EVENTS.BLUR}),[name,control._formValues]),ref=react__WEBPACK_IMPORTED_MODULE_0___default().useCallback(elm=>{const field=get(control._fields,name);field&&elm&&(field._f.ref={focus:()=>elm.focus&&elm.focus(),select:()=>elm.select&&elm.select(),setCustomValidity:message=>elm.setCustomValidity(message),reportValidity:()=>elm.reportValidity()})},[control._fields,name]),field=react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(()=>({name:name,value:value,...isBoolean(disabled)||formState.disabled?{disabled:formState.disabled||disabled}:{},onChange:onChange,onBlur:onBlur,ref:ref}),[name,disabled,formState.disabled,onChange,onBlur,ref,value]);return react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>{const _shouldUnregisterField=control._options.shouldUnregister||shouldUnregister;control.register(name,{..._props.current.rules,...isBoolean(_props.current.disabled)?{disabled:_props.current.disabled}:{}});const updateMounted=(name,value)=>{const field=get(control._fields,name);field&&field._f&&(field._f.mount=value)};if(updateMounted(name,!0),_shouldUnregisterField){const value=cloneObject(get(control._options.defaultValues,name));set(control._defaultValues,name,value),isUndefined(get(control._formValues,name))&&set(control._formValues,name,value)}return!isArrayField&&control.register(name),()=>{(isArrayField?_shouldUnregisterField&&!control._state.action:_shouldUnregisterField)?control.unregister(name):updateMounted(name,!1)}},[name,control,isArrayField,shouldUnregister]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>{control._setDisabledField({disabled:disabled,name:name})},[disabled,name,control]),react__WEBPACK_IMPORTED_MODULE_0___default().useMemo(()=>({field:field,formState:formState,fieldState:fieldState}),[field,formState,fieldState])}const Controller=props=>props.render(useController(props));var appendErrors=(name,validateAllFieldCriteria,errors,type,message)=>validateAllFieldCriteria?{...errors[name],types:{...errors[name]&&errors[name].types?errors[name].types:{},[type]:message||!0}}:{},convertToArrayPayload=value=>Array.isArray(value)?value:[value],createSubject=()=>{let _observers=[];return{get observers(){return _observers},next:value=>{for(const observer of _observers)observer.next&&observer.next(value)},subscribe:observer=>(_observers.push(observer),{unsubscribe:()=>{_observers=_observers.filter(o=>o!==observer)}}),unsubscribe:()=>{_observers=[]}}},isPrimitive=value=>isNullOrUndefined(value)||!isObjectType(value);function deepEqual(object1,object2,_internal_visited=new WeakSet){if(isPrimitive(object1)||isPrimitive(object2))return object1===object2;if(isDateObject(object1)&&isDateObject(object2))return object1.getTime()===object2.getTime();const keys1=Object.keys(object1),keys2=Object.keys(object2);if(keys1.length!==keys2.length)return!1;if(_internal_visited.has(object1)||_internal_visited.has(object2))return!0;_internal_visited.add(object1),_internal_visited.add(object2);for(const key of keys1){const val1=object1[key];if(!keys2.includes(key))return!1;if("ref"!==key){const val2=object2[key];if(isDateObject(val1)&&isDateObject(val2)||isObject(val1)&&isObject(val2)||Array.isArray(val1)&&Array.isArray(val2)?!deepEqual(val1,val2,_internal_visited):val1!==val2)return!1}}return!0}var isEmptyObject=value=>isObject(value)&&!Object.keys(value).length,isFileInput=element=>"file"===element.type,isFunction=value=>"function"==typeof value,isHTMLElement=value=>{if(!isWeb)return!1;const owner=value?value.ownerDocument:0;return value instanceof(owner&&owner.defaultView?owner.defaultView.HTMLElement:HTMLElement)},isMultipleSelect=element=>"select-multiple"===element.type,isRadioInput=element=>"radio"===element.type,isRadioOrCheckbox=ref=>isRadioInput(ref)||isCheckBoxInput(ref),live=ref=>isHTMLElement(ref)&&ref.isConnected;function unset(object,path){const paths=Array.isArray(path)?path:isKey(path)?[path]:stringToPath(path),childObject=1===paths.length?object:function baseGet(object,updatePath){const length=updatePath.slice(0,-1).length;let index=0;for(;index<length;)object=isUndefined(object)?index++:object[updatePath[index++]];return object}(object,paths),index=paths.length-1,key=paths[index];return childObject&&delete childObject[key],0!==index&&(isObject(childObject)&&isEmptyObject(childObject)||Array.isArray(childObject)&&function isEmptyArray(obj){for(const key in obj)if(obj.hasOwnProperty(key)&&!isUndefined(obj[key]))return!1;return!0}(childObject))&&unset(object,paths.slice(0,-1)),object}var objectHasFunction=data=>{for(const key in data)if(isFunction(data[key]))return!0;return!1};function markFieldsDirty(data,fields={}){const isParentNodeArray=Array.isArray(data);if(isObject(data)||isParentNodeArray)for(const key in data)Array.isArray(data[key])||isObject(data[key])&&!objectHasFunction(data[key])?(fields[key]=Array.isArray(data[key])?[]:{},markFieldsDirty(data[key],fields[key])):isNullOrUndefined(data[key])||(fields[key]=!0);return fields}function getDirtyFieldsFromDefaultValues(data,formValues,dirtyFieldsFromValues){const isParentNodeArray=Array.isArray(data);if(isObject(data)||isParentNodeArray)for(const key in data)Array.isArray(data[key])||isObject(data[key])&&!objectHasFunction(data[key])?isUndefined(formValues)||isPrimitive(dirtyFieldsFromValues[key])?dirtyFieldsFromValues[key]=Array.isArray(data[key])?markFieldsDirty(data[key],[]):{...markFieldsDirty(data[key])}:getDirtyFieldsFromDefaultValues(data[key],isNullOrUndefined(formValues)?{}:formValues[key],dirtyFieldsFromValues[key]):dirtyFieldsFromValues[key]=!deepEqual(data[key],formValues[key]);return dirtyFieldsFromValues}var getDirtyFields=(defaultValues,formValues)=>getDirtyFieldsFromDefaultValues(defaultValues,formValues,markFieldsDirty(formValues));const defaultResult={value:!1,isValid:!1},validResult={value:!0,isValid:!0};var getCheckboxValue=options=>{if(Array.isArray(options)){if(options.length>1){const values=options.filter(option=>option&&option.checked&&!option.disabled).map(option=>option.value);return{value:values,isValid:!!values.length}}return options[0].checked&&!options[0].disabled?options[0].attributes&&!isUndefined(options[0].attributes.value)?isUndefined(options[0].value)||""===options[0].value?validResult:{value:options[0].value,isValid:!0}:validResult:defaultResult}return defaultResult},getFieldValueAs=(value,{valueAsNumber:valueAsNumber,valueAsDate:valueAsDate,setValueAs:setValueAs})=>isUndefined(value)?value:valueAsNumber?""===value?NaN:value?+value:value:valueAsDate&&isString(value)?new Date(value):setValueAs?setValueAs(value):value;const defaultReturn={isValid:!1,value:null};var getRadioValue=options=>Array.isArray(options)?options.reduce((previous,option)=>option&&option.checked&&!option.disabled?{isValid:!0,value:option.value}:previous,defaultReturn):defaultReturn;function getFieldValue(_f){const ref=_f.ref;return isFileInput(ref)?ref.files:isRadioInput(ref)?getRadioValue(_f.refs).value:isMultipleSelect(ref)?[...ref.selectedOptions].map(({value:value})=>value):isCheckBoxInput(ref)?getCheckboxValue(_f.refs).value:getFieldValueAs(isUndefined(ref.value)?_f.ref.value:ref.value,_f)}var getResolverOptions=(fieldsNames,_fields,criteriaMode,shouldUseNativeValidation)=>{const fields={};for(const name of fieldsNames){const field=get(_fields,name);field&&set(fields,name,field._f)}return{criteriaMode:criteriaMode,names:[...fieldsNames],fields:fields,shouldUseNativeValidation:shouldUseNativeValidation}},isRegex=value=>value instanceof RegExp,getRuleValue=rule=>isUndefined(rule)?rule:isRegex(rule)?rule.source:isObject(rule)?isRegex(rule.value)?rule.value.source:rule.value:rule,getValidationModes=mode=>({isOnSubmit:!mode||mode===VALIDATION_MODE.onSubmit,isOnBlur:mode===VALIDATION_MODE.onBlur,isOnChange:mode===VALIDATION_MODE.onChange,isOnAll:mode===VALIDATION_MODE.all,isOnTouch:mode===VALIDATION_MODE.onTouched});var hasPromiseValidation=fieldReference=>!!fieldReference&&!!fieldReference.validate&&!!(isFunction(fieldReference.validate)&&"AsyncFunction"===fieldReference.validate.constructor.name||isObject(fieldReference.validate)&&Object.values(fieldReference.validate).find(validateFunction=>"AsyncFunction"===validateFunction.constructor.name)),hasValidation=options=>options.mount&&(options.required||options.min||options.max||options.maxLength||options.minLength||options.pattern||options.validate),isWatched=(name,_names,isBlurEvent)=>!isBlurEvent&&(_names.watchAll||_names.watch.has(name)||[..._names.watch].some(watchName=>name.startsWith(watchName)&&/^\.\w+/.test(name.slice(watchName.length))));const iterateFieldsByAction=(fields,action,fieldsNames,abortEarly)=>{for(const key of fieldsNames||Object.keys(fields)){const field=get(fields,key);if(field){const{_f:_f,...currentField}=field;if(_f){if(_f.refs&&_f.refs[0]&&action(_f.refs[0],key)&&!abortEarly)return!0;if(_f.ref&&action(_f.ref,_f.name)&&!abortEarly)return!0;if(iterateFieldsByAction(currentField,action))break}else if(isObject(currentField)&&iterateFieldsByAction(currentField,action))break}}};function schemaErrorLookup(errors,_fields,name){const error=get(errors,name);if(error||isKey(name))return{error:error,name:name};const names=name.split(".");for(;names.length;){const fieldName=names.join("."),field=get(_fields,fieldName),foundError=get(errors,fieldName);if(field&&!Array.isArray(field)&&name!==fieldName)return{name:name};if(foundError&&foundError.type)return{name:fieldName,error:foundError};if(foundError&&foundError.root&&foundError.root.type)return{name:`${fieldName}.root`,error:foundError.root};names.pop()}return{name:name}}var shouldRenderFormState=(formStateData,_proxyFormState,updateFormState,isRoot)=>{updateFormState(formStateData);const{name:name,...formState}=formStateData;return isEmptyObject(formState)||Object.keys(formState).length>=Object.keys(_proxyFormState).length||Object.keys(formState).find(key=>_proxyFormState[key]===(!isRoot||VALIDATION_MODE.all))},shouldSubscribeByName=(name,signalName,exact)=>!name||!signalName||name===signalName||convertToArrayPayload(name).some(currentName=>currentName&&(exact?currentName===signalName:currentName.startsWith(signalName)||signalName.startsWith(currentName))),skipValidation=(isBlurEvent,isTouched,isSubmitted,reValidateMode,mode)=>!mode.isOnAll&&(!isSubmitted&&mode.isOnTouch?!(isTouched||isBlurEvent):(isSubmitted?reValidateMode.isOnBlur:mode.isOnBlur)?!isBlurEvent:!(isSubmitted?reValidateMode.isOnChange:mode.isOnChange)||isBlurEvent),unsetEmptyArray=(ref,name)=>!compact(get(ref,name)).length&&unset(ref,name),updateFieldArrayRootError=(errors,error,name)=>{const fieldArrayErrors=convertToArrayPayload(get(errors,name));return set(fieldArrayErrors,"root",error[name]),set(errors,name,fieldArrayErrors),errors},isMessage=value=>isString(value);function getValidateError(result,ref,type="validate"){if(isMessage(result)||Array.isArray(result)&&result.every(isMessage)||isBoolean(result)&&!result)return{type:type,message:isMessage(result)?result:"",ref:ref}}var getValueAndMessage=validationData=>isObject(validationData)&&!isRegex(validationData)?validationData:{value:validationData,message:""},validateField=async(field,disabledFieldNames,formValues,validateAllFieldCriteria,shouldUseNativeValidation,isFieldArray)=>{const{ref:ref,refs:refs,required:required,maxLength:maxLength,minLength:minLength,min:min,max:max,pattern:pattern,validate:validate,name:name,valueAsNumber:valueAsNumber,mount:mount}=field._f,inputValue=get(formValues,name);if(!mount||disabledFieldNames.has(name))return{};const inputRef=refs?refs[0]:ref,setCustomValidity=message=>{shouldUseNativeValidation&&inputRef.reportValidity&&(inputRef.setCustomValidity(isBoolean(message)?"":message||""),inputRef.reportValidity())},error={},isRadio=isRadioInput(ref),isCheckBox=isCheckBoxInput(ref),isRadioOrCheckbox=isRadio||isCheckBox,isEmpty=(valueAsNumber||isFileInput(ref))&&isUndefined(ref.value)&&isUndefined(inputValue)||isHTMLElement(ref)&&""===ref.value||""===inputValue||Array.isArray(inputValue)&&!inputValue.length,appendErrorsCurry=appendErrors.bind(null,name,validateAllFieldCriteria,error),getMinMaxMessage=(exceedMax,maxLengthMessage,minLengthMessage,maxType=INPUT_VALIDATION_RULES_maxLength,minType=INPUT_VALIDATION_RULES_minLength)=>{const message=exceedMax?maxLengthMessage:minLengthMessage;error[name]={type:exceedMax?maxType:minType,message:message,ref:ref,...appendErrorsCurry(exceedMax?maxType:minType,message)}};if(isFieldArray?!Array.isArray(inputValue)||!inputValue.length:required&&(!isRadioOrCheckbox&&(isEmpty||isNullOrUndefined(inputValue))||isBoolean(inputValue)&&!inputValue||isCheckBox&&!getCheckboxValue(refs).isValid||isRadio&&!getRadioValue(refs).isValid)){const{value:value,message:message}=isMessage(required)?{value:!!required,message:required}:getValueAndMessage(required);if(value&&(error[name]={type:INPUT_VALIDATION_RULES_required,message:message,ref:inputRef,...appendErrorsCurry(INPUT_VALIDATION_RULES_required,message)},!validateAllFieldCriteria))return setCustomValidity(message),error}if(!(isEmpty||isNullOrUndefined(min)&&isNullOrUndefined(max))){let exceedMax,exceedMin;const maxOutput=getValueAndMessage(max),minOutput=getValueAndMessage(min);if(isNullOrUndefined(inputValue)||isNaN(inputValue)){const valueDate=ref.valueAsDate||new Date(inputValue),convertTimeToDate=time=>new Date((new Date).toDateString()+" "+time),isTime="time"==ref.type,isWeek="week"==ref.type;isString(maxOutput.value)&&inputValue&&(exceedMax=isTime?convertTimeToDate(inputValue)>convertTimeToDate(maxOutput.value):isWeek?inputValue>maxOutput.value:valueDate>new Date(maxOutput.value)),isString(minOutput.value)&&inputValue&&(exceedMin=isTime?convertTimeToDate(inputValue)<convertTimeToDate(minOutput.value):isWeek?inputValue<minOutput.value:valueDate<new Date(minOutput.value))}else{const valueNumber=ref.valueAsNumber||(inputValue?+inputValue:inputValue);isNullOrUndefined(maxOutput.value)||(exceedMax=valueNumber>maxOutput.value),isNullOrUndefined(minOutput.value)||(exceedMin=valueNumber<minOutput.value)}if((exceedMax||exceedMin)&&(getMinMaxMessage(!!exceedMax,maxOutput.message,minOutput.message,INPUT_VALIDATION_RULES_max,INPUT_VALIDATION_RULES_min),!validateAllFieldCriteria))return setCustomValidity(error[name].message),error}if((maxLength||minLength)&&!isEmpty&&(isString(inputValue)||isFieldArray&&Array.isArray(inputValue))){const maxLengthOutput=getValueAndMessage(maxLength),minLengthOutput=getValueAndMessage(minLength),exceedMax=!isNullOrUndefined(maxLengthOutput.value)&&inputValue.length>+maxLengthOutput.value,exceedMin=!isNullOrUndefined(minLengthOutput.value)&&inputValue.length<+minLengthOutput.value;if((exceedMax||exceedMin)&&(getMinMaxMessage(exceedMax,maxLengthOutput.message,minLengthOutput.message),!validateAllFieldCriteria))return setCustomValidity(error[name].message),error}if(pattern&&!isEmpty&&isString(inputValue)){const{value:patternValue,message:message}=getValueAndMessage(pattern);if(isRegex(patternValue)&&!inputValue.match(patternValue)&&(error[name]={type:INPUT_VALIDATION_RULES_pattern,message:message,ref:ref,...appendErrorsCurry(INPUT_VALIDATION_RULES_pattern,message)},!validateAllFieldCriteria))return setCustomValidity(message),error}if(validate)if(isFunction(validate)){const validateError=getValidateError(await validate(inputValue,formValues),inputRef);if(validateError&&(error[name]={...validateError,...appendErrorsCurry(INPUT_VALIDATION_RULES_validate,validateError.message)},!validateAllFieldCriteria))return setCustomValidity(validateError.message),error}else if(isObject(validate)){let validationResult={};for(const key in validate){if(!isEmptyObject(validationResult)&&!validateAllFieldCriteria)break;const validateError=getValidateError(await validate[key](inputValue,formValues),inputRef,key);validateError&&(validationResult={...validateError,...appendErrorsCurry(key,validateError.message)},setCustomValidity(validateError.message),validateAllFieldCriteria&&(error[name]=validationResult))}if(!isEmptyObject(validationResult)&&(error[name]={ref:inputRef,...validationResult},!validateAllFieldCriteria))return error}return setCustomValidity(!0),error};const defaultOptions={mode:VALIDATION_MODE.onSubmit,reValidateMode:VALIDATION_MODE.onChange,shouldFocusError:!0};function createFormControl(props={}){let delayErrorCallback,_options={...defaultOptions,...props},_formState={submitCount:0,isDirty:!1,isReady:!1,isLoading:isFunction(_options.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:_options.errors||{},disabled:_options.disabled||!1},_fields={},_defaultValues=(isObject(_options.defaultValues)||isObject(_options.values))&&cloneObject(_options.defaultValues||_options.values)||{},_formValues=_options.shouldUnregister?{}:cloneObject(_defaultValues),_state={action:!1,mount:!1,watch:!1},_names={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},timer=0;const _proxyFormState={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let _proxySubscribeFormState={..._proxyFormState};const _subjects={array:createSubject(),state:createSubject()},shouldDisplayAllAssociatedErrors=_options.criteriaMode===VALIDATION_MODE.all,_setValid=async shouldUpdateValid=>{if(!_options.disabled&&(_proxyFormState.isValid||_proxySubscribeFormState.isValid||shouldUpdateValid)){const isValid=_options.resolver?isEmptyObject((await _runSchema()).errors):await executeBuiltInValidation(_fields,!0);isValid!==_formState.isValid&&_subjects.state.next({isValid:isValid})}},_updateIsValidating=(names,isValidating)=>{!_options.disabled&&(_proxyFormState.isValidating||_proxyFormState.validatingFields||_proxySubscribeFormState.isValidating||_proxySubscribeFormState.validatingFields)&&((names||Array.from(_names.mount)).forEach(name=>{name&&(isValidating?set(_formState.validatingFields,name,isValidating):unset(_formState.validatingFields,name))}),_subjects.state.next({validatingFields:_formState.validatingFields,isValidating:!isEmptyObject(_formState.validatingFields)}))},updateValidAndValue=(name,shouldSkipSetValueAs,value,ref)=>{const field=get(_fields,name);if(field){const defaultValue=get(_formValues,name,isUndefined(value)?get(_defaultValues,name):value);isUndefined(defaultValue)||ref&&ref.defaultChecked||shouldSkipSetValueAs?set(_formValues,name,shouldSkipSetValueAs?defaultValue:getFieldValue(field._f)):setFieldValue(name,defaultValue),_state.mount&&_setValid()}},updateTouchAndDirty=(name,fieldValue,isBlurEvent,shouldDirty,shouldRender)=>{let shouldUpdateField=!1,isPreviousDirty=!1;const output={name:name};if(!_options.disabled){if(!isBlurEvent||shouldDirty){(_proxyFormState.isDirty||_proxySubscribeFormState.isDirty)&&(isPreviousDirty=_formState.isDirty,_formState.isDirty=output.isDirty=_getDirty(),shouldUpdateField=isPreviousDirty!==output.isDirty);const isCurrentFieldPristine=deepEqual(get(_defaultValues,name),fieldValue);isPreviousDirty=!!get(_formState.dirtyFields,name),isCurrentFieldPristine?unset(_formState.dirtyFields,name):set(_formState.dirtyFields,name,!0),output.dirtyFields=_formState.dirtyFields,shouldUpdateField=shouldUpdateField||(_proxyFormState.dirtyFields||_proxySubscribeFormState.dirtyFields)&&isPreviousDirty!==!isCurrentFieldPristine}if(isBlurEvent){const isPreviousFieldTouched=get(_formState.touchedFields,name);isPreviousFieldTouched||(set(_formState.touchedFields,name,isBlurEvent),output.touchedFields=_formState.touchedFields,shouldUpdateField=shouldUpdateField||(_proxyFormState.touchedFields||_proxySubscribeFormState.touchedFields)&&isPreviousFieldTouched!==isBlurEvent)}shouldUpdateField&&shouldRender&&_subjects.state.next(output)}return shouldUpdateField?output:{}},shouldRenderByError=(name,isValid,error,fieldState)=>{const previousFieldError=get(_formState.errors,name),shouldUpdateValid=(_proxyFormState.isValid||_proxySubscribeFormState.isValid)&&isBoolean(isValid)&&_formState.isValid!==isValid;var callback;if(_options.delayError&&error?(callback=()=>((name,error)=>{set(_formState.errors,name,error),_subjects.state.next({errors:_formState.errors})})(name,error),delayErrorCallback=wait=>{clearTimeout(timer),timer=setTimeout(callback,wait)},delayErrorCallback(_options.delayError)):(clearTimeout(timer),delayErrorCallback=null,error?set(_formState.errors,name,error):unset(_formState.errors,name)),(error?!deepEqual(previousFieldError,error):previousFieldError)||!isEmptyObject(fieldState)||shouldUpdateValid){const updatedFormState={...fieldState,...shouldUpdateValid&&isBoolean(isValid)?{isValid:isValid}:{},errors:_formState.errors,name:name};_formState={..._formState,...updatedFormState},_subjects.state.next(updatedFormState)}},_runSchema=async name=>{_updateIsValidating(name,!0);const result=await _options.resolver(_formValues,_options.context,getResolverOptions(name||_names.mount,_fields,_options.criteriaMode,_options.shouldUseNativeValidation));return _updateIsValidating(name),result},executeBuiltInValidation=async(fields,shouldOnlyCheckValid,context={valid:!0})=>{for(const name in fields){const field=fields[name];if(field){const{_f:_f,...fieldValue}=field;if(_f){const isFieldArrayRoot=_names.array.has(_f.name),isPromiseFunction=field._f&&hasPromiseValidation(field._f);isPromiseFunction&&_proxyFormState.validatingFields&&_updateIsValidating([name],!0);const fieldError=await validateField(field,_names.disabled,_formValues,shouldDisplayAllAssociatedErrors,_options.shouldUseNativeValidation&&!shouldOnlyCheckValid,isFieldArrayRoot);if(isPromiseFunction&&_proxyFormState.validatingFields&&_updateIsValidating([name]),fieldError[_f.name]&&(context.valid=!1,shouldOnlyCheckValid))break;!shouldOnlyCheckValid&&(get(fieldError,_f.name)?isFieldArrayRoot?updateFieldArrayRootError(_formState.errors,fieldError,_f.name):set(_formState.errors,_f.name,fieldError[_f.name]):unset(_formState.errors,_f.name))}!isEmptyObject(fieldValue)&&await executeBuiltInValidation(fieldValue,shouldOnlyCheckValid,context)}}return context.valid},_getDirty=(name,data)=>!_options.disabled&&(name&&data&&set(_formValues,name,data),!deepEqual(getValues(),_defaultValues)),_getWatch=(names,defaultValue,isGlobal)=>generateWatchOutput(names,_names,{..._state.mount?_formValues:isUndefined(defaultValue)?_defaultValues:isString(names)?{[names]:defaultValue}:defaultValue},isGlobal,defaultValue),setFieldValue=(name,value,options={})=>{const field=get(_fields,name);let fieldValue=value;if(field){const fieldReference=field._f;fieldReference&&(!fieldReference.disabled&&set(_formValues,name,getFieldValueAs(value,fieldReference)),fieldValue=isHTMLElement(fieldReference.ref)&&isNullOrUndefined(value)?"":value,isMultipleSelect(fieldReference.ref)?[...fieldReference.ref.options].forEach(optionRef=>optionRef.selected=fieldValue.includes(optionRef.value)):fieldReference.refs?isCheckBoxInput(fieldReference.ref)?fieldReference.refs.forEach(checkboxRef=>{checkboxRef.defaultChecked&&checkboxRef.disabled||(Array.isArray(fieldValue)?checkboxRef.checked=!!fieldValue.find(data=>data===checkboxRef.value):checkboxRef.checked=fieldValue===checkboxRef.value||!!fieldValue)}):fieldReference.refs.forEach(radioRef=>radioRef.checked=radioRef.value===fieldValue):isFileInput(fieldReference.ref)?fieldReference.ref.value="":(fieldReference.ref.value=fieldValue,fieldReference.ref.type||_subjects.state.next({name:name,values:cloneObject(_formValues)})))}(options.shouldDirty||options.shouldTouch)&&updateTouchAndDirty(name,fieldValue,options.shouldTouch,options.shouldDirty,!0),options.shouldValidate&&trigger(name)},setValues=(name,value,options)=>{for(const fieldKey in value){if(!value.hasOwnProperty(fieldKey))return;const fieldValue=value[fieldKey],fieldName=name+"."+fieldKey,field=get(_fields,fieldName);(_names.array.has(name)||isObject(fieldValue)||field&&!field._f)&&!isDateObject(fieldValue)?setValues(fieldName,fieldValue,options):setFieldValue(fieldName,fieldValue,options)}},setValue=(name,value,options={})=>{const field=get(_fields,name),isFieldArray=_names.array.has(name),cloneValue=cloneObject(value);set(_formValues,name,cloneValue),isFieldArray?(_subjects.array.next({name:name,values:cloneObject(_formValues)}),(_proxyFormState.isDirty||_proxyFormState.dirtyFields||_proxySubscribeFormState.isDirty||_proxySubscribeFormState.dirtyFields)&&options.shouldDirty&&_subjects.state.next({name:name,dirtyFields:getDirtyFields(_defaultValues,_formValues),isDirty:_getDirty(name,cloneValue)})):!field||field._f||isNullOrUndefined(cloneValue)?setFieldValue(name,cloneValue,options):setValues(name,cloneValue,options),isWatched(name,_names)&&_subjects.state.next({..._formState}),_subjects.state.next({name:_state.mount?name:void 0,values:cloneObject(_formValues)})},onChange=async event=>{_state.mount=!0;const target=event.target;let name=target.name,isFieldValueUpdated=!0;const field=get(_fields,name),_updateIsFieldValueUpdated=fieldValue=>{isFieldValueUpdated=Number.isNaN(fieldValue)||isDateObject(fieldValue)&&isNaN(fieldValue.getTime())||deepEqual(fieldValue,get(_formValues,name,fieldValue))},validationModeBeforeSubmit=getValidationModes(_options.mode),validationModeAfterSubmit=getValidationModes(_options.reValidateMode);if(field){let error,isValid;const fieldValue=target.type?getFieldValue(field._f):getEventValue(event),isBlurEvent=event.type===EVENTS.BLUR||event.type===EVENTS.FOCUS_OUT,shouldSkipValidation=!hasValidation(field._f)&&!_options.resolver&&!get(_formState.errors,name)&&!field._f.deps||skipValidation(isBlurEvent,get(_formState.touchedFields,name),_formState.isSubmitted,validationModeAfterSubmit,validationModeBeforeSubmit),watched=isWatched(name,_names,isBlurEvent);set(_formValues,name,fieldValue),isBlurEvent?(field._f.onBlur&&field._f.onBlur(event),delayErrorCallback&&delayErrorCallback(0)):field._f.onChange&&field._f.onChange(event);const fieldState=updateTouchAndDirty(name,fieldValue,isBlurEvent),shouldRender=!isEmptyObject(fieldState)||watched;if(!isBlurEvent&&_subjects.state.next({name:name,type:event.type,values:cloneObject(_formValues)}),shouldSkipValidation)return(_proxyFormState.isValid||_proxySubscribeFormState.isValid)&&("onBlur"===_options.mode?isBlurEvent&&_setValid():isBlurEvent||_setValid()),shouldRender&&_subjects.state.next({name:name,...watched?{}:fieldState});if(!isBlurEvent&&watched&&_subjects.state.next({..._formState}),_options.resolver){const{errors:errors}=await _runSchema([name]);if(_updateIsFieldValueUpdated(fieldValue),isFieldValueUpdated){const previousErrorLookupResult=schemaErrorLookup(_formState.errors,_fields,name),errorLookupResult=schemaErrorLookup(errors,_fields,previousErrorLookupResult.name||name);error=errorLookupResult.error,name=errorLookupResult.name,isValid=isEmptyObject(errors)}}else _updateIsValidating([name],!0),error=(await validateField(field,_names.disabled,_formValues,shouldDisplayAllAssociatedErrors,_options.shouldUseNativeValidation))[name],_updateIsValidating([name]),_updateIsFieldValueUpdated(fieldValue),isFieldValueUpdated&&(error?isValid=!1:(_proxyFormState.isValid||_proxySubscribeFormState.isValid)&&(isValid=await executeBuiltInValidation(_fields,!0)));isFieldValueUpdated&&(field._f.deps&&trigger(field._f.deps),shouldRenderByError(name,isValid,error,fieldState))}},_focusInput=(ref,key)=>{if(get(_formState.errors,key)&&ref.focus)return ref.focus(),1},trigger=async(name,options={})=>{let isValid,validationResult;const fieldNames=convertToArrayPayload(name);if(_options.resolver){const errors=await(async names=>{const{errors:errors}=await _runSchema(names);if(names)for(const name of names){const error=get(errors,name);error?set(_formState.errors,name,error):unset(_formState.errors,name)}else _formState.errors=errors;return errors})(isUndefined(name)?name:fieldNames);isValid=isEmptyObject(errors),validationResult=name?!fieldNames.some(name=>get(errors,name)):isValid}else name?(validationResult=(await Promise.all(fieldNames.map(async fieldName=>{const field=get(_fields,fieldName);return await executeBuiltInValidation(field&&field._f?{[fieldName]:field}:field)}))).every(Boolean),(validationResult||_formState.isValid)&&_setValid()):validationResult=isValid=await executeBuiltInValidation(_fields);return _subjects.state.next({...!isString(name)||(_proxyFormState.isValid||_proxySubscribeFormState.isValid)&&isValid!==_formState.isValid?{}:{name:name},..._options.resolver||!name?{isValid:isValid}:{},errors:_formState.errors}),options.shouldFocus&&!validationResult&&iterateFieldsByAction(_fields,_focusInput,name?fieldNames:_names.mount),validationResult},getValues=fieldNames=>{const values={..._state.mount?_formValues:_defaultValues};return isUndefined(fieldNames)?values:isString(fieldNames)?get(values,fieldNames):fieldNames.map(name=>get(values,name))},getFieldState=(name,formState)=>({invalid:!!get((formState||_formState).errors,name),isDirty:!!get((formState||_formState).dirtyFields,name),error:get((formState||_formState).errors,name),isValidating:!!get(_formState.validatingFields,name),isTouched:!!get((formState||_formState).touchedFields,name)}),setError=(name,error,options)=>{const ref=(get(_fields,name,{_f:{}})._f||{}).ref,currentError=get(_formState.errors,name)||{},{ref:currentRef,message:message,type:type,...restOfErrorTree}=currentError;set(_formState.errors,name,{...restOfErrorTree,...error,ref:ref}),_subjects.state.next({name:name,errors:_formState.errors,isValid:!1}),options&&options.shouldFocus&&ref&&ref.focus&&ref.focus()},_subscribe=props=>_subjects.state.subscribe({next:formState=>{shouldSubscribeByName(props.name,formState.name,props.exact)&&shouldRenderFormState(formState,props.formState||_proxyFormState,_setFormState,props.reRenderRoot)&&props.callback({values:{..._formValues},..._formState,...formState})}}).unsubscribe,unregister=(name,options={})=>{for(const fieldName of name?convertToArrayPayload(name):_names.mount)_names.mount.delete(fieldName),_names.array.delete(fieldName),options.keepValue||(unset(_fields,fieldName),unset(_formValues,fieldName)),!options.keepError&&unset(_formState.errors,fieldName),!options.keepDirty&&unset(_formState.dirtyFields,fieldName),!options.keepTouched&&unset(_formState.touchedFields,fieldName),!options.keepIsValidating&&unset(_formState.validatingFields,fieldName),!_options.shouldUnregister&&!options.keepDefaultValue&&unset(_defaultValues,fieldName);_subjects.state.next({values:cloneObject(_formValues)}),_subjects.state.next({..._formState,...options.keepDirty?{isDirty:_getDirty()}:{}}),!options.keepIsValid&&_setValid()},_setDisabledField=({disabled:disabled,name:name})=>{(isBoolean(disabled)&&_state.mount||disabled||_names.disabled.has(name))&&(disabled?_names.disabled.add(name):_names.disabled.delete(name))},register=(name,options={})=>{let field=get(_fields,name);const disabledIsDefined=isBoolean(options.disabled)||isBoolean(_options.disabled);return set(_fields,name,{...field||{},_f:{...field&&field._f?field._f:{ref:{name:name}},name:name,mount:!0,...options}}),_names.mount.add(name),field?_setDisabledField({disabled:isBoolean(options.disabled)?options.disabled:_options.disabled,name:name}):updateValidAndValue(name,!0,options.value),{...disabledIsDefined?{disabled:options.disabled||_options.disabled}:{},..._options.progressive?{required:!!options.required,min:getRuleValue(options.min),max:getRuleValue(options.max),minLength:getRuleValue(options.minLength),maxLength:getRuleValue(options.maxLength),pattern:getRuleValue(options.pattern)}:{},name:name,onChange:onChange,onBlur:onChange,ref:ref=>{if(ref){register(name,options),field=get(_fields,name);const fieldRef=isUndefined(ref.value)&&ref.querySelectorAll&&ref.querySelectorAll("input,select,textarea")[0]||ref,radioOrCheckbox=isRadioOrCheckbox(fieldRef),refs=field._f.refs||[];if(radioOrCheckbox?refs.find(option=>option===fieldRef):fieldRef===field._f.ref)return;set(_fields,name,{_f:{...field._f,...radioOrCheckbox?{refs:[...refs.filter(live),fieldRef,...Array.isArray(get(_defaultValues,name))?[{}]:[]],ref:{type:fieldRef.type,name:name}}:{ref:fieldRef}}}),updateValidAndValue(name,!1,void 0,fieldRef)}else field=get(_fields,name,{}),field._f&&(field._f.mount=!1),(_options.shouldUnregister||options.shouldUnregister)&&(!isNameInFieldArray(_names.array,name)||!_state.action)&&_names.unMount.add(name)}}},_focusError=()=>_options.shouldFocusError&&iterateFieldsByAction(_fields,_focusInput,_names.mount),handleSubmit=(onValid,onInvalid)=>async e=>{let onValidError;e&&(e.preventDefault&&e.preventDefault(),e.persist&&e.persist());let fieldValues=cloneObject(_formValues);if(_subjects.state.next({isSubmitting:!0}),_options.resolver){const{errors:errors,values:values}=await _runSchema();_formState.errors=errors,fieldValues=cloneObject(values)}else await executeBuiltInValidation(_fields);if(_names.disabled.size)for(const name of _names.disabled)unset(fieldValues,name);if(unset(_formState.errors,"root"),isEmptyObject(_formState.errors)){_subjects.state.next({errors:{}});try{await onValid(fieldValues,e)}catch(error){onValidError=error}}else onInvalid&&await onInvalid({..._formState.errors},e),_focusError(),setTimeout(_focusError);if(_subjects.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:isEmptyObject(_formState.errors)&&!onValidError,submitCount:_formState.submitCount+1,errors:_formState.errors}),onValidError)throw onValidError},_reset=(formValues,keepStateOptions={})=>{const updatedValues=formValues?cloneObject(formValues):_defaultValues,cloneUpdatedValues=cloneObject(updatedValues),isEmptyResetValues=isEmptyObject(formValues),values=isEmptyResetValues?_defaultValues:cloneUpdatedValues;if(keepStateOptions.keepDefaultValues||(_defaultValues=updatedValues),!keepStateOptions.keepValues){if(keepStateOptions.keepDirtyValues){const fieldsToCheck=new Set([..._names.mount,...Object.keys(getDirtyFields(_defaultValues,_formValues))]);for(const fieldName of Array.from(fieldsToCheck))get(_formState.dirtyFields,fieldName)?set(values,fieldName,get(_formValues,fieldName)):setValue(fieldName,get(values,fieldName))}else{if(isWeb&&isUndefined(formValues))for(const name of _names.mount){const field=get(_fields,name);if(field&&field._f){const fieldReference=Array.isArray(field._f.refs)?field._f.refs[0]:field._f.ref;if(isHTMLElement(fieldReference)){const form=fieldReference.closest("form");if(form){form.reset();break}}}}if(keepStateOptions.keepFieldsRef)for(const fieldName of _names.mount)setValue(fieldName,get(values,fieldName));else _fields={}}_formValues=_options.shouldUnregister?keepStateOptions.keepDefaultValues?cloneObject(_defaultValues):{}:cloneObject(values),_subjects.array.next({values:{...values}}),_subjects.state.next({values:{...values}})}_names={mount:keepStateOptions.keepDirtyValues?_names.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},_state.mount=!_proxyFormState.isValid||!!keepStateOptions.keepIsValid||!!keepStateOptions.keepDirtyValues,_state.watch=!!_options.shouldUnregister,_subjects.state.next({submitCount:keepStateOptions.keepSubmitCount?_formState.submitCount:0,isDirty:!isEmptyResetValues&&(keepStateOptions.keepDirty?_formState.isDirty:!(!keepStateOptions.keepDefaultValues||deepEqual(formValues,_defaultValues))),isSubmitted:!!keepStateOptions.keepIsSubmitted&&_formState.isSubmitted,dirtyFields:isEmptyResetValues?{}:keepStateOptions.keepDirtyValues?keepStateOptions.keepDefaultValues&&_formValues?getDirtyFields(_defaultValues,_formValues):_formState.dirtyFields:keepStateOptions.keepDefaultValues&&formValues?getDirtyFields(_defaultValues,formValues):keepStateOptions.keepDirty?_formState.dirtyFields:{},touchedFields:keepStateOptions.keepTouched?_formState.touchedFields:{},errors:keepStateOptions.keepErrors?_formState.errors:{},isSubmitSuccessful:!!keepStateOptions.keepIsSubmitSuccessful&&_formState.isSubmitSuccessful,isSubmitting:!1})},reset=(formValues,keepStateOptions)=>_reset(isFunction(formValues)?formValues(_formValues):formValues,keepStateOptions),_setFormState=updatedFormState=>{_formState={..._formState,...updatedFormState}},methods={control:{register:register,unregister:unregister,getFieldState:getFieldState,handleSubmit:handleSubmit,setError:setError,_subscribe:_subscribe,_runSchema:_runSchema,_focusError:_focusError,_getWatch:_getWatch,_getDirty:_getDirty,_setValid:_setValid,_setFieldArray:(name,values=[],method,args,shouldSetValues=!0,shouldUpdateFieldsAndState=!0)=>{if(args&&method&&!_options.disabled){if(_state.action=!0,shouldUpdateFieldsAndState&&Array.isArray(get(_fields,name))){const fieldValues=method(get(_fields,name),args.argA,args.argB);shouldSetValues&&set(_fields,name,fieldValues)}if(shouldUpdateFieldsAndState&&Array.isArray(get(_formState.errors,name))){const errors=method(get(_formState.errors,name),args.argA,args.argB);shouldSetValues&&set(_formState.errors,name,errors),unsetEmptyArray(_formState.errors,name)}if((_proxyFormState.touchedFields||_proxySubscribeFormState.touchedFields)&&shouldUpdateFieldsAndState&&Array.isArray(get(_formState.touchedFields,name))){const touchedFields=method(get(_formState.touchedFields,name),args.argA,args.argB);shouldSetValues&&set(_formState.touchedFields,name,touchedFields)}(_proxyFormState.dirtyFields||_proxySubscribeFormState.dirtyFields)&&(_formState.dirtyFields=getDirtyFields(_defaultValues,_formValues)),_subjects.state.next({name:name,isDirty:_getDirty(name,values),dirtyFields:_formState.dirtyFields,errors:_formState.errors,isValid:_formState.isValid})}else set(_formValues,name,values)},_setDisabledField:_setDisabledField,_setErrors:errors=>{_formState.errors=errors,_subjects.state.next({errors:_formState.errors,isValid:!1})},_getFieldArray:name=>compact(get(_state.mount?_formValues:_defaultValues,name,_options.shouldUnregister?get(_defaultValues,name,[]):[])),_reset:_reset,_resetDefaultValues:()=>isFunction(_options.defaultValues)&&_options.defaultValues().then(values=>{reset(values,_options.resetOptions),_subjects.state.next({isLoading:!1})}),_removeUnmounted:()=>{for(const name of _names.unMount){const field=get(_fields,name);field&&(field._f.refs?field._f.refs.every(ref=>!live(ref)):!live(field._f.ref))&&unregister(name)}_names.unMount=new Set},_disableForm:disabled=>{isBoolean(disabled)&&(_subjects.state.next({disabled:disabled}),iterateFieldsByAction(_fields,(ref,name)=>{const currentField=get(_fields,name);currentField&&(ref.disabled=currentField._f.disabled||disabled,Array.isArray(currentField._f.refs)&&currentField._f.refs.forEach(inputRef=>{inputRef.disabled=currentField._f.disabled||disabled}))},0,!1))},_subjects:_subjects,_proxyFormState:_proxyFormState,get _fields(){return _fields},get _formValues(){return _formValues},get _state(){return _state},set _state(value){_state=value},get _defaultValues(){return _defaultValues},get _names(){return _names},set _names(value){_names=value},get _formState(){return _formState},get _options(){return _options},set _options(value){_options={..._options,...value}}},subscribe:props=>(_state.mount=!0,_proxySubscribeFormState={..._proxySubscribeFormState,...props.formState},_subscribe({...props,formState:_proxySubscribeFormState})),trigger:trigger,register:register,handleSubmit:handleSubmit,watch:(name,defaultValue)=>isFunction(name)?_subjects.state.subscribe({next:payload=>name(_getWatch(void 0,defaultValue),payload)}):_getWatch(name,defaultValue,!0),setValue:setValue,getValues:getValues,reset:reset,resetField:(name,options={})=>{get(_fields,name)&&(isUndefined(options.defaultValue)?setValue(name,cloneObject(get(_defaultValues,name))):(setValue(name,options.defaultValue),set(_defaultValues,name,cloneObject(options.defaultValue))),options.keepTouched||unset(_formState.touchedFields,name),options.keepDirty||(unset(_formState.dirtyFields,name),_formState.isDirty=options.defaultValue?_getDirty(name,cloneObject(get(_defaultValues,name))):_getDirty()),options.keepError||(unset(_formState.errors,name),_proxyFormState.isValid&&_setValid()),_subjects.state.next({..._formState}))},clearErrors:name=>{name&&convertToArrayPayload(name).forEach(inputName=>unset(_formState.errors,inputName)),_subjects.state.next({errors:name?_formState.errors:{}})},unregister:unregister,setError:setError,setFocus:(name,options={})=>{const field=get(_fields,name),fieldReference=field&&field._f;if(fieldReference){const fieldRef=fieldReference.refs?fieldReference.refs[0]:fieldReference.ref;fieldRef.focus&&(fieldRef.focus(),options.shouldSelect&&isFunction(fieldRef.select)&&fieldRef.select())}},getFieldState:getFieldState};return{...methods,formControl:methods}}function useForm(props={}){const _formControl=react__WEBPACK_IMPORTED_MODULE_0___default().useRef(void 0),_values=react__WEBPACK_IMPORTED_MODULE_0___default().useRef(void 0),[formState,updateFormState]=react__WEBPACK_IMPORTED_MODULE_0___default().useState({isDirty:!1,isValidating:!1,isLoading:isFunction(props.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:props.errors||{},disabled:props.disabled||!1,isReady:!1,defaultValues:isFunction(props.defaultValues)?void 0:props.defaultValues});if(!_formControl.current)if(props.formControl)_formControl.current={...props.formControl,formState:formState},props.defaultValues&&!isFunction(props.defaultValues)&&props.formControl.reset(props.defaultValues,props.resetOptions);else{const{formControl:formControl,...rest}=createFormControl(props);_formControl.current={...rest,formState:formState}}const control=_formControl.current.control;return control._options=props,useIsomorphicLayoutEffect(()=>{const sub=control._subscribe({formState:control._proxyFormState,callback:()=>updateFormState({...control._formState}),reRenderRoot:!0});return updateFormState(data=>({...data,isReady:!0})),control._formState.isReady=!0,sub},[control]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>control._disableForm(props.disabled),[control,props.disabled]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>{props.mode&&(control._options.mode=props.mode),props.reValidateMode&&(control._options.reValidateMode=props.reValidateMode)},[control,props.mode,props.reValidateMode]),react__WEBPACK_IMPORTED_MODULE_0___default().useEffect(()=>{props.errors&&(control._