{"version":3,"file":"static/chunks/17002.f0c85ae8a1ff6f10.js","mappings":"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","sources":["webpack://_N_E/../../packages/common/src/api/countries/queries/useCountries/service.ts","webpack://_N_E/../../packages/common/src/api/countries/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/countries/queries/useCountries/index.ts","webpack://_N_E/../../packages/common/src/api/user-emails/mutations/useUserEmailSendCode/service.ts","webpack://_N_E/../../packages/common/src/api/user-emails/mutations/useUserEmailSendCode/index.ts","webpack://_N_E/../../packages/common/src/api/user-emails/mutations/useVerifyUserEmail/service.ts","webpack://_N_E/../../packages/common/src/api/user-emails/mutations/useVerifyUserEmail/index.ts","webpack://_N_E/../../packages/common/src/api/user-emails/queries/useUserEmailMeById/service.ts","webpack://_N_E/../../packages/common/src/api/user-emails/queries/useUserEmailMeById/index.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useSendUserPhoneNumberCode/service.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useSendUserPhoneNumberCode/index.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/queryKey.ts","webpack://_N_E/../../packages/common/src/api/wallets/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/wallets/queries/useWalletsMe/service.ts","webpack://_N_E/../../packages/common/src/api/wallets/queries/useWalletsMe/index.ts","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/variants.ts","webpack://_N_E/../../packages/common/src/hooks/date-picker/useCustomDatePicker/index.ts","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/Column/Cell/helper.ts","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/Column/Cell/index.tsx","webpack://_N_E/../../packages/common/src/enums/language.ts","webpack://_N_E/../../packages/common/src/constants/date/date-format-mapping.ts","webpack://_N_E/../../packages/common/src/hooks/date-picker/useScrollEffectHandler/index.ts","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/Column/index.tsx","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/index.tsx","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/index.tsx","webpack://_N_E/../../packages/common/src/components/DatePicker/Desktop/index.tsx","webpack://_N_E/../../packages/common/src/components/DatePicker/index.tsx","webpack://_N_E/../../packages/common/src/api/gender/queryKey.ts","webpack://_N_E/../../packages/common/src/api/gender/queries/useGenders/service.ts","webpack://_N_E/../../packages/common/src/api/gender/queries/useGenders/index.ts","webpack://_N_E/../../packages/common/src/utils/user-payment-details/index.ts","webpack://_N_E/../../packages/common/src/hooks/user-identity/useUserIdentityLookUpHandler/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/PersonalIdentityLookUp/Inputs/Name/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/PersonalIdentityLookUp/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/NoKycToSelectedCoin/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Renderer/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/Steps/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/PhoneNumberLookUp/index.tsx","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useCreateKycFaceRecognition/service.ts","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useCreateKycFaceRecognition/index.ts","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/DocumentSubmission/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Verify/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Verify/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/Renderer/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/KycSuccess/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/KycSuccess/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Renderer/index.tsx","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/index.tsx","webpack://_N_E/../../packages/common/src/components/PasswordInput/index.tsx","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectInputWithImage/index.tsx","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectOptionWithHighlight/index.tsx","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectOptionWithImage/index.tsx","webpack://_N_E/../../packages/common/src/components/Steps/Step/index.tsx","webpack://_N_E/../../packages/common/src/components/Steps/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Verify/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Create/CountryCodeSelector/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Create/PhoneNumberInput/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Create/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Verify/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Layout/Renderer/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Renderer/index.tsx","webpack://_N_E/../../packages/common/src/enums/kyc/checkpoint/index.ts","webpack://_N_E/../../packages/common/src/enums/user-identity/form-fields/index.ts","webpack://_N_E/../../packages/common/src/enums/user-identity/status/index.ts","webpack://_N_E/../../packages/common/src/hooks/coin/useCoallescedCoinId/index.tsx","webpack://_N_E/../../packages/common/src/hooks/kyc/useKycFormSubmission/helper.ts","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useCreateKyc/service.ts","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useCreateKyc/index.ts","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useUpdateKycIdentity/service.ts","webpack://_N_E/../../packages/common/src/api/kyc/mutations/useUpdateKycIdentity/index.ts","webpack://_N_E/../../packages/common/src/api/kyc/queries/useKycMeByOriginId/prefetch.ts","webpack://_N_E/../../packages/common/src/hooks/kyc/useKycFormSubmission/index.tsx","webpack://_N_E/../../packages/common/src/hooks/kyc/useKycInformationHandler/index.tsx","webpack://_N_E/../../packages/common/src/hooks/kyc/useKycMeByOriginIdWithOrigin/index.tsx","webpack://_N_E/../../packages/common/src/hooks/kyc/useKycNavigation/index.tsx","webpack://_N_E/../../packages/common/src/hooks/useDebounce.tsx","webpack://_N_E/../../packages/common/src/hooks/useNotificationService.ts","webpack://_N_E/../../packages/common/src/hooks/user-emails/useUserEmailsForm/index.tsx","webpack://_N_E/../../packages/common/src/api/user-identities/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/user-identities/queries/useUserIdentitiesLookup/service.ts","webpack://_N_E/../../packages/common/src/api/user-identities/queries/useUserIdentitiesLookup/index.ts","webpack://_N_E/../../packages/common/src/api/user-identities/queries/useUserIdentitiesValidate/service.ts","webpack://_N_E/../../packages/common/src/api/user-identities/queries/useUserIdentitiesValidate/index.ts","webpack://_N_E/../../packages/common/src/hooks/user-identity/useUserIdentityValidateByOriginId/index.tsx","webpack://_N_E/../../packages/common/src/namespaces/kycIdentityOrigin.ts","webpack://_N_E/../../packages/common/src/hooks/user-identity/useUserOriginId/index.tsx","webpack://_N_E/../../packages/common/src/hooks/countries/useCountriesByOriginId/index.tsx","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/queries/usePhoneNumberById/service.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/queries/usePhoneNumberById/index.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/queries/usePhoneNumbersLookup/service.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/queries/usePhoneNumbersLookup/index.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useCreatePhoneNumber/service.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useCreatePhoneNumber/index.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useUserPhoneNumberVerify/service.ts","webpack://_N_E/../../packages/common/src/api/user-phone-numbers/mutations/useUserPhoneNumberVerify/index.ts","webpack://_N_E/../../packages/common/src/hooks/user-phone-number/useUserPhoneNumberForm/index.tsx","webpack://_N_E/../../packages/common/src/utils/list/groupBy/index.ts","webpack://_N_E/../../packages/common/src/components/DatePicker/Desktop/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/Column/Cell/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/Column/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DatePicker/Mobile/Selector/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DatePicker/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/DocumentSubmission/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/KycSuccess/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/KycSuccess/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/NoKycToSelectedCoin/styles.module.scss","webpack://_N_E/../../packages/common/src/components/KYC/UserIdentity/Form/Renderer/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PasswordInput/styles.module.scss","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectInputWithImage/styles.module.scss","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectOptionWithHighlight/styles.module.scss","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectOptionWithImage/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Steps/Step/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Steps/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/Verify/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserEmail/Form/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Create/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Verify/styles.module.scss","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/styles.module.scss"],"sourcesContent":["import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseCountriesQueryKeyProps } from './props';\nimport { Country, PaginatedResponse } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchCountries(\n { queryKey, pageParam }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n) {\n const { limit, query, originId } = queryKey[1];\n const response = await axiosInstance.get>(\n '/countries',\n {\n params: {\n limit,\n page: pageParam,\n query,\n originId,\n },\n },\n );\n\n return response.data;\n}\n","export enum CountriesQueryKeys {\n Countries = 'countries/',\n}\n","import { InfiniteData } from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@starsoft/common/services/query-client';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { UseCountriesProps, UseCountriesQueryKeyProps } from './props';\nimport { fetchCountries } from './service';\nimport { useMemo } from 'react';\nimport {\n useAxiosInstance,\n useInfiniteQueryCallbacks,\n useInfiniteQueryReset,\n} from '@starsoft/common/hooks';\nimport { CountriesQueryKeys } from '../../queryKeys';\nimport { FetchCountriesInputDto } from '@starsoft/common/dto';\nimport {\n Country,\n GenericError,\n PaginatedResponse,\n} from '@starsoft/common/models';\n\n/**\n * Custom hook to fetch paginated country data.\n *\n * This hook utilizes the `useInfiniteQuery` from React Query to fetch and manage\n * paginated data for countries. It handles the query key, pagination, and data formatting.\n *\n * @param {UseCountriesProps} options - Configuration options for the query.\n * @param {boolean} [options.enabled=true] - Flag to enable or disable the query.\n * @param {string} [options.query] - Query string to filter countries.\n * @param {string} [options.originId] - Origin ID to filter countries.\n *\n * @returns {Object} - Returns an object containing the query state and functions.\n * @returns {boolean} return.isFetching - Indicates if the query is currently loading.\n * @returns {boolean} return.hasNextPage - Indicates if there are more pages to fetch.\n * @returns {AxiosError} return.error - Error object if the query fails.\n * @returns {Function} return.fetchNextPage - Function to fetch the next page of data.\n * @returns {Country[]} return.countries - Flattened array of country data from all pages.\n */\nexport function useCountries(options?: UseCountriesProps) {\n // Destructure options with default values\n const { enabled = true, query, originId } = options ?? {};\n\n // Define the filter parameters for the query\n const filter: FetchCountriesInputDto = {\n limit: 50,\n query,\n originId,\n };\n\n // Get an Axios instance for making HTTP requests\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Define the query key for caching and refetching purposes\n const queryKey: UseCountriesQueryKeyProps = [\n CountriesQueryKeys.Countries,\n filter,\n ];\n\n // Get functions to handle pagination\n const { getNextPageParam, getPreviousPageParam } =\n useInfiniteQueryCallbacks();\n\n // Reset the infinite query state\n useInfiniteQueryReset(queryKey);\n\n // Use the useInfiniteQuery hook to fetch paginated country data\n const {\n data,\n isFetching,\n hasNextPage,\n error,\n fetchNextPage,\n ...infiniteQuery\n } = useInfiniteQuery<\n PaginatedResponse,\n AxiosError,\n InfiniteData>,\n UseCountriesQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext => fetchCountries(queryContext, axiosInstance),\n getNextPageParam,\n getPreviousPageParam,\n initialPageParam: 1,\n enabled,\n });\n\n // Memoize the flattened array of country data from all pages\n const countries = useMemo(\n () => data?.pages?.flatMap(page => page.data),\n [data],\n );\n\n // Return the query state and functions\n return {\n ...infiniteQuery,\n isFetching, // Indicates if the query is currently loading\n hasNextPage, // Indicates if there are more pages to fetch\n error, // Error object if the query fails\n fetchNextPage, // Function to fetch the next page of data\n countries, // Flattened array of country data from all pages\n };\n}\n","import { SendCodeInputDto } from '@starsoft/common/dto';\nimport { Success } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchSendCode(\n data: SendCodeInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response: AxiosResponse = await axiosInstance.post(\n '/user-emails/send-code',\n data,\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { fetchSendCode } from './service';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { SendCodeInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to send verification codes via email\n *\n * This hook handles sending verification codes to user emails and managing the mutation state.\n * It uses React Query for data mutation and state management.\n *\n * @returns {Object} An object containing:\n * - sendCode: Function to trigger sending verification code\n * - isPending: Boolean indicating if sending is in progress\n * - isSuccess: Boolean indicating if code was sent successfully\n */\nexport function useUserEmailSendCode() {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const { isPending, mutate, isSuccess } = useMutation({\n mutationFn: (data: SendCodeInputDto) => fetchSendCode(data, axiosInstance),\n });\n\n return {\n isPending,\n isSuccess,\n sendCode: mutate,\n };\n}\n","import { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { Success } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchVerifyUserEmail(\n data: UserEmailVerifyInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response: AxiosResponse = await axiosInstance.patch(\n '/user-emails/verify',\n data,\n );\n\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchVerifyUserEmail } from './service';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { UserEmailsQueryKeys } from '../../queryKeys';\nimport { useAxiosInstance, useModal } from '@starsoft/common/hooks';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { GenericError, Success } from '@starsoft/common/models';\nimport { useNotificationService } from '@starsoft/common/hooks/useNotificationService';\nimport { NotificationsService } from '@starsoft/common/services';\n\n/**\n * Custom hook to verify user email addresses\n *\n * This hook handles the verification of user email addresses and manages the mutation state.\n * It uses React Query for data mutation, cache invalidation, and handles success notifications.\n * On successful verification, it closes the email modal, invalidates relevant queries, and shows a success message.\n *\n * @returns {Object} An object containing:\n * - verifyUserEmail: Function to trigger email verification (non-async)\n * - verifyUserEmailAsync: Function to trigger email verification (async version)\n * - isPending: Boolean indicating if verification is in progress\n */\nexport function useVerifyUserEmail() {\n const queryClient: QueryClient = useQueryClient();\n const { onClose } = useModal(CommonModalsKey.UserEmail);\n const NotificationsService: NotificationsService =\n useNotificationService();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Success callback handler for email verification\n * Closes modal, invalidates queries, and shows success notification\n *\n * @param {Success} _ - Success response from the server (unused)\n * @param {UserEmailVerifyInputDto} data - The verification input data containing emailId\n */\n function onSuccess(_: Success, data: UserEmailVerifyInputDto) {\n onClose();\n queryClient.invalidateQueries({\n queryKey: [UserEmailsQueryKeys.Me],\n });\n queryClient.invalidateQueries({\n queryKey: [UserEmailsQueryKeys.MeById, data.emailId],\n });\n NotificationsService.success({\n title: 'verify_user_email_title',\n message: 'verify_user_email_description',\n });\n }\n\n const { isPending, mutate, mutateAsync } = useMutation<\n Success,\n AxiosError,\n UserEmailVerifyInputDto\n >({\n mutationFn: (data: UserEmailVerifyInputDto) =>\n fetchVerifyUserEmail(data, axiosInstance),\n onSuccess,\n });\n\n return {\n verifyUserEmail: mutate,\n isPending,\n verifyUserEmailAsync: mutateAsync,\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserEmailMeByIdQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UserEmail } from '@starsoft/common/models';\n\nexport async function fetchUserEmailMeById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: number = queryKey[1];\n\n const response: AxiosResponse = await axiosInstance.get(\n `/user-emails/me/${id}`,\n );\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserEmailsQueryKeys } from '../../queryKeys';\nimport { UseUserEmailMeByIdProps, UseUserEmailMeByIdQueryKey } from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { GenericError, UserEmail } from '@starsoft/common/models';\nimport { fetchUserEmailMeById } from './service';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch and manage user email data by ID\n *\n * This hook handles fetching user email data for a specific email ID.\n * It uses React Query for data fetching, caching, and state management.\n *\n * @param {UseUserEmailMeByIdProps} props - The props object\n * @param {number} props.id - The ID of the email to fetch\n *\n * @returns {Object} An object containing:\n * - error: Any error that occurred during fetch\n * - refetch: Function to manually trigger a refetch\n * - isSuccess: Boolean indicating if fetch was successful\n * - userEmail: The fetched user email data\n * - isPending: Boolean indicating if fetch is in progress (excluding idle state)\n */\nexport function useUserEmailMeById({ id }: UseUserEmailMeByIdProps) {\n const queryKey: UseUserEmailMeByIdQueryKey = [\n UserEmailsQueryKeys.MeById,\n id as number,\n ];\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const { data, isPending, error, refetch, fetchStatus, isSuccess } = useQuery<\n UserEmail,\n AxiosError,\n UserEmail,\n UseUserEmailMeByIdQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchUserEmailMeById(queryContext, axiosInstance),\n staleTime: 5 * 1000, // Consider data stale after 5 seconds\n enabled: !!id, // Only run query if ID is provided\n });\n\n return {\n error,\n refetch,\n isSuccess,\n userEmail: data,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","import { UserPhoneNumberSendCodeInputDto } from '@starsoft/common/dto';\nimport { Success } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchSendUserPhoneNumberCode(\n data: UserPhoneNumberSendCodeInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse = await axiosInstance.post(\n '/user-phone-numbers/send-code',\n data,\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { fetchSendUserPhoneNumberCode } from './service';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { UserPhoneNumberSendCodeInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to send verification code for a user's phone number\n *\n * This hook handles sending a verification code to a phone number,\n * managing the mutation state using React Query's mutation capabilities.\n *\n * @returns {Object} An object containing:\n * - sendUserPhoneNumberCode: Function to trigger sending the verification code\n * @param {UserPhoneNumberSendCodeInputDto} data - The phone number data to send code to\n * - isPending: Boolean indicating if sending is in progress\n * - isSuccess: Boolean indicating if code was sent successfully\n */\nexport function useSendUserPhoneNumberCode() {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { mutate, isPending, isSuccess } = useMutation({\n mutationFn: (data: UserPhoneNumberSendCodeInputDto) =>\n fetchSendUserPhoneNumberCode(data, axiosInstance),\n });\n\n return {\n sendUserPhoneNumberCode: mutate,\n isPending,\n isSuccess,\n };\n}\n","export enum UserPhoneNumbersQueryKey {\n Me = '/user-phone-numbers/me',\n ById = '/user-phone-numbers/:id',\n Lookup = '/user-phone-numbers/lookup',\n}\n","export enum WalletsQueryKeys {\n Me = '/wallets/me',\n}\n","import { AxiosInstance, AxiosResponse } from 'axios';\nimport { Wallet } from '../../../../models';\n\nexport async function fetchWalletsMe(\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse =\n await axiosInstance.get('wallets/me');\n const wallet: Wallet = response.data;\n\n return wallet;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { WalletsQueryKeys } from '../../queryKeys';\nimport { UseWalletsMeProps } from './props';\nimport { fetchWalletsMe } from './service';\nimport { GenericError, Wallet } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AuthService } from '@starsoft/common/services';\n\n/**\n * Custom hook to fetch the current user's wallet information\n *\n * This hook handles fetching the authenticated user's wallet data,\n * managing the query state using React Query. The data is considered\n * fresh indefinitely (staleTime: Infinity) and only fetches when\n * the user is authorized.\n *\n * @param {UseWalletsMeProps} options - Optional configuration object\n * @param {boolean} [options.enabled=true] - Whether the query should be enabled\n * @param {boolean} [options.refetchOnMount=true] - Whether to refetch when component mounts\n * @param {boolean} [options.refetchOnWindowFocus=true] - Whether to refetch when window regains focus\n *\n * @returns {Object} An object containing:\n * - isLoading: Boolean indicating if fetch is in progress (excluding idle state)\n * - error: Any error that occurred during fetch\n * - wallet: The fetched wallet data\n * - refetch: Function to manually trigger a refetch\n * - isRefetching: Boolean indicating if a refetch is in progress\n */\nexport function useWalletsMe(options?: UseWalletsMeProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const {\n enabled = true,\n refetchOnMount = true,\n refetchOnWindowFocus = true,\n } = options ?? {};\n\n const { isPending, error, data, refetch, fetchStatus, isRefetching } =\n useQuery>({\n queryKey: [WalletsQueryKeys.Me],\n queryFn: () => fetchWalletsMe(axiosInstance),\n enabled: enabled && AuthService.isAuthorized(),\n staleTime: Infinity,\n refetchOnMount,\n refetchOnWindowFocus,\n });\n\n return {\n isLoading: isPending && fetchStatus !== 'idle',\n error: error,\n wallet: data,\n refetch,\n isRefetching,\n };\n}\n","import { Transition, Variants } from 'framer-motion';\n\nconst transition: Transition = { duration: 0.3, ease: 'easeInOut' };\n\nexport const slideIn: Variants = {\n hidden: {\n y: 1000,\n pointerEvents: 'none',\n transition,\n },\n visible: {\n y: 0,\n transition,\n pointerEvents: 'all',\n },\n};\n","import { useState, useCallback, useMemo, useEffect } from 'react';\nimport { UseCustomDatePickerProps } from './props';\n\n/**\n * Custom hook to manage date selection and manipulation.\n * This hook provides functionalities to update and manage date states, including day, month, and year.\n *\n * @param {UseCustomDatePickerProps} [options] - Options to initialize the date picker.\n * @param {string} [options.date] - Initial date in string format.\n * @param {Function} [options.callback] - Callback function to be called when the date is updated.\n * @param {boolean} [options.isLoading] - Flag to indicate if the date picker is in a loading state.\n * @returns {Object} An object containing the current date, days, months, years, and update functions.\n *\n * @example\n * // Usage example:\n * const { date, updateDay, updateMonth, updateYear } = useCustomDatePicker({\n * date: '2023-10-01',\n * callback: (updatedDate) => function(updatedDate),\n * isLoading: false,\n * });\n * updateDay(15); // Updates the day to 15\n * updateMonth(12); // Updates the month to December\n * updateYear(2025); // Updates the year to 2025\n */\nexport function useCustomDatePicker(options?: UseCustomDatePickerProps) {\n const { date: initialDate, callback, isLoading } = options ?? {};\n const [isDateModified, setIsDateModified] = useState(false);\n\n // State to manage the current date\n const [date, setDate] = useState(\n initialDate ? new Date(initialDate) : new Date(),\n );\n\n // Function to reset the date to the initial date if not loading and date is not modified\n function handleResetInitialDate() {\n if (!isLoading && !isDateModified) {\n setDate(new Date(initialDate));\n }\n }\n\n // Effect to handle resetting the date when dependencies change\n useEffect(handleResetInitialDate, [isLoading, initialDate, isDateModified]);\n\n // Extract month, year, and day from the current date\n const month = date.getMonth();\n const year = date.getFullYear();\n const day = date.getUTCDate();\n\n // Callback to get the maximum number of days in a given month and year\n const getMaxDaysForMonth = useCallback(\n (year: number, month: number) => new Date(year, month + 1, 0).getDate(),\n [],\n );\n\n // Memoized value for the number of days in the current month\n const daysInMonth = useMemo(\n () => getMaxDaysForMonth(year, month),\n [year, month, getMaxDaysForMonth],\n );\n\n // Memoized array of months (1 to 12)\n const months = useMemo(() => Array.from({ length: 12 }, (_, i) => i + 1), []);\n\n // Memoized array of years (current year to 100 years back)\n const years = useMemo(() => {\n const currentYear = new Date().getFullYear();\n return Array.from({ length: 100 }, (_, i) => currentYear - i);\n }, []);\n\n // Memoized index of the current year in the years array\n const yearIndex = useMemo(\n () => years.findIndex(y => y === year),\n [years, year],\n );\n\n // Callback to update the day in the current date\n const updateDay = useCallback(\n (newDay: number) => {\n setDate(prev => {\n const updatedDate = new Date(\n prev.getFullYear(),\n prev.getMonth(),\n newDay,\n );\n callback?.(updatedDate.toISOString());\n return updatedDate;\n });\n setIsDateModified(true);\n },\n [callback],\n );\n\n // Callback to update the month in the current date\n const updateMonth = useCallback(\n (newMonth: number) => {\n setDate(prev => {\n const maxDays = getMaxDaysForMonth(prev.getFullYear(), newMonth - 1);\n const adjustedDay = Math.min(prev.getDate(), maxDays);\n const updatedDate = new Date(\n prev.getFullYear(),\n newMonth - 1,\n adjustedDay,\n );\n callback?.(updatedDate.toISOString());\n return updatedDate;\n });\n setIsDateModified(true);\n },\n [callback, getMaxDaysForMonth],\n );\n\n // Callback to update the year in the current date\n const updateYear = useCallback(\n (newYear: number) => {\n setDate(prev => {\n const maxDays = getMaxDaysForMonth(newYear, prev.getMonth());\n const adjustedDay = Math.min(prev.getDate(), maxDays);\n const updatedDate = new Date(newYear, prev.getMonth(), adjustedDay);\n callback?.(updatedDate.toISOString());\n return updatedDate;\n });\n setIsDateModified(true);\n },\n [callback, getMaxDaysForMonth],\n );\n\n // Memoized array of days in the current month\n const days = useMemo(\n () => Array.from({ length: daysInMonth }).map((_, index) => index + 1),\n [daysInMonth],\n );\n\n return {\n date,\n days,\n months,\n years,\n updateDay,\n updateMonth,\n updateYear,\n current: {\n day: day - 1,\n month,\n year: yearIndex,\n currentYear: year,\n },\n };\n}\n\nexport type { UseCustomDatePickerProps };\n","import { DatePickerMobileSelectorColumnCellProps } from './props';\n\n/**\n * Helper function to format date picker option labels based on type (day, month, year)\n *\n * @template T - Generic type for the value parameter\n * @param {Object} params - Parameters object\n * @param {('day'|'month'|'year')} params.type - Type of date value to format\n * @param {T} value - The value to format into a label\n * @returns {string|number} Formatted label:\n * - For days: Returns numeric value\n * - For months: Returns translation key in format \"month_X\"\n * - For years: Returns value as-is\n */\nexport function getDatePickerOptionLabel(\n { type }: Pick, 'type'>,\n value: T,\n) {\n switch (type) {\n case 'day':\n return Number(value);\n case 'month':\n return `month_${value}`;\n case 'year':\n return value;\n }\n}\n","import { DatePickerMobileSelectorColumnCellProps } from './props';\nimport styles from './styles.module.scss';\nimport { getDatePickerOptionLabel } from './helper';\nimport { memo } from 'react';\nimport { useTranslation } from '../../../../../../hooks';\n\n/**\n * Component that renders an individual cell within a date picker selector column\n * Displays a date value (day, month or year) and handles styling for the currently selected item\n *\n * @component\n * @template T - Generic type for cell value\n * @param {Object} props - Component props\n * @param {T} props.value - Value to display in the cell\n * @param {boolean} props.isCurrent - Whether this cell is currently selected\n * @param {React.CSSProperties} props.style - CSS styles to apply to the cell\n * @param {'day'|'month'|'year'} props.type - Type of date value displayed\n * @returns {JSX.Element} Date picker cell with formatted value and styling\n */\nfunction DatePickerMobileSelectorColumnCell({\n value,\n isCurrent,\n style,\n type,\n}: DatePickerMobileSelectorColumnCellProps) {\n // Get translation function for month names\n const { t } = useTranslation('common');\n\n // Get formatted label for the date value\n const label = getDatePickerOptionLabel({ type }, value) as string;\n\n return (\n \n {/* Translate month names, display other values directly */}\n {type == 'month' ? t(label) : label}\n \n );\n}\n\n// Memoize component to prevent unnecessary re-renders\nexport default memo(\n DatePickerMobileSelectorColumnCell,\n) as typeof DatePickerMobileSelectorColumnCell;\n","export enum Language {\n Chinese = 'zh',\n Russian = 'ru',\n Portuguese = 'pt',\n French = 'fr',\n Spanish = 'es',\n English = 'en',\n Dutch = 'de',\n Indonesian = 'id',\n Hindi = 'hi',\n}\n","import { Language } from '../../enums/language';\n\nexport const dateFormatMapping: Map<\n Language,\n { day: number; month: number; year: number }\n> = new Map([\n [Language.Portuguese, { day: 1, month: 2, year: 3 }],\n [Language.Spanish, { day: 1, month: 2, year: 3 }],\n [Language.French, { day: 1, month: 2, year: 3 }],\n [Language.English, { day: 2, month: 1, year: 3 }],\n [Language.Chinese, { day: 2, month: 1, year: 3 }],\n [Language.Russian, { day: 1, month: 2, year: 3 }],\n [Language.Dutch, { day: 1, month: 2, year: 3 }],\n [Language.Indonesian, { day: 1, month: 2, year: 3 }],\n]);\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { UseScrollEffectProps } from './props';\n\n/**\n * Custom hook to handle scroll effects for a list of items.\n * This hook provides functionalities to manage dragging, snapping, and styling of items based on their scroll position.\n *\n * @template T - Type of the items in the content array.\n * @param {UseScrollEffectProps} [options] - Options to initialize the scroll effect.\n * @param {Function} [options.callback] - Callback function to be called when an item is snapped to.\n * @param {number} [options.current] - The current index of the item to be initially positioned.\n * @param {number} [options.itemHeight=40] - The height of each item in the list.\n * @param {T[]} [options.content] - The array of items to be scrolled through.\n * @returns {Object} An object containing the current index, container reference, item style function, and event handlers.\n *\n * @example\n * // Usage example:\n * const { currentIndex, containerRef, getItemStyle, onMouseDown, onTouchStart } = useScrollEffect({\n * callback: (item) => function(item),\n * current: 2,\n * itemHeight: 50,\n * content: ['Item 1', 'Item 2', 'Item 3'],\n * });\n */\nexport function useScrollEffect(options?: UseScrollEffectProps) {\n const { callback, current, itemHeight = 40, content } = options ?? {};\n const totalItems = content?.length ?? 0;\n\n const containerRef = useRef(null);\n const previousYRef = useRef(null);\n const offsetRef = useRef(0);\n\n const [position, setPosition] = useState(current ? -current * itemHeight : 0);\n const [dragging, setDragging] = useState(false);\n const [snapping, setSnapping] = useState(false);\n\n /**\n * Function to snap the position to the closest item.\n * It calculates the nearest item based on the current position and calls the callback with the snapped item.\n */\n const snapToClosest = useCallback(() => {\n if (snapping) return;\n setSnapping(true);\n\n const maxPosition = -(totalItems - 1) * itemHeight;\n const roundedPosition = Math.round(position / itemHeight) * itemHeight;\n const finalPosition = Math.max(maxPosition, Math.min(0, roundedPosition));\n setPosition(finalPosition);\n\n const newIndex = Math.abs(finalPosition / itemHeight);\n if (!callback || !content?.[newIndex]) {\n setSnapping(false);\n return;\n }\n callback(content[newIndex] as T);\n\n setSnapping(false);\n }, [itemHeight, position, totalItems, snapping]);\n\n /**\n * Event handler for the start of a drag action.\n * It sets the dragging state and records the initial Y position.\n *\n * @param {React.MouseEvent | React.TouchEvent} event - The drag start event.\n */\n const onDragStart = (\n event: React.MouseEvent | React.TouchEvent,\n ) => {\n setDragging(true);\n\n const clientY =\n 'touches' in event ? event.touches[0].clientY : event.clientY;\n previousYRef.current = clientY;\n };\n\n /**\n * Event handler for the movement during a drag action.\n * It updates the position based on the movement offset.\n *\n * @param {MouseEvent | TouchEvent} event - The drag move event.\n */\n const onDragMove = useCallback(\n (event: MouseEvent | TouchEvent) => {\n if (!dragging || previousYRef.current === null) {\n return;\n }\n\n const clientY =\n 'touches' in event\n ? (event as TouchEvent).touches[0].clientY\n : (event as MouseEvent).clientY;\n\n const moveOffset = clientY - previousYRef.current;\n\n setPosition(prev => {\n const maxPosition = -(totalItems - 1) * itemHeight;\n const newPosition = Math.max(\n maxPosition,\n Math.min(0, prev + moveOffset),\n );\n offsetRef.current = moveOffset;\n return newPosition;\n });\n\n previousYRef.current = clientY;\n },\n [dragging, itemHeight, totalItems],\n );\n\n /**\n * Event handler for the end of a drag action.\n * It resets the dragging state and snaps to the closest item.\n */\n const onDragEnd = useCallback(() => {\n setDragging(false);\n previousYRef.current = null;\n snapToClosest();\n }, [snapToClosest]);\n\n /**\n * Function to manage scroll event listeners based on the dragging state.\n * It adds or removes event listeners for mouse and touch events.\n */\n function handleScrollListeners() {\n if (typeof window == 'undefined') {\n return;\n }\n\n if (dragging) {\n window.addEventListener('mousemove', onDragMove);\n window.addEventListener('mouseup', onDragEnd);\n window.addEventListener('touchmove', onDragMove);\n window.addEventListener('touchend', onDragEnd);\n } else {\n window.removeEventListener('mousemove', onDragMove);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchmove', onDragMove);\n window.removeEventListener('touchend', onDragEnd);\n }\n\n return () => {\n window.removeEventListener('mousemove', onDragMove);\n window.removeEventListener('mouseup', onDragEnd);\n window.removeEventListener('touchmove', onDragMove);\n window.removeEventListener('touchend', onDragEnd);\n };\n }\n\n useEffect(handleScrollListeners, [dragging, onDragEnd, onDragMove]);\n\n /**\n * Function to get the style for an item based on its index.\n * It calculates the transform and opacity based on the item's position.\n *\n * @param {number} index - The index of the item.\n * @returns {Object} The style object for the item.\n */\n function getItemStyle(index: number) {\n const offset = Math.abs(position / itemHeight + index);\n const scale = 1 - offset * 0.1;\n const opacity = 1 - offset * 0.4;\n\n return {\n willChange: 'transform',\n transition: `transform ${Math.abs(offset) / 100 + 0.1}s`,\n transform: `translateY(${position}px) scale(${scale})`,\n opacity,\n };\n }\n\n return {\n currentIndex: Math.abs(position / itemHeight),\n containerRef,\n getItemStyle,\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n };\n}\n\nexport type { UseScrollEffectProps };\n","import React from 'react';\nimport { useMemo } from 'react';\nimport { DatePickerMobileSelectorColumnProps } from './props';\nimport styles from './styles.module.scss';\nimport DatePickerMobileSelectorColumnCell from './Cell';\nimport { useTranslation } from '../../../../../hooks';\nimport { dateFormatMapping } from '../../../../../constants/date/date-format-mapping';\nimport { Language } from '../../../../../enums/language';\nimport { useScrollEffect } from '../../../../../hooks/date-picker/useScrollEffectHandler';\n\n/**\n * Component that renders a scrollable column for date picker selection on mobile\n * Handles scroll interactions and displays date values in a vertical list\n *\n * @component\n * @template T - Generic type for column content\n * @param {Object} props - Component props\n * @param {Array} props.content - Array of values to display in the column\n * @param {Function} props.onSelectedItem - Callback when an item is selected\n * @param {number} props.currentIndex - Currently selected index\n * @param {'day'|'month'|'year'} props.type - Type of date values in column\n * @returns {JSX.Element} Scrollable date picker column\n */\nexport default function DatePickerMobileSelectorColumn({\n content,\n onSelectedItem,\n currentIndex: current,\n type,\n}: DatePickerMobileSelectorColumnProps) {\n // Height of each item in pixels\n const itemHeight = 40;\n\n // Get current language for date formatting\n const { lang } = useTranslation();\n const formatMapping = dateFormatMapping.get(\n (lang as Language) ?? Language.English,\n );\n\n // Get scroll handling functions and state from custom hook\n const {\n containerRef,\n getItemStyle,\n currentIndex,\n onMouseDown,\n onTouchStart,\n } = useScrollEffect({\n itemHeight,\n content,\n callback: onSelectedItem,\n current,\n });\n\n // Memoized list of date cells to prevent unnecessary re-renders\n const Cells = useMemo(\n () =>\n content?.map((value, index) => (\n \n )),\n [content, getItemStyle, currentIndex, type],\n );\n\n return (\n \n {Cells}\n \n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport { DatePickerMobileSelectorProps } from './props';\nimport { motion } from 'framer-motion';\nimport { slideIn } from './variants';\nimport styles from './styles.module.scss';\nimport { useClickOutside, useCustomDatePicker } from '@starsoft/common/hooks';\nimport { ModalHeader } from '@starsoft/common/components';\nimport DatePickerMobileSelectorColumn from './Column';\n\n/**\n * Mobile date picker selector component that displays a modal with scrollable columns for day, month and year selection\n * Uses framer-motion for animations and handles click outside to close\n *\n * @component\n * @template T - Generic type extending FieldValues for form handling\n * @param {Object} props - Component props\n * @param {Function} props.toggleOpen - Function to toggle the modal open/closed\n * @param {string} props.placeholder - Placeholder text to show in modal header\n * @param {boolean} props.isLoading - Whether the component is in loading state\n * @param {string|Date} props.value - Currently selected date value\n * @param {Function} props.onChange - Callback when date selection changes\n * @param {boolean} props.showSpinner - Whether to show loading spinner\n * @returns {JSX.Element} Mobile date picker selector modal with scrollable columns\n */\nexport default function DatePickerMobileSelector({\n toggleOpen,\n placeholder,\n isLoading,\n value,\n ...props\n}: DatePickerMobileSelectorProps) {\n // Get date picker state and update handlers from custom hook\n const {\n days,\n years,\n months,\n updateDay,\n updateMonth,\n updateYear,\n current: { day, month, year },\n } = useCustomDatePicker({\n date: new Date((value as string) ?? new Date()).toString(),\n callback: props?.onChange,\n isLoading: props?.showSpinner || isLoading,\n });\n\n // Handle clicks outside modal to close\n const ref = useClickOutside({\n onClickOutside: toggleOpen,\n open: true,\n });\n\n return (\n \n \n
\n \n \n \n
\n \n );\n}\n","import { useToggle, useTranslation } from '@starsoft/common/hooks';\nimport { DatePickerProps } from '../props';\nimport { FieldValues } from 'react-hook-form';\nimport { Input } from '@starsoft/common/components';\nimport styles from '../Desktop/styles.module.scss';\nimport baseStyles from '../styles.module.scss';\nimport { AnimatePresence } from 'framer-motion';\nimport DatePickerMobileSelector from './Selector';\nimport React from 'react';\n\n/**\n * Mobile version of the DatePicker component that displays a calendar input field\n * with a mobile-optimized date selector modal\n *\n * @component\n * @template T - Generic type extending FieldValues for form handling\n * @param {Object} props - Component props\n * @param {string} props.placeholder - Placeholder text to show when no date is selected\n * @param {Function} props.onChange - Callback function when date selection changes\n * @param {string|Date} props.value - Currently selected date value\n * @param {boolean} props.disabled - Whether the date picker is disabled\n * @param {boolean} props.readOnly - Whether the date picker is read-only\n * @param {boolean} props.isError - Whether there is a validation error\n * @param {string|string[]} props.errorMessage - Error message(s) to display\n * @returns {JSX.Element} Mobile date picker with input field and modal selector\n */\nexport default function DatePickerMobile({\n placeholder,\n onChange,\n value,\n disabled,\n readOnly,\n ...props\n}: DatePickerProps) {\n const [open, toggleOpen] = useToggle();\n const { lang } = useTranslation();\n\n return (\n \n \n }\n onChange={e => onChange(e?.target?.value)}\n value={\n !!value\n ? Intl.DateTimeFormat(lang, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: 'UTC',\n }).format(new Date(String(value)))\n : undefined\n }\n disabled={disabled}\n readOnly\n hideLock\n placeholder={placeholder}\n {...props}\n />\n \n {open && (\n \n )}\n {' '}\n {props?.isError &&\n !!props?.errorMessage &&\n (Array.isArray(props?.errorMessage) ? (\n props?.errorMessage.map((error, i) => (\n \n *{error}\n \n ))\n ) : (\n \n *{props?.errorMessage}\n \n ))}\n \n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { DatePickerProps } from '../props';\nimport { useCustomDatePicker, useTranslation } from '@starsoft/common/hooks';\nimport { FormGroup, SelectInput } from '@starsoft/common/components';\nimport { useMediaQuery } from '@mui/system';\nimport { dateFormatMapping } from '../../../constants/date/date-format-mapping';\nimport { Language } from '../../../enums/language';\n\nexport default function DatePickerDesktop({\n onChange,\n value,\n disabled,\n readOnly,\n isLoading,\n isContainerColor,\n ...props\n}: DatePickerProps) {\n const { t } = useTranslation('common');\n const isMaxHeight = useMediaQuery('(max-height: 1000px)');\n const {\n days,\n months,\n years,\n current: { day, month, currentYear: year },\n updateDay,\n updateMonth,\n updateYear,\n } = useCustomDatePicker({\n date: new Date((value as string) ?? new Date()).toString(),\n callback: onChange,\n isLoading: props?.showSpinner || isLoading,\n });\n\n const { lang } = useTranslation();\n const formatMapping = dateFormatMapping.get(\n (lang as Language) ?? Language.English,\n );\n\n return (\n <>\n
\n \n String(opt)}\n getOptionValue={opt => opt}\n options={days}\n value={day + 1}\n cardBg={isContainerColor}\n popLayout={!isMaxHeight}\n invertOptionsPosition={isMaxHeight}\n disabled={disabled || readOnly}\n setValue={updateDay}\n />\n \n \n t(`month_${opt}`)}\n getOptionValue={opt => opt}\n options={months}\n value={month + 1}\n disabled={disabled || readOnly}\n cardBg={isContainerColor}\n popLayout={!isMaxHeight}\n invertOptionsPosition={isMaxHeight}\n setValue={updateMonth}\n />\n \n \n String(opt)}\n getOptionValue={opt => opt}\n options={years}\n value={year}\n cardBg={isContainerColor}\n invertOptionsPosition={isMaxHeight}\n disabled={disabled || readOnly}\n popLayout={!isMaxHeight}\n setValue={updateYear}\n />\n \n
\n {props?.isError &&\n !!props?.errorMessage &&\n (Array.isArray(props?.errorMessage) ? (\n props?.errorMessage.map((error, i) => (\n \n *{error}\n \n ))\n ) : (\n \n *{props?.errorMessage}\n \n ))}\n \n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport { DatePickerProps } from './props';\nimport { useIsMobile } from '@starsoft/common/hooks';\nimport DatePickerMobile from './Mobile';\nimport DatePickerDesktop from './Desktop';\n\n/**\n * Component that renders a date picker with responsive mobile/desktop versions\n * Automatically switches between mobile and desktop versions based on screen size\n *\n * @component\n * @template T - Generic type for form values structure\n * @param {Object} props - Component props\n * @param {string} props.placeholder - Placeholder text to display when no date selected\n * @param {Function} props.onChange - Callback function when date selection changes\n * @param {string|Date} props.value - Currently selected date value\n * @param {boolean} props.disabled - Whether the date picker is disabled\n * @param {boolean} props.readOnly - Whether the date picker is read-only\n * @returns {JSX.Element} Date picker component appropriate for device type\n */\nexport function DatePicker({\n placeholder,\n onChange,\n value,\n disabled,\n readOnly,\n ...props\n}: DatePickerProps) {\n const isMobile = useIsMobile();\n\n if (isMobile) {\n return (\n \n );\n }\n\n return (\n \n );\n}\n","export enum GenderQueryKeys {\n Primary = '/genders',\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseGendersQueryKeyProps } from './props';\nimport { PaginatedResponse } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { Gender } from '@starsoft/common/models/gender';\n\nexport async function fetchGenders(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n) {\n const { limit, page } = queryKey[1];\n\n const response = await axiosInstance.get>(\n '/genders',\n {\n params: {\n limit,\n page,\n },\n },\n );\n\n return response.data;\n}\n","import { GenderQueryKeys } from '../../queryKey';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchGenders } from './service';\nimport { useState } from 'react';\nimport {\n GenericError,\n PaginatedRequest,\n PaginatedResponse,\n} from '@starsoft/common/models';\nimport { useAxiosInstance, usePaginatedQuery } from '@starsoft/common/hooks';\nimport { UseGendersQueryKeyProps } from './props';\nimport { Gender } from '@starsoft/common/models/gender';\n\n/**\n * Custom hook to fetch and manage paginated gender data\n *\n * This hook handles fetching genders with pagination support, managing the query cache,\n * and providing pagination controls.\n *\n * @returns {Object} An object containing:\n * - page: Current page number\n * - data: Paginated gender data\n * - isPending: Boolean indicating if query is in progress and not idle\n * - fetchNextPage: Function to load next page\n * - fetchPreviousPage: Function to load previous page\n * - setCurrentPage: Function to set specific page number\n * - Additional query properties spread from React Query\n */\nexport function useGenders() {\n const [page, setPage] = useState(1);\n\n // Configure pagination parameters\n const params: PaginatedRequest = {\n page,\n limit: 20,\n };\n\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Set up query key for caching\n const queryKey: UseGendersQueryKeyProps = [GenderQueryKeys.Primary, params];\n\n // Execute query to fetch gender data\n const { data, isPending, fetchStatus, ...query } = useQuery<\n PaginatedResponse,\n AxiosError,\n PaginatedResponse,\n UseGendersQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext => fetchGenders(queryContext, axiosInstance),\n staleTime: 5 * 1000, // Consider data stale after 5 seconds\n });\n\n // Set up pagination callback handlers\n const callbacks = usePaginatedQuery({\n data,\n page,\n setPage,\n });\n\n return {\n ...query,\n ...callbacks,\n page,\n data,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","export function formatDateToLocalInputValue(dateString: string): string {\n const date = new Date(dateString);\n const timezoneOffset = date.getTimezoneOffset() * 60000;\n const localDate = new Date(date.getTime() - timezoneOffset);\n return localDate.toISOString().slice(0, 16);\n}\n\nexport function formatDateToInputValue(dateString: string): string {\n const date = new Date(dateString);\n const localDate = new Date(date.getTime());\n return localDate.toISOString().slice(0, 10);\n}\n","import { UserIdentityValidationResultOutputDto } from '../../../dto';\nimport { KycIdentityOriginId, UserIdentityStatus } from '../../../enums';\nimport { UserIdentity } from '../../../models';\nimport { formatDateToInputValue } from '../../../utils';\nimport { useDebounce } from '../../useDebounce';\nimport { useUserIdentityValidateByOriginId } from '../useUserIdentityValidateByOriginId';\nimport { useUserOriginId } from '../useUserOriginId';\nimport { UseUserIdentityLookUpHanlderProps } from './props';\nimport { useEffect } from 'react';\n\n/**\n * Custom hook to handle user identity lookup.\n *\n * @param {UseUserIdentityLookUpHanlderProps} props - The properties for the hook.\n * @param {object} props.methods - Methods from react-hook-form.\n * @param {boolean} props.readonly - Flag to determine if the form is read-only.\n * @param {boolean} props.isSkeleton - Flag to determine if the skeleton view should be shown.\n * @param {string} props.externalOriginId - External origin ID for the user identity.\n *\n * @returns {object} - Returns an object containing the collapse state, validity of the lookup, and the query result.\n *\n * Example usage:\n * const { collapseIn, isValidLookup, useUserIdentityValidateByOriginIdQuery } = useUserIdentityLookUpHandler({\n * methods: formMethods,\n * readonly: false,\n * isSkeleton: false,\n * externalOriginId: '12345',\n * });\n */\nexport function useUserIdentityLookUpHandler({\n methods,\n readonly,\n isSkeleton,\n externalOriginId,\n}: UseUserIdentityLookUpHanlderProps) {\n // Get the origin ID, either from the hook or external input\n const originId = useUserOriginId() ?? externalOriginId;\n // Destructure methods from react-hook-form\n const { watch, setValue } = methods;\n\n // Watch for changes in 'identifier', 'name', and 'birthDate' fields\n const identifier: string = watch('identity.identifier');\n const name: string = watch('identity.name');\n const birthDate: string = watch('identity.birthDate');\n\n // Debounce the watched values to prevent excessive updates\n const debouncedIdentifier = useDebounce(identifier);\n const debouncedName = useDebounce(name);\n const debouncedBirthDate = useDebounce(birthDate);\n\n // Prepare the payload for validation\n const payload = {\n identifier: debouncedIdentifier,\n name: name ? debouncedName : undefined,\n birthDate: birthDate ? String(debouncedBirthDate) : undefined,\n originId: originId?.toString(),\n };\n\n // Use the validation hook to validate the user identity by origin ID\n const useUserIdentityValidateByOriginIdQuery =\n useUserIdentityValidateByOriginId({\n //@ts-ignore\n originId: originId?.toString(),\n payload,\n });\n const { data, error } = useUserIdentityValidateByOriginIdQuery;\n\n /**\n * Function to set the identity ID based on the validation data.\n * It updates the form values if the data is valid and the origin ID is Brazil.\n */\n function handleSetIdentityId() {\n if (!data || originId != KycIdentityOriginId.Brazil) {\n return;\n }\n setValue('identity', {\n identifier: data?.maskedIdentifier,\n birthDate: formatDateToInputValue(String(data?.birthDate ?? new Date())),\n name: data?.name,\n originId: originId?.toString(),\n //@ts-ignore\n genderId: data?.genderId,\n });\n setValue('identityId', (data as unknown as UserIdentity)?.id.toString(), {\n shouldDirty: true,\n });\n }\n\n // Effect to handle setting the identity ID when data changes\n useEffect(handleSetIdentityId, [data, setValue, originId]);\n\n // Determine if the lookup is valid based on the origin ID and validation data\n const isValidLookup: boolean =\n originId?.toString() == KycIdentityOriginId.Brazil?.toString()\n ? (data as unknown as UserIdentity)?.status === UserIdentityStatus.Valid\n : (data as unknown as UserIdentityValidationResultOutputDto)?.valid;\n\n // Determine if the section should collapse based on various conditions\n const collapseIn =\n originId?.toString() == KycIdentityOriginId.Brazil?.toString()\n ? (isValidLookup && !error) || readonly || isSkeleton\n : true;\n\n // Return the state and query result\n return {\n collapseIn,\n isValidLookup,\n useUserIdentityValidateByOriginIdQuery,\n };\n}\n\nexport type { UseUserIdentityLookUpHanlderProps };\n","import { FormGroup, Input } from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport { KycUserIdentityFormPersolanIdentityLookUpNameInputsProps } from './props';\nimport {\n CreateKycInputDto,\n FetchUserIdentitiesValidateInputDto,\n} from '@starsoft/common/dto';\nimport { KycIdentityOriginId } from '@starsoft/common/enums';\nimport { useTranslation } from '../../../../../../../../hooks';\nimport { useUserOriginId } from '../../../../../../../../hooks/user-identity/useUserOriginId';\nimport { useUserIdentityLookUpHandler } from '../../../../../../../../hooks/user-identity/useUserIdentityLookUpHandler';\nimport { UserIdentityFormFields } from '../../../../../../../../enums/user-identity/form-fields';\n\n/**\n * KYC User Identity Form Personal Identity Look Up Name Inputs Component\n * Renders name input fields for KYC identity verification based on the origin country.\n * Different countries have different name field requirements (e.g. Brazil requires first/last name separately,\n * while others use a single name field).\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isContainerColor - Whether to use container background color for inputs\n * @param {boolean} props.isSkeleton - Whether to show skeleton loading state\n * @param {boolean} props.readonly - Whether the inputs should be read-only\n * @param {string} props.externalOriginId - External origin ID to override the user's origin ID\n * @returns {JSX.Element|null} Name input fields based on origin country\n *\n * @example\n * // For Brazil (separate first/last name fields)\n * \n *\n * // For other countries (single name field)\n * \n */\nexport default function KycUserIdentityFormPersolanIdentityLookUpNameInputs({\n isContainerColor,\n isSkeleton,\n readonly,\n externalOriginId,\n}: KycUserIdentityFormPersolanIdentityLookUpNameInputsProps) {\n const { t } = useTranslation('common');\n const originId = useUserOriginId() ?? externalOriginId;\n const methods = useFormContext<\n FetchUserIdentitiesValidateInputDto & CreateKycInputDto\n >();\n\n const {\n register,\n formState: { dirtyFields },\n } = methods;\n\n const {\n useUserIdentityValidateByOriginIdQuery: { isLoading, errorFieldsMap, data },\n } = useUserIdentityLookUpHandler({\n methods,\n isSkeleton,\n readonly,\n externalOriginId,\n });\n\n // Render different input fields based on origin country\n switch (originId?.toString()) {\n // Brazil requires separate first/last name fields\n case KycIdentityOriginId.Brazil?.toString():\n return (\n <>\n \n \n \n \n \n \n \n );\n\n // Other countries use a single name field\n case KycIdentityOriginId.India?.toString():\n case KycIdentityOriginId.Argentina?.toString():\n case KycIdentityOriginId.Mexico?.toString():\n case KycIdentityOriginId.Indonesia?.toString():\n case KycIdentityOriginId.Peru?.toString():\n case KycIdentityOriginId.SouthAfrica?.toString():\n case KycIdentityOriginId.Nigeria?.toString():\n case KycIdentityOriginId.Singapore?.toString():\n return (\n \n \n \n );\n }\n}\n","import { Collapse } from '@mui/material';\nimport { useGenders } from '@starsoft/common/api/gender';\nimport {\n DatePicker,\n FormGroup,\n Input,\n SelectInput,\n} from '@starsoft/common/components';\nimport {\n CreateKycInputDto,\n FetchUserIdentitiesValidateInputDto,\n} from '@starsoft/common/dto';\nimport { KycIdentityOriginIdType } from '@starsoft/common/enums/kyc/identity/origin';\nimport {\n useKycInformationHandler,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { Either } from '@starsoft/common/interfaces';\nimport { Gender } from '@starsoft/common/models/gender';\nimport { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { KycIdentityOriginId } from '../../../../../../enums';\nimport { UserIdentityFormFields } from '../../../../../../enums/user-identity/form-fields';\nimport { useUserIdentityLookUpHandler } from '../../../../../../hooks/user-identity/useUserIdentityLookUpHandler';\nimport { useUserOriginId } from '../../../../../../hooks/user-identity/useUserOriginId';\nimport styles from '../styles.module.scss';\nimport KycUserIdentityFormPersolanIdentityLookUpNameInputs from './Inputs/Name';\nimport { UserIdentitiesFormContentPersonalIdentityLookUpProps } from './props';\n\n/**\n * UserIdentitiesFormContentPersonalIdentityLookUp Component\n * Renders a form for personal identity lookup with fields for tax ID, name, gender and birthdate.\n * The form adapts based on the user's origin country and handles validation.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isSkeleton - Whether to show skeleton loading state\n * @param {boolean} props.isContainerColor - Whether to use container background color\n * @param {boolean} props.readonly - Whether form fields should be read-only\n * @param {string} props.externalOriginId - External origin ID to override user's origin\n * @returns {JSX.Element} Personal identity lookup form\n *\n * @example\n * \n */\nexport default function UserIdentitiesFormContentPersonalIdentityLookUp({\n isSkeleton,\n isContainerColor,\n readonly,\n externalOriginId,\n minimalForm = false,\n}: UserIdentitiesFormContentPersonalIdentityLookUpProps) {\n const { t } = useTranslation('common');\n const originId = useUserOriginId() ?? externalOriginId;\n const methods = useFormContext<\n FetchUserIdentitiesValidateInputDto & CreateKycInputDto\n >();\n\n const {\n register,\n formState: { dirtyFields },\n setValue,\n watch,\n } = methods;\n const birthdate: Either = watch('identity.birthDate');\n const genderId: Either = watch('identity.genderId');\n\n const {\n useKycMeByOriginIdQuery: { kyc },\n } = useKycInformationHandler({\n externalOriginId: externalOriginId as unknown as KycIdentityOriginIdType,\n externalEnabled: !minimalForm,\n });\n\n const {\n data: genders,\n error: gendersError,\n refetch: refetchGenders,\n isPending: isPendingGenders,\n } = useGenders();\n\n /**\n * Sets the gender ID in the form\n * @param {Gender} value - Gender object containing ID to set\n * @example\n * setGenderId({ id: \"1\", name: \"Male\" })\n */\n function setGenderId(value: Gender) {\n setValue('identity.genderId', value?.id.toString(), {\n shouldDirty: true,\n });\n }\n\n const {\n collapseIn,\n isValidLookup,\n useUserIdentityValidateByOriginIdQuery: {\n isLoading,\n errorFieldsMap,\n error,\n },\n } = useUserIdentityLookUpHandler({\n methods,\n isSkeleton,\n readonly,\n externalOriginId,\n });\n\n /**\n * Sets the birthdate in the form\n * @param {string} value - Date string to set\n * @example\n * setDate(\"1990-01-01\")\n */\n function setDate(value: string) {\n setValue('identity.birthDate', value, {\n shouldDirty: true,\n });\n }\n\n /**\n * Gets the tax ID field name based on origin country\n * @returns {string} Localized tax ID field name\n * @example\n * // For Brazil\n * getTaxIdNameByOriginId() // Returns \"CPF\"\n */\n function getTaxIdNameByOriginId(): string {\n switch (originId?.toString()) {\n case KycIdentityOriginId.Brazil?.toString():\n return 'CPF';\n case KycIdentityOriginId.Argentina?.toString():\n return 'CUTI';\n case KycIdentityOriginId.India?.toString():\n return 'PAN';\n case KycIdentityOriginId.Mexico?.toString():\n return 'RFC';\n case KycIdentityOriginId.Indonesia?.toString():\n return 'NPWP';\n case KycIdentityOriginId.Peru?.toString():\n return 'RUC';\n case KycIdentityOriginId.SouthAfrica?.toString():\n return 'ID';\n case KycIdentityOriginId.Nigeria?.toString():\n return 'NIN';\n case KycIdentityOriginId.Singapore?.toString():\n return 'NRIC';\n }\n }\n\n /**\n * Resets form with KYC identity data if available\n */\n function handleResetForm() {\n if (!kyc || !kyc?.identity) {\n return;\n }\n\n setValue('identity', {\n ...kyc?.identity,\n originId: kyc?.origin?.id.toString(),\n genderId:\n kyc?.identity?.gender?.id.toString() ??\n kyc?.identity?.genderId?.toString(),\n });\n setValue('identityId', kyc?.identity?.id.toString());\n }\n\n useEffect(handleResetForm, [kyc, setValue]);\n\n return (\n <>\n \n 0\n ? errorFieldsMap?.get(UserIdentityFormFields.TaxId)\n : t('invalid_document_type')\n }\n showSpinner={isLoading}\n isLoading={isSkeleton}\n readOnly={readonly}\n rightIcon={\n isValidLookup && !readonly ? 'fa-solid fa-circle-check' : undefined\n }\n />\n \n \n <>\n
\n \n
\n {!minimalForm && (\n <>\n
\n \n t(`${option?.id}_gender_label`)}\n getOptionValue={option => option?.id?.toString()}\n setValue={setGenderId}\n disabled={originId == KycIdentityOriginId.Brazil || readonly}\n loading={isPendingGenders}\n cardBg={isContainerColor}\n />\n \n
\n \n \n )}\n \n \n \n );\n}\n","import { useLottiePlayer, useTranslation } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\n\n/**\n * KYC User Identity No KYC Required Component\n * Displays a message indicating that KYC verification is not required for the selected coin.\n * Shows an animation and translated text content.\n *\n * @component\n * @returns {JSX.Element} Component displaying no KYC required message with animation\n *\n * @example\n * // Basic usage\n * \n *\n * // The component internally uses:\n * const { t } = useTranslation('common');\n * const { lottieAnimationRef } = useLottiePlayer({\n * path: '/success.json'\n * });\n *\n * // And renders translated text:\n * t('kyc_not_required_title') // e.g. \"No KYC Required\"\n * t('kyc_not_required_description') // e.g. \"You can proceed without KYC verification\"\n */\nexport default function KycUserIdentityNoKycToSelectedCoin() {\n const { t } = useTranslation('common');\n\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/success.json',\n });\n\n return (\n
\n
\n\n
\n
\n {t('kyc_not_required_title')}\n
\n
\n {t('kyc_not_required_description')}\n
\n
\n
\n );\n}\n","import { Button, ErrorCard } from '@starsoft/common/components';\nimport { UserIdentityFormRendererLayoutProps } from './props';\nimport styles from './styles.module.scss';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { PropsWithChildren, useEffect } from 'react';\nimport KycUserIdentityNoKycToSelectedCoin from '../../NoKycToSelectedCoin';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport {\n useKycFormSubmission,\n useKycMeByOriginIdWithOrigin,\n useKycNavigation,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { useCoallescedCoinId } from '../../../../../../hooks/coin/useCoallescedCoinId';\n\n/**\n * UserIdentityFormRendererLayout Component\n * Renders a form layout for KYC (Know Your Customer) identity verification.\n * Handles form state, submission, and different view states including loading and errors.\n *\n * @component\n * @param {Object} props - Component props\n * @param {ReactNode} props.children - Child components to render within the form layout\n * @param {boolean} props.isContainerColor - Whether to use container background color for skeleton\n * @returns {JSX.Element} The rendered form layout with appropriate state handling\n *\n * @example\n * // Basic usage with container color\n * \n * \n * \n *\n * // Without container color\n * \n * \n * \n */\nexport default function UserIdentityFormRendererLayout({\n children,\n isContainerColor,\n}: PropsWithChildren) {\n const { t } = useTranslation('common');\n const { coinId } = useCoallescedCoinId();\n const methods = useForm();\n const { isPending, error, kyc, refetch } = useKycMeByOriginIdWithOrigin();\n const { handleSubmit, reset } = methods;\n const { handleKycSubmission, isLoadingKycSubmission } = useKycFormSubmission({\n coinId: coinId?.toString(),\n kyc,\n methods,\n });\n\n const { hasKycCheckInCurrentIdentity } = useKycNavigation({\n coinId: coinId?.toString(),\n });\n\n /**\n * Resets the form with KYC data when available\n * Populates form fields with existing identity information\n */\n function handleResetForm() {\n if (!kyc) {\n return;\n }\n\n reset({\n identity: kyc?.identity,\n identityId: kyc?.identity?.id?.toString(),\n });\n }\n\n useEffect(handleResetForm, [kyc, reset]);\n\n // Show error card if there's an error\n if (error) {\n return ;\n }\n\n // Show loading state with skeleton button\n if (isPending) {\n return (\n \n
\n
{children}
\n
\n
\n );\n }\n\n // Show no KYC required message if no check is needed\n if (!hasKycCheckInCurrentIdentity) {\n return ;\n }\n\n // Render the main form with submit button if no existing KYC\n return (\n \n \n
{children}
\n {!kyc && (\n \n {t('create_kyc')}\n \n )}\n \n
\n );\n}\n","import { Steps } from '@starsoft/common/components';\nimport { useKycNavigation } from '@starsoft/common/hooks';\nimport { useCoallescedCoinId } from '../../../../../../hooks/coin/useCoallescedCoinId';\nimport { KycCheckpointStatus } from '../../../../../../enums/kyc/checkpoint/status';\nimport { KycCheckpointIdType } from '@starsoft/common/enums/kyc/checkpoint';\n\n/**\n * KYC User Identity Form Content Steps Component\n * Renders a stepper component that shows the progress of KYC verification steps.\n * The component handles navigation between different KYC steps and blocks progression\n * until the current step is verified.\n *\n * @component\n * @returns {JSX.Element|null} Steps component or null if less than 2 steps\n *\n * @example\n * // Basic usage\n * \n *\n * // The component internally uses:\n * useKycNavigation({\n * coinId: \"1\" // string | undefined\n * });\n *\n * // And renders Steps component with:\n * void}\n * />\n */\nexport default function KYCUserIdentityFormContentSteps() {\n const { coinId } = useCoallescedCoinId();\n\n const {\n kycCheckpointId,\n currentStepIndex,\n handleSetKycStep,\n parsedSteps,\n kycMeByOriginIdQuery: { isPending },\n currentCheckpoint,\n } = useKycNavigation({\n coinId: coinId?.toString(),\n });\n\n if (!parsedSteps || parsedSteps?.length < 2) {\n return null;\n }\n\n return (\n \n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport UserIdentityFormContentPersonalIdentityLookUp from '../PersonalIdentityLookUp';\nimport { UserIdentitiesFormContentProps } from '../props';\nimport KYCUserIdentityFormContentSteps from '../Steps';\n\nexport default function UserIdentitiesFormContentSkeleton({\n isContainerColor,\n}: UserIdentitiesFormContentProps) {\n return (\n
\n \n\n \n \n \n \n \n \n \n
\n
\n\n \n
\n );\n}\n","import UserPhoneNumberFormRenderer from '../../../../../UserPhoneNumbers/Modals/UserPhoneNumberModal/Form/Renderer';\n\n/**\n * KYC User Identity Form Content Phone Number Look Up Component\n * Renders a phone number form component specifically for KYC flow with minimal UI\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} [props.isContainerColor] - Whether to use container background color styling\n * @returns {JSX.Element} Phone number form renderer component\n *\n * @example\n * // Basic usage\n * \n *\n * // Without container color\n * \n */\nexport default function KYCUserIdentityFormContentPhoneNumberLookUp({\n isContainerColor,\n}: {\n isContainerColor?: boolean;\n}) {\n return (\n \n );\n}\n","import { GenerateFaceRecognitionLinkInputDto } from '@starsoft/common/dto/kyc/generate-face-recognition-link-input.dto';\nimport { GenerateFaceRecognitionLinkOutputDto } from '@starsoft/common/dto/kyc/generate-face-recognition-link-output.dto';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchCreateKycFaceRecognition(\n data: GenerateFaceRecognitionLinkInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse =\n await axiosInstance.post(\n '/kyc/face-recognition',\n data,\n );\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchCreateKycFaceRecognition } from './service';\nimport { KYCQueryKeys } from '../../queryKeys';\nimport { UseCreateKycFaceRecognitionProps } from './props';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { GenerateFaceRecognitionLinkOutputDto } from '@starsoft/common/dto/kyc/generate-face-recognition-link-output.dto';\nimport { GenerateFaceRecognitionLinkInputDto } from '@starsoft/common/dto/kyc/generate-face-recognition-link-input.dto';\n\n/**\n * Custom hook to create and manage KYC face recognition verification\n *\n * This hook handles generating face recognition verification links and managing the mutation state.\n * It uses React Query for data mutation and cache invalidation.\n * When successful, it automatically opens the verification URL in a new tab.\n *\n * @param {UseCreateKycFaceRecognitionProps} options - Optional configuration object\n * @param {Function} [options.externalOnSuccess] - Optional callback function to be called after successful link generation\n *\n * @returns {Object} An object containing:\n * - createKycFaceRecognition: Function to trigger face recognition link generation (non-async)\n * - createKycFaceRecognitionAsync: Function to trigger face recognition link generation (async version)\n * - isPending: Boolean indicating if mutation is in progress\n */\nexport function useCreateKycFaceRecognition(\n options?: UseCreateKycFaceRecognitionProps,\n) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Success callback handler for face recognition link generation\n * Invalidates relevant queries, opens verification URL, and calls external success handler if provided\n *\n * @param {GenerateFaceRecognitionLinkOutputDto} data - The generated link data returned from the server\n */\n\n const { mutate, isPending, mutateAsync } = useMutation({\n mutationFn: (data: GenerateFaceRecognitionLinkInputDto) =>\n fetchCreateKycFaceRecognition(data, axiosInstance),\n });\n\n return {\n createKycFaceRecognition: mutate,\n createKycFaceRecognitionAsync: mutateAsync,\n isPending,\n };\n}\n","import { useTranslation } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport { useCreateKycFaceRecognition } from '@starsoft/common/api/kyc/mutations/useCreateKycFaceRecognition';\nimport { KYCUserIdentityFormContentDocumentSubmissionProps } from './props';\nimport { Button } from '@starsoft/common/components/Button';\nimport { useEffect, useState } from 'react';\nimport { useUserOriginId } from '@starsoft/common/hooks/user-identity/useUserOriginId';\n\n/**\n * KYC User Identity Form Content Document Submission Component\n * A component that handles document submission for KYC user identity verification\n * by providing a button to initiate face recognition\n *\n * @component\n * @param {Object} props - Component props\n * @param {string|number} props.originId - The origin ID for the KYC verification\n * @returns {JSX.Element} Document submission form with submit button\n *\n * @example\n * // Basic usage\n * \n */\nexport default function KYCUserIdentityFormContentDocumentSubmission({\n originId,\n}: KYCUserIdentityFormContentDocumentSubmissionProps) {\n const { t } = useTranslation('common');\n const { createKycFaceRecognitionAsync, isPending } =\n useCreateKycFaceRecognition();\n const [callbackUrl, setCallbackUrl] = useState(null);\n const userOriginId = useUserOriginId();\n\n function handleGenerateFaceRecognitionLink() {\n const createUrl = async () => {\n const { url } = await createKycFaceRecognitionAsync({\n originId: userOriginId ?? originId?.toString(),\n });\n setCallbackUrl(url);\n };\n\n createUrl();\n }\n\n useEffect(handleGenerateFaceRecognitionLink, []);\n\n /**\n * Handles the creation of KYC face recognition request\n * Calls the face recognition API with the origin ID\n */\n function handleCreateKycFaceRecognition() {\n window.open(callbackUrl, '_blank');\n }\n\n return (\n
\n \n
\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport {\n ResendCodeButton,\n ValidateCodeInput,\n} from '@starsoft/common/components';\nimport { useUserEmailSendCode } from '@starsoft/common/api';\nimport { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { UserEmailFormVerifyProps } from './props';\n\n/**\n * UserEmailFormVerify Component\n * This component is responsible for rendering the user email verification form.\n * It includes an input for the verification code and a button to resend the code.\n *\n * @param {UserEmailFormVerifyProps} props - The properties for the component.\n * @param {boolean} props.isContainerColor - Indicates if the container should have a color.\n *\n * @returns {JSX.Element} The rendered user email verification form component.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserEmailFormVerify({\n isContainerColor,\n}: UserEmailFormVerifyProps) {\n const { setValue, watch } = useFormContext();\n const emailId: string = watch('emailId');\n const { sendCode, isPending, isSuccess } = useUserEmailSendCode();\n\n /**\n * resendCode Function\n * This function triggers the sending of a verification code to the user's email.\n * It uses the emailId from the form context to identify the user.\n *\n * @example\n * resendCode(); // Sends a verification code to the email associated with the current emailId\n */\n function resendCode() {\n sendCode({\n emailId: emailId?.toString(),\n });\n }\n\n /**\n * onChange Function\n * This function updates the form context with the new verification code value.\n *\n * @param {string} value - The new value for the verification code.\n *\n * @example\n * onChange('123456'); // Sets the verification code in the form context to '123456'\n */\n function onChange(value: string) {\n setValue('code', value);\n }\n\n return (\n
\n \n \n
\n );\n}\n","import {\n ResendCodeButton,\n ValidateCodeInput,\n} from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\n\nexport default function UserPhoneNumberFormVerifySkeleton() {\n return (\n
\n {}} isLoading />\n {}} isSkeleton />\n
\n );\n}\n","import { Input } from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\nimport skeletonStyles from './styles.module.scss';\nimport UserPhoneNumberFormVerifySkeleton from '../Verify/Skeleton';\n\nexport default function UserEmailFormSkeleton() {\n return (\n
\n
\n
\n
\n {Array.from({ length: 2 }).map((_, index) => (\n \n ))}\n
\n\n \n
\n\n
\n \n
\n
\n );\n}\n","import { useLottiePlayer } from '@starsoft/common/hooks';\nimport useTranslation from 'next-translate/useTranslation';\nimport { useForm, UseFormReturn } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport {\n Button,\n ErrorCard,\n TransTextWithDefault,\n} from '@starsoft/common/components';\nimport UserEmailFormVerify from '../Verify';\nimport UserEmailFormSkeleton from '../Skeleton';\n\nimport { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { UserEmailFormProps } from './props';\nimport { useUserEmailsForm } from '@starsoft/common/hooks/user-emails/useUserEmailsForm';\n\n/**\n * UserEmailForm Component\n * This component is responsible for rendering the user email form, handling different states like error, skeleton, and loading.\n * It uses various hooks to manage form state, translations, and animations.\n *\n * @param {UserEmailFormProps} props - The properties for the component.\n * @param {boolean} props.isContainerColor - Indicates if the container should have a color.\n * @param {boolean} props.useMinimalForm - Indicates if the minimal form should be used.\n *\n * @returns {JSX.Element} The rendered user email form component.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserEmailForm({\n isContainerColor,\n useMinimalForm,\n}: UserEmailFormProps) {\n // Translation hook for the 'account' namespace\n const { t } = useTranslation('account');\n\n // Initialize form methods using react-hook-form\n const methods: UseFormReturn =\n useForm();\n\n // Use custom hook to manage form state and actions\n const {\n isSkeleton,\n error,\n isPendingVerifyUserEmail,\n handleError,\n userEmail,\n isLoadingEmails,\n isSubmitDisabled,\n } = useUserEmailsForm({ methods, useMinimalForm });\n\n // Initialize Lottie animation player with dependencies\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/email-validated.json',\n dependecyArray: [isSkeleton, isLoadingEmails],\n });\n\n // Render error state with an ErrorCard component\n if (error) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n // Render skeleton state or loading state with a UserEmailFormSkeleton component\n if (isSkeleton || isLoadingEmails) {\n return ;\n }\n\n // Render the form content\n return (\n <>\n
\n {!useMinimalForm ? (\n
\n \n

\n \n

\n
\n ) : null}\n\n \n
\n\n {!useMinimalForm && (\n
\n \n {t('verify')}\n \n
\n )}\n \n );\n}\n","import { FormProvider, useForm, UseFormReturn } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '@starsoft/common/components';\nimport UserEmailFormSkeleton from '../Skeleton';\n\nimport { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { UserEmailFormProps } from '../props';\nimport { useUserEmailsForm } from '@starsoft/common/hooks/user-emails/useUserEmailsForm';\nimport { PropsWithChildren } from 'react';\n\n/**\n * UserEmailFormLayout Component\n * This component is responsible for rendering the layout of the user email form.\n * It manages the form state using react-hook-form and handles different states like loading, error, and skeleton.\n *\n * @param {PropsWithChildren} props - The properties for the component.\n * @param {boolean} props.useMinimalForm - Indicates if the minimal form should be used.\n * @param {React.ReactNode} props.children - The child components to be rendered inside the form.\n *\n * @returns {JSX.Element} The rendered form layout component.\n *\n * @example\n * // Usage example:\n * \n * \n * \n */\nexport default function UserEmailFormLayout({\n useMinimalForm,\n children,\n}: PropsWithChildren) {\n // Initialize form methods using react-hook-form\n const methods: UseFormReturn =\n useForm();\n\n // Destructure handleSubmit from form methods\n const { handleSubmit } = methods ?? {};\n\n // Use custom hook to manage form state and actions\n const { isSkeleton, error, onSubmit, onError, handleError, isLoadingEmails } =\n useUserEmailsForm({ methods, useMinimalForm });\n\n // Render error state with an ErrorCard component\n if (error) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n // Render skeleton state or loading state with a UserEmailFormSkeleton component\n if (isSkeleton || isLoadingEmails) {\n return ;\n }\n\n // Render the form with FormProvider and handle form submission\n return (\n \n \n {children}\n \n \n );\n}\n","import UserEmailForm from './Content';\nimport UserEmailFormLayout from './Layout';\nimport { UserEmailFormProps } from './props';\n\n/**\n * UserEmailFormRenderer Component\n * This component is responsible for rendering the user email form.\n * It decides whether to use a minimal form or a full form layout based on the provided props.\n *\n * @param {UserEmailFormProps} props - The properties for the component.\n * @param {boolean} props.isContainerColor - Indicates if the container should have a color.\n * @param {boolean} props.useMinimalForm - Indicates if the minimal form should be used.\n *\n * @returns {JSX.Element} The rendered user email form component.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserEmailFormRenderer({\n isContainerColor,\n useMinimalForm,\n}: UserEmailFormProps) {\n if (useMinimalForm) {\n return (\n \n );\n }\n\n return (\n \n \n \n );\n}\n","import { KYCUserIdentityFormContentRendererProps } from './props';\nimport UserIdentityFormContentPersonalIdentityLookUp from '../PersonalIdentityLookUp';\nimport KYCUserIdentityFormContentPhoneNumberLookUp from '../PhoneNumberLookUp';\nimport {\n useKycInformationHandler,\n useKycNavigation,\n} from '@starsoft/common/hooks';\nimport { KycCheckpointId } from '@starsoft/common/enums';\nimport { useCoallescedCoinId } from '../../../../../../hooks/coin/useCoallescedCoinId';\nimport KYCUserIdentityFormContentDocumentSubmission from '../DocumentSubmission';\nimport UseEmailForm from '@starsoft/common/components/UserEmail/Form';\n\n/**\n * KYC User Identity Form Content Renderer Component\n * Renders different form components based on the KYC checkpoint/step.\n * The component handles the flow between different KYC verification steps like phone number,\n * document submission, email verification, tax ID verification and identity verification.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isContainerColor - Whether to use container background color styling\n * @param {string} props.externalOriginId - External origin ID to override default origin\n * @returns {JSX.Element} The appropriate form component based on the current KYC checkpoint\n *\n * @example\n * // Basic usage\n * \n *\n * // Without container color and external origin\n * \n */\nexport default function KYCUserIdentityFormContentRenderer({\n isContainerColor,\n externalOriginId,\n}: KYCUserIdentityFormContentRendererProps) {\n const { coinId } = useCoallescedCoinId();\n const { kycCheckpointId, isValidKycCheckpointId } = useKycNavigation({\n coinId: coinId?.toString(),\n });\n const {\n useKycMeByOriginIdQuery: { kyc },\n } = useKycInformationHandler();\n\n switch (!isValidKycCheckpointId ? null : kycCheckpointId?.toString()) {\n case KycCheckpointId.VerifiedPhoneNumber?.toString():\n return ;\n case KycCheckpointId.DocumentSubmission?.toString():\n return (\n \n );\n case KycCheckpointId.VerifiedEmail?.toString():\n return (\n \n );\n case KycCheckpointId.VerifiedTaxId?.toString():\n case KycCheckpointId.Identity?.toString():\n default:\n return (\n \n );\n }\n}\n","import styles from './styles.module.scss';\nimport {\n useKycInformationHandler,\n useLottiePlayer,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport UserIdentitiesFormContentSkeleton from './Skeleton';\nimport { UserIdentitiesFormContentProps } from './props';\nimport KYCUserIdentityFormContentRenderer from './Renderer';\nimport KYCUserIdentityFormContentSteps from './Steps';\nimport { ErrorCard } from '@starsoft/common/components';\n\n/**\n * UserIdentitiesFormContent Component\n * Renders the main content for the KYC user identity form, including steps, animations,\n * and the appropriate form renderer based on the current KYC step.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} [props.isContainerColor] - Whether to use container background color styling\n * @param {bigint|null} [props.externalOriginId] - External origin ID to override default origin\n * @returns {JSX.Element} The rendered form content, skeleton loader, or error card\n *\n * @example\n * // Basic usage\n * \n *\n * // Without container color and external origin\n * \n */\nexport default function UserIdentitiesFormContent({\n isContainerColor,\n externalOriginId,\n}: UserIdentitiesFormContentProps) {\n const { t } = useTranslation('common');\n const {\n useKycMeByOriginIdQuery: { isPending, error, refetch },\n lottie,\n title,\n description,\n } = useKycInformationHandler();\n\n const { lottieAnimationRef } = useLottiePlayer({\n path: `/${lottie}`,\n dependecyArray: [isPending],\n });\n\n if (isPending) {\n return (\n \n );\n }\n\n if (error) {\n return ;\n }\n\n return (\n
\n \n \n
\n
\n

{t(title)}

\n

{t(description)}

\n
\n
\n \n
\n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport { Button } from '@starsoft/common/components';\n\nexport default function KYCUserIdentityFormKycSuccessSkeleton() {\n return (\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import { useLottiePlayer } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport { KYCUserIdentityFormKycSuccessProps } from './props';\nimport { Button } from '@starsoft/common/components';\nimport KYCUserIdentityFormKycSuccessSkeleton from './Skeleton';\n\n/**\n * KYC User Identity Form Success Component\n * Displays a success message with animation after completing KYC verification.\n * Shows a loading skeleton while data is being fetched.\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.description - Success message description text\n * @param {Function} props.onClick - Click handler for the action button\n * @param {string} props.title - Title text for the success message\n * @param {string} props.buttonLabel - Label text for the action button\n * @param {boolean} props.isLoading - Loading state flag\n * @returns {JSX.Element} Success message component or loading skeleton\n *\n * @example\n * function('Button clicked')}\n * title=\"Verification Complete\"\n * buttonLabel=\"Continue\"\n * isLoading={false}\n * />\n */\nexport default function KYCUserIdentityFormKycSuccess({\n description,\n onClick,\n title,\n buttonLabel,\n isLoading,\n}: KYCUserIdentityFormKycSuccessProps) {\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/success.json',\n });\n\n if (isLoading) {\n return ;\n }\n\n return (\n
\n
\n\n
\n
{title}
\n
\n {description}\n
\n \n
\n
\n );\n}\n","import { UserIdentityFormRendererProps } from './props';\nimport UserIdentityFormRendererLayout from './Layout';\nimport UserIdentitiesFormContent from '../Content';\nimport KYCUserIdentityFormKycSuccess from '../KycSuccess';\n\n/**\n * UserIdentityFormRenderer Component\n * Renders different views based on the KYC form state and configuration.\n * Can show a success view, partial form view, or full form view with layout.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} [props.usePartialForm] - Whether to render only the form content without layout\n * @param {boolean} [props.isContainerColor] - Whether to use container background color styling\n * @param {Object} [props.kycSuccessProps] - Props for the success view component\n * @param {bigint|null} [props.externalOriginId] - External origin ID to override default origin\n * @returns {JSX.Element} The appropriate form view based on props\n *\n * @example\n * // Success view\n * {},\n * isLoading: false\n * }}\n * />\n *\n * // Partial form view\n * \n *\n * // Full form view with layout\n * \n */\nexport default function UserIdentityFormRenderer({\n usePartialForm,\n isContainerColor,\n kycSuccessProps,\n externalOriginId,\n}: UserIdentityFormRendererProps) {\n if (kycSuccessProps?.showSuccess) {\n return ;\n }\n\n if (usePartialForm) {\n return (\n \n );\n }\n\n return (\n \n \n \n );\n}\n","import { UserIdentityFormProps } from './props';\nimport UserIdentityFormRenderer from './Renderer';\n\n/**\n * UserIdentityForm Component\n * A wrapper component that renders the KYC (Know Your Customer) identity verification form.\n * Passes through props to the UserIdentityFormRenderer component.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} [props.usePartialForm] - Whether to render only the form content without layout\n * @param {boolean} [props.isContainerColor] - Whether to use container background color styling\n * @param {Object} [props.kycSuccessProps] - Props for the success view component\n * @param {bigint|null} [props.externalOriginId] - External origin ID to override default origin\n * @returns {JSX.Element} The rendered KYC form with appropriate configuration\n *\n * @example\n * // Basic usage with partial form\n * {},\n * isLoading: false\n * }}\n * externalOriginId={123n}\n * />\n */\nexport default function UserIdentityForm({\n usePartialForm,\n isContainerColor,\n kycSuccessProps,\n externalOriginId,\n}: UserIdentityFormProps) {\n return (\n \n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport { PasswordInputProps } from './props';\nimport styles from './styles.module.scss';\nimport { Input } from '../Input';\nimport zxcvbn, { ZXCVBNResult } from 'zxcvbn';\nimport { ChangeEvent, useState } from 'react';\nimport { BarPasswordStrong } from './BarPasswordStrong';\nimport { useTranslation } from '../../hooks';\n\n/**\n * PasswordInput Component\n * A form input component for password fields with strength validation and visual feedback.\n * Uses zxcvbn for password strength analysis and displays a strength indicator bar.\n *\n * @component\n * @template T - Type extending FieldValues from react-hook-form\n * @param {Object} props - Component props\n * @param {string} props.name - Field name for form registration\n * @param {boolean} props.isDirty - Whether the field has been modified\n * @param {Function} props.register - react-hook-form register function\n * @param {string} [props.password=''] - Current password value\n * @param {boolean} props.isTouched - Whether the field has been touched/focused\n * @returns {JSX.Element} Password input with strength indicator\n *\n * @example\n * // Using with react-hook-form\n * \n * name=\"password\"\n * isDirty={formState.isDirty}\n * register={register}\n * password={watch('password')}\n * isTouched={formState.touchedFields.password}\n * />\n */\nexport function PasswordInput({\n name,\n isDirty,\n register,\n password = '',\n isTouched,\n}: PasswordInputProps) {\n const { t } = useTranslation('register');\n const { t: tCommon } = useTranslation('common');\n const [passwordStrength, setPasswordStrength] = useState(\n null,\n );\n const isPasswordEmpty: boolean = password?.length === 0;\n const isValidPasswordLength: boolean =\n password?.length >= 4 && password?.length <= 128;\n const isValidPassword: boolean = isValidPasswordLength && !isPasswordEmpty;\n\n /**\n * Handles password input changes\n * Updates password strength using zxcvbn analysis\n *\n * @param {ChangeEvent} e - Change event from input\n * @example\n * handlePasswordChange({ target: { value: 'newPassword123' } })\n */\n function handlePasswordChange(e: ChangeEvent) {\n const newPassword = e.target.value;\n setPasswordStrength(zxcvbn(newPassword));\n }\n\n /**\n * Gets appropriate error message for password validation\n * Returns translation key based on validation state\n *\n * @returns {string|undefined} Error message or undefined if valid\n * @example\n * const errorMsg = getPasswordError() // Returns 'empty_password' or 'invalid_password_length'\n */\n function getPasswordError(): string | undefined {\n if (isPasswordEmpty) {\n return tCommon('empty_password');\n }\n\n if (!isValidPasswordLength) {\n return tCommon('invalid_password_length');\n }\n }\n\n return (\n
\n \n\n {isDirty && !!passwordStrength && password !== '' && (\n \n )}\n
\n );\n}\n","/* eslint-disable react/no-danger */\nimport { Image } from '@starsoft/common/components';\nimport { SelectInputWithImageProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * SelectInputWithImage Component\n * A customizable select input component that displays an image alongside text content.\n * Supports optional pair images, disabled states, and various visual customizations.\n *\n * @component\n * @param {Object} props - Component props\n * @param {() => void} props.handleOpen - Callback function when input is clicked\n * @param {boolean} props.open - Whether the select dropdown is open\n * @param {boolean} props.cardBg - Whether to use card background styling\n * @param {boolean} props.isWithoutChevron - Whether to hide the chevron icon\n * @param {boolean} props.disabled - Whether the input is disabled\n * @param {string} props.image - URL of the main image to display\n * @param {string} props.label - HTML content to display as label\n * @param {boolean} props.isSmall - Whether to use small size variant\n * @param {string} props.pairImage - URL of optional secondary paired image\n * @param {string} props.className - Additional CSS class names\n * @returns {JSX.Element} The rendered select input with image component\n *\n * @example\n * setIsOpen(true)}\n * open={isOpen}\n * cardBg={true}\n * isWithoutChevron={false}\n * disabled={false}\n * image=\"https://example.com/coin.png\"\n * label=\"Bitcoin (BTC)\"\n * isSmall={false}\n * pairImage=\"https://example.com/eth.png\"\n * className=\"custom-select\"\n * />\n */\nexport function SelectInputWithImage({\n handleOpen,\n open,\n cardBg,\n isWithoutChevron,\n disabled,\n image,\n label,\n isSmall,\n pairImage,\n className,\n}: SelectInputWithImageProps) {\n /**\n * Handles click events on the input\n * Only triggers handleOpen if input is not disabled\n */\n function handleClick() {\n if (disabled) {\n return;\n }\n\n handleOpen();\n }\n\n return (\n \n
\n {image && label && (\n
\n \n {pairImage && label && (\n \n )}\n
\n )}\n

\n {!isWithoutChevron && !disabled && (\n \n )}\n {disabled && }\n

\n
\n );\n}\n","import { SelectOptionWithHighlightProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * SelectOptionWithHighlight Component\n * A selectable option component that displays a label with highlighted description text.\n * Supports selection state and click handling.\n *\n * @component\n * @template T - The type of the option value\n * @param {Object} props - Component props\n * @param {T} props.option - The option value/data\n * @param {boolean} props.selected - Whether this option is currently selected\n * @param {(option: T) => void} props.handleSelect - Callback when option is selected\n * @param {string} props.description - Description text to display highlighted\n * @param {string} props.label - Main label text\n * @returns {JSX.Element} The rendered option component\n *\n * @example\n * type CoinOption = {\n * id: string;\n * symbol: string;\n * };\n *\n * \n * option={{ id: \"btc\", symbol: \"BTC\" }}\n * selected={false}\n * handleSelect={(opt) => function(opt.symbol)}\n * description=\"Bitcoin\"\n * label=\"BTC\"\n * />\n */\nexport function SelectOptionWithHighlight({\n option,\n selected,\n handleSelect,\n description,\n label,\n}: SelectOptionWithHighlightProps) {\n return (\n handleSelect(option)}\n >\n

\n {label}\n {description}\n

\n
\n );\n}\n","import { Image } from '@starsoft/common/components';\nimport { SelectOptionWithImageProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * SelectOptionWithImage Component\n * A selectable option component that displays an image alongside label and description text.\n * Supports selection state and click handling.\n *\n * @component\n * @template T - The type of the option value\n * @param {Object} props - Component props\n * @param {T} props.option - The option value/data\n * @param {boolean} props.selected - Whether this option is currently selected\n * @param {(option: T) => void} props.handleSelect - Callback when option is selected\n * @param {string} props.image - URL of the image to display\n * @param {string} props.description - Optional description text\n * @param {string} props.label - Main label text\n * @returns {JSX.Element} The rendered option component with image\n *\n * @example\n * type CoinOption = {\n * id: string;\n * symbol: string;\n * };\n *\n * \n * option={{ id: \"btc\", symbol: \"BTC\" }}\n * selected={false}\n * handleSelect={(opt) => function(opt.symbol)}\n * image=\"https://example.com/btc-icon.png\"\n * description=\"Bitcoin cryptocurrency\"\n * label=\"Bitcoin\"\n * />\n */\nexport function SelectOptionWithImage({\n option,\n selected,\n handleSelect,\n image,\n description,\n label,\n}: SelectOptionWithImageProps) {\n return (\n handleSelect(option)}\n >\n {label && image && (\n \n )}\n
\n {label}\n {description ?

{description}

:
}\n
\n
\n );\n}\n","import { useTranslation } from '../../../hooks';\nimport { StepComponentProps } from './props';\n\nimport styles from './styles.module.scss';\nimport { memo } from 'react';\n\n/**\n * Step Component\n * A component that renders an individual step in a multi-step process, showing its state (active/completed)\n * and handling click interactions.\n *\n * @component\n * @template V - The type of the step value\n * @param {Object} props - Component props\n * @param {V} props.currentStep - The currently active step value\n * @param {string} props.i18nWorkspace - Translation namespace for i18n\n * @param {Object} props.option - Step option containing label and value\n * @param {boolean} props.blockFurtherSteps - Whether to prevent clicking on future steps\n * @param {number} props.index - Index of this step\n * @param {number} props.currentIndex - Current step index in the sequence\n * @param {boolean} props.isLoading - Whether the step is in loading state\n * @param {(value: V) => void} props.onStepClick - Callback when step is clicked\n * @returns {JSX.Element} The rendered step component\n *\n * @example\n * type StepValue = 'personal' | 'address' | 'payment';\n *\n * function('Step clicked:', value)}\n * />\n */\nfunction Step({\n currentStep,\n i18nWorkspace,\n option,\n blockFurtherSteps,\n index,\n currentIndex,\n isLoading,\n onStepClick,\n}: StepComponentProps) {\n const { t } = useTranslation(i18nWorkspace);\n const isCurrent = currentIndex <= index;\n\n /**\n * Handles click events on the step\n * Calls onStepClick callback with the step value if defined\n */\n function handleClick() {\n if (typeof onStepClick != 'undefined') {\n onStepClick(option?.value);\n }\n }\n\n // Show loading skeleton if step is in loading state\n if (isLoading) {\n return (\n
\n
\n
\n
\n );\n }\n\n return (\n \n \n {t(option.label)}\n
\n \n
\n );\n}\n\nexport default memo(Step) as typeof Step;\n","import { StepsProps } from './props';\nimport styles from './styles.module.scss';\nimport Step from './Step';\nimport { useMemo } from 'react';\nimport { useCustomCarousel } from '@starsoft/common/hooks';\n\n/**\n * Steps Component\n * A component that renders a sequence of steps with carousel functionality, showing progress through a multi-step process.\n *\n * @component\n * @template V - The type of the step value (e.g. string, number)\n * @param {Object} props - Component props\n * @param {V} props.currentStep - The currently active step value\n * @param {Array<{label: string, value: V}>} props.options - Array of step options with labels and values\n * @param {boolean} props.blockFurtherSteps - Whether to prevent clicking on future steps\n * @param {string} props.i18nWorkspace - Translation namespace for i18n\n * @param {number} props.currentIndex - Current step index in the sequence\n * @param {boolean} props.isLoading - Whether steps are in loading state\n * @param {(value: V) => void} props.onStepClick - Callback when a step is clicked\n * @returns {JSX.Element} The rendered steps component with carousel functionality\n *\n * @example\n * type StepValue = 'personal' | 'address' | 'payment';\n *\n * const steps = [\n * { label: 'steps.personal', value: 'personal' },\n * { label: 'steps.address', value: 'address' },\n * { label: 'steps.payment', value: 'payment' }\n * ];\n *\n * function('Step clicked:', value)}\n * />\n */\nexport function Steps({\n currentStep,\n options,\n blockFurtherSteps,\n i18nWorkspace,\n currentIndex,\n isLoading,\n onStepClick,\n}: StepsProps) {\n // Get carousel functionality hooks\n const {\n containerRef,\n handleMouseDown,\n handleMouseLeave,\n handleMouseUp,\n handleMouseMove,\n } = useCustomCarousel();\n\n // Memoize steps to prevent unnecessary re-renders\n const MemorizedSteps = useMemo(\n () =>\n options?.map((opt, index) => (\n \n )),\n [\n options,\n currentStep,\n i18nWorkspace,\n currentIndex,\n blockFurtherSteps,\n isLoading,\n onStepClick,\n ],\n );\n\n return (\n \n {MemorizedSteps}\n
\n );\n}\n","import {\n ResendCodeButton,\n ValidateCodeInput,\n} from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\n\nexport default function UserPhoneNumberFormVerifySkeleton() {\n return (\n
\n {}} isLoading />\n {}} isSkeleton />\n
\n );\n}\n","import { FormGroup, Input } from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\nimport skeletonStyles from './styles.module.scss';\nimport { useSearchParams } from '@starsoft/common/hooks';\nimport UserPhoneNumberFormVerifySkeleton from '../Verify/Skeleton';\n\nexport default function UserPhoneNumberFormSkeleton() {\n const search: URLSearchParams = useSearchParams();\n const phoneNumberId: string | undefined = search.get('phone-number-id');\n\n return (\n
\n
\n
\n
\n {Array.from({ length: 2 }).map((_, index) => (\n \n ))}\n
\n\n {!!phoneNumberId ? (\n \n ) : (\n
\n \n \n \n \n \n \n
\n )}\n
\n\n \n \n
\n
\n );\n}\n","import {\n useLottiePlayer,\n usePhoneNumberForm,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { FormProvider, useForm, UseFormReturn } from 'react-hook-form';\nimport styles from '../styles.module.scss';\n\nimport {\n Button,\n ErrorCard,\n TransTextWithDefault,\n} from '@starsoft/common/components';\nimport { UserPhoneNumberFormProps } from '../props';\nimport UserPhoneNumberFormSkeleton from '../Skeleton';\nimport { UserPhoneNumberFormLayoutProps } from './props';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\n\n/**\n * UserPhoneNumberFormLayout Component\n * This component is responsible for rendering the layout of the user phone number form.\n * It manages form state, handles submission, and displays appropriate UI elements based on the form's state.\n *\n * @param {UserPhoneNumberFormLayoutProps} props - The properties for the component.\n * @param {React.ReactNode} props.children - The child components to be rendered within the form layout.\n *\n * @returns {JSX.Element} The rendered user phone number form layout component.\n *\n * @example\n * // Usage example:\n * \n * \n * \n */\nexport default function UserPhoneNumberFormLayout({\n children,\n}: UserPhoneNumberFormLayoutProps) {\n // Hook for translation in the 'account' namespace\n const { t } = useTranslation('account');\n\n // Initialize form methods using react-hook-form\n const methods: UseFormReturn<\n UserPhoneNumberFormProps & CreateDepositRequestDto\n > = useForm();\n const { handleSubmit, setValue, watch } = methods;\n\n // Custom hook to manage phone number form state and actions\n const {\n error,\n hasCreatedUserPhoneNumber,\n isSkeleton,\n isSubmitDisabled,\n onError,\n refetch,\n isPendingVerifyUserPhoneNumber,\n country,\n onSubmit,\n isPendingCreatePhoneNumber,\n phoneNumber,\n } = usePhoneNumberForm({ watch, setValue });\n\n // Hook to manage Lottie animation\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/phoneNumber.json',\n dependecyArray: [isSkeleton],\n });\n\n // Render error card if there's an error\n if (error) {\n return (\n
\n
\n \n
\n
\n );\n }\n\n // Render skeleton if the form is in a loading state\n if (isSkeleton) {\n return ;\n }\n\n // Render the form layout\n return (\n \n \n
\n
\n \n

\n \n

\n
\n\n {children}\n
\n\n
\n \n {t(hasCreatedUserPhoneNumber ? 'verify' : 'continue')}\n \n
\n \n
\n );\n}\n","import {\n AutocompleteMenuSelector,\n ErrorChip,\n FormGroup,\n SelectInputWithImage,\n SelectOptionWithImage,\n} from '@starsoft/common/components';\nimport {\n useDebounce,\n useKycMeByOriginIdWithOrigin,\n usePhoneNumberForm,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { Country } from '@starsoft/common/models';\nimport { useCallback, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { UserPhoneNumberFormCreateProps } from '../PhoneNumberInput/props';\nimport {\n CreateDepositRequestDto,\n CreatePhoneNumberInputDto,\n UserPhoneNumberVerifyInputDto,\n} from '@starsoft/common/dto';\nimport { KYCStatus } from '@starsoft/common/enums';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\n\n/**\n * CountryCodeSelector Component\n * This component is responsible for rendering a country code selector with an autocomplete feature.\n * It manages the state of the selected country and handles asynchronous loading of country data.\n *\n * @param {UserPhoneNumberFormCreateProps} props - The properties for the component.\n * @param {boolean} props.isKycFlow - Indicates if the form is part of the KYC (Know Your Customer) flow.\n * @param {boolean} props.isContainerColor - Determines if the container should have a specific color.\n *\n * @returns {JSX.Element} The rendered country code selector component.\n *\n * @example\n * // Example usage:\n * \n */\nexport default function CountryCodeSelector({\n isKycFlow,\n isContainerColor,\n}: UserPhoneNumberFormCreateProps) {\n // Hook for translation in the 'account' namespace\n const { t } = useTranslation('account');\n // State to manage the search query for countries\n const [query, setQuery] = useState('');\n // Access form context to manage form state\n const { watch, setValue } = useFormContext<\n CreatePhoneNumberInputDto &\n UserPhoneNumberVerifyInputDto &\n CreateDepositRequestDto\n >();\n // Debounce the query to reduce the frequency of updates\n const debouncedQuery = useDebounce(query);\n // Hook to get KYC status based on origin ID\n const { kyc } = useKycMeByOriginIdWithOrigin({\n enabled: isKycFlow,\n });\n // Determine if the phone number is verified based on KYC status\n const isVerified: boolean = isKycFlow && kyc?.status === KYCStatus.Verified;\n\n // Custom hook to manage phone number form state and actions\n const {\n country,\n countriesQuery: {\n fetchNextPage,\n error,\n refetch,\n countries,\n hasNextPage,\n isLoading,\n isFetchingNextPage,\n },\n } = usePhoneNumberForm({\n watch,\n setValue,\n countryQuery: debouncedQuery,\n });\n\n /**\n * setCountryId Function\n * This function sets the selected country ID and country object in the form state.\n *\n * @param {Country} country - The selected country object.\n *\n * @example\n * // Example usage:\n * setCountryId({ id: 1, name: 'United States', dialCode: '+1' });\n */\n function setCountryId(country: Country) {\n setValue('countryId', country.id?.toString(), {\n shouldDirty: true,\n });\n //@ts-ignore\n setValue('country', country);\n }\n\n /**\n * onSearchChange Function\n * This function updates the search query state when the user types in the search input.\n *\n * @param {string} value - The new search query value.\n *\n * @example\n * // Example usage:\n * onSearchChange('United');\n */\n const onSearchChange = useCallback((value: string) => {\n setQuery(value);\n }, []);\n\n // Callback to load more countries when the user scrolls to the end of the list\n const loadMore = useCallback(fetchNextPage, [fetchNextPage]);\n\n // Render an error chip if there's an error fetching countries\n if (error) {\n return ;\n }\n\n // Render the form group with the autocomplete menu selector\n return (\n \n e?.name}\n getOptionValue={e => e?.id?.toString()}\n value={country?.id?.toString()}\n setValue={setCountryId}\n hasNextPage={hasNextPage}\n filterBy={['name']}\n onSearchChange={onSearchChange}\n isContainerColor={isContainerColor}\n title=\"\"\n isAsync\n disabled={isVerified}\n loadMore={loadMore}\n isSmallerDrawer\n loading={isLoading}\n loadingMore={isFetchingNextPage}\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n customInput: ({ handleOpen, open, disabled, option }) => (\n \n ),\n }}\n />\n \n );\n}\n","import { ErrorChip, FormGroup, Input } from '@starsoft/common/components';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { KYCStatus } from '@starsoft/common/enums';\nimport {\n useDebounce,\n useKycMeByOriginIdWithOrigin,\n usePhoneNumberForm,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { UserPhoneNumberFormProps } from '@starsoft/common/models';\nimport { ChangeEvent } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\n/**\n * PhoneNumberInput Component\n * This component renders an input field for entering a phone number, with additional functionality\n * for error handling, debouncing, and conditional rendering based on KYC status.\n *\n * @param {Object} props - The properties for the component.\n * @param {boolean} [props.isContainerColor] - Optional flag to determine if the container should have a color.\n * @param {boolean} [props.isKycFlow] - Optional flag to indicate if the form is part of the KYC (Know Your Customer) flow.\n *\n * @returns {JSX.Element} The rendered phone number input component.\n *\n * @example\n * // Example usage:\n * \n */\nexport default function PhoneNumberInput({\n isContainerColor,\n isKycFlow,\n}: {\n isContainerColor?: boolean;\n isKycFlow?: boolean;\n}) {\n // Hook for translation in the 'account' namespace\n const { t } = useTranslation('account');\n\n // Access form context to manage form state\n const {\n watch,\n register,\n setValue,\n formState: { touchedFields },\n } = useFormContext();\n\n // Custom hook to manage phone number form state and actions\n const {\n countriesQuery: { error, refetch, isLoading },\n isErrorPhoneNumberLookUp,\n } = usePhoneNumberForm({\n watch,\n setValue,\n });\n\n // Watch for changes in the 'phoneNumber' field\n const phoneNumber: string | undefined = watch('phoneNumber');\n // Debounce the phone number input to reduce the frequency of updates\n const debouncedPhoneNumber: string | undefined = useDebounce(phoneNumber);\n\n // Hook to get KYC status based on origin ID\n const { kyc } = useKycMeByOriginIdWithOrigin({\n enabled: isKycFlow,\n });\n\n // Determine if the phone number is verified based on KYC status\n const isVerified: boolean = kyc?.status === KYCStatus.Verified && isKycFlow;\n\n /**\n * onChange Function\n * This function updates the input value by removing any non-digit characters.\n *\n * @param {ChangeEvent} e - The change event from the input field.\n *\n * @example\n * // Example usage:\n * onChange({ target: { value: '123abc' } }); // Input value becomes '123'\n */\n function onChange(e: ChangeEvent) {\n e.target.value = e.target.value.replace(/\\D/g, '');\n }\n\n // Render the form group with input and error handling\n return (\n \n {error ? (\n \n ) : (\n 21\n ? t('invalid_phone_number_length')\n : t('invalid_phone_number')\n }\n />\n )}\n \n );\n}\n","import styles from './styles.module.scss';\nimport CountryCodeSelector from './CountryCodeSelector';\nimport PhoneNumberInput from './PhoneNumberInput';\nimport { UserPhoneNumberFormCreateProps } from './PhoneNumberInput/props';\n\n/**\n * UserPhoneNumberFormCreate Component\n * This component is responsible for rendering the form to create a user phone number.\n * It includes a country code selector and a phone number input field.\n *\n * @param {UserPhoneNumberFormCreateProps} props - The properties for the component.\n * @param {boolean} props.isKycFlow - Indicates if the form is part of the KYC (Know Your Customer) flow.\n * @param {boolean} props.isContainerColor - Determines if the container should have a specific color.\n *\n * @returns {JSX.Element} The rendered user phone number creation form component.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPhoneNumberFormCreate({\n isKycFlow,\n isContainerColor,\n}: UserPhoneNumberFormCreateProps): JSX.Element {\n return (\n
\n \n \n
\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport {\n ResendCodeButton,\n ValidateCodeInput,\n} from '@starsoft/common/components';\nimport { UserPhoneNumberVerifyInputDto } from '@starsoft/common/dto';\nimport { useSendUserPhoneNumberCode } from '../../../../../../api';\n\n/**\n * UserPhoneNumberFormVerify Component\n * This component is responsible for rendering the verification form for user phone numbers.\n * It utilizes form context to manage form state and provides functionality to resend verification codes.\n *\n * @param {Object} props - The properties for the component.\n * @param {boolean} [props.isContainerColor] - Optional flag to determine if the container should have a color.\n *\n * @returns {JSX.Element} The rendered user phone number verification form component.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPhoneNumberFormVerify({\n isContainerColor,\n}: {\n isContainerColor?: boolean;\n}) {\n // Access form context to manage form state\n const { setValue, watch } = useFormContext();\n // Watch for changes in the 'phoneNumberId' field\n const phoneNumberId: string = watch('phoneNumberId');\n\n // Destructure necessary values and functions from the custom hook\n const { isPending, isSuccess, sendUserPhoneNumberCode } =\n useSendUserPhoneNumberCode();\n\n /**\n * resendPhoneNumberCode Function\n * This function triggers the resend of the verification code for the phone number.\n * It uses the phoneNumberId from the form context to send the code.\n */\n function resendPhoneNumberCode() {\n sendUserPhoneNumberCode({\n phoneNumberId: phoneNumberId?.toString(),\n });\n }\n\n /**\n * onChange Function\n * This function updates the 'code' field in the form context with the provided value.\n *\n * @param {string} value - The new value for the 'code' field.\n *\n * @example\n * // Example usage:\n * onChange('123456');\n */\n function onChange(value: string) {\n setValue('code', value);\n }\n\n // Render the verification form with input and resend button\n return (\n
\n \n \n
\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { UserPhoneNumberFormProps } from '../../props';\nimport UserPhoneNumberFormCreate from '../../Create';\nimport UserPhoneNumberFormVerify from '../../Verify';\nimport { UserPhoneNumberFormLayoutProps } from '../props';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { usePhoneNumberForm } from '@starsoft/common/hooks';\n\n/**\n * UserPhoneNumberFormLayoutRenderer Component\n * This component is responsible for rendering the appropriate form layout based on the user's phone number creation status.\n * It decides whether to render the creation form or the verification form.\n *\n * @param {Object} props - The properties for the component.\n * @param {boolean} props.isKycFlow - Indicates if the form is part of the KYC (Know Your Customer) flow.\n * @param {boolean} props.isContainerColor - Determines if the container should have a specific color.\n *\n * @returns {JSX.Element} The rendered form layout component, either for creating or verifying a user phone number.\n *\n * @example\n * // Example usage:\n * \n */\nexport default function UserPhoneNumberFormLayoutRenderer({\n isKycFlow,\n isContainerColor,\n}: Pick) {\n // Access form context to manage form state\n const { watch, setValue } = useFormContext<\n UserPhoneNumberFormProps & CreateDepositRequestDto\n >();\n\n // Custom hook to manage phone number form state and actions\n const { hasCreatedUserPhoneNumber } = usePhoneNumberForm({\n watch,\n setValue,\n enabled: false,\n });\n\n // Render the creation form if the user has not created a phone number\n if (!hasCreatedUserPhoneNumber) {\n return (\n \n );\n }\n\n // Render the verification form if the user has already created a phone number\n return ;\n}\n","import UserPhoneNumberFormLayout from '../Layout';\nimport UserPhoneNumberFormLayoutRenderer from '../Layout/Renderer';\nimport { UserPhoneNumberFormRendererProps } from './props';\n\n/**\n * UserPhoneNumberFormRenderer is a functional component that renders a form layout for user phone numbers.\n *\n * @param {boolean} useMinimalForm - Determines if the minimal form layout should be used.\n * @param {boolean} isKycFlow - Indicates if the form is part of the KYC (Know Your Customer) flow.\n * @param {boolean} isContainerColor - Determines if the container should have a specific color.\n *\n * @returns {JSX.Element} - Returns a JSX element that represents the form layout.\n *\n * Example usage:\n * \n */\nexport default function UserPhoneNumberFormRenderer({\n useMinimalForm,\n isKycFlow,\n isContainerColor,\n}: UserPhoneNumberFormRendererProps): JSX.Element {\n if (useMinimalForm) {\n return (\n \n );\n }\n\n return (\n \n \n \n );\n}\n","export namespace KycCheckpointId {\n export const Identity = 1n;\n export const VerifiedTaxId = 2n;\n export const DocumentSubmission = 3n;\n export const AddressVerification = 4n;\n export const ProofOfResidence = 5n;\n export const ProofOfIncome = 6n;\n export const CriminalRecordCheck = 7n;\n export const VerifiedEmail = 8n;\n export const VerifiedPhoneNumber = 9n;\n}\n\nexport type KycCheckpointIdType =\n (typeof KycCheckpointId)[keyof typeof KycCheckpointId];\n","export enum UserIdentityFormFields {\n TaxId = 'tax_id',\n Name = 'name',\n BirthDate = 'birth_date',\n}\n","export enum UserIdentityStatus {\n Valid = 'valid',\n Invalid = 'invalid',\n}\n","import { CoinIDType } from '@starsoft/common/enums/coinId';\nimport { useWalletsMe } from '../../../api';\nimport { useSearchParams } from '../../useSearchParams';\n\n/**\n * Custom hook to get the coalesced coin ID.\n * This hook retrieves the coin ID from the URL search parameters or from the current wallet account.\n *\n * @returns {Object} An object containing the coin ID.\n *\n * @example\n * // Usage example:\n * const { coinId } = useCoallescedCoinId();\n */\nexport function useCoallescedCoinId() {\n // Get the URL search parameters\n const search: URLSearchParams = useSearchParams();\n\n // Retrieve the 'coin-id' parameter from the URL\n const searchCoinId = search.get('coin-id');\n\n // Get the wallet information using the custom hook\n const { wallet } = useWalletsMe();\n\n // Determine the coin ID from the URL or fallback to the wallet's current account coin ID\n const coinId =\n (searchCoinId ? (BigInt(searchCoinId) as CoinIDType) : null) ??\n wallet?.currentAccount?.coin?.id;\n\n // Return the coin ID\n return { coinId };\n}\n","import {\n CreateBrazilianKycInputDto,\n CreateIdentityKycDto,\n CreateKycInputDto,\n CreateKycRequestDto,\n} from '../../../dto';\nimport { KycIdentityOriginId } from '../../../enums';\n\n/**\n * Function to compose the KYC submission input based on the origin ID.\n * This function takes an origin ID and a data object, and returns a partial KYC input object\n * tailored to the specific origin's requirements.\n *\n * @param {string} originId - The origin ID representing the country or region for the KYC process.\n * @param {CreateKycRequestDto} data - The data object containing the necessary information for KYC submission.\n * @returns {Partial} - A partial KYC input object with fields populated based on the origin ID.\n *\n * Example usage:\n * const originId = 'Brazil';\n * const data: CreateKycRequestDto = { identityId: '12345', ...otherData };\n * const kycInput = getComposedKycSubmissionInput(originId, data);\n */\nexport function getComposedKycSubmissionInput(\n originId: string,\n data: CreateKycRequestDto,\n): Partial {\n // Initialize the input object with the origin ID\n let input: Partial = {\n originId: originId as string,\n };\n\n // Determine the specific KYC input structure based on the origin ID\n switch (originId?.toString()) {\n case KycIdentityOriginId.Brazil?.toString():\n // For Brazil, set the identityId in the input\n (input as CreateBrazilianKycInputDto).identityId = data.identityId;\n break;\n case KycIdentityOriginId.India?.toString():\n case KycIdentityOriginId.Argentina?.toString():\n case KycIdentityOriginId.Mexico?.toString():\n case KycIdentityOriginId.Indonesia?.toString():\n case KycIdentityOriginId.Peru?.toString():\n case KycIdentityOriginId.SouthAfrica?.toString():\n case KycIdentityOriginId.Nigeria?.toString():\n case KycIdentityOriginId.Singapore?.toString():\n // For other specified countries, set the identity object in the input\n const kycInput = input as CreateIdentityKycDto;\n kycInput.identity = (data as CreateIdentityKycDto).identity;\n if (kycInput.identity) {\n // Ensure the identity object has the correct origin ID\n kycInput.identity.originId = originId?.toString();\n }\n break;\n }\n // Return the composed KYC input object\n return input;\n}\n","import { CreateKycInputDto } from '@starsoft/common/dto';\nimport { Kyc } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchCreateKyc(\n data: CreateKycInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse = await axiosInstance.post(\n '/kyc',\n data,\n );\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchCreateKyc } from './service';\nimport { KYCQueryKeys } from '../../queryKeys';\nimport { UseCreateKycProps } from './props';\nimport { Kyc } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { CreateKycInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to create and manage KYC (Know Your Customer) data\n *\n * This hook handles creating new KYC records and managing the mutation state.\n * It uses React Query for data mutation and cache invalidation.\n *\n * @param {UseCreateKycProps} options - Optional configuration object\n * @param {Function} [options.externalOnSuccess] - Optional callback function to be called after successful KYC creation\n *\n * @returns {Object} An object containing:\n * - createKyc: Function to trigger KYC creation (non-async)\n * - createKycAsync: Function to trigger KYC creation (async version)\n * - isPending: Boolean indicating if mutation is in progress\n */\nexport function useCreateKyc(options?: UseCreateKycProps) {\n const { externalOnSuccess } = options ?? {};\n const queryClient: QueryClient = useQueryClient();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Success callback handler for KYC creation\n * Invalidates relevant queries and calls external success handler if provided\n *\n * @param {Kyc} data - The created KYC data returned from the server\n */\n function onSuccess(data: Kyc) {\n queryClient.invalidateQueries({ queryKey: [KYCQueryKeys.Me] });\n if (typeof externalOnSuccess != 'undefined') {\n externalOnSuccess(data);\n }\n }\n\n const { mutate, isPending, mutateAsync } = useMutation({\n mutationFn: (data: CreateKycInputDto) =>\n fetchCreateKyc(data, axiosInstance),\n onSuccess,\n });\n\n return {\n createKyc: mutate,\n createKycAsync: mutateAsync,\n isPending,\n };\n}\n","import { UpdateKycIdentityInputDto } from '@starsoft/common/dto';\nimport { Kyc } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchUpdateKycIdentity(\n { id, ...data }: UpdateKycIdentityInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse = await axiosInstance.patch(\n `/kyc/identity/${id}`,\n data,\n );\n\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchUpdateKycIdentity } from './service';\nimport { KYCQueryKeys } from '../../queryKeys';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { UpdateKycIdentityInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to update KYC identity information\n *\n * This hook handles updating KYC identity data and managing the mutation state.\n * It uses React Query for data mutation and cache invalidation.\n *\n * @returns {Object} An object containing:\n * - updateKycIdentity: Function to trigger KYC identity update (non-async)\n * - updateKycIdentityAsync: Function to trigger KYC identity update (async version)\n * - isPending: Boolean indicating if mutation is in progress\n */\nexport function useUpdateKycIdentity() {\n const queryClient: QueryClient = useQueryClient();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Success callback handler for KYC identity update\n * Invalidates relevant queries to refresh data\n */\n function onSuccess() {\n queryClient.invalidateQueries({ queryKey: [KYCQueryKeys.Me] });\n }\n\n const { mutate, isPending, mutateAsync } = useMutation({\n mutationFn: (data: UpdateKycIdentityInputDto) =>\n fetchUpdateKycIdentity(data, axiosInstance),\n onSuccess,\n });\n\n return {\n updateKycIdentity: mutate,\n updateKycIdentityAsync: mutateAsync,\n isPending,\n };\n}\n","import { Nullable } from '@starsoft/common/interfaces';\nimport {\n UseKycMeByOriginIdPrefetchProps,\n UseKycMeQueryKeyProps,\n} from './props';\nimport { Kyc } from '@starsoft/common/models';\nimport { KYCQueryKeys } from '../../queryKeys';\nimport { fetchKycMeByOriginId } from './service';\n\nexport async function prefetchKycMeByOriginId({\n queryClient,\n originId,\n instance,\n}: UseKycMeByOriginIdPrefetchProps): Promise> {\n const queryKey: UseKycMeQueryKeyProps = [\n KYCQueryKeys.Me,\n originId?.toString(),\n ];\n\n await queryClient.prefetchQuery({\n queryKey: queryKey,\n queryFn: queryContext => fetchKycMeByOriginId(queryContext, instance),\n });\n const { data: kyc } = queryClient.getQueryState>(queryKey);\n\n return kyc;\n}\n","/* eslint-disable no-empty */\nimport { useCallback } from 'react';\nimport { useKycNavigation } from '../useKycNavigation';\nimport { UseKycFormSubmissionProps } from './props';\nimport { getComposedKycSubmissionInput } from './helper';\nimport { useUserOriginId } from '../../user-identity/useUserOriginId';\nimport { useCreateKyc, useUpdateKycIdentity } from '../../../api';\nimport { KycCheckpointId, KYCStatus } from '../../../enums';\nimport { usePhoneNumberForm } from '../../user-phone-number';\nimport {\n CreateKycInputDto,\n CreateKycRequestDto,\n CreatePhoneNumberInputDto,\n UserEmailVerifyInputDto,\n UserPhoneNumberVerifyInputDto,\n} from '../../../dto';\nimport { prefetchKycMeByOriginId } from '@starsoft/common/api/kyc/queries/useKycMeByOriginId/prefetch';\nimport { useAxiosInstance } from '../../useAxiosInstance';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useUserEmailsForm } from '../../user-emails/useUserEmailsForm';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * Custom hook to manage KYC form submission.\n * This hook provides functionality to handle the submission of KYC forms, including creating and updating KYC records.\n *\n * @template T - The type of the form data.\n * @param {UseKycFormSubmissionProps} props - The properties required for KYC form submission.\n * @returns {Object} - An object containing the handleKycSubmission function and isLoadingKycSubmission state.\n *\n * Example usage:\n * const { handleKycSubmission, isLoadingKycSubmission } = useKycFormSubmission({\n * callback: myCallbackFunction,\n * kyc: myKycData,\n * methods: myFormMethods,\n * externalOriginId: '123',\n * enabled: true,\n * });\n */\nexport function useKycFormSubmission({\n callback,\n kyc,\n methods,\n externalOriginId,\n enabled = true,\n}: UseKycFormSubmissionProps) {\n // Destructure watch and setValue from methods if available\n const { watch, setValue } = methods ?? {};\n\n // Hook to create KYC and track its pending state\n const { createKycAsync, isPending: pendingCreateKycAsync } = useCreateKyc();\n\n // Hook to update KYC identity and track its pending state\n const { isPending: pendingUpdateKycAsync, updateKycIdentityAsync } =\n useUpdateKycIdentity();\n\n // Get the user's origin ID, falling back to externalOriginId if not available\n const originId: Nullable =\n useUserOriginId() ?? externalOriginId?.toString();\n\n // Axios instance for making HTTP requests\n const instance = useAxiosInstance();\n\n // Query client for managing query cache\n const queryClient = useQueryClient();\n\n // Hook to manage phone number form submission\n const {\n onSubmit: createOrVerifyPhoneNumber,\n isPendingCreatePhoneNumber,\n isPendingVerifyUserPhoneNumber,\n } = usePhoneNumberForm({\n watch,\n setValue,\n });\n\n // Hook to manage user email form submission\n const {\n userEmailId,\n submission: { verifyUserEmailAsync },\n } = useUserEmailsForm({ methods, useMinimalForm: true, enabled });\n\n // Hook to manage KYC navigation steps\n const { handleSetKycStep } = useKycNavigation({ callback });\n\n // Determine if any KYC submission process is loading\n const isLoadingKycSubmission =\n pendingCreateKycAsync ||\n pendingUpdateKycAsync ||\n isPendingCreatePhoneNumber ||\n isPendingVerifyUserPhoneNumber;\n\n /**\n * Function to handle the creation of a KYC record.\n *\n * @param {Partial} input - The input data for creating a KYC record.\n * @returns {Promise} - The created KYC record.\n *\n * Example:\n * const createdKyc = await handleCreateKyc({ originId: '123', identityId: '456' });\n */\n const handleCreateKyc = useCallback(\n async (input: Partial) => {\n const createdKyc = await createKycAsync(input as CreateKycInputDto);\n\n if (createdKyc?.status == KYCStatus.Verified) {\n return createdKyc;\n }\n\n if (createdKyc) {\n handleSetKycStep(createdKyc?.stage?.checkpoint?.id);\n }\n\n return createdKyc;\n },\n [createKycAsync, handleSetKycStep],\n );\n\n /**\n * Function to handle the update of a KYC record.\n *\n * @param {CreateKycRequestDto} data - The data for updating a KYC record.\n * @returns {Promise} - The updated KYC record.\n *\n * Example:\n * const updatedKyc = await handleUpdateKyc({ identityId: '456' });\n */\n const handleUpdateKyc = useCallback(\n async (data: CreateKycRequestDto) => {\n const updatedKyc = await updateKycIdentityAsync({\n id: kyc?.id?.toString(),\n identityId: data?.identityId,\n });\n\n if (updatedKyc?.status == KYCStatus.Verified) {\n return updatedKyc;\n }\n handleSetKycStep(updatedKyc?.stage?.checkpoint?.id);\n\n return updatedKyc;\n },\n [handleSetKycStep, kyc?.id, updateKycIdentityAsync],\n );\n\n /**\n * Function to fetch the updated KYC record.\n *\n * @returns {Promise} - The updated KYC record.\n *\n * Example:\n * const updatedKyc = await handleGetUpdatedKyc();\n */\n const handleGetUpdatedKyc = useCallback(async () => {\n const updatedKyc = await prefetchKycMeByOriginId({\n queryClient,\n originId,\n instance,\n });\n return updatedKyc;\n }, [queryClient, originId, instance]);\n\n /**\n * Function to handle the submission of KYC data.\n *\n * @param {CreateKycRequestDto} data - The KYC data to be submitted.\n * @returns {Promise} - The result of the KYC submission.\n *\n * Example:\n * const result = await handleKycSubmission({ identityId: '456', code: '1234' });\n */\n const handleKycSubmission = useCallback(\n async (data: CreateKycRequestDto) => {\n try {\n const input: Partial = getComposedKycSubmissionInput(\n originId,\n data,\n );\n\n if (!kyc) {\n return handleCreateKyc(input);\n }\n\n switch (kyc?.status) {\n case KYCStatus.Created:\n switch (kyc?.stage?.checkpoint?.id?.toString()) {\n case KycCheckpointId.VerifiedTaxId?.toString():\n await updateKycIdentityAsync({\n id: kyc?.id?.toString(),\n identityId: data?.identityId,\n });\n\n return await handleGetUpdatedKyc();\n case KycCheckpointId.Identity?.toString():\n return handleUpdateKyc(data);\n case KycCheckpointId.VerifiedPhoneNumber?.toString(): {\n createOrVerifyPhoneNumber(\n data as CreatePhoneNumberInputDto &\n UserPhoneNumberVerifyInputDto,\n );\n return await handleGetUpdatedKyc();\n }\n case KycCheckpointId.VerifiedEmail?.toString(): {\n await verifyUserEmailAsync({\n emailId: userEmailId?.toString(),\n code: (data as UserEmailVerifyInputDto)?.code,\n });\n\n return await handleGetUpdatedKyc();\n }\n case KycCheckpointId.DocumentSubmission?.toString(): {\n return await handleGetUpdatedKyc();\n }\n\n case KycCheckpointId.AddressVerification?.toString():\n case KycCheckpointId.ProofOfIncome?.toString():\n case KycCheckpointId.ProofOfResidence?.toString():\n case KycCheckpointId.CriminalRecordCheck?.toString():\n }\n break;\n case KYCStatus.Verified:\n return kyc;\n }\n } catch (err: unknown) {\n console.error('Error in handleKycSubmission:', err);\n }\n },\n [\n kyc,\n originId,\n handleCreateKyc,\n handleUpdateKyc,\n createOrVerifyPhoneNumber,\n updateKycIdentityAsync,\n handleGetUpdatedKyc,\n verifyUserEmailAsync,\n userEmailId,\n ],\n );\n\n // Return the handleKycSubmission function and the loading state\n return { handleKycSubmission, isLoadingKycSubmission };\n}\n\nexport type { UseKycFormSubmissionProps };\n","import { KycCheckpointId, KYCStatus } from '../../../enums';\nimport { useKycMeByOriginIdWithOrigin } from '../useKycMeByOriginIdWithOrigin';\nimport { UseKycInformationHandlerProps } from './props';\n\n/**\n * Custom hook to handle KYC information.\n * This hook provides functionality to retrieve and manage KYC information based on the user's origin ID.\n *\n * @param {UseKycInformationHandlerProps} [props] - Optional properties for handling KYC information.\n * @returns {Object} - An object containing the KYC query, lottie animation, title, and description.\n *\n * Example usage:\n * const { useKycMeByOriginIdQuery, lottie, title, description } = useKycInformationHandler({\n * externalOriginId: '123',\n * externalEnabled: true,\n * });\n */\nexport function useKycInformationHandler(\n props?: UseKycInformationHandlerProps,\n) {\n // Hook to fetch KYC information by origin ID\n const useKycMeByOriginIdQuery = useKycMeByOriginIdWithOrigin({\n externalOriginId: props?.externalOriginId,\n enabled: props?.externalEnabled,\n });\n\n // Destructure the KYC data from the query result\n const { kyc } = useKycMeByOriginIdQuery;\n\n /**\n * Function to get the title based on KYC status and checkpoint.\n *\n * @returns {string} - The title corresponding to the current KYC status and checkpoint.\n *\n * Example:\n * const title = getTitle();\n */\n function getTitle(): string {\n if (!kyc) {\n return 'create_personal_identity_title';\n }\n\n if (kyc.status === KYCStatus.Created) {\n switch (kyc?.stage?.checkpoint?.id) {\n case KycCheckpointId.AddressVerification:\n return 'common:address_verification_label';\n case KycCheckpointId.CriminalRecordCheck:\n return 'common:criminal_record_check_label';\n case KycCheckpointId.DocumentSubmission:\n return 'common:document_submission_label';\n case KycCheckpointId.Identity:\n return 'common:identity_label';\n case KycCheckpointId.VerifiedTaxId:\n return 'common:verified_tax_id_label';\n case KycCheckpointId.ProofOfResidence:\n return 'common:proof_of_residence_label';\n case KycCheckpointId.ProofOfIncome:\n return 'common:proof_of_income_label';\n case KycCheckpointId.VerifiedEmail:\n return 'common:verified_email_label';\n case KycCheckpointId.VerifiedPhoneNumber:\n return 'common:verified_phone_number_label';\n default:\n return 'created_personal_identity_title';\n }\n }\n }\n\n /**\n * Function to get the description based on KYC status and checkpoint.\n *\n * @returns {string} - The description corresponding to the current KYC status and checkpoint.\n *\n * Example:\n * const description = getDescription();\n */\n function getDescription(): string {\n if (!kyc) {\n return 'create_personal_identity_description';\n }\n\n if (kyc?.stage?.checkpoint?.id === KycCheckpointId.DocumentSubmission) {\n return 'document_submission_description';\n }\n\n if (kyc.status === KYCStatus.Created) {\n return 'create_personal_identity_description';\n }\n\n return 'created_personal_identity_description';\n }\n\n /**\n * Function to get the Lottie animation file based on KYC status.\n *\n * @returns {string} - The Lottie animation file name.\n *\n * Example:\n * const lottie = getLottie();\n */\n function getLottie(): string {\n if (!kyc || (!!kyc && kyc?.status === KYCStatus.Verified)) {\n return 'kyc-pending-form.json';\n }\n\n return 'identity-check.json';\n }\n\n // Return the KYC query, lottie animation, title, and description\n return {\n useKycMeByOriginIdQuery,\n lottie: getLottie(),\n title: getTitle(),\n description: getDescription(),\n };\n}\n","import { UseKycMeByOriginIdWithOriginProps } from './props';\nimport { useUserOriginId } from '../../user-identity/useUserOriginId';\nimport { useKycMeByOriginId } from '../../../api';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * Custom hook to fetch KYC information by origin ID.\n * This hook combines the user's origin ID with an external origin ID (if provided)\n * and uses the combined origin ID to fetch KYC information.\n *\n * @param {UseKycMeByOriginIdWithOriginProps} [props] - Optional properties for fetching KYC information.\n * @param {boolean} [props.enabled=true] - Flag to enable or disable the query.\n * @param {string} [props.externalOriginId] - External origin ID to use if user origin ID is not available.\n * @returns {Object} - The result of the KYC query.\n *\n * Example usage:\n * const kycQuery = useKycMeByOriginIdWithOrigin({\n * enabled: true,\n * externalOriginId: '123',\n * });\n */\nexport function useKycMeByOriginIdWithOrigin(\n props?: UseKycMeByOriginIdWithOriginProps,\n) {\n // Destructure enabled and externalOriginId from props, with default values\n const { enabled = true, externalOriginId } = props ?? {};\n\n // Get the user's origin ID, falling back to externalOriginId if not available\n const originId: Nullable =\n useUserOriginId() ?? externalOriginId?.toString();\n\n // Use the combined origin ID to fetch KYC information\n return useKycMeByOriginId({ originId, enabled });\n}\n\nexport type { UseKycMeByOriginIdWithOriginProps };\n","// Import necessary types and hooks\nimport { UseKycNavigationProps } from './props';\nimport { useCallback, useMemo } from 'react';\nimport { useCurrentModal } from '../../modals/useCurrentModal';\nimport { useUserOriginId } from '../../user-identity/useUserOriginId';\nimport { KycCheckpointId, CommonModalsKey } from '../../../enums';\nimport { Nullable } from '../../../interfaces';\nimport { useKycMeByOriginId } from '../../../api';\nimport { KycCheckpointMapping } from '../../../models/kyc/checkpoint/mapping';\nimport { StepProps } from '../../../components/Steps/props';\nimport { KycCheckpointStatus } from '../../../enums/kyc/checkpoint/status';\nimport { CreateDepositRequestDto } from '../../../dto';\nimport { useSearchParams } from '../../useSearchParams';\nimport { useNavigate } from '../../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { KycCheckpointIdType } from '@starsoft/common/enums/kyc/checkpoint';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\n\n/**\n * Custom hook to manage KYC navigation.\n * This hook provides functionality to navigate through KYC checkpoints and manage related state.\n *\n * @template T - The type of the callback data.\n * @param {UseKycNavigationProps} props - The properties required for KYC navigation.\n * @returns {Object} - An object containing various handlers and state related to KYC navigation.\n *\n * Example usage:\n * const { handleNextKycStep, handleKycDepositStep } = useKycNavigation({\n * callback: myCallbackFunction,\n * externalOriginId: '123',\n * externalEnabled: true,\n * });\n */\nexport function useKycNavigation({\n callback,\n externalOriginId,\n externalEnabled,\n}: UseKycNavigationProps) {\n // Hook to manage URL search parameters\n const search: URLSearchParams = useSearchParams();\n // Hook to navigate between routes\n const navigate: NavigateFunction = useNavigate();\n // Hook to get the current modal key\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n\n // Get the user's origin ID, falling back to externalOriginId if not available\n const identityOrigin: Nullable =\n useUserOriginId() ?? externalOriginId?.toString();\n // Fetch KYC information based on the origin ID\n const kycMeByOriginIdQuery = useKycMeByOriginId({\n originId: identityOrigin?.toString(),\n enabled: externalEnabled,\n });\n // Check if there is a KYC check in the current identity\n const hasKycCheckInCurrentIdentity: boolean = !!identityOrigin;\n // Get the KYC checkpoint ID from the search parameters\n const kycCheckpointIdSearch: Nullable =\n search.get('kyc-checkpoint-id');\n // Determine the current KYC checkpoint ID\n const kycCheckpointId: Nullable =\n (kycCheckpointIdSearch\n ? (parseToBigInt(kycCheckpointIdSearch) as bigint)\n : null) ??\n kycMeByOriginIdQuery?.kyc?.stage?.checkpoint?.id ??\n KycCheckpointId.Identity;\n // Memoize the checkpoints from the KYC query\n const checkpoints: KycCheckpointMapping[] = useMemo(\n () => kycMeByOriginIdQuery?.kyc?.tracking ?? [],\n [kycMeByOriginIdQuery?.kyc?.tracking],\n );\n // Check if the current KYC checkpoint ID is valid\n const isValidKycCheckpointId: boolean = useMemo(\n () =>\n checkpoints?.some(\n tracking => tracking?.checkpoint?.id === kycCheckpointId,\n ),\n [checkpoints, kycCheckpointId],\n );\n\n // Determine the index of the current step\n const currentStepIndex: number = useMemo(\n () =>\n checkpoints?.findIndex(\n checkpoint => checkpoint?.checkpoint?.id == kycCheckpointId,\n ),\n [kycCheckpointId, checkpoints],\n );\n // Parse the steps for the KYC process\n const parsedSteps: StepProps[] = useMemo(\n () =>\n checkpoints?.map(checkpoint => ({\n label: `${checkpoint?.checkpoint?.id}_kyc_step`,\n value: checkpoint?.checkpoint?.id as KycCheckpointIdType,\n isCompleted: checkpoint?.status === KycCheckpointStatus.Verified,\n })),\n [checkpoints],\n );\n\n // Check if the current step is the last step\n const isLastStep: boolean =\n kycMeByOriginIdQuery?.kyc?.checkpoints?.length - 1 == currentStepIndex;\n\n /**\n * Function to handle navigation to the next KYC step.\n * If the current step is the last step, it triggers the callback.\n */\n const handleNextKycStep = useCallback(() => {\n if (isLastStep) {\n callback?.();\n return;\n }\n\n if (!checkpoints?.[currentStepIndex + 1]?.checkpoint?.id) {\n return;\n }\n\n search.set(\n 'kyc-checkpoint-id',\n `${checkpoints?.[currentStepIndex + 1]?.checkpoint?.id}`,\n );\n navigate({\n search: search.toString(),\n hash: modal,\n });\n }, [\n modal,\n search,\n navigate,\n currentStepIndex,\n callback,\n isLastStep,\n checkpoints,\n ]);\n\n /**\n * Function to set the KYC step based on the given checkpoint.\n *\n * @param {KycCheckpointIdType} checkpoint - The checkpoint ID to set.\n */\n const handleSetKycStep = useCallback(\n (checkpoint: KycCheckpointIdType) => {\n search.set('kyc-checkpoint-id', `${checkpoint?.toString()}`);\n navigate({\n search: search.toString(),\n hash: modal,\n });\n },\n [modal, search, navigate],\n );\n\n /**\n * Function to set both KYC and deposit step search parameters.\n *\n * @param {KycCheckpointIdType} checkpoint - The checkpoint ID to set.\n * @param {T} depositStep - The deposit step to set.\n */\n const handleSetKycAndStepSearchParams = useCallback(\n (checkpoint: KycCheckpointIdType, depositStep: T) => {\n search.set('kyc-checkpoint-id', `${checkpoint?.toString()}`);\n search.set('step', String(depositStep));\n navigate({\n search: search.toString(),\n hash: modal,\n });\n },\n [modal, search, navigate],\n );\n\n /**\n * Function to handle the KYC deposit step.\n * If the current step is the last step, it triggers the callback with the provided data.\n *\n * @param {CreateDepositRequestDto} [data] - Optional data for the deposit request.\n */\n const handleKycDepositStep = useCallback(\n async (data?: CreateDepositRequestDto) => {\n if (isLastStep) {\n await callback?.(data as T);\n return;\n }\n\n handleNextKycStep();\n },\n [isLastStep, callback, handleNextKycStep],\n );\n\n // Return the handlers and state related to KYC navigation\n return {\n handleNextKycStep,\n handleKycDepositStep,\n isLastStep,\n identityOrigin,\n kycCheckpointId,\n currentStepIndex,\n handleSetKycStep,\n handleSetKycAndDepositStep: handleSetKycAndStepSearchParams,\n handleSetKycAndStepSearchParams,\n kycMeByOriginIdQuery,\n parsedSteps,\n hasKycCheckInCurrentIdentity,\n currentCheckpoint: checkpoints?.[currentStepIndex],\n checkpoints,\n isValidKycCheckpointId,\n kycCheckpointIdSearch,\n };\n}\n\n// Export the type for the hook's props\nexport type { UseKycNavigationProps };\n","import { useEffect, useState } from 'react';\n\n/**\n * Custom hook that debounces a value.\n *\n * @template T - The type of the value to debounce.\n * @param {T} value - The value to debounce.\n * @param {number} [delay=500] - The debounce delay in milliseconds.\n * @returns {T} - The debounced value.\n *\n * @example\n * const debouncedSearchTerm = useDebounce(searchTerm, 300);\n */\nexport function useDebounce(value: T, delay: number = 500): T {\n // State to store the debounced value\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n /**\n * Function to handle the debounce logic.\n * Sets a timeout to update the debounced value after the specified delay.\n * Clears the timeout if the value or delay changes before the timeout completes.\n */\n function handleDebounce() {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(timer);\n };\n }\n\n // useEffect hook to apply the debounce logic whenever the value or delay changes\n useEffect(handleDebounce, [value, delay]);\n\n // Return the debounced value\n return debouncedValue;\n}\n","import { CommonSettings } from '../interfaces';\nimport { NotificationsService } from '../services';\nimport { useSettingsStore } from './useSettingsStore';\n\n/**\n * Custom hook to get the NotificationsService instance from the settings.\n * This hook uses the `useSettingsStore` hook to access the state and retrieve the NotificationsService instance.\n *\n * @template T - The type of the notifications.\n * @returns {NotificationsService} - Returns an instance of NotificationsService.\n *\n * @example\n * const notificationsService = useNotificationService();\n * notificationsService.notify('New message received');\n */\nexport function useNotificationService(): NotificationsService {\n // Destructure the state from the useSettingsStore hook\n const { state } = useSettingsStore();\n\n // Get the settings from the state\n const settings: CommonSettings = state.settings;\n\n // Get the NotificationsService instance from the settings\n const { NotificationsService } = settings.useNotificationService();\n\n // Return the NotificationsService instance\n return NotificationsService;\n}\n","import {\n useUserEmailMeById,\n useUserEmails,\n useUserEmailSendCode,\n useVerifyUserEmail,\n} from '@starsoft/common/api';\nimport { useSearchParams } from '../../useSearchParams';\nimport { UseUserEmailsFormProps } from './props';\nimport {\n GenericError,\n PaginatedResponse,\n UserEmail,\n} from '@starsoft/common/models';\nimport { Either } from '@starsoft/common/interfaces';\nimport { useCurrentModal, useModal } from '../../modals';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { useNextNavigate } from '../../useNextNavigate';\nimport { AxiosError } from 'axios';\nimport { Path, PathValue } from 'react-hook-form';\nimport { UserEmailVerifyInputDto } from '@starsoft/common/dto';\nimport { useNotificationService } from '../../useNotificationService';\nimport { useCallback, useEffect } from 'react';\n\n/**\n * Custom hook to manage user email forms.\n *\n * @template T - The type of the form data.\n * @param {UseUserEmailsFormProps} props - The properties for the hook.\n * @param {object} props.methods - Methods from react-hook-form.\n * @param {boolean} props.useMinimalForm - Flag to determine if minimal form should be used.\n * @param {boolean} [props.enabled=true] - Flag to enable or disable the hook.\n *\n * @returns {object} - Returns an object containing various states and functions for managing the form.\n */\nexport function useUserEmailsForm({\n methods,\n useMinimalForm,\n enabled = true,\n}: UseUserEmailsFormProps) {\n // Get search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n // Extract user email ID from search parameters\n const userEmailId: string | undefined = search.get('user-email-id');\n // Get the current modal state\n const modal: Either = useCurrentModal(CommonModalsKey);\n // Hook for navigation\n const navigate = useNextNavigate();\n // Notification service for displaying messages\n const NotificationsService = useNotificationService();\n // Modal control functions\n const { onClose } = useModal(CommonModalsKey.UserEmail);\n\n // Destructure methods from react-hook-form\n const { watch, setValue } = methods;\n\n // Watch for changes in 'code' and 'emailId' fields\n const code = watch('code' as Path);\n const emailId = watch('emailId' as Path);\n // Determine if the submit button should be disabled\n const isSubmitDisabled: boolean =\n !userEmailId ||\n !code ||\n (typeof code === 'string' && code.length < 6) ||\n !emailId;\n\n // Hook to verify user email\n const {\n isPending: isPendingVerifyUserEmail,\n verifyUserEmail,\n verifyUserEmailAsync,\n } = useVerifyUserEmail();\n // Hook to send email verification code\n const useUserEmailSendCodeQuery = useUserEmailSendCode();\n const {\n sendCode,\n isPending: isPendingUserEmailSendCode,\n isSuccess: isSuccessUserEmailSendCode,\n } = useUserEmailSendCodeQuery;\n\n // Hook to fetch user email by ID\n const {\n userEmail,\n refetch,\n isPending: isPendingUserEmailById,\n isSuccess,\n error: errorUserEmailById,\n } = useUserEmailMeById({\n id: enabled ? (userEmailId ? Number(userEmailId) : undefined) : undefined,\n });\n\n /**\n * Callback function to handle successful fetching of user emails.\n *\n * @param {PaginatedResponse} data - The paginated response containing user emails.\n */\n const externalOnSuccess = useCallback(\n (data: PaginatedResponse) => {\n if (!useMinimalForm || !enabled) {\n return;\n }\n\n // Find the primary email from the response\n const email: UserEmail | undefined = data?.data?.find(\n email => email?.primary,\n );\n\n if (email && !userEmailId && enabled) {\n // Update search parameters and form values\n search.set('user-email-id', String(email.id));\n setValue('emailId' as Path, email?.id as PathValue>);\n sendCode({\n emailId: email?.id?.toString(),\n });\n navigate({\n search: search.toString(),\n hash: modal,\n });\n }\n },\n [\n useMinimalForm,\n search,\n navigate,\n modal,\n sendCode,\n userEmailId,\n enabled,\n setValue,\n ],\n );\n\n // Hook to fetch user emails\n const {\n isLoading: isLoadingEmails,\n error: errorEmails,\n refetch: refetchEmails,\n } = useUserEmails({\n enabled,\n externalOnSuccess,\n });\n\n // Determine if there is an error\n const error: AxiosError | undefined =\n errorUserEmailById ?? errorEmails;\n // Determine if skeleton loading should be shown\n const isSkeleton: boolean = isPendingUserEmailById || false;\n\n /**\n * Function to handle errors by refetching data.\n */\n function handleError() {\n if (errorEmails) {\n refetchEmails();\n }\n if (errorUserEmailById) {\n refetch();\n }\n }\n\n /**\n * Function to display an error notification.\n */\n function onError() {\n NotificationsService.error({\n title: 'form_error_title',\n message: 'form_error_description',\n });\n }\n\n /**\n * Function to handle form submission.\n *\n * @param {UserEmailVerifyInputDto} data - The data to be submitted for email verification.\n */\n function onSubmit(data: UserEmailVerifyInputDto) {\n if (isSubmitDisabled) {\n onError();\n return;\n }\n\n verifyUserEmail(data);\n }\n\n /**\n * Function to handle fetching of user email.\n */\n function onFetchUserEmail() {\n if (!isSuccess || !userEmail || isSuccessUserEmailSendCode || !!emailId) {\n return;\n }\n\n if (userEmail.verified && !useMinimalForm) {\n onClose();\n return;\n }\n\n setValue('emailId' as Path, userEmail.id as PathValue>);\n }\n\n // Effect to fetch user email when dependencies change\n useEffect(onFetchUserEmail, [\n emailId,\n onClose,\n setValue,\n sendCode,\n userEmail,\n isSuccess,\n isSuccessUserEmailSendCode,\n useMinimalForm,\n ]);\n\n // Return the state and functions for managing the form\n return {\n onSubmit,\n isSkeleton,\n error,\n isPendingVerifyUserEmail,\n isPendingUserEmailSendCode,\n isPendingUserEmailById,\n handleError,\n onError,\n useUserEmailSendCodeQuery,\n isLoadingEmails,\n userEmailId,\n userEmail,\n isSubmitDisabled,\n submission: {\n verifyUserEmail,\n verifyUserEmailAsync,\n isLoading: isPendingVerifyUserEmail,\n },\n };\n}\n","export enum UserIdentitiesQueryKeys {\n Lookup = '/user-identities/lookup',\n Validate = '/user-identities/validate',\n}\n","import { Nullable } from '@starsoft/common/interfaces';\nimport { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserIdentitiesLookUpQueryKeyProps } from './props';\nimport { UserIdentity } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchUserIdentitiesLookup(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise> {\n const { identifier, originId } = queryKey[1];\n\n const response = await axiosInstance.get>(\n '/user-identities/lookup',\n {\n params: {\n identifier,\n originId,\n },\n },\n );\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserIdentitiesQueryKeys } from '../../queryKeys';\nimport {\n UseUserIdentitiesLookUpProps,\n UseUserIdentitiesLookUpQueryKeyProps,\n} from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { fetchUserIdentitiesLookup } from './service';\nimport { useMemo } from 'react';\nimport { FetchUserIdentitiesLookUpInputDto } from '@starsoft/common/dto';\nimport { GenericError, UserIdentity } from '@starsoft/common/models';\nimport { UserIdentityStatus } from '@starsoft/common/enums';\nimport { UserIdentityFormFields } from '../../../../enums/user-identity/form-fields';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to lookup and validate user identity information\n *\n * This hook handles fetching and validating user identity data based on an identifier and origin.\n * It uses React Query for data fetching, caching, and state management.\n * The hook also manages error states and provides a map of validation errors.\n *\n * @param {UseUserIdentitiesLookUpProps} options - Optional configuration object\n * @param {string} options.identifier - The identity identifier to lookup (e.g. tax ID, document number)\n * @param {string} options.originId - The origin/source of the identity\n * @param {boolean} options.enabled - Optional flag to enable/disable the query (defaults to true)\n *\n * @returns {Object} An object containing:\n * - data: The fetched user identity data or null\n * - isLoading: Boolean indicating if fetch is in progress (excluding idle state)\n * - isFetching: Boolean indicating if a fetch is in progress\n * - isError: Boolean indicating if an error occurred\n * - error: Any error that occurred during fetch\n * - refetch: Function to manually trigger a refetch\n * - errorFieldsMap: Map containing validation errors for specific form fields\n */\nexport function useUserIdentityLookUp(options?: UseUserIdentitiesLookUpProps) {\n const { identifier, originId, enabled = true } = options ?? {};\n\n const filter: FetchUserIdentitiesLookUpInputDto = {\n //@ts-ignore\n identifier: identifier?.replaceAll?.('-', '')?.replaceAll?.('.', ''),\n originId,\n };\n\n const queryKey: UseUserIdentitiesLookUpQueryKeyProps = [\n UserIdentitiesQueryKeys.Lookup,\n filter,\n ];\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const { data, isPending, isError, error, refetch, isFetching, fetchStatus } =\n useQuery<\n Nullable,\n AxiosError,\n Nullable,\n UseUserIdentitiesLookUpQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext =>\n fetchUserIdentitiesLookup(queryContext, axiosInstance),\n enabled: !!identifier && !!originId && enabled,\n staleTime: Infinity,\n retry: 0,\n });\n\n // Create and memoize a map of validation errors for form fields\n const errorFieldsMap: Map = useMemo(() => {\n const map: Map = new Map();\n\n if (!!data && data?.status === UserIdentityStatus.Invalid) {\n map.set(UserIdentityFormFields.TaxId, []);\n }\n\n return map;\n }, [data]);\n\n return {\n data,\n isLoading: isPending && fetchStatus !== 'idle',\n isFetching,\n isError,\n error,\n refetch,\n errorFieldsMap,\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserIdentitiesValidateQueryKeyProps } from './props';\nimport { UserIdentityValidationResultOutputDto } from '@starsoft/common/dto';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchUserIdentitiesValidate(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const { identifier, originId, birthDate, name } = queryKey[1];\n\n const response =\n await axiosInstance.get(\n '/user-identities/validate',\n {\n params: {\n identifier,\n originId,\n birthDate,\n name,\n },\n },\n );\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserIdentitiesQueryKeys } from '../../queryKeys';\nimport {\n UseUserIdentitiesValidateProps,\n UseUserIdentitiesValidateQueryKeyProps,\n} from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchUserIdentitiesValidate } from './service';\nimport { useMemo } from 'react';\nimport { groupBy } from '@starsoft/common/utils';\nimport {\n FetchUserIdentitiesValidateInputDto,\n UserIdentityValidationResultOutputDto,\n} from '@starsoft/common/dto';\nimport { GenericError } from '@starsoft/common/models';\nimport { UserIdentityFormFields } from '../../../../enums/user-identity/form-fields';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to validate user identity information\n *\n * This hook handles validating user identity data based on provided parameters like identifier,\n * origin, birth date and name. It uses React Query for data fetching and validation,\n * with built-in caching and state management.\n *\n * @param {UseUserIdentitiesValidateProps} options - Optional configuration object\n * @param {string} options.identifier - The identity identifier to validate (e.g. tax ID, document number)\n * @param {string} options.originId - The origin/source of the identity\n * @param {string} options.birthDate - The birth date to validate\n * @param {string} options.name - The name to validate\n * @param {boolean} options.enabled - Optional flag to enable/disable the query (defaults to true)\n *\n * @returns {Object} An object containing:\n * - data: The validation result data\n * - isLoading: Boolean indicating if validation is in progress (excluding idle state)\n * - isFetching: Boolean indicating if a fetch is in progress\n * - isError: Boolean indicating if an error occurred\n * - error: Any error that occurred during validation\n * - refetch: Function to manually trigger a revalidation\n * - errorFieldsMap: Map containing validation errors grouped by form fields\n */\nexport function useUserIdentitiesValidate(\n options?: UseUserIdentitiesValidateProps,\n) {\n const {\n identifier,\n originId,\n enabled = true,\n birthDate,\n name,\n } = options ?? {};\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Prepare filter object for validation request\n const filter: FetchUserIdentitiesValidateInputDto = {\n identifier,\n originId,\n birthDate,\n name,\n };\n\n const queryKey: UseUserIdentitiesValidateQueryKeyProps = [\n UserIdentitiesQueryKeys.Validate,\n filter,\n ];\n\n // Setup React Query hook for validation\n const { data, isPending, isError, error, refetch, isFetching, fetchStatus } =\n useQuery<\n UserIdentityValidationResultOutputDto,\n AxiosError,\n UserIdentityValidationResultOutputDto,\n UseUserIdentitiesValidateQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext =>\n fetchUserIdentitiesValidate(queryContext, axiosInstance),\n enabled: (!!identifier || !!birthDate || !!name) && !!originId && enabled,\n staleTime: Infinity,\n refetchOnReconnect: 'always',\n retry: 0,\n });\n\n // Group validation errors by form field for easier access\n const errorFieldsMap: Map = useMemo(\n () =>\n groupBy({\n records: data?.errors ?? [],\n key: 'field',\n valueKey: 'description',\n }),\n [data],\n );\n\n return {\n data,\n isLoading: isPending && fetchStatus !== 'idle',\n isFetching,\n isError,\n error,\n refetch,\n errorFieldsMap,\n };\n}\n","import {\n UseUserIdentityValidateByOriginIdProps,\n UseUserIdentityValidateByOriginIdReturnType,\n} from './props';\nimport { useUserIdentitiesValidate, useUserIdentityLookUp } from '../../../api';\nimport { KycIdentityOriginId } from '../../../enums';\n\n/**\n * Custom hook to validate user identity based on the origin ID.\n *\n * @template T - The type of the origin ID.\n * @param {UseUserIdentityValidateByOriginIdProps} props - The properties for the hook.\n * @param {T} props.originId - The origin ID for the user identity.\n * @param {object} props.payload - The payload containing user identity details.\n * @param {string} [props.payload.identifier] - The identifier for the user.\n * @param {string} [props.payload.birthDate] - The birth date of the user.\n * @param {string} [props.payload.name] - The name of the user.\n * @param {boolean} [props.enabled=true] - Flag to enable or disable the hook.\n *\n * @returns {UseUserIdentityValidateByOriginIdReturnType} - Returns the query result based on the origin ID.\n *\n * Example usage:\n * const result = useUserIdentityValidateByOriginId({\n * originId: 'Brazil',\n * payload: { identifier: '12345', birthDate: '1990-01-01', name: 'John Doe' },\n * enabled: true,\n * });\n */\nexport function useUserIdentityValidateByOriginId({\n originId,\n payload,\n enabled = true,\n}: UseUserIdentityValidateByOriginIdProps): UseUserIdentityValidateByOriginIdReturnType {\n // Destructure the payload to extract identifier, birthDate, and name\n const { identifier, birthDate, name } = payload ?? {};\n\n // Hook to look up user identity based on origin ID and identifier\n const userIdentityLookUpQuery = useUserIdentityLookUp({\n originId,\n identifier,\n enabled:\n originId?.toString() == KycIdentityOriginId.Brazil?.toString() && enabled,\n });\n\n // Hook to validate user identity based on identifier, origin ID, birthDate, and name\n const userIdentityValidateQuery = useUserIdentitiesValidate({\n identifier,\n originId: originId?.toString(),\n birthDate,\n name,\n enabled:\n originId?.toString() != KycIdentityOriginId.Brazil?.toString() && enabled,\n });\n\n // Determine which query result to return based on the origin ID\n switch (originId?.toString()) {\n case KycIdentityOriginId.Brazil?.toString():\n return userIdentityLookUpQuery as UseUserIdentityValidateByOriginIdReturnType;\n case KycIdentityOriginId.India?.toString():\n case KycIdentityOriginId.Argentina?.toString():\n case KycIdentityOriginId.Mexico?.toString():\n case KycIdentityOriginId.Indonesia?.toString():\n case KycIdentityOriginId.Peru?.toString():\n case KycIdentityOriginId.SouthAfrica?.toString():\n case KycIdentityOriginId.Singapore?.toString():\n case KycIdentityOriginId.Nigeria?.toString():\n return userIdentityValidateQuery as UseUserIdentityValidateByOriginIdReturnType;\n default:\n return userIdentityLookUpQuery as UseUserIdentityValidateByOriginIdReturnType;\n }\n}\n\nexport type {\n UseUserIdentityValidateByOriginIdProps,\n UseUserIdentityValidateByOriginIdReturnType,\n};\n","import { CoinID } from '@starsoft/common/enums';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { KycIdentityOriginId } from '../enums/kyc/identity/origin';\nimport { CoinIDType } from '../enums/coinId';\n\nexport namespace KycIdentityOriginNamespace {\n export function getIdentityOriginIdByCoinId(\n coinId: CoinIDType,\n ): Nullable {\n switch (coinId?.toString()) {\n case CoinID.BRL?.toString():\n return KycIdentityOriginId.Brazil?.toString();\n case CoinID.INR?.toString():\n return KycIdentityOriginId.India?.toString();\n case CoinID.MXN?.toString():\n return KycIdentityOriginId.Mexico?.toString();\n case CoinID.ARS?.toString():\n return KycIdentityOriginId.Argentina?.toString();\n case CoinID.IDR?.toString():\n return KycIdentityOriginId.Indonesia?.toString();\n case CoinID.PEN?.toString():\n return KycIdentityOriginId.Peru?.toString();\n case CoinID.ZAR?.toString():\n return KycIdentityOriginId.SouthAfrica?.toString();\n case CoinID.NGN?.toString():\n return KycIdentityOriginId.Nigeria?.toString();\n case CoinID.SGD?.toString():\n return KycIdentityOriginId.Singapore?.toString();\n\n default:\n return null;\n }\n }\n}\n","import { getCookie } from 'cookies-next';\nimport { Nullable } from '../../../interfaces';\nimport { KycIdentityOriginNamespace } from '../../../namespaces';\nimport { useCoallescedCoinId } from '../../coin/useCoallescedCoinId';\nimport { CoinIDType } from '@starsoft/common/enums/coinId';\nimport { CookiesKey } from '@starsoft/common/enums';\n\n/**\n * Custom hook to get the user origin ID based on the coin ID.\n *\n * @returns {Nullable} - The origin ID of the user, or null if not found.\n *\n * Example usage:\n * const originId = useUserOriginId();\n */\nexport function useUserOriginId(): Nullable {\n // Get the coin ID using the custom hook\n const { coinId } = useCoallescedCoinId();\n const externalOriginId = getCookie(CookiesKey.OriginId);\n\n // Get the origin ID based on the coin ID\n const originId: Nullable =\n KycIdentityOriginNamespace.getIdentityOriginIdByCoinId(\n coinId as CoinIDType,\n );\n\n // Return the origin ID\n return originId;\n}\n","import { UseCountriesByOriginIdProps } from './props';\nimport { useUserOriginId } from '../../user-identity/useUserOriginId';\nimport { useCountries } from '../../../api/countries/queries';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * Custom hook to fetch countries based on the user's origin ID.\n * This hook retrieves the user's origin ID and fetches the countries accordingly.\n *\n * @param {UseCountriesByOriginIdProps} [options] - Options to customize the query and filtering.\n * @param {string} [options.query] - Query string to filter the countries.\n * @param {boolean} [options.filterByOrigin=false] - Whether to filter countries by the user's origin ID.\n * @returns {Object} An object containing the fetched countries.\n *\n * @example\n * // Usage example:\n * const { countries } = useCountriesByOriginId({ query: 'Europe', filterByOrigin: true });\n */\nexport function useCountriesByOriginId(options?: UseCountriesByOriginIdProps) {\n const { query, filterByOrigin = false } = options ?? {};\n const originId: Nullable = useUserOriginId();\n\n return useCountries({\n originId: filterByOrigin ? originId : undefined,\n query: query ?? undefined,\n });\n}\n\nexport type { UseCountriesByOriginIdProps };\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UsePhoneNumberByIdQueryKey } from './props';\nimport { UserPhoneNumber } from '@starsoft/common/models';\n\nexport async function fetchPhoneNumberById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: number = queryKey[1];\n\n const response: AxiosResponse =\n await axiosInstance.get(`/user-phone-numbers/${id}`);\n\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserPhoneNumbersQueryKey } from '../../queryKey';\nimport { UsePhoneNumberByIdProps, UsePhoneNumberByIdQueryKey } from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { GenericError, UserPhoneNumber } from '@starsoft/common/models';\nimport { fetchPhoneNumberById } from './service';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch a specific phone number by ID\n *\n * This hook handles fetching a single phone number entry by its ID,\n * managing the query state using React Query's capabilities.\n * The data is considered fresh indefinitely (staleTime: Infinity)\n * and the query only runs when an ID is provided.\n *\n * @param {UsePhoneNumberByIdProps} props - The props object\n * @param {number} props.id - The ID of the phone number to fetch\n *\n * @returns {Object} An object containing:\n * - error: Any error that occurred during the fetch\n * - refetch: Function to manually trigger a refetch\n * - isSuccess: Boolean indicating if fetch was successful\n * - userPhoneNumber: The fetched phone number data\n * - isPending: Boolean indicating if fetch is in progress (excluding idle state)\n */\nexport function usePhoneNumberById({ id }: UsePhoneNumberByIdProps) {\n const queryKey: UsePhoneNumberByIdQueryKey = [\n UserPhoneNumbersQueryKey.ById,\n id as number,\n ];\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const { isPending, error, refetch, data, fetchStatus, isSuccess } = useQuery<\n UserPhoneNumber,\n AxiosError,\n UserPhoneNumber,\n UsePhoneNumberByIdQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchPhoneNumberById(queryContext, axiosInstance),\n staleTime: Infinity,\n enabled: !!id,\n });\n\n return {\n error,\n refetch,\n isSuccess,\n userPhoneNumber: data,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UserPhoneNumbersLookupQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport {\n UserPhoneNumberLookupOutputDto,\n UserPhoneNumbersInputDto,\n} from '@starsoft/common/dto';\n\nexport async function fetchPhoneNumbersLookup(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const params: UserPhoneNumbersInputDto = queryKey[1];\n\n const response: AxiosResponse =\n await axiosInstance.get(\n '/user-phone-numbers/lookup',\n {\n params,\n },\n );\n return response.data;\n}\n","import { GenericError } from '@starsoft/common/models';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport {\n UsePhoneNumbersLookupProps,\n UserPhoneNumbersLookupQueryKey,\n} from './props';\nimport { UserPhoneNumbersQueryKey } from '../../queryKey';\nimport { fetchPhoneNumbersLookup } from './service';\nimport { UserPhoneNumberLookupOutputDto } from '@starsoft/common/dto';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to lookup phone numbers based on country code and number\n *\n * This hook handles looking up phone numbers, managing the query state using React Query.\n * It cleans the phone number input by removing special characters and spaces before lookup.\n * The data is considered stale after 5 seconds.\n *\n * @param {UsePhoneNumbersLookupProps} props - The props object\n * @param {string} props.countryCode - The country code to lookup phone numbers for\n * @param {string} props.phoneNumber - The phone number to lookup\n * @param {boolean} [props.enabled=true] - Whether the query should be enabled\n *\n * @returns {Object} An object containing:\n * - error: Any error that occurred during the lookup\n * - refetch: Function to manually trigger a refetch\n * - isSuccess: Boolean indicating if lookup was successful\n * - fetchStatus: Current status of the fetch operation\n * - phoneNumbersLookup: The lookup results data\n * - isPending: Boolean indicating if lookup is in progress (excluding idle state)\n */\nexport function usePhoneNumbersLookup({\n countryCode,\n phoneNumber,\n enabled = true,\n}: UsePhoneNumbersLookupProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UserPhoneNumbersLookupQueryKey = [\n UserPhoneNumbersQueryKey.Lookup,\n {\n countryCode,\n phoneNumber: phoneNumber?.replace(/[()\\-\\s]/g, '')?.replace(' ', ''),\n },\n ];\n\n const { data, isPending, error, refetch, fetchStatus, isSuccess } = useQuery<\n UserPhoneNumberLookupOutputDto,\n AxiosError,\n UserPhoneNumberLookupOutputDto,\n UserPhoneNumbersLookupQueryKey\n >({\n queryKey,\n queryFn: queryContext =>\n fetchPhoneNumbersLookup(queryContext, axiosInstance),\n enabled: enabled && !!countryCode && !!phoneNumber,\n staleTime: 5 * 1000,\n });\n\n return {\n error,\n refetch,\n isSuccess,\n fetchStatus,\n phoneNumbersLookup: data,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","import { CreatePhoneNumberInputDto } from '@starsoft/common/dto';\nimport { UserPhoneNumber } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchCreatePhoneNumber(\n data: CreatePhoneNumberInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse =\n await axiosInstance.post('/user-phone-numbers', data);\n\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { UserPhoneNumbersQueryKey } from '../../queryKey';\nimport { fetchCreatePhoneNumber } from './service';\nimport { UseCreatePhoneNumberProps } from './props';\nimport { UserPhoneNumber } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { CreatePhoneNumberInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to create a new phone number for the user\n *\n * This hook handles creating a new phone number entry, managing the mutation state,\n * and handling side effects like cache invalidation after successful creation.\n * It uses React Query's mutation capabilities for state management.\n *\n * @param {UseCreatePhoneNumberProps} props - Optional configuration object\n * @param {Function} props.onSuccess - Optional callback function to execute on successful creation\n *\n * @returns {Object} An object containing:\n * - createPhoneNumber: Function to trigger the creation mutation\n * @param {CreatePhoneNumberInputDto} data - The phone number data to create\n * @returns {Promise} The created phone number entry\n * - isPending: Boolean indicating if mutation is in progress\n */\nexport function useCreatePhoneNumber(props?: UseCreatePhoneNumberProps) {\n const { onSuccess: customOnSuccess } = props ?? {};\n const queryClient: QueryClient = useQueryClient();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Handles side effects after successful phone number creation\n * - Invalidates phone numbers query to trigger refetch\n * - Executes custom success callback if provided\n *\n * @param {UserPhoneNumber} userPhoneNumber - The newly created phone number entry\n */\n function onSuccess(userPhoneNumber: UserPhoneNumber) {\n queryClient.invalidateQueries({\n queryKey: [UserPhoneNumbersQueryKey.Me],\n });\n if (customOnSuccess) {\n customOnSuccess(userPhoneNumber);\n }\n }\n\n const { mutate, isPending } = useMutation({\n mutationFn: (data: CreatePhoneNumberInputDto) =>\n fetchCreatePhoneNumber(data, axiosInstance),\n onSuccess,\n });\n\n return {\n createPhoneNumber: mutate,\n isPending,\n };\n}\n","import {\n UserPhoneNumberVerifyInputDto,\n UserPhoneNumberVerifyOutputDto,\n} from '@starsoft/common/dto';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchUserPhoneNumberVerify(\n data: UserPhoneNumberVerifyInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse =\n await axiosInstance.patch(\n '/user-phone-numbers/verify',\n data,\n );\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { UserPhoneNumbersQueryKey } from '../../queryKey';\nimport { fetchUserPhoneNumberVerify } from './service';\nimport { UseUserPhoneNumberVerifyProps } from './props';\nimport {\n UserPhoneNumberVerifyInputDto,\n UserPhoneNumberVerifyOutputDto,\n} from '@starsoft/common/dto';\nimport { KYCQueryKeys } from '@starsoft/common/api';\nimport { NotificationsService } from '@starsoft/common/services';\nimport { useNotificationService } from '@starsoft/common/hooks/useNotificationService';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\n\n/**\n * Custom hook to verify a user's phone number\n *\n * This hook handles verifying a phone number with a verification code, managing the mutation state,\n * and handling side effects like cache invalidation and success notifications after verification.\n * It uses React Query's mutation capabilities for state management.\n *\n * @param {UseUserPhoneNumberVerifyProps} props - Optional configuration object\n * @param {boolean} props.isCreating - Flag indicating if this verification is part of phone number creation\n *\n * @returns {Object} An object containing:\n * - verifyUserPhoneNumber: Function to trigger the verification mutation\n * @param {UserPhoneNumberVerifyInputDto} data - The verification data including code\n * @returns {Promise} The verification response\n * - isPending: Boolean indicating if verification is in progress\n */\nexport function useUserPhoneNumberVerify(\n props?: UseUserPhoneNumberVerifyProps,\n) {\n const { isCreating } = props ?? {};\n const queryClient: QueryClient = useQueryClient();\n const NotificationsService: NotificationsService =\n useNotificationService();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Handles side effects after successful phone number verification\n * - Invalidates phone numbers queries to trigger refetch\n * - Invalidates KYC status query\n * - Shows success notification with appropriate message\n *\n * @param {UserPhoneNumberVerifyOutputDto} userPhoneNumberOutput - The verification response data\n */\n function onSuccess(userPhoneNumberOutput: UserPhoneNumberVerifyOutputDto) {\n queryClient.invalidateQueries({\n queryKey: [UserPhoneNumbersQueryKey.Me],\n });\n queryClient.invalidateQueries({\n queryKey: [\n UserPhoneNumbersQueryKey.ById,\n userPhoneNumberOutput.phoneNumber.id,\n ],\n });\n queryClient.invalidateQueries({ queryKey: [KYCQueryKeys.Me] });\n NotificationsService.success({\n title: isCreating\n ? 'create_and_verify_phone_number_title'\n : 'verify_phone_number_title',\n message: isCreating\n ? 'create_and_verify_phone_number_description'\n : 'verify_phone_number_description',\n params: {\n phoneNumber: `${userPhoneNumberOutput.phoneNumber.country.dialCode} ${userPhoneNumberOutput.phoneNumber.maskedPhoneNumber}`,\n },\n });\n }\n\n const { mutate, isPending } = useMutation({\n mutationFn: (data: UserPhoneNumberVerifyInputDto) =>\n fetchUserPhoneNumberVerify(data, axiosInstance),\n onSuccess,\n });\n\n return {\n verifyUserPhoneNumber: mutate,\n isPending,\n };\n}\n","import { UseUserPhoneNumberFormProps } from './props';\nimport { useEffect, useMemo, useState } from 'react';\nimport { AxiosError } from 'axios';\n\nimport { useCurrentModal } from '../../modals/useCurrentModal';\nimport { useModal } from '../../modals';\nimport { CommonModalsKey } from '../../../enums';\nimport { useDebounce } from '../../useDebounce';\nimport { useCountriesByOriginId } from '../../countries';\nimport {\n useCreatePhoneNumber,\n usePhoneNumberById,\n usePhoneNumbersLookup,\n useSendUserPhoneNumberCode,\n useUserPhoneNumberVerify,\n} from '../../../api';\nimport { Either } from '../../../interfaces';\nimport {\n Country,\n GenericError,\n UserPhoneNumber,\n UserPhoneNumberFormProps,\n} from '../../../models';\nimport { useLottiePlayer } from '../../useLottiePlayer';\nimport { useSearchParams } from '../../useSearchParams';\nimport { useNavigate } from '../../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { Path, PathValue } from 'react-hook-form';\n\n/**\n * Custom hook to manage the user phone number form.\n * This hook provides functionalities to handle phone number creation, verification, and form state management.\n *\n * @template T - Type of the form values.\n * @param {UseUserPhoneNumberFormProps} props - Props to initialize the phone number form.\n * @param {Function} props.watch - Function to watch form values.\n * @param {Function} props.setValue - Function to set form values.\n * @param {boolean} [props.enabled=true] - Flag to indicate if the form is enabled.\n * @param {string} [props.countryQuery] - Query string to filter countries.\n * @returns {Object} An object containing various states and functions to manage the phone number form.\n *\n * @example\n * // Usage example:\n * const { onSubmit, isSubmitDisabled } = usePhoneNumberForm({\n * watch: formWatch,\n * setValue: formSetValue,\n * enabled: true,\n * countryQuery: 'Europe',\n * });\n *\n * // Call onSubmit with form values\n * onSubmit({\n * countryId: 1,\n * phoneNumber: '1234567890',\n * code: '1234',\n * phoneNumberId: '1',\n * });\n */\nexport function usePhoneNumberForm({\n watch,\n setValue,\n enabled = true,\n countryQuery,\n}: UseUserPhoneNumberFormProps) {\n // Get the current modal and modal functions\n const { onClose } = useModal(CommonModalsKey.UserPhoneNumber);\n const modal = useCurrentModal(CommonModalsKey);\n\n // Get search parameters and navigate function\n const search = useSearchParams();\n const navigate: NavigateFunction = useNavigate();\n\n // Determine if the flow is for phone number creation\n const isCreationFlow = search.get('flow') == 'create';\n const kycStep = search.get('kyc-checkpoint-id');\n\n // Watch form values\n const phoneNumber = watch('phoneNumber' as Path);\n const debouncedPhoneNumber = useDebounce(phoneNumber);\n const code = watch('code' as Path);\n const countryId = watch('countryId' as Path);\n const phoneNumberId = search.get('phone-number-id');\n //@ts-ignore\n const formCountry: Country = watch('country' as Path);\n\n // Fetch countries based on origin ID\n const countriesQuery = useCountriesByOriginId({\n filterByOrigin: !!kycStep,\n query: countryQuery,\n });\n const {\n countries,\n error: errorCountries,\n refetch: refetchCountries,\n isLoading: isLoadingCountries,\n } = countriesQuery;\n\n // Fetch user phone number by ID\n const {\n userPhoneNumber,\n error: errorPhoneNumber,\n refetch: refetchPhoneNumber,\n isPending: isLoadingPhoneNumber,\n } = usePhoneNumberById({\n id: phoneNumberId ? Number(phoneNumberId) : undefined,\n });\n\n // Determine if the user phone number has been created\n const hasCreatedUserPhoneNumber =\n !!phoneNumberId && userPhoneNumber?.verified == false;\n\n // State to manage the selected country\n const [country, setCountry] = useState>();\n const foundCountry: Either = useMemo(\n () => countries?.find(country => country?.id === countryId),\n [countries, countryId],\n );\n\n // Function to handle country change\n function onChangeCountry() {\n if (!foundCountry) {\n return;\n }\n\n setCountry(foundCountry);\n }\n\n // Effect to handle country change\n useEffect(onChangeCountry, [foundCountry]);\n\n // Send user phone number code\n const {\n sendUserPhoneNumberCode,\n isPending: isPendingSendUserPhoneNumberCode,\n } = useSendUserPhoneNumberCode();\n\n // Determine if the form is in skeleton loading state\n const isSkeleton: boolean =\n isLoadingCountries ??\n isLoadingPhoneNumber ??\n isPendingSendUserPhoneNumberCode;\n\n // Lookup phone numbers\n const {\n phoneNumbersLookup,\n isPending: isLoadingLookup,\n error: errorLookup,\n isSuccess,\n } = usePhoneNumbersLookup({\n enabled:\n !phoneNumberId &&\n typeof debouncedPhoneNumber === 'string' &&\n debouncedPhoneNumber.length >= 3 &&\n debouncedPhoneNumber.length <= 21,\n countryCode: country?.code ?? formCountry?.code,\n phoneNumber: debouncedPhoneNumber as string,\n });\n\n // Create phone number\n const { createPhoneNumber, isPending: isPendingCreatePhoneNumber } =\n useCreatePhoneNumber({\n onSuccess: (userPhoneNumber: UserPhoneNumber) => {\n setValue(\n 'phoneNumberId' as Path,\n userPhoneNumber.id as PathValue>,\n );\n handleUpdateUrlOnPhoneNumberCreation(userPhoneNumber);\n },\n });\n\n // Verify user phone number\n const { verifyUserPhoneNumber, isPending: isPendingVerifyUserPhoneNumber } =\n useUserPhoneNumberVerify({\n isCreating: isCreationFlow,\n });\n\n // Lottie animation reference\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/phoneNumber.json',\n dependecyArray: [isLoadingCountries, isLoadingPhoneNumber],\n });\n\n // Error state\n const error: AxiosError = errorCountries ?? errorPhoneNumber;\n\n // Determine if the submit button should be disabled\n const isSubmitDisabled =\n (!hasCreatedUserPhoneNumber &&\n (!phoneNumber ||\n !countryId ||\n !phoneNumbersLookup?.valid ||\n isLoadingLookup ||\n Boolean(errorLookup))) ||\n (hasCreatedUserPhoneNumber && (!code || (code as string)?.length < 4));\n\n // Function to set masked phone number\n function setMaskedPhoneNumber() {\n if (\n !isSuccess ||\n !phoneNumbersLookup ||\n !phoneNumbersLookup?.valid ||\n !phoneNumbersLookup?.maskedPhoneNumber\n ) {\n return;\n }\n\n setValue(\n 'phoneNumber' as Path,\n phoneNumbersLookup?.maskedPhoneNumber as PathValue>,\n );\n }\n\n // Effect to set masked phone number\n useEffect(setMaskedPhoneNumber, [isSuccess, phoneNumbersLookup, setValue]);\n\n // Determine if there is an error in phone number lookup\n const isErrorPhoneNumberLookUp: boolean =\n (!!phoneNumbersLookup && !phoneNumbersLookup?.valid && !isLoadingLookup) ||\n (debouncedPhoneNumber as string)?.length < 3 ||\n (debouncedPhoneNumber as string)?.length > 21;\n\n // Function to handle URL update on phone number creation\n function handleUpdateUrlOnPhoneNumberCreation(data: UserPhoneNumber) {\n search.set('phone-number-id', String(data?.id));\n search.set('flow', 'create');\n navigate({\n search: search?.toString(),\n hash: modal,\n });\n }\n\n // Function to handle form submission\n function onSubmit({\n countryId,\n phoneNumber,\n code,\n phoneNumberId,\n }: UserPhoneNumberFormProps) {\n if (isSubmitDisabled) {\n onError();\n return;\n }\n\n if (!hasCreatedUserPhoneNumber) {\n createPhoneNumber({ countryId, phoneNumber });\n return;\n }\n\n verifyUserPhoneNumber({ code, phoneNumberId });\n }\n\n // Function to handle form submission error\n function onError() {\n // NotificationsService.error({\n // title: 'form_error_title',\n // message: 'form_error_description',\n // });\n }\n\n // Function to refetch data\n function refetch() {\n if (errorCountries) refetchCountries();\n if (errorPhoneNumber) refetchPhoneNumber();\n }\n\n // Function to fetch phone number\n function onFetchPhoneNumber() {\n if (!userPhoneNumber || !enabled) return;\n\n if (userPhoneNumber.verified && modal === CommonModalsKey.UserPhoneNumber) {\n onClose();\n return;\n }\n\n setValue(\n 'phoneNumberId' as Path,\n userPhoneNumber.id as PathValue>,\n );\n setValue(\n 'phoneNumber' as Path,\n userPhoneNumber.maskedPhoneNumber as PathValue>,\n );\n setValue(\n 'countryId' as Path,\n userPhoneNumber.country.id as PathValue>,\n );\n setValue(\n 'country' as Path,\n userPhoneNumber?.country as PathValue>,\n );\n\n if (!isCreationFlow) {\n sendUserPhoneNumberCode({\n phoneNumberId: userPhoneNumber.id?.toString(),\n });\n setCountry(userPhoneNumber?.country);\n }\n }\n\n // Effect to fetch phone number\n useEffect(onFetchPhoneNumber, [\n userPhoneNumber,\n enabled,\n modal,\n isCreationFlow,\n onClose,\n setValue,\n sendUserPhoneNumberCode,\n ]);\n\n // Function to set country on mount\n function handleSetCountryOnMount() {\n if (!kycStep || !countries || countries?.length > 1 || !!userPhoneNumber) {\n return;\n }\n\n setValue(\n 'countryId' as Path,\n countries?.[0]?.id as PathValue>,\n );\n }\n\n // Effect to set country on mount\n useEffect(handleSetCountryOnMount, [\n kycStep,\n countries,\n userPhoneNumber,\n setValue,\n ]);\n\n return {\n hasCreatedUserPhoneNumber,\n isSubmitDisabled,\n isSkeleton,\n error,\n lottieAnimationRef,\n onSubmit,\n refetch,\n isPendingCreatePhoneNumber,\n isPendingVerifyUserPhoneNumber,\n onError,\n isCreationFlow,\n country: country ?? formCountry,\n countriesQuery: {\n ...countriesQuery,\n countries,\n errorCountries,\n refetchCountries,\n isLoadingCountries,\n },\n phoneNumber,\n isErrorPhoneNumberLookUp,\n };\n}\n\nexport type { UseUserPhoneNumberFormProps };\n","/* eslint-disable no-redeclare */\nimport { FieldPath, FieldValues } from 'react-hook-form';\nimport { GroupByProps } from './props';\nimport { get } from '@starsoft/common/utils';\n\nexport function groupBy>(\n props: GroupByProps,\n): Map;\nexport function groupBy<\n T extends FieldValues,\n K extends FieldPath,\n VK extends FieldPath,\n>(props: GroupByProps): Map;\nexport function groupBy<\n T extends FieldValues,\n K extends FieldPath,\n VK extends FieldPath,\n>({ key, records, valueKey }: GroupByProps): Map {\n const groupedRecords = new Map();\n\n for (const record of records) {\n const recordKeyValue: T[K] = get(record, key);\n\n if (!groupedRecords.has(recordKeyValue)) {\n groupedRecords.set(recordKeyValue, []);\n }\n\n const mapValue: T | T[VK] = valueKey ? get(record, valueKey) : record;\n\n groupedRecords.set(\n recordKeyValue,\n (groupedRecords.get(recordKeyValue) ?? []).concat(mapValue),\n );\n }\n\n return groupedRecords;\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__VMJLf\",\"container__label\":\"styles_container__label__xSOBK\",\"container__label--order-1\":\"styles_container__label--order-1__o5Kx3\",\"container__label--order-2\":\"styles_container__label--order-2__ZHNdq\",\"container__label--order-3\":\"styles_container__label--order-3__Lxcqb\",\"container--error\":\"styles_container--error__uyJdJ\",\"skeleton-animation\":\"styles_skeleton-animation__Ufpce\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cell\":\"styles_cell__uGkPf\",\"cell--current\":\"styles_cell--current__6eWws\",\"skeleton-animation\":\"styles_skeleton-animation__TryO0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__RsigR\",\"container--order-1\":\"styles_container--order-1__EweJf\",\"container--order-2\":\"styles_container--order-2__vczam\",\"container--order-3\":\"styles_container--order-3__ZJZez\",\"skeleton-animation\":\"styles_skeleton-animation__EMFrS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__CHR4Y\",\"container__content\":\"styles_container__content__wGVS_\",\"skeleton-animation\":\"styles_skeleton-animation__YZJCQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"styles_icon__x7BIR\",\"skeleton-animation\":\"styles_skeleton-animation__45oKK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__KuklY\",\"container__title\":\"styles_container__title__4_9sc\",\"container__description\":\"styles_container__description__NR6Bw\",\"skeleton-animation\":\"styles_skeleton-animation__n05QL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lottie--secondary\":\"styles_lottie--secondary__YH74w\",\"title--secondary\":\"styles_title--secondary__8hFyb\",\"description--secondary\":\"styles_description--secondary__NSIJx\",\"lottie--default\":\"styles_lottie--default__Pu7U4\",\"title--default\":\"styles_title--default__xm8et\",\"description--default\":\"styles_description--default__LTke7\",\"skeleton-animation\":\"styles_skeleton-animation__s6qL_\",\"lottie\":\"styles_lottie__sJ4dm\",\"title\":\"styles_title__gPe_1\",\"description\":\"styles_description__7npid\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__Wf5Zh\",\"container__lottie\":\"styles_container__lottie__bwnAx\",\"container__title\":\"styles_container__title__uFrNc\",\"container__description\":\"styles_container__description__Ln0SW\",\"container__row\":\"styles_container__row__Qyceq\",\"container__column\":\"styles_container__column__izIeZ\",\"container__column--small\":\"styles_container__column--small__6_6i_\",\"container__column--center\":\"styles_container__column--center__Y4TJf\",\"container__text\":\"styles_container__text__Uoekx\",\"container__divider\":\"styles_container__divider__Cr2tm\",\"container__input\":\"styles_container__input__H8KI1\",\"container__button\":\"styles_container__button__D87cd\",\"container__spacer\":\"styles_container__spacer__5FsQE\",\"skeleton-animation\":\"styles_skeleton-animation__S2mnI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lottie\":\"styles_lottie__ZxNGu\",\"title\":\"styles_title__b9BC3\",\"description\":\"styles_description__0hsnv\",\"skeleton-animation\":\"styles_skeleton-animation__TvekX\",\"description__container\":\"styles_description__container__OpkMw\",\"description--half\":\"styles_description--half__pbyZV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__FaQP8\",\"container__lottie\":\"styles_container__lottie__zLvYE\",\"container__wrapper\":\"styles_container__wrapper__fcXVd\",\"container__wrapper__title\":\"styles_container__wrapper__title__Z6n82\",\"container__wrapper__description\":\"styles_container__wrapper__description__ELnqj\",\"skeleton-animation\":\"styles_skeleton-animation__XCXxC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__TzP1M\",\"container__lottie\":\"styles_container__lottie__U9paL\",\"container__wrapper\":\"styles_container__wrapper__RO_77\",\"container__wrapper__title\":\"styles_container__wrapper__title__3rAj1\",\"container__wrapper__description\":\"styles_container__wrapper__description__hTqum\",\"skeleton-animation\":\"styles_skeleton-animation__RpVPQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__oe9ns\",\"container__content\":\"styles_container__content__bVivJ\",\"skeleton-animation\":\"styles_skeleton-animation__dBdlD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__eDCrz\",\"container__input\":\"styles_container__input__lUk6R\",\"skeleton-animation\":\"styles_skeleton-animation__VKE0e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"styles_input__OhwiS\",\"input--card-bg\":\"styles_input--card-bg__P_IYT\",\"input--disabled\":\"styles_input--disabled__av26o\",\"input--small\":\"styles_input--small__AzIj3\",\"input__image\":\"styles_input__image__xe_7V\",\"input__wrapper\":\"styles_input__wrapper__JMNbQ\",\"input__icon\":\"styles_input__icon__59Ob_\",\"input__icon--open\":\"styles_input__icon--open__LtQcJ\",\"input__image__wrapper\":\"styles_input__image__wrapper__g3do3\",\"input__pair\":\"styles_input__pair__wsxwL\",\"skeleton-animation\":\"styles_skeleton-animation__uR8_y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__TjT1E\",\"container--selected\":\"styles_container--selected__w__zb\",\"container__image\":\"styles_container__image__jm6N8\",\"container__label\":\"styles_container__label__vfASa\",\"skeleton-animation\":\"styles_skeleton-animation__iyXyu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__ixjSA\",\"container--selected\":\"styles_container--selected__Dw_aT\",\"container__image\":\"styles_container__image__LYBMD\",\"container__label\":\"styles_container__label__IiwOG\",\"skeleton-animation\":\"styles_skeleton-animation__ufQKb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"step__label__skeleton\":\"styles_step__label__skeleton__IY4XH\",\"step__indicator__skeleton\":\"styles_step__indicator__skeleton__xjbEI\",\"skeleton-animation\":\"styles_skeleton-animation__cUw9R\",\"step\":\"styles_step__IA1ze\",\"step--disabled\":\"styles_step--disabled__BsMA6\",\"step__indicator\":\"styles_step__indicator__3IkEC\",\"step__label\":\"styles_step__label__FgvD8\",\"step__indicator--disabled\":\"styles_step__indicator--disabled__A3Ew7\",\"step__indicator--active\":\"styles_step__indicator--active__9bt93\",\"step__label--active\":\"styles_step__label--active___dJuM\",\"step__divider\":\"styles_step__divider__ADvh8\",\"step__marker\":\"styles_step__marker__10geI\",\"step__marker--completed\":\"styles_step__marker--completed__6LzqG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__g4hhs\",\"skeleton-animation\":\"styles_skeleton-animation__JLXYo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__bE8cd\",\"container__content\":\"styles_container__content__kUFaL\",\"container__content__spacer\":\"styles_container__content__spacer__1qbP3\",\"container__content__lottie\":\"styles_container__content__lottie__WhzX_\",\"container__content__description\":\"styles_container__content__description__iNmft\",\"container__content__column\":\"styles_container__content__column__OGxAC\",\"container__button\":\"styles_container__button__oSs2T\",\"skeleton-animation\":\"styles_skeleton-animation__9d_x8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__WF9CK\",\"container__content\":\"styles_container__content__1ZN5U\",\"container__content__spacer\":\"styles_container__content__spacer__B8umR\",\"container__content__lottie\":\"styles_container__content__lottie__4O9je\",\"container__content__description\":\"styles_container__content__description__LYTyG\",\"container__content__column\":\"styles_container__content__column__kMN5a\",\"container__button\":\"styles_container__button__b9Wmv\",\"skeleton-animation\":\"styles_skeleton-animation__rMu49\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lottie-skeleton\":\"styles_lottie-skeleton__Y_8sC\",\"text-skeleton\":\"styles_text-skeleton__EfBsJ\",\"skeleton-animation\":\"styles_skeleton-animation__LcQkY\",\"text-column\":\"styles_text-column__kPUC4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__R1dW8\",\"skeleton-animation\":\"styles_skeleton-animation__B_wDj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__fcp4z\",\"container__content\":\"styles_container__content__hJDD7\",\"container__content__spacer\":\"styles_container__content__spacer__VMNPU\",\"container__content__lottie\":\"styles_container__content__lottie__BTt9s\",\"container__content__description\":\"styles_container__content__description__rCU1a\",\"container__content__column\":\"styles_container__content__column__BuSWo\",\"container__button\":\"styles_container__button__1uhtO\",\"skeleton-animation\":\"styles_skeleton-animation__ifNpB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__MqQNN\",\"skeleton-animation\":\"styles_skeleton-animation__g260_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lottie-skeleton\":\"styles_lottie-skeleton__Jr7gl\",\"text-skeleton\":\"styles_text-skeleton__8IOh_\",\"skeleton-animation\":\"styles_skeleton-animation__iZkmv\",\"text-column\":\"styles_text-column__WRpwz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__uynvQ\",\"skeleton-animation\":\"styles_skeleton-animation__wBE0Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__8oTco\",\"container__content\":\"styles_container__content__ZbvBv\",\"container__content__spacer\":\"styles_container__content__spacer__Jz2Dg\",\"container__content__lottie\":\"styles_container__content__lottie__XB39I\",\"container__content__description\":\"styles_container__content__description__yPsLV\",\"container__content__column\":\"styles_container__content__column__RfZoe\",\"container__button\":\"styles_container__button__WPUqf\",\"container__row\":\"styles_container__row__iXYtx\",\"skeleton-animation\":\"styles_skeleton-animation__v_BDc\"};"],"names":["fetchCountries","param","axiosInstance","queryKey","pageParam","limit","query","originId","response","get","params","page","data","useCountries","options","enabled","useAxiosInstance","CountriesQueryKeys","Countries","getNextPageParam","getPreviousPageParam","useInfiniteQueryCallbacks","useInfiniteQueryReset","isFetching","hasNextPage","error","fetchNextPage","infiniteQuery","useInfiniteQuery","queryFn","queryContext","initialPageParam","countries","useMemo","pages","flatMap","fetchSendCode","post","useUserEmailSendCode","isPending","mutate","isSuccess","useMutation","mutationFn","sendCode","fetchVerifyUserEmail","patch","useVerifyUserEmail","queryClient","useQueryClient","onClose","useModal","CommonModalsKey","UserEmail","NotificationsService","useNotificationService","mutateAsync","onSuccess","_","invalidateQueries","UserEmailsQueryKeys","Me","MeById","emailId","success","title","message","verifyUserEmail","verifyUserEmailAsync","fetchUserEmailMeById","id","concat","useUserEmailMeById","refetch","fetchStatus","useQuery","staleTime","userEmail","fetchSendUserPhoneNumberCode","useSendUserPhoneNumberCode","sendUserPhoneNumberCode","UserPhoneNumbersQueryKey","fetchWalletsMe","WalletsQueryKeys","useWalletsMe","refetchOnMount","refetchOnWindowFocus","isRefetching","AuthService","isAuthorized","Infinity","isLoading","wallet","Language","transition","duration","ease","slideIn","hidden","y","pointerEvents","visible","useCustomDatePicker","date","initialDate","callback","isDateModified","setIsDateModified","useState","setDate","Date","useEffect","month","getMonth","year","getFullYear","day","getUTCDate","getMaxDaysForMonth","useCallback","getDate","daysInMonth","months","Array","from","length","i","years","currentYear","yearIndex","findIndex","updateDay","prev","updatedDate","newDay","toISOString","updateMonth","maxDays","newMonth","adjustedDay","Math","min","updateYear","newYear","days","map","index","current","Cell","memo","value","isCurrent","style","type","t","useTranslation","label","getDatePickerOptionLabel","Number","jsx_runtime","jsx","div","className","styles","dateFormatMapping","Map","Portuguese","Spanish","French","English","Chinese","Russian","Dutch","Indonesian","DatePickerMobileSelectorColumn","content","onSelectedItem","currentIndex","lang","formatMapping","containerRef","getItemStyle","onMouseDown","onTouchStart","useScrollEffect","itemHeight","totalItems","useRef","previousYRef","offsetRef","position","setPosition","dragging","setDragging","snapping","setSnapping","snapToClosest","finalPosition","max","round","newIndex","abs","onDragStart","clientY","event","touches","onDragMove","moveOffset","maxPosition","onDragEnd","window","addEventListener","removeEventListener","offset","willChange","transform","scale","opacity","Cells","DatePickerMobileSelectorColumnCell","ref","DatePickerMobileSelector","toggleOpen","placeholder","props","toString","onChange","showSpinner","useClickOutside","onClickOutside","open","jsxs","motion","variants","initial","animate","exit","ModalHeader","DatePickerMobile","disabled","readOnly","useToggle","React","Input","hasPaddingRight","customIcon","baseStyles","onClick","undefined","e","target","Intl","DateTimeFormat","timeZone","format","String","hideLock","AnimatePresence","mode","isError","errorMessage","isArray","span","DatePickerDesktop","isContainerColor","isMaxHeight","useMediaQuery","Fragment","FormGroup","SelectInput","getOptionLabel","opt","getOptionValue","cardBg","popLayout","invertOptionsPosition","setValue","DatePicker","useIsMobile","GenderQueryKeys","fetchGenders","useUserIdentityLookUpHandler","KycIdentityOriginId","useUserOriginId","methods","readonly","isSkeleton","externalOriginId","watch","identifier","name","birthDate","debouncedIdentifier","useDebounce","debouncedName","debouncedBirthDate","payload","useUserIdentityValidateByOriginIdQuery","useUserIdentityValidateByOriginId","Brazil","maskedIdentifier","localDate","getTime","slice","genderId","shouldDirty","isValidLookup","status","UserIdentityStatus","Valid","valid","collapseIn","KycUserIdentityFormPersolanIdentityLookUpNameInputs","dirtyFields","useFormContext","register","formState","errorFieldsMap","loading","secondary","firstName","lastName","India","Argentina","Mexico","Indonesia","Peru","SouthAfrica","Nigeria","Singapore","has","UserIdentityFormFields","Name","identity","UserIdentitiesFormContentPersonalIdentityLookUp","minimalForm","birthdate","useKycMeByOriginIdQuery","kyc","useKycInformationHandler","externalEnabled","genders","gendersError","refetchGenders","isPendingGenders","useGenders","setPage","Primary","callbacks","usePaginatedQuery","getTaxIdNameByOriginId","origin","gender","TaxId","rightIcon","Collapse","in","option","BirthDate","KycUserIdentityNoKycToSelectedCoin","lottieAnimationRef","useLottiePlayer","path","UserIdentityFormRendererLayout","children","coinId","useCoallescedCoinId","useForm","useKycMeByOriginIdWithOrigin","handleSubmit","reset","handleKycSubmission","isLoadingKycSubmission","useKycFormSubmission","hasKycCheckInCurrentIdentity","useKycNavigation","identityId","ErrorCard","FormProvider","Button","skeletonDefault","form","onSubmit","isloading","KYCUserIdentityFormContentSteps","kycCheckpointId","currentStepIndex","handleSetKycStep","parsedSteps","kycMeByOriginIdQuery","currentCheckpoint","Steps","currentStep","i18nWorkspace","blockFurtherSteps","KycCheckpointStatus","Verified","onStepClick","UserIdentitiesFormContentSkeleton","skeleton","UserIdentityFormContentPersonalIdentityLookUp","KYCUserIdentityFormContentPhoneNumberLookUp","UserPhoneNumberFormRenderer","useMinimalForm","isKycFlow","fetchCreateKycFaceRecognition","KYCUserIdentityFormContentDocumentSubmission","createKycFaceRecognitionAsync","useCreateKycFaceRecognition","createKycFaceRecognition","callbackUrl","setCallbackUrl","userOriginId","createUrl","url","UserEmailFormVerify","ValidateCodeInput","ResendCodeButton","UserPhoneNumberFormVerifySkeleton","UserEmailFormSkeleton","skeletonStyles","UserEmailForm","isPendingVerifyUserEmail","handleError","isLoadingEmails","isSubmitDisabled","useUserEmailsForm","dependecyArray","p","TransTextWithDefault","text","email","UserEmailFormLayout","onError","UserEmailFormRenderer","KYCUserIdentityFormContentRenderer","KycCheckpointId","isValidKycCheckpointId","VerifiedPhoneNumber","DocumentSubmission","VerifiedEmail","UseEmailForm","VerifiedTaxId","Identity","UserIdentitiesFormContent","lottie","description","h2","KYCUserIdentityFormKycSuccessSkeleton","KYCUserIdentityFormKycSuccess","buttonLabel","UserIdentityFormRenderer","usePartialForm","kycSuccessProps","showSuccess","UserIdentityForm","PasswordInput","isDirty","password","isTouched","tCommon","passwordStrength","setPasswordStrength","isPasswordEmpty","isValidPasswordLength","isValidPassword","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","registerOptions","required","newPassword","zxcvbn","icon","BarPasswordStrong","forceScore","score","SelectInputWithImage","handleOpen","isWithoutChevron","image","isSmall","pairImage","Image","width","height","src","alt","secondarySkeleton","dangerouslySetInnerHTML","__html","SelectOptionWithHighlight","selected","handleSelect","strong","SelectOptionWithImage","Steps_Step","isCompleted","handleMouseDown","handleMouseLeave","handleMouseUp","handleMouseMove","useCustomCarousel","MemorizedSteps","Step","isLastItem","onMouseUp","onMouseMove","onMouseLeave","UserPhoneNumberFormSkeleton","phoneNumberId","search","useSearchParams","UserPhoneNumberFormLayout","hasCreatedUserPhoneNumber","isPendingVerifyUserPhoneNumber","country","isPendingCreatePhoneNumber","phoneNumber","usePhoneNumberForm","dialCode","CountryCodeSelector","setQuery","debouncedQuery","isVerified","KYCStatus","countriesQuery","isFetchingNextPage","countryQuery","onSearchChange","loadMore","ErrorChip","action","AutocompleteMenuSelector","filterBy","isAsync","isSmallerDrawer","loadingMore","customComponents","customOption","SettingsService","env","S3_BUCKET_BASE_URL","customInput","PhoneNumberInput","touchedFields","isErrorPhoneNumberLookUp","debouncedPhoneNumber","replace","UserPhoneNumberFormCreate","UserPhoneNumberFormVerify","UserPhoneNumberFormLayoutRenderer","AddressVerification","ProofOfResidence","ProofOfIncome","CriminalRecordCheck","searchCoinId","BigInt","currentAccount","coin","fetchCreateKyc","fetchUpdateKycIdentity","prefetchKycMeByOriginId","instance","KYCQueryKeys","prefetchQuery","fetchKycMeByOriginId","getQueryState","createKycAsync","pendingCreateKycAsync","useCreateKyc","externalOnSuccess","createKyc","pendingUpdateKycAsync","updateKycIdentityAsync","useUpdateKycIdentity","updateKycIdentity","createOrVerifyPhoneNumber","userEmailId","submission","handleCreateKyc","input","createdKyc","stage","checkpoint","handleUpdateKyc","updatedKyc","handleGetUpdatedKyc","getComposedKycSubmissionInput","kycInput","Created","code","err","console","getTitle","useKycMeByOriginId","kycCheckpointIdSearch","_ref1","navigate","useNavigate","modal","useCurrentModal","identityOrigin","parseToBigInt","checkpoints","tracking","some","isLastStep","handleNextKycStep","set","hash","handleSetKycAndStepSearchParams","depositStep","handleKycDepositStep","handleSetKycAndDepositStep","delay","debouncedValue","setDebouncedValue","timer","setTimeout","clearTimeout","state","useSettingsStore","settings","useNextNavigate","useUserEmailSendCodeQuery","isPendingUserEmailSendCode","isSuccessUserEmailSendCode","isPendingUserEmailById","errorUserEmailById","find","primary","errorEmails","refetchEmails","useUserEmails","verified","UserIdentitiesQueryKeys","fetchUserIdentitiesLookup","fetchUserIdentitiesValidate","userIdentityLookUpQuery","useUserIdentityLookUp","filter","replaceAll","Lookup","retry","Invalid","userIdentityValidateQuery","useUserIdentitiesValidate","Validate","refetchOnReconnect","groupBy","records","errors","key","valueKey","KycIdentityOriginNamespace","getIdentityOriginIdByCoinId","CoinID","BRL","INR","MXN","ARS","IDR","PEN","ZAR","NGN","SGD","getCookie","CookiesKey","OriginId","fetchPhoneNumberById","fetchPhoneNumbersLookup","fetchCreatePhoneNumber","fetchUserPhoneNumberVerify","isLoadingCountries","UserPhoneNumber","isCreationFlow","kycStep","countryId","formCountry","useCountriesByOriginId","filterByOrigin","errorCountries","refetchCountries","userPhoneNumber","errorPhoneNumber","refetchPhoneNumber","isLoadingPhoneNumber","usePhoneNumberById","ById","setCountry","foundCountry","isPendingSendUserPhoneNumberCode","phoneNumbersLookup","isLoadingLookup","errorLookup","usePhoneNumbersLookup","countryCode","createPhoneNumber","useCreatePhoneNumber","customOnSuccess","verifyUserPhoneNumber","useUserPhoneNumberVerify","isCreating","userPhoneNumberOutput","maskedPhoneNumber","Boolean","groupedRecords","record","recordKeyValue","mapValue","module","exports"],"sourceRoot":""}