@djb25/digit-ui-module-ekyc 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -0
- package/dist/index.modern.js +2965 -0
- package/dist/index.modern.js.map +1 -0
- package/package.json +1 -1
- package/src/Module.js +7 -23
- package/src/components/ConnectionDetailsView.js +130 -0
- package/src/components/DesktopInbox.js +84 -84
- package/src/components/Filter.js +59 -0
- package/src/components/MobileInbox.js +73 -0
- package/src/components/SearchConsumer.js +122 -0
- package/src/components/StatusCards.js +13 -22
- package/src/pages/employee/AadhaarVerification.js +356 -0
- package/src/pages/employee/AddressDetails.js +451 -0
- package/src/pages/employee/Create.js +94 -0
- package/src/pages/employee/Inbox.js +37 -20
- package/src/pages/employee/PropertyInfo.js +353 -0
- package/src/pages/employee/index.js +97 -0
- package/src/components/Search.js +0 -77
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/components/EKYCCard.js","../../../../node_modules/react-hook-form/dist/index.esm.js","../src/components/Search.js","../src/components/StatusCards.js","../src/components/DesktopInbox.js","../src/components/MobileInbox.js","../src/pages/employee/Inbox.js","../src/pages/employee/Create.js","../src/pages/employee/KDetails.js","../src/pages/employee/AadhaarVerification.js","../src/pages/employee/AddressDetails.js","../src/pages/employee/index.js","../src/Module.js"],"sourcesContent":["import { PersonIcon, EmployeeModuleCard } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst EKYCCard = () => {\n const { t } = useTranslation();\n\n const propsForModuleCard = {\n Icon: <PersonIcon />,\n moduleName: t(\"ACTION_TEST_EKYC\"),\n kpis: [\n {\n count: \"-\",\n label: t(\"TOTAL_EKYC\"),\n link: `/digit-ui/employee/ekyc/dashboard`\n }\n ],\n links: [\n {\n label: t(\"EKYC_DASHBOARD\"),\n link: `/digit-ui/employee/ekyc/dashboard`\n },\n {\n label: t(\"EKYC_CREATE_KYC\"),\n link: `/digit-ui/employee/ekyc/create-kyc`\n },\n ]\n }\n\n return <EmployeeModuleCard {...propsForModuleCard} />\n};\n\nexport default EKYCCard;\n","import { isValidElement, useRef, useState, useCallback, useEffect, useMemo, createContext, useContext, createElement, cloneElement } from 'react';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n CHANGE: 'change',\r\n INPUT: 'input',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst SELECT = 'select';\r\nconst UNDEFINED = 'undefined';\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};\n\nfunction attachEventListeners({ ref }, shouldAttachChangeEvent, handleChange) {\r\n if (isHTMLElement(ref) && handleChange) {\r\n ref.addEventListener(shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT, handleChange);\r\n ref.addEventListener(EVENTS.BLUR, handleChange);\r\n }\r\n}\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !(value instanceof Date);\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar compact = (value) => value.filter(Boolean);\n\nvar stringToPath = (input) => compact(input\r\n .replace(/[\"|']/g, '')\r\n .replace(/\\[/g, '.')\r\n .replace(/\\]/g, '')\r\n .split('.'));\n\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) || Array.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, value = {}) => {\r\n for (const key in data) {\r\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\r\n }\r\n return value;\r\n};\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj = {}, path, defaultValue) => {\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => (isNullOrUndefined(result) ? result : result[key]), obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nvar focusOnErrorField = (fields, fieldErrors) => {\r\n for (const key in fields) {\r\n if (get(fieldErrors, key)) {\r\n const field = fields[key];\r\n if (field) {\r\n if (field.ref.focus && isUndefined(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};\n\nvar removeAllEventListeners = (ref, validateWithStateUpdate) => {\r\n if (isHTMLElement(ref) && 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\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.ref.checked\r\n ? {\r\n isValid: true,\r\n value: option.ref.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 isRadioInput = (element) => element.type === 'radio';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isMultipleSelect = (element) => element.type === `${SELECT}-multiple`;\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 (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.ref.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) || 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(fieldsRef, name, shallowFieldsStateRef, excludeDisabled, shouldKeepRawValue) {\r\n const field = fieldsRef.current[name];\r\n if (field) {\r\n const { ref: { value, disabled }, ref, valueAsNumber, valueAsDate, setValueAs, } = field;\r\n if (disabled && excludeDisabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(field.options).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return getMultipleSelectValue(ref.options);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(field.options).value;\r\n }\r\n return shouldKeepRawValue\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate\r\n ? ref.valueAsDate\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\r\n }\r\n if (shallowFieldsStateRef) {\r\n return get(shallowFieldsStateRef.current, name);\r\n }\r\n}\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\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => (isObject(data) && !isEmptyObject(data)) || isBoolean(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nconst isSameRef = (fieldValue, ref) => fieldValue && fieldValue.ref === ref;\r\nfunction findRemovedFieldAndRemoveListener(fieldsRef, handleChange, field, shallowFieldsStateRef, shouldUnregister, forceDelete) {\r\n const { ref, ref: { name }, } = field;\r\n const fieldRef = fieldsRef.current[name];\r\n if (!shouldUnregister) {\r\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\r\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\r\n }\r\n if (!ref.type || !fieldRef) {\r\n delete fieldsRef.current[name];\r\n return;\r\n }\r\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\r\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\r\n compact(fieldRef.options).forEach((option = {}, index) => {\r\n if ((isDetached(option.ref) && isSameRef(option, option.ref)) ||\r\n forceDelete) {\r\n removeAllEventListeners(option.ref, handleChange);\r\n unset(fieldRef.options, `[${index}]`);\r\n }\r\n });\r\n if (fieldRef.options && !compact(fieldRef.options).length) {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n delete fieldsRef.current[name];\r\n }\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepMerge(target, source) {\r\n if (isPrimitive(target) || isPrimitive(source)) {\r\n return source;\r\n }\r\n for (const key in source) {\r\n const targetValue = target[key];\r\n const sourceValue = source[key];\r\n try {\r\n target[key] =\r\n (isObject(targetValue) && isObject(sourceValue)) ||\r\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\r\n ? deepMerge(targetValue, sourceValue)\r\n : sourceValue;\r\n }\r\n catch (_a) { }\r\n }\r\n return target;\r\n}\n\nfunction deepEqual(object1, object2, isErrorObject) {\r\n if (isPrimitive(object1) ||\r\n isPrimitive(object2) ||\r\n object1 instanceof Date ||\r\n object2 instanceof Date) {\r\n return object1 === object2;\r\n }\r\n if (!isValidElement(object1)) {\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!(isErrorObject && key === 'ref')) {\r\n const val2 = object2[key];\r\n if ((isObject(val1) || Array.isArray(val1)) &&\r\n (isObject(val2) || Array.isArray(val2))\r\n ? !deepEqual(val1, val2, isErrorObject)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nfunction setDirtyFields(values, defaultValues, dirtyFields, parentNode, parentName) {\r\n let index = -1;\r\n while (++index < values.length) {\r\n for (const key in values[index]) {\r\n if (Array.isArray(values[index][key])) {\r\n !dirtyFields[index] && (dirtyFields[index] = {});\r\n dirtyFields[index][key] = [];\r\n setDirtyFields(values[index][key], get(defaultValues[index] || {}, key, []), dirtyFields[index][key], dirtyFields[index], key);\r\n }\r\n else {\r\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\r\n ? set(dirtyFields[index] || {}, key)\r\n : (dirtyFields[index] = Object.assign(Object.assign({}, dirtyFields[index]), { [key]: true }));\r\n }\r\n }\r\n parentNode &&\r\n !dirtyFields.length &&\r\n delete parentNode[parentName];\r\n }\r\n return dirtyFields;\r\n}\r\nvar setFieldArrayDirtyFields = (values, defaultValues, dirtyFields) => deepMerge(setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)), setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)));\n\nvar isString = (value) => typeof value === 'string';\n\nvar getFieldsValues = (fieldsRef, shallowFieldsState, shouldUnregister, excludeDisabled, search) => {\r\n const output = {};\r\n for (const name in fieldsRef.current) {\r\n if (isUndefined(search) ||\r\n (isString(search)\r\n ? name.startsWith(search)\r\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))) {\r\n output[name] = getFieldValue(fieldsRef, name, undefined, excludeDisabled);\r\n }\r\n }\r\n return shouldUnregister\r\n ? transformToNestObject(output)\r\n : deepMerge(shallowFieldsState, transformToNestObject(output));\r\n};\n\nvar isErrorStateChanged = ({ errors, name, error, validFields, fieldsWithValidation, }) => {\r\n const isValid = isUndefined(error);\r\n const previousError = get(errors, name);\r\n return ((isValid && !!previousError) ||\r\n (!isValid && !deepEqual(previousError, error, true)) ||\r\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name)));\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isMessage = (value) => isString(value) || isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) || (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? Object.assign(Object.assign({}, errors[name]), { types: Object.assign(Object.assign({}, (errors[name] && errors[name].types ? errors[name].types : {})), { [type]: message || true }) }) : {};\n\nvar validateField = async (fieldsRef, validateAllFieldCriteria, { ref, ref: { value }, options, required, maxLength, minLength, min, max, pattern, validate, }, shallowFieldsStateRef) => {\r\n const name = ref.name;\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = 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 };\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 { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message, ref: isRadioOrCheckbox\r\n ? ((fieldsRef.current[name].options || [])[0] || {}).ref\r\n : ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(value)) {\r\n const valueNumber = ref.valueAsNumber || parseFloat(value);\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(value);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, 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 maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n value.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n value.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && pattern && !isEmpty) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !patternValue.test(value)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message,\r\n ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n const fieldValue = getFieldValue(fieldsRef, name, shallowFieldsStateRef, false, true);\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 let validationResult = {};\r\n for (const [key, validateFunction] of Object.entries(validate)) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateResult = await validateFunction(fieldValue);\r\n const validateError = getValidateError(validateResult, validateRef, key);\r\n if (validateError) {\r\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\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 getPath = (rootPath, values, paths = []) => {\r\n for (const property in values) {\r\n const rootName = (rootPath +\r\n (isObject(values)\r\n ? `.${property}`\r\n : `[${property}]`));\r\n isPrimitive(values[property])\r\n ? paths.push(rootName)\r\n : getPath(rootName, values[property], paths);\r\n }\r\n return paths;\r\n};\n\nvar assignWatchFields = (fieldValues, fieldName, watchFields, inputValue, isSingleField) => {\r\n let value = undefined;\r\n watchFields.add(fieldName);\r\n if (!isEmptyObject(fieldValues)) {\r\n value = get(fieldValues, fieldName);\r\n if (isObject(value) || Array.isArray(value)) {\r\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\r\n }\r\n }\r\n return isUndefined(value)\r\n ? isSingleField\r\n ? inputValue\r\n : get(inputValue, fieldName)\r\n : value;\r\n};\n\nvar skipValidation = ({ isOnBlur, isOnChange, isOnTouch, isTouched, isReValidateOnBlur, isReValidateOnChange, isBlurEvent, isSubmitted, isOnAll, }) => {\r\n if (isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? isReValidateOnChange : isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar getFieldArrayParentName = (name) => name.substring(0, name.indexOf('['));\n\nconst isMatchFieldArrayName = (name, searchName) => RegExp(`^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]')).test(name);\r\nvar isNameInFieldArray = (names, name) => [...names].some((current) => isMatchFieldArrayName(name, current));\n\nvar isSelectInput = (element) => element.type === `${SELECT}-one`;\n\nfunction onDomRemove(fieldsRef, removeFieldEventListenerAndRef) {\r\n const observer = new MutationObserver(() => {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field && field.options) {\r\n for (const option of field.options) {\r\n if (option && option.ref && isDetached(option.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\r\n }\r\n }\r\n else if (field && isDetached(field.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\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\nvar isWeb = typeof window !== UNDEFINED && typeof document !== UNDEFINED;\n\nfunction cloneObject(data) {\r\n var _a;\r\n let copy;\r\n if (isPrimitive(data) ||\r\n (isWeb && (data instanceof File || isHTMLElement(data)))) {\r\n return data;\r\n }\r\n if (!['Set', 'Map', 'Object', 'Date', 'Array'].includes((_a = data.constructor) === null || _a === void 0 ? void 0 : _a.name)) {\r\n return data;\r\n }\r\n if (data instanceof Date) {\r\n copy = new Date(data.getTime());\r\n return copy;\r\n }\r\n if (data instanceof Set) {\r\n copy = new Set();\r\n for (const item of data) {\r\n copy.add(item);\r\n }\r\n return copy;\r\n }\r\n if (data instanceof Map) {\r\n copy = new Map();\r\n for (const key of data.keys()) {\r\n copy.set(key, cloneObject(data.get(key)));\r\n }\r\n return copy;\r\n }\r\n copy = Array.isArray(data) ? [] : {};\r\n for (const key in data) {\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n return copy;\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 isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isRadioOrCheckboxFunction = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nconst isWindowUndefined = typeof window === UNDEFINED;\r\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\r\nfunction useForm({ mode = VALIDATION_MODE.onSubmit, reValidateMode = VALIDATION_MODE.onChange, resolver, context, defaultValues = {}, shouldFocusError = true, shouldUnregister = true, criteriaMode, } = {}) {\r\n const fieldsRef = useRef({});\r\n const fieldArrayDefaultValuesRef = useRef({});\r\n const fieldArrayValuesRef = useRef({});\r\n const watchFieldsRef = useRef(new Set());\r\n const useWatchFieldsRef = useRef({});\r\n const useWatchRenderFunctionsRef = useRef({});\r\n const fieldsWithValidationRef = useRef({});\r\n const validFieldsRef = useRef({});\r\n const defaultValuesRef = useRef(defaultValues);\r\n const isUnMount = useRef(false);\r\n const isWatchAllRef = useRef(false);\r\n const handleChangeRef = useRef();\r\n const shallowFieldsStateRef = useRef({});\r\n const resetFieldArrayFunctionRef = useRef({});\r\n const contextRef = useRef(context);\r\n const resolverRef = useRef(resolver);\r\n const fieldArrayNamesRef = useRef(new Set());\r\n const modeRef = useRef(modeChecker(mode));\r\n const { isOnSubmit, isOnTouch } = modeRef.current;\r\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\r\n const [formState, setFormState] = useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touched: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: !isOnSubmit,\r\n errors: {},\r\n });\r\n const readFormStateRef = useRef({\r\n isDirty: !isProxyEnabled,\r\n dirtyFields: !isProxyEnabled,\r\n touched: !isProxyEnabled || isOnTouch,\r\n isValidating: !isProxyEnabled,\r\n isSubmitting: !isProxyEnabled,\r\n isValid: !isProxyEnabled,\r\n });\r\n const formStateRef = useRef(formState);\r\n const observerRef = useRef();\r\n const { isOnBlur: isReValidateOnBlur, isOnChange: isReValidateOnChange, } = useRef(modeChecker(reValidateMode)).current;\r\n contextRef.current = context;\r\n resolverRef.current = resolver;\r\n formStateRef.current = formState;\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : isEmptyObject(shallowFieldsStateRef.current)\r\n ? cloneObject(defaultValues)\r\n : shallowFieldsStateRef.current;\r\n const updateFormState = useCallback((state = {}) => {\r\n if (!isUnMount.current) {\r\n formStateRef.current = Object.assign(Object.assign({}, formStateRef.current), state);\r\n setFormState(formStateRef.current);\r\n }\r\n }, []);\r\n const updateIsValidating = () => readFormStateRef.current.isValidating &&\r\n updateFormState({\r\n isValidating: true,\r\n });\r\n const shouldRenderBaseOnError = useCallback((name, error, shouldRender = false, state = {}, isValid) => {\r\n let shouldReRender = shouldRender ||\r\n isErrorStateChanged({\r\n errors: formStateRef.current.errors,\r\n error,\r\n name,\r\n validFields: validFieldsRef.current,\r\n fieldsWithValidation: fieldsWithValidationRef.current,\r\n });\r\n const previousError = get(formStateRef.current.errors, name);\r\n if (error) {\r\n unset(validFieldsRef.current, name);\r\n shouldReRender =\r\n shouldReRender ||\r\n !previousError ||\r\n !deepEqual(previousError, error, true);\r\n set(formStateRef.current.errors, name, error);\r\n }\r\n else {\r\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\r\n set(validFieldsRef.current, name, true);\r\n shouldReRender = shouldReRender || previousError;\r\n }\r\n unset(formStateRef.current.errors, name);\r\n }\r\n if ((shouldReRender && !isNullOrUndefined(shouldRender)) ||\r\n !isEmptyObject(state) ||\r\n readFormStateRef.current.isValidating) {\r\n updateFormState(Object.assign(Object.assign(Object.assign({}, state), (resolverRef.current ? { isValid: !!isValid } : {})), { isValidating: false }));\r\n }\r\n }, []);\r\n const setFieldValue = useCallback((name, rawValue) => {\r\n const { ref, options } = fieldsRef.current[name];\r\n const value = isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\r\n ? ''\r\n : rawValue;\r\n if (isRadioInput(ref)) {\r\n (options || []).forEach(({ ref: radioRef }) => (radioRef.checked = radioRef.value === value));\r\n }\r\n else if (isFileInput(ref) && !isString(value)) {\r\n ref.files = value;\r\n }\r\n else if (isMultipleSelect(ref)) {\r\n [...ref.options].forEach((selectRef) => (selectRef.selected = value.includes(selectRef.value)));\r\n }\r\n else if (isCheckBoxInput(ref) && options) {\r\n options.length > 1\r\n ? options.forEach(({ ref: checkboxRef }) => (checkboxRef.checked = Array.isArray(value)\r\n ? !!value.find((data) => data === checkboxRef.value)\r\n : value === checkboxRef.value))\r\n : (options[0].ref.checked = !!value);\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n }, []);\r\n const isFormDirty = useCallback((name, data) => {\r\n if (readFormStateRef.current.isDirty) {\r\n const formValues = getValues();\r\n name && data && set(formValues, name, data);\r\n return !deepEqual(formValues, defaultValuesRef.current);\r\n }\r\n return false;\r\n }, []);\r\n const updateAndGetDirtyState = useCallback((name, shouldRender = true) => {\r\n if (readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) {\r\n const isFieldDirty = !deepEqual(get(defaultValuesRef.current, name), getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\r\n const previousIsDirty = formStateRef.current.isDirty;\r\n isFieldDirty\r\n ? set(formStateRef.current.dirtyFields, name, true)\r\n : unset(formStateRef.current.dirtyFields, name);\r\n const state = {\r\n isDirty: isFormDirty(),\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n };\r\n const isChanged = (readFormStateRef.current.isDirty &&\r\n previousIsDirty !== state.isDirty) ||\r\n (readFormStateRef.current.dirtyFields &&\r\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\r\n isChanged && shouldRender && updateFormState(state);\r\n return isChanged ? state : {};\r\n }\r\n return {};\r\n }, []);\r\n const executeValidation = useCallback(async (name, skipReRender) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!fieldsRef.current[name]) {\r\n console.warn('📋 Field is missing with `name` attribute: ', name);\r\n return false;\r\n }\r\n }\r\n const error = (await validateField(fieldsRef, isValidateAllFieldCriteria, fieldsRef.current[name], shallowFieldsStateRef))[name];\r\n shouldRenderBaseOnError(name, error, skipReRender);\r\n return isUndefined(error);\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const executeSchemaOrResolverValidation = useCallback(async (names) => {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n if (Array.isArray(names)) {\r\n const isInputsValid = names\r\n .map((name) => {\r\n const error = get(errors, name);\r\n error\r\n ? set(formStateRef.current.errors, name, error)\r\n : unset(formStateRef.current.errors, name);\r\n return !error;\r\n })\r\n .every(Boolean);\r\n updateFormState({\r\n isValid: isEmptyObject(errors),\r\n isValidating: false,\r\n });\r\n return isInputsValid;\r\n }\r\n else {\r\n const error = get(errors, names);\r\n shouldRenderBaseOnError(names, error, previousFormIsValid !== isEmptyObject(errors), {}, isEmptyObject(errors));\r\n return !error;\r\n }\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const trigger = useCallback(async (name) => {\r\n const fields = name || Object.keys(fieldsRef.current);\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n return executeSchemaOrResolverValidation(fields);\r\n }\r\n if (Array.isArray(fields)) {\r\n !name && (formStateRef.current.errors = {});\r\n const result = await Promise.all(fields.map(async (data) => await executeValidation(data, null)));\r\n updateFormState({\r\n isValidating: false,\r\n });\r\n return result.every(Boolean);\r\n }\r\n return await executeValidation(fields);\r\n }, [executeSchemaOrResolverValidation, executeValidation]);\r\n const setInternalValues = useCallback((name, value, { shouldDirty, shouldValidate }) => {\r\n const data = {};\r\n set(data, name, value);\r\n for (const fieldName of getPath(name, value)) {\r\n if (fieldsRef.current[fieldName]) {\r\n setFieldValue(fieldName, get(data, fieldName));\r\n shouldDirty && updateAndGetDirtyState(fieldName);\r\n shouldValidate && trigger(fieldName);\r\n }\r\n }\r\n }, [trigger, setFieldValue, updateAndGetDirtyState]);\r\n const setInternalValue = useCallback((name, value, config) => {\r\n !shouldUnregister &&\r\n !isPrimitive(value) &&\r\n set(shallowFieldsStateRef.current, name, Array.isArray(value) ? [...value] : Object.assign({}, value));\r\n if (fieldsRef.current[name]) {\r\n setFieldValue(name, value);\r\n config.shouldDirty && updateAndGetDirtyState(name);\r\n config.shouldValidate && trigger(name);\r\n }\r\n else if (!isPrimitive(value)) {\r\n setInternalValues(name, value, config);\r\n if (fieldArrayNamesRef.current.has(name)) {\r\n const parentName = getFieldArrayParentName(name) || name;\r\n set(fieldArrayDefaultValuesRef.current, name, value);\r\n resetFieldArrayFunctionRef.current[parentName]({\r\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\r\n });\r\n if ((readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) &&\r\n config.shouldDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(value, get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateFormState({\r\n isDirty: !deepEqual(Object.assign(Object.assign({}, getValues()), { [name]: value }), defaultValuesRef.current),\r\n });\r\n }\r\n }\r\n }\r\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\r\n }, [updateAndGetDirtyState, setFieldValue, setInternalValues]);\r\n const isFieldWatched = (name) => isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name) ||\r\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\r\n const renderWatchedInputs = (name) => {\r\n let found = true;\r\n if (!isEmptyObject(useWatchFieldsRef.current)) {\r\n for (const key in useWatchFieldsRef.current) {\r\n if (!name ||\r\n !useWatchFieldsRef.current[key].size ||\r\n useWatchFieldsRef.current[key].has(name) ||\r\n useWatchFieldsRef.current[key].has(getFieldArrayParentName(name))) {\r\n useWatchRenderFunctionsRef.current[key]();\r\n found = false;\r\n }\r\n }\r\n }\r\n return found;\r\n };\r\n function setValue(name, value, config) {\r\n setInternalValue(name, value, config || {});\r\n isFieldWatched(name) && updateFormState();\r\n renderWatchedInputs(name);\r\n }\r\n handleChangeRef.current = handleChangeRef.current\r\n ? handleChangeRef.current\r\n : async ({ type, target }) => {\r\n let name = target.name;\r\n const field = fieldsRef.current[name];\r\n let error;\r\n let isValid;\r\n if (field) {\r\n const isBlurEvent = type === EVENTS.BLUR;\r\n const shouldSkipValidation = skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnChange,\r\n isReValidateOnBlur, isTouched: !!get(formStateRef.current.touched, name), isSubmitted: formStateRef.current.isSubmitted }, modeRef.current));\r\n let state = updateAndGetDirtyState(name, false);\r\n let shouldRender = !isEmptyObject(state) ||\r\n (!isBlurEvent && isFieldWatched(name));\r\n if (isBlurEvent &&\r\n !get(formStateRef.current.touched, name) &&\r\n readFormStateRef.current.touched) {\r\n set(formStateRef.current.touched, name, true);\r\n state = Object.assign(Object.assign({}, state), { touched: formStateRef.current.touched });\r\n }\r\n if (!shouldUnregister && isCheckBoxInput(target)) {\r\n set(shallowFieldsStateRef.current, name, getFieldValue(fieldsRef, name));\r\n }\r\n if (shouldSkipValidation) {\r\n !isBlurEvent && renderWatchedInputs(name);\r\n return ((!isEmptyObject(state) ||\r\n (shouldRender && isEmptyObject(state))) &&\r\n updateFormState(state));\r\n }\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n error = get(errors, name);\r\n if (isCheckBoxInput(target) &&\r\n !error &&\r\n resolverRef.current) {\r\n const parentNodeName = getFieldArrayParentName(name);\r\n const currentError = get(errors, parentNodeName, {});\r\n currentError.type &&\r\n currentError.message &&\r\n (error = currentError);\r\n if (parentNodeName &&\r\n (currentError ||\r\n get(formStateRef.current.errors, parentNodeName))) {\r\n name = parentNodeName;\r\n }\r\n }\r\n isValid = isEmptyObject(errors);\r\n previousFormIsValid !== isValid && (shouldRender = true);\r\n }\r\n else {\r\n error = (await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef))[name];\r\n }\r\n !isBlurEvent && renderWatchedInputs(name);\r\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\r\n }\r\n };\r\n function setFieldArrayDefaultValues(data) {\r\n if (!shouldUnregister) {\r\n let copy = cloneObject(data);\r\n for (const value of fieldArrayNamesRef.current) {\r\n if (isKey(value) && !copy[value]) {\r\n copy = Object.assign(Object.assign({}, copy), { [value]: [] });\r\n }\r\n }\r\n return copy;\r\n }\r\n return data;\r\n }\r\n function getValues(payload) {\r\n if (isString(payload)) {\r\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\r\n }\r\n if (Array.isArray(payload)) {\r\n const data = {};\r\n for (const name of payload) {\r\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n }\r\n return data;\r\n }\r\n return setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister));\r\n }\r\n const validateResolver = useCallback(async (values = {}) => {\r\n const newDefaultValues = isEmptyObject(fieldsRef.current)\r\n ? defaultValuesRef.current\r\n : {};\r\n const { errors } = (await resolverRef.current(Object.assign(Object.assign(Object.assign({}, newDefaultValues), getValues()), values), contextRef.current, isValidateAllFieldCriteria)) || {};\r\n const isValid = isEmptyObject(errors);\r\n formStateRef.current.isValid !== isValid &&\r\n updateFormState({\r\n isValid,\r\n });\r\n }, [isValidateAllFieldCriteria]);\r\n const removeFieldEventListener = useCallback((field, forceDelete) => {\r\n findRemovedFieldAndRemoveListener(fieldsRef, handleChangeRef.current, field, shallowFieldsStateRef, shouldUnregister, forceDelete);\r\n if (shouldUnregister) {\r\n unset(validFieldsRef.current, field.ref.name);\r\n unset(fieldsWithValidationRef.current, field.ref.name);\r\n }\r\n }, [shouldUnregister]);\r\n const updateWatchedValue = useCallback((name) => {\r\n if (isWatchAllRef.current) {\r\n updateFormState();\r\n }\r\n else {\r\n for (const watchField of watchFieldsRef.current) {\r\n if (watchField.startsWith(name)) {\r\n updateFormState();\r\n break;\r\n }\r\n }\r\n renderWatchedInputs(name);\r\n }\r\n }, []);\r\n const removeFieldEventListenerAndRef = useCallback((field, forceDelete) => {\r\n if (field) {\r\n removeFieldEventListener(field, forceDelete);\r\n if (shouldUnregister && !compact(field.options || []).length) {\r\n unset(formStateRef.current.errors, field.ref.name);\r\n set(formStateRef.current.dirtyFields, field.ref.name, true);\r\n updateFormState({\r\n isDirty: isFormDirty(),\r\n });\r\n readFormStateRef.current.isValid &&\r\n resolverRef.current &&\r\n validateResolver();\r\n updateWatchedValue(field.ref.name);\r\n }\r\n }\r\n }, [validateResolver, removeFieldEventListener]);\r\n function clearErrors(name) {\r\n name &&\r\n (Array.isArray(name) ? name : [name]).forEach((inputName) => fieldsRef.current[inputName] && isKey(inputName)\r\n ? delete formStateRef.current.errors[inputName]\r\n : unset(formStateRef.current.errors, inputName));\r\n updateFormState({\r\n errors: name ? formStateRef.current.errors : {},\r\n });\r\n }\r\n function setError(name, error) {\r\n const ref = (fieldsRef.current[name] || {}).ref;\r\n set(formStateRef.current.errors, name, Object.assign(Object.assign({}, error), { ref }));\r\n updateFormState({\r\n isValid: false,\r\n });\r\n error.shouldFocus && ref && ref.focus && ref.focus();\r\n }\r\n const watchInternal = useCallback((fieldNames, defaultValue, watchId) => {\r\n const watchFields = watchId\r\n ? useWatchFieldsRef.current[watchId]\r\n : watchFieldsRef.current;\r\n let fieldValues = getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, false, fieldNames);\r\n if (isString(fieldNames)) {\r\n const parentNodeName = getFieldArrayParentName(fieldNames) || fieldNames;\r\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\r\n fieldValues = Object.assign(Object.assign({}, fieldArrayValuesRef.current), fieldValues);\r\n }\r\n return assignWatchFields(fieldValues, fieldNames, watchFields, isUndefined(get(defaultValuesRef.current, fieldNames))\r\n ? defaultValue\r\n : get(defaultValuesRef.current, fieldNames), true);\r\n }\r\n const combinedDefaultValues = isUndefined(defaultValue)\r\n ? defaultValuesRef.current\r\n : defaultValue;\r\n if (Array.isArray(fieldNames)) {\r\n return fieldNames.reduce((previous, name) => (Object.assign(Object.assign({}, previous), { [name]: assignWatchFields(fieldValues, name, watchFields, combinedDefaultValues) })), {});\r\n }\r\n isWatchAllRef.current = isUndefined(watchId);\r\n return transformToNestObject((!isEmptyObject(fieldValues) && fieldValues) ||\r\n combinedDefaultValues);\r\n }, []);\r\n function watch(fieldNames, defaultValue) {\r\n return watchInternal(fieldNames, defaultValue);\r\n }\r\n function unregister(name) {\r\n for (const fieldName of Array.isArray(name) ? name : [name]) {\r\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\r\n }\r\n }\r\n function registerFieldRef(ref, options = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!ref.name) {\r\n return console.warn('📋 Field is missing `name` attribute', ref, `https://react-hook-form.com/api#useForm`);\r\n }\r\n if (fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\r\n !RegExp(`^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\r\n .replace(/\\[/g, '\\\\[')\r\n .replace(/\\]/g, '\\\\]')).test(ref.name)) {\r\n return console.warn('📋 `name` prop should be in object shape: name=\"test[index].name\"', ref, 'https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const { name, type, value } = ref;\r\n const fieldRefAndValidationOptions = Object.assign({ ref }, options);\r\n const fields = fieldsRef.current;\r\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\r\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const compareRef = (currentRef) => isWeb && (!isHTMLElement(ref) || currentRef === ref);\r\n let field = fields[name];\r\n let isEmptyDefaultValue = true;\r\n let defaultValue;\r\n if (field &&\r\n (isRadioOrCheckbox\r\n ? Array.isArray(field.options) &&\r\n compact(field.options).find((option) => {\r\n return value === option.ref.value && compareRef(option.ref);\r\n })\r\n : compareRef(field.ref))) {\r\n fields[name] = Object.assign(Object.assign({}, field), options);\r\n return;\r\n }\r\n if (type) {\r\n field = isRadioOrCheckbox\r\n ? Object.assign({ options: [\r\n ...compact((field && field.options) || []),\r\n {\r\n ref,\r\n },\r\n ], ref: { type, name } }, options) : Object.assign({}, fieldRefAndValidationOptions);\r\n }\r\n else {\r\n field = fieldRefAndValidationOptions;\r\n }\r\n fields[name] = field;\r\n const isEmptyUnmountFields = isUndefined(get(shallowFieldsStateRef.current, name));\r\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\r\n defaultValue = get(isEmptyUnmountFields\r\n ? defaultValuesRef.current\r\n : shallowFieldsStateRef.current, name);\r\n isEmptyDefaultValue = isUndefined(defaultValue);\r\n if (!isEmptyDefaultValue && !isFieldArray) {\r\n setFieldValue(name, defaultValue);\r\n }\r\n }\r\n if (!isEmptyObject(options)) {\r\n set(fieldsWithValidationRef.current, name, true);\r\n if (!isOnSubmit && readFormStateRef.current.isValid) {\r\n validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef).then((error) => {\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n isEmptyObject(error)\r\n ? set(validFieldsRef.current, name, true)\r\n : unset(validFieldsRef.current, name);\r\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\r\n });\r\n }\r\n }\r\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\r\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\r\n }\r\n if (type) {\r\n attachEventListeners(isRadioOrCheckbox && field.options\r\n ? field.options[field.options.length - 1]\r\n : field, isRadioOrCheckbox || isSelectInput(ref), handleChangeRef.current);\r\n }\r\n }\r\n function register(refOrRegisterOptions, options) {\r\n if (!isWindowUndefined) {\r\n if (isString(refOrRegisterOptions)) {\r\n registerFieldRef({ name: refOrRegisterOptions }, options);\r\n }\r\n else if (isObject(refOrRegisterOptions) &&\r\n 'name' in refOrRegisterOptions) {\r\n registerFieldRef(refOrRegisterOptions, options);\r\n }\r\n else {\r\n return (ref) => ref && registerFieldRef(ref, refOrRegisterOptions);\r\n }\r\n }\r\n }\r\n const handleSubmit = useCallback((onValid, onInvalid) => async (e) => {\r\n if (e && e.preventDefault) {\r\n e.preventDefault();\r\n e.persist();\r\n }\r\n let fieldErrors = {};\r\n let fieldValues = setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, true));\r\n readFormStateRef.current.isSubmitting &&\r\n updateFormState({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (resolverRef.current) {\r\n const { errors, values } = await resolverRef.current(fieldValues, contextRef.current, isValidateAllFieldCriteria);\r\n formStateRef.current.errors = fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { name } = field.ref;\r\n const fieldError = await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef);\r\n if (fieldError[name]) {\r\n set(fieldErrors, name, fieldError[name]);\r\n unset(validFieldsRef.current, name);\r\n }\r\n else if (get(fieldsWithValidationRef.current, name)) {\r\n unset(formStateRef.current.errors, name);\r\n set(validFieldsRef.current, name, true);\r\n }\r\n }\r\n }\r\n }\r\n if (isEmptyObject(fieldErrors) &&\r\n Object.keys(formStateRef.current.errors).every((name) => name in fieldsRef.current)) {\r\n updateFormState({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n formStateRef.current.errors = Object.assign(Object.assign({}, formStateRef.current.errors), fieldErrors);\r\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\r\n shouldFocusError &&\r\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\r\n }\r\n }\r\n finally {\r\n formStateRef.current.isSubmitting = false;\r\n updateFormState({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\r\n submitCount: formStateRef.current.submitCount + 1,\r\n });\r\n }\r\n }, [shouldFocusError, isValidateAllFieldCriteria]);\r\n const resetRefs = ({ errors, isDirty, isSubmitted, touched, isValid, submitCount, dirtyFields, }) => {\r\n if (!isValid) {\r\n validFieldsRef.current = {};\r\n fieldsWithValidationRef.current = {};\r\n }\r\n fieldArrayDefaultValuesRef.current = {};\r\n watchFieldsRef.current = new Set();\r\n isWatchAllRef.current = false;\r\n updateFormState({\r\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\r\n isDirty: isDirty ? formStateRef.current.isDirty : false,\r\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\r\n isValid: isValid ? formStateRef.current.isValid : false,\r\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\r\n touched: touched ? formStateRef.current.touched : {},\r\n errors: errors ? formStateRef.current.errors : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const reset = (values, omitResetState = {}) => {\r\n if (isWeb) {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { ref, options } = field;\r\n const inputRef = isRadioOrCheckboxFunction(ref) && Array.isArray(options)\r\n ? options[0].ref\r\n : ref;\r\n if (isHTMLElement(inputRef)) {\r\n try {\r\n inputRef.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n }\r\n fieldsRef.current = {};\r\n defaultValuesRef.current = Object.assign({}, (values || defaultValuesRef.current));\r\n values && renderWatchedInputs('');\r\n Object.values(resetFieldArrayFunctionRef.current).forEach((resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray());\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : cloneObject(values || defaultValuesRef.current);\r\n resetRefs(omitResetState);\r\n };\r\n useEffect(() => {\r\n resolver && readFormStateRef.current.isValid && validateResolver();\r\n observerRef.current =\r\n observerRef.current || !isWeb\r\n ? observerRef.current\r\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\r\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\r\n useEffect(() => () => {\r\n observerRef.current && observerRef.current.disconnect();\r\n isUnMount.current = true;\r\n if (process.env.NODE_ENV !== 'production') {\r\n return;\r\n }\r\n Object.values(fieldsRef.current).forEach((field) => removeFieldEventListenerAndRef(field, true));\r\n }, []);\r\n if (!resolver && readFormStateRef.current.isValid) {\r\n formState.isValid =\r\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\r\n isEmptyObject(formStateRef.current.errors);\r\n }\r\n const commonProps = {\r\n trigger,\r\n setValue: useCallback(setValue, [setInternalValue, trigger]),\r\n getValues: useCallback(getValues, []),\r\n register: useCallback(register, [defaultValuesRef.current]),\r\n unregister: useCallback(unregister, []),\r\n formState: isProxyEnabled\r\n ? new Proxy(formState, {\r\n get: (obj, prop) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (prop === 'isValid' && isOnSubmit) {\r\n console.warn('📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState');\r\n }\r\n }\r\n if (prop in obj) {\r\n readFormStateRef.current[prop] = true;\r\n return obj[prop];\r\n }\r\n return undefined;\r\n },\r\n })\r\n : formState,\r\n };\r\n const control = useMemo(() => (Object.assign({ isFormDirty,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n updateFormState,\r\n removeFieldEventListener,\r\n watchInternal, mode: modeRef.current, reValidateMode: {\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n }, validateResolver: resolver ? validateResolver : undefined, fieldsRef,\r\n resetFieldArrayFunctionRef,\r\n useWatchFieldsRef,\r\n useWatchRenderFunctionsRef,\r\n fieldArrayDefaultValuesRef,\r\n validFieldsRef,\r\n fieldsWithValidationRef,\r\n fieldArrayNamesRef,\r\n readFormStateRef,\r\n formStateRef,\r\n defaultValuesRef,\r\n shallowFieldsStateRef,\r\n fieldArrayValuesRef }, commonProps)), [\r\n defaultValuesRef.current,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n removeFieldEventListener,\r\n watchInternal,\r\n ]);\r\n return Object.assign({ watch,\r\n control,\r\n handleSubmit, reset: useCallback(reset, []), clearErrors: useCallback(clearErrors, []), setError: useCallback(setError, []), errors: formState.errors }, commonProps);\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\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 FormContext = createContext(null);\r\nFormContext.displayName = 'RHFContext';\r\nconst useFormContext = () => useContext(FormContext);\r\nconst FormProvider = (_a) => {\r\n var { children } = _a, props = __rest(_a, [\"children\"]);\r\n return (createElement(FormContext.Provider, { value: Object.assign({}, props) }, 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, (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\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, (Array.isArray(index) ? index : [index]).sort((a, b) => a - b));\n\nvar moveArrayAt = (data, from, to) => {\r\n if (Array.isArray(data)) {\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n }\r\n return [];\r\n};\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n const temp = [data[indexB], data[indexA]];\r\n data[indexA] = temp[0];\r\n data[indexB] = temp[1];\r\n};\n\nfunction prepend(data, value) {\r\n return [...(Array.isArray(value) ? value : [value || undefined]), ...data];\r\n}\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...(Array.isArray(value) ? value : [value || undefined]),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? Array(value.length).fill(undefined) : undefined;\n\nvar fillBooleanArray = (value) => (Array.isArray(value) ? value : [value]).map((data) => {\r\n if (isObject(data)) {\r\n const object = {};\r\n for (const key in data) {\r\n object[key] = true;\r\n }\r\n return object;\r\n }\r\n return true;\r\n});\n\nconst mapIds = (values = [], keyName, skipWarn) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!skipWarn) {\r\n for (const value of values) {\r\n if (typeof value === 'object') {\r\n if (keyName in value) {\r\n console.warn(`📋 useFieldArray fieldValues contain the keyName \\`${keyName}\\` which is reserved for use by useFieldArray. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n else {\r\n console.warn(`📋 useFieldArray input's name should be in object shape instead of flat array. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return values.map((value) => (Object.assign({ [keyName]: value[keyName] || generateId() }, value)));\r\n};\r\nconst useFieldArray = ({ control, name, keyName = 'id', }) => {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useFieldArray is missing `control` prop. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const focusIndexRef = useRef(-1);\r\n const isUnMount = useRef(false);\r\n const { isFormDirty, updateWatchedValue, resetFieldArrayFunctionRef, fieldArrayNamesRef, fieldsRef, defaultValuesRef, removeFieldEventListener, formStateRef, shallowFieldsStateRef, updateFormState, readFormStateRef, validFieldsRef, fieldsWithValidationRef, fieldArrayDefaultValuesRef, validateResolver, getValues, shouldUnregister, fieldArrayValuesRef, } = control || methods.control;\r\n const getDefaultValues = (values) => get(shouldUnregister ? values : shallowFieldsStateRef.current, name, []);\r\n const fieldArrayParentName = getFieldArrayParentName(name);\r\n const memoizedDefaultValues = useRef([\r\n ...(get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\r\n ? getDefaultValues(fieldArrayDefaultValuesRef.current)\r\n : getDefaultValues(defaultValuesRef.current)),\r\n ]);\r\n const [fields, setFields] = useState(mapIds(memoizedDefaultValues.current, keyName));\r\n set(fieldArrayValuesRef.current, name, compact(fields));\r\n const omitKey = (fields) => fields.map((_a = {}) => {\r\n var _b = keyName, omitted = _a[_b], rest = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\r\n return rest;\r\n });\r\n fieldArrayNamesRef.current.add(name);\r\n const getFieldArrayValue = useCallback(() => get(fieldArrayValuesRef.current, name, []), [name]);\r\n const getCurrentFieldsValues = () => mapIds(get(getValues(), name, getFieldArrayValue()).map((item, index) => (Object.assign(Object.assign({}, getFieldArrayValue()[index]), item))), keyName, true);\r\n fieldArrayNamesRef.current.add(name);\r\n if (fieldArrayParentName &&\r\n !get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)) {\r\n set(fieldArrayDefaultValuesRef.current, fieldArrayParentName, cloneObject(get(defaultValuesRef.current, fieldArrayParentName)));\r\n }\r\n const setFieldAndValidState = (fieldsValues) => {\r\n setFields(fieldsValues);\r\n set(fieldArrayValuesRef.current, name, fieldsValues);\r\n if (readFormStateRef.current.isValid && validateResolver) {\r\n const values = getValues();\r\n set(values, name, fieldsValues);\r\n validateResolver(values);\r\n }\r\n };\r\n const resetFields = () => {\r\n for (const key in fieldsRef.current) {\r\n if (isMatchFieldArrayName(key, name)) {\r\n removeFieldEventListener(fieldsRef.current[key], true);\r\n delete fieldsRef.current[key];\r\n }\r\n }\r\n };\r\n const cleanup = (ref) => !compact(get(ref, name, [])).length && unset(ref, name);\r\n const updateDirtyFieldsWithDefaultValues = (updatedFieldArrayValues) => {\r\n if (updatedFieldArrayValues) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFieldArrayValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n }\r\n };\r\n const batchStateUpdate = (method, args, updatedFieldValues, updatedFormValues = [], shouldSet = true, shouldUpdateValid = false) => {\r\n if (get(shallowFieldsStateRef.current, name)) {\r\n const output = method(get(shallowFieldsStateRef.current, name), args.argA, args.argB);\r\n shouldSet && set(shallowFieldsStateRef.current, name, output);\r\n }\r\n if (get(fieldArrayDefaultValuesRef.current, name)) {\r\n const output = method(get(fieldArrayDefaultValuesRef.current, name), args.argA, args.argB);\r\n shouldSet && set(fieldArrayDefaultValuesRef.current, name, output);\r\n }\r\n if (Array.isArray(get(formStateRef.current.errors, name))) {\r\n const output = method(get(formStateRef.current.errors, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.errors, name, output);\r\n cleanup(formStateRef.current.errors);\r\n }\r\n if (readFormStateRef.current.touched &&\r\n get(formStateRef.current.touched, name)) {\r\n const output = method(get(formStateRef.current.touched, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.touched, name, output);\r\n cleanup(formStateRef.current.touched);\r\n }\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFormValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateDirtyFieldsWithDefaultValues(updatedFieldValues);\r\n cleanup(formStateRef.current.dirtyFields);\r\n }\r\n if (shouldUpdateValid &&\r\n readFormStateRef.current.isValid &&\r\n !validateResolver) {\r\n set(validFieldsRef.current, name, method(get(validFieldsRef.current, name, []), args.argA));\r\n cleanup(validFieldsRef.current);\r\n set(fieldsWithValidationRef.current, name, method(get(fieldsWithValidationRef.current, name, []), args.argA));\r\n cleanup(fieldsWithValidationRef.current);\r\n }\r\n if (!isUnMount.current && readFormStateRef.current.isDirty) {\r\n updateFormState({\r\n isDirty: isFormDirty(name, omitKey(updatedFormValues)),\r\n });\r\n }\r\n };\r\n const append = (value, shouldFocus = true) => {\r\n const appendValue = Array.isArray(value) ? value : [value];\r\n const updateFormValues = [\r\n ...getCurrentFieldsValues(),\r\n ...mapIds(appendValue, keyName),\r\n ];\r\n setFieldAndValidState(updateFormValues);\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n updateDirtyFieldsWithDefaultValues(updateFormValues);\r\n updateFormState({\r\n isDirty: true,\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n });\r\n }\r\n !shouldUnregister &&\r\n set(shallowFieldsStateRef.current, name, [\r\n ...(get(shallowFieldsStateRef.current, name) || []),\r\n ...cloneObject(appendValue),\r\n ]);\r\n focusIndexRef.current = shouldFocus\r\n ? get(fieldArrayValuesRef.current, name).length - 1\r\n : -1;\r\n };\r\n const prepend$1 = (value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const updatedFieldArrayValues = prepend(getCurrentFieldsValues(), mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(prepend, {\r\n argA: emptyArray,\r\n argC: fillBooleanArray(value),\r\n }, updatedFieldArrayValues);\r\n focusIndexRef.current = shouldFocus ? 0 : -1;\r\n };\r\n const remove = (index) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldValues = removeArrayAt(fieldValues, index);\r\n setFieldAndValidState(updatedFieldValues);\r\n resetFields();\r\n batchStateUpdate(removeArrayAt, {\r\n argA: index,\r\n argC: index,\r\n }, updatedFieldValues, removeArrayAt(fieldValues, index), true, true);\r\n };\r\n const insert$1 = (index, value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldArrayValues = insert(fieldValues, index, mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(insert, {\r\n argA: index,\r\n argB: emptyArray,\r\n argC: index,\r\n argD: fillBooleanArray(value),\r\n }, updatedFieldArrayValues, insert(fieldValues, index));\r\n focusIndexRef.current = shouldFocus ? index : -1;\r\n };\r\n const swap = (indexA, indexB) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n swapArrayAt(fieldValues, indexA, indexB);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n argC: indexA,\r\n argD: indexB,\r\n }, undefined, fieldValues, false);\r\n };\r\n const move = (from, to) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n moveArrayAt(fieldValues, from, to);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n argC: from,\r\n argD: to,\r\n }, undefined, fieldValues, false);\r\n };\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n console.warn('📋 useFieldArray is missing `name` attribute. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const defaultValues = get(fieldArrayDefaultValuesRef.current, name);\r\n if (defaultValues && fields.length < defaultValues.length) {\r\n set(fieldArrayDefaultValuesRef.current, name, defaultValues.slice(1));\r\n }\r\n updateWatchedValue(name);\r\n if (focusIndexRef.current > -1) {\r\n for (const key in fieldsRef.current) {\r\n const field = fieldsRef.current[key];\r\n if (key.startsWith(`${name}[${focusIndexRef.current}]`) &&\r\n field.ref.focus) {\r\n field.ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n focusIndexRef.current = -1;\r\n }, [fields, name]);\r\n useEffect(() => {\r\n const resetFunctions = resetFieldArrayFunctionRef.current;\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n if (!getFieldArrayParentName(name)) {\r\n resetFunctions[name] = (data) => {\r\n resetFields();\r\n !data && unset(fieldArrayDefaultValuesRef.current, name);\r\n unset(shallowFieldsStateRef.current, name);\r\n memoizedDefaultValues.current = get(data || defaultValuesRef.current, name);\r\n if (!isUnMount.current) {\r\n setFields(mapIds(memoizedDefaultValues.current, keyName));\r\n }\r\n };\r\n }\r\n return () => {\r\n isUnMount.current = true;\r\n shouldUnregister && remove();\r\n resetFields();\r\n delete resetFunctions[name];\r\n unset(fieldArrayValuesRef.current, name);\r\n fieldArrayNames.delete(name);\r\n };\r\n }, []);\r\n return {\r\n swap: useCallback(swap, [name]),\r\n move: useCallback(move, [name]),\r\n prepend: useCallback(prepend$1, [name]),\r\n append: useCallback(append, [name]),\r\n remove: useCallback(remove, [name]),\r\n insert: useCallback(insert$1, [name]),\r\n fields: compact(fields),\r\n };\r\n};\n\nvar getInputValue = (event) => isPrimitive(event) ||\r\n !isObject(event.target) ||\r\n (isObject(event.target) && !event.type)\r\n ? event\r\n : isUndefined(event.target.value)\r\n ? event.target.checked\r\n : event.target.value;\n\nfunction useController({ name, rules, defaultValue, control, onFocus, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n const { defaultValuesRef, setValue, register, unregister, trigger, mode, reValidateMode: { isReValidateOnBlur, isReValidateOnChange }, formState, formStateRef: { current: { isSubmitted, touched, errors }, }, updateFormState, readFormStateRef, fieldsRef, fieldArrayNamesRef, shallowFieldsStateRef, } = control || methods.control;\r\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const getInitialValue = () => !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\r\n ? get(shallowFieldsStateRef.current, name)\r\n : isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue;\r\n const [value, setInputStateValue] = useState(getInitialValue());\r\n const valueRef = useRef(value);\r\n const ref = useRef({\r\n focus: () => null,\r\n });\r\n const onFocusRef = useRef(onFocus ||\r\n (() => {\r\n if (isFunction(ref.current.focus)) {\r\n ref.current.focus();\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!isFunction(ref.current.focus)) {\r\n console.warn(`📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`);\r\n }\r\n }\r\n }));\r\n const shouldValidate = useCallback((isBlurEvent) => !skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted, isTouched: !!get(touched, name) }, mode)), [\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted,\r\n touched,\r\n name,\r\n mode,\r\n ]);\r\n const commonTask = useCallback(([event]) => {\r\n const data = getInputValue(event);\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n return data;\r\n }, []);\r\n const registerField = useCallback((shouldUpdateValue) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n return console.warn('📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n if (fieldsRef.current[name]) {\r\n fieldsRef.current[name] = Object.assign({ ref: fieldsRef.current[name].ref }, rules);\r\n }\r\n else {\r\n register(Object.defineProperties({\r\n name,\r\n focus: onFocusRef.current,\r\n }, {\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 },\r\n }), rules);\r\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\r\n }\r\n shouldUpdateValue &&\r\n isNotFieldArray &&\r\n setInputStateValue(getInitialValue());\r\n }, [rules, name, register]);\r\n useEffect(() => () => unregister(name), [name]);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isUndefined(value)) {\r\n console.warn(`📋 ${name} is missing in the 'defaultValue' prop of either its Controller (https://react-hook-form.com/api#Controller) or useForm (https://react-hook-form.com/api#useForm)`);\r\n }\r\n if (!isNotFieldArray && isUndefined(defaultValue)) {\r\n console.warn('📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n registerField();\r\n }, [registerField]);\r\n useEffect(() => {\r\n !fieldsRef.current[name] && registerField(true);\r\n });\r\n const onBlur = useCallback(() => {\r\n if (readFormStateRef.current.touched && !get(touched, name)) {\r\n set(touched, name, true);\r\n updateFormState({\r\n touched,\r\n });\r\n }\r\n shouldValidate(true) && trigger(name);\r\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\r\n const onChange = useCallback((...event) => setValue(name, commonTask(event), {\r\n shouldValidate: shouldValidate(),\r\n shouldDirty: true,\r\n }), [setValue, name, shouldValidate]);\r\n return {\r\n field: {\r\n onChange,\r\n onBlur,\r\n name,\r\n value,\r\n ref,\r\n },\r\n meta: Object.defineProperties({\r\n invalid: !!get(errors, name),\r\n }, {\r\n isDirty: {\r\n get() {\r\n return !!get(formState.dirtyFields, name);\r\n },\r\n },\r\n isTouched: {\r\n get() {\r\n return !!get(formState.touched, name);\r\n },\r\n },\r\n }),\r\n };\r\n}\n\nfunction useWatch({ control, name, defaultValue, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useWatch is missing `control` prop. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const { useWatchFieldsRef, useWatchRenderFunctionsRef, watchInternal, defaultValuesRef, } = control || methods.control;\r\n const updateValue = useState()[1];\r\n const idRef = useRef();\r\n const defaultValueRef = useRef(defaultValue);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (name === '') {\r\n console.warn('📋 useWatch is missing `name` attribute. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const id = (idRef.current = generateId());\r\n const watchFieldsHookRender = useWatchRenderFunctionsRef.current;\r\n const watchFieldsHook = useWatchFieldsRef.current;\r\n watchFieldsHook[id] = new Set();\r\n watchFieldsHookRender[id] = () => updateValue({});\r\n watchInternal(name, defaultValueRef.current, id);\r\n return () => {\r\n delete watchFieldsHook[id];\r\n delete watchFieldsHookRender[id];\r\n };\r\n }, [\r\n name,\r\n useWatchRenderFunctionsRef,\r\n useWatchFieldsRef,\r\n watchInternal,\r\n defaultValueRef,\r\n ]);\r\n return idRef.current\r\n ? watchInternal(name, defaultValueRef.current, idRef.current)\r\n : isUndefined(defaultValue)\r\n ? isString(name)\r\n ? get(defaultValuesRef.current, name)\r\n : Array.isArray(name)\r\n ? name.reduce((previous, inputName) => (Object.assign(Object.assign({}, previous), { [inputName]: get(defaultValuesRef.current, inputName) })), {})\r\n : defaultValuesRef.current\r\n : defaultValue;\r\n}\n\nconst Controller = (props) => {\r\n const { rules, as, render, defaultValue, control, onFocus } = props, rest = __rest(props, [\"rules\", \"as\", \"render\", \"defaultValue\", \"control\", \"onFocus\"]);\r\n const { field, meta } = useController(props);\r\n const componentProps = Object.assign(Object.assign({}, rest), field);\r\n return as\r\n ? isValidElement(as)\r\n ? cloneElement(as, componentProps)\r\n : createElement(as, componentProps)\r\n : render\r\n ? render(field, meta)\r\n : null;\r\n};\n\nexport { Controller, FormProvider, appendErrors, get, transformToNestObject, useController, useFieldArray, useForm, useFormContext, useWatch };\n//# sourceMappingURL=index.esm.js.map\n","import React, { useEffect, useRef } from \"react\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { TextInput, Label, LinkLabel, Dropdown, SubmitBar } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SearchApplication = ({ onSearch, searchFields, searchParams }) => {\n const { t } = useTranslation();\n const { register, handleSubmit, reset, watch, control } = useForm({\n defaultValues: searchParams,\n });\n\n const onSubmitInput = (data) => {\n onSearch(data);\n };\n\n function clearSearch() {\n const resetValues = searchFields.reduce((acc, field) => ({ ...acc, [field?.name]: \"\" }), {});\n reset(resetValues);\n onSearch({ ...resetValues });\n }\n\n return (\n <form onSubmit={handleSubmit(onSubmitInput)} className=\"ekyc-search-container\">\n <div className=\"search-inner\">\n <div className=\"search-field-wrapper\">\n <div className=\"search-fields-container\">\n {searchFields?.map((input) => (\n <div key={input.name} className=\"search-field\">\n <Label>{input.label}</Label>\n {input.type === \"dropdown\" ? (\n <Controller\n control={control}\n name={input.name}\n render={(props) => (\n <Dropdown\n selected={props.value}\n select={(val) => {\n props.onChange(val);\n }}\n onBlur={props.onBlur}\n option={input.options}\n optionKey={input.optionsKey}\n t={t}\n />\n )}\n />\n ) : (\n <TextInput\n {...input}\n inputRef={register}\n watch={watch}\n />\n )}\n </div>\n ))}\n </div>\n <div className=\"search-action-container\">\n <SubmitBar\n label={t(\"ES_COMMON_SEARCH\")}\n submit={true}\n />\n <LinkLabel onClick={clearSearch}>\n {t(\"ES_COMMON_CLEAR_ALL\")}\n </LinkLabel>\n </div>\n </div>\n </div>\n </form>\n );\n};\n\nexport default SearchApplication;\n","import React from \"react\";\nimport { Card } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst StatusCards = ({ countData }) => {\n const { t } = useTranslation();\n\n const cardStyle = {\n flex: 1,\n textAlign: \"center\",\n padding: \"24px\",\n borderRadius: \"12px\",\n boxShadow: \"0 4px 6px -1px rgba(0, 0, 0, 0.1)\",\n border: \"1px solid #EAECF0\"\n };\n\n return (\n <div className=\"ekyc-status-container\">\n <Card className=\"ekyc-status-card\">\n <div className=\"count\">{countData?.total || 0}</div>\n <div className=\"label\">{t(\"EKYC_TOTAL\")}</div>\n </Card>\n <Card className=\"ekyc-status-card\">\n <div className=\"count pending\">{countData?.pending || 0}</div>\n <div className=\"label\">{t(\"EKYC_PENDING\")}</div>\n </Card>\n <Card className=\"ekyc-status-card\">\n <div className=\"count completed\">{countData?.completed || 0}</div>\n <div className=\"label\">{t(\"EKYC_COMPLETED\")}</div>\n </Card>\n </div>\n );\n};\n\nexport default StatusCards;\n","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Table, SubmitBar, Header, Card } from \"@djb25/digit-ui-react-components\";\nimport { Link } from \"react-router-dom\";\nimport SearchApplication from \"./Search\";\nimport StatusCards from \"./StatusCards\";\n\nconst DesktopInbox = ({\n data,\n isLoading,\n onSort,\n onNextPage,\n onPrevPage,\n currentPage,\n pageSizeLimit,\n onPageSizeChange,\n parentRoute,\n searchParams,\n sortParams,\n totalRecords,\n countData,\n onSearch,\n searchFields,\n}) => {\n const { t } = useTranslation();\n\n const columns = useMemo(\n () => [\n {\n Header: t(\"EKYC_APPLICATION_NO\"),\n accessor: \"applicationNumber\",\n Cell: ({ row }) => {\n const applicationNumber = row.original?.applicationNumber || \"NA\";\n return (\n <Link to={`${parentRoute}/application-details/${applicationNumber}`}>\n <span className=\"ekyc-application-link\">\n {applicationNumber}\n </span>\n </Link>\n );\n },\n },\n {\n Header: t(\"EKYC_CITIZEN_NAME\"),\n accessor: \"citizenName\",\n Cell: ({ row }) => <span>{row.original?.citizenName || \"NA\"}</span>\n },\n {\n Header: t(\"EKYC_MOBILE_NO\"),\n accessor: \"mobileNumber\",\n Cell: ({ row }) => <span>{row.original?.mobileNumber || \"NA\"}</span>\n },\n {\n Header: t(\"EKYC_STATUS\"),\n accessor: \"status\",\n Cell: ({ row }) => {\n const status = row.original?.status || \"DEFAULT\";\n return (\n <span className={`ekyc-status-tag ${status}`}>\n {t(`EKYC_STATUS_${status}`)}\n </span>\n );\n },\n },\n ],\n [t, parentRoute]\n );\n\n const tableData = useMemo(() => {\n return data?.items || [];\n }, [data]);\n\n return (\n <div className=\"inbox-wrapper\">\n {/* Top Bar: Header + Action Button */}\n <div className=\"ekyc-header-container module-header\">\n <Header className=\"title\">{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} style={{ borderRadius: \"8px\" }} />\n </Link>\n </div>\n\n {/* Metrics Section */}\n <div className=\"ekyc-metrics-section\">\n <StatusCards countData={countData} />\n </div>\n\n {/* Search Section */}\n <Card className=\"ekyc-search-card\">\n <SearchApplication\n onSearch={onSearch}\n searchFields={searchFields}\n searchParams={searchParams}\n />\n </Card>\n\n {/* Table Section */}\n <Card className=\"ekyc-table-card\">\n <Table\n t={t}\n data={tableData}\n columns={columns}\n isLoading={isLoading}\n onSort={onSort}\n sortParams={sortParams}\n totalRecords={totalRecords}\n onNextPage={onNextPage}\n onPrevPage={onPrevPage}\n currentPage={currentPage}\n pageSizeLimit={pageSizeLimit}\n onPageSizeChange={onPageSizeChange}\n getCellProps={(cellInfo) => {\n return {\n className: \"ekyc-table-cell\"\n };\n }}\n />\n </Card>\n </div>\n );\n};\n\nexport default DesktopInbox;","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Header, Card, SubmitBar, DetailsCard, Loader } from \"@djb25/digit-ui-react-components\";\nimport { Link } from \"react-router-dom\";\nimport SearchApplication from \"./Search\";\nimport StatusCards from \"./StatusCards\";\n\nconst MobileInbox = ({\n data,\n isLoading,\n onSearch,\n searchFields,\n searchParams,\n parentRoute,\n countData,\n}) => {\n const { t } = useTranslation();\n\n const mobileData = data?.items?.map((item) => ({\n [t(\"EKYC_APPLICATION_NO\")]: item.applicationNumber,\n [t(\"EKYC_CITIZEN_NAME\")]: item.citizenName,\n [t(\"EKYC_MOBILE_NO\")]: item.mobileNumber,\n [t(\"EKYC_STATUS\")]: (\n <span className={`ekyc-status-tag ${item.status}`}>\n {t(`EKYC_STATUS_${item.status}`)}\n </span>\n ),\n })) || [];\n\n return (\n <div className=\"inbox-wrapper\">\n <div className=\"ekyc-header-container module-header\">\n <Header className=\"title\">{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} />\n </Link>\n </div>\n\n <div className=\"ekyc-metrics-section\">\n <StatusCards countData={countData} />\n </div>\n\n <Card className=\"ekyc-search-card\">\n <SearchApplication\n onSearch={onSearch}\n searchFields={searchFields}\n searchParams={searchParams}\n />\n </Card>\n\n <div className=\"mobile-data-container\">\n {isLoading ? (\n <Loader />\n ) : mobileData?.length > 0 ? (\n <DetailsCard\n data={mobileData}\n t={t}\n serviceRequestIdKey={t(\"EKYC_APPLICATION_NO\")}\n linkPrefix={`${parentRoute}/application-details/`}\n />\n ) : (\n <Card>\n {t(\"ES_COMMON_NO_DATA\")\n .split(\"\\\\n\")\n .map((text, index) => (\n <p key={index} style={{ textAlign: \"center\" }}>\n {text}\n </p>\n ))}\n </Card>\n )}\n </div>\n </div>\n );\n};\n\nexport default MobileInbox;\n","import React, { useCallback, useEffect, useState, useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport DesktopInbox from \"../../components/DesktopInbox\";\nimport MobileInbox from \"../../components/MobileInbox\";\n\nconst MOCK_DATA_ITEMS = [\n { applicationNumber: \"EKYC-2024-001\", citizenName: \"Rahul Sharma\", mobileNumber: \"9876543210\", status: \"COMPLETED\" },\n { applicationNumber: \"EKYC-2024-002\", citizenName: \"Anjali Devi\", mobileNumber: \"9123456789\", status: \"PENDING\" },\n { applicationNumber: \"EKYC-2024-003\", citizenName: \"Amit Kumar\", mobileNumber: \"8888888888\", status: \"REJECTED\" },\n { applicationNumber: \"EKYC-2024-004\", citizenName: \"Priya Singh\", mobileNumber: \"7777777777\", status: \"COMPLETED\" },\n { applicationNumber: \"EKYC-2024-005\", citizenName: \"Suresh Gupta\", mobileNumber: \"6666666666\", status: \"PENDING\" },\n];\n\nconst Inbox = ({\n parentRoute,\n businessService = \"EKYC\",\n initialStates = {},\n filterComponent,\n isInbox,\n}) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n\n // 1. Unified State Management\n const [pageOffset, setPageOffset] = useState(initialStates.pageOffset || 0);\n const [pageSize, setPageSize] = useState(initialStates.pageSize || 10);\n const [sortParams, setSortParams] = useState(initialStates.sortParams || [{ id: \"createdTime\", desc: true }]);\n\n // Define the default option for the dropdown\n const defaultStatusOption = useMemo(() => ({ label: t(\"EKYC_STATUS_ALL\"), value: \"\" }), [t]);\n\n // Maintain the full search objects for the Search component\n const [searchParams, setSearchParams] = useState(initialStates.searchParams || { status: defaultStatusOption });\n\n // 2. Local Filtering Logic for Static Data\n const filteredStaticData = useMemo(() => {\n return MOCK_DATA_ITEMS.filter((item) => {\n let match = true;\n // Extract the string value from the status object if it exists\n const currentStatus = searchParams.status?.value !== undefined ? searchParams.status.value : searchParams.status;\n\n if (currentStatus && item.status !== currentStatus) {\n match = false;\n }\n return match;\n });\n }, [searchParams]);\n\n const staticCountData = useMemo(() => {\n return {\n total: MOCK_DATA_ITEMS.length,\n completed: MOCK_DATA_ITEMS.filter(i => i.status === \"COMPLETED\").length,\n pending: MOCK_DATA_ITEMS.filter(i => i.status === \"PENDING\").length,\n rejected: MOCK_DATA_ITEMS.filter(i => i.status === \"REJECTED\").length\n };\n }, []);\n\n // 3. Handlers\n const handleSearch = useCallback((filterParam) => {\n // Here we keep the full objects (like for dropdowns) in searchParams\n // so that the Search component can display them correctly.\n setSearchParams((prev) => ({ ...prev, ...filterParam }));\n setPageOffset(0);\n }, []);\n\n const fetchNextPage = () => setPageOffset((prev) => prev + pageSize);\n const fetchPrevPage = () => setPageOffset((prev) => Math.max(prev - pageSize, 0));\n\n const handlePageSizeChange = (e) => {\n const newSize = Number(e.target.value);\n setPageSize(newSize);\n setPageOffset(0);\n };\n\n const handleSort = useCallback((args) => {\n if (args.length > 0) setSortParams(args);\n }, []);\n\n // 4. Form Configuration\n const searchFields = useMemo(() => [\n {\n label: t(\"EKYC_STATUS\"),\n name: \"status\",\n type: \"dropdown\",\n options: [\n { label: t(\"CHOOSE_STATUS\"), value: \"\" },\n { label: t(\"EKYC_STATUS_COMPLETED\"), value: \"COMPLETED\" },\n { label: t(\"EKYC_STATUS_PENDING\"), value: \"PENDING\" },\n { label: t(\"EKYC_STATUS_REJECTED\"), value: \"REJECTED\" },\n ],\n optionsKey: \"label\"\n },\n ], [t]);\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"inbox-main-container\">\n {Digit.Utils.browser.isMobile() ? (\n <MobileInbox\n data={{ items: filteredStaticData, totalCount: filteredStaticData.length }}\n isLoading={false}\n onSearch={handleSearch}\n searchFields={searchFields}\n searchParams={searchParams}\n parentRoute={parentRoute}\n countData={staticCountData}\n />\n ) : (\n <DesktopInbox\n businessService={businessService}\n data={{ items: filteredStaticData, totalCount: filteredStaticData.length }}\n isLoading={false}\n searchFields={searchFields}\n onSearch={handleSearch}\n onSort={handleSort}\n onNextPage={fetchNextPage}\n onPrevPage={fetchPrevPage}\n currentPage={Math.floor(pageOffset / pageSize)}\n pageSizeLimit={pageSize}\n onPageSizeChange={handlePageSizeChange}\n parentRoute={parentRoute}\n searchParams={searchParams}\n sortParams={sortParams}\n totalRecords={filteredStaticData.length}\n countData={staticCountData}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default Inbox;","import React, { useState } from \"react\";\nimport { Header, Card, LabelFieldPair, CardLabel, TextInput, SubmitBar, CardHeader, ActionBar } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useRouteMatch } from \"react-router-dom\";\n\nconst Create = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const { path } = useRouteMatch();\n const [kNumber, setKNumber] = useState(\"\");\n const [kName, setKName] = useState(\"\");\n\n const handleContinue = () => {\n // Redirect to K details page, passing the K number as state or param\n const parentPath = path.replace(\"/create-kyc\", \"\");\n history.push(`${parentPath}/k-details`, { kNumber, kName });\n };\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"ekyc-create-container\" style={{ padding: \"24px\" }}>\n {/* <Header>{t(\"EKYC_CREATE_KYC_HEADER\")}</Header> */}\n <Card className=\"ekyc-create-card\">\n <CardHeader>{t(\"EKYC_ENTER_DETAILS_HEADER\")}</CardHeader>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_K_NUMBER\")}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={kNumber}\n onChange={(e) => setKNumber(e.target.value)}\n placeholder={t(\"EKYC_K_NUMBER_PLACEHOLDER\")}\n style={{ borderRadius: \"8px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_K_NAME\")}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={kName}\n onChange={(e) => setKName(e.target.value)}\n placeholder={t(\"EKYC_K_NAME_PLACEHOLDER\")}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n </Card>\n <ActionBar>\n <SubmitBar label={t(\"ES_COMMON_CONTINUE\")} onSubmit={handleContinue} style={{ borderRadius: \"8px\" }} />\n </ActionBar>\n </div>\n </div>\n );\n};\n\nexport default Create;\n","import React, { useState } from \"react\";\nimport { Header, Card, LabelFieldPair, CardLabel, TextInput, SubmitBar, CardHeader, StatusTable, Row, ActionBar, Modal, RadioButtons } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory, useRouteMatch } from \"react-router-dom\";\n\nconst KDetails = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const history = useHistory();\n const { path } = useRouteMatch();\n const { kNumber, kName } = location.state || { kNumber: \"EKYC-12345\", kName: \"Mock Name\" };\n\n const [showModal, setShowModal] = useState(false);\n const [selectedOption, setSelectedOption] = useState({ code: \"SELF\", name: \"EKYC_SELF\" });\n\n const options = [\n { code: \"SELF\", name: \"EKYC_SELF\" },\n { code: \"OTHER\", name: \"EKYC_OTHER\" }\n ];\n\n // Mock connection details\n const connectionDetails = {\n consumerName: \"Rahul Sharma\",\n address: \"123, Street Name, City\",\n connectionType: \"Domestic\",\n meterNo: \"MTR-987654\",\n phoneNo: \"9876543210\",\n email: \"rahul@example.com\",\n status: \"ACTIVE\"\n };\n\n const handleStartVerification = () => {\n setShowModal(true);\n };\n\n const onModalConfirm = () => {\n const parentPath = path.replace(\"/k-details\", \"\");\n history.push(`${parentPath}/aadhaar-verification`, { kNumber, selectedOption });\n setShowModal(false);\n };\n\n const handleRaiseCorrection = () => {\n console.log(\"Raise Correction clicked\");\n };\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"ekyc-kdetails-container\" style={{ padding: \"24px\" }}>\n {/* <Header>{t(\"EKYC_K_DETAILS_HEADER\")}</Header> */}\n <Card className=\"ekyc-create-card\">\n <CardHeader>{t(\"EKYC_K_NUMBER_DETAILS\")}</CardHeader>\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_K_NUMBER\")}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={kNumber}\n disable={true}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <CardHeader style={{ marginTop: \"24px\" }}>{t(\"EKYC_CONNECTION_DETAILS\")}</CardHeader>\n <StatusTable>\n <Row label={t(\"EKYC_CONSUMER_NAME\")} text={connectionDetails.consumerName} />\n <Row label={t(\"EKYC_ADDRESS\")} text={connectionDetails.address} />\n <Row label={t(\"EKYC_CONNECTION_TYPE\")} text={connectionDetails.connectionType} />\n <Row label={t(\"EKYC_METER_NO\")} text={connectionDetails.meterNo} />\n <Row label={t(\"EKYC_PHONE_NO\")} text={connectionDetails.phoneNo} />\n <Row label={t(\"EKYC_EMAIL\")} text={connectionDetails.email} />\n <Row label={t(\"EKYC_STATUS\")} text={connectionDetails.status} />\n </StatusTable>\n </Card>\n </div>\n\n <ActionBar>\n <SubmitBar label={t(\"EKYC_START_VERIFICATION\")} onSubmit={handleStartVerification} style={{ borderRadius: \"12px\" }} />\n <button\n className=\"submit-bar\"\n style={{\n marginLeft: \"10px\",\n background: \"#f47738\",\n border: \"none\",\n color: \"#fff\",\n padding: \"10px 24px\",\n borderRadius: \"12px\",\n fontWeight: \"600\",\n cursor: \"pointer\",\n boxShadow: \"0 2px 4px rgba(0,0,0,0.1)\"\n }}\n onClick={handleRaiseCorrection}\n >\n {t(\"EKYC_RAISE_CORRECTION\")}\n </button>\n </ActionBar>\n\n {showModal && (\n <Modal\n headerBarMain={t(\"EKYC_SELECT_VERIFICATION_TYPE\")}\n headerBarEnd={<span onClick={() => setShowModal(false)} style={{ cursor: \"pointer\", padding: \"8px\" }}>X</span>}\n actionSaveLabel={t(\"ES_COMMON_CONFIRM\")}\n actionSaveOnSubmit={onModalConfirm}\n actionCancelLabel={t(\"ES_COMMON_CANCEL\")}\n actionCancelOnSubmit={() => setShowModal(false)}\n style={{ borderRadius: \"12px\" }}\n >\n <div style={{ padding: \"24px\" }}>\n <RadioButtons\n options={options}\n optionsKey=\"name\"\n selectedOption={selectedOption}\n onSelect={setSelectedOption}\n t={t}\n />\n </div>\n </Modal>\n )}\n </div>\n );\n};\n\nexport default KDetails;\n","import React, { useState } from \"react\";\nimport { Header, Card, LabelFieldPair, CardLabel, TextInput, SubmitBar, CardHeader, RadioButtons, ActionBar, TickMark } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nconst AadhaarVerification = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const history = useHistory();\n const { kNumber, selectedOption } = location.state || { kNumber: \"EKYC-1234567890\", selectedOption: { code: \"SELF\", name: \"EKYC_SELF\" } };\n\n const [aadhaarLastFour, setAadhaarLastFour] = useState(\"\");\n const [isAadhaarVerified, setIsAadhaarVerified] = useState(false);\n const [nameCorrect, setNameCorrect] = useState({ code: \"NO\", name: \"CORE_COMMON_NO\" });\n const [userName, setUserName] = useState(\"\");\n const [mobileChange, setMobileChange] = useState({ code: \"NO\", name: \"CORE_COMMON_NO\" });\n const [mobileNumber, setMobileNumber] = useState(\"\");\n const [whatsappNumber, setWhatsappNumber] = useState(\"\");\n const [email, setEmail] = useState(\"\");\n const [noOfPersons, setNoOfPersons] = useState(\"\");\n\n const yesNoOptions = [\n { code: \"YES\", name: \"CORE_COMMON_YES\" },\n { code: \"NO\", name: \"CORE_COMMON_NO\" }\n ];\n\n const handleVerifyAadhaar = () => {\n // Simulating verification logic\n if (aadhaarLastFour.length === 4) {\n setIsAadhaarVerified(true);\n }\n };\n\n const handleSaveAndContinue = () => {\n history.push(\"/digit-ui/employee/ekyc/address-details\");\n };\n\n const FingerprintIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.67-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.96.46 5.57 1.41.24.13.33.43.2.67-.09.13-.24.39-.39.39zM12 21c-.28 0-.5-.22-.5-.5v-4.42c-2.33-.21-4.44-1.35-5.94-3.21-1.5-1.86-2.22-4.18-2.02-6.52.05-.59.55-1.03 1.14-.98s1.03.55.98 1.14c-.15 1.76.39 3.51 1.52 4.91 1.12 1.4 2.7 2.26 4.45 2.42.21.02.37.19.37.4v6.26c0 .28-.22.5-.5.5zm4.83-9.17c-.59.05-1.03-.55-.98-1.14.39-4.59-2.03-8.86-6.17-10.87-.25-.12-.35-.43-.23-.68s.42-.36.67-.24c4.61 2.24 7.31 7 6.87 12.1-.05.27-.27.48-.54.5v.33z\" fill=\"#505A5F\" />\n <path d=\"M12 11c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-5.17-3.66c-.15 1.76.39 3.51 1.52 4.91 1.13 1.4 2.71 2.26 4.45 2.42.06 0 .11.01.17.01.24 0 .44-.17.48-.41.04-.27-.14-.53-.41-.58-1.46-.14-2.77-.85-3.71-2.01-.94-1.17-1.39-2.63-1.27-4.11.02-.28-.19-.51-.47-.53-.28-.02-.53.18-.55.46-.01.28.01.55.21.84z\" fill=\"#505A5F\" />\n </svg>\n );\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"ekyc-aadhaar-verification-container\" style={{ padding: \"24px\" }}>\n {/* <Header>{t(\"EKYC_AADHAAR_VERIFICATION_HEADER\") || \"Aadhaar Verification\"}</Header> */}\n <Card className=\"ekyc-create-card\">\n <CardHeader>{t(\"EKYC_AADHAAR_NUMBER_HEADER\") || \"Aadhaar Number\"}</CardHeader>\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_LAST_4_DIGIT_AADHAAR\") || \"Last 4-Digit Aadhaar Number\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={aadhaarLastFour}\n onChange={(e) => {\n const val = e.target.value;\n if (val.length <= 4 && /^\\d*$/.test(val)) {\n setAadhaarLastFour(val);\n }\n }}\n placeholder={t(\"EKYC_ENTER_LAST_4_DIGIT\") || \"Enter Last 4-digit Aadhaar number\"}\n textInputStyle={{ paddingLeft: \"40px\", borderRadius: \"12px\" }}\n style={{ borderRadius: \"12px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <FingerprintIcon />\n </div>\n {isAadhaarVerified && (\n <div style={{ position: \"absolute\", right: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <TickMark fillColor=\"#00703C\" />\n </div>\n )}\n </div>\n </LabelFieldPair>\n {!isAadhaarVerified && (\n <SubmitBar label={t(\"EKYC_VERIFY_AADHAAR_BTN\") || \"Verify Aadhaar\"} onSubmit={handleVerifyAadhaar} style={{ borderRadius: \"12px\" }} />\n )}\n\n {isAadhaarVerified && (\n <div style={{ backgroundColor: \"#E7F4EE\", padding: \"20px\", borderRadius: \"12px\", marginTop: \"16px\", marginBottom: \"24px\", border: \"1px solid #D1E9DB\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"10px\", marginBottom: \"16px\" }}>\n <div style={{ backgroundColor: \"#D1E9DB\", padding: \"4px\", borderRadius: \"50%\", display: \"flex\" }}>\n <TickMark fillColor=\"#00703C\" />\n </div>\n <span style={{ fontWeight: \"700\", color: \"#00703C\", fontSize: \"18px\" }}>{t(\"EKYC_AADHAAR_VERIFIED\") || \"Aadhaar Verified\"}</span>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span style={{ color: \"#667085\", fontSize: \"14px\", fontWeight: \"500\" }}>{t(\"EKYC_NAME\") || \"Name\"}</span>\n <span style={{ fontWeight: \"700\", fontSize: \"16px\", color: \"#101828\" }}>Rajesh Kumar Singh</span>\n </div>\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <span style={{ color: \"#667085\", fontSize: \"14px\", fontWeight: \"500\" }}>{t(\"EKYC_ADDRESS\") || \"Address\"}</span>\n <span style={{ fontWeight: \"400\", fontSize: \"16px\", color: \"#344054\" }}>House No. 45, Sector 12, New Delhi - 110001</span>\n </div>\n </div>\n </div>\n )}\n\n <CardHeader style={{ marginTop: \"24px\" }}>{t(\"EKYC_CONTACT_DETAILS_HEADER\") || \"Contact Details\"}</CardHeader>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_NAME_CORRECTION_PROMPT\") || \"Do you want to correct the Name?\"}</CardLabel>\n <RadioButtons\n options={yesNoOptions}\n optionsKey=\"name\"\n selectedOption={nameCorrect}\n onSelect={setNameCorrect}\n t={t}\n innerStyles={{ display: \"flex\", gap: \"24px\", marginTop: \"8px\" }}\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_ENTER_NAME\") || \"Enter Name\"}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={userName}\n onChange={(e) => setUserName(e.target.value)}\n placeholder={t(\"EKYC_ENTER_NAME_PLACEHOLDER\") || \"Enter Enter name\"}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_MOBILE_CHANGE_PROMPT\") || \"Change your mobile number?\"}</CardLabel>\n <RadioButtons\n options={yesNoOptions}\n optionsKey=\"name\"\n selectedOption={mobileChange}\n onSelect={setMobileChange}\n t={t}\n innerStyles={{ display: \"flex\", gap: \"24px\", marginTop: \"8px\" }}\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_MOBILE_NUMBER\") || \"Mobile Number\"}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={mobileNumber}\n onChange={(e) => setMobileNumber(e.target.value)}\n placeholder={t(\"EKYC_ENTER_MOBILE_NUMBER\") || \"Enter Mobile number\"}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_WHATSAPP_NUMBER\") || \"Whatsapp Number\"}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={whatsappNumber}\n onChange={(e) => setWhatsappNumber(e.target.value)}\n placeholder={t(\"EKYC_ENTER_WHATSAPP_NUMBER\") || \"Enter Whatsapp Number\"}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_EMAIL_ADDRESS\") || \"Email address (Optional)\"}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n placeholder={t(\"EKYC_EMAIL_ADDRESS_PLACEHOLDER\") || \"Email address\"}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n\n <CardHeader style={{ marginTop: \"24px\" }}>{t(\"EKYC_FAMILY_DETAILS_HEADER\") || \"Family Details\"}</CardHeader>\n <LabelFieldPair>\n <CardLabel style={{ marginBottom: \"8px\", fontWeight: \"600\" }}>{t(\"EKYC_NO_OF_PERSONS\") || \"No Of Persons\"}</CardLabel>\n <div className=\"field\">\n <TextInput\n value={noOfPersons}\n onChange={(e) => setNoOfPersons(e.target.value)}\n placeholder={t(\"EKYC_ENTER_NO_OF_PERSONS\") || \"Enter No of Persons\"}\n style={{ borderRadius: \"12px\" }}\n />\n </div>\n </LabelFieldPair>\n </Card>\n </div>\n\n <ActionBar>\n <SubmitBar label={t(\"ES_COMMON_SAVE_CONTINUE\") || \"Save & Continue\"} onSubmit={handleSaveAndContinue} style={{ borderRadius: \"12px\" }} />\n </ActionBar>\n </div>\n );\n};\n\nexport default AadhaarVerification;\n","import React, { useState } from \"react\";\nimport { Header, Card, LabelFieldPair, CardLabel, TextInput, SubmitBar, CardHeader, RadioButtons, ActionBar, InfoBannerIcon, PropertyHouse, LocationIcon } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nconst AddressDetails = () => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const [addressType, setAddressType] = useState({ code: \"AADHAAR\", name: \"EKYC_AADHAAR_ADDRESS\" });\n const [correctAddress, setCorrectAddress] = useState({ code: \"NO\", name: \"CORE_COMMON_NO\" });\n const [fullAddress, setFullAddress] = useState(\"\");\n const [flatNo, setFlatNo] = useState(\"\");\n const [building, setBuilding] = useState(\"\");\n const [landmark, setLandmark] = useState(\"\");\n const [pincode, setPincode] = useState(\"\");\n\n const addressOptions = [\n { code: \"AADHAAR\", name: \"EKYC_AADHAAR_ADDRESS\" },\n { code: \"OLD\", name: \"EKYC_OLD_ADDRESS\" }\n ];\n\n const yesNoOptions = [\n { code: \"YES\", name: \"CORE_COMMON_YES\" },\n { code: \"NO\", name: \"CORE_COMMON_NO\" }\n ];\n\n const handleCompleteVerification = () => {\n console.log(\"Verification Completed\");\n // Logic for completion\n };\n\n const FlagIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M14.4 6L13.6 4H5V21H7V14H12.6L13.4 16H20V6H14.4Z\" fill=\"#00703C\" />\n </svg>\n );\n\n const IdCardIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2 7V17C2 18.1 2.9 19 4 19H20C21.1 19 22 18.1 22 17V7C22 5.9 21.1 5 20 5H4C2.9 5 2 5.9 2 7ZM12 11H14V13H12V11ZM12 7H14V9H12V7ZM16 11H20V13H16V11ZM16 7H20V9H16V7ZM4 7H10V15H4V7ZM20 17H4V16H20V17Z\" fill=\"#3D51B0\" />\n </svg>\n );\n\n const CameraIcon = () => (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 2L7.17 4H4C2.9 4 2 4.9 2 6V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V6C22 4.9 21.1 4 20 4H16.83L15 2H9ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17ZM12 9C10.34 9 9 10.34 9 12C9 13.66 10.34 15 12 15C13.66 15 15 13.66 15 12C15 10.34 13.66 9 12 9Z\" fill=\"#3D51B0\" />\n </svg>\n );\n\n const TargetIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 8C9.79 8 8 9.79 8 12C8 14.21 9.79 16 12 16C14.21 16 16 14.21 16 12C16 9.79 14.21 8 12 8ZM20.94 11C20.48 6.83 17.17 3.52 13 3.06V1H11V3.06C6.83 3.52 3.52 6.83 3.06 11H1V13H3.06C3.52 17.17 6.83 20.48 11 20.94V23H13V20.94C17.17 20.48 20.48 17.17 20.94 13H23V11H20.94ZM12 19C8.13 19 5 15.87 5 12C5 8.13 8.13 5 12 5C15.87 5 19 8.13 19 12C19 15.87 15.87 19 12 19Z\" fill=\"#3D51B0\" />\n </svg>\n );\n\n const PincodeIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13 13V11H15V13H13ZM13 9V7H15V9H13ZM17 13V11H19V13H17ZM17 9V7H19V9H17ZM11 13V11H9V13H11ZM11 9V7H9V9H11ZM7 13V11H5V13H7ZM7 9V7H5V9H7ZM21 3H3C1.9 3 1 3.9 1 5V19C1 20.1 1.9 21 3 21H21C22.1 21 23 20.1 23 19V5C23 3.9 22.1 3 21 3ZM21 19H3V5H21V19Z\" fill=\"#3D51B0\" />\n </svg>\n );\n\n return (\n <div className=\"ekyc-address-details-container\">\n <Header>{t(\"EKYC_ADDRESS_DETAILS_HEADER\") || \"Address Details\"}</Header>\n <Card>\n <div style={{ display: \"flex\", justifyContent: \"space-between\", marginBottom: \"20px\" }}>\n <RadioButtons\n options={addressOptions}\n optionsKey=\"name\"\n selectedOption={addressType}\n onSelect={setAddressType}\n t={t}\n innerStyles={{ display: \"flex\", gap: \"10px\", width: \"100%\" }}\n style={{ width: \"48%\" }}\n />\n </div>\n\n {addressType.code === \"AADHAAR\" && (\n <div style={{ backgroundColor: \"#E7F4EE\", padding: \"16px\", borderRadius: \"8px\", marginBottom: \"24px\", border: \"1px solid #C4E1D1\" }}>\n <div style={{ fontSize: \"16px\", lineHeight: \"1.5\" }}>\n H.No. 123, Sector 15, Rohini<br />\n Delhi - 110085\n </div>\n </div>\n )}\n\n {addressType.code === \"OLD\" && (\n <>\n <LabelFieldPair>\n <CardLabel>{t(\"EKYC_ADDRESS_CORRECTION_PROMPT\") || \"Do you want to correct the address?\"}</CardLabel>\n <RadioButtons\n options={yesNoOptions}\n optionsKey=\"name\"\n selectedOption={correctAddress}\n onSelect={setCorrectAddress}\n t={t}\n innerStyles={{ display: \"flex\", gap: \"20px\" }}\n />\n </LabelFieldPair>\n <div style={{ border: \"1px solid #E0E0E0\", borderRadius: \"8px\", padding: \"12px\", display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"20px\", cursor: \"pointer\" }}>\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"12px\" }}>\n <TargetIcon />\n <span style={{ fontWeight: \"bold\" }}>{t(\"EKYC_USE_CURRENT_LOCATION\") || \"Use Current Location\"}</span>\n </div>\n <span style={{ fontSize: \"20px\" }}>›</span>\n </div>\n <LabelFieldPair>\n <CardLabel>{t(\"EKYC_FULL_ADDRESS\") || \"Full Address\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={fullAddress}\n onChange={(e) => setFullAddress(e.target.value)}\n placeholder={t(\"EKYC_ENTER_FULL_ADDRESS\") || \"Enter Full Address\"}\n textInputStyle={{ paddingLeft: \"40px\", height: \"80px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"20px\" }}>\n <PropertyHouse styles={{ fill: \"#3D51B0\" }} />\n </div>\n </div>\n </LabelFieldPair>\n <div style={{ display: \"flex\", gap: \"16px\" }}>\n <LabelFieldPair style={{ flex: 1 }}>\n <CardLabel>{t(\"EKYC_FLAT_HOUSE_NUMBER\") || \"Flat/House Number\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={flatNo}\n onChange={(e) => setFlatNo(e.target.value)}\n placeholder={t(\"EKYC_ENTER_FLAT_NO\") || \"Enter Flat/...\"}\n textInputStyle={{ paddingLeft: \"40px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <PropertyHouse styles={{ fill: \"#3D51B0\", width: \"20px\", height: \"20px\" }} />\n </div>\n </div>\n </LabelFieldPair>\n <LabelFieldPair style={{ flex: 1 }}>\n <CardLabel>{t(\"EKYC_BUILDING_TOWER\") || \"Building/Tower\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={building}\n onChange={(e) => setBuilding(e.target.value)}\n placeholder={t(\"EKYC_ENTER_BUILDING\") || \"Enter Build...\"}\n textInputStyle={{ paddingLeft: \"40px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <PropertyHouse styles={{ fill: \"#3D51B0\", width: \"20px\", height: \"20px\" }} />\n </div>\n </div>\n </LabelFieldPair>\n </div>\n <LabelFieldPair>\n <CardLabel>{t(\"EKYC_LANDMARK\") || \"Landmark (Optional)\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={landmark}\n onChange={(e) => setLandmark(e.target.value)}\n placeholder={t(\"EKYC_ENTER_LANDMARK\") || \"Enter Landmark (Optional)\"}\n textInputStyle={{ paddingLeft: \"40px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <LocationIcon className=\"icon\" styles={{ fill: \"#3D51B0\" }} />\n </div>\n </div>\n </LabelFieldPair>\n <LabelFieldPair>\n <CardLabel>{t(\"EKYC_PINCODE\") || \"Pincode\"}</CardLabel>\n <div className=\"field\" style={{ position: \"relative\" }}>\n <TextInput\n value={pincode}\n onChange={(e) => setPincode(e.target.value)}\n placeholder={t(\"EKYC_ENTER_PINCODE\") || \"Enter Pincode\"}\n textInputStyle={{ paddingLeft: \"40px\" }}\n />\n <div style={{ position: \"absolute\", left: \"10px\", top: \"50%\", transform: \"translateY(-50%)\" }}>\n <PincodeIcon />\n </div>\n </div>\n </LabelFieldPair>\n </>\n )}\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"10px\", marginTop: \"20px\", marginBottom: \"16px\" }}>\n <div style={{ backgroundColor: \"#E8EAF6\", padding: \"8px\", borderRadius: \"8px\" }}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 7V3H2V21H22V7H12ZM6 19H4V17H6V19ZM6 15H4V13H6V15ZM6 11H4V9H6V11ZM6 7H4V5H6V7ZM10 19H8V17H10V19ZM10 15H8V13H10V15ZM10 11H8V9H10V11ZM10 7H8V5H10V7ZM20 19H12V9H20V19ZM18 11H14V13H18V11ZM18 15H14V17H18V15Z\" fill=\"#3D51B0\" />\n </svg>\n </div>\n <CardHeader style={{ margin: 0 }}>{t(\"EKYC_ADMINISTRATIVE_DIVISION\") || \"Administrative Division\"}</CardHeader>\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"12px\" }}>\n <div style={{ backgroundColor: \"#F1F8F4\", padding: \"16px\", borderRadius: \"8px\", display: \"flex\", alignItems: \"center\", gap: \"16px\", border: \"1px solid #C4E1D1\" }}>\n <div style={{ backgroundColor: \"#D0E7D8\", padding: \"8px\", borderRadius: \"8px\" }}>\n <FlagIcon />\n </div>\n <div>\n <div style={{ color: \"#00703C\", fontSize: \"12px\", fontWeight: \"bold\" }}>{t(\"EKYC_ASSEMBLY\") || \"ASSEMBLY\"}</div>\n <div style={{ fontSize: \"16px\", fontWeight: \"bold\" }}>AC-12 Chandni Chowk</div>\n </div>\n </div>\n <div style={{ backgroundColor: \"#F1F3F9\", padding: \"16px\", borderRadius: \"8px\", display: \"flex\", alignItems: \"center\", gap: \"16px\", border: \"1px solid #D1D8E5\" }}>\n <div style={{ backgroundColor: \"#D1D8E5\", padding: \"8px\", borderRadius: \"8px\" }}>\n <IdCardIcon />\n </div>\n <div>\n <div style={{ color: \"#3D51B0\", fontSize: \"12px\", fontWeight: \"bold\" }}>{t(\"EKYC_WARD\") || \"WARD\"}</div>\n <div style={{ fontSize: \"16px\", fontWeight: \"bold\" }}>WARD-45 Civil Lines</div>\n </div>\n </div>\n </div>\n\n <CardHeader style={{ marginTop: \"24px\" }}>{t(\"EKYC_DOOR_PHOTO_HEADER\") || \"Door Photo with GPS Stamp\"}</CardHeader>\n <div style={{ color: \"#707070\", fontSize: \"14px\", marginBottom: \"16px\" }}>{t(\"EKYC_REQUIRED_FOR_VERIFICATION\") || \"Required for verification\"}</div>\n\n <div style={{ backgroundColor: \"#FFF4E5\", padding: \"12px\", borderRadius: \"8px\", display: \"flex\", alignItems: \"center\", gap: \"12px\", marginBottom: \"20px\", border: \"1px solid #FFD180\" }}>\n <InfoBannerIcon fill=\"#EF6C00\" />\n <div style={{ color: \"#EF6C00\" }}>\n <div style={{ fontWeight: \"bold\" }}>{t(\"EKYC_IMPORTANT\") || \"Important\"}</div>\n <div style={{ fontSize: \"13px\" }}>{t(\"EKYC_CAPTURE_LIVE_CAMERA\") || \"Capture with live camera for GPS metadata\"}</div>\n </div>\n </div>\n\n <div style={{ border: \"2px dashed #D1D8E5\", borderRadius: \"12px\", padding: \"40px 20px\", textAlign: \"center\", cursor: \"pointer\" }}>\n <div style={{ backgroundColor: \"#F1F3F9\", width: \"64px\", height: \"64px\", borderRadius: \"50%\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\", margin: \"0 auto 16px\" }}>\n <CameraIcon />\n </div>\n <div style={{ fontWeight: \"bold\", fontSize: \"16px\", marginBottom: \"4px\" }}>{t(\"EKYC_TAP_TO_CAPTURE\") || \"Tap to Capture\"}</div>\n <div style={{ color: \"#707070\", fontSize: \"14px\" }}>{t(\"EKYC_CAPTURE_DOOR_IMAGE\") || \"Capture Door Image\"}</div>\n </div>\n </Card>\n\n <ActionBar>\n <SubmitBar label={t(\"EKYC_COMPLETE_VERIFICATION\") || \"Complete Verification\"} onSubmit={handleCompleteVerification} />\n </ActionBar>\n </div>\n );\n};\n\nexport default AddressDetails;\n","import { AppContainer, PrivateRoute, ModuleHeader, ArrowLeft, HomeIcon } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Switch, useLocation } from \"react-router-dom\";\nimport Inbox from \"./Inbox\";\nimport Create from \"./Create\";\nimport KDetails from \"./KDetails\";\nimport AadhaarVerification from \"./AadhaarVerification\";\nimport AddressDetails from \"./AddressDetails\";\n\nconst EmployeeApp = ({ path }) => {\n const { t } = useTranslation();\n const location = useLocation();\n\n sessionStorage.removeItem(\"revalidateddone\");\n\n const getBreadcrumbLabel = () => {\n const pathname = location.pathname;\n if (pathname.includes(\"/dashboard\")) return \"ES_COMMON_INBOX\";\n if (pathname.includes(\"/create-kyc\")) return \"EKYC_CREATE_KYC\";\n if (pathname.includes(\"/k-details\")) return \"EKYC_K_DETAILS\";\n if (pathname.includes(\"/aadhaar-verification\")) return \"EKYC_AADHAAR_VERIFICATION\";\n if (pathname.includes(\"/address-details\")) return \"EKYC_ADDRESS_DETAILS\";\n return \"ES_COMMON_INBOX\";\n };\n\n const breadcrumbs = [\n { icon: HomeIcon, path: \"/digit-ui/employee\" },\n { label: t(getBreadcrumbLabel()) }\n ];\n\n return (\n <AppContainer>\n <div className=\"ground-container employee-app-container\">\n <ModuleHeader\n leftContent={\n <React.Fragment>\n <ArrowLeft className=\"icon\" />\n Back\n </React.Fragment>\n }\n onLeftClick={() => window.history.back()}\n breadcrumbs={breadcrumbs}\n />\n\n <Switch>\n <PrivateRoute\n path={`${path}/dashboard`}\n component={() => (\n <Inbox\n parentRoute={path}\n businessService=\"EKYC\"\n moduleCode=\"EKYC\"\n isInbox={true}\n />\n )}\n />\n\n <PrivateRoute\n path={`${path}/create-kyc`}\n component={() => <Create />}\n />\n\n <PrivateRoute\n path={`${path}/k-details`}\n component={() => <KDetails />}\n />\n\n <PrivateRoute\n path={`${path}/aadhaar-verification`}\n component={() => <AadhaarVerification />}\n />\n\n <PrivateRoute\n path={`${path}/address-details`}\n component={() => <AddressDetails />}\n />\n\n <PrivateRoute\n path={`${path}/`}\n component={() => (\n <Inbox\n parentRoute={path}\n businessService=\"EKYC\"\n moduleCode=\"EKYC\"\n isInbox={true}\n />\n )}\n />\n </Switch>\n </div>\n </AppContainer>\n );\n};\n\nexport default EmployeeApp;\n","import React from \"react\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport EKYCCard from \"./components/EKYCCard\";\nimport Inbox from \"./pages/employee/Inbox\";\nimport DesktopInbox from \"./components/DesktopInbox\";\nimport MobileInbox from \"./components/MobileInbox\";\nimport EmployeeApp from \"./pages/employee\";\n\nexport const EkycModule = ({ stateCode, userType, tenants }) => {\n const { path, url } = useRouteMatch();\n const moduleCode = \"EKYC\";\n const language = Digit.StoreData.getCurrentLanguage();\n const { isLoading, data: store } = Digit.Services.useStore({ stateCode, moduleCode, language });\n Digit.SessionStorage.set(\"EKYC_TENANTS\", tenants);\n\n if (isLoading) {\n return null;\n }\n if (userType === \"employee\") {\n return <EmployeeApp path={path} url={url} userType={userType} tenants={tenants} />;\n } else return null;\n};\n\nconst componentsToRegister = {\n EKYCModule: EkycModule,\n EKYCCard,\n EKYCInbox: Inbox,\n EKYCDesktopInbox: DesktopInbox,\n EKYCMobileInbox: MobileInbox,\n};\n\nexport const initEkycComponents = () => {\n Object.entries(componentsToRegister).forEach(([key, value]) => {\n Digit.ComponentRegistryService.setComponent(key, value);\n });\n};\n\nexport default EkycModule;\n"],"names":["EKYCCard","t","useTranslation","propsForModuleCard","Icon","React","createElement","PersonIcon","moduleName","kpis","count","label","link","links","EmployeeModuleCard","SearchApplication","onSearch","searchFields","searchParams","register","handleSubmit","reset","watch","control","useForm","defaultValues","onSubmitInput","data","clearSearch","resetValues","reduce","acc","field","name","onSubmit","className","map","input","key","Label","type","Controller","render","props","Dropdown","selected","value","select","val","onChange","onBlur","option","options","optionKey","optionsKey","TextInput","Object","assign","inputRef","SubmitBar","submit","LinkLabel","onClick","StatusCards","countData","Card","total","pending","completed","DesktopInbox","isLoading","onSort","onNextPage","onPrevPage","currentPage","pageSizeLimit","onPageSizeChange","parentRoute","sortParams","totalRecords","columns","useMemo","Header","accessor","Cell","row","_row$original","applicationNumber","original","Link","to","_row$original2","citizenName","_row$original3","mobileNumber","_row$original4","status","tableData","items","style","borderRadius","Table","getCellProps","cellInfo","MobileInbox","_data$items","mobileData","item","Loader","length","DetailsCard","serviceRequestIdKey","linkPrefix","split","text","index","textAlign","MOCK_DATA_ITEMS","Inbox","businessService","initialStates","filterComponent","isInbox","tenantId","Digit","ULBService","getCurrentTenantId","pageOffset","setPageOffset","useState","pageSize","setPageSize","setSortParams","id","desc","defaultStatusOption","setSearchParams","filteredStaticData","filter","_searchParams$status","match","currentStatus","undefined","staticCountData","i","rejected","handleSearch","useCallback","filterParam","prev","fetchNextPage","fetchPrevPage","Math","max","handlePageSizeChange","e","newSize","Number","target","handleSort","args","Utils","browser","isMobile","totalCount","floor","Create","history","useHistory","path","useRouteMatch","kNumber","setKNumber","kName","setKName","handleContinue","parentPath","replace","push","padding","CardHeader","LabelFieldPair","CardLabel","marginBottom","fontWeight","placeholder","ActionBar","KDetails","location","useLocation","state","showModal","setShowModal","selectedOption","setSelectedOption","code","connectionDetails","consumerName","address","connectionType","meterNo","phoneNo","email","handleStartVerification","onModalConfirm","handleRaiseCorrection","console","log","disable","marginTop","StatusTable","Row","marginLeft","background","border","color","cursor","boxShadow","Modal","headerBarMain","headerBarEnd","actionSaveLabel","actionSaveOnSubmit","actionCancelLabel","actionCancelOnSubmit","RadioButtons","onSelect","AadhaarVerification","aadhaarLastFour","setAadhaarLastFour","isAadhaarVerified","setIsAadhaarVerified","nameCorrect","setNameCorrect","userName","setUserName","mobileChange","setMobileChange","setMobileNumber","whatsappNumber","setWhatsappNumber","setEmail","noOfPersons","setNoOfPersons","yesNoOptions","handleVerifyAadhaar","handleSaveAndContinue","FingerprintIcon","width","height","viewBox","fill","xmlns","d","position","test","textInputStyle","paddingLeft","left","top","transform","right","TickMark","fillColor","backgroundColor","display","alignItems","gap","fontSize","flexDirection","innerStyles","AddressDetails","addressType","setAddressType","correctAddress","setCorrectAddress","fullAddress","setFullAddress","flatNo","setFlatNo","building","setBuilding","landmark","setLandmark","pincode","setPincode","addressOptions","handleCompleteVerification","FlagIcon","IdCardIcon","CameraIcon","TargetIcon","PincodeIcon","justifyContent","lineHeight","Fragment","PropertyHouse","styles","flex","LocationIcon","margin","InfoBannerIcon","EmployeeApp","sessionStorage","removeItem","getBreadcrumbLabel","pathname","includes","breadcrumbs","icon","HomeIcon","AppContainer","ModuleHeader","leftContent","ArrowLeft","onLeftClick","window","back","Switch","PrivateRoute","component","moduleCode","EkycModule","stateCode","userType","tenants","url","language","StoreData","getCurrentLanguage","store","Services","useStore","SessionStorage","set","componentsToRegister","EKYCModule","EKYCInbox","EKYCDesktopInbox","EKYCMobileInbox","initEkycComponents","entries","forEach","ComponentRegistryService","setComponent"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Module.js
CHANGED
|
@@ -1,28 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useRouteMatch } from "react-router-dom";
|
|
3
3
|
import EKYCCard from "./components/EKYCCard";
|
|
4
|
-
// import EkycDashboard from "./components/Dashboard";
|
|
5
4
|
import Inbox from "./pages/employee/Inbox";
|
|
6
5
|
import DesktopInbox from "./components/DesktopInbox";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
<Switch>
|
|
11
|
-
<Route path={`${path}/dashboard`}>
|
|
12
|
-
<Inbox />
|
|
13
|
-
</Route>
|
|
14
|
-
{/* <Route path={`${path}/inbox`}>
|
|
15
|
-
<Inbox />
|
|
16
|
-
</Route> */}
|
|
17
|
-
<Route path={`${path}/create-kyc`}>
|
|
18
|
-
<div>Create KYC Page Placeholder</div>
|
|
19
|
-
</Route>
|
|
20
|
-
<Route path={`${path}`}>
|
|
21
|
-
<Inbox />
|
|
22
|
-
</Route>
|
|
23
|
-
</Switch>
|
|
24
|
-
);
|
|
25
|
-
};
|
|
6
|
+
import MobileInbox from "./components/MobileInbox";
|
|
7
|
+
import Filter from "./components/Filter";
|
|
8
|
+
import EmployeeApp from "./pages/employee";
|
|
26
9
|
|
|
27
10
|
export const EkycModule = ({ stateCode, userType, tenants }) => {
|
|
28
11
|
const { path, url } = useRouteMatch();
|
|
@@ -41,10 +24,11 @@ export const EkycModule = ({ stateCode, userType, tenants }) => {
|
|
|
41
24
|
|
|
42
25
|
const componentsToRegister = {
|
|
43
26
|
EKYCModule: EkycModule,
|
|
44
|
-
EKYCCard
|
|
45
|
-
// EkycDashboard: EkycDashboard,
|
|
27
|
+
EKYCCard,
|
|
46
28
|
EKYCInbox: Inbox,
|
|
47
29
|
EKYCDesktopInbox: DesktopInbox,
|
|
30
|
+
EKYCMobileInbox: MobileInbox,
|
|
31
|
+
EKYC_INBOX_FILTER: (props) => <Filter {...props} />,
|
|
48
32
|
};
|
|
49
33
|
|
|
50
34
|
export const initEkycComponents = () => {
|