{"version":3,"file":"static/chunks/10283.e73212162dce2251.js","mappings":"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AAA,EAAkB,kKCAlBD,EAAAC,OAAA,EAAkB,8JCAlBD,EAAAC,OAAA,EAAkB,wGCAlBD,EAAAC,OAAA,EAAkB,skBCAlBD,EAAAC,OAAA,EAAkB,0ICAlBD,EAAAC,OAAA,EAAkB,gJCAlBD,EAAAC,OAAA,EAAkB,0LCAlBD,EAAAC,OAAA,EAAkB,giBCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,oGCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,gJCAlBD,EAAAC,OAAA,EAAkB,kOCAlBD,EAAAC,OAAA,EAAkB,8jBCAlBD,EAAAC,OAAA,EAAkB,kUCAlBD,EAAAC,OAAA,EAAkB,wcCAlBD,EAAAC,OAAA,EAAkB,kSCAlBD,EAAAC,OAAA,EAAkB,8WCAlBD,EAAAC,OAAA,EAAkB,sVCAlBD,EAAAC,OAAA,EAAkB,8RCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,kPCAlBD,EAAAC,OAAA,EAAkB,kNCAlBD,EAAAC,OAAA,EAAkB,kKCAlBD,EAAAC,OAAA,EAAkB,0cCAlBD,EAAAC,OAAA,EAAkB,oQCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,gJCAlBD,EAAAC,OAAA,EAAkB,8JCAlBD,EAAAC,OAAA,EAAkB,2JCAlBD,EAAAC,OAAA,EAAkB,stBCAlBD,EAAAC,OAAA,EAAkB,0TCAlBD,EAAAC,OAAA,EAAkB,8OCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,gqBCAlBD,EAAAC,OAAA,EAAkB,6GCAlBD,EAAAC,OAAA,EAAkB,8QCAlBD,EAAAC,OAAA,EAAkB,8qBCAlBD,EAAAC,OAAA,EAAkB,sTCAlBD,EAAAC,OAAA,EAAkB,8KCAlBD,EAAAC,OAAA,EAAkB,mICAlBD,EAAAC,OAAA,EAAkB,wTCAlBD,EAAAC,OAAA,EAAkB,kOCAlBD,EAAAC,OAAA,EAAkB,sKCAlBD,EAAAC,OAAA,EAAkB,8GCAlBD,EAAAC,OAAA,EAAkB,+GCAlBD,EAAAC,OAAA,EAAkB,wGCAlBD,EAAAC,OAAA,EAAkB,klBCAlBD,EAAAC,OAAA,EAAkB,0PCAlBD,EAAAC,OAAA,EAAkB,6qBCAlBD,EAAAC,OAAA,EAAkB,sVCAlBD,EAAAC,OAAA,EAAkB,kICAlBD,EAAAC,OAAA,EAAkB,0pCCAlBD,EAAAC,OAAA,EAAkB,kKCAlBD,EAAAC,OAAA,EAAkB,o7BCAlBD,EAAAC,OAAA,EAAkB,8oBCAlBD,EAAAC,OAAA,EAAkB,gHCAlBD,EAAAC,OAAA,EAAkB,qVCAlBD,EAAAC,OAAA,EAAkB","sources":["webpack://_N_E/../../packages/common/src/api/account/queries/useAccountByCoin/service.ts","webpack://_N_E/../../packages/common/src/api/account/queries/useAccountByCoin/index.ts","webpack://_N_E/../../packages/common/src/api/coins/queries/useCoinById/service.ts","webpack://_N_E/../../packages/common/src/api/coins/queries/useCoinById/index.ts","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/Skeleton/styles.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorCoinWithImage/index.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorOptionWithImage/styles.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorOptionWithImage/index.tsx","webpack://_N_E/../../packages/common/src/components/Checkbox/index.tsx","webpack://_N_E/../../packages/common/src/components/CircularProgress/index.ts","webpack://_N_E/../../packages/common/src/components/Copy/index.tsx","webpack://_N_E/../../packages/common/src/components/Counter/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Counter/index.tsx","webpack://_N_E/../../packages/common/src/enums/dateGroup.ts","webpack://_N_E/../../packages/common/src/components/DateRangeCard/DateGroup/index.tsx","webpack://_N_E/../../packages/common/src/components/DateRangeCard/index.tsx","webpack://_N_E/../../packages/common/src/components/Link/index.tsx","webpack://_N_E/../../packages/common/src/components/Navigate/index.tsx","webpack://_N_E/../../packages/common/src/components/NavigationBreadcrumbs/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/NavigationBreadcrumbs/index.tsx","webpack://_N_E/../../packages/common/src/components/PageDrawer/variants.ts","webpack://_N_E/../../packages/common/src/components/PageDrawer/index.tsx","webpack://_N_E/../../packages/common/src/components/PaginationWithProgress/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/PaginationWithProgress/index.tsx","webpack://_N_E/../../packages/common/src/components/PieChart/Tooltip/styles.ts","webpack://_N_E/../../packages/common/src/components/PieChart/Tooltip/index.tsx","webpack://_N_E/../../packages/common/src/components/PieChart/styles.ts","webpack://_N_E/../../packages/common/src/components/PieChart/label.tsx","webpack://_N_E/../../packages/common/src/components/PieChart/index.tsx","webpack://_N_E/../../packages/common/src/components/Portal/index.tsx","webpack://_N_E/../../packages/common/src/components/PreloadImages/index.tsx","webpack://_N_E/../../packages/common/src/components/Progress/index.tsx","webpack://_N_E/../../packages/common/src/components/RichTooltip/index.tsx","webpack://_N_E/../../packages/common/src/components/Section/index.tsx","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectInputWithImage/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Slider/Content/Stepper/index.tsx","webpack://_N_E/../../packages/common/src/components/Slider/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Slider/LoadMore/index.tsx","webpack://_N_E/../../packages/common/src/components/Slider/index.tsx","webpack://_N_E/../../packages/common/src/components/Switch/index.tsx","webpack://_N_E/../../packages/common/src/components/TableWithPagination/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/SeeDeposit/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/SeeWithdrawal/index.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/styles.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/index.tsx","webpack://_N_E/../../packages/common/src/utils/color/index.ts","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/ChainOption/index.tsx","webpack://_N_E/../../packages/common/src/components/BarChart/Tooltip/styles.ts","webpack://_N_E/../../packages/common/src/components/BarChart/Tooltip/index.tsx","webpack://_N_E/../../packages/common/src/components/BarChart/index.tsx","webpack://_N_E/../../packages/common/src/components/CoinPicker/styles.tsx","webpack://_N_E/../../packages/common/src/components/CoinPicker/index.tsx","webpack://_N_E/../../packages/common/src/components/CountrySelector/index.tsx","webpack://_N_E/../../packages/common/src/components/CurrencyInput/index.tsx","webpack://_N_E/../../packages/common/src/components/InfinityScrollLoader/styles.ts","webpack://_N_E/../../packages/common/src/components/InfinityScrollLoader/index.tsx","webpack://_N_E/../../packages/common/src/components/Info/index.tsx","webpack://_N_E/../../packages/common/src/components/ToggleRender/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Header/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Tabs/options.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Tabs/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Footer/variants.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/Fee/Loader/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/Fee/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawal-methods/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/withdrawal-methods/queries/useWithdrawalMethodById/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawal-methods/queries/useWithdrawalMethodById/index.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawSearchParams/props.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawSearchParams/index.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useSelectedWithdrawalMethod/index.ts","webpack://_N_E/../../packages/common/src/enums/withdraw-method/id/index.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useFee/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useFee/index.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useTokenLookup/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useTokenLookup/index.ts","webpack://_N_E/../../packages/common/src/api/withdrawal-methods/queries/useWithdrawalMethods/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawal-methods/queries/useWithdrawalMethods/index.ts","webpack://_N_E/../../packages/common/src/utils/account/isValidChain.ts","webpack://_N_E/../../packages/common/src/hooks/wallet/useWalletAccountsByCoinType/index.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawForm.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/Fee/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Footer/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Footer/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/variants.ts","webpack://_N_E/../../packages/common/src/hooks/deposit/useDepositSearchParams/index.ts","webpack://_N_E/../../packages/common/src/enums/deposit-method/id/index.ts","webpack://_N_E/../../packages/common/src/api/deposit-methods/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/deposit-methods/queries/useDepositsMethods/service.ts","webpack://_N_E/../../packages/common/src/api/deposit-methods/queries/useDepositsMethods/index.ts","webpack://_N_E/../../packages/common/src/hooks/deposit/useDepositForm.ts","webpack://_N_E/../../packages/common/src/hooks/deposit/useDepositFormState/index.tsx","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositBetterBro/service.ts","webpack://_N_E/../../packages/common/src/hooks/deposit/useDepositCallback.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositBetterBro/index.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositPixToPay/service.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositPixToPay/index.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositPayGames/service.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDepositPayGames/index.ts","webpack://_N_E/../../packages/common/src/api/deposit/mutations/useDeposit/index.tsx","webpack://_N_E/../../packages/common/src/hooks/useTransactionsTabNavigation/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/CoinSelect/index.tsx","webpack://_N_E/../../packages/common/src/hooks/useFormattedCryptoAddress/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/CopyAddress/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Content/Crypto/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/AmountInput/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/MethodCard/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/MethodCard/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/DepositMethods/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/ValueSelector/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/ThirdPartyAlert/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/QrCodeResponse/Pending/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Details/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Layout/variants.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/helper.ts","webpack://_N_E/../../packages/common/src/api/deposit/queries/useDepositById/service.ts","webpack://_N_E/../../packages/common/src/api/deposit/queries/useDepositById/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useWithdrawalById/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/queries/useWithdrawalById/index.tsx","webpack://_N_E/../../packages/common/src/hooks/transactions/useTransactionById/index.ts","webpack://_N_E/../../packages/common/src/hooks/transactions/useNodesFromTransactions/props.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/Node/helper.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/Node/index.tsx","webpack://_N_E/../../packages/common/src/hooks/transactions/useNodesFromTransactions/helper.tsx","webpack://_N_E/../../packages/common/src/hooks/transactions/useNodesFromTransactions/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Header/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Header/index.tsx","webpack://_N_E/../../packages/common/src/components/Notification/Coin/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Actions/Row/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Actions/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Details/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/PaymentExperience/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Actions/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/Step/props.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/Step/helper.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/Step/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/ExpiresAt/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Result/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/QrCodeResponse/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/ExternalRedirect/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/index.tsx","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawFormState/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/Content/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/enums/user-payment-details/type/id/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/Content/helper.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawalCoinBySearchParamId/index.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsById/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsById/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateCryptoWithdraw/service.ts","webpack://_N_E/../../packages/common/src/enums/redirectError.ts","webpack://_N_E/../../packages/common/src/hooks/react-query/useQueryDefaults/index.ts","webpack://_N_E/../../packages/common/src/hooks/withdraw/useWithdrawCallbacks.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateCryptoWithdraw/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawBetterBro/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawBetterBro/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawPixToPay/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawPixToPay/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawPayGames/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useCreateWithdrawPayGames/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useWithdraw/index.tsx","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useSendWithdrawalCode/service.ts","webpack://_N_E/../../packages/common/src/api/withdrawals/mutations/useSendWithdrawalCode/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Layout/variants.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Layout/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useCreateUserPaymentDetails/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useCreateUserPaymentDetails/index.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useUpdateUserPaymentDetails/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useUpdateUserPaymentDetails/index.ts","webpack://_N_E/../../packages/common/src/namespaces/userPaymentDetails.ts","webpack://_N_E/../../packages/common/src/hooks/userPaymentDetails/useUserPaymentTypeIdByCoinId/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/Status/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/index.tsx","webpack://_N_E/../../packages/common/src/enums/user-payment-details/form-fields/index.ts","webpack://_N_E/../../packages/common/src/hooks/userPaymentDetails/useCoallescedUserPaymentTypeId/index.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useValidateUserPaymentDetails/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/mutations/useValidateUserPaymentDetails/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/Pix/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/Imps/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/Common/BankDetails/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/MexicanBankAccount/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/ArgentineBankAccount/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/NigerianBankAccount/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/index.tsx","webpack://_N_E/../../packages/common/src/api/banks/queryKeys.ts","webpack://_N_E/../../packages/common/src/api/banks/queries/useBanks/service.ts","webpack://_N_E/../../packages/common/src/api/banks/queries/useBanks/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/NigerianBankAccount/Select/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/ChainInput/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Content/Crypto/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/AmountInput/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/WithdrawalMethods/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/CoinSelect/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/NoMethodsAvailable/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Response/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Response/index.tsx","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Card/Indicator/index.tsx","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Card/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Card/index.tsx","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Emails/index.tsx","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Confirmation/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/ConfirmationCode/index.tsx","webpack://_N_E/../../packages/common/src/enums/user-payment-details/status/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Indicator/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Status/helper.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Status/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/KycCheck/Skeleton/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/KycCheck/index.tsx","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsMe/useUserPaymentDetailsMeDefault/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsMe/useUserPaymentDetailsMeDefault/index.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsMe/useUserPaymentDetailsMeInfinity/service.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsMe/useUserPaymentDetailsMeInfinity/index.ts","webpack://_N_E/../../packages/common/src/api/user-payment-details/queries/useUserPaymentDetailsMe/index.ts","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/index.tsx","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/index.tsx","webpack://_N_E/../../packages/common/src/components/UserPhoneNumbers/Modals/UserPhoneNumberModal/index.tsx","webpack://_N_E/../../packages/common/src/components/index.ts","webpack://_N_E/../../packages/common/src/hooks/useTimeAgo/index.ts","webpack://_N_E/../../packages/common/src/hooks/useTransacionsNavigation/index.tsx","webpack://_N_E/../../packages/common/src/models/deposit/status/id/index.ts","webpack://_N_E/../../packages/common/src/models/withdraw/status/id/index.ts","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorCoinWithImage/styles.module.scss","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/ChainInput/styles.module.scss","webpack://_N_E/../../packages/common/src/components/AutocompleteMenuSelector/CustomOptions/ChainOption/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Checkbox/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Card/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Card/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/Emails/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Confirmation/MethodSelect/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Copy/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Counter/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Counter/styles.module.scss","webpack://_N_E/../../packages/common/src/components/CurrencyInput/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DateRangeCard/DateGroup/styles.module.scss","webpack://_N_E/../../packages/common/src/components/DateRangeCard/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Info/styles.module.scss","webpack://_N_E/../../packages/common/src/components/NavigationBreadcrumbs/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/NavigationBreadcrumbs/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Notification/Coin/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PageDrawer/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PaginationWithProgress/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/PaginationWithProgress/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Progress/styles.module.scss","webpack://_N_E/../../packages/common/src/components/RichTooltip/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Section/styles.module.scss","webpack://_N_E/../../packages/common/src/components/SelectInput/SelectWithImage/SelectInputWithImage/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Slider/Content/Stepper/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Slider/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Slider/LoadMore/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Slider/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Switch/styles.module.scss","webpack://_N_E/../../packages/common/src/components/TableWithPagination/styles.module.scss","webpack://_N_E/../../packages/common/src/components/ToggleRender/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/MethodCard/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/MethodCard/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Content/TransactionMethods/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/CopyAddress/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Footer/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Footer/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/Tabs/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/Status/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Card/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/ArgentineBankAccount/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/Common/BankDetails/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/MexicanBankAccount/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/Fields/BankAccount/Details/NigerianBankAccount/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/Status/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/UserKycCard/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/Form/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/KycCheck/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/KycCheck/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Layout/UserPaymentDetails/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/Node/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Board/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Actions/Row/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Actions/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Header/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/Header/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Content/Details/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/Mapping/Modal/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Common/ThirdPartyAlert/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/AmountInput/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Content/Crypto/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/ValueSelector/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Form/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/ExternalRedirect/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/QrCodeResponse/Pending/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Content/Response/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Deposit/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/AmountInput/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Content/Crypto/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/Fee/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/Fee/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/NoMethodsAvailable/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Form/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Response/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Content/Response/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/Content/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/Content/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/SecurityDrawer/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Modals/Withdraw/Layout/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Actions/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Details/Skeleton/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Details/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/ExpiresAt/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/PaymentExperience/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/Step/style.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/Stepper/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/Trail/styles.module.scss","webpack://_N_E/../../packages/common/src/components/Transactions/Result/styles.module.scss"],"sourcesContent":["import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseAccountByCoinQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { AccountByCoinInputDto } from '@starsoft/common/dto';\nimport { Account } from '@starsoft/common/models';\n\nexport async function fetchAccountByCoin(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const { coinId }: AccountByCoinInputDto = queryKey[1];\n\n const response: AxiosResponse = await axiosInstance.get(\n `/accounts/by-coin/${coinId}`,\n );\n\n return response.data;\n}\n","import { AccountQueryKeys } from '../../queryKeys';\nimport { fetchAccountByCoin } from './service';\nimport { UseAccountByCoinProps, UseAccountByCoinQueryKey } from './props';\nimport { useEffect } from 'react';\nimport { Account, GenericError } from '@starsoft/common/models';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { AccountByCoinInputDto } from '@starsoft/common/dto';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { useQuery } from '@tanstack/react-query';\n\n/**\n * Custom hook to fetch account details by coin ID.\n *\n * @param {UseAccountByCoinProps} options - Configuration options for the query.\n * @param {string} options.coinId - The ID of the coin to fetch account details for.\n * @param {Function} [options.customOnSuccess] - Optional callback function to execute on successful data fetch.\n * @param {boolean} [options.enabled=true] - Flag to enable or disable the query.\n * @param {boolean} [options.refetchOnMount=true] - Flag to refetch data when the component mounts.\n *\n * @returns {Object} - Returns an object containing the query state and functions.\n * @returns {boolean} return.isLoading - Indicates if the query is currently loading.\n * @returns {Account} return.data - The fetched account data.\n * @returns {AxiosError} return.error - Error object if the query fails.\n * @returns {Function} return.refetch - Function to manually refetch the data.\n * @returns {boolean} return.isRefetching - Indicates if the query is currently refetching.\n */\nexport function useAccountByCoin(options?: UseAccountByCoinProps) {\n const {\n coinId,\n customOnSuccess,\n enabled = true,\n refetchOnMount = true,\n } = options ?? {};\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: UseAccountByCoinQueryKey = [\n AccountQueryKeys.ByCoin,\n { coinId } as AccountByCoinInputDto,\n ];\n\n // Use the useQuery hook to fetch account data\n const { isPending, data, error, refetch, fetchStatus, isRefetching } =\n useQuery<\n Account,\n AxiosError,\n Account,\n UseAccountByCoinQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchAccountByCoin(queryContext, axiosInstance),\n enabled: !!coinId && enabled,\n refetchOnWindowFocus: false,\n refetchOnMount,\n staleTime: 5 * 1000, // Data is considered fresh for 5 seconds\n });\n\n // Function to handle successful data fetch\n function onSuccess() {\n if (!data || !customOnSuccess) {\n return;\n }\n customOnSuccess(data);\n }\n\n // Use useEffect to trigger onSuccess when data changes\n //eslint-disable-next-line\n useEffect(onSuccess, [data]);\n\n return {\n isLoading: isPending && fetchStatus !== 'idle',\n data,\n error,\n refetch,\n isRefetching,\n };\n}\n","import { Coin } from '@starsoft/common/models';\nimport { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseCoinByIdQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchCoinById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: string = queryKey[1];\n\n const response: AxiosResponse = await axiosInstance.get(\n `/coins/${id}`,\n );\n\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { CoinsQueryKey } from '../../queryKeys';\nimport { UseCoinByIdProps, UseCoinByIdQueryKey } from './props';\nimport { Coin, GenericError } from '@starsoft/common/models';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchCoinById } from './service';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch a coin by its ID.\n *\n * @param {UseCoinByIdProps} options - Configuration options for the query.\n * @param {string} options.id - The ID of the coin to fetch.\n *\n * @returns {Object} - Returns an object containing the query state and functions.\n * @returns {Coin} return.coin - The fetched coin data.\n * @returns {boolean} return.isPending - Indicates if the query is currently loading.\n * @returns {AxiosError} return.error - Error object if the query fails.\n * @returns {Function} return.refetch - Function to manually refetch the data.\n */\nexport function useCoinById({ id }: UseCoinByIdProps) {\n // Define the query key for caching and refetching purposes\n const queryKey: UseCoinByIdQueryKey = [CoinsQueryKey.ById, id];\n\n // Get an Axios instance for making HTTP requests\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Use the useQuery hook to fetch coin data by ID\n const { data, isPending, error, refetch, fetchStatus } = useQuery<\n Coin,\n AxiosError,\n Coin,\n UseCoinByIdQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchCoinById(queryContext, axiosInstance),\n staleTime: 5 * 1000, // Data is considered fresh for 5 seconds\n enabled: !!id, // Enable the query only if the ID is provided\n });\n\n // Return the query state and functions\n return {\n coin: data, // The fetched coin data\n isPending: isPending && fetchStatus !== 'idle', // Indicates if the query is currently loading\n error, // Error object if the query fails\n refetch, // Function to manually refetch the data\n };\n}\n","import { Skeleton } from '@starsoft/common/components';\nimport styled from 'styled-components';\n\nexport const CustomOptionSkeletonWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px;\n`;\n\nexport const ImageSkeleton = styled((props: any) => )`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n`;\n\nexport const LabelSkeleton = styled((props: any) => )`\n width: 100px;\n height: 16px;\n border-radius: ${({ theme }) => theme.vars.shape.borderRadius};\n`;\n","import {\n CustomOptionSkeletonWrapper,\n ImageSkeleton,\n LabelSkeleton,\n} from './styles';\n\nexport default function AutocompleteSelectorOptionWithImageSkeleton() {\n return (\n \n \n \n \n );\n}\n","import styles from './styles.module.scss';\nimport { AutocompleteSelectorOptionWithImageProps } from './props';\nimport { Image } from '@starsoft/common/components';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\n\n/**\n * Component that renders a single coin option in the autocomplete selector\n * Displays coin details including icon, symbol and name\n *\n * @param {Object} props - Component props\n * @param {Coin} props.option - The coin data to display\n * @param {boolean} props.selected - Whether this option is currently selected\n * @param {Function} props.handleSelect - Callback function when option is selected\n * @param {boolean} props.isContainerColor - Whether to use container background color\n * @returns {JSX.Element} Coin option component with icon and details\n */\nexport function AutocompleteSelectorOptionCoinWithImage({\n option,\n selected,\n handleSelect,\n isContainerColor,\n}: AutocompleteSelectorOptionWithImageProps) {\n /**\n * Handles clicking the option\n * Calls the handleSelect callback with the coin option\n */\n function handleClick() {\n handleSelect(option);\n }\n\n return (\n \n \n
\n

{option.code}

\n

{option.name}

\n
\n \n );\n}\n","import styled from 'styled-components';\nimport { OptionProps } from './props';\nimport Color from 'color';\n\nimport { Image as NextImage } from '@starsoft/common/components';\nimport { getComputedColor } from '../../../../utils';\nimport { CoreImageProps } from '../../../Image/props';\n\nexport const Label = styled.p`\n font-size: 14px;\n line-height: 18px;\n font-weight: 400;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n`;\n\nexport const Option = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 16px;\n cursor: pointer;\n padding: 16px;\n background-color: ${({ theme, selected }) =>\n selected &&\n Color(getComputedColor(theme.vars.palette.primary.main))\n .alpha(0.2)\n .toString()};\n transition: background-color 0.25s ease-in-out;\n\n &:hover {\n background-color: ${({ theme }) =>\n Color(getComputedColor(theme.vars.palette.primary.main))\n .alpha(0.2)\n .toString()};\n }\n`;\n\nexport const Column = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-around;\n gap: 0.25rem;\n`;\n\nexport const Image = styled((props: CoreImageProps) => (\n \n))`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n`;\n","import { Image, Label, Option } from './styles';\nimport { AutocompleteSelectorOptionWithImageProps } from './props';\n\n/**\n * A component that renders an autocomplete selector option with an image and label\n *\n * @param {Object} props - The component props\n * @param {string} props.image - The URL of the image to display\n * @param {string} props.label - The text label to display\n * @param {boolean} props.selected - Whether this option is currently selected\n * @param {Function} props.handleSelect - Callback function when option is selected\n * @param {T} props.option - The option data/value to pass to handleSelect\n * @returns {JSX.Element} A clickable option with image and label\n * @template T - The type of the option value\n */\nexport function AutocompleteSelectorOptionWithImage({\n image,\n label,\n selected,\n handleSelect,\n option,\n}: AutocompleteSelectorOptionWithImageProps) {\n return (\n \n );\n}\n","import { CheckboxProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * A customizable checkbox component that can be checked/unchecked and show loading state\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isChecked - Whether the checkbox is checked\n * @param {() => void} props.onClick - Click handler function\n * @param {boolean} props.isLoading - Whether to show loading skeleton state\n * @param {boolean} props.isLarge - Whether to use large size variant\n * @param {boolean} props.disabled - Whether the checkbox is disabled\n * @returns {JSX.Element} Checkbox component or loading skeleton\n */\nexport function Checkbox({\n isChecked,\n onClick,\n isLoading,\n isLarge,\n disabled,\n}: CheckboxProps) {\n // Show loading skeleton if isLoading is true\n if (isLoading) {\n return (\n \n );\n }\n\n // Render checkbox with conditional styling based on state\n return (\n \n \n \n );\n}\n","import styled from 'styled-components';\nimport Color from 'color';\nimport { CircularProgressProps } from './props';\nimport { getComputedColor } from '@starsoft/common/utils';\n\n/**\n * CircularProgress component that renders a circular progress indicator\n * using styled-components.\n *\n * @component\n * @param {CircularProgressProps} props\n * @param {number} props.progress - The progress percentage (0-100)\n * @param {string} props.pathColor - Custom color for the progress path\n * @param {string} props.trailColor - Custom color for the progress trail\n * @param {boolean} props.invert - Whether to invert the colors\n * @returns {React.ComponentType} Styled div component with circular progress styling\n */\nexport const CircularProgress = styled.div`\n ${({ progress, pathColor, trailColor, invert }) => {\n // Default primary color from MUI theme or fallback\n const primaryColor =\n 'var(--mui-palette-primary-main, var(--primary-color))';\n\n // Calculate trail color based on props\n // Uses trailColor if provided, otherwise calculates based on invert flag\n const trail = trailColor\n ? trailColor\n : invert\n ? getComputedColor(primaryColor)\n : Color(getComputedColor(primaryColor)).alpha(0.5).toString();\n\n // Calculate path color based on props\n // Uses pathColor if provided, otherwise calculates based on invert flag\n const path = pathColor\n ? pathColor\n : invert\n ? Color(getComputedColor(primaryColor)).alpha(0.5).toString()\n : getComputedColor(primaryColor);\n\n // Return the CSS styles for the circular progress\n return `\n border-radius: 50%;\n width: 12px;\n height: 12px;\n background: conic-gradient(\n ${trail} ${progress}%, 0,\n ${path} ${100 - Math.ceil(progress)}%\n );\n `;\n }}\n`;\n","import CopyToClipboard from 'react-copy-to-clipboard';\nimport { CopyProps } from './props';\nimport { Input } from '@starsoft/common/components';\nimport styles from './styles.module.scss';\n\n/**\n * Component that provides copy to clipboard functionality with a styled input\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.textToCopy - Text that will be copied to clipboard when clicked\n * @param {string} props.label - Text to display in the input field\n * @param {boolean} props.isLoading - Whether to show loading state\n * @param {boolean} props.secondaryStyles - Whether to use secondary container color style\n * @param {Function} props.callback - Optional callback function called after successful copy\n * @returns {JSX.Element} Input field with copy functionality\n */\nexport function Copy({\n textToCopy,\n label,\n isLoading = false,\n secondaryStyles,\n callback,\n}: CopyProps) {\n /**\n * Handles the copy action\n * Calls the callback function if provided\n */\n function handleCopy() {\n if (typeof callback == 'undefined') {\n return;\n }\n\n callback();\n }\n\n // Show loading state if isLoading is true\n if (isLoading) {\n return ;\n }\n\n return (\n \n {/* @ts-ignore */}\n
\n \n
\n
\n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function CounterSkeleton() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { CounterProps } from './props';\nimport CounterSekeleton from './Skeleton';\nimport { useTranslation } from '../../hooks';\n\n/**\n * Component that renders a countdown timer with days, hours, minutes and seconds\n * Can be customized to show/hide days and hours, use smaller size, and different background color\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isLoading - Whether to show loading skeleton state\n * @param {Object} props.countdown - Object containing countdown values\n * @param {number} props.countdown.days - Number of days remaining\n * @param {number} props.countdown.hours - Number of hours remaining\n * @param {number} props.countdown.minutes - Number of minutes remaining\n * @param {number} props.countdown.seconds - Number of seconds remaining\n * @param {boolean} props.isSmall - Whether to use smaller size styling\n * @param {boolean} props.hideDays - Whether to hide the days counter\n * @param {boolean} props.hideHours - Whether to hide the hours counter\n * @param {boolean} props.isContainerColor - Whether to use container background color\n * @returns {JSX.Element} Countdown timer display with configurable units\n */\nexport function Counter({\n isLoading,\n countdown,\n isSmall,\n hideDays,\n hideHours,\n isContainerColor,\n}: CounterProps) {\n const { t } = useTranslation('tournaments');\n const { days, hours, minutes, seconds } = countdown;\n\n // Show loading skeleton if isLoading is true\n if (isLoading) {\n return ;\n }\n\n return (\n \n {!hideDays && (\n
\n \n {days}\n
\n \n {t('tournaments:days')}\n
\n
\n )}\n {!hideHours && (\n
\n \n {hours}\n
\n \n {t('tournaments:hours')}\n
\n
\n )}\n
\n \n {minutes}\n
\n \n {t('tournaments:minutes')}\n
\n
\n
\n \n {seconds}\n
\n \n {t('tournaments:seconds')}\n
\n
\n \n );\n}\n","export enum DateGroup {\n TODAY = 1,\n FIFTEEN_DAYS = 2,\n THIRTY_DAYS = 3,\n}\n","import { DateGroup as EDateGroup } from '@starsoft/common/enums/dateGroup';\nimport styles from './styles.module.scss';\nimport { Fragment, useMemo } from 'react';\nimport { DateGroupProps } from './props';\nimport { useTranslation } from '@starsoft/common/hooks';\n\n/**\n * Component that renders a group of date range selection buttons\n * Provides quick selection options for common date ranges like today, last 15 days, and last 30 days\n *\n * @component\n * @param {Object} props - Component props\n * @param {Function} props.onChange - Callback function called when a date range is selected\n * @param {boolean} [props.isDefault] - Whether this is the default date group\n * @returns {JSX.Element} Date group buttons with dividers\n */\nexport default function DateGroup({ onChange, isDefault }: DateGroupProps) {\n const { t } = useTranslation('common');\n\n /**\n * Gets the start and end dates for a given date group option\n *\n * @param {EDateGroup} group - The date group enum value\n * @returns {[Date, Date]} Array containing start and end dates\n */\n function getDateRange(group: EDateGroup): [Date, Date] {\n switch (group) {\n case EDateGroup.TODAY: {\n const today: Date = new Date();\n return [today, today];\n }\n case EDateGroup.FIFTEEN_DAYS: {\n const endDate: Date = new Date();\n const startDate: Date = new Date();\n startDate.setDate(endDate.getDate() - 15);\n return [startDate, endDate];\n }\n case EDateGroup.THIRTY_DAYS: {\n const endDate: Date = new Date();\n const startDate: Date = new Date();\n startDate.setDate(endDate.getDate() - 30);\n return [startDate, endDate];\n }\n }\n }\n\n /**\n * Memoized array of date group buttons with dividers between them\n * Each button triggers the onChange callback with its corresponding date range when clicked\n */\n const Buttons: JSX.Element[] = useMemo(\n () =>\n [EDateGroup.TODAY, EDateGroup.FIFTEEN_DAYS, EDateGroup.THIRTY_DAYS].map(\n (dateGroup, i, array) => (\n \n onChange(getDateRange(dateGroup as EDateGroup))}\n >\n {t(`date.${dateGroup}`)}\n \n\n {i !== array.length - 1 && (\n
\n )}\n \n ),\n ),\n //eslint-disable-next-line\n [t],\n );\n\n return (\n \n {Buttons}\n
\n );\n}\n","import { DateRange } from '@mui/x-date-pickers-pro';\nimport { DateRangeCardProps } from './props';\nimport { DateRangePicker } from '@starsoft/common/components';\nimport { startOfDay, endOfDay } from 'date-fns';\nimport styles from './styles.module.scss';\nimport DateGroup from './DateGroup';\nimport { useMemo } from 'react';\n\n/**\n * Component that renders a date range selection card with a date group and date range picker\n * Handles date range selection and formatting of start/end dates\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} [props.isLoading] - Whether the component is in loading state\n * @param {string} [props.label] - Label text for the date range picker\n * @param {boolean} [props.isDefault] - Whether this is the default date range\n * @param {boolean} [props.isSmall] - Whether to render in small size\n * @param {DateRange} props.range - Currently selected date range\n * @param {Function} props.setRange - Callback to update the selected date range\n * @returns {JSX.Element} Date range card with date group and picker components\n */\nexport function DateRangeCard({\n isLoading,\n label,\n isDefault,\n isSmall,\n range,\n setRange,\n}: DateRangeCardProps) {\n const [startDate, endDate] = range;\n const dateRange: DateRange = useMemo(\n () => [startDate, endDate],\n [startDate, endDate],\n );\n\n /**\n * Handles changes to the selected date range\n * Formats start date to start of day and end date to end of day\n *\n * @param {DateRange} range - New date range selected\n */\n function handleDateChange(range: DateRange) {\n const [rawStartDate, rawEndDate] = range;\n const startDate = rawStartDate ? startOfDay(rawStartDate) : null;\n const endDate = rawEndDate ? endOfDay(rawEndDate) : null;\n\n setRange(startDate, endDate);\n }\n\n return (\n
\n \n \n
\n );\n}\n","import { useSettingsStore } from '@starsoft/common/hooks';\nimport { LinkProps } from './props';\n\n/**\n * Link Component\n * A wrapper component that renders a router Link component based on the current settings.\n * Uses the router Link component defined in the settings store.\n * Returns null if no Link component is configured.\n *\n * @component\n * @param {LinkProps} props - Props to be passed to the underlying Link component\n * @returns {JSX.Element|null} The rendered Link component or null if not configured\n *\n * @example\n * // Basic usage with href\n * Home\n *\n * // With additional props\n * function('clicked')}\n * >\n * Profile\n * \n */\nexport function Link(props: LinkProps) {\n const { state } = useSettingsStore();\n const Link = state.settings.router.Link;\n\n if (!Link) {\n return null;\n }\n\n return ;\n}\n","import { useSettingsStore } from '@starsoft/common/hooks';\nimport { NavigateProps } from './props';\n\n/**\n * Navigate Component\n * A wrapper component that renders a router Navigate component based on the current settings.\n * Uses the router Navigate component defined in the settings store.\n * Returns null if no Navigate component is configured.\n *\n * @component\n * @param {NavigateProps} props - Props to be passed to the underlying Navigate component\n * @returns {JSX.Element|null} The rendered Navigate component or null if not configured\n *\n * @example\n * // Navigate to a new route\n * \n *\n * // Navigate with state and replace\n * \n */\nexport function Navigate(props: NavigateProps) {\n const { state } = useSettingsStore();\n const Navigate = state.settings.router.Navigate;\n\n if (!Navigate) {\n return null;\n }\n\n return ;\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function NavigationBreadcrumbsSkeleton() {\n return (\n
\n
\n\n \n\n
\n
\n );\n}\n","import NavigationBreadcrumbsSkeleton from './Skeleton';\nimport { NavigationBreadcrumbsProps } from './props';\nimport styles from './styles.module.scss';\nimport { ErrorChip } from '../ErrorChip';\nimport { Link } from '../Link';\n\n/**\n * NavigationBreadcrumbs Component\n * A component that displays a breadcrumb navigation with a link to the previous page and current page label.\n * Handles loading and error states, with ability to retry on error.\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.currentPageLabel - Label for the current page\n * @param {string} props.lastPageLabel - Label for the previous/parent page\n * @param {string} props.to - URL path to navigate to when clicking the last page link\n * @param {boolean} props.isLoading - Whether the breadcrumbs are in loading state\n * @param {boolean} props.isError - Whether there was an error loading the breadcrumbs\n * @param {() => void} [props.refetch] - Optional callback to retry loading on error\n * @returns {JSX.Element} The rendered breadcrumb navigation\n *\n * @example\n * // Basic usage\n * \n *\n * // With loading state\n * \n *\n * // With error and retry\n * fetchData()}\n * />\n */\nexport function NavigationBreadcrumbs({\n currentPageLabel,\n lastPageLabel,\n to,\n isLoading,\n isError,\n refetch,\n}: NavigationBreadcrumbsProps) {\n /**\n * Handles error retry\n * Calls the refetch callback if provided\n */\n function handleError() {\n refetch?.();\n }\n\n if (isLoading) {\n return ;\n }\n\n if (isError) {\n return ;\n }\n\n return (\n
\n \n {lastPageLabel}\n \n\n \n

{currentPageLabel}

\n
\n );\n}\n","import { Transition, Variants } from 'framer-motion';\n\nexport const drawerTransition: Transition = {\n duration: 0.3,\n ease: 'easeInOut',\n};\n\nexport const pageDrawerVariant: Variants = {\n hidden: {\n x: 450,\n transition: drawerTransition,\n },\n open: {\n x: 0,\n transition: drawerTransition,\n },\n};\n","import { ModalHeader } from '@starsoft/common/components';\nimport { useClickOutside } from '@starsoft/common/hooks';\nimport { AnimatePresence, motion as m } from 'framer-motion';\nimport { MouseEvent, PropsWithChildren } from 'react';\nimport { PageDrawerProps } from './props';\nimport styles from './styles.module.scss';\nimport { pageDrawerVariant } from './variants';\n\n/**\n * PageDrawer Component\n * A sliding drawer component that appears from the side of the page.\n * Includes animation, click outside handling, and optional padding control.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isOpen - Controls visibility of the drawer\n * @param {() => void} props.onClose - Callback function when drawer should close\n * @param {ReactNode} props.children - Content to render inside the drawer\n * @param {string} props.title - Title displayed in the drawer header\n * @param {boolean} [props.paddingless] - Whether to remove padding from content area\n * @returns {JSX.Element|null} The rendered drawer or null when closed\n *\n * @example\n * // Basic usage\n * setIsOpen(false)}\n * title=\"Settings\"\n * >\n *
Drawer content here
\n * \n *\n * // Without padding\n * setIsOpen(false)}\n * title=\"Full Width Content\"\n * paddingless={true}\n * >\n *
Content without padding
\n * \n */\nexport function PageDrawer({\n isOpen,\n onClose,\n children,\n title,\n paddingless,\n version,\n classNames,\n preventClose,\n}: PropsWithChildren) {\n // Hook to handle clicks outside the drawer\n const { current } = useClickOutside({\n onClickOutside: onClose,\n open: isOpen,\n });\n\n /**\n * Prevents click events from bubbling up to parent elements\n * Used to prevent drawer from closing when clicking inside\n *\n * @param {MouseEvent} event - The click event object\n */\n function handleContainer(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n return (\n \n {isOpen && (\n \n \n \n\n \n {children}\n
\n \n
\n )}\n \n );\n}\n","import { Button } from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function PaginationWithProgressSkeleton(): JSX.Element {\n return (\n
\n
\n
\n
\n
\n
\n
\n );\n}\n","import { PaginationWithProgressProps } from './props';\nimport PaginationWithProgressSkeleton from './Skeleton';\n\nimport styles from './styles.module.scss';\nimport { Button } from '../Button';\nimport { useTranslation } from '../../hooks';\n\n/**\n * PaginationWithProgress Component\n * A component that displays pagination with a progress bar showing how much content has been loaded.\n * Includes a \"Load More\" button and handles loading states.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.count - Current number of items loaded\n * @param {() => void} props.fetchNextPage - Function to fetch next page of items\n * @param {boolean} props.hasNextPage - Whether there are more items to load\n * @param {boolean} props.loading - Whether the initial data is loading\n * @param {boolean} props.isFetchingNextPage - Whether the next page is being fetched\n * @param {number} props.totalCount - Total number of items available\n * @returns {JSX.Element} The rendered pagination with progress component\n *\n * @example\n * loadMore()}\n * hasNextPage={true}\n * loading={false}\n * isFetchingNextPage={false}\n * totalCount={100}\n * />\n */\nexport function PaginationWithProgress({\n count,\n fetchNextPage,\n hasNextPage,\n loading,\n isFetchingNextPage,\n totalCount,\n}: PaginationWithProgressProps) {\n const { t } = useTranslation('common');\n\n /**\n * Handles clicking the \"Load More\" button\n * Calls fetchNextPage if it is defined\n */\n function handleFetchNextPage() {\n if (fetchNextPage != undefined) {\n fetchNextPage();\n }\n }\n\n if (loading) {\n return ;\n }\n\n return (\n
\n
\n
\n \n
\n \n {t(\n !hasNextPage\n ? 'no_more_items_label'\n : 'pagination_load_more_button',\n )}\n \n
\n
\n );\n}\n","import Color from 'color';\nimport styled from 'styled-components';\nimport { getComputedColor } from '../../../utils';\n\nexport const RechartsTooltip = styled.div`\n width: 100%;\n max-width: 300px;\n padding: 4px 8px;\n border-radius: ${({ theme }) => theme.vars.shape.borderRadius};\n background-color: ${({ theme }) =>\n theme.vars.palette.mode == 'dark'\n ? Color(getComputedColor(theme.vars.palette.background.default))\n .lighten(0.5)\n .toString()\n : Color(getComputedColor(theme.vars.palette.background.default))\n .darken(0.05)\n .toString()};\n font-size: 12px;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n display: flex;\n align-items: center;\n gap: 4px;\n font-weight: 600;\n\n & p {\n color: ${({ theme }) => theme.vars.palette.text.primary};\n }\n`;\n","import { TooltipProps } from 'recharts';\nimport { RechartsTooltip } from './styles';\n\nexport default function PieChartTooltip({\n payload,\n}: TooltipProps<'percent', 'count'>) {\n return (\n \n {payload?.[0]?.name}

{payload?.[0]?.value}

\n
\n );\n}\n","import Color from 'color';\nimport styled from 'styled-components';\nimport { getComputedColor } from '../../utils';\n\nexport const Container = styled.div`\n background-color: ${({ theme }) => theme.vars.palette.background.default};\n border: 1px solid\n ${({ theme }) =>\n Color(getComputedColor(theme.vars.palette.text.secondary))\n .alpha(0.1)\n .toString()};\n border-radius: ${({ theme }) => theme.vars.shape.borderRadius};\n padding: 16px;\n width: 100%;\n`;\n\nexport const CustomText = styled.text`\n fill: ${({ theme }) => theme.vars.palette.text.primary};\n`;\n","import { PieLabelRenderProps } from 'recharts';\nimport { CustomText } from './styles';\n\nconst RADIAN = Math.PI / 180;\n\nexport function pieChartLabel({\n cx,\n cy,\n midAngle,\n innerRadius,\n outerRadius,\n name,\n}: PieLabelRenderProps) {\n const radius =\n Number(innerRadius) + (Number(outerRadius) - Number(innerRadius)) * 1.2;\n const x: number = Number(cx) + radius * Math.cos(-midAngle * RADIAN);\n const y: number = Number(cy) + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n \n {`${name}`}\n \n );\n}\n","import {\n Cell,\n Pie,\n PieChart as RechartsPieChart,\n ResponsiveContainer,\n Tooltip,\n} from 'recharts';\nimport { useTheme } from 'styled-components';\nimport PieChartTooltip from './Tooltip';\nimport { pieChartLabel } from './label';\nimport { PieChartProps } from './props';\n\n/**\n * PieChart Component\n * A responsive pie chart component built using Recharts library.\n * Displays data in a circular format with customizable colors and tooltips.\n *\n * @component\n * @template T - Type of data items in the chart\n * @param {Object} props - Component props\n * @param {Array} props.data - Array of data items to display in the chart\n * @param {Object} props.dataKey - Object containing x and y keys to map data\n * @param {string|number|symbol} props.dataKey.x - Key for segment labels\n * @param {string|number|symbol} props.dataKey.y - Key for segment values\n * @param {boolean} props.showAxis - Whether to show chart axes\n * @returns {JSX.Element} Rendered pie chart component\n *\n * @example\n * // Example usage with typed data\n * type DataItem = {\n * category: string;\n * value: number;\n * color?: string;\n * };\n *\n * const data: DataItem[] = [\n * { category: 'A', value: 30, color: '#ff0000' },\n * { category: 'B', value: 70, color: '#00ff00' }\n * ];\n *\n * \n * data={data}\n * dataKey={{ x: 'category', y: 'value' }}\n * showAxis={false}\n * />\n */\nexport function PieChart({\n data,\n dataKey,\n showAxis,\n angles,\n}: PieChartProps) {\n const theme = useTheme();\n\n return (\n \n \n \n {data.map((item, index) => (\n \n ))}\n \n }\n position={\n angles?.start && angles?.end ? { x: -100, y: 0 } : undefined\n }\n />\n \n \n );\n}\n","import { PropsWithChildren } from 'react';\nimport { createPortal } from 'react-dom';\n\n/**\n * Portal Component\n * A component that renders its children into a portal at the document body level.\n * Useful for rendering modals, tooltips, or any content that needs to break out of its parent's DOM hierarchy.\n *\n * @component\n * @param {Object} props - Component props\n * @param {ReactNode} props.children - Child elements to render in the portal\n * @returns {ReactPortal} Portal containing the children rendered at document.body\n *\n * @example\n * // Rendering a modal using Portal\n * \n *
\n *

Modal Content

\n *

This content will render at document.body level

\n *
\n *
\n */\nexport function Portal({ children }: PropsWithChildren) {\n return createPortal(children, document.body);\n}\n","import Head from 'next/head';\nimport { PreloadImagesProps } from './props';\nimport { useMemo } from 'react';\n\n/**\n * PreloadImages component that preloads images by adding preload link tags in the document head\n *\n * @param {PreloadImagesProps} props - Component props\n * @param {string[]} props.images - Array of image URLs to preload\n * @returns {JSX.Element} Head component containing preload link tags\n *\n * @example\n * // Example usage:\n * const images = [\n * 'https://example.com/image1.jpg',\n * 'https://example.com/image2.jpg'\n * ];\n * \n *\n * // Will generate in the head:\n * // \n * // \n */\nexport function PreloadImages({ images }: PreloadImagesProps) {\n // Memoize the array of link elements to prevent unnecessary re-renders\n const Images: JSX.Element[] = useMemo(\n () =>\n images.map(img => (\n \n )),\n [images],\n );\n\n // Render the preload links inside the Next.js Head component\n return {Images};\n}\n","import { ProgressProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * Progress Component\n * A customizable progress bar component that can show loading state and different visual styles.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.progress - The progress value as a percentage (0-100)\n * @param {string} [props.color] - Custom color for the progress bar\n * @param {boolean} [props.isLoading] - Whether to show loading skeleton state\n * @param {string} [props.size] - Size variant of the progress bar\n * @param {boolean} [props.useCardColor] - Whether to use card background color\n * @param {boolean} [props.useContainerColor] - Whether to use container background color\n * @returns {JSX.Element} The rendered progress bar component\n *\n * @example\n * // Basic usage\n * \n *\n * // With custom styling\n * \n */\nexport function Progress({\n progress,\n color,\n isLoading,\n size,\n useCardColor,\n useContainerColor,\n}: ProgressProps) {\n if (isLoading) {\n return (\n \n
\n
\n );\n }\n return (\n \n \n
\n );\n}\n","import Popover from '@mui/material/Popover';\nimport { useState } from 'react';\nimport { RichTooltipProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * RichTooltip Component\n * A customizable tooltip/popover component that displays content when triggered\n *\n * @param {Object} props\n * @param {boolean} props.open - Controls visibility of the tooltip\n * @param {() => void} props.onClose - Callback function when tooltip closes\n * @param {React.ReactNode} props.children - Content that triggers the tooltip\n * @param {React.ReactNode} props.content - Content to display inside tooltip\n * @param {boolean} props.unsetHeight - Whether to remove fixed height constraint\n * @param {Object} props.poppoverOrigin - Position where tooltip appears relative to anchor\n * @param {Object} props.transformOrigin - Transform origin for tooltip animation\n * @param {string} props.className - Additional CSS class names\n *\n * @example\n * setIsOpen(false)}\n * content={
Tooltip content
}\n * poppoverOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n * transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n * className=\"custom-tooltip\"\n * >\n * \n * \n */\nexport const RichTooltip = ({\n open,\n onClose,\n children,\n content,\n unsetHeight,\n poppoverOrigin = {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin = {\n vertical: 'top',\n horizontal: 'right',\n },\n className,\n}: RichTooltipProps) => {\n // State to store the anchor element that triggers the tooltip\n const [anchorEl, setAnchorEl] = useState(null);\n\n /**\n * Handles click event on the trigger element\n * Sets the clicked element as the anchor for the tooltip\n * @param {React.MouseEvent} event - Click event object\n */\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n \n
{children}
\n\n \n {content}\n \n \n );\n};\n","import { useMemo } from 'react';\nimport { SectionProps } from './props';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '../ErrorCard';\nimport { PaginationWithProgress } from '../PaginationWithProgress';\nimport { NoDataComponent } from '../NoDataComponent';\n\n/**\n * Section Component\n * A generic component that handles displaying paginated or non-paginated lists of items with loading states,\n * error handling, and pagination controls.\n *\n * @component\n * @template T - The type of data items being displayed\n * @param {Object} props - Component props\n * @param {boolean} props.paginated - Whether the data is paginated\n * @param {'manual' | 'infinite'} props.paginationType - Type of pagination to use\n * @param {Error} props.error - Error object if request failed\n * @param {boolean} props.hasMore - Whether there are more items to load\n * @param {boolean} props.isLoading - Whether initial data is loading\n * @param {boolean} props.isLoadingMore - Whether next page is loading\n * @param {number} props.limit - Number of items per page\n * @param {() => void} props.loadMore - Function to load next page\n * @param {() => void} props.refetch - Function to retry failed request\n * @param {Object} props.componenents - Component renderers\n * @param {(data: T, index: number) => JSX.Element} props.componenents.component - Renders each data item\n * @param {(index: number) => JSX.Element} props.componenents.skeleton - Renders loading placeholder\n * @param {T[]} props.data - Array of data items to display\n * @param {number} props.totalCount - Total number of items available\n * @param {string} props.className - Additional CSS class for content container\n * @returns {JSX.Element} The rendered section component\n *\n * @example\n * type User = {\n * id: number;\n * name: string;\n * };\n *\n * fetchNextPage()}\n * refetch={() => refetchData()}\n * componenents={{\n * component: (user, index) => ,\n * skeleton: (index) => \n * }}\n * data={users}\n * totalCount={100}\n * className=\"user-list\"\n * />\n */\nexport function Section({\n paginated,\n paginationType,\n error,\n hasMore,\n isLoading,\n isLoadingMore,\n limit,\n loadMore,\n refetch,\n componenents: { component, skeleton },\n data,\n totalCount,\n className,\n}: SectionProps) {\n // Memoized array of skeleton components for loading state\n const Skeletons: JSX.Element[] = useMemo(\n () => Array.from({ length: limit }).map((_, index) => skeleton(index)),\n [limit, skeleton],\n );\n\n // Memoized array of rendered data components\n const Components: JSX.Element[] = useMemo(\n () => data?.map((data, index) => component(data, index)),\n [data, component],\n );\n\n // Show error state if there's an error and refetch function available\n if (error && refetch) {\n return (\n
\n \n
\n );\n }\n\n // Show no data component if not loading and no data available\n if (!isLoading && data?.length === 0) {\n return ;\n }\n\n return (\n
\n \n {Components}\n {((paginated && isLoadingMore) || isLoading) && Skeletons}\n
\n\n {!isLoading && paginationType == 'manual' && loadMore && (\n \n )}\n \n );\n}\n","import { Image } from '@starsoft/common/components';\nimport { SelectInputWithImageSkeletonProps } from './props';\n\nimport styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function SelectInputWithImageSkeleton({\n cardBg,\n}: SelectInputWithImageSkeletonProps) {\n return (\n \n
\n \n \n \n
\n \n );\n}\n","import styled from 'styled-components';\nimport Color from 'color';\nimport { SkeletonProps } from './props';\nimport { getComputedColor } from '../../utils';\n\nexport default styled.div`\n background-image: linear-gradient(\n -90deg,\n ${({ theme, inverse }) =>\n Color(\n inverse\n ? getComputedColor(theme.vars.palette.background.default)\n : getComputedColor(theme.vars.palette.background.paper),\n )\n .darken(0.3)\n .toString()}\n 0%,\n ${({ theme, inverse }) =>\n Color(\n inverse\n ? getComputedColor(theme.vars.palette.background.default)\n : getComputedColor(theme.vars.palette.background.paper),\n )\n .darken(0.1)\n .toString()}\n 50%,\n ${({ theme, inverse }) =>\n Color(\n inverse\n ? getComputedColor(theme.vars.palette.background.default)\n : getComputedColor(theme.vars.palette.background.paper),\n )\n .darken(0.3)\n .toString()}\n 100%\n );\n background-size: 400% 400%;\n animation: shimmer 1.2s ease-in-out infinite;\n\n @keyframes shimmer {\n 0% {\n background-position: 0% 0%;\n }\n 100% {\n background-position: -135% 0%;\n }\n }\n`;\n","import { useMemo } from 'react';\nimport styles from './styles.module.scss';\nimport { SliderStepperProps } from './props';\n\n/**\n * SliderStepper Component\n * A component that renders step indicators for a slider/carousel, showing the current position\n * and allowing navigation between steps.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.currentStep - The currently active step index\n * @param {(step: number) => void} props.onStepClick - Callback function when a step is clicked\n * @param {number} props.steps - Total number of steps to display\n * @param {boolean} props.absolute - Whether to use absolute positioning for the stepper\n * @returns {JSX.Element} The rendered stepper component with step indicators\n *\n * @example\n * setCurrentStep(stepIndex)}\n * steps={5}\n * absolute={true}\n * />\n */\nexport default function SliderStepper({\n currentStep,\n onStepClick,\n steps,\n absolute,\n}: SliderStepperProps) {\n /**\n * Memoized array of step indicator elements\n * Recalculates only when steps, currentStep or onStepClick changes\n */\n const Steps = useMemo(\n () =>\n Array.from({ length: steps }).map((_, index) => (\n onStepClick(index)}\n />\n )),\n [steps, currentStep, onStepClick],\n );\n\n return (\n \n {Steps}\n \n );\n}\n","import React, { PropsWithChildren, useMemo } from 'react';\nimport { SliderContentProps } from '../props';\nimport styles from './styles.module.scss';\nimport SliderStepper from './Stepper';\nimport { useIsMobile } from '@starsoft/common/hooks';\n\n/**\n * SliderContent Component\n * A content wrapper component for slider/carousel that handles item layout, touch/mouse interactions,\n * responsive behavior, and navigation controls.\n *\n * @component\n * @param {Object} props - Component props\n * @param {ReactNode} props.children - Slider content/items to be rendered\n * @param {boolean} props.showButtonsOnScroll - Whether to show navigation buttons only when content is scrollable\n * @param {number} props.size - Number of items to show per view on desktop\n * @param {Object} props.containerProps - Props for container behavior and state\n * @param {boolean} props.hideButtons - Whether to hide navigation buttons\n * @param {boolean} props.absoluteButton - Whether buttons should have absolute positioning\n * @param {number} props.mobileSize - Number of items to show per view on mobile\n * @returns {JSX.Element} The rendered slider content component\n *\n * @example\n * {},\n * handleMouseMove: (e) => {},\n * handleMouseUp: () => {},\n * handleMouseLeave: () => {},\n * currentStep: 0,\n * onStepClick: (step) => {},\n * hasScroll: true,\n * isDragging: false,\n * steps: 3\n * }}\n * >\n *
Slide 1
\n *
Slide 2
\n *
Slide 3
\n * \n */\nexport default function SliderContent({\n children,\n showButtonsOnScroll,\n size,\n containerProps,\n hideButtons,\n absoluteButton,\n mobileSize,\n}: PropsWithChildren) {\n const {\n containerRef,\n handleMouseDown,\n handleMouseLeave,\n handleMouseMove,\n currentStep,\n onStepClick,\n handleMouseUp,\n hasScroll,\n isDragging,\n steps,\n } = containerProps ?? {};\n\n // Check if current viewport is mobile\n const isMobile: boolean = useIsMobile();\n\n // Calculate number of items to show based on viewport\n const itemsPerView: number = isMobile && mobileSize ? mobileSize : size;\n\n // Determine if navigation buttons should be visible\n const isScrollable: boolean =\n !showButtonsOnScroll || (showButtonsOnScroll && hasScroll);\n\n // Memoized sections - either raw children or wrapped in container divs\n const Sections = useMemo(\n () =>\n (isMobile && !mobileSize) || !size\n ? children\n : React.Children.toArray(children).map((child, idx) => (\n
\n {child}\n
\n )),\n [isMobile, children, size, mobileSize],\n );\n\n return (\n \n \n {Sections ?? children}\n \n {!hideButtons && isScrollable && steps > 1 && (\n \n )}\n \n );\n}\n","/**\n * Import statements for required dependencies\n */\nimport { PaginationWithProgress } from '@starsoft/common/components';\nimport { PaginationWithProgressProps } from '../../PaginationWithProgress/props';\nimport styles from './styles.module.scss';\n\n/**\n * LoadMore Component\n * A wrapper component that renders a PaginationWithProgress component with styling\n *\n * @param {PaginationWithProgressProps} props - Props passed to PaginationWithProgress component\n * @returns {JSX.Element} A styled div containing PaginationWithProgress\n *\n * @example\n * // Example usage:\n * function(page)}\n * loading={false}\n * />\n */\nexport default function LoadMore(props: PaginationWithProgressProps) {\n return (\n
\n \n
\n );\n}\n","import Content from './Content';\nimport { SliderProps } from './props';\n\nimport { useCustomCarousel } from '@starsoft/common/hooks';\nimport { PropsWithChildren, ReactNode } from 'react';\nimport { NoDataComponent } from '../NoDataComponent';\nimport LoadMore from './LoadMore';\nimport styles from './styles.module.scss';\n\n/**\n * Slider Component\n * A customizable carousel/slider component that supports auto-scrolling, pagination,\n * custom headers, and various display options.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.size - Number of items to show per slide\n * @param {number} props.timeout - Auto-scroll interval in milliseconds\n * @param {ReactNode} props.children - Slider content/items\n * @param {Object} props.paginated - Pagination configuration and handlers\n * @param {string} props.className - Additional CSS class names\n * @param {number} props.mobileSize - Number of items to show on mobile screens\n * @param {boolean} props.hideButtons - Whether to hide navigation buttons\n * @param {number} props.slideBy - Number of items to slide by (default: 1)\n * @param {number} props.currentIndex - Current active slide index\n * @param {(index: number) => void} props.onStepChange - Callback when slide changes\n * @param {boolean} props.useAutoScroll - Whether to enable auto-scrolling\n * @param {boolean} props.absoluteButton - Whether buttons should have absolute positioning\n * @param {Object} props.customComponents - Custom rendering components\n * @param {boolean} props.showButtonsOnScroll - Show buttons only when scrolling\n * @param {boolean} props.scrollToCurrentOnEnter - Scroll to current index on component mount\n * @param {'horizontal' | 'vertical'} props.direction - Scroll direction\n * @returns {JSX.Element} The rendered slider component\n *\n * @example\n * function(`Current slide: ${index}`)}\n * useAutoScroll={true}\n * direction=\"horizontal\"\n * paginated={{\n * loading: false,\n * hasMore: true,\n * onLoadMore: () => fetchMoreItems()\n * }}\n * customComponents={{\n * header: ({ onDragLeft, onDragRight }) => (\n * \n * )\n * }}\n * >\n * Item 1\n * Item 2\n * Item 3\n * \n */\nexport function Slider({\n size,\n timeout,\n children,\n paginated,\n className,\n mobileSize,\n hideButtons,\n slideBy = 1,\n currentIndex,\n onStepChange,\n useAutoScroll,\n absoluteButton,\n customComponents,\n showButtonsOnScroll,\n scrollToCurrentOnEnter,\n direction,\n}: PropsWithChildren) {\n const { handleDragLeft, handleDragRight, ...rest } = useCustomCarousel({\n autoScroll: useAutoScroll,\n size,\n onStepChange,\n timeout,\n currentIndex,\n scrollToCurrentOnEnter,\n slideBy,\n direction,\n });\n\n // Return NoDataComponent if no children are provided\n if ((children as ReactNode[])?.length === 0) {\n return (\n
\n {customComponents?.header\n ? customComponents?.header({\n onDragLeft: () => handleDragLeft(),\n onDragRight: () => handleDragRight(),\n })\n : null}\n \n
\n );\n }\n\n // Render slider with content and optional pagination\n return (\n
\n {customComponents?.header\n ? customComponents?.header({\n onDragLeft: () => handleDragLeft(),\n onDragRight: () => handleDragRight(),\n })\n : null}\n \n {children}\n {paginated && !paginated?.loading && }\n \n
\n );\n}\n","import { SwitchProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * Switch Component\n * A customizable switch/toggle component that can be used for boolean input with optional label.\n * Supports loading states, disabled state, and flexible positioning.\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} [props.label] - Optional label text to display next to switch\n * @param {boolean} [props.disabled] - Whether the switch is disabled\n * @param {boolean} props.isChecked - Current checked state of the switch\n * @param {() => void} [props.onChange] - Callback function when switch state changes\n * @param {boolean} [props.isLoading] - Whether the switch is in loading state\n * @param {boolean} [props.flexEnd] - Whether to align switch to the end of container\n * @returns {JSX.Element} The rendered switch component\n *\n * @example\n * setNotificationsEnabled(!notificationsEnabled)}\n * isLoading={false}\n * flexEnd={true}\n * />\n */\nexport function Switch({\n label,\n disabled,\n isChecked,\n onChange,\n isLoading,\n flexEnd,\n}: SwitchProps) {\n /**\n * Handles the switch state change\n * Prevents default behavior and event propagation\n * Calls onChange callback if provided\n *\n * @param {React.ChangeEvent} e - Change event object\n */\n function handleChange(e: React.ChangeEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n if (onChange) {\n onChange();\n }\n }\n\n // Show loading skeleton if in loading state\n if (isLoading) {\n return
;\n }\n\n return (\n \n \n
\n {isLoading && (\n \n )}\n
\n \n
\n\n {label &&\n (isLoading ? (\n
\n ) : (\n {label}\n ))}\n \n );\n}\n","import { FieldValues } from 'react-hook-form';\nimport { TableWithPaginationProps } from './props';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '../ErrorCard';\nimport { PaginationComponent } from '../PaginationComponent';\nimport { TableGrid } from '@starsoft/common/components';\n\n/**\n * TableWithPagination Component\n * Renders a table with pagination controls, handling loading states, errors, and data display.\n * Combines TableGrid for data display and PaginationComponent for navigation.\n *\n * @component\n * @template T - Type extending FieldValues for row data structure\n * @param {Object} props - Component props\n * @param {Array} props.columns - Column definitions for the table\n * @param {Object} props.data - Data object containing rows and pagination metadata\n * @param {Error} props.error - Error object if request failed\n * @param {Function} props.fetchNextPage - Callback to fetch next page\n * @param {Function} props.fetchPreviousPage - Callback to fetch previous page\n * @param {boolean} props.isLoading - Loading state indicator\n * @param {number} props.page - Current page number\n * @param {Function} props.refetch - Callback to retry failed request\n * @param {boolean} props.isSecondaryStyles - Whether to use secondary styling\n * @param {Function} props.setCurrentPage - Callback to set current page number\n * @returns {JSX.Element} The rendered table with pagination\n *\n * @example\n * interface UserData extends FieldValues {\n * id: number;\n * name: string;\n * email: string;\n * }\n *\n * const columns = [\n * { field: 'name', headerName: 'Name' },\n * { field: 'email', headerName: 'Email' }\n * ];\n *\n * const data = {\n * data: [\n * { id: 1, name: 'John', email: 'john@example.com' },\n * { id: 2, name: 'Jane', email: 'jane@example.com' }\n * ],\n * metadata: {\n * hasNextPage: true,\n * hasPreviousPage: false,\n * pageCount: 5\n * }\n * };\n *\n * \n * columns={columns}\n * data={data}\n * error={null}\n * fetchNextPage={() => {}}\n * fetchPreviousPage={() => {}}\n * isLoading={false}\n * page={1}\n * refetch={() => {}}\n * isSecondaryStyles={false}\n * setCurrentPage={(page: number) => {}}\n * />\n */\nexport function TableWithPagination({\n columns,\n data,\n error,\n fetchNextPage,\n fetchPreviousPage,\n isLoading,\n page,\n refetch,\n isSecondaryStyles,\n setCurrentPage,\n ...props\n}: TableWithPaginationProps) {\n if (error) {\n return ;\n }\n\n return (\n
\n \n\n \n
\n );\n}\n","import { SeeDepositProps } from './props';\nimport { Button } from '@starsoft/common/components';\nimport { useModalNavigation, useTranslation } from '@starsoft/common/hooks';\nimport { CommonModalsKey, DepositStep } from '@starsoft/common/enums';\n\n/**\n * SeeDeposit Component\n * A button component that allows viewing deposit details in a modal.\n * Uses translation and modal navigation hooks to handle the UI and routing.\n *\n * @component\n * @param {Object} props - Component props\n * @param {DepositType} props.deposit - The deposit data object containing details like ID and method\n * @returns {JSX.Element} A tiny button that opens the deposit details modal when clicked\n *\n * @example\n * const deposit = {\n * id: \"d123\",\n * method: {\n * id: \"m456\"\n * }\n * };\n *\n * \n */\nexport function SeeDeposit({ deposit }: SeeDepositProps) {\n const { t } = useTranslation('data-grid');\n const { navigateToModal } = useModalNavigation();\n\n /**\n * Handles the button click event\n * Navigates to the deposit modal with the specific deposit ID and method ID\n * @returns {void}\n */\n function onClick() {\n navigateToModal(\n CommonModalsKey.Deposit,\n `?step=${DepositStep.Response}&deposit-id=${deposit?.id}&method-id=${deposit?.method?.id}`,\n );\n }\n\n return (\n \n );\n}\n","import { SeeWithdrawalProps } from './props';\nimport { Button } from '@starsoft/common/components';\nimport { CommonModalsKey, WithdrawStep } from '@starsoft/common/enums';\nimport { useModalNavigation, useTranslation } from '@starsoft/common/hooks';\n\n/**\n * SeeWithdrawal Component\n * A button component that allows viewing withdrawal details in a modal.\n * Uses translation and modal navigation hooks to handle the UI and routing.\n *\n * @component\n * @param {Object} props - Component props\n * @param {WithdrawalType} props.withdrawal - The withdrawal data object containing details like ID\n * @returns {JSX.Element} A tiny button that opens the withdrawal details modal when clicked\n *\n * @example\n * const withdrawal = {\n * id: \"w123\",\n * amount: 100,\n * status: \"pending\"\n * };\n *\n * \n */\nexport function SeeWithdrawal({ withdrawal }: SeeWithdrawalProps) {\n const { t } = useTranslation('data-grid');\n const { navigateToModal } = useModalNavigation();\n\n /**\n * Handles the button click event\n * Navigates to the withdrawal modal with the specific withdrawal ID\n * @returns {void}\n */\n function onClick() {\n navigateToModal(\n CommonModalsKey.Withdraw,\n `?step=${WithdrawStep.Response}&withdraw-id=${withdrawal?.id}`,\n );\n }\n\n return (\n \n );\n}\n","import styled from 'styled-components';\nimport { OptionProps } from './props';\nimport Color from 'color';\nimport { Image as NextImage } from '../../../Image';\nimport { getComputedColor } from '../../../../utils';\nimport { CoreImageProps } from '../../../Image/props';\n\nexport const CoinName = styled.p`\n font-size: 12px;\n line-height: 18px;\n font-weight: 400;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n`;\n\nexport const CoinSymbol = styled.p`\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n transition: color 0.25s ease-in-out;\n`;\n\nexport const Row = styled.div`\n display: flex;\n align-items: center;\n gap: 16px;\n`;\n\nexport const Option = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 16px;\n justify-content: space-between;\n cursor: pointer;\n padding: 16px;\n background-color: ${({ theme, selected }) =>\n selected &&\n Color(getComputedColor(theme.vars.palette.primary.main))\n .alpha(0.2)\n .toString()};\n transition: background-color 0.25s ease-in-out;\n\n &:hover {\n background-color: ${({ theme }) =>\n Color(getComputedColor(theme.vars.palette.primary.main))\n .alpha(0.2)\n .toString()};\n\n ${CoinSymbol} {\n color: ${({ theme }) => theme.vars.palette.text.primary};\n }\n }\n\n ${CoinSymbol} {\n color: ${({ theme, selected }) =>\n selected\n ? theme.vars.palette.text.primary\n : theme.vars.palette.text.secondary};\n }\n`;\n\nexport const Column = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-around;\n gap: 0.25rem;\n`;\n\nexport const Image = styled((props: CoreImageProps) => (\n \n))`\n width: 32px;\n height: 32px;\n border-radius: 50%;\n`;\n\nexport const BalanceContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n justify-content: flex-end;\n gap: 0.3rem;\n\n & .balance {\n font-size: 14px;\n display: flex;\n align-items: center;\n font-weight: 500;\n line-height: 14px;\n color: ${({ theme }) => theme.vars.palette.text.primary};\n\n .decimal {\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n }\n }\n\n & .value {\n font-size: 12px;\n font-weight: 400;\n line-height: 14px;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n }\n`;\n","import {\n BalanceContainer,\n CoinName,\n CoinSymbol,\n Column,\n Image,\n Option,\n Row,\n} from './styles';\nimport { AutocompleteSelectorOptionWithImageProps } from './props';\nimport { WalletService } from '../../../../services';\nimport { ToolTip } from '../../../Tooltip';\nimport { useMemo } from 'react';\nimport { useTranslation } from '@starsoft/common/hooks';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * Component that renders a single account option in the autocomplete selector\n * Displays account details including coin icon, name, balance and dollar value\n *\n * @param {Object} props - Component props\n * @param {Account} props.option - The account data to display\n * @param {boolean} props.selected - Whether this option is currently selected\n * @param {Function} props.handleSelect - Callback function when option is selected\n * @param {boolean} props.isInvestmentWallet - Whether this is an investment wallet account\n * @returns {JSX.Element} Account option component\n */\nexport function AutocompleteSelectorAccount({\n option,\n selected,\n handleSelect,\n isInvestmentWallet,\n}: AutocompleteSelectorOptionWithImageProps) {\n const { t } = useTranslation('common');\n\n // Format the account balance with proper currency masking\n const formattedValue = WalletService.maskCurrency({\n amount: getMoneyOrAmount(option?.balance),\n coin: option?.coin,\n });\n\n /**\n * Calculates the dollar value of the account balance\n * Multiplies the balance by the coin price\n *\n * @returns {number} Balance in dollars\n */\n function getDollarBalance() {\n const balance = option?.balance?.copyWith({\n options: {\n scale: option?.coin?.decimals,\n },\n });\n\n return balance.multiply(getMoneyOrAmount(option?.coin?.price))?.toNumber();\n }\n\n // Memoize the dollar balance calculation\n const dollarBalance: number = useMemo(getDollarBalance, [option]);\n\n return (\n \n );\n}\n","import chroma from 'chroma-js';\n\nexport function getContrastColor(color: string) {\n if (typeof color != 'string' && typeof window == 'undefined') {\n return color;\n }\n\n if (!color?.startsWith('#')) {\n return color;\n }\n\n return chroma(color).luminance() < 0.4 ? 'rgb(255, 255, 255)' : 'rgb(51, 51, 51)';\n}\n","import { Chain } from '@starsoft/common/models';\nimport { FCOptionProps } from '../../props';\nimport styles from './styles.module.scss';\nimport { useTranslation } from '../../../../hooks';\nimport { getContrastColor } from '@starsoft/common/utils';\n\n/**\n * Component that renders a single blockchain chain option in the autocomplete selector\n * Displays chain details including name, symbol with colored chip, and confirmation count\n *\n * @param {Object} props - Component props\n * @param {Function} props.handleSelect - Callback function when chain is selected\n * @param {Chain} props.option - The chain data to display\n * @param {boolean} props.selected - Whether this chain option is currently selected\n * @returns {JSX.Element} Chain option component with name, colored chip and confirmation count\n */\nexport function ChainOption({\n handleSelect,\n option,\n selected,\n}: Omit, 'key'>) {\n const { t } = useTranslation('common');\n\n /**\n * Handles clicking the chain option\n * Calls the handleSelect callback with the chain data\n */\n function handleClick() {\n handleSelect(option);\n }\n\n return (\n \n
\n {option.name}{' '}\n \n {option?.symbol}\n
\n
\n

\n {t('chain_confirmation_count', {\n confirmations: option?.confirmations,\n })}\n

\n \n );\n}\n","import Color from 'color';\nimport styled from 'styled-components';\nimport { getComputedColor } from '../../../utils';\n\nexport const RechartsTooltip = styled.div`\n width: 100%;\n max-width: 300px;\n padding: 4px 8px;\n border-radius: ${({ theme }) => theme.vars.shape.borderRadius};\n background-color: ${({ theme }) =>\n theme.vars.palette.mode == 'dark'\n ? Color(getComputedColor(theme.vars.palette.background.default))\n .lighten(0.5)\n .toString()\n : Color(getComputedColor(theme.vars.palette.background.default))\n .darken(0.05)\n .toString()};\n font-size: 12px;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n display: flex;\n align-items: center;\n gap: 4px;\n font-weight: 600;\n\n & p {\n color: ${({ theme }) => theme.vars.palette.text.primary};\n }\n`;\n","import { TooltipProps } from 'recharts';\nimport { RechartsTooltip } from './styles';\nimport { useTranslation } from '../../../hooks';\n\nexport function BarChartTooltip({ payload }: TooltipProps<'percent', 'count'>) {\n const { t } = useTranslation('investment');\n\n const isProfit = Number(payload?.[0]?.value) >= 0;\n\n return (\n \n {t(isProfit ? 'profit_tooltip' : 'loss_tooltip')}{' '}\n

{Number(payload?.[0]?.value).toFixed(2)} USDT

\n
\n );\n}\n","import {\n ResponsiveContainer,\n Tooltip,\n BarChart as RechartsBarChart,\n Bar,\n Cell,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { BarChartProps } from './props';\nimport { useTheme } from 'styled-components';\nimport { useMemo } from 'react';\nimport { BarChartTooltip } from './Tooltip';\n\n/**\n * BarChart component that renders a customizable bar chart using Recharts\n *\n * @template T - Generic type parameter for the data shape\n * @param {Object} props - Component props\n * @param {T[]} props.data - Array of data points to display in the chart\n * @param {Object} props.dataKey - Object containing keys for x-axis, y-axis and bar data\n * @param {string} props.dataKey.x - Key for x-axis data\n * @param {string} props.dataKey.y - Key for y-axis data\n * @param {string} props.dataKey.line - Key for bar data values\n * @param {boolean} props.showAxis - Whether to show x and y axes\n * @returns {JSX.Element} Responsive bar chart component\n */\nexport function BarChart({ data, dataKey, showAxis }: BarChartProps) {\n // Get theme for styling\n const theme = useTheme();\n\n // Memoized cell components with conditional coloring based on value\n const Cells = useMemo(\n () =>\n data?.map((entry, index) => {\n return (\n \n );\n }),\n [data, theme],\n );\n\n return (\n \n \n {/* Bar component displaying the main chart data */}\n {Cells}\n\n {/* Conditionally render axes if showAxis is true */}\n {showAxis && (\n <>\n \n \n \n )}\n {/* Custom tooltip component */}\n } />\n \n \n );\n}\n","import { Skeleton } from '@starsoft/common/components';\nimport styled from 'styled-components';\n\nexport const Label = styled.label`\n font-weight: 500;\n font-size: 14px;\n color: ${({ theme }) => theme.vars.palette.text.primary};\n`;\n\nexport const LabelSkeleton = styled((props: any) => )`\n width: 30%;\n height: 16px;\n border-radius: ${({ theme }) => theme.vars.shape.borderRadius};\n`;\n\nexport const FormGroup = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 8px;\n`;\n","import { useMemo } from 'react';\nimport { CoinPickerProps } from './props';\nimport { Label, LabelSkeleton, FormGroup } from './styles';\nimport { Coin, CoinType } from '@starsoft/common/models';\nimport AutocompleteSelectorOptionWithImageSkeleton from '../AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/Skeleton';\nimport { AutocompleteMenuSelector } from '../AutocompleteMenuSelector';\nimport { AutocompleteSelectorOptionCoinWithImage } from '@starsoft/common/components';\nimport { SelectInputWithImage } from '../SelectInput/SelectWithImage/SelectInputWithImage';\nimport SelectInputWithImageSkeleton from '../SelectInput/SelectWithImage/SelectInputWithImage/Skeleton';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\n\n/**\n * CoinPicker component that allows users to select a cryptocurrency coin from a list\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isLoading - Whether the component is in loading state\n * @param {boolean} props.disabled - Whether the picker is disabled\n * @param {(coin: Coin) => void} props.setCoin - Callback function when a coin is selected\n * @param {string} props.label - Label text to display above the picker\n * @param {string} props.modalTitle - Title for the selection modal\n * @param {Coin[]} props.coins - Array of available coins to pick from\n * @param {string|null} props.currentCoinId - ID of currently selected coin\n * @returns {JSX.Element} CoinPicker component with autocomplete selector\n */\nexport function CoinPicker({\n isLoading,\n disabled,\n setCoin,\n label,\n modalTitle,\n coins,\n currentCoinId,\n}: CoinPickerProps) {\n // Determine if component should show loading state\n const loading = isLoading || currentCoinId === null;\n\n // Filter out demo coins from options\n const options = useMemo(\n () => coins?.filter(item => item?.type != CoinType.Demo),\n [coins],\n );\n\n /**\n * Handle coin selection\n * @param {Coin} coin - The selected coin\n */\n function handleSelect(coin: Coin) {\n setCoin?.(coin);\n }\n\n return (\n \n {loading ? : }\n option.code}\n getOptionValue={option => option.id}\n loading={loading}\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n customInput: ({ handleOpen, open, option }) => (\n \n ),\n customSkeletonOption: () => (\n \n ),\n customSkeletonInput: () => ,\n }}\n />\n \n );\n}\n","import { CountrySelectorProps } from './props';\nimport { AutocompleteMenuSelector } from '../AutocompleteMenuSelector';\nimport {\n SelectInputWithImage,\n SelectOptionWithImage,\n} from '@starsoft/common/components';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\n\n/**\n * Component that renders a country selector with autocomplete functionality\n * Displays country flags and names in a searchable dropdown menu\n *\n * @component\n * @param {Object} props - Component props\n * @param {Function} props.setValue - Callback function to set selected country value\n * @param {Array} props.options - Array of country options to display\n * @param {Object} props.currentValue - Currently selected country object\n * @param {boolean} props.isDisabled - Whether the selector is disabled\n * @param {boolean} props.hasNextPage - Whether there are more options to load\n * @param {boolean} props.isFetchingNextPage - Whether next page of options is being fetched\n * @param {boolean} props.isLoading - Whether initial options are being loaded\n * @param {Function} props.loadMore - Callback to load more country options\n * @param {Function} props.onSearchChange - Callback when search input changes\n * @param {boolean} props.isContainerColor - Whether to use container background color\n * @returns {JSX.Element} Autocomplete country selector with flags and names\n */\nexport function CountrySelector({\n setValue,\n options,\n currentValue,\n isDisabled,\n hasNextPage,\n isFetchingNextPage,\n isLoading,\n loadMore,\n onSearchChange,\n isContainerColor,\n}: CountrySelectorProps): JSX.Element {\n return (\n e?.name}\n getOptionValue={e => e?.id}\n value={currentValue?.id}\n setValue={setValue}\n hasNextPage={hasNextPage}\n filterBy={['name']}\n onSearchChange={onSearchChange}\n isAsync\n loadMore={loadMore}\n isContainerColor={isContainerColor}\n isSmallerDrawer\n disabled={isDisabled}\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","import { Input } from '@starsoft/common/components';\nimport { CurrencyInputProps } from './props';\nimport { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { Image } from '../Image';\nimport { WalletService } from '@starsoft/common/services';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * Component that renders a currency input field with formatting and validation\n * Handles currency masking, unmasking, and displays a coin icon\n *\n * @component\n * @template T - Generic type for form values structure\n * @param {Object} props - Component props\n * @param {Object} props.coin - Coin object containing currency details\n * @param {number} props.value - Current input value\n * @param {boolean} props.isError - Whether input has validation error\n * @param {Function} props.setValue - Callback to update input value\n * @param {boolean} props.isLoading - Whether input is in loading state\n * @param {number} props.defaultValue - Default value for uncontrolled input\n * @param {boolean} props.hideCurrency - Whether to hide currency icon\n * @param {boolean} props.isExternalTouched - Whether field was touched externally\n * @returns {JSX.Element} Currency input field with formatting and coin icon\n */\nexport function CurrencyInput({\n coin,\n value,\n isError,\n setValue,\n isLoading,\n defaultValue,\n hideCurrency,\n isExternalTouched,\n ...props\n}: CurrencyInputProps) {\n const [touched, setTouched] = useState(false);\n const [displayedValue, setDisplayedValue] = useState('');\n const [isFocused, setIsFocused] = useState(false);\n\n /**\n * Sets the touched state to true if not already touched\n */\n function handleSetTouched() {\n if (touched) {\n return;\n }\n setTouched(true);\n }\n\n /**\n * Formats a numeric value into a masked currency string\n * @param {string} value - Numeric value to mask\n * @returns {string} Masked currency string\n */\n const getMaskedValue = useCallback(\n (value: string): string => {\n return WalletService.maskCurrency({\n amount: getMoneyOrAmount(+value),\n coin,\n hideSymbol: true,\n });\n },\n [coin],\n );\n\n /**\n * Converts a masked currency string back to a number\n * @param {string} value - Masked currency string to unmask\n * @returns {number} Unmasked numeric value\n */\n const getUnmaskedValue = useCallback(\n (value: string): number => {\n return WalletService.unmaskCurrency({\n amount: value,\n coin,\n });\n },\n [coin],\n );\n\n /**\n * Handles input change events\n * Filters non-numeric characters and updates value\n * @param {ChangeEvent} e - Change event\n */\n function onChange(e: ChangeEvent) {\n handleSetTouched();\n\n const inputValue: string = e.target.value.replace(/[^0-9,.]/g, '') || '';\n const unmaskedValue: number = WalletService.unmaskCurrency({\n amount: inputValue,\n coin,\n });\n\n setValue(!inputValue ? 0 : unmaskedValue);\n setDisplayedValue(inputValue);\n }\n\n /**\n * Handles input blur events\n * Formats value and updates display\n */\n function onBlur() {\n handleSetTouched();\n setIsFocused(false);\n const formattedValue: string = getMaskedValue(String(value || 0));\n setDisplayedValue(!value ? '' : formattedValue);\n }\n\n /**\n * Handles input focus events\n */\n function onFocus() {\n setIsFocused(true);\n }\n\n /**\n * Resets input state when coin changes\n */\n function onCoinChange() {\n if (!coin) {\n return;\n }\n\n setValue(0);\n setTouched(false);\n setDisplayedValue('');\n }\n\n // eslint-disable-next-line\n useEffect(onCoinChange, [coin]);\n\n /**\n * Updates displayed value when focused\n */\n function handleFocus() {\n if (isFocused) {\n return;\n }\n\n const formattedValue: string = getMaskedValue(String(value || 0));\n setDisplayedValue(!value ? '' : formattedValue);\n setValue(getUnmaskedValue(formattedValue));\n }\n\n //eslint-disable-next-line\n useEffect(handleFocus, [value, getMaskedValue, isFocused, getUnmaskedValue]);\n\n return (\n \n )\n }\n {...props}\n placeholder={getMaskedValue('0')}\n />\n );\n}\n","import styled from 'styled-components';\n\nexport const LoaderContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n font-weight: 500;\n color: ${({ theme }) => theme.vars.palette.text.secondary};\n\n & i {\n margin-left: 8px;\n margin-right: 16px;\n }\n`;\n","import { useTranslation } from '../../hooks';\nimport { LoaderContainer } from './styles';\n\n/**\n * InfiniteScrollLoader Component\n * A loading indicator component that displays a spinning icon and translated loading message,\n * typically used for infinite scroll loading states\n *\n * @component\n * @returns {JSX.Element} Loading indicator with spinning icon and message\n *\n * @example\n * // Basic usage\n * \n *\n * // Will render a spinning circle icon with translated \"Loading...\" message\n */\nexport function InfiniteScrollLoader() {\n const { t } = useTranslation('common');\n return (\n \n \n {t('loader_message')}\n \n );\n}\n","import { useLottiePlayer } from '@starsoft/common/hooks';\nimport { InfoProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * Info Component\n * A component that displays information with a Lottie animation, title and description\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.description - Description text to display\n * @param {string} props.lottie - Path to the Lottie animation file\n * @param {string} props.title - Title text to display\n * @returns {JSX.Element} Info component with animation, title and description\n *\n * @example\n * \n */\nexport function Info({ description, lottie, title }: InfoProps) {\n const { lottieAnimationRef } = useLottiePlayer({\n path: `/${lottie}`,\n });\n\n return (\n
\n
\n
{title}
\n

{description}

\n
\n );\n}\n","import { ToggleRenderProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * ToggleRender Component\n * A responsive component that conditionally renders different content for desktop and mobile views.\n * Uses CSS classes to handle the display logic based on viewport size.\n *\n * @component\n * @param {Object} props - Component props\n * @param {ReactNode} props.desktopComponent - Component to render in desktop view\n * @param {ReactNode} props.mobileComponent - Component to render in mobile view\n * @returns {JSX.Element} The rendered toggle component with desktop and mobile variants\n *\n * @example\n * Desktop Version
}\n * mobileComponent={
Mobile Version
}\n * />\n */\nexport function ToggleRender({\n desktopComponent,\n mobileComponent,\n}: ToggleRenderProps) {\n return (\n
\n
{desktopComponent}
\n
{mobileComponent}
\n
\n );\n}\n","import { Modal } from '@starsoft/common/components';\nimport styles from './styles.module.scss';\nimport { TransactionsLayoutProps } from './props';\nimport { containerVariants } from '../../Modal/Layout/variants';\nimport { motion } from 'framer-motion';\nimport { drawerVariants } from '../../Modal/Layout/variants';\nimport { useIsMobile } from '@starsoft/common/hooks';\nimport { SettingLayoutComponentId } from '@starsoft/common/models';\n/**\n * TransactionsLayout Component\n * This component is responsible for rendering a modal with transaction-related content.\n * It uses the Modal component from the common components library and applies custom styles.\n *\n * @param {TransactionsLayoutProps} props - The properties for the TransactionsLayout component.\n * @param {React.ReactNode} props.children - The content to be displayed inside the modal.\n * @param {Object} props.modalCallbacks - The callbacks for handling modal state and interactions.\n * @param {boolean} props.modalCallbacks.isOpen - Flag indicating whether the modal is open.\n * @param {Function} props.modalCallbacks.onClose - Callback function to handle closing the modal.\n * @param {Function} props.modalCallbacks.handleContainer - Callback function to handle container click events.\n *\n * @returns {JSX.Element} The rendered component displaying the modal with transaction content.\n *\n * @example\n * // Usage example:\n * function('Modal closed'),\n * handleContainer: () => function('Container clicked'),\n * }}\n * >\n *
Transaction Content
\n * \n */\nexport default function TransactionsLayout({\n children,\n modalCallbacks: { isOpen, onClose, handleContainer },\n version,\n}: TransactionsLayoutProps) {\n const isMobile: boolean = useIsMobile();\n return (\n onClose(true)} version={version}>\n \n {children}\n \n \n );\n}\n","import { ModalHeader } from '@starsoft/common/components';\nimport {\n CommonModalsKey,\n DepositStep,\n WithdrawStep,\n} from '@starsoft/common/enums';\nimport { useTranslation } from '../../../../../hooks';\nimport { useCurrentModal } from '../../../../../hooks/modals/useCurrentModal';\nimport { TransactionOptions } from '../../../props';\nimport { TransactionsModalsLayoutHeaderProps } from './props';\n\n/**\n * TransactionsModalsLayoutHeader Component\n * This component is responsible for rendering the header of transaction modals.\n * It dynamically sets the title and handles the back button functionality based on the transaction step.\n *\n * @template T - A generic type extending TransactionOptions.\n * @param {TransactionsModalsLayoutHeaderProps} props - The properties for the component.\n * @param {() => void} props.handleBackButton - Callback function to handle the back button action.\n * @param {WithdrawStep | DepositStep} props.transactionStep - The current step in the transaction process.\n * @param {() => void} props.onClose - Callback function to handle the close action.\n *\n * @returns {JSX.Element} The rendered ModalHeader component with appropriate title and actions.\n *\n * @example\n * // Usage example:\n * function('Back button clicked')}\n * transactionStep={WithdrawStep.Form}\n * onClose={() => function('Modal closed')}\n * />\n */\nexport default function TransactionsModalsLayoutHeader<\n T extends TransactionOptions,\n>({\n handleBackButton,\n transactionStep,\n onClose,\n version,\n}: TransactionsModalsLayoutHeaderProps) {\n const { t } = useTranslation('common');\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n const isDefaultStep: boolean = [WithdrawStep.Form, DepositStep.Form].includes(\n transactionStep,\n );\n const isReponseStep: boolean = [\n WithdrawStep.Response,\n DepositStep.Response,\n ].includes(transactionStep);\n\n return (\n \n );\n}\n","import { CoinType } from '@starsoft/common/models';\nimport { Tab } from '../../../../Tabs/Tab/props';\n\nexport const transactionsTabsOptions: Tab[] = [\n {\n label: 'fiat_label',\n value: CoinType.Fiat,\n },\n {\n label: 'crypto_label',\n value: CoinType.Crypto,\n },\n];\n","import { Tabs } from '@starsoft/common/components';\nimport { transactionsTabsOptions } from './options';\nimport { TransactionModalsContentLayoutTabsProps } from './props';\nimport { SettingLayoutComponentId } from '../../../../../models';\nimport { OriginId } from '@starsoft/common/models/origin/id';\nimport styles from './styles.module.scss';\n/**\n * TransactionModalsContentLayoutTabs Component\n * This component is responsible for rendering the tabs within the transaction modals content layout.\n * It displays the tabs based on the current tab and handles tab change events.\n *\n * @param {TransactionModalsContentLayoutTabsProps} props - The properties for the component.\n * @param {string} props.currentTab - The current active tab.\n * @param {function} props.onTabChange - Callback function to handle tab change events.\n * @param {boolean} props.hidden - Indicates if the tabs should be hidden.\n *\n * @returns {JSX.Element | null} The rendered component displaying the tabs or null if hidden.\n *\n * @example\n * // Usage example:\n * function(newTab)}\n * hidden={false}\n * />\n */\nexport default function TransactionModalsContentLayoutTabs({\n currentTab,\n onTabChange,\n hidden,\n originId,\n version,\n}: TransactionModalsContentLayoutTabsProps) {\n if (hidden || originId?.toString() === OriginId.Brazil?.toString()) {\n return null;\n }\n\n return (\n \n \n \n );\n}\n","export const fadeInUp = {\n hidden: {\n opacity: 0,\n y: 50,\n zIndex: 0,\n transition: {\n type: 'spring',\n stiffness: 300,\n damping: 140,\n },\n },\n show: {\n opacity: 1,\n y: 0,\n zIndex: 0,\n transition: {\n type: 'spring',\n stiffness: 80,\n },\n },\n};\n","import { PropsWithChildren } from 'react';\nimport { FeeLoaderProps } from './props';\nimport styles from '../styles.module.scss';\n\nexport default function FeeLoader({\n isLoading,\n children,\n}: PropsWithChildren) {\n if (isLoading) {\n return (\n \n );\n }\n\n return children;\n}\n","import styles from '../styles.module.scss';\nimport { FeeProps } from '../props';\nimport skeleton from './styles.module.scss';\n\nexport default function FeeSkeleton({ noChain }: FeeProps) {\n return (\n
\n {Array.from({ length: noChain ? 1 : 2 }).map((_, index) => (\n
\n

\n

\n

\n\n

\n

\n

\n
\n ))}\n
\n );\n}\n","export enum WithdrawalMethodsQueryKeys {\n Primary = '/withdrawal-methods/',\n ById = '/withdrawal-methods/:id',\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseWithdrawalMethodByIdQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { WithdrawMethod } from '@starsoft/common/models';\n\nexport async function fetchWithdrawalMethodById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: bigint = queryKey[1];\n\n const response: AxiosResponse =\n await axiosInstance.get(`withdrawal-methods/${id}`);\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { WithdrawalMethodsQueryKeys } from '../../queryKeys';\nimport {\n UseWithdrawalMethodByIdQueryKey,\n UseWithdrawalMethodsByIdProps,\n} from './props';\nimport { fetchWithdrawalMethodById } from './service';\nimport { GenericError, WithdrawMethod } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch a specific withdrawal method by ID\n *\n * This hook handles fetching a single withdrawal method's details using its ID.\n * It manages the query state using React Query and considers data stale after 5 seconds.\n * The query will only execute if an ID is provided and the hook is enabled.\n *\n * @param {UseWithdrawalMethodsByIdProps} props - The props object\n * @param {string | number} props.id - The ID of the withdrawal method to fetch\n * @param {boolean} [props.enabled=true] - Whether the query should be enabled\n *\n * @returns {Object} An object containing:\n * - refetch: Function to manually trigger a refetch\n * - error: Any error that occurred during fetch\n * - isLoading: Boolean indicating if fetch is in progress\n * - withdrawalMethod: The fetched withdrawal method data\n */\nexport function useWithdrawalMethodById({\n id,\n enabled = true,\n}: UseWithdrawalMethodsByIdProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UseWithdrawalMethodByIdQueryKey = [\n WithdrawalMethodsQueryKeys.ById,\n id as unknown as bigint,\n ];\n const { isPending, error, data, refetch } = useQuery<\n WithdrawMethod,\n AxiosError,\n WithdrawMethod,\n UseWithdrawalMethodByIdQueryKey\n >({\n queryKey,\n queryFn: queryContext =>\n fetchWithdrawalMethodById(queryContext, axiosInstance),\n enabled: !!id && enabled,\n staleTime: 5 * 1000,\n });\n\n return {\n refetch,\n error: error,\n isLoading: isPending,\n withdrawalMethod: data,\n };\n}\n","import { WithdrawStep } from '../../../enums';\nimport { CoinType } from '../../../models';\nimport { WithdrawMethodIdType } from '../../../enums/withdraw-method/id';\n\nexport type WithdrawSearchParamValues = {\n step: WithdrawStep;\n 'coin-type': CoinType;\n 'coin-id': number;\n 'method-id': WithdrawMethodIdType;\n amount: number;\n 'user-payment': string;\n 'user-payment-id': string;\n 'confirmation-method': string;\n};\nexport enum WithdrawConfirmationMethod {\n Email = 'email',\n Phone = 'phone',\n}\n","import { useCallback } from 'react';\nimport { WithdrawConfirmationMethod, WithdrawSearchParamValues } from './props';\nimport { useCurrentModal } from '../../modals/useCurrentModal';\nimport { CommonModalsKey, WithdrawStep } from '../../../enums';\nimport { CoinType } from '../../../models';\nimport { Nullable } from '../../../interfaces';\nimport { useSearchParams } from '../../useSearchParams';\nimport { useNavigate } from '../../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { WithdrawMethodIdType } from '@starsoft/common/enums/withdraw-method/id';\n\n/**\n * Custom hook to manage withdraw search parameters.\n * It provides current search parameters and functions to update or delete them.\n */\nexport function useWithdrawSearchParams() {\n // Retrieves the current URL search parameters\n const search: URLSearchParams = useSearchParams();\n // Retrieves the current modal key, if any\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n // Provides a navigation function to update the URL\n const navigate: NavigateFunction = useNavigate();\n\n // Extracts the current transaction step from the search parameters or defaults to WithdrawStep.Form\n const transactionStep: WithdrawStep =\n (search.get('step') as WithdrawStep) ?? WithdrawStep.Form;\n // Extracts the coin type from the search parameters or defaults to CoinType.Fiat\n const coinType: CoinType =\n (search.get('coin-type') as CoinType) ?? CoinType.Fiat;\n // Retrieves the method ID from the search parameters\n const searchMethodId: string | null = search.get('method-id');\n // Converts the method ID to a nullable string\n const withdrawMethodId: Nullable = searchMethodId\n ? (searchMethodId as unknown as string)\n : null;\n // Retrieves the coin ID from the search parameters\n const searchCoinId: string | null = search.get('coin-id');\n // Converts the coin ID to a nullable string\n const coinId: Nullable = searchCoinId ? searchCoinId : null;\n // Retrieves the amount from the search parameters and converts it to a number\n const amount: Nullable = Number(search.get('amount') ?? 0);\n // Retrieves the user payment details from the search parameters\n const userPaymentDetails: string = search.get('user-payment');\n // Extracts the confirmation method from the search parameters or defaults to WithdrawConfirmationMethod.Email\n const confirmationMethod =\n (search.get('confirmation-method') as WithdrawConfirmationMethod) ??\n WithdrawConfirmationMethod.Email;\n\n /**\n * Sets a search parameter and updates the URL.\n * @param searchParamKey - The key of the search parameter to set.\n * @param value - The value to set for the search parameter.\n * Example: handleSetWithdrawSearchParams('amount', 100);\n */\n const handleSetWithdrawSearchParams = useCallback(\n (\n searchParamKey: K,\n value: WithdrawSearchParamValues[K],\n ) => {\n if (!modal) {\n return;\n }\n search.set(searchParamKey, `${value}`);\n navigate(\n {\n search: search.toString(),\n hash: modal,\n },\n {\n preventScrollReset: true,\n },\n );\n },\n [search, modal, navigate],\n );\n\n /**\n * Deletes a search parameter and updates the URL.\n * @param searchParamKey - The key of the search parameter to delete.\n * Example: handleDeleteWithdrawSearchParams('amount');\n */\n const handleDeleteWithdrawSearchParams = useCallback(\n (searchParamKey: K) => {\n search.delete(searchParamKey);\n navigate(\n {\n search: search.toString(),\n hash: modal,\n },\n {\n preventScrollReset: true,\n },\n );\n },\n [search, modal, navigate],\n );\n\n // Returns the current search parameters and functions to modify them\n return {\n transactionStep,\n coinType,\n withdrawMethodId,\n coinId,\n amount,\n userPaymentDetails,\n confirmationMethod,\n handleSetWithdrawSearchParams,\n handleDeleteWithdrawSearchParams,\n };\n}\n","import { useWithdrawalMethodById } from '../../../api';\nimport { useWithdrawSearchParams } from '../useWithdrawSearchParams';\nimport { UseSelectedWithdrawalMethodProps } from './props';\n\n/**\n * Custom hook to retrieve the selected withdrawal method by its ID.\n * This hook uses the withdrawal method ID from the search parameters and fetches the corresponding withdrawal method.\n *\n * @param {UseSelectedWithdrawalMethodProps} [props] - The properties for the hook.\n * @param {boolean} [props.enabled=true] - Flag to enable or disable the hook.\n * @returns {Object} An object containing the withdrawal method information.\n *\n * @example\n * // Usage example:\n * const { data, error, isLoading } = useSelectedWithdrawalMethod({ enabled: true });\n */\nexport function useSelectedWithdrawalMethod(\n props?: UseSelectedWithdrawalMethodProps,\n) {\n // Destructure the enabled flag from props, defaulting to true if not provided\n const { enabled = true } = props ?? {};\n // Retrieve the withdrawal method ID from the search parameters\n const { withdrawMethodId } = useWithdrawSearchParams();\n\n // Fetch the withdrawal method by its ID using the useWithdrawalMethodById hook\n return useWithdrawalMethodById({\n id: withdrawMethodId as unknown as bigint,\n enabled,\n });\n}\n\nexport type { UseSelectedWithdrawalMethodProps };\n","export namespace WithdrawMethodId {\n export const Crypto = 1;\n export const BetterbroBrazillianPix = 2;\n export const PixtopayBrazillianPix = 3;\n export const BetterbroMexicanSpei = 4;\n export const BetterbroArgentineBankTransfer = 5;\n export const BetterbroIndianImps = 6;\n export const PayGamesIndiaUpi = 7;\n export const PayGamesSingaporePayNow = 8;\n export const PayGamesIndonesiaQris = 9;\n export const PayGamesSouthAfrica = 10;\n export const PayGamesNigeria = 11;\n}\n\nexport type WithdrawMethodIdType =\n (typeof WithdrawMethodId)[keyof typeof WithdrawMethodId];\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseFeeQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { FeeRequestDto, FeeResponseDto } from '@starsoft/common/dto';\n\nexport async function fetchFee(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const { chainId, amount, coinId, methodId }: FeeRequestDto = queryKey[1];\n\n const response: AxiosResponse =\n await axiosInstance.get('/withdrawals/fee', {\n params: {\n amount,\n coinId,\n chainId,\n methodId,\n },\n });\n\n return response.data;\n}\n","import { WithdrawalsQueryKeys } from '../../queryKeys';\nimport { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchFee } from './service';\nimport { UseFeeProps, UseFeeQueryKey } from './props';\nimport { FeeResponseDto } from '@starsoft/common/dto';\nimport { GenericError } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch withdrawal fee information\n *\n * This hook manages the query state for fetching withdrawal fees based on provided parameters.\n * It uses React Query to handle caching, retries, and refetching behavior.\n * The fee data is considered fresh indefinitely (staleTime: Infinity) but will refetch when reconnecting.\n *\n * @param {UseFeeProps} props - The props object containing:\n * @param {string} [props.chainId] - The blockchain network ID for crypto withdrawals\n * @param {string} [props.coinId] - The cryptocurrency ID\n * @param {string} [props.methodId] - The withdrawal method ID (required for query to be enabled)\n * @param {number} [props.amount] - The withdrawal amount\n * @param {boolean} [props.enabled=true] - Whether the query should be enabled\n *\n * @returns {Object} An object containing:\n * - fee: The fee data from the API response\n * - isLoading: Boolean indicating if fee data is being fetched\n * - error: Any error that occurred during the fetch\n * - refetch: Function to manually trigger a refetch\n * - isError: Boolean indicating if an error occurred\n */\nexport function useFee({\n chainId,\n coinId,\n methodId,\n amount,\n enabled = true,\n}: UseFeeProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UseFeeQueryKey = [\n WithdrawalsQueryKeys.Fee,\n {\n chainId,\n coinId,\n amount,\n methodId,\n },\n ];\n\n const { data, isPending, error, refetch, isError, fetchStatus } = useQuery<\n FeeResponseDto,\n AxiosError,\n FeeResponseDto,\n UseFeeQueryKey\n >({\n enabled: enabled && !!methodId,\n queryKey,\n retry: 1,\n queryFn: queryContext => fetchFee(queryContext, axiosInstance),\n staleTime: Infinity,\n refetchOnReconnect: 'always',\n });\n\n return {\n fee: data,\n isLoading: isPending && fetchStatus !== 'idle',\n error,\n refetch,\n isError,\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseTokenLookupQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { TokenLookupInputDto } from '../../../../dto/withdrawals/token-lookup-input.dto';\nimport { TokenLookupOutputDto } from '../../../../dto/withdrawals/token-lookup-output.dto';\n\nexport async function fetchTokenLookup(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const params: TokenLookupInputDto = queryKey[1];\n\n const response: AxiosResponse =\n await axiosInstance.get('/withdrawals/token-lookup', {\n params,\n });\n\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { WithdrawalsQueryKeys } from '../../queryKeys';\nimport { UseTokenLookupProps, UseTokenLookupQueryKey } from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { GenericError } from '@starsoft/common/models';\nimport { fetchTokenLookup } from './service';\nimport { TokenLookupOutputDto } from '../../../../dto/withdrawals/token-lookup-output.dto';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to lookup token information for withdrawals\n *\n * This hook manages the query state for looking up token information based on provided parameters.\n * It uses React Query to handle caching, retries, and refetching behavior.\n * The token data is considered fresh indefinitely (staleTime: Infinity) but will refetch when reconnecting.\n *\n * @param {UseTokenLookupProps} props - The props object containing:\n * @param {string} props.address - The wallet address to lookup\n * @param {string} props.coinId - The cryptocurrency ID\n * @param {string} props.chainId - The blockchain network ID\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 * - tokenLookup: The token lookup data from the API response\n * - isPending: Boolean indicating if lookup is in progress\n */\nexport function useTokenLookup({\n address,\n coinId,\n chainId,\n enabled = true,\n}: UseTokenLookupProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UseTokenLookupQueryKey = [\n WithdrawalsQueryKeys.TokenLookup,\n {\n address,\n coinId,\n chainId,\n },\n ];\n\n const { data, isPending, error, refetch, fetchStatus } = useQuery<\n TokenLookupOutputDto,\n AxiosError,\n TokenLookupOutputDto,\n UseTokenLookupQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchTokenLookup(queryContext, axiosInstance),\n staleTime: Infinity,\n refetchOnReconnect: 'always',\n enabled: !!address && !!coinId && !!chainId && enabled,\n retry: 1,\n });\n\n return {\n error,\n refetch,\n tokenLookup: data,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UseWithdrawalMethodsQueryKey } from './props';\nimport { PaginatedResponse, WithdrawMethod } from '@starsoft/common/models';\nimport { WithdrawalMethodsInputDto } from '@starsoft/common/dto';\n\nexport async function fetchWithdrawMethods(\n {\n pageParam = 1,\n queryKey,\n }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise> {\n const { limit, coinId }: WithdrawalMethodsInputDto = queryKey[1];\n const response: AxiosResponse> =\n await axiosInstance.get>(\n 'withdrawal-methods',\n {\n params: {\n page: pageParam,\n limit: limit,\n coinId,\n },\n },\n );\n\n return response.data;\n}\n","import { useMemo } from 'react';\nimport { WithdrawalMethodsQueryKeys } from '../../queryKeys';\n\nimport { InfiniteData } from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@starsoft/common/services/query-client';\nimport { fetchWithdrawMethods } from './service';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport {\n useAxiosInstance,\n useInfiniteQueryCallbacks,\n useInfiniteQueryReset,\n} from '@starsoft/common/hooks';\nimport {\n GenericError,\n PaginatedResponse,\n WithdrawMethod,\n} from '@starsoft/common/models';\nimport {\n UseWithdrawalMethodsProps,\n UseWithdrawalMethodsQueryKey,\n} from './props';\nimport { WithdrawalMethodsInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to fetch withdrawal methods with infinite scrolling support\n *\n * This hook handles fetching withdrawal methods data with pagination and infinite scrolling capabilities.\n * It uses React Query's infinite query feature to manage the data fetching state and pagination.\n * The data is considered stale after 5 seconds and won't refetch on window focus.\n *\n * @param {UseWithdrawalMethodsProps} options - Optional configuration object\n * @param {string | number} [options.coinId] - ID of the coin to filter withdrawal methods\n * @param {boolean} [options.enabled=true] - Whether the query should be enabled\n *\n * @returns {Object} An object containing:\n * - withdrawMethods: Array of all fetched withdrawal methods across all pages\n * - isLoading: Boolean indicating if initial fetch is in progress\n * - error: Any error that occurred during fetch\n * - fetchNextPage: Function to load the next page of data\n * - fetchPreviousPage: Function to load the previous page of data\n * - hasNextPage: Boolean indicating if there are more pages to load\n * - hasPreviousPage: Boolean indicating if there are previous pages\n * - isFetchingNextPage: Boolean indicating if next page fetch is in progress\n * - isFetchingPreviousPage: Boolean indicating if previous page fetch is in progress\n */\nexport function useWithdrawalMethods(options?: UseWithdrawalMethodsProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { coinId, enabled = true } = options ?? {};\n const params: WithdrawalMethodsInputDto = {\n coinId,\n limit: 20,\n };\n\n const queryKey: UseWithdrawalMethodsQueryKey = [\n WithdrawalMethodsQueryKeys.Primary,\n params,\n ];\n\n const { getNextPageParam, getPreviousPageParam } =\n useInfiniteQueryCallbacks();\n useInfiniteQueryReset(queryKey);\n\n const { data, isPending, ...infinityQuery } = useInfiniteQuery<\n PaginatedResponse,\n AxiosError,\n InfiniteData>,\n UseWithdrawalMethodsQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchWithdrawMethods(queryContext, axiosInstance),\n initialPageParam: 1,\n getNextPageParam,\n getPreviousPageParam,\n staleTime: 5 * 1000,\n refetchOnWindowFocus: false,\n enabled: enabled && !!coinId,\n });\n\n const formattedData: WithdrawMethod[] = useMemo(\n () => data?.pages?.map(page => page.data)?.flat(),\n [data],\n );\n\n return {\n ...infinityQuery,\n isLoading: isPending,\n withdrawMethods: formattedData,\n error: infinityQuery.error as AxiosError,\n };\n}\n","import { Account } from '@starsoft/common/models';\n\nexport function isValidChainId(account: Account, chainId?: string): boolean {\n if (!chainId) {\n return false;\n }\n\n if (account?.coin?.chain?.id?.toString() === chainId) {\n return true;\n }\n\n return account?.coin?.tokens?.some(\n token => token?.chain?.id?.toString() === chainId,\n );\n}\n","import { useWalletsMe } from '../../../api';\nimport { Account } from '../../../models';\nimport { UseWalletAccountsByCoinTypeProps } from './props';\nimport { useMemo } from 'react';\n\n/**\n * Custom hook to filter wallet accounts by coin type.\n * This hook retrieves the wallet information and filters the accounts based on the specified coin type.\n *\n * @param {UseWalletAccountsByCoinTypeProps} props - The properties for the hook.\n * @param {string} props.coinType - The type of the coin to filter accounts by.\n * @param {boolean} [props.enabled=true] - Flag to enable or disable the hook.\n * @returns {Object} An object containing the wallet information and filtered accounts.\n *\n * @example\n * // Usage example:\n * const { wallet, accounts } = useWalletAccountsByCoinType({ coinType: 'BTC', enabled: true });\n */\nexport function useWalletAccountsByCoinType({\n coinType,\n enabled = true,\n}: UseWalletAccountsByCoinTypeProps) {\n // Retrieve the wallet information and other properties using the useWalletsMe hook\n const { wallet, ...rest } = useWalletsMe({\n enabled,\n });\n\n // Memoize the filtered accounts based on the coin type and wallet information\n const accounts: Account[] = useMemo(\n () => wallet?.accounts?.filter(account => account?.coin?.type == coinType),\n [coinType, wallet],\n );\n\n // Return the wallet information, filtered accounts, and other properties\n return {\n ...rest,\n wallet,\n accounts,\n };\n}\n\nexport type { UseWalletAccountsByCoinTypeProps };\n","import { useMemo } from 'react';\nimport { UseFormSetValue, UseFormWatch } from 'react-hook-form';\nimport { AxiosError } from 'axios';\nimport { useCurrentModal } from '../modals/useCurrentModal';\nimport { useSelectedWithdrawalMethod } from './useSelectedWithdrawalMethod';\nimport { WithdrawFormCreateDto } from '../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport {\n CoinID,\n CommonModalsKey,\n WithdrawMethodId,\n WithdrawStep,\n} from '../../enums';\nimport {\n useFee,\n useKycMeByOriginId,\n useTokenLookup,\n useWithdrawalMethods,\n} from '../../api';\nimport { Account, Chain, Coin, CoinType, GenericError } from '../../models';\nimport { getMoneyOrAmount, isValidChainId, parseToSubunits } from '../../utils';\nimport { useAccountByCoin } from '../../api/account/queries';\nimport { WalletService } from '../../services';\nimport { TransactionMapping } from '../../models/transaction-mapping';\nimport { useWithdrawSearchParams } from '../../../../common/src/hooks/withdraw/useWithdrawSearchParams';\nimport { useDebounce } from '../../../../common/src/hooks/useDebounce';\nimport { useWalletAccountsByCoinType } from '../../../../common/src/hooks/wallet/useWalletAccountsByCoinType';\nimport { OriginId } from '@starsoft/common/models/origin/id';\nimport { useUserOriginId } from '../user-identity/useUserOriginId';\n\n/**\n * Custom hook to manage the withdrawal form state.\n * This hook handles various aspects of the withdrawal form, including fetching necessary data,\n * validating form fields, and managing form state.\n *\n * @param {UseFormWatch} watch - Function to watch form fields.\n * @param {UseFormSetValue} setValue - Function to set form field values.\n * @returns {Object} An object containing various queries, form state, and utility functions.\n *\n * @example\n * // Usage example:\n * const {\n * feeQuery,\n * accountsQuery,\n * accountByCoinQuery,\n * tokenLookupQuery,\n * withdrawMethodsQuery,\n * selectedWithdrawalMethodQuery,\n * formError,\n * refetchForm,\n * isFormLoading,\n * useKycMeQuery,\n * coinOptions,\n * chainOptions,\n * isOverValued,\n * isUnderValued,\n * maxValueFormatted,\n * minValueFormatted,\n * isValidReceiveAmount,\n * isValidCoinId,\n * currentChain,\n * } = useWithdrawForm(watch, setValue);\n */\nexport function useWithdrawForm(\n watch: UseFormWatch,\n setValue: UseFormSetValue,\n) {\n // Retrieve search parameters related to withdrawal\n const { coinId, coinType, transactionStep, withdrawMethodId } =\n useWithdrawSearchParams();\n const originId = useUserOriginId();\n // Watch specific form fields for changes\n const chainId: string = watch('chainId');\n const modal: string = useCurrentModal(CommonModalsKey);\n const amount = watch('amount');\n const debouncedAmount = useDebounce(amount);\n\n // Fetch KYC information based on the withdrawal method and transaction step\n const {\n kyc,\n error: errorKyc,\n refetch: refetchKyc,\n isPending: isPendingKyc,\n } = useKycMeByOriginId({\n enabled:\n [WithdrawMethodId.Crypto?.toString()].includes(withdrawMethodId) ==\n false && transactionStep === WithdrawStep.Form,\n });\n\n /**\n * Function to handle the fetched coin data.\n * Sets the chain ID if it is valid.\n *\n * @param {Account} data - The fetched account data.\n */\n function handleCoinFetched(data: Account): void {\n if (isValidChainId(data, chainId?.toString())) {\n return;\n }\n\n setValue(\n 'chainId',\n data?.coin?.chain != null\n ? data?.coin?.chain?.id?.toString()\n : (data?.coin?.tokens?.[0]?.chain?.id?.toString() ?? null),\n { shouldDirty: true },\n );\n }\n\n // Fetch account data by coin ID\n const {\n data: currentAccount,\n error: errorAccountByCoin,\n isLoading: isLoadingAccountByCoin,\n refetch: refetchAccountByCoin,\n } = useAccountByCoin({\n coinId,\n customOnSuccess: handleCoinFetched,\n enabled: transactionStep === WithdrawStep.Form,\n });\n\n // Fetch fee information based on the amount, coin ID, chain ID, and method ID\n const {\n fee,\n error: errorFee,\n isError: isErrorFee,\n refetch: refetchFee,\n isLoading: isLoadingFee,\n } = useFee({\n amount: parseToSubunits(debouncedAmount, currentAccount?.coin),\n coinId: coinId?.toString(),\n chainId: coinType == CoinType.Crypto ? chainId?.toString() : undefined,\n methodId: withdrawMethodId,\n enabled:\n coinType == CoinType.Crypto\n ? !!chainId && !!coinId && transactionStep !== WithdrawStep.Response\n : !!coinId && transactionStep !== WithdrawStep.Response,\n });\n\n // Watch the address field and debounce its value\n const address: string = watch('address');\n const debouncedAddress: string = useDebounce(address);\n\n // Fetch token lookup information based on the address, coin ID, and chain ID\n const {\n tokenLookup,\n error: errorTokenLookup,\n refetch: refetchTokenLookup,\n isPending: isPendingTokenLookup,\n } = useTokenLookup({\n address: debouncedAddress,\n coinId: coinId?.toString(),\n chainId: chainId?.toString(),\n enabled:\n coinType == CoinType.Crypto &&\n withdrawMethodId?.toString() === WithdrawMethodId.Crypto.toString() &&\n transactionStep === WithdrawStep.Form,\n });\n\n // Fetch wallet accounts by coin type\n const {\n accounts,\n error: errorAccounts,\n refetch: refetchAccounts,\n isLoading: isLoadingAccounts,\n } = useWalletAccountsByCoinType({\n coinType,\n enabled: transactionStep === WithdrawStep.Form,\n });\n\n // Fetch selected withdrawal method\n const {\n withdrawalMethod,\n error: errorWithdrawMethod,\n refetch: refetchWithdrawMethod,\n isLoading: isLoadingWithdrawMethod,\n } = useSelectedWithdrawalMethod({\n enabled: transactionStep === WithdrawStep.Form,\n });\n\n // Fetch withdrawal methods based on the coin ID and modal key\n const {\n error: errorWithdrawalMethods,\n isLoading: isPendingWithdrawalMethods,\n refetch: refetchWithdrawalMethods,\n ...withdrawMethodsQuery\n } = useWithdrawalMethods({\n enabled:\n transactionStep === WithdrawStep.Form &&\n modal === CommonModalsKey.Withdraw,\n coinId,\n });\n\n // Determine if the form is loading based on various loading states\n const isFormLoading: boolean =\n isPendingWithdrawalMethods || isLoadingAccounts || isPendingKyc;\n\n // Aggregate form errors from various queries\n const formError: AxiosError =\n errorWithdrawalMethods ??\n errorWithdrawMethod ??\n errorAccounts ??\n errorAccountByCoin ??\n errorKyc;\n\n /**\n * Function to refetch form data.\n * Refetches data from various queries if there are errors.\n */\n function refetchForm() {\n if (errorWithdrawalMethods) {\n refetchWithdrawalMethods();\n }\n\n if (errorWithdrawMethod) {\n refetchWithdrawMethod();\n }\n\n if (errorAccounts) {\n refetchAccounts();\n }\n\n if (errorAccountByCoin) {\n refetchAccountByCoin();\n }\n\n if (errorKyc) {\n refetchKyc();\n }\n }\n\n // Find the coin mapping based on the withdrawal method and coin ID\n const coinMapping: TransactionMapping = useMemo(\n () =>\n withdrawalMethod?.mappings?.find(\n mapping => mapping?.coin?.id?.toString() == coinId,\n ),\n [withdrawalMethod, coinId],\n );\n\n // Generate chain options based on the current account and coin type\n const chainOptions: Chain[] = useMemo(() => {\n if (coinType == CoinType.Fiat) {\n return [];\n }\n\n const options: Chain[] =\n currentAccount?.coin?.tokens?.map(token => token.chain) ?? [];\n\n if (currentAccount?.coin?.chain) {\n options.push(currentAccount?.coin?.chain);\n }\n\n return options;\n }, [currentAccount, coinType]);\n\n // Generate coin options based on the accounts\n const coinOptions: Coin[] = useMemo(() => {\n if (!accounts) return [];\n\n if (originId?.toString() === OriginId.Brazil?.toString()) {\n return accounts\n .filter(\n account => account?.coin?.id?.toString() === CoinID.BRL?.toString(),\n )\n ?.map(account => account?.coin);\n }\n\n return accounts.map((account: Account) => account.coin);\n }, [accounts]);\n\n // Check if the coin ID is valid based on the coin options\n const isValidCoinId: boolean = useMemo(() => {\n if (!coinOptions) {\n return false;\n }\n\n return coinOptions.some(coin => coin.id?.toString() === coinId);\n }, [coinId, coinOptions]);\n\n // Format the minimum value based on the coin mapping and current account\n const minValueFormatted: string = WalletService.maskCurrency({\n amount: getMoneyOrAmount(coinMapping?.minimum),\n coin: currentAccount?.coin,\n });\n\n // Format the maximum value based on the coin mapping and current account\n const maxValueFormatted: string = WalletService.maskCurrency({\n amount: getMoneyOrAmount(coinMapping?.maximum),\n coin: currentAccount?.coin,\n });\n\n // Check if the amount is overvalued based on the coin mapping\n const isOverValued: boolean = !!coinMapping\n ? getMoneyOrAmount(amount?.toString()) >\n getMoneyOrAmount(coinMapping?.maximum)\n : false;\n\n // Check if the amount is undervalued based on the coin mapping\n const isUnderValued: boolean = !!coinMapping\n ? getMoneyOrAmount(amount?.toString()) <\n getMoneyOrAmount(coinMapping?.minimum)\n : false;\n\n // Check if the receive amount is valid based on the fee\n const isValidReceiveAmount: boolean =\n getMoneyOrAmount(fee?.receiveAmount) > 0;\n\n // Find the current chain based on the chain options and chain ID\n const currentChain = useMemo(\n () => chainOptions?.find(chain => chain?.id?.toString() == chainId),\n [chainOptions, chainId],\n );\n\n return {\n feeQuery: {\n fee,\n errorFee,\n isErrorFee,\n refetchFee,\n isLoadingFee,\n },\n accountsQuery: {\n accounts,\n errorAccounts,\n refetchAccounts,\n isLoadingAccounts,\n },\n accountByCoinQuery: {\n currentAccount,\n errorAccountByCoin,\n isLoadingAccountByCoin,\n refetchAccountByCoin,\n },\n tokenLookupQuery: {\n tokenLookup,\n isPendingTokenLookup,\n errorTokenLookup,\n refetchTokenLookup,\n },\n withdrawMethodsQuery: {\n ...withdrawMethodsQuery,\n isPendingWithdrawalMethods,\n },\n selectedWithdrawalMethodQuery: {\n coinMapping,\n errorWithdrawMethod,\n refetchWithdrawMethod,\n withdrawalMethod,\n isLoadingWithdrawMethod,\n },\n\n formError,\n refetchForm,\n isFormLoading,\n useKycMeQuery: {\n kyc,\n errorKyc,\n refetchKyc,\n isPendingKyc,\n },\n coinOptions,\n chainOptions,\n isOverValued,\n isUnderValued,\n maxValueFormatted,\n minValueFormatted,\n isValidReceiveAmount,\n isValidCoinId,\n currentChain,\n };\n}\n","import styles from './styles.module.scss';\nimport { FeeProps } from './props';\nimport { ErrorChip } from '@starsoft/common/components';\nimport FeeLoader from './Loader';\nimport { useFormContext } from 'react-hook-form';\nimport FeeSkeleton from './Skeleton';\nimport { useTranslation, useWithdrawForm } from '../../../../../../../../hooks';\nimport { WithdrawFormCreateDto } from '../../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\nimport { WalletService } from '@starsoft/common/services';\n\n/**\n * Fee Component\n * This component is responsible for displaying the fee information in the withdrawal form.\n * It handles loading states, errors, and displays the fee and network fee if applicable.\n *\n * @param {FeeProps} props - The properties passed to the component.\n * @param {boolean} props.noChain - A flag indicating whether to display the network fee.\n * @param {boolean} props.isLoading - A flag indicating whether the fee data is loading.\n * @returns {JSX.Element} The rendered fee component, which includes fee and network fee information.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function Fee({ noChain, isLoading }: FeeProps) {\n // Retrieve the translation function for the 'withdraw' namespace\n const { t } = useTranslation('withdraw');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Use custom hook to manage withdrawal form state and methods\n const {\n feeQuery: { fee, isErrorFee, isLoadingFee, refetchFee },\n } = useWithdrawForm(watch, setValue);\n\n // If there is an error fetching the fee, render an error chip\n if (isErrorFee) {\n return ;\n }\n\n // If the fee data is still loading, render a skeleton loader\n if (isLoading) {\n return ;\n }\n\n // Render the fee and network fee information\n return (\n
\n
\n

{t('fee_label')}

\n\n

\n \n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(fee?.fee),\n })}\n \n

\n
\n {!noChain && (\n
\n

{t('network_fee_label')}

\n\n

\n \n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(fee?.chainFee),\n })}\n \n

\n
\n )}\n
\n );\n}\n","import styles from '../styles.module.scss';\nimport { Button, FormGroup } from '@starsoft/common/components';\nimport { CoinType } from '@starsoft/common/models';\nimport skeleton from './styles.module.scss';\nimport { TransactionModalsWithdrawLayoutFooterSkeletonProps } from './props';\nimport { WithdrawStep } from '@starsoft/common/enums';\nimport { TransactionOptions } from '../../../../props';\nimport Fee from '../../../../Modals/Withdraw/Content/Form/Layout/Fee';\n\nexport default function TransactionModalsWithdrawLayoutFooterSkeleton<\n T extends TransactionOptions,\n>({\n coinType,\n transactionStep,\n}: TransactionModalsWithdrawLayoutFooterSkeletonProps) {\n if ([WithdrawStep.Response].includes(transactionStep as WithdrawStep)) {\n return null;\n }\n\n return (\n
\n \n
\n
\n \n

\n

\n

\n \n\n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { Button, FormGroup } from '@starsoft/common/components';\nimport { CoinType } from '@starsoft/common/models';\nimport { AnimatePresence } from 'framer-motion';\nimport { motion } from 'framer-motion';\nimport { fadeInUp } from './variants';\nimport { WalletService } from '@starsoft/common/services';\nimport { TransactionModalsLayoutFooterProps } from './props';\nimport TransactionModalsWithdrawLayoutFooterSkeleton from './Skeleton';\nimport { TransactionOptions } from '../../../props';\nimport {\n CommonModalsKey,\n DepositStep,\n WithdrawStep,\n} from '@starsoft/common/enums';\nimport Fee from '../../../Modals/Withdraw/Content/Form/Layout/Fee';\nimport FeeLoader from '../../../Modals/Withdraw/Content/Form/Layout/Fee/Loader';\nimport { useCurrentModal } from '../../../../../hooks/modals/useCurrentModal';\nimport { useTranslation } from '../../../../../hooks';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * TransactionModalsLayoutFooter Component\n * This component is responsible for rendering the footer of transaction modals.\n * It handles the display of fees, amounts, and the submit button based on the transaction step and modal type.\n *\n * @template T - A generic type extending TransactionOptions.\n * @param {TransactionModalsLayoutFooterProps} props - The properties for the component.\n * @param {boolean} props.error - Indicates if there is an error.\n * @param {number} props.amount - The transaction amount.\n * @param {string} props.coin - The type of coin used in the transaction.\n * @param {CoinType} props.coinType - The type of coin (Fiat or Crypto).\n * @param {boolean} props.isLoading - Indicates if the data is still loading.\n * @param {object} props.feeOptions - Options related to transaction fees.\n * @param {string} props.i18nNamespace - The namespace for internationalization.\n * @param {boolean} props.isLoadingSubmit - Indicates if the submit action is loading.\n * @param {WithdrawStep | DepositStep} props.transactionStep - The current step in the transaction process.\n * @param {boolean} props.showExternalLink - Indicates if an external link should be shown.\n * @param {boolean} props.isSubmitButtonDisabled - Indicates if the submit button should be disabled.\n *\n * @returns {JSX.Element | null} The rendered component displaying the footer or null if there is an error.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionModalsLayoutFooter<\n T extends TransactionOptions,\n>({\n error,\n amount,\n coin,\n coinType,\n isLoading,\n feeOptions,\n i18nNamespace,\n isLoadingSubmit,\n transactionStep,\n showExternalLink,\n isSubmitButtonDisabled,\n}: TransactionModalsLayoutFooterProps) {\n const modal = useCurrentModal(CommonModalsKey);\n const { t } = useTranslation('common');\n const { t: tTransaction } = useTranslation(i18nNamespace);\n\n /**\n * getValue function\n * This function calculates and returns the formatted currency value based on the current modal and transaction details.\n *\n * @returns {string} The formatted currency value.\n */\n function getValue(): string {\n if (modal == CommonModalsKey.Withdraw) {\n return WalletService.maskCurrency({\n amount: getMoneyOrAmount(feeOptions?.fee?.receiveAmount),\n coin,\n });\n }\n\n return WalletService.maskCurrency({\n amount: getMoneyOrAmount(amount?.toString()),\n coin,\n });\n }\n\n const hideFooter: boolean =\n [WithdrawStep.Response, DepositStep.Response].includes(transactionStep) ||\n (transactionStep == DepositStep.Form &&\n modal == CommonModalsKey.Deposit &&\n coinType == CoinType.Crypto);\n\n if (isLoading) {\n return (\n \n );\n }\n\n if (error) {\n return null;\n }\n\n return (\n \n \n {modal != CommonModalsKey.Deposit && (\n <>\n \n
\n \n )}\n\n
\n \n \n

{getValue()}

\n \n \n\n \n {t('continue_label')}\n \n \n
\n \n \n );\n}\n","export const fadeInRight = {\n hidden: {\n opacity: 0,\n x: 20,\n transition: {\n duration: 0.25,\n type: 'spring',\n damping: 25,\n stiffness: 500,\n },\n },\n show: {\n opacity: 1,\n x: 0,\n transition: {\n duration: 0.25,\n type: 'spring',\n damping: 25,\n stiffness: 500,\n },\n },\n};\n","import { useCallback } from 'react';\nimport { DepositSearchParamValues } from './props';\nimport { useCurrentModal } from '../../modals/useCurrentModal';\nimport { DepositStep, CommonModalsKey } from '../../../enums';\nimport { CoinType } from '../../../models';\nimport { Nullable } from '../../../interfaces';\nimport { useSearchParams } from '../../useSearchParams';\nimport { useNavigate } from '../../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\n\n/**\n * Custom hook to manage deposit-related search parameters.\n * This hook provides functionalities to retrieve and manipulate search parameters\n * related to deposit operations, such as transaction steps, coin types, and user payment details.\n *\n * @returns {Object} An object containing the current search parameters and functions to modify them.\n */\nexport default function useDepositSearchParams() {\n // Retrieve the current URL search parameters\n const search: URLSearchParams = useSearchParams();\n // Get the current modal key, if any\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n // Function to navigate and update the URL\n const navigate: NavigateFunction = useNavigate();\n\n // Extract the transaction step from the search parameters, defaulting to DepositStep.Form\n const transactionStep: DepositStep =\n (search.get('step') as DepositStep) ?? DepositStep.Form;\n // Extract the coin type from the search parameters, defaulting to CoinType.Fiat\n const coinType: CoinType =\n (search.get('coin-type') as CoinType) ?? CoinType.Fiat;\n // Extract the method ID from the search parameters\n const searchMethodId: string | null = search.get('method-id');\n // Convert method ID to a nullable string\n const depositMethodId: Nullable = searchMethodId\n ? searchMethodId\n : null;\n // Extract the coin ID from the search parameters\n const searchCoinId: string | null = search.get('coin-id');\n // Convert coin ID to a nullable string\n const coinId: Nullable = searchCoinId ? searchCoinId : null;\n // Extract user payment details from the search parameters\n const userPaymentDetails: string = search.get('user-payment');\n\n /**\n * Function to set a specific deposit search parameter.\n * It updates the URL with the new search parameter value.\n *\n * @template K - The key of the search parameter to set.\n * @param {K} searchParamKey - The key of the search parameter.\n * @param {DepositSearchParamValues[K]} value - The value to set for the search parameter.\n *\n * @example\n * handleSetDepositSearchParams('step', DepositStep.Confirm);\n */\n const handleSetDepositSearchParams = useCallback(\n (\n searchParamKey: K,\n value: DepositSearchParamValues[K],\n ) => {\n if (!modal) {\n return;\n }\n search.set(searchParamKey, `${String(value?.toString())}`);\n navigate({\n search: search.toString(),\n hash: modal,\n });\n },\n [search, modal, navigate],\n );\n\n /**\n * Function to delete a specific deposit search parameter.\n * It removes the search parameter from the URL.\n *\n * @template K - The key of the search parameter to delete.\n * @param {K} searchParamKey - The key of the search parameter.\n *\n * @example\n * handleDeleteDepositSearchParams('coin-id');\n */\n const handleDeleteDepositSearchParams = useCallback(\n (searchParamKey: K) => {\n search.delete(searchParamKey);\n navigate({\n search: search.toString(),\n hash: modal,\n });\n },\n [search, modal, navigate],\n );\n\n // Return the current search parameters and the functions to modify them\n return {\n transactionStep,\n coinType,\n depositMethodId,\n coinId,\n userPaymentDetails,\n handleSetDepositSearchParams,\n handleDeleteDepositSearchParams,\n };\n}\n\nexport type { DepositSearchParamValues };\n","export namespace DepositMethodId {\n export const Crypto = 1;\n export const BetterbroBrazillianPix = 2;\n export const PixtopayBrazillianPix = 3;\n export const BetterbroMexicanSpei = 4;\n export const BetterbroMercadoPago = 5;\n export const BetterbroUpi = 6;\n export const PayGamesIndiaUpi = 7;\n export const PayGamesSingaporePayNow = 8;\n export const PayGamesIndonesiaQris = 9;\n export const PayGamesSouthAfrica = 10;\n export const PayGamesNigeria = 11;\n}\n\nexport type DepositMethodIdType =\n (typeof DepositMethodId)[keyof typeof DepositMethodId];\n","export enum DepositMethodsQueryKeys {\n Primary = 'deposit-methods/',\n ById = 'deposit-methods/:id',\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UseDepositMethodsQueryKey } from './props';\nimport { DepositMethod, PaginatedResponse } from '@starsoft/common/models';\nimport { DepositMethodsInputDto } from '@starsoft/common/dto';\n\nexport async function fetchDepositMethods(\n { pageParam = 1, queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise> {\n const { limit, coinId }: DepositMethodsInputDto = queryKey[1];\n\n const response: AxiosResponse> =\n await axiosInstance.get>(\n 'deposit-methods',\n {\n params: {\n page: pageParam,\n limit,\n coinId,\n },\n },\n );\n\n return response.data;\n}\n","import { InfiniteData } from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@starsoft/common/services/query-client';\nimport { DepositMethodsQueryKeys } from '../../queryKeys';\nimport { fetchDepositMethods } from './service';\nimport { useMemo } from 'react';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport {\n useInfiniteQueryReset,\n useInfiniteQueryCallbacks,\n useAxiosInstance,\n} from '@starsoft/common/hooks';\nimport {\n DepositMethod,\n GenericError,\n PaginatedResponse,\n} from '@starsoft/common/models';\nimport { UseDepositMethodsProps, UseDepositMethodsQueryKey } from './props';\nimport { DepositMethodsInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to fetch and manage deposit methods with infinite scrolling\n *\n * This hook handles fetching deposit methods with pagination support using infinite query,\n * managing the query cache, and providing pagination controls.\n *\n * @param {UseDepositMethodsProps} options - Optional configuration object\n * @param {boolean} [options.enabled=true] - Whether the query should automatically run\n * @param {number} [options.coinId] - ID of the coin to filter deposit methods\n *\n * @returns {Object} An object containing:\n * - depositMethods: Flattened array of all fetched deposit methods\n * - isPending: Boolean indicating if initial query is in progress and not idle\n * - hasNextPage: Boolean indicating if more pages are available\n * - fetchNextPage: Function to load next page of data\n * - isFetchingNextPage: Boolean indicating if fetching next page\n * - hasPreviousPage: Boolean indicating if previous pages exist\n * - fetchPreviousPage: Function to load previous page\n * - isFetchingPreviousPage: Boolean indicating if fetching previous page\n * - refetch: Function to manually refetch all data\n */\nexport function useDepositMethods(options?: UseDepositMethodsProps) {\n const { enabled = true, coinId } = options ?? {};\n const params: DepositMethodsInputDto = {\n limit: 20,\n coinId,\n };\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const queryKey: UseDepositMethodsQueryKey = [\n DepositMethodsQueryKeys.Primary,\n params,\n ];\n\n const { getNextPageParam, getPreviousPageParam } =\n useInfiniteQueryCallbacks();\n useInfiniteQueryReset(queryKey);\n\n const { data, fetchStatus, isPending, ...infinityQuery } = useInfiniteQuery<\n PaginatedResponse,\n AxiosError,\n InfiniteData>,\n UseDepositMethodsQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchDepositMethods(queryContext, axiosInstance),\n initialPageParam: 1,\n getNextPageParam,\n staleTime: 5 * 1000,\n getPreviousPageParam,\n refetchOnWindowFocus: false,\n enabled: enabled && !!coinId,\n });\n\n // Flatten paginated data into a single array of deposit methods\n const formattedData: DepositMethod[] = useMemo(\n () => data?.pages?.map(page => page.data)?.flat() as DepositMethod[],\n [data],\n );\n\n return {\n ...infinityQuery,\n depositMethods: formattedData,\n isPending: isPending && fetchStatus != 'idle',\n };\n}\n","import { useMemo } from 'react';\nimport { UseFormSetValue, UseFormWatch } from 'react-hook-form';\nimport {\n Account,\n AccountAddress,\n Chain,\n Coin,\n CoinType,\n DepositMethod,\n GenericError,\n Token,\n} from '../../models';\nimport { AxiosError } from 'axios';\nimport { Nullable } from '../../interfaces';\nimport { useDebounce, useWalletAccountsByCoinType } from '../../hooks';\nimport { useUserOriginId } from '../user-identity/useUserOriginId';\nimport { WalletService } from '../../services';\nimport { CreateDepositRequestDto } from '../../dto';\nimport useDepositSearchParams from './useDepositSearchParams';\nimport { CoinID, DepositMethodId, DepositStep, KYCStatus } from '../../enums';\nimport { isValidChainId } from '../../utils';\nimport { useUserIdentityValidateByOriginId } from '../user-identity/useUserIdentityValidateByOriginId';\nimport { useDepositMethods, useKycMeByOriginId } from '../../api';\nimport { useAccountByCoin } from '../../api/account/queries';\nimport { useCountries } from '../../api/countries/queries';\nimport { DepositMapping } from '../../models/deposit/mapping';\nimport { getMoneyOrAmount } from '../../utils';\nimport { OriginId } from '@starsoft/common/models/origin/id';\n\n/**\n * Custom hook to manage the state of a deposit form.\n * This hook fetches and manages various data required for the deposit form,\n * such as user identity, deposit methods, accounts, countries, and KYC status.\n *\n * @param {UseFormWatch} watch - Function to watch form fields.\n * @param {UseFormSetValue} setValue - Function to set form field values.\n * @returns {object} - Returns an object containing various queries and form state.\n *\n * @example\n * const { accountsQuery, depositMethodsQuery, isFormLoading } = useDepositForm(watch, setValue);\n */\nexport function useDepositForm(\n watch: UseFormWatch,\n setValue: UseFormSetValue,\n) {\n // Extract search parameters related to deposit\n const { coinId, coinType, depositMethodId, transactionStep } =\n useDepositSearchParams();\n\n // Watch specific form fields\n const identifier: string | undefined = watch('identity.identifier');\n const selectedChainId: string | undefined = watch('chainId');\n const birthDate: string | undefined = watch('identity.birthDate');\n const name: string | undefined = watch('identity.name');\n const chainId: string | undefined = watch('chainId');\n const originId: Nullable = useUserOriginId();\n\n // Debounce the watched values to avoid frequent updates\n const debouncedIdentifier = useDebounce(identifier);\n const debouncedName = useDebounce(name);\n const debouncedBirthDate = useDebounce(birthDate);\n\n /**\n * Function to handle the fetched coin data.\n * It sets the chain ID in the form if the fetched data is valid.\n *\n * @param {Account} data - The fetched account data.\n */\n function handleCoinFetched(data: Account): void {\n if (isValidChainId(data, chainId)) {\n return;\n }\n\n setValue(\n 'chainId',\n data?.coin?.chain != null\n ? data?.coin?.chain?.id?.toString()\n : (data?.coin?.tokens?.[0]?.chain?.id?.toString() ?? null),\n { shouldDirty: true },\n );\n }\n\n // Payload for user identity validation\n const payload = {\n identifier: debouncedIdentifier,\n name: debouncedName ? debouncedName : undefined,\n birthDate: birthDate ? String(debouncedBirthDate) : undefined,\n originId,\n };\n\n // Query to validate user identity by origin ID\n const {\n data: personalIdentityLookup,\n error: errorPersonalIdentityLookup,\n refetch: refetchPersonalIdentityLookup,\n isLoading: isPendingPersonalIdentityLookup,\n } = useUserIdentityValidateByOriginId({\n payload,\n originId,\n enabled:\n transactionStep == DepositStep.CreatePersonalIdentity &&\n coinType == CoinType.Fiat,\n });\n\n // Query to fetch deposit methods\n const {\n error: errorDepositMethods,\n refetch: refetchDepositMethods,\n isPending: isPendingDepositMethods,\n depositMethods,\n ...depositMethodsQuery\n } = useDepositMethods({\n enabled: transactionStep == DepositStep.Form,\n coinId,\n });\n\n // Query to fetch wallet accounts by coin type\n const {\n accounts,\n isLoading: isLoadingAccounts,\n error: errorAccounts,\n refetch: refetchAccounts,\n } = useWalletAccountsByCoinType({\n coinType,\n enabled: transactionStep === DepositStep.Form,\n });\n\n // Query to fetch countries\n const {\n countries,\n error: errorCountries,\n refetch: refetchCountries,\n isLoading: isLoadingCountries,\n ...rest\n } = useCountries({\n enabled: transactionStep === DepositStep.Form && coinType == CoinType.Fiat,\n });\n\n // Query to fetch account by coin\n const {\n data: currentAccount,\n error: errorAccountByCoin,\n isLoading: isLoadingAccountByCoin,\n refetch: refetchAccountByCoin,\n } = useAccountByCoin({\n coinId,\n customOnSuccess: handleCoinFetched,\n enabled: transactionStep === DepositStep.Form,\n });\n\n // Query to fetch KYC status by origin ID\n const {\n kyc,\n error: errorKyc,\n refetch: refetchKyc,\n isPending: isPendingKyc,\n } = useKycMeByOriginId({\n enabled: [DepositStep.Form, DepositStep.CreatePersonalIdentity].includes(\n transactionStep,\n ),\n originId,\n });\n\n // Determine if the form is loading based on account loading state\n const isFormLoading: boolean = isLoadingAccounts;\n\n // Aggregate form errors from various queries\n const formError: AxiosError =\n errorDepositMethods ??\n errorAccounts ??\n errorCountries ??\n errorAccountByCoin;\n\n /**\n * Function to refetch all form-related queries.\n * It refetches deposit methods, accounts, countries, account by coin, and KYC status.\n */\n function refetchForm() {\n if (errorDepositMethods) {\n refetchDepositMethods();\n }\n\n if (errorAccounts) {\n refetchAccounts();\n }\n\n if (errorCountries) {\n refetchCountries();\n }\n\n if (errorAccountByCoin) {\n refetchAccountByCoin();\n }\n\n if (errorKyc) {\n refetchKyc();\n }\n }\n\n // Memoized value for the selected deposit method\n const depositMethod: Nullable = useMemo(() => {\n if (!depositMethods || depositMethods?.length === 0) {\n return null;\n }\n\n return depositMethods?.find(\n depositMethod => depositMethod?.id?.toString() === depositMethodId,\n );\n }, [depositMethodId, depositMethods]);\n\n // Memoized value for the coin mapping based on the selected deposit method\n const coinMapping: DepositMapping = useMemo(\n () =>\n depositMethod?.mappings?.find(\n mapping => mapping?.coin?.id?.toString() === coinId,\n ),\n [depositMethod, coinId],\n );\n\n // Memoized value for the chain options based on the current account and coin type\n const chainOptions: Chain[] = useMemo(() => {\n if (\n coinType == CoinType.Fiat ||\n originId?.toString() == OriginId.Brazil?.toString()\n ) {\n return [];\n }\n\n const options =\n currentAccount?.coin?.tokens?.map(token => token.chain) ?? [];\n\n if (currentAccount?.coin?.chain) {\n options.push(currentAccount?.coin?.chain);\n }\n\n return options;\n }, [currentAccount, coinType, originId]);\n\n // Memoized value for the account address based on the current account and selected chain ID\n const accountAddress: Nullable = useMemo(() => {\n if (\n !currentAccount ||\n !selectedChainId ||\n originId?.toString() == OriginId.Brazil?.toString()\n ) {\n return null;\n }\n\n const tokens: Token[] = currentAccount?.coin?.tokens;\n const selectedChain: Chain = chainOptions?.find(\n chain => chain?.id?.toString() === selectedChainId,\n );\n\n return tokens?.length === 0\n ? currentAccount?.addresses?.[0]\n : currentAccount?.addresses?.find(\n ({ format }) => format.id === selectedChain?.format?.id,\n );\n }, [currentAccount, selectedChainId, chainOptions, originId]);\n\n // Memoized value for the coin options based on the accounts\n const coinOptions: Coin[] = useMemo(() => {\n if (!accounts) return [];\n\n if (originId?.toString() === OriginId.Brazil?.toString()) {\n return accounts\n .filter(\n account => account?.coin?.id?.toString() === CoinID.BRL?.toString(),\n )\n ?.map(account => account?.coin);\n }\n\n return accounts.map((account: Account) => account.coin);\n }, [accounts]);\n\n // Memoized value to check if the coin ID is valid\n const isValidCoinId: boolean = useMemo(() => {\n if (!coinOptions) {\n return false;\n }\n\n return coinOptions.some(coin => coin.id?.toString() === coinId);\n }, [coinId, coinOptions]);\n\n // Watch the amount field in the form\n const amount: number | string | bigint = watch('amount');\n\n // Format the minimum value based on the coin mapping and current account\n const minValueFormatted: string = WalletService.maskCurrency({\n amount: getMoneyOrAmount(coinMapping?.minimum),\n coin: currentAccount?.coin,\n });\n\n // Format the maximum value based on the coin mapping and current account\n const maxValueFormatted: string = WalletService.maskCurrency({\n amount: getMoneyOrAmount(coinMapping?.maximum),\n coin: currentAccount?.coin,\n });\n\n // Check if the amount is overvalued based on the coin mapping\n const isOverValued: boolean = !!coinMapping\n ? getMoneyOrAmount(amount?.toString()) >\n getMoneyOrAmount(coinMapping?.maximum)\n : false;\n\n // Check if the amount is undervalued based on the coin mapping\n const isUnderValued: boolean = !!coinMapping\n ? getMoneyOrAmount(amount?.toString()) <\n getMoneyOrAmount(coinMapping?.minimum)\n : false;\n\n // Check if the receive amount is valid\n const isValidReceiveAmount: boolean =\n getMoneyOrAmount(amount?.toString()) > 0;\n\n // Check if the external link should be shown based on the transaction step and KYC status\n const showExternalLink =\n transactionStep == DepositStep.Form &&\n kyc?.status == KYCStatus.Verified &&\n [\n DepositMethodId.BetterbroUpi?.toString(),\n DepositMethodId.PayGamesIndiaUpi?.toString(),\n DepositMethodId.PayGamesSingaporePayNow?.toString(),\n DepositMethodId.PayGamesIndonesiaQris?.toString(),\n DepositMethodId.PayGamesSouthAfrica?.toString(),\n DepositMethodId.PayGamesNigeria?.toString(),\n ].includes(depositMethodId?.toString());\n\n // Memoized value for the current chain based on the chain options and chain ID\n const currentChain = useMemo(\n () => chainOptions?.find(chain => chain?.id?.toString() == chainId),\n [chainOptions, chainId],\n );\n\n // Return the form state and queries\n return {\n personalIdentityLookUpQuery: {\n personalIdentityLookup,\n errorPersonalIdentityLookup,\n refetchPersonalIdentityLookup,\n isPendingPersonalIdentityLookup,\n },\n depositMethodsQuery: {\n errorDepositMethods,\n refetchDepositMethods,\n isPendingDepositMethods,\n depositMethods,\n ...depositMethodsQuery,\n },\n accountsQuery: {\n accounts,\n isLoadingAccounts,\n errorAccounts,\n refetchAccounts,\n },\n countriesQuery: {\n countries,\n errorCountries,\n refetchCountries,\n isLoadingCountries,\n ...rest,\n },\n accountByCoinQuery: {\n currentAccount,\n accountAddress,\n errorAccountByCoin,\n isLoadingAccountByCoin,\n refetchAccountByCoin,\n },\n useKycMeByOriginIdQuery: {\n kyc,\n errorKyc,\n refetchKyc,\n isPendingKyc,\n },\n formError,\n refetchForm,\n isFormLoading,\n coinMapping,\n depositMethod,\n coinOptions,\n chainOptions,\n isOverValued,\n isUnderValued,\n maxValueFormatted,\n minValueFormatted,\n isValidReceiveAmount,\n showExternalLink,\n isValidCoinId,\n currentChain,\n };\n}\n","import {\n DepositStep,\n KycCheckpointId,\n KycIdentityOriginId,\n UserIdentityStatus,\n} from '../../../enums';\nimport { useUserOriginId } from '../../user-identity/useUserOriginId';\nimport { useDepositForm } from '../useDepositForm';\nimport useDepositSearchParams from '../useDepositSearchParams';\nimport { UseDepositFormStateProps } from './props';\nimport { UserIdentity } from '../../../models';\nimport { UserIdentityValidationResultOutputDto } from '../../../dto';\nimport { usePhoneNumberForm } from '../../user-phone-number/useUserPhoneNumberForm';\n\n/**\n * Custom hook to manage the state of a deposit form.\n * This hook determines the validity of the form based on various parameters and conditions.\n *\n * @param {UseDepositFormStateProps} props - The properties required for the hook.\n * @param {Function} props.watch - Function to watch form fields.\n * @param {Function} props.setValue - Function to set form field values.\n * @returns {boolean} - Returns a boolean indicating if the form is valid or not.\n *\n * @example\n * // Usage example:\n * const isFormValid = useDepositFormState({\n * watch: formWatchFunction,\n * setValue: formSetValueFunction,\n * });\n */\nexport function useDepositFormState({\n watch,\n setValue,\n}: UseDepositFormStateProps) {\n // Extract deposit method ID and transaction step from search parameters\n const { depositMethodId, transactionStep } = useDepositSearchParams();\n // Get the user's origin ID\n const originId = useUserOriginId();\n\n // Watch specific form fields\n const amount = watch('amount');\n const identifier: string | undefined = watch('identity.identifier');\n const name = watch('identity.name');\n const birthDate = watch('identity.birthDate');\n\n // Destructure values from the useDepositForm hook\n const {\n isOverValued,\n isUnderValued,\n useKycMeByOriginIdQuery: { kyc },\n isValidReceiveAmount,\n personalIdentityLookUpQuery: {\n personalIdentityLookup,\n errorPersonalIdentityLookup,\n },\n } = useDepositForm(watch, setValue);\n\n // Destructure values from the usePhoneNumberForm hook\n const { isSubmitDisabled } = usePhoneNumberForm({ watch, setValue });\n\n // Determine form validity based on the current transaction step\n switch (transactionStep) {\n case DepositStep.Form:\n // Check conditions for the Form step\n return (\n !amount ||\n amount === 0 ||\n !depositMethodId ||\n isOverValued ||\n isUnderValued ||\n !isValidReceiveAmount\n );\n\n case DepositStep.CreatePersonalIdentity:\n // Check conditions based on the user's origin ID\n switch (originId?.toString()) {\n case KycIdentityOriginId.Brazil?.toString():\n // Conditions specific to Brazil\n return (\n !identifier ||\n (personalIdentityLookup as unknown as UserIdentity)?.status ==\n UserIdentityStatus.Invalid ||\n !!errorPersonalIdentityLookup\n );\n case KycIdentityOriginId.India?.toString():\n case KycIdentityOriginId.Mexico?.toString():\n case KycIdentityOriginId.Argentina?.toString():\n // Conditions for India, Mexico, and Argentina\n switch (kyc?.stage?.checkpoint?.id?.toString()) {\n case KycCheckpointId.VerifiedPhoneNumber?.toString():\n return isSubmitDisabled;\n case KycCheckpointId.Identity?.toString():\n default:\n return (\n !identifier ||\n !name ||\n !birthDate ||\n (!!personalIdentityLookup &&\n !(\n personalIdentityLookup as UserIdentityValidationResultOutputDto\n )?.valid)\n );\n }\n }\n break;\n case DepositStep.Response:\n // Always return false for the Response step\n return false;\n }\n}\n\nexport type { UseDepositFormStateProps };\n","import { DepositBetterBroPixRequestDto } from '@starsoft/common/dto';\nimport { Deposit } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function createDeposit(\n data: DepositBetterBroPixRequestDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n '/deposits/better-bro',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { DepositStep, CommonModalsKey } from '../../enums';\nimport { Deposit } from '../../models';\nimport { useModalNavigation } from '../modals/useModalNavigation';\nimport { useSearchParams } from '../useSearchParams';\n\n/**\n * Custom hook to handle deposit callbacks.\n * This hook provides a function to handle successful deposit operations,\n * updating the URL search parameters and optionally redirecting externally.\n *\n * @param {boolean} [externalRedirect] - Optional flag to determine if an external redirect should occur.\n * @returns {Object} An object containing the onSuccess function.\n *\n * @example\n * const { onSuccess } = useDepositCallback(true);\n * onSuccess(deposit);\n */\nexport function useDepositCallback(externalRedirect?: boolean) {\n // Retrieve the current URL search parameters\n const searchParams: URLSearchParams = useSearchParams();\n // Destructure the navigateToModal function from useModalNavigation hook\n const { navigateToModal } = useModalNavigation();\n\n /**\n * Function to handle successful deposit operations.\n * It updates the URL search parameters with the deposit ID and step,\n * and navigates to the deposit modal. Optionally, it can open an external link.\n *\n * @param {Deposit} deposit - The deposit object containing details of the successful deposit.\n *\n * @example\n * const deposit = { id: 123, paymentLink: { url: 'https://example.com' } };\n * onSuccess(deposit);\n */\n function onSuccess(deposit: Deposit) {\n // Check if external redirect is required\n if (externalRedirect) {\n setTimeout(() => {\n // Open the payment link in a new tab\n window.open(deposit?.paymentLink?.url, '_blank');\n });\n }\n\n // Create a new URLSearchParams object from the current search parameters\n const newUrlSearchParams = new URLSearchParams(searchParams);\n // Set the deposit ID in the search parameters\n newUrlSearchParams.set('deposit-id', deposit.id.toString());\n // Set the step to 'Response' in the search parameters\n newUrlSearchParams.set('step', DepositStep.Response);\n\n // Navigate to the deposit modal with the updated search parameters\n navigateToModal(\n CommonModalsKey.Deposit,\n `?${newUrlSearchParams.toString()}`,\n );\n }\n\n // Return the onSuccess function\n return {\n onSuccess,\n };\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createDeposit } from './service';\nimport { DepositMethodId } from '@starsoft/common/enums';\nimport useDepositSearchParams from '../../../../hooks/deposit/useDepositSearchParams';\nimport { useDepositCallback } from '../../../../hooks/deposit';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { DepositBetterBroPixRequestDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to handle deposit operations for BetterBro methods.\n *\n * This hook utilizes the `useMutation` from React Query to manage the deposit\n * operation. It determines if an external redirect is needed based on the deposit\n * method ID and executes the deposit function accordingly.\n *\n * @returns {Object} - Returns an object containing the deposit mutation function and loading state.\n * @returns {Function} return.createDepositBetterBro - Function to initiate a deposit operation.\n * @returns {boolean} return.isLoading - Indicates if a deposit operation is currently loading.\n */\nexport function useDepositBetterBro() {\n // Retrieve the deposit method ID from the search parameters\n const { depositMethodId } = useDepositSearchParams();\n\n // Determine if the deposit method requires an external redirect\n const hasExternalRedirect = [\n DepositMethodId.BetterbroMercadoPago?.toString(),\n DepositMethodId.BetterbroMexicanSpei?.toString(),\n DepositMethodId.BetterbroUpi?.toString(),\n DepositMethodId.PayGamesIndiaUpi?.toString(),\n DepositMethodId.PayGamesIndonesiaQris?.toString(),\n DepositMethodId.PayGamesNigeria?.toString(),\n DepositMethodId.PayGamesSingaporePayNow?.toString(),\n DepositMethodId.PayGamesSouthAfrica?.toString(),\n ].includes(depositMethodId);\n\n // Get an Axios instance for making HTTP requests\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Get the success callback function for the deposit operation\n const { onSuccess } = useDepositCallback(hasExternalRedirect);\n\n // Use the useMutation hook to manage the deposit operation\n const { mutate, isPending } = useMutation({\n // Function to execute the deposit operation\n mutationFn: (data: DepositBetterBroPixRequestDto) =>\n createDeposit(data, axiosInstance),\n onSuccess, // Callback function to execute on successful deposit\n });\n\n // Return the deposit mutation function and loading state\n return {\n createDepositBetterBro: mutate, // Function to initiate a deposit operation\n isLoading: isPending, // Indicates if a deposit operation is currently loading\n };\n}\n","import { DepositPixToPayRequestDto } from '@starsoft/common/dto';\nimport { Deposit } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function createDepositPixToPay(\n data: DepositPixToPayRequestDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n '/deposits/pix-to-pay',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createDepositPixToPay } from './service';\nimport { useDepositCallback } from '../../../../hooks/deposit';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { DepositPixToPayRequestDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to handle deposit operations for PixToPay payments.\n *\n * This hook utilizes the `useMutation` from React Query to manage the deposit\n * operation. It handles the deposit operation through PixToPay and includes\n * automatic retries on failure.\n *\n * @returns {Object} - Returns an object containing the deposit mutation function and loading state.\n * @returns {Function} return.createDepositPixToPay - Function to initiate a PixToPay deposit operation.\n * @returns {boolean} return.isLoading - Indicates if a deposit operation is currently loading.\n */\nexport function useDepositPixToPay() {\n // Get the success callback function for the deposit operation\n const { onSuccess } = useDepositCallback();\n\n // Get an Axios instance for making HTTP requests\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Use the useMutation hook to manage the deposit operation\n const { mutate, isPending } = useMutation({\n // Function to execute the PixToPay deposit operation\n mutationFn: (data: DepositPixToPayRequestDto) =>\n createDepositPixToPay(data, axiosInstance),\n onSuccess, // Callback function to execute on successful deposit\n });\n\n // Return the deposit mutation function and loading state\n return {\n createDepositPixToPay: mutate, // Function to initiate a PixToPay deposit operation\n isLoading: isPending, // Indicates if a deposit operation is currently loading\n };\n}\n","import { DepositPayGamesRequestDto } from '@starsoft/common/dto/deposit/deposit-pay-games-request.dto';\nimport { Deposit } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function createDeposit(\n data: DepositPayGamesRequestDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n '/deposits/pay-games',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createDeposit } from './service';\nimport { DepositMethodId } from '@starsoft/common/enums';\nimport useDepositSearchParams from '../../../../hooks/deposit/useDepositSearchParams';\nimport { useDepositCallback } from '../../../../hooks/deposit';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { AxiosInstance } from 'axios';\nimport { DepositPayGamesRequestDto } from '@starsoft/common/dto/deposit/deposit-pay-games-request.dto';\n\n/**\n * Custom hook for handling PayGames deposit functionality\n *\n * This hook manages the deposit process for PayGames payment methods, including\n * various regional payment options like MercadoPago, UPI, QRIS etc.\n *\n * @returns {Object} An object containing:\n * - createDepositPayGames: Function to initiate a deposit\n * - isLoading: Boolean indicating if a deposit request is in progress\n */\nexport function useDepositPayGames() {\n // Get deposit method ID from URL search params\n const { depositMethodId } = useDepositSearchParams();\n\n // Check if the selected payment method requires external redirect\n const hasExternalRedirect = [\n DepositMethodId.BetterbroMercadoPago?.toString(),\n DepositMethodId.BetterbroMexicanSpei?.toString(),\n DepositMethodId.BetterbroUpi?.toString(),\n DepositMethodId.PayGamesIndiaUpi?.toString(),\n DepositMethodId.PayGamesIndonesiaQris?.toString(),\n DepositMethodId.PayGamesNigeria?.toString(),\n DepositMethodId.PayGamesSingaporePayNow?.toString(),\n DepositMethodId.PayGamesSouthAfrica?.toString(),\n ].includes(depositMethodId);\n\n // Get axios instance for API calls\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Get callback handler for successful deposits\n const { onSuccess } = useDepositCallback(hasExternalRedirect);\n\n // Setup mutation for creating deposits\n const { mutate, isPending } = useMutation({\n mutationFn: (data: DepositPayGamesRequestDto) =>\n createDeposit(data, axiosInstance),\n onSuccess,\n });\n\n return {\n createDepositPayGames: mutate,\n isLoading: isPending,\n };\n}\n","import { useCallback } from 'react';\nimport { useDepositBetterBro } from '../useDepositBetterBro';\nimport { useDepositPixToPay } from '../useDepositPixToPay';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { DepositMethodId } from '@starsoft/common/enums';\nimport useDepositSearchParams from '../../../../hooks/deposit/useDepositSearchParams';\nimport { parseToSubunits } from '@starsoft/common/utils';\nimport { useDepositPayGames } from '../useDepositPayGames';\n\n/**\n * Custom hook to handle deposit operations based on the deposit method.\n *\n * This hook provides a `deposit` function that determines the appropriate deposit\n * method to use based on the `depositMethodId` and executes the corresponding\n * deposit function. It also provides a loading state indicating if any deposit\n * operation is currently in progress.\n *\n * @returns {Object} - Returns an object containing the deposit function and loading state.\n * @returns {Function} return.deposit - Function to initiate a deposit operation.\n * @returns {boolean} return.isLoading - Indicates if a deposit operation is currently loading.\n */\nexport default function useDeposit() {\n // Retrieve the deposit method ID from the search parameters\n const { depositMethodId } = useDepositSearchParams();\n\n // Initialize deposit functions and loading states for different deposit methods\n const {\n createDepositBetterBro,\n isLoading: loadingCreateDepositBetterBroPix,\n } = useDepositBetterBro();\n\n const { createDepositPixToPay, isLoading: loadingCreateDepositPixToPay } =\n useDepositPixToPay();\n\n const { createDepositPayGames, isLoading: loadingCreateDepositPayGames } =\n useDepositPayGames();\n\n /**\n * Function to handle deposit operations based on the deposit method ID.\n *\n * @param {CreateDepositRequestDto} data - The deposit data including amount and coin type.\n */\n const deposit = useCallback(\n (data: CreateDepositRequestDto) => {\n switch (depositMethodId?.toString()) {\n case DepositMethodId.Crypto?.toString():\n // No operation for Crypto deposit method\n break;\n case DepositMethodId.BetterbroMexicanSpei?.toString():\n case DepositMethodId.BetterbroUpi?.toString():\n case DepositMethodId.BetterbroMercadoPago?.toString():\n case DepositMethodId.BetterbroBrazillianPix?.toString():\n // Handle deposit for BetterBro methods\n createDepositBetterBro({\n amount: parseToSubunits(data?.amount, data?.coin),\n methodId: depositMethodId,\n });\n break;\n case DepositMethodId.PayGamesIndiaUpi?.toString():\n case DepositMethodId.PayGamesIndonesiaQris?.toString():\n case DepositMethodId.PayGamesNigeria?.toString():\n case DepositMethodId.PayGamesSingaporePayNow?.toString():\n case DepositMethodId.PayGamesSouthAfrica?.toString():\n // Handle deposit for PayGames methods\n createDepositPayGames({\n amount: parseToSubunits(data?.amount, data?.coin),\n methodId: depositMethodId,\n });\n break;\n case DepositMethodId.PixtopayBrazillianPix?.toString():\n // Handle deposit for PixToPay method\n createDepositPixToPay({\n amount: parseToSubunits(data?.amount, data?.coin),\n });\n }\n },\n [\n depositMethodId,\n createDepositBetterBro,\n createDepositPixToPay,\n createDepositPayGames,\n ],\n );\n\n // Determine if any deposit operation is currently loading\n const isLoading =\n loadingCreateDepositBetterBroPix ||\n loadingCreateDepositPixToPay ||\n loadingCreateDepositPayGames;\n\n // Return the deposit function and loading state\n return {\n deposit,\n isLoading,\n };\n}\n","import { useCallback } from 'react';\nimport { UseTransactionsTabNavigationProps } from './props';\nimport { useCurrentModal } from '../modals/useCurrentModal';\nimport useDepositSearchParams from '../deposit/useDepositSearchParams';\nimport { useWithdrawSearchParams } from '../withdraw';\nimport { useWalletsMe } from '../../api';\nimport { CoinType } from '../../models';\nimport { CoinID, CommonModalsKey, CookiesKey } from '../../enums';\nimport { useSearchParams } from '../useSearchParams';\nimport { useNavigate } from '../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { getCookie } from 'cookies-next';\nimport { OriginId } from '@starsoft/common/models/origin/id';\n\n/**\n * Custom hook to manage the navigation and state of transaction tabs.\n * This hook provides a function to set the active tab based on the coin type.\n *\n * @param {UseTransactionsTabNavigationProps} props - The properties for the hook.\n * @param {Function} props.setValue - Function to set the value of a form field.\n *\n * @returns {Object} An object containing the setTab function.\n *\n * @example\n * // Usage example:\n * const { setTab } = useTransactionsTabNavigation({ setValue: (field, value, options) => {} });\n * setTab(CoinType.Crypto); // Sets the tab for the specified coin type\n */\nexport default function useTransactionsTabNavigation({\n setValue,\n}: UseTransactionsTabNavigationProps) {\n // Hook to manage URL search parameters\n const search: URLSearchParams = useSearchParams();\n\n const originId = getCookie(CookiesKey.OriginId);\n // Hook to navigate between pages or components\n const navigate: NavigateFunction = useNavigate();\n // Hook to get the current modal key\n const modal = useCurrentModal(CommonModalsKey);\n\n // Retrieve the transaction step for withdrawal\n const { transactionStep: withdrawTransactionStep } =\n useWithdrawSearchParams();\n // Retrieve the transaction step for deposit\n const { transactionStep: depositTransactionStep } = useDepositSearchParams();\n // Determine the current step based on withdrawal or deposit\n const step = withdrawTransactionStep || depositTransactionStep;\n // Retrieve the current wallet information, enabled if the step is 'form'\n const { wallet } = useWalletsMe({\n enabled: step == 'form',\n });\n\n /**\n * Sets the active tab based on the specified coin type.\n * Updates the search parameters and navigates to the appropriate tab.\n *\n * @param {CoinType} coinType - The type of the coin to set the tab for.\n */\n const setTab = useCallback(\n (coinType: CoinType) => {\n // Retrieve accounts and current account from the wallet\n const accounts = wallet?.accounts;\n const currentAccount = wallet?.currentAccount;\n let coinId: bigint;\n\n // Determine the coin ID based on the current account or find it in the accounts list\n if (currentAccount?.coin?.type == coinType) {\n coinId = currentAccount?.coin?.id;\n } else {\n coinId = accounts?.find(account =>\n coinType == CoinType.Crypto &&\n originId?.toString() != OriginId.Brazil?.toString()\n ? account?.coin?.id == CoinID.USDT\n : account?.coin?.type == coinType,\n )?.coin?.id;\n }\n\n // Update search parameters for the coin type and coin ID\n search.delete('method-id');\n search.set('coin-type', coinType);\n search.set(\n 'coin-id',\n String(\n coinId ??\n (coinType === CoinType.Crypto &&\n originId?.toString() != OriginId.Brazil?.toString()\n ? CoinID.USD\n : CoinID.BRL),\n ),\n );\n // Set the value of the 'coinId' field without marking it as dirty\n //@ts-ignore\n setValue('coinId', coinId, { shouldDirty: false });\n\n // Navigate to the updated search parameters and current modal\n navigate(\n {\n search: search.toString(),\n hash: modal,\n },\n {\n preventScrollReset: true,\n },\n );\n },\n [modal, navigate, search, wallet, setValue, originId],\n );\n\n // Return the setTab function to be used externally\n return {\n setTab,\n };\n}\n\nexport type { UseTransactionsTabNavigationProps };\n","import { PropsWithChildren, useCallback, useEffect } from 'react';\nimport styles from './styles.module.scss';\nimport {\n useKycFormSubmission,\n useKycNavigation,\n useModal,\n useModalNavigation,\n useSearchParams,\n} from '@starsoft/common/hooks';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { Navigate } from '@starsoft/common/components';\nimport { CoinType, SettingLayoutComponentId } from '@starsoft/common/models';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport {\n CommonModalsKey,\n DepositStep,\n KycCheckpointId,\n KYCStatus,\n} from '@starsoft/common/enums';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport TransactionsModalsLayoutHeader from '../../../Common/Layout/Header';\nimport TransactionModalsContentLayoutTabs from '../../../Common/Layout/Tabs';\nimport TransactionModalsLayoutFooter from '../../../Common/Layout/Footer';\nimport { fadeInRight } from '../../../Common/variants';\nimport useDepositSearchParams from '../../../../../hooks/deposit/useDepositSearchParams';\nimport {\n useDepositForm,\n useDepositFormState,\n} from '../../../../../hooks/deposit';\nimport useDeposit from '../../../../../api/deposit/mutations/useDeposit';\nimport useTransactionsTabNavigation from '../../../../../hooks/useTransactionsTabNavigation';\nimport { TransactionModalsDepositContentLayoutProps } from './props';\n\n/**\n * TransactionModalsDepositContentLayout Component\n * This component is responsible for rendering the layout of the deposit modal content.\n * It manages the form state, handles KYC submission, and manages navigation between steps.\n *\n * @param {PropsWithChildren} props - The properties for the component.\n * @param {React.ReactNode} props.children - The child components to be rendered inside the layout.\n *\n * @returns {JSX.Element} The rendered layout component for the deposit modal content.\n *\n * @example\n * // Usage example:\n * \n *
Deposit Content
\n *
\n */\nexport default function TransactionModalsDepositContentLayout({\n children,\n originId,\n version,\n}: PropsWithChildren) {\n // Retrieve modal close function for the 'Deposit' modal\n const { onClose } = useModal(CommonModalsKey.Deposit);\n // Retrieve deposit search parameters and methods for setting them\n const { transactionStep, coinType, handleSetDepositSearchParams, coinId } =\n useDepositSearchParams();\n // Retrieve modal navigation link generator\n const { getModalLink } = useModalNavigation();\n // Retrieve search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n // Determine if styles should be disabled based on the current transaction step\n const disableStyles: boolean =\n transactionStep == DepositStep.Form ||\n transactionStep === DepositStep.Response;\n\n // Initialize form methods with default values\n const methods = useForm({\n defaultValues: {\n amount: 20,\n coinId,\n },\n });\n\n // Destructure form methods\n const { handleSubmit, watch, setValue } = methods;\n\n // Retrieve deposit form state and methods\n const {\n isFormLoading,\n formError,\n useKycMeByOriginIdQuery: { kyc },\n coinMapping,\n showExternalLink,\n accountByCoinQuery: { currentAccount },\n coinOptions,\n isValidCoinId,\n } = useDepositForm(watch, setValue);\n\n // Determine if the submit button should be disabled based on the form state\n const isSubmitButtonDisabled: boolean = useDepositFormState({\n watch,\n setValue,\n });\n\n // Retrieve deposit mutation and loading state\n const { isLoading: isLoadigCreateDeposit, deposit } = useDeposit();\n\n // Retrieve KYC form submission handler and loading state\n const { handleKycSubmission, isLoadingKycSubmission } = useKycFormSubmission({\n coinId,\n kyc,\n methods,\n enabled: transactionStep === DepositStep.CreatePersonalIdentity,\n });\n\n // Retrieve KYC navigation handlers\n const { handleSetKycStep, handleSetKycAndDepositStep } = useKycNavigation({\n coinId,\n });\n\n // Retrieve tab navigation handler\n const { setTab } = useTransactionsTabNavigation({ setValue });\n // Watch the 'amount' field in the form\n const amount = watch('amount');\n\n /**\n * handleBackButton Function\n * Handles the back button click event to navigate to the previous step or close the modal.\n *\n * @returns {void}\n *\n * @example\n * handleBackButton();\n */\n const handleBackButton = useCallback(() => {\n const paths = Object.values(DepositStep);\n const currentIndex = paths.findIndex(path => path == transactionStep);\n\n if (currentIndex == 0) {\n onClose();\n }\n\n let targetPath = paths[currentIndex - 1];\n\n handleSetDepositSearchParams('step', targetPath);\n }, [transactionStep, handleSetDepositSearchParams, onClose]);\n\n /**\n * handleFiatDeposit Function\n * Handles the deposit process for fiat currency.\n *\n * @param {CreateDepositRequestDto} data - The data for creating the deposit request.\n * @returns {void}\n *\n * @example\n * handleFiatDeposit({ amount: 100, coinId: '1' });\n */\n function handleFiatDeposit(data: CreateDepositRequestDto) {\n if (!coinMapping?.origin) {\n deposit(data);\n return;\n }\n\n if (!kyc) {\n handleSetKycAndDepositStep(\n KycCheckpointId.Identity,\n DepositStep.CreatePersonalIdentity,\n );\n return;\n }\n\n if (kyc?.status !== KYCStatus.Verified) {\n handleSetKycAndDepositStep(\n kyc?.stage?.checkpoint?.id,\n DepositStep.CreatePersonalIdentity,\n );\n return;\n }\n\n deposit(data);\n }\n\n /**\n * handleDepositFormStep Function\n * Handles the deposit form submission based on the coin type.\n *\n * @param {CreateDepositRequestDto} data - The data for creating the deposit request.\n * @returns {void}\n *\n * @example\n * handleDepositFormStep({ amount: 100, coinId: '1' });\n */\n function handleDepositFormStep(data: CreateDepositRequestDto) {\n switch (coinType) {\n case CoinType.Fiat:\n handleFiatDeposit(data);\n break;\n case CoinType.Crypto:\n break;\n }\n }\n\n /**\n * handleCreateKycAndDeposit Function\n * Handles the creation of KYC and deposit process.\n *\n * @param {CreateDepositRequestDto} data - The data for creating the deposit request.\n * @returns {Promise}\n *\n * @example\n * await handleCreateKycAndDeposit({ amount: 100, coinId: '1' });\n */\n async function handleCreateKycAndDeposit(data: CreateDepositRequestDto) {\n try {\n if (!kyc || kyc?.status != KYCStatus.Verified) {\n const createdkyc = await handleKycSubmission(data);\n\n if (createdkyc?.status == KYCStatus.Verified) {\n deposit(data);\n return;\n }\n\n if (createdkyc) {\n handleSetKycStep(createdkyc?.stage?.checkpoint?.id);\n return;\n }\n }\n\n if (kyc && kyc?.status != KYCStatus.Verified) {\n handleSetKycAndDepositStep(\n kyc?.stage?.checkpoint?.id,\n DepositStep.CreatePersonalIdentity,\n );\n return;\n }\n\n if (kyc?.status == KYCStatus.Verified) {\n deposit(data);\n }\n // eslint-disable-next-line no-empty\n } catch (err: unknown) {}\n }\n\n /**\n * onSubmit Function\n * Handles the form submission based on the current transaction step.\n *\n * @param {CreateDepositRequestDto} data - The data for creating the deposit request.\n * @returns {Promise}\n *\n * @example\n * await onSubmit({ amount: 100, coinId: '1' });\n */\n async function onSubmit(data: CreateDepositRequestDto) {\n try {\n switch (transactionStep) {\n case DepositStep.Form:\n handleDepositFormStep(data);\n break;\n case DepositStep.CreatePersonalIdentity:\n await handleCreateKycAndDeposit(data);\n break;\n case DepositStep.Response:\n break;\n }\n //eslint-disable-next-line\n } catch (err: unknown) {}\n }\n\n /**\n * handleInvalidCoinId Function\n * Handles the case when the coin ID is invalid by setting a valid coin ID.\n *\n * @returns {void}\n *\n * @example\n * handleInvalidCoinId();\n */\n function handleInvalidCoinId(): void {\n if (isValidCoinId || !coinOptions || coinOptions?.length === 0) {\n return;\n }\n\n handleSetDepositSearchParams('coin-id', coinOptions[0].id);\n }\n\n // Effect to handle invalid coin ID\n useEffect(handleInvalidCoinId, [\n coinOptions,\n isValidCoinId,\n handleSetDepositSearchParams,\n ]);\n\n // Redirect to the form step if the amount is not set or is zero\n if (\n ![DepositStep.Form, DepositStep.Response].includes(transactionStep) &&\n (!amount || amount == 0)\n ) {\n search.set('step', DepositStep.Form);\n search.delete('method-id');\n return (\n \n );\n }\n\n // Render the layout with header, tabs, form, and footer\n return (\n \n \n\n
\n );\n}\n","import {\n AutocompleteMenuSelector,\n AutocompleteSelectorOptionCoinWithImage,\n FormGroup,\n SelectInputWithImage,\n} from '@starsoft/common/components';\nimport {\n useNavigate,\n useSearchParams,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { Coin, CoinType } from '@starsoft/common/models';\nimport { useFormContext } from 'react-hook-form';\nimport { DepositCoinSelectProps } from './props';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { useCurrentModal } from '../../../../../../../../hooks/modals/useCurrentModal';\nimport useDepositSearchParams from '../../../../../../../../hooks/deposit/useDepositSearchParams';\nimport { useDepositForm } from '../../../../../../../../hooks/deposit';\nimport AutocompleteSelectorOptionWithImageSkeleton from '../../../../../../../AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/Skeleton';\nimport SelectInputWithImageSkeleton from '../../../../../../../SelectInput/SelectWithImage/SelectInputWithImage/Skeleton';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { CommonModalsKey, DepositMethodId } from '@starsoft/common/enums';\n\n/**\n * DepositCoinSelect Component\n * This component is responsible for rendering a coin selection input within a form.\n * It uses various hooks to manage form state, navigation, and search parameters.\n *\n * @param {DepositCoinSelectProps} props - The properties for the component.\n * @param {boolean} props.hideInput - Flag indicating whether to hide the input field.\n *\n * @returns {JSX.Element | null} The rendered component displaying the coin selection input or null if hideInput is true.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function DepositCoinSelect({\n hideInput,\n}: DepositCoinSelectProps) {\n const { t } = useTranslation('deposit');\n const { watch, setValue } = useFormContext();\n const search = useSearchParams();\n const modal = useCurrentModal(CommonModalsKey);\n const navigate: NavigateFunction = useNavigate();\n const {\n coinId: searchCoinId,\n depositMethodId,\n coinType,\n } = useDepositSearchParams();\n const { isFormLoading, coinOptions, currentChain } = useDepositForm(\n watch,\n setValue,\n );\n const coinId = watch('coinId') ?? searchCoinId;\n\n /**\n * Handles the selection of a coin.\n * Updates the search parameters and form values based on the selected coin.\n *\n * @param {Coin} coin - The selected coin object.\n *\n * @example\n * handleSelectCoin({ id: '1', name: 'Bitcoin', code: 'BTC' });\n */\n function handleSelectCoin(coin: Coin): void {\n search.set('coin-id', `${coin?.id}`);\n setValue('coinId', coin?.id?.toString(), {\n shouldDirty: false,\n });\n setValue('coin', coin, {\n shouldDirty: false,\n });\n search.delete('method-id');\n navigate({\n search: search.toString(),\n hash: modal,\n });\n }\n\n if (hideInput) {\n return null;\n }\n\n return (\n \n option.code}\n getOptionValue={option => option.id?.toString()}\n loading={isFormLoading || !coinId}\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n customInput: ({ handleOpen, open, option }) => (\n ${option?.code}`}\n />\n ),\n customSkeletonOption: () => (\n \n ),\n customSkeletonInput: () => ,\n }}\n isContainerColor\n />\n \n );\n}\n","import { useMemo } from 'react';\n\n/**\n * Custom hook to format a cryptocurrency address by highlighting specific parts of it.\n *\n * @param {string} address - The cryptocurrency address to be formatted.\n * @returns {string} - The formatted address with specific parts highlighted.\n *\n * Example usage:\n * const formattedAddress = useFormattedCryptoAddress('0x1234567890abcdef1234567890abcdef');\n * // Returns: \"0x1234567890abcdefcdef\"\n */\nfunction useFormattedCryptoAddress(address: string): string {\n // useMemo is used to memoize the formatted address, recalculating only when the address changes.\n return useMemo(() => {\n // If the address is null, undefined, or shorter than 12 characters, return it as is.\n if (!address || address?.length < 12) {\n return address;\n }\n\n // Extract the first four characters of the address.\n const firstFour = address.substring(0, 4);\n // Extract the last four characters of the address.\n const lastFour = address.substring(address.length - 4);\n\n // Calculate the middle index of the address.\n const middleIndex = Math.floor(address.length / 2);\n // Extract four characters from the middle of the address.\n const middleFour = address.substring(middleIndex - 2, middleIndex + 2);\n\n // Extract the characters between the first four and the middle four.\n const beforeMiddle = address.substring(4, middleIndex - 2);\n // Extract the characters between the middle four and the last four.\n const afterMiddle = address.substring(middleIndex + 2, address.length - 4);\n\n // Return the formatted address with specific parts wrapped in tags.\n return (\n `${firstFour}` +\n `${beforeMiddle}` +\n `${middleFour}` +\n `${afterMiddle}${lastFour}`\n );\n }, [address]); // Dependency array for useMemo, recalculates if address changes.\n}\n\nexport default useFormattedCryptoAddress;\n","/* eslint-disable react/no-danger */\nimport { useTranslation } from '@starsoft/common/hooks';\nimport { TransactionsCommonCoppyAddressProps } from './props';\nimport { Input } from '@starsoft/common/components/Input';\nimport styles from './styles.module.scss';\nimport { Button } from '@starsoft/common/components/Button';\n\n/**\n * TransactionsCommonCopyAddress Component\n * This component is responsible for displaying an address and providing a button to copy it.\n * It shows a loading input if the data is still loading.\n *\n * @param {TransactionsCommonCoppyAddressProps} props - The properties for the component.\n * @param {string} props.address - The address to be displayed and copied.\n * @param {() => void} props.onCopy - Callback function to handle the copy action.\n * @param {boolean} props.isLoading - Indicates if the data is still loading.\n *\n * @returns {JSX.Element} The rendered component displaying the address and a copy button, or a loading input if isLoading is true.\n *\n * @example\n * // Usage example:\n * function('Address copied')}\n * isLoading={false}\n * />\n */\nexport default function TransactionsCommonCopyAddress({\n address,\n onCopy,\n isLoading,\n}: TransactionsCommonCoppyAddressProps) {\n const { t } = useTranslation('deposit');\n\n // If the component is in a loading state, display a loading input\n if (isLoading) {\n return ;\n }\n\n // Otherwise, display the address and a button to copy it\n return (\n
\n ${address}

`,\n }}\n />\n \n \n {t('common:copy_label')}\n \n
\n );\n}\n","/* eslint-disable react/no-danger */\nimport styles from './styles.module.scss';\nimport {\n AutocompleteMenuSelector,\n ChainOption,\n FormGroup,\n TransWithDefault,\n} from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport { Chain } from '@starsoft/common/models';\nimport { QRCodeSVG } from 'qrcode.react';\nimport DepositCoinSelect from '../../Layout/CoinSelect';\nimport { useMemo } from 'react';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { useTranslation } from '../../../../../../../../hooks';\nimport { useDepositForm } from '../../../../../../../../hooks/deposit';\nimport useFormattedCryptoAddress from '../../../../../../../../hooks/useFormattedCryptoAddress';\nimport { useNotificationService } from '@starsoft/common/hooks/useNotificationService';\nimport {\n NotificationsService,\n SettingsService,\n} from '@starsoft/common/services';\nimport TransactionsCommonCopyAddress from '../../../../../../../../components/Transactions/Common/CopyAddress';\n\n/**\n * TransactionsModalsDepositContentFormCryptoContent Component\n * This component is responsible for rendering the crypto deposit form content.\n * It includes functionalities for selecting a coin, displaying a QR code for the deposit address,\n * and copying the deposit address to the clipboard.\n *\n * @returns {JSX.Element} The rendered component displaying the crypto deposit form content.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsDepositContentFormCryptoContent() {\n const { t } = useTranslation('deposit');\n const { watch, setValue } = useFormContext();\n const NotificationsService: NotificationsService =\n useNotificationService();\n const {\n chainOptions,\n accountByCoinQuery: {\n currentAccount,\n accountAddress,\n isLoadingAccountByCoin,\n },\n isFormLoading,\n } = useDepositForm(watch, setValue);\n\n const isLoading: boolean = isFormLoading || isLoadingAccountByCoin;\n\n const chainId: string | undefined = watch('chainId');\n const chain: Chain | undefined = useMemo(\n () => chainOptions?.find(chain => chain?.id?.toString() === chainId),\n [chainId, chainOptions],\n );\n const formattedAddress = useFormattedCryptoAddress(accountAddress?.address);\n\n /**\n * Handles the selection of a blockchain network.\n * Updates the form value for the selected chain ID.\n *\n * @param {Chain} chain - The selected chain object.\n *\n * @example\n * handleSelectChain({ id: '1', name: 'Ethereum', symbol: 'ETH' });\n */\n function handleSelectChain(chain: Chain) {\n setValue('chainId', chain?.id?.toString(), {\n shouldDirty: true,\n });\n }\n\n /**\n * Handles the copying of the deposit address to the clipboard.\n * Displays a success notification upon successful copy.\n *\n * @example\n * handleCopyAddress();\n */\n function handleCopyAddress() {\n NotificationsService.success({\n title: 'copy_base_title',\n message: 'copy_deposit_address',\n });\n\n if (typeof navigator != 'undefined') {\n navigator?.clipboard?.writeText(String(accountAddress?.address));\n }\n }\n\n return (\n
\n
\n \n \n option.name}\n getOptionValue={option => option.id?.toString()}\n setValue={handleSelectChain}\n isContainerColor\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n }}\n />\n \n
\n
\n
\n \n \n \n
\n
\n {isLoading ? (\n
\n ) : (\n \n )}\n
\n
\n {(!isLoading && (\n
\n \n \n
\n )) || (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n )}\n
\n );\n}\n","import TransactionsModalsDepositContentFormCryptoContent from './Crypto';\nimport { CoinType } from '@starsoft/common/models';\nimport { DepositMethodId } from '@starsoft/common/enums';\nimport useDepositSearchParams from '../../../../../../../hooks/deposit/useDepositSearchParams';\n\n/**\n * TransactionsModalsDepositFormContent Component\n * This component is responsible for rendering the appropriate content based on the deposit method and coin type.\n * It uses the deposit search parameters to determine which content to display.\n *\n * @returns {JSX.Element | null} The rendered component displaying the deposit form content or null if conditions are not met.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsDepositFormContent() {\n // Retrieve the deposit method ID and coin type from the deposit search parameters\n const { depositMethodId, coinType } = useDepositSearchParams();\n\n // Switch statement to determine the content to render based on the deposit method ID\n switch (depositMethodId) {\n // If the deposit method ID is 'Crypto', render the Crypto content component\n case DepositMethodId.Crypto?.toString():\n return ;\n // Default case to handle other deposit methods\n default: {\n // If the coin type is 'Crypto', render the Crypto content component\n if (coinType == CoinType.Crypto) {\n return ;\n }\n\n // Return null if conditions are not met\n return null;\n }\n }\n}\n","import { CurrencyInput, FormGroup } from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { CoinType } from '@starsoft/common/models';\nimport { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { useTranslation } from '../../../../../../hooks';\nimport useDepositSearchParams from '../../../../../../hooks/deposit/useDepositSearchParams';\nimport { useDepositForm } from '../../../../../../hooks/deposit';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * AmountInput Component\n * This component is responsible for rendering an input field for entering deposit amounts.\n * It handles form state and validation for deposit amounts, and displays error messages if the input is invalid.\n *\n * @returns {JSX.Element | null} The rendered component displaying the amount input field or null if the coin type is crypto.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function AmountInput() {\n // Translation hooks for different namespaces\n const { t } = useTranslation('deposit');\n const { t: tWithdraw } = useTranslation('withdraw');\n const { t: tNotify } = useTranslation('notify');\n // Retrieve the coin type from deposit search parameters\n const { coinType } = useDepositSearchParams();\n\n // Form context to manage form state and values\n const {\n setValue,\n watch,\n formState: { dirtyFields, touchedFields },\n } = useFormContext();\n\n // Custom hook to manage deposit form state and queries\n const {\n isOverValued,\n isFormLoading,\n isUnderValued,\n maxValueFormatted,\n minValueFormatted,\n isValidReceiveAmount,\n accountByCoinQuery: { currentAccount, isLoadingAccountByCoin },\n coinMapping,\n } = useDepositForm(watch, setValue);\n\n // Determine if the form is in a loading state\n const isLoading: boolean = isLoadingAccountByCoin || isFormLoading;\n // Watch the 'amount' field in the form\n const amount = watch('amount');\n\n /**\n * Handles changes to the amount input field.\n * Updates the form value for the 'amount' field.\n *\n * @param {number} value - The new value for the amount.\n *\n * @example\n * handleChange(100);\n */\n function handleChange(value: number) {\n setValue('amount', value, {\n shouldDirty: true,\n });\n }\n\n // Return null if the coin type is crypto, as no amount input is needed\n if (coinType == CoinType.Crypto) {\n return null;\n }\n\n // Render the form group and currency input for deposit amount\n return (\n \n \n \n );\n}\n","import { Image, Input } from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function MethodCardSkeleton() {\n return (\n
\n
\n
\n \n
\n
\n\n \n
\n
\n
\n
\n \n
\n );\n}\n","import { MethodCardProps } from './props';\nimport styles from './styles.module.scss';\nimport { Image, Input, ToolTip } from '@starsoft/common/components';\nimport { memo } from 'react';\nimport MethodCardSkeleton from './Skeleton';\nimport {\n useCurrentModal,\n useSearchParams,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { CommonModalsKey, WithdrawMethodId } from '../../../../../../enums';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * MethodCard component displays a card for a transaction method.\n *\n * @param {MethodCardProps} props - The properties for the MethodCard component.\n * @param {object} props.method - The method object containing details about the transaction method.\n * @param {function} props.onClick - The function to call when the card is clicked.\n * @param {boolean} props.isLoading - A flag indicating if the data is still loading.\n *\n * @returns {JSX.Element} A JSX element representing the method card.\n *\n * Example usage:\n * \n */\nfunction MethodCard({ method, onClick, isLoading }: MethodCardProps) {\n const { t: tCommon } = useTranslation('common');\n const search: URLSearchParams = useSearchParams();\n const methodId = search.get('method-id');\n const modal = useCurrentModal(CommonModalsKey);\n\n // Determine if the current method is selected\n const isChecked: boolean = methodId === method?.id?.toString();\n // Check if the method is a crypto transaction method\n const isCryptoTransactionMethod: boolean =\n method?.id?.toString() === WithdrawMethodId.Crypto?.toString();\n\n /**\n * Get the display name for the method.\n *\n * @returns {string} The name of the method.\n *\n * Example:\n * getName() // returns 'Crypto Coin' if method id is for crypto\n */\n function getName(): string {\n switch (method?.id?.toString()) {\n case WithdrawMethodId.Crypto?.toString():\n return tCommon('crypto_coin');\n }\n\n return method?.name;\n }\n\n /**\n * Get the description for the method.\n *\n * @returns {string} The description of the method.\n *\n * Example:\n * getDescription() // returns 'Fast Verification' if method id is for crypto\n */\n function getDescription(): string {\n switch (method?.id?.toString()) {\n case WithdrawMethodId.Crypto?.toString():\n return tCommon('fast_verification_label');\n case WithdrawMethodId.BetterbroBrazillianPix?.toString():\n return tCommon('pix_timing_label');\n }\n\n return method?.name;\n }\n\n // If the data is still loading, show a skeleton loader\n if (isLoading) {\n return ;\n }\n\n // Render the method card\n return (\n onClick(method)}\n >\n
\n \n
\n
\n \n {getName()}\n {method?.gateway?.image && (\n \n
\n \n
\n
\n )}\n
\n {/* @ts-ignore */}\n {getMoneyOrAmount(method?.fee) === 0 && (\n
\n {tCommon('zero_fee')}\n
\n )}\n
\n \n {getDescription()}\n \n
\n
\n \n
\n );\n}\n\nexport default memo(MethodCard);\n","import styles from './styles.module.scss';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport MethodCard from './MethodCard';\nimport {\n CoinType,\n DepositMethod,\n WithdrawMethod,\n} from '@starsoft/common/models';\nimport { FormGroup } from '@starsoft/common/components';\nimport { TransactionMethodsProps } from './props';\nimport { useModalNavigation, useSearchParams } from '@starsoft/common/hooks';\nimport { useCurrentModal } from '../../../../../hooks/modals/useCurrentModal';\nimport { CommonModalsKey } from '@starsoft/common/enums';\n\n/**\n * TransactionMethods Component\n * This component is responsible for rendering a list of transaction methods.\n * It handles the display of method cards and skeletons based on loading state and coin type.\n *\n * @param {TransactionMethodsProps} props - The properties for the component.\n * @param {string} props.label - The label for the form group.\n * @param {boolean} props.isLoading - Indicates if the data is still loading.\n * @param {(WithdrawMethod | DepositMethod)[]} props.transactionMethods - The list of transaction methods.\n *\n * @returns {JSX.Element | null} The rendered component displaying the transaction methods or null if conditions are not met.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionMethods({\n label,\n isLoading,\n transactionMethods,\n}: TransactionMethodsProps) {\n const search: URLSearchParams = useSearchParams();\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n const coinType: CoinType =\n (search.get('coin-type') as CoinType) ?? CoinType.Fiat;\n const { navigateToModal } = useModalNavigation();\n\n /**\n * onClickMethod function\n * This function is triggered when a transaction method is clicked.\n * It updates the search parameters and navigates to the modal with the selected method.\n *\n * @param {WithdrawMethod | DepositMethod} transactionMethod - The transaction method that was clicked.\n */\n const onClickMethod = useCallback(\n (transactionMethod: WithdrawMethod | DepositMethod) => {\n search.set('method-id', `${transactionMethod.id}`);\n navigateToModal(modal, `?${search.toString()}`);\n },\n [navigateToModal, modal, search],\n );\n\n /**\n * onFetchTransactionMethods function\n * This function is used to fetch and set the initial transaction method if available.\n * It sets the first method in the list as the selected method in the search parameters.\n */\n function onFetchTransactionMethods() {\n if (!transactionMethods || transactionMethods?.length === 0) {\n return;\n }\n\n search.set('method-id', `${transactionMethods?.[0]?.id}`);\n navigateToModal(modal, `?${search.toString()}`);\n }\n\n // Fetch transaction methods when the component mounts or when transactionMethods change\n //eslint-disable-next-line\n useEffect(onFetchTransactionMethods, [transactionMethods]);\n\n /**\n * Methods array\n * This memoized array contains JSX elements for each transaction method.\n * It maps over the transactionMethods and creates a MethodCard for each.\n *\n * @returns {JSX.Element[]} An array of MethodCard components.\n */\n const Methods: JSX.Element[] = useMemo(\n () =>\n transactionMethods?.map(withdrawalMethod => (\n \n )),\n [transactionMethods, onClickMethod],\n );\n\n /**\n * Skeletons array\n * This memoized array contains JSX elements for skeleton loading states.\n * It creates a fixed number of MethodCard components with loading state.\n *\n * @returns {JSX.Element[]} An array of MethodCard components in loading state.\n */\n const Skeletons: JSX.Element[] = useMemo(\n () =>\n Array.from({\n length: 5,\n }).map((_, i) => (\n {}}\n key={`withdraw-method-skeleton-${i}`}\n />\n )),\n [],\n );\n\n // If the coin type is Crypto or there are no methods and not loading, return null\n if (coinType == CoinType.Crypto || (!isLoading && Methods?.length == 0)) {\n return null;\n }\n\n // Render the FormGroup with either loading skeletons or the method cards\n return (\n \n
{isLoading ? Skeletons : Methods}
\n
\n );\n}\n","import { CreateDepositRequestDto } from '@starsoft/common/dto';\nimport { useFormContext } from 'react-hook-form';\nimport { useTranslation } from '../../../../../../../../hooks';\nimport { useDepositForm } from '../../../../../../../../hooks/deposit';\nimport TransactionMethods from '../../../../../../Common/Content/TransactionMethods';\n\n/**\n * DepositMethods Component\n * This component is responsible for rendering the available deposit methods for a transaction.\n * It uses form context to watch and set form values, and retrieves deposit methods using a custom hook.\n *\n * @returns {JSX.Element} The rendered component displaying the deposit methods.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function DepositMethods() {\n // Hook to handle translations for the 'deposit' namespace\n const { t } = useTranslation('deposit');\n // Use form context to watch and set form values\n const { watch, setValue } = useFormContext();\n // Use the deposit form hook to manage form state and queries\n const {\n isFormLoading,\n depositMethodsQuery: { depositMethods, isPendingDepositMethods },\n } = useDepositForm(watch, setValue);\n\n return (\n \n );\n}\n","import { ValueSelectorProps } from './props';\nimport styles from './styles.module.scss';\nimport { Button } from '@starsoft/common/components';\nimport { CoinType } from '@starsoft/common/models';\nimport { useMemo } from 'react';\nimport { WalletService } from '@starsoft/common/services';\nimport useDepositSearchParams from '../../../../../../../../hooks/deposit/useDepositSearchParams';\n\n/**\n * ValueSelector Component\n * This component is responsible for rendering a list of suggested amounts as buttons for selection.\n * It displays either the suggested amounts or skeleton loaders based on the loading state.\n *\n * @param {ValueSelectorProps} props - The properties for the component.\n * @param {number} props.currentValue - The currently selected value.\n * @param {string} props.coin - The type of coin for the transaction.\n * @param {Function} props.onSelectValue - Callback function to handle the selection of a value.\n * @param {boolean} props.isLoading - Flag indicating if the data is still loading.\n * @param {Array} props.suggestedAmounts - List of suggested amounts for selection.\n *\n * @returns {JSX.Element | null} The rendered component displaying the suggested amounts or null if conditions are not met.\n *\n * @example\n * // Usage example:\n * const currentValue = 100;\n * const coin = 'USD';\n * const onSelectValue = (value) => function(value);\n * const isLoading = false;\n * const suggestedAmounts = [{ id: '1', amount: 100 }, { id: '2', amount: 200 }];\n * \n */\nexport default function ValueSelector({\n currentValue,\n coin,\n onSelectValue,\n isLoading,\n suggestedAmounts,\n}: ValueSelectorProps) {\n // Retrieve the coin type from the deposit search parameters\n const { coinType } = useDepositSearchParams();\n\n // Memoize the list of amount buttons to optimize rendering\n const Amounts: JSX.Element[] = useMemo(\n () =>\n suggestedAmounts?.map(suggestedAmount => (\n onSelectValue(suggestedAmount?.amount)}\n isSmall\n className={styles.container__button}\n >\n {WalletService.maskCurrency({\n amount: suggestedAmount?.amount?.toNumber(),\n coin,\n })}\n \n )),\n [suggestedAmounts, coin, currentValue, onSelectValue],\n );\n\n // Memoize the skeleton loaders for the loading state\n const Skeletons: JSX.Element[] = useMemo(\n () =>\n Array.from({ length: 6 }).map((_, index: number) => (\n \n )),\n [],\n );\n\n // Return null if the coin type is Crypto or if there are no suggested amounts\n if (\n coinType == CoinType.Crypto ||\n !suggestedAmounts ||\n suggestedAmounts?.length === 0\n ) {\n return null;\n }\n\n // Render the container with either the skeletons or the amount buttons\n return (\n
{isLoading ? Skeletons : Amounts}
\n );\n}\n","import { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { TransactionsThirdPartyAlertProps } from './props';\nimport styles from './styles.module.scss';\nimport { useLottiePlayer, useTranslation } from '@starsoft/common/hooks';\n\n/**\n * TransactionsThirdPartyAlert Component\n * This component is responsible for displaying a third-party alert message with an animation.\n * It uses the Lottie animation library to render an animation and displays a message\n * indicating the third-party provider of the application.\n *\n * @param {TransactionsThirdPartyAlertProps} props - The properties for the TransactionsThirdPartyAlert component.\n * @param {boolean} props.hidden - A flag indicating whether the alert should be hidden.\n *\n * @returns {JSX.Element | null} The rendered component displaying the third-party alert or null if hidden.\n *\n * @example\n * // Usage example:\n *
\n );\n}\n","import TransactionsModalsDepositFormContent from './Content';\nimport TransactionsModalDepositContentFormLayout from './Layout';\nimport { TransactionModalsDepositContentTransactionFormProps } from './props';\n\n/**\n * TransactionModalsDepositContentTransactionForm Component\n * This component is responsible for rendering the deposit form content within a specific layout.\n *\n * @param {TransactionModalsDepositContentTransactionFormProps} props - The properties for the component.\n * @param {JSX.Element} props.additionalContent - Additional content to be rendered within the form layout.\n *\n * @returns {JSX.Element} The rendered component displaying the deposit form content within the specified layout.\n *\n * @example\n * // Usage example:\n * const additionalContent =
Additional Content
;\n * \n */\nexport default function TransactionModalsDepositContentTransactionForm({\n additionalContent,\n}: TransactionModalsDepositContentTransactionFormProps) {\n return (\n \n \n \n );\n}\n","import { PixProps } from '../props';\nimport { Copy } from '@starsoft/common/components';\nimport styles from './styles.module.scss';\nimport { QRCodeSVG } from 'qrcode.react';\nimport { NotificationsService, WalletService } from '@starsoft/common/services';\nimport { useTranslation } from '../../../../../../../../../hooks';\nimport { useNotificationService } from '@starsoft/common/hooks/useNotificationService';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * QrCodePendingContent Component\n * This component is responsible for displaying the pending QR code content for a deposit transaction.\n * It includes the QR code, the amount to be deposited, and additional information related to the transaction.\n *\n * @param {PixProps} props - The properties for the component.\n * @param {object} props.deposit - The deposit object containing details such as amount, coin, and QR code content.\n *\n * @returns {JSX.Element} The rendered component displaying the pending QR code content.\n *\n * @example\n * // Usage example:\n * const deposit = { amount: 100, coin: 'USD', qrCode: { content: 'sampleQRCodeContent' } };\n * \n */\nexport default function QrCodePendingContent({ deposit }: PixProps) {\n // Hook to handle translations for the 'deposit' namespace\n const { t } = useTranslation('deposit');\n // Hook to use the notification service for displaying success messages\n const NotificationsService: NotificationsService =\n useNotificationService();\n\n /**\n * notifyCopy Function\n * This function triggers a success notification when the QR code content is copied.\n */\n function notifyCopy() {\n NotificationsService.success({\n title: 'notification_copy_title',\n message: 'notification_copy_text',\n });\n }\n\n return (\n
\n
{t('pix_pending_title')}
\n\n
\n
\n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(deposit?.amount),\n coin: deposit?.coin,\n })}\n
\n\n
\n {/* Render the QR code if content is available */}\n {deposit?.qrCode?.content && (\n \n )}\n
\n
\n\n \n {t('pix_code_title')}\n \n\n \n\n
\n\n
\n \n {t('pix_credited')}\n
\n\n
{t('pix_payment_alert')}
\n
\n );\n}\n","import styles from '../styles.module.scss';\nimport { TransactionResultProps } from '../../props';\n\nimport { useMemo } from 'react';\nimport skeleton from './styles.module.scss';\n\nexport default function TransactionResultDetailsSkeleton({\n minimal,\n}: Pick) {\n const Skeletons = useMemo(\n () =>\n Array.from({ length: minimal ? 3 : 6 }).map((_, index) => (\n \n \n
\n \n\n \n
\n \n
\n )),\n [minimal],\n );\n\n return
{Skeletons}
;\n}\n","import { Transition, Variants } from 'framer-motion';\n\nconst transition: Transition = {\n ease: 'easeInOut',\n duration: 0.25,\n};\n\nexport const transactionMappingVariants = (boundings: DOMRect): Variants => {\n return {\n hidden: {\n width: '0dvh',\n height: '0dvh',\n left: boundings?.left,\n top: boundings?.top,\n pointerEvents: 'none',\n borderRadius: '50%',\n transition,\n },\n visible: {\n width: '100dvw',\n height: '100dvh',\n left: 0,\n top: 0,\n pointerEvents: 'all',\n borderRadius: '4px',\n transition,\n },\n };\n};\n","import { PropsWithChildren } from 'react';\nimport styles from './styles.module.scss';\nimport { Portal } from '@starsoft/common/components/Portal';\nimport { TransactionsCommonMappingModalLayoutProps } from './props';\nimport { motion } from 'framer-motion';\nimport { transactionMappingVariants } from './variants';\n\n/**\n * TransactionsCommonMappingModalLayout Component\n * This component is responsible for rendering the layout of the transaction mapping modal.\n * It uses the Portal component to render the modal in a different part of the DOM tree,\n * and the motion.div component from framer-motion to handle animations.\n *\n * @param {PropsWithChildren} props - The properties for the TransactionsCommonMappingModalLayout component.\n * @param {React.ReactNode} props.children - The content to be displayed inside the modal layout.\n * @param {DOMRect | undefined} props.boundings - The bounding rectangle of the button for modal positioning.\n *\n * @returns {JSX.Element} The rendered component displaying the modal layout with transaction mapping content.\n *\n * @example\n * // Usage example:\n * \n *
Modal Content
\n *
\n */\nexport function TransactionsCommonMappingModalLayout({\n children,\n boundings,\n}: PropsWithChildren) {\n return (\n \n \n {children}\n \n \n );\n}\n","export const deleteFlowWatermark = () => {\n function remover() {\n const element = Array.from(document.querySelectorAll('a')).find(\n el => el.ariaLabel == 'React Flow attribution',\n );\n\n element?.remove();\n console.clear();\n }\n\n setTimeout(remover, 0);\n setTimeout(remover, 100);\n setTimeout(remover, 200);\n};\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseDepositByIdQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { Deposit } from '@starsoft/common/models';\n\nexport async function fetchDepositById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: bigint = queryKey[1];\n\n const response: AxiosResponse = await axiosInstance.get(\n `deposits/${id}`,\n );\n return response.data;\n}\n","import { useQuery, useQueryClient } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { DepositQueryKeys } from '../../queryKeys';\nimport { UseDepositByIdProps, UseDepositByIdQueryKey } from './props';\nimport { fetchDepositById } from './service';\nimport { useEffect } from 'react';\nimport { Deposit, GenericError } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\n\n/**\n * Custom hook to fetch and manage deposit data by ID\n *\n * This hook handles fetching deposit details, managing the query cache,\n * and handling purchase event side effects when deposit status changes.\n *\n * @param {Object} props - The hook properties\n * @param {string|number} props.id - The deposit ID to fetch\n *\n * @returns {Object} An object containing:\n * - isLoading: Boolean indicating if the query is in progress\n * - error: Any error that occurred during the query\n * - deposit: The fetched deposit data\n * - refetch: Function to manually refetch the data\n */\nexport function useDepositById({ id }: UseDepositByIdProps) {\n const queryClient = useQueryClient();\n const queryKey: UseDepositByIdQueryKey = [\n DepositQueryKeys.ById,\n id as bigint,\n ];\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Set up query to fetch deposit data\n const { isPending, error, data, refetch, fetchStatus } = useQuery<\n Deposit,\n AxiosError,\n Deposit,\n UseDepositByIdQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchDepositById(queryContext, axiosInstance),\n enabled: !!id, // Only run query if ID exists\n staleTime: 1 * 1000, // Consider data stale after 5 seconds\n });\n\n /**\n * Handles side effects when a purchase/deposit event occurs\n * Invalidates user events query cache when deposit status is pending\n */\n function handlePurchaseEvent() {\n if (\n !data ||\n data?.status?.id?.toString() != DepositStatusId.Pending?.toString()\n ) {\n return;\n }\n\n queryClient.invalidateQueries({\n queryKey: ['/user-tag-manager-events/me'],\n });\n }\n\n // Run purchase event handler when deposit data changes\n useEffect(handlePurchaseEvent, [data, queryClient]);\n\n return {\n isLoading: isPending && fetchStatus !== 'idle',\n error: error,\n deposit: data,\n refetch,\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseWithdrawalByIdQueryKey } from './props';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { Withdraw } from '@starsoft/common/models';\n\nexport async function fetchWithdrawalById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise {\n const id: bigint = queryKey[1].id;\n const response: AxiosResponse = await axiosInstance.get(\n `withdrawals/${id}`,\n );\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { WithdrawalsQueryKeys } from '../../queryKeys';\nimport { fetchWithdrawalById } from './service';\nimport { UseWithdrawalByIdQueryKey } from './props';\nimport { GenericError, Withdraw } from '@starsoft/common/models';\nimport { WithdrawFindOneRequestDto } from '../../../../dto/withdrawals/withdraw-find-one-request.dto';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch withdrawal data by ID using React Query\n *\n * @param {WithdrawFindOneRequestDto} params - Object containing withdrawal ID\n * @param {string} params.id - The ID of the withdrawal to fetch\n *\n * @returns {Object} Returns an object containing:\n * @returns {Function} refetch - Function to manually trigger a refetch\n * @returns {AxiosError} error - Any error that occurred during the fetch\n * @returns {Withdraw} withdraw - The fetched withdrawal data\n * @returns {boolean} isLoading - Loading state indicator\n */\nexport function useWithdrawalById({ id }: WithdrawFindOneRequestDto) {\n // Get axios instance for API calls\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Construct query key for React Query cache management\n const queryKey: UseWithdrawalByIdQueryKey = [\n WithdrawalsQueryKeys.ById,\n { id },\n ];\n\n // Execute the query using React Query\n const { isPending, error, data, refetch, fetchStatus } = useQuery<\n Withdraw,\n AxiosError,\n Withdraw,\n UseWithdrawalByIdQueryKey\n >({\n queryKey,\n enabled: !!id, // Only run query if ID exists\n staleTime: 5 * 1000, // Consider data stale after 5 seconds\n queryFn: queryContext => fetchWithdrawalById(queryContext, axiosInstance),\n });\n\n // Return relevant data and states\n return {\n refetch,\n error: error,\n withdraw: data,\n isLoading: isPending && fetchStatus !== 'idle',\n };\n}\n","import { useDepositById, useWithdrawalById } from '@starsoft/common/api';\nimport { useSearchParams } from '../../useSearchParams';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\n\n/**\n * Custom hook to fetch transaction data by ID.\n * This hook retrieves deposit or withdrawal data based on URL search parameters.\n *\n * @returns {Object} - An object containing the transaction data, error, loading state, and a refetch function.\n *\n * Example usage:\n * const { error, refetch, isLoading, transaction } = useTransactionById();\n */\nexport function useTransactionById() {\n // Retrieve URL search parameters\n const search: URLSearchParams = useSearchParams();\n\n // Extract deposit and withdrawal IDs from search parameters\n const depositId = search.get('deposit-id');\n const withdrawId = search.get('withdraw-id');\n\n // Fetch deposit data by ID using a custom hook\n const {\n deposit,\n error: errorDeposit,\n refetch: refetchDeposit,\n isLoading: loadingDeposit,\n } = useDepositById({\n id: depositId ? (parseToBigInt(depositId) as bigint) : undefined,\n });\n\n // Fetch withdrawal data by ID using a custom hook\n const {\n withdraw,\n error: errorWithdraw,\n refetch: refetchWithdraw,\n isLoading: loadingWithdraw,\n } = useWithdrawalById({\n id: withdrawId ? (parseToBigInt(withdrawId) as bigint) : undefined,\n });\n\n // Determine if there is an error in fetching either deposit or withdrawal data\n const error = errorDeposit ?? errorWithdraw;\n // Determine if either deposit or withdrawal data is still loading\n const isLoading = loadingDeposit ?? loadingWithdraw;\n\n /**\n * Function to refetch transaction data.\n * This function refetches deposit or withdrawal data if there was an error in fetching.\n *\n * Example usage:\n * refetch(); // Refetches the transaction data if there was an error\n */\n function refetch() {\n if (errorDeposit) {\n refetchDeposit();\n }\n\n if (errorWithdraw) {\n refetchWithdraw();\n }\n }\n\n // Return the error, refetch function, loading state, and transaction data\n return {\n error,\n refetch,\n isLoading,\n transaction: deposit ?? withdraw,\n };\n}\n","export enum NodeType {\n Sender = 'Sender',\n Coin = 'Coin',\n Receiver = 'Receiver',\n}\n","import { NodeType } from '@starsoft/common/hooks/transactions/useNodesFromTransactions/props';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { TransactionTransfer } from '@starsoft/common/models/transaction/transfer';\n\nfunction formatAddress(address?: string) {\n if (!address) {\n return '-';\n }\n\n return `${address.substring(0, 6)}...${address.substring(\n address.length - 4,\n )}`;\n}\n\nexport function nodeLabelHandler(\n transfer: TransactionTransfer,\n type: NodeType,\n): Nullable {\n switch (type) {\n case NodeType.Sender:\n return formatAddress(transfer?.sender);\n case NodeType.Coin:\n return null;\n case NodeType.Receiver:\n return formatAddress(transfer?.receiver);\n default:\n return type;\n }\n}\n","import { Handle, Position } from 'reactflow';\nimport { TransactionsCommonMappingModalContentBoardNodeProps } from './props';\nimport styles from './styles.module.scss';\nimport { nodeLabelHandler } from './helper';\nimport { useMemo } from 'react';\nimport { NodeType } from '@starsoft/common/hooks/transactions/useNodesFromTransactions/props';\nimport { Image } from '@starsoft/common/components/Image';\nimport { SettingsService, WalletService } from '@starsoft/common/services';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * TransactionsCommonMappingModalContentBoardNode Component\n * This component is responsible for rendering a node in the transaction mapping board.\n * It displays the node's label and, if the node type is Coin, it also displays the coin's image and amount.\n *\n * @param {TransactionsCommonMappingModalContentBoardNodeProps} props - The properties for the component.\n * @param {Object} props.transfer - The transfer object containing transaction details.\n * @param {NodeType} props.type - The type of the node, which determines its rendering logic.\n *\n * @returns {JSX.Element} The rendered node component with handles for connecting edges.\n *\n * @example\n * // Usage example:\n * \n */\nexport function TransactionsCommonMappingModalContentBoardNode({\n transfer,\n type,\n}: TransactionsCommonMappingModalContentBoardNodeProps) {\n // Retrieve the base URL for the S3 bucket from the settings service\n const bucketUrl = SettingsService.env.S3_BUCKET_BASE_URL;\n\n // Memoize the label for the node using the nodeLabelHandler function\n const label = useMemo(\n () => nodeLabelHandler(transfer, type),\n [transfer, type],\n );\n\n return (\n <>\n {/* Render a handle for connecting edges to the left side of the node */}\n \n \n {/* Display the node's label */}\n {label}\n {type == NodeType.Coin && (\n \n {/* Render the coin's image */}\n \n \n {/* Display the masked currency amount */}\n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(transfer?.amount),\n coin: transfer?.coin,\n hideSymbol: true,\n })}\n
\n
\n )}\n
\n {/* Render a handle for connecting edges to the right side of the node */}\n \n \n );\n}\n","import { Transaction } from '@starsoft/common/models';\nimport { useMemo } from 'react';\nimport { Edge, Node } from 'reactflow';\nimport { NodeType } from './props';\nimport { TransactionsCommonMappingModalContentBoardNode } from '@starsoft/common/components/Transactions/Common/Mapping/Modal/Content/Board/Node';\n\nconst NODE_WIDTH = 350; // Constant for node width\nconst NODE_VERTICAL_SPACE = 100; // Constant for vertical space between nodes\n\n/**\n * Custom hook to compose nodes and edges from a transaction.\n * This hook generates nodes and edges for a graph representation of transaction transfers.\n *\n * @param {Transaction} [transaction] - The transaction object containing transfer data.\n * @returns {Object} - An object containing arrays of nodes and edges.\n *\n * Example usage:\n * const { nodes, edges } = useComposedNodesFromTransaction(transaction);\n */\nexport function useComposedNodesFromTransaction(transaction?: Transaction): {\n nodes: Array;\n edges: Array;\n} {\n // Memoized computation of nodes based on transaction data\n const nodes = useMemo(() => {\n return (\n transaction?.transfers?.flatMap((transfer, rowIndex) =>\n Object.keys(NodeType).map((type, colIndex) => {\n const nodeId = `node-transfer-${transfer?.id}-${type}`; // Unique node ID\n return {\n id: nodeId,\n data: {\n label: (\n \n ),\n },\n position: {\n x: NODE_WIDTH * colIndex, // Horizontal position based on column index\n y: NODE_VERTICAL_SPACE * rowIndex, // Vertical position based on row index\n },\n sourcePosition: 'right', // Source position for edges\n targetPosition: 'left', // Target position for edges\n } as Node;\n }),\n ) ?? []\n )?.flat();\n }, [transaction]);\n\n // Memoized computation of edges based on transaction data\n const edges = useMemo(() => {\n const edgesList: Array = [];\n\n transaction?.transfers?.forEach((transfer, rowIndex) => {\n const nodeIds = Object.keys(NodeType).map(\n type => `node-transfer-${transfer?.id}-${type}`,\n );\n\n for (let i = 0; i < nodeIds.length - 1; i++) {\n edgesList.push({\n id: `e-${nodeIds[i]}-${nodeIds[i + 1]}`, // Unique edge ID\n source: nodeIds[i], // Source node ID\n target: nodeIds[i + 1], // Target node ID\n });\n }\n });\n\n return edgesList;\n }, [transaction]);\n\n // Return empty arrays if no transaction is provided\n if (!transaction) {\n return {\n nodes: [],\n edges: [],\n };\n }\n\n // Return the computed nodes and edges\n return {\n nodes,\n edges,\n };\n}\n","import { useEdgesState, useNodesState } from 'reactflow';\nimport { useTransactionById } from '../useTransactionById';\nimport { useComposedNodesFromTransaction } from './helper';\n\n/**\n * Custom hook to manage nodes and edges from transactions.\n * This hook fetches transaction data, parses it into nodes and edges, and manages their state.\n *\n * @returns {Object} - An object containing the transaction query, nodes, edges, and state change handlers.\n *\n * Example usage:\n * const { transactionByIdQuery, nodes, edges, onNodesChange, onEdgesChange } = useNodesFromTransactions();\n */\nexport function useNodesFromTransactions() {\n // Fetch transaction data by ID using a custom hook\n const transactionByIdQuery = useTransactionById();\n const { transaction } = transactionByIdQuery;\n\n // Parse the transaction data into nodes and edges using a custom hook\n const { edges: parsedEdges, nodes: parsedNodes } =\n useComposedNodesFromTransaction(transaction?.transaction);\n\n // Manage the state of nodes using the useNodesState hook from reactflow\n const [nodes, setNodes, onNodesChange] = useNodesState(parsedNodes);\n\n // Manage the state of edges using the useEdgesState hook from reactflow\n const [edges, setEdges, onEdgesChange] = useEdgesState(parsedEdges);\n\n // Return the transaction query, nodes, edges, and state change handlers\n return {\n transactionByIdQuery,\n nodes,\n edges,\n onNodesChange,\n onEdgesChange,\n };\n}\n","import { useEffect } from 'react';\nimport styles from './styles.module.scss';\nimport ReactFlow, {\n Background,\n BackgroundVariant,\n Controls,\n MiniMap,\n useReactFlow,\n} from 'reactflow';\nimport { deleteFlowWatermark } from './helper';\n\nimport 'reactflow/dist/style.css';\nimport { useNodesFromTransactions } from '@starsoft/common/hooks/transactions/useNodesFromTransactions';\nimport { ErrorCard } from '@starsoft/common/components/ErrorCard';\n\n/**\n * TransactionsCommonMappingModalContentBoard Component\n * This component is responsible for rendering a visual representation of transaction nodes and edges using ReactFlow.\n * It handles the display of nodes and edges, error handling, and view adjustments.\n *\n * @returns {JSX.Element} The rendered component displaying the transaction flow or an error card if an error occurs.\n *\n * @example\n * // Usage example:\n * \n */\nexport function TransactionsCommonMappingModalContentBoard() {\n // Destructure necessary data and functions from the useNodesFromTransactions hook\n const {\n edges, // Array of edge objects representing connections between nodes\n nodes, // Array of node objects representing transaction entities\n onEdgesChange, // Function to handle changes to edges\n onNodesChange, // Function to handle changes to nodes\n transactionByIdQuery: { error, refetch }, // Error and refetch function from the transaction query\n } = useNodesFromTransactions();\n\n // Destructure the fitView function from the useReactFlow hook\n const { fitView } = useReactFlow();\n\n /**\n * handleAdjustNodeOnEnter Function\n * This function removes the React Flow watermark and adjusts the view to fit the nodes.\n * It is executed when the component mounts.\n */\n function handleAdjustNodeOnEnter() {\n // Remove the React Flow watermark\n deleteFlowWatermark();\n\n // Adjust the view to fit the nodes with a duration of 200ms\n setTimeout(() => fitView({ duration: 200 }), 200);\n }\n\n // useEffect hook to execute handleAdjustNodeOnEnter when the component mounts\n useEffect(handleAdjustNodeOnEnter, [handleAdjustNodeOnEnter]);\n\n // If there is an error, render the ErrorCard component with the error and refetch function\n if (error) {\n return (\n
\n \n
\n );\n }\n\n // Render the ReactFlow component with nodes, edges, and additional controls\n return (\n
\n \n {' '}\n {/* Display a mini map at the bottom-right */}\n {' '}\n {/* Display controls at the top-right */}\n {' '}\n {/* Set the background to a dotted pattern */}\n \n
\n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport { FormGroup } from '@starsoft/common/components/FormGroup';\nimport { Input } from '@starsoft/common/components/Input';\nimport TransactionResultDetails from '@starsoft/common/components/Transactions/Result/Details';\n\nexport function TransactionsCommonMappingModalContentDetailsHeaderSkeleton() {\n return (\n
\n
\n

\n
\n

\n
\n
\n \n \n \n \n
\n
\n
\n \n
\n );\n}\n","import {\n useNotificationService,\n useTimeAgo,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport CloseButton from '@starsoft/common/components/Modal/Header/CloseButton';\nimport { TransactionsCommonMappingModalContentDetailsHeaderProps } from './props';\nimport { useTransactionById } from '@starsoft/common/hooks/transactions/useTransactionById';\nimport { FormGroup } from '@starsoft/common/components/FormGroup';\nimport { Input } from '@starsoft/common/components/Input';\nimport TransactionResultDetails from '@starsoft/common/components/Transactions/Result/Details';\nimport { TransactionsCommonMappingModalContentDetailsHeaderSkeleton } from './Skeleton';\n\n/**\n * TransactionsCommonMappingModalContentDetailsHeader Component\n * This component is responsible for rendering the header section of the transaction mapping modal details.\n * It displays the transaction hash, time information, and a close button.\n *\n * @param {TransactionsCommonMappingModalContentDetailsHeaderProps} props - The properties for the component.\n * @param {Function} props.onClose - Callback function to handle closing the modal.\n *\n * @returns {JSX.Element} The rendered component displaying the header of the transaction details.\n *\n * @example\n * // Usage example:\n * function('Modal closed')} />\n */\nexport function TransactionsCommonMappingModalContentDetailsHeader({\n onClose,\n}: TransactionsCommonMappingModalContentDetailsHeaderProps) {\n // Hook to handle translations for the 'common' namespace\n const { t } = useTranslation('common');\n // Hook to fetch transaction data by ID and handle loading state\n const { isLoading, transaction } = useTransactionById();\n // Hook to manage notification services\n const NotificationService = useNotificationService();\n // Hook to calculate time ago from the transaction creation date\n const timeAgo = useTimeAgo({\n date: new Date(transaction?.createdAt ?? new Date()),\n });\n\n /**\n * handleClopyAddress Function\n * This function copies the transaction hash to the clipboard and shows a success notification.\n */\n function handleClopyAddress() {\n if (typeof navigator == 'undefined') {\n return;\n }\n\n navigator.clipboard.writeText(transaction?.transaction?.hash);\n NotificationService.success({\n title: 'copy_base_title',\n message: 'copy_base_description',\n });\n return;\n }\n\n // If the transaction data is still loading, render the skeleton component\n if (isLoading) {\n return ;\n }\n\n // Render the header content with transaction details\n return (\n
\n
\n

\n {t('transaction_visualization_title')}\n

\n \n
\n \n \n }\n />\n \n \n
{timeAgo}
\n
\n \n {Intl.DateTimeFormat('en-US', {\n dateStyle: 'full',\n }).format(new Date(transaction?.createdAt ?? new Date()))}\n
\n
\n \n
\n );\n}\n","import styles from './styles.module.scss';\nimport { NotificationCoinProps } from './props';\nimport { Image } from '@starsoft/common/components';\n\n/**\n * NotificationCoin Component\n * A component that renders a coin image icon for notifications.\n * Uses environment variables to construct the image URL from an S3 bucket.\n *\n * @component\n * @param {Object} props - Component props\n * @param {Object} props.coin - The coin object containing name and image details\n * @param {string} props.coin.name - Name of the coin\n * @param {string} props.coin.image - Image filename for the coin\n * @returns {JSX.Element} The rendered coin image\n *\n * @example\n * // Basic usage\n * \n */\nexport default function NotificationCoin({ coin }: NotificationCoinProps) {\n return (\n \n );\n}\n","/* eslint-disable react/no-danger */\nimport styles from './styles.module.scss';\nimport { TransWithDefault } from '@starsoft/common/components/TransWithDefault';\nimport NotificationCoin from '@starsoft/common/components/Notification/Coin';\nimport { TransactionsCommonMappingModalContentDetailsActionRowProps } from './props';\nimport { WalletService } from '@starsoft/common/services';\nimport useFormattedCryptoAddress from '@starsoft/common/hooks/useFormattedCryptoAddress';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * TransactionsCommonMappingModalContentDetailsActionRow Component\n * This component is responsible for rendering a row of transaction action details.\n * It displays the transfer details including the amount, sender, and receiver information.\n *\n * @param {TransactionsCommonMappingModalContentDetailsActionRowProps} props - The properties for the component.\n * @param {Object} props.transfer - The transfer object containing transaction details.\n * @param {boolean} props.isLoading - Flag indicating whether the data is still loading.\n *\n * @returns {JSX.Element} The rendered component displaying either a loading skeleton or the transaction details.\n *\n * @example\n * // Usage example:\n * \n */\nexport function TransactionsCommonMappingModalContentDetailsActionRow({\n transfer,\n isLoading,\n}: TransactionsCommonMappingModalContentDetailsActionRowProps) {\n // Calculate the amount using the useMoney hook\n\n // Format the sender and receiver addresses\n const maskedSender = useFormattedCryptoAddress(transfer?.sender);\n const maskedReceiver = useFormattedCryptoAddress(transfer?.receiver);\n\n // If the data is loading, render the skeleton component\n if (isLoading) {\n return (\n
\n
\n \n
\n );\n }\n\n // Render the transaction details with icons and formatted addresses\n return (\n
\n ,\n coin: ,\n from: (\n ${maskedSender}`,\n }}\n />\n ),\n to: (\n ${maskedReceiver}`,\n }}\n />\n ),\n }}\n values={{\n amount: getMoneyOrAmount(transfer?.amount),\n converted: WalletService.maskCurrency({\n amount: getMoneyOrAmount(transfer?.amount),\n coin: transfer?.coin,\n hideSymbol: true,\n }),\n }}\n />\n
\n );\n}\n","import { useTranslation } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport { useTransactionById } from '@starsoft/common/hooks/transactions/useTransactionById';\nimport { useMemo } from 'react';\nimport { TransactionsCommonMappingModalContentDetailsActionRow } from './Row';\nimport { TransactionTransfer } from '@starsoft/common/models/transaction/transfer';\n\n/**\n * TransactionsCommonMappingModalContentDetailsActions Component\n * This component is responsible for rendering the action rows related to transaction transfers.\n * It displays either a list of action rows based on transaction data or skeletons while loading.\n *\n * @returns {JSX.Element} The rendered component displaying action rows or skeletons.\n *\n * @example\n * // Usage example:\n * \n */\nexport function TransactionsCommonMappingModalContentDetailsActions() {\n // Hook to handle translations for the 'common' namespace\n const { t } = useTranslation('common');\n // Hook to fetch transaction data by ID and handle loading state\n const { transaction, isLoading } = useTransactionById();\n\n /**\n * Actions Memoized Component\n * This memoized component maps over the transaction transfers and renders an action row for each transfer.\n * It uses the transfer ID as a key for each row.\n */\n const Actions = useMemo(\n () =>\n transaction?.transaction?.transfers?.map(transfer => (\n \n )),\n [transaction],\n );\n\n /**\n * Skeletons Memoized Component\n * This memoized component generates a list of skeleton action rows to display while the data is loading.\n * It creates 5 skeleton rows with unique keys.\n */\n const Skeletons = useMemo(\n () =>\n Array.from({ length: 5 }).map((_, index) => (\n \n )),\n [],\n );\n\n // Render the component with a title and either the action rows or skeletons based on the loading state\n return (\n
\n

\n {t('transactions_mapping_title')}\n

\n
\n {isLoading ? Skeletons : Actions}\n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { TransactionsCommonMappingModalContentDetailsProps } from './props';\nimport { TransactionsCommonMappingModalContentDetailsHeader } from './Header';\nimport { useTransactionById } from '@starsoft/common/hooks/transactions/useTransactionById';\nimport { ErrorCard } from '@starsoft/common/components/ErrorCard';\nimport { TransactionsCommonMappingModalContentDetailsActions } from './Actions';\nimport { Slide } from '@mui/material';\n\n/**\n * TransactionsCommonMappingModalContentDetails Component\n * This component is responsible for rendering the details section of the transaction mapping modal.\n * It handles the display of error messages and the main content of the modal.\n *\n * @param {TransactionsCommonMappingModalContentDetailsProps} props - The properties for the component.\n * @param {Function} props.onClose - Callback function to handle closing the modal.\n *\n * @returns {JSX.Element} The rendered component displaying either an error card or the modal content.\n *\n * @example\n * // Usage example:\n * function('Modal closed')} />\n */\nexport function TransactionsCommonMappingModalContentDetails({\n onClose,\n}: TransactionsCommonMappingModalContentDetailsProps) {\n // Hook to fetch transaction data by ID and handle errors\n const { error, refetch } = useTransactionById();\n\n // If there is an error, render the ErrorCard component\n if (error) {\n return (\n
\n \n
\n );\n }\n\n // Render the main content of the modal with a sliding animation\n return (\n \n
\n \n \n
\n
\n );\n}\n","import { AnimatePresence } from 'framer-motion';\nimport { TransactionsCommonMappingModalProps } from './props';\nimport { TransactionsCommonMappingModalLayout } from './Layout';\nimport { TransactionsCommonMappingModalContentBoard } from './Content/Board';\nimport { TransactionsCommonMappingModalContentDetails } from './Content/Details';\nimport { ReactFlowProvider } from 'reactflow';\n\n/**\n * TransactionsCommonMappingModal Component\n * This component is responsible for rendering a modal with transaction mapping content.\n * It uses the AnimatePresence component from framer-motion to handle animations when the modal is opened or closed.\n * The modal layout and content are provided by TransactionsCommonMappingModalLayout,\n * TransactionsCommonMappingModalContentBoard, and TransactionsCommonMappingModalContentDetails components.\n *\n * @param {TransactionsCommonMappingModalProps} props - The properties for the TransactionsCommonMappingModal component.\n * @param {Function} props.onClose - Callback function to handle closing the modal.\n * @param {boolean} props.open - Flag indicating whether the modal is open.\n * @param {DOMRect | undefined} props.boundings - The bounding rectangle of the button for modal positioning.\n *\n * @returns {JSX.Element} The rendered component displaying the modal with transaction mapping content.\n *\n * @example\n * // Usage example:\n * function('Modal closed')}\n * open={true}\n * boundings={buttonRef.current?.getBoundingClientRect()}\n * />\n */\nexport function TransactionsCommonMappingModal({\n onClose,\n open,\n boundings,\n}: TransactionsCommonMappingModalProps) {\n return (\n \n {open && (\n \n \n \n \n \n \n )}\n \n );\n}\n","import { useToggle, useTranslation } from '@starsoft/common/hooks';\nimport { Button } from '@starsoft/common/components/Button';\nimport { TransactionsCommonMappingModal } from './Modal';\nimport { useRef } from 'react';\n\n/**\n * TransactionsMapping Component\n * This component renders a button that toggles the visibility of a modal.\n * It uses a ref to track the button's bounding rectangle for positioning the modal.\n *\n * @returns {JSX.Element} The rendered component with a button and a modal.\n *\n * @example\n * // Usage example:\n * \n */\nexport function TransactionsMapping() {\n // Reference to the button element to get its bounding rectangle\n const ref = useRef();\n // Hook to handle translations for the 'common' namespace\n const { t } = useTranslation('common');\n // Hook to manage the open state of the modal\n const [open, toggleOpen] = useToggle(false);\n\n // Get the bounding rectangle of the button for modal positioning\n const boundings = ref?.current?.getBoundingClientRect?.();\n\n return (\n <>\n {/* Button to toggle the modal open state */}\n \n {/* Modal component that displays when the button is clicked */}\n \n \n );\n}\n","import styles from './styles.module.scss';\nimport { Image, ToolTip } from '@starsoft/common/components';\nimport { TransactionResultProps } from '../props';\nimport { DepositMethodId, CommonModalsKey } from '@starsoft/common/enums';\nimport { useTranslation } from '../../../../hooks';\nimport { useCurrentModal } from '../../../../hooks/modals/useCurrentModal';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport TransactionResultDetailsSkeleton from './Skeleton';\nimport { TransactionsMapping } from '../../Common/Mapping';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\n\n/**\n * TransactionResultDetails Component\n * Renders transaction details including ID, creation date, payment method, status and related URLs.\n * Can be rendered in minimal mode showing only essential information.\n *\n * @component\n * @param {Object} props - Component props\n * @param {Transaction} props.transaction - Transaction object containing details to display\n * @param {boolean} props.minimal - If true, shows minimal information\n * @param {boolean} props.isLoading - Loading state flag\n * @returns {JSX.Element} A container with transaction details cards\n *\n * @example\n * const transaction = {\n * id: \"123\",\n * method: { id: DepositMethodId.Crypto, name: \"Bitcoin\" },\n * status: { id: DepositStatusId.Paid },\n * createdAt: \"2024-01-01T00:00:00Z\"\n * };\n *\n * \n */\nexport default function TransactionResultDetails({\n transaction,\n minimal,\n isLoading,\n}: TransactionResultProps) {\n const { t } = useTranslation('deposit');\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n\n /**\n * Gets the display name for the deposit method\n * For crypto deposits, returns the coin code\n * For other methods, returns the method name\n *\n * @returns {string} Display name for the deposit method\n *\n * @example\n * // For crypto deposit with BTC\n * getDepositMethodName() // Returns \"BTC\"\n *\n * // For PIX deposit\n * getDepositMethodName() // Returns \"PIX\"\n */\n function getDepositMethodName(): string {\n switch (transaction?.method?.id?.toString()) {\n case DepositMethodId.Crypto?.toString():\n return transaction?.coin?.code;\n }\n\n return transaction?.method?.name;\n }\n\n /**\n * Gets the status translation key based on transaction status\n * Maps status IDs to corresponding chip translation keys\n *\n * @returns {string} Translation key for the status chip\n *\n * @example\n * // For paid status\n * getStatus() // Returns \"chip:chip_success\"\n *\n * // For pending status\n * getStatus() // Returns \"chip:chip_pending\"\n */\n function getStatus() {\n switch (transaction?.status?.id?.toString()) {\n case DepositStatusId.Paid?.toString():\n return 'chip:chip_success';\n case DepositStatusId.Expired?.toString():\n return 'chip:chip_expired';\n case DepositStatusId.Pending?.toString():\n case DepositStatusId.Created?.toString():\n return 'chip:chip_pending';\n case DepositStatusId.Refunded?.toString():\n return 'chip:chip_refunded';\n default:\n return 'chip:chip_pending';\n }\n }\n\n if (isLoading) {\n return ;\n }\n\n return (\n
\n
\n \n {t('transaction_id')}\n \n \n #{transaction?.id?.toString()}\n \n
\n\n {!minimal && (\n
\n \n {t('common:created_at')}\n \n\n \n {new Intl.DateTimeFormat('pt-BR', {\n hour: 'numeric',\n minute: 'numeric',\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n }).format(new Date(transaction?.createdAt))}\n \n
\n )}\n {!minimal && (\n
\n \n {modal === CommonModalsKey.Deposit\n ? t('deposit_method_label')\n : t('withdraw:withdraw_method_choice')}\n \n \n \n\n \n {t(getDepositMethodName())}\n \n
\n
\n )}\n\n
\n \n {t('status')}\n \n \n \n \n {t(getStatus())}\n \n
\n
\n\n {transaction?.transaction?.url && (\n
\n \n {t('transaction_url')}\n \n \n \n {transaction?.transaction?.url}\n \n
\n
\n )}\n\n {transaction?.transaction?.transfers?.length > 0 && !minimal && (\n \n \n \n \n \n {' '}\n {t('common:transactions_mapping_title')}\n \n \n \n
\n
\n )}\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { useState } from 'react';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { useTranslation } from '../../../../hooks';\nimport { useCurrentModal } from '../../../../hooks/modals/useCurrentModal';\n\n/**\n * PaymentExperience Component\n * Renders a feedback UI with thumbs up/down buttons for users to rate their payment experience.\n * The component adapts its text based on whether it's shown in a deposit or withdrawal context.\n *\n * @component\n * @returns {JSX.Element} A container with description text and two feedback buttons\n *\n * @example\n * \n */\nexport default function PaymentExperience() {\n const [isPositive, setIsPositive] = useState>(null);\n const { t } = useTranslation('deposit');\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n\n /**\n * Handles click events on the feedback buttons\n * @param {boolean} isPositive - Whether positive (true) or negative (false) feedback was given\n * @returns {void}\n *\n * @example\n * handleClick(true) // Sets positive feedback\n * handleClick(false) // Sets negative feedback\n */\n function handleClick(isPositive: boolean) {\n setIsPositive(isPositive);\n }\n\n return (\n
\n

\n {modal === CommonModalsKey.Deposit\n ? t('payment_experience')\n : t('withdraw:payment_experience')}\n

\n\n
\n handleClick(true)}\n >\n {isPositive && (\n
\n \n
\n )}\n \n \n\n handleClick(false)}\n >\n {!isPositive && (\n
\n \n
\n )}\n \n \n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { useModalNavigation, useTranslation } from '../../../../hooks';\nimport { Link } from '@starsoft/common/components/Link';\n\n/**\n * TransactionResultActions Component\n * Renders a button that links to the support modal, allowing users to ask questions\n * about their transaction.\n *\n * @component\n * @returns {JSX.Element} A container with a link button to the support modal\n *\n * @example\n * \n */\nexport default function TransactionResultActions() {\n const { t } = useTranslation('deposit');\n const { getModalLink } = useModalNavigation();\n\n return (\n
\n \n \n \n
\n );\n}\n","import { Deposit, Withdraw } from '../../../../../../models';\n\nexport enum StepperOptions {\n Created,\n Processing,\n Result,\n}\n\nexport interface TransactionModalResponseContentStepperStepProps {\n position?: StepperOptions;\n transaction?: Deposit | Withdraw;\n}\n","import {\n DepositStatusId,\n DepositStatusIdType,\n} from '@starsoft/common/models/deposit/status/id';\nimport { StepperOptions } from './props';\nimport {\n WithdrawalStatusId,\n WithdrawalStatusIdType,\n} from '@starsoft/common/models/withdraw/status/id';\n\n/**\n * Gets the translation key for deposit step title based on step position\n * @param {StepperOptions} step - The step position in the stepper (Created, Processing, Result)\n * @returns {string} Translation key for the step title\n * @example\n * getDepositStepTitle(StepperOptions.Created) // Returns 'deposit_order_created_title'\n */\nexport function getDepositStepTitle(step: StepperOptions) {\n switch (step) {\n case StepperOptions.Created:\n return 'deposit_order_created_title';\n case StepperOptions.Processing:\n return 'deposit_order_processing_title';\n case StepperOptions.Result:\n return 'deposit_order_result_title';\n }\n}\n\n/**\n * Gets the translation key for step description based on step position\n * @param {StepperOptions} step - The step position in the stepper (Created, Processing)\n * @returns {string} Translation key for the step description\n * @example\n * getStepDescription(StepperOptions.Created) // Returns 'deposit_order_created_description'\n */\nexport function getStepDescription(step: StepperOptions) {\n switch (step) {\n case StepperOptions.Created:\n return 'deposit_order_created_description';\n case StepperOptions.Processing:\n return 'deposit_order_processing_description';\n }\n}\n\n/**\n * Gets the translation key for withdrawal step title based on step position\n * @param {StepperOptions} step - The step position in the stepper (Created, Processing, Result)\n * @returns {string} Translation key for the step title\n * @example\n * getWithdrawStepTitle(StepperOptions.Created) // Returns 'withdraw_order_created_title'\n */\nexport function getWithdrawStepTitle(step: StepperOptions) {\n switch (step) {\n case StepperOptions.Created:\n return 'withdraw_order_created_title';\n case StepperOptions.Processing:\n return 'withdraw_order_processing_title';\n case StepperOptions.Result:\n return 'deposit_order_result_title';\n }\n}\n\n/**\n * Determines the status of a step based on its position and transaction status\n * @param {StepperOptions} step - The step position in the stepper\n * @param {DepositStatusIdType | WithdrawalStatusIdType} status - Current status of the transaction\n * @returns {string | null} Status indicator ('completed', 'current', 'error' or null)\n * @example\n * getStepperStatus(StepperOptions.Processing, DepositStatusId.Pending) // Returns 'current'\n * getStepperStatus(StepperOptions.Result, DepositStatusId.Paid) // Returns 'completed'\n */\nexport function getStepperStatus(\n step: StepperOptions,\n status: DepositStatusIdType | WithdrawalStatusIdType,\n) {\n switch (step) {\n case StepperOptions.Created:\n return 'completed';\n case StepperOptions.Processing:\n switch (status?.toString()) {\n case DepositStatusId.Pending?.toString():\n return 'current';\n case DepositStatusId.Paid?.toString():\n case WithdrawalStatusId.Paid?.toString():\n case WithdrawalStatusId.Rejected?.toString():\n case DepositStatusId.Expired?.toString():\n case WithdrawalStatusId.Expired?.toString():\n case DepositStatusId.Refunded?.toString():\n case WithdrawalStatusId.Refunded?.toString():\n return 'completed';\n }\n break;\n case StepperOptions.Result:\n switch (status?.toString()) {\n case DepositStatusId.Pending?.toString():\n default:\n return null;\n case DepositStatusId.Paid?.toString():\n case WithdrawalStatusId.Paid?.toString():\n return 'completed';\n case DepositStatusId.Expired?.toString():\n case WithdrawalStatusId.Expired?.toString():\n case DepositStatusId.Refunded?.toString():\n case WithdrawalStatusId.Refunded?.toString():\n return 'error';\n }\n }\n}\n\n/**\n * Gets the appropriate Font Awesome icon class based on step position and transaction status\n * @param {StepperOptions} step - The step position in the stepper\n * @param {DepositStatusIdType | WithdrawalStatusIdType} status - Current status of the transaction\n * @returns {string} Font Awesome icon class name\n * @example\n * getSteperIcon(StepperOptions.Processing, DepositStatusId.Pending) // Returns 'fa-solid fa-rotate-right fa-spin'\n * getSteperIcon(StepperOptions.Result, DepositStatusId.Paid) // Returns 'fa-solid fa-check'\n */\nexport function getSteperIcon(\n step: StepperOptions,\n status: DepositStatusIdType | WithdrawalStatusIdType,\n) {\n switch (step) {\n case StepperOptions.Created:\n default:\n return 'fa-solid fa-check';\n case StepperOptions.Processing:\n switch (status?.toString()) {\n case DepositStatusId.Pending?.toString():\n return 'fa-solid fa-rotate-right fa-spin';\n default:\n return 'fa-solid fa-check';\n }\n case StepperOptions.Result:\n switch (status?.toString()) {\n case DepositStatusId.Pending?.toString():\n case WithdrawalStatusId.Pending?.toString():\n return 'fa-solid fa-hourglass-half';\n case DepositStatusId.Paid?.toString():\n case WithdrawalStatusId.Paid?.toString():\n return 'fa-solid fa-check';\n case DepositStatusId.Expired?.toString():\n case WithdrawalStatusId.Expired?.toString():\n case DepositStatusId.Refunded?.toString():\n case WithdrawalStatusId.Refunded?.toString():\n return 'fa-solid fa-circle-exclamation';\n default:\n return 'fa-solid fa-hourglass-half';\n }\n }\n}\n","import styles from './style.module.scss';\nimport {\n StepperOptions,\n TransactionModalResponseContentStepperStepProps,\n} from './props';\nimport {\n getStepDescription,\n getSteperIcon,\n getStepperStatus,\n getDepositStepTitle,\n getWithdrawStepTitle,\n} from './helper';\nimport { useTranslation } from '../../../../../../hooks';\nimport { CommonModalsKey } from '../../../../../../enums';\nimport { useCurrentModal } from '../../../../../../hooks/modals/useCurrentModal';\nimport { Deposit } from '../../../../../../models';\nimport {\n DepositStatusId,\n DepositStatusIdType,\n} from '@starsoft/common/models/deposit/status/id';\nimport { WithdrawalStatusIdType } from '@starsoft/common/models/withdraw/status/id';\n\n/**\n * TransactionModalResponseContentStepperStep Component\n * Renders a single step in the transaction stepper UI, showing status, title, description and optional payment link.\n * The step appearance changes based on transaction type (deposit/withdrawal) and current status.\n *\n * @component\n * @param {Object} props - Component props\n * @param {number} props.position - The position/index of this step in the stepper (0-2)\n * @param {TransactionType} props.transaction - The transaction object containing status, dates and payment details\n * @returns {JSX.Element} A step container with indicator, title, description and optional payment link\n *\n * @example\n * const transaction = {\n * status: {\n * id: \"1\", // DepositStatusId.Created\n * name: { en: \"Created\" }\n * },\n * createdAt: \"2023-12-25T10:30:00Z\",\n * paymentLink: {\n * url: \"https://payment.provider.com/tx123\"\n * }\n * };\n *\n * \n */\nexport default function TransactionModalResponseContentStepperStep({\n position,\n transaction,\n}: TransactionModalResponseContentStepperStepProps) {\n const { t, lang } = useTranslation('common');\n const modal: string | undefined = useCurrentModal(CommonModalsKey);\n const formUrl: string = (transaction as Deposit)?.paymentLink?.url;\n const title: string =\n modal === CommonModalsKey.Deposit\n ? getDepositStepTitle(position)\n : getWithdrawStepTitle(position);\n const description: string = getStepDescription(position);\n const icon: string = getSteperIcon(\n position,\n transaction?.status?.id as DepositStatusIdType | WithdrawalStatusIdType,\n );\n const itemStatus: string = getStepperStatus(\n position,\n transaction?.status?.id as DepositStatusIdType | WithdrawalStatusIdType,\n );\n\n return (\n \n \n \n
\n
\n
\n {t(title, {\n status: transaction?.status?.name?.[lang] ?? '',\n })}\n
\n {position != StepperOptions.Result && (\n
\n {t(description, {\n createdAt: Intl.DateTimeFormat(lang, {\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n }).format(new Date(transaction?.createdAt)),\n })}\n
\n )}\n {formUrl &&\n position == StepperOptions.Processing &&\n transaction?.status?.id?.toString() ==\n DepositStatusId.Created?.toString() && (\n \n
{formUrl}
\n \n \n )}\n
\n
\n );\n}\n","import { ExternalRedirectHeaderStepperProps } from './props';\nimport styles from './styles.module.scss';\nimport { useMemo } from 'react';\nimport TransactionModalResponseContentStepperStep from './Step';\n\n/**\n * ExternalRedirectHeaderStepper Component\n * Renders a stepper component showing the progress of an external redirect transaction.\n * Creates 3 step indicators that visualize the transaction flow.\n *\n * @component\n * @param {Object} props - Component props\n * @param {TransactionType} props.transaction - The transaction object containing progress and status details\n * @returns {JSX.Element} A container div with 3 step indicators\n *\n * @example\n * const transaction = {\n * id: \"t123\",\n * status: { id: \"pending\" },\n * progress: 1, // Current step (0-2)\n * };\n *\n * \n */\nexport default function ExternalRedirectHeaderStepper({\n transaction,\n}: ExternalRedirectHeaderStepperProps) {\n /**\n * Creates an array of 3 step components using useMemo for performance\n * Each step receives its position index and the transaction data\n * @returns {JSX.Element[]} Array of step components\n */\n const Steps: JSX.Element[] = useMemo(\n () =>\n Array.from({ length: 3 }).map((_, index) => (\n \n )),\n [transaction],\n );\n\n return
{Steps}
;\n}\n","import ExternalRedirectHeaderStepper from './Stepper';\nimport styles from './styles.module.scss';\nimport { TransactionResultProps } from '../props';\nimport { useTranslation } from '../../../../hooks';\n\n/**\n * ExternalRedirectTrail Component\n * Displays a trail/progress indicator for external redirect transactions.\n * Shows a title and stepper component to track transaction progress.\n *\n * @component\n * @param {Object} props - Component props\n * @param {TransactionType} props.transaction - The transaction object containing status and progress details\n * @returns {JSX.Element} A container with title and stepper for tracking transaction progress\n *\n * @example\n * const transaction = {\n * id: \"t123\",\n * status: { id: \"pending\" },\n * progress: 50\n * };\n *\n * \n */\nexport default function ExternalRedirectTrail({\n transaction,\n}: TransactionResultProps) {\n const { t } = useTranslation('common');\n\n return (\n
\n

{t('order_progress_title')}

\n \n
\n );\n}\n","import styles from './styles.module.scss';\nimport { useCountdown, useTranslation } from '../../../../hooks';\nimport { Counter } from '@starsoft/common/components/Counter';\nimport { TransactionResultExpiresAtProps } from './props';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { DepositQueryKeys, WithdrawalsQueryKeys } from '@starsoft/common/api';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\nimport { WithdrawalStatusId } from '@starsoft/common/models/withdraw/status/id';\n\n/**\n * TransactionResultExpiresAt Component\n * Renders a countdown timer showing when a transaction will expire.\n * The countdown is only shown for pending/created deposits and non-expired withdrawals.\n * When countdown completes, it invalidates related queries to refresh transaction data.\n *\n * @component\n * @param {Object} props - Component props\n * @param {Withdraw | Deposit} props.transaction - The transaction object containing status and expiry details\n * @returns {JSX.Element | null} A container with expiry disclaimer text and countdown timer, or null if expired withdrawal\n *\n * @example\n * const transaction = {\n * status: { id: DepositStatusId.Pending },\n * expiresAt: \"2024-01-01T00:00:00Z\"\n * };\n *\n * \n */\nexport default function TransactionResultExpiresAt({\n transaction,\n}: TransactionResultExpiresAtProps) {\n const { t } = useTranslation('common');\n const queryClient = useQueryClient();\n\n // Setup countdown hook with auto-refresh on completion\n const countdown = useCountdown({\n disabled:\n !transaction?.expiresAt ||\n ![\n DepositStatusId.Pending?.toString(),\n DepositStatusId.Created?.toString(),\n ].includes(transaction?.status?.id?.toString() ?? ''),\n targetDate: transaction?.expiresAt?.toString() ?? new Date().toString(),\n onCountdownComplete: () => {\n // Invalidate queries to refresh transaction data\n queryClient.invalidateQueries({\n queryKey: [DepositQueryKeys.ById],\n });\n queryClient.invalidateQueries({\n queryKey: [DepositQueryKeys.Primary],\n });\n queryClient.invalidateQueries({\n queryKey: [WithdrawalsQueryKeys.ById],\n });\n queryClient.invalidateQueries({\n queryKey: [WithdrawalsQueryKeys.Primary],\n });\n },\n });\n\n // Don't show countdown for expired withdrawals\n if (\n transaction?.status?.id === WithdrawalStatusId.Expired &&\n transaction?.expiresAt\n ) {\n return null;\n }\n\n return (\n
\n \n {t('expires_at_disclaimer')}\n \n \n
\n );\n}\n","import { useCurrentModal, useLottiePlayer } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport TransactionResultDetails from './Details';\nimport { Image, StaggerAnimation } from '@starsoft/common/components';\nimport PaymentExperience from './PaymentExperience';\nimport TransactionResultActions from './Actions';\nimport { Collapse } from '@mui/material';\nimport { TransactionResultProps } from './props';\nimport ExternalRedirectTrail from './Trail';\nimport { WalletService } from '@starsoft/common/services';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\nimport TransactionResultExpiresAt from './ExpiresAt';\nimport { CommonModalsKey } from '@starsoft/common/enums';\n\n/**\n * TransactionResult Component\n * Displays the result of a transaction with animated visuals and detailed information.\n * Shows different states based on transaction status including pending, paid, expired etc.\n *\n * @component\n * @param {Object} props - Component props\n * @param {TransactionType} props.transaction - The transaction object containing status, amount, coin etc.\n * @returns {JSX.Element} A staggered animation container with transaction details\n *\n * @example\n * const transaction = {\n * status: { id: \"1\" }, // DepositStatusId.Paid\n * amount: 100,\n * coin: {\n * image: \"btc.svg\",\n * name: \"Bitcoin\"\n * }\n * };\n *\n * \n */\nexport default function TransactionResult({\n transaction,\n}: TransactionResultProps) {\n const modal = useCurrentModal(CommonModalsKey);\n\n /**\n * Determines which Lottie animation file to use based on transaction status\n * @returns {string | undefined} The name of the Lottie animation file to use\n */\n function getLottie(): string | undefined {\n switch (transaction?.status?.id?.toString()) {\n case DepositStatusId.Paid?.toString():\n return 'check.json';\n case DepositStatusId.Expired?.toString():\n case DepositStatusId.Refunded?.toString():\n return 'error.json';\n case DepositStatusId.Pending?.toString():\n case DepositStatusId.Created?.toString():\n default:\n return 'processing.json';\n }\n }\n\n const { lottieAnimationRef } = useLottiePlayer({\n path: `/${getLottie()}`,\n dependecyArray: [transaction],\n });\n\n return (\n \n
\n
\n {transaction?.status?.id?.toString() ===\n DepositStatusId.Pending?.toString() && (\n \n \n
\n )}\n \n
\n {transaction?.status?.id?.toString() !==\n DepositStatusId.Pending?.toString() && (\n
\n )}\n\n
\n
\n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(transaction?.amount),\n coin: transaction?.coin,\n })}\n
\n
\n {transaction?.status?.id?.toString() ===\n DepositStatusId.Created?.toString() &&\n modal === CommonModalsKey.Deposit && (\n \n )}\n {transaction?.status?.id?.toString() !==\n DepositStatusId.Pending?.toString() && (\n
\n )}\n\n \n \n
\n\n \n
\n \n \n
\n \n \n );\n}\n","import QrCodePendingContent from './Pending';\nimport { PixProps } from './props';\nimport TransactionResult from '../../../../../../Result';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\n\n/**\n * QrCodeResponse Component\n * This component is responsible for rendering the appropriate content based on the deposit status.\n * It conditionally renders either a QR code pending content or a transaction result based on the deposit status.\n *\n * @param {PixProps} props - The properties for the component.\n * @param {object} props.deposit - The deposit object containing the status and other details.\n *\n * @returns {JSX.Element} The rendered component based on the deposit status.\n *\n * @example\n * // Usage example:\n * const deposit = { status: { id: '1' }, ...otherProps };\n * \n */\nexport default function QrCodeResponse({ deposit }: PixProps) {\n switch (deposit?.status?.id?.toString()) {\n case DepositStatusId.Pending?.toString():\n case DepositStatusId.Created?.toString():\n // Render the QR code pending content if the deposit status is 'Pending' or 'Created'\n return ;\n default:\n // Render the transaction result for any other deposit status\n return ;\n }\n}\n","import TransactionResult from '../../../../../../Result';\nimport { ExternalRedirectProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * ExternalRedirect Component\n * This component is responsible for rendering the transaction result for an external redirect deposit.\n *\n * @param {ExternalRedirectProps} props - The properties for the component.\n * @param {object} props.deposit - The deposit object containing details of the transaction.\n *\n * @returns {JSX.Element} The rendered component displaying the transaction result.\n *\n * @example\n * // Usage example:\n * const deposit = { status: { id: '1' }, ...otherProps };\n * \n */\nexport default function ExternalRedirect({ deposit }: ExternalRedirectProps) {\n return (\n
\n \n
\n );\n}\n","import { ErrorCard } from '@starsoft/common/components';\nimport { useSearchParams } from '@starsoft/common/hooks';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport QrCodeResponse from './QrCodeResponse';\nimport styles from './styles.module.scss';\nimport ExternalRedirect from './ExternalRedirect';\nimport { useDepositById } from '../../../../../../../api';\nimport { DepositMethodId } from '@starsoft/common/enums';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\nimport { DepositStatusId } from '@starsoft/common/models/deposit/status/id';\n\n/**\n * DepositResponseContent Component\n * This component is responsible for rendering the appropriate response content\n * based on the deposit method and status retrieved from the URL search parameters.\n *\n * It utilizes the `useDepositById` hook to fetch deposit details and conditionally\n * renders either a QR code response or an external redirect based on the deposit method.\n *\n * @returns {JSX.Element} The rendered component for the deposit response.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function DepositResponseContent() {\n // Retrieve search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n // Get the 'method-id' from the search parameters\n const searchMethodId: Nullable = search.get('method-id');\n // Determine the method ID, defaulting to null if not found\n const methodId: Nullable = searchMethodId ? searchMethodId : null;\n // Get the 'deposit-id' from the search parameters\n const id: Nullable = search.get('deposit-id');\n // Fetch deposit details using the deposit ID\n const { error, refetch, deposit, isLoading } = useDepositById({\n id: id ? (parseToBigInt(id) as bigint) : undefined,\n });\n\n // Render a loading skeleton if the data is still being fetched\n if (isLoading) {\n return
;\n }\n\n // Render an error card if there is an error fetching the deposit details\n if (error) {\n return ;\n }\n\n // Determine the response content based on the method ID and deposit status\n switch (methodId?.toString()) {\n case DepositMethodId.BetterbroBrazillianPix?.toString():\n case DepositMethodId.PixtopayBrazillianPix?.toString():\n // Render a QR code response if the deposit status is 'Created'\n if (\n deposit?.status?.id?.toString() === DepositStatusId.Created?.toString()\n ) {\n return ;\n }\n // Otherwise, render an external redirect\n return ;\n case DepositMethodId.BetterbroMercadoPago?.toString():\n case DepositMethodId.BetterbroMexicanSpei?.toString():\n case DepositMethodId.BetterbroUpi?.toString():\n case DepositMethodId.PayGamesIndiaUpi?.toString():\n case DepositMethodId.PayGamesIndonesiaQris?.toString():\n case DepositMethodId.PayGamesNigeria?.toString():\n case DepositMethodId.PayGamesSingaporePayNow?.toString():\n case DepositMethodId.PayGamesSouthAfrica?.toString():\n // Render an external redirect for these specific method IDs\n return ;\n default:\n // Default to rendering an external redirect if no specific case matches\n return ;\n }\n}\n","import { Navigate } from '@starsoft/common/components';\nimport { usePathname, useSearchParams } from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport DepositResponseContent from './Content';\n\n/**\n * DepositResponse Component\n * This component is responsible for rendering the response content of a deposit transaction.\n * It checks for the presence of a 'deposit-id' in the URL search parameters and navigates back to the current path if not found.\n *\n * @returns {JSX.Element} The rendered component for the deposit response.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function DepositResponse() {\n // Retrieve the current pathname from the URL\n const pathname: string = usePathname();\n // Retrieve the search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n // Get the 'deposit-id' from the search parameters\n const id: Nullable = search.get('deposit-id');\n\n // If 'deposit-id' is not found, navigate back to the current pathname\n if (!id) {\n return ;\n }\n\n // Render the deposit response content\n return (\n
\n
\n \n
\n
\n );\n}\n","import TransactionModalsDepositContentTransactionForm from './Form';\nimport DepositResponse from './Response';\nimport { DepositStep } from '@starsoft/common/enums';\nimport { TransactionsModalDepositContentFormLayoutProps } from './props';\nimport useDepositSearchParams from '../../../../../hooks/deposit/useDepositSearchParams';\nimport UserIdentityForm from '../../../../KYC/UserIdentity/Form';\n\n/**\n * TransactionModalsDepositContent Component\n * This component is responsible for rendering different content based on the current deposit step.\n * It utilizes the `useDepositSearchParams` hook to determine the current step and renders the appropriate component.\n *\n * @param {TransactionsModalDepositContentFormLayoutProps} props - The properties for the component.\n * @param {React.ReactNode} props.additionalContent - Additional content to be rendered inside the deposit form.\n *\n * @returns {JSX.Element} The rendered component based on the current deposit step.\n *\n * @example\n * // Usage example:\n * Extra Content
} />\n */\nexport default function TransactionModalsDepositContent({\n additionalContent,\n}: TransactionsModalDepositContentFormLayoutProps) {\n // Retrieve the current transaction step from the deposit search parameters\n const { transactionStep } = useDepositSearchParams();\n\n // Render different components based on the current transaction step\n switch (transactionStep) {\n case DepositStep.Form:\n // Render the deposit form with additional content\n return (\n \n );\n case DepositStep.CreatePersonalIdentity:\n // Render the user identity form for KYC\n return ;\n case DepositStep.Response:\n // Render the deposit response component\n return ;\n }\n}\n","import { useModal } from '@starsoft/common/hooks';\nimport TransactionsLayout from '../../Layout';\nimport TransactionModalsDepositContentLayout from './Layout';\nimport TransactionModalsDepositContent from './Content';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { TransactionModalDepositProps } from './props';\n\n/**\n * TransactionModalDeposit Component\n * This component is responsible for rendering the deposit modal with its content and layout.\n * It utilizes the useModal hook to manage modal state and callbacks.\n *\n * @param {TransactionModalDepositProps} props - The properties for the component.\n * @param {React.ReactNode} props.additionalContent - Additional content to be rendered inside the deposit modal.\n *\n * @returns {JSX.Element} The rendered deposit modal component.\n *\n * @example\n * // Usage example:\n * Extra Content
} />\n */\nexport function TransactionModalDeposit({\n additionalContent,\n originId,\n version,\n}: TransactionModalDepositProps) {\n // Retrieve modal callbacks for the 'Deposit' modal\n const modalCallbacks = useModal(CommonModalsKey.Deposit);\n\n // Render the TransactionsLayout with the deposit content and layout\n return (\n \n \n \n \n \n );\n}\n","// Import necessary types and hooks\nimport { UseWithdrawFormStateProps } from './props';\nimport { useWithdrawSearchParams } from '../useWithdrawSearchParams';\nimport { useWithdrawForm } from '../useWithdrawForm';\nimport { WithdrawMethodId, WithdrawStep } from '../../../enums';\nimport { CoinType } from '../../../models';\n\n/**\n * Custom hook to manage the state of the withdrawal form.\n * This hook determines the validity of the form based on the current step in the withdrawal process.\n *\n * @param {UseWithdrawFormStateProps} props - The properties for the hook.\n * @param {Function} props.watch - Function to watch form fields.\n * @param {Function} props.setValue - Function to set form field values.\n * @returns {boolean} A boolean indicating whether the form is in a valid state for the current step.\n *\n * @example\n * // Usage example:\n * const isFormValid = useWithdrawFormState({\n * watch: formWatchFunction,\n * setValue: formSetValueFunction,\n * });\n */\nexport function useWithdrawFormState({\n watch,\n setValue,\n}: UseWithdrawFormStateProps) {\n // Retrieve withdrawal method ID, coin type, and transaction step from search parameters\n const { withdrawMethodId, coinType, transactionStep } =\n useWithdrawSearchParams();\n\n // Watch specific form fields for changes\n const amount = watch('amount');\n const code: string = watch('code');\n const emailId: bigint = watch('emailId');\n const userPaymentDetailSelectedAccount: string = watch('paymentDetailsId');\n\n // Destructure necessary values from the useWithdrawForm hook\n const {\n tokenLookupQuery: { tokenLookup, isPendingTokenLookup },\n feeQuery: { isErrorFee, isLoadingFee },\n isOverValued,\n isUnderValued,\n isValidReceiveAmount,\n } = useWithdrawForm(watch, setValue);\n\n // Determine form validity based on the current transaction step\n switch (transactionStep) {\n case WithdrawStep.Form:\n // Check conditions for the Form step\n return (\n amount === 0 ||\n !withdrawMethodId ||\n isOverValued ||\n isUnderValued ||\n !amount ||\n !isValidReceiveAmount ||\n isLoadingFee ||\n isErrorFee ||\n (coinType == CoinType.Crypto &&\n withdrawMethodId === WithdrawMethodId.Crypto?.toString() &&\n (!tokenLookup?.valid || isPendingTokenLookup))\n );\n case WithdrawStep.UserPaymentDetails:\n // Check conditions for the User Payment Details step\n return (\n (coinType == CoinType.Fiat && !userPaymentDetailSelectedAccount) ||\n isErrorFee\n );\n case WithdrawStep.Confirmation:\n // Check conditions for the Confirmation step\n return !emailId || isErrorFee;\n case WithdrawStep.ConfirmationCode:\n // Check conditions for the Confirmation Code step\n return !code || code?.length < 6 || isErrorFee;\n case WithdrawStep.Response:\n // The Response step is always valid\n return false;\n }\n}\n\n// Export the type for useWithdrawFormState props\nexport type { UseWithdrawFormStateProps };\n","import { Button } from '@starsoft/common/components';\nimport styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function SecurityDrawerContentSkeleton() {\n return (\n
\n
\n {Array.from({ length: 4 }).map((_, i) => (\n \n
\n
\n
\n ))}\n
\n\n
\n );\n}\n","export namespace UserPaymentDetailsTypeId {\n export const Pix = 1n;\n export const Imps = 2n;\n export const MexicanBankAccount = 3n;\n export const ArgentineBankAccount = 4n;\n export const SouthAfricaBankAccount = 5n;\n export const NigerianBankAccount = 6n;\n export const Qris = 7n;\n export const SingaporeBankAccount = 8n;\n}\n\nexport type UserPaymentDetailsTypeIdType =\n (typeof UserPaymentDetailsTypeId)[keyof typeof UserPaymentDetailsTypeId];\n","import { UserPaymentDetailsTypeId } from '@starsoft/common/enums';\nimport { UserPaymentDetails } from '@starsoft/common/models';\n\nexport function getUserPaymentDetailsFieldByTypeId(\n userPaymentDetail?: UserPaymentDetails,\n) {\n switch (userPaymentDetail?.type?.id?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return userPaymentDetail?.pix?.maskedKey;\n case UserPaymentDetailsTypeId.Imps?.toString():\n return userPaymentDetail?.imps?.accountNumber;\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n return userPaymentDetail?.bankAccount?.account;\n }\n}\n","import { useCoinById } from '../../../api';\nimport { useWithdrawSearchParams } from '../useWithdrawSearchParams';\n\n/**\n * Custom hook to retrieve the coin information by its ID from the withdrawal search parameters.\n * This hook uses the coin ID from the search parameters and fetches the corresponding coin information.\n *\n * @returns {Object} An object containing the coin information.\n *\n * @example\n * // Usage example:\n * const { data, error, isLoading } = useWithdrawalCoinBySearchParamId();\n */\nexport function useWithdrawalCoinBySearchParamId() {\n // Retrieve the coin ID from the search parameters\n const { coinId } = useWithdrawSearchParams();\n\n // Fetch the coin information by its ID using the useCoinById hook\n return useCoinById({\n id: coinId?.toString(), // Convert the coin ID to a string\n });\n}\n","export enum UserPaymentDetailsQueryKeys {\n MeDefault = '/user-payment-details/me',\n MeInfinity = '/user-payment-details/me-infinity',\n ById = '/user-payment-details/:id',\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserPaymentDetailsByIdQueryKeyProps } from './props';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { UserPaymentDetails } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchUserPaymentDetailsById(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n) {\n const { id } = queryKey[1];\n\n const response = await axiosInstance.get>(\n `/user-payment-details/${id}`,\n );\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserPaymentDetailsQueryKeys } from '../../queryKeys';\nimport {\n UseUserPaymentDetailsByIdProps,\n UseUserPaymentDetailsByIdQueryKeyProps,\n} from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchUserPaymentDetailsById } from './service';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { useEffect } from 'react';\nimport { GenericError, UserPaymentDetails } from '@starsoft/common/models';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to fetch user payment details by ID\n *\n * This hook handles fetching payment details for a specific user by their ID.\n * It uses React Query for data fetching, caching, and state management.\n * The hook also supports executing a callback function when data is successfully fetched.\n *\n * @param {UseUserPaymentDetailsByIdProps} options - Optional configuration object\n * @param {string} options.id - The ID of the payment details to fetch\n * @param {Function} options.externalSuccess - Optional callback function to execute when data is fetched successfully\n *\n * @returns {Object} An object containing:\n * - data: The fetched payment details 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 */\nexport function useUserPaymentDetailsById(\n options?: UseUserPaymentDetailsByIdProps,\n) {\n const { id, externalSuccess } = options ?? {};\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UseUserPaymentDetailsByIdQueryKeyProps = [\n UserPaymentDetailsQueryKeys.ById,\n { id },\n ];\n\n const { data, isPending, isError, error, refetch, isFetching, fetchStatus } =\n useQuery<\n Nullable,\n AxiosError,\n Nullable,\n UseUserPaymentDetailsByIdQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext =>\n fetchUserPaymentDetailsById(queryContext, axiosInstance),\n enabled: !!id,\n staleTime: 5 * 1000,\n });\n\n /**\n * Handles calling the external success callback when data is available\n * Only executes if both data and callback are present\n */\n function handleExternalSuccess() {\n if (!data || !externalSuccess) {\n return;\n }\n\n externalSuccess?.(data);\n }\n\n //eslint-disable-next-line\n useEffect(handleExternalSuccess, [data]);\n\n return {\n data,\n isLoading: isPending && fetchStatus !== 'idle',\n isFetching,\n isError,\n error,\n refetch,\n };\n}\n","import { Button, ErrorCard, Image } from '@starsoft/common/components';\nimport { CoinType, GenericError } from '@starsoft/common/models';\nimport { AxiosError } from 'axios';\nimport { useFormContext } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { useTranslation } from '@starsoft/common/hooks';\nimport SecurityDrawerContentSkeleton from './Skeleton';\nimport { SecurityDrawerProps } from '../props';\nimport { getUserPaymentDetailsFieldByTypeId } from './helper';\nimport {\n useWithdrawalCoinBySearchParamId,\n useWithdrawForm,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\nimport { useUserPaymentDetailsById } from '../../../../../../../api';\nimport { WithdrawMethodId } from '@starsoft/common/enums';\nimport {\n MoneyService as Money,\n WalletService,\n} from '@starsoft/common/services';\nimport { useMemo } from 'react';\nimport { WithdrawFormCreateDto } from '../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\n\n/**\n * SecurityDrawerContent Component\n * Renders the content for the security drawer, including withdrawal details and a submit button.\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isLoading - Loading state for the mutation process\n * @returns {JSX.Element} A container with withdrawal details and a submit button\n *\n * @example\n * \n */\nexport default function SecurityDrawerContent({\n isLoading: isLoadingMutation,\n}: Pick) {\n const { t } = useTranslation('withdraw');\n const { watch, setValue } = useFormContext();\n const address: string | undefined = watch('address');\n const paymentDetailsId: string | undefined = watch('paymentDetailsId');\n const { withdrawMethodId, coinType } = useWithdrawSearchParams();\n const {\n coin,\n error: errorCoin,\n refetch: refetchCoin,\n isPending: isPendingCoin,\n } = useWithdrawalCoinBySearchParamId();\n const {\n data: userPaymentDetail,\n error: errorUserPaymentDetail,\n isLoading: isLoadingUserPaymentDetail,\n refetch: refetchUserPaymentDetail,\n } = useUserPaymentDetailsById({\n id:\n !!paymentDetailsId && coinType === CoinType.Fiat\n ? (parseToBigInt(paymentDetailsId) as bigint)\n : undefined,\n });\n\n const {\n feeQuery: { errorFee, fee, isLoadingFee, refetchFee },\n } = useWithdrawForm(watch, setValue);\n\n const isLoading: boolean =\n isPendingCoin ?? isLoadingUserPaymentDetail ?? isLoadingFee;\n const error: AxiosError =\n errorCoin ?? errorUserPaymentDetail ?? errorFee;\n\n /**\n * Formats the address by showing the first 6 and last 4 characters.\n *\n * @param {string} address - The address to format\n * @returns {string} The formatted address\n *\n * @example\n * formatAddress('0x1234567890abcdef') // returns '0x1234...cdef'\n */\n function formatAddress(address: string): string {\n return `${address.substring(0, 6)}...${address.substring(\n address.length - 4,\n )}`;\n }\n\n /**\n * Gets the value to which the withdrawal is being made.\n *\n * @returns {string} The withdrawal destination value\n *\n * @example\n * getWithdrawToValue() // returns '0x1234...cdef' or a masked payment detail\n */\n function getWithdrawToValue(): string {\n switch (withdrawMethodId?.toString()) {\n case WithdrawMethodId.BetterbroArgentineBankTransfer?.toString():\n case WithdrawMethodId.BetterbroBrazillianPix?.toString():\n case WithdrawMethodId.BetterbroIndianImps?.toString():\n case WithdrawMethodId.BetterbroMexicanSpei?.toString():\n case WithdrawMethodId.PixtopayBrazillianPix?.toString():\n case WithdrawMethodId.PayGamesIndiaUpi?.toString():\n case WithdrawMethodId.PayGamesIndonesiaQris?.toString():\n case WithdrawMethodId.PayGamesNigeria?.toString():\n case WithdrawMethodId.PayGamesSingaporePayNow?.toString():\n case WithdrawMethodId.PayGamesSouthAfrica?.toString():\n default:\n return getUserPaymentDetailsFieldByTypeId(userPaymentDetail);\n case WithdrawMethodId.Crypto?.toString():\n return formatAddress(address);\n }\n }\n\n /**\n * Gets the fee amount for the withdrawal.\n *\n * @returns {string} The formatted fee amount\n *\n * @example\n * getFeeAmount() // returns '0.001 BTC'\n */\n function getFeeAmount(): string {\n const feeAmount: Money = new Money({\n amount: getMoneyOrAmount(fee?.fee),\n coin,\n });\n\n feeAmount.add(getMoneyOrAmount(fee?.chainFee));\n\n return feeAmount.maskedAmount;\n }\n\n const feeAmount: string = useMemo(getFeeAmount, [fee, coin]);\n\n /**\n * Refetches the data in case of an error.\n */\n function refetch() {\n if (errorCoin) {\n refetchCoin();\n }\n\n if (errorUserPaymentDetail) {\n refetchUserPaymentDetail();\n }\n\n if (errorFee) {\n refetchFee();\n }\n }\n\n if (error) {\n return ;\n }\n\n if (isLoading) {\n return ;\n }\n\n return (\n
\n
\n
\n \n {t('crypto_withdraw_currency')}\n \n\n \n \n \n {coin?.code}\n \n
\n
\n\n
\n \n {t('withdraw_to')}\n \n\n \n {getWithdrawToValue()}\n \n
\n\n
\n {t('fee')}\n\n \n {feeAmount}\n \n
\n\n
\n \n {t('sended_amount')}\n \n\n \n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(fee?.receiveAmount),\n coin,\n })}\n \n
\n
\n\n \n
\n );\n}\n","import { Drawer, ModalHeader } from '@starsoft/common/components';\nimport styles from './styles.module.scss';\nimport SecurityDrawerContent from './Content';\nimport { SecurityDrawerProps } from './props';\nimport { useTranslation } from '../../../../../../hooks';\n\n/**\n * SecurityDrawer Component\n * A drawer component that handles security verification UI for withdrawals.\n *\n * Constants & Hooks:\n * - t: Translation function from useTranslation hook, scoped to 'withdraw' namespace\n *\n * Logic scope:\n * - Provides a drawer interface for security verification\n * - Handles drawer visibility through open/close states\n * - Manages loading states for verification process\n * - Integrates translation support for internationalization\n * - Renders a modal header with title and close button\n * - Contains security verification content in a scrollable container\n *\n * Component Structure:\n * - Drawer (root container)\n * - Container div\n * - ModalHeader (title and close button)\n * - Content container\n * - Divider\n * - SecurityDrawerContent (verification UI)\n *\n * @component\n * @param {Object} props - Component props\n * @param {() => void} props.onClose - Callback function triggered when drawer should close\n * @param {boolean} props.open - Controls drawer visibility state\n * @param {boolean} props.isLoading - Loading state for verification process\n * @returns {JSX.Element} A drawer component containing security verification UI\n *\n * @example\n * // Usage example:\n * const handleClose = () => function('drawer closed');\n * const isOpen = true;\n * const loading = false;\n *\n * \n */\nexport default function SecurityDrawer({\n onClose,\n open,\n isLoading,\n}: SecurityDrawerProps) {\n const { t } = useTranslation('withdraw');\n\n return (\n \n
\n \n
\n
\n \n
\n
\n \n );\n}\n","import { Withdraw } from '@starsoft/common/models';\nimport { WithdrawCryptoInputDto } from '../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-crypto-input.dto';\nimport { AxiosInstance } from 'axios';\n\nexport async function createCryptoWithdraw(\n data: WithdrawCryptoInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n 'withdrawals/crypto',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","export enum RedirectError {\n UNCOMPLETED_KYC = 'error_kyc_uncompleted',\n UNCOMPLETED_ROLLOVER = 'error_rollover_uncompleted',\n}\n","import { AlertExtraParams } from '@starsoft/common/models';\nimport { useQueryClient } from '@tanstack/react-query';\nimport { useCallback } from 'react';\n\n/**\n * Custom hook to get the default query options and provide a notification function.\n * This hook retrieves the default mutation options from the query client and adds a custom notification function.\n *\n * @returns {Object} - An object containing the default mutation options and the notifyOnSuccess function.\n *\n * Example usage:\n * const { onSuccess, notifyOnSuccess } = useQueryDefaults();\n * notifyOnSuccess({ message: 'Operation successful', duration: 3000 });\n */\nexport function useQueryDefaults() {\n // Get the query client instance from React Query\n const queryClient = useQueryClient();\n // Retrieve the default mutation options from the query client\n const defaults = queryClient?.getDefaultOptions()?.mutations;\n\n /**\n * Function to notify on success.\n * This function calls the onSuccess handler from the default mutation options with the provided parameters.\n *\n * @param {Omit} params - The parameters to pass to the onSuccess handler.\n *\n * Example usage:\n * notifyOnSuccess({ message: 'Operation successful', duration: 3000 });\n */\n const notifyOnSuccess = useCallback(\n (params: Omit) => {\n defaults?.onSuccess(undefined, undefined, params);\n },\n [defaults],\n );\n\n // Return the default mutation options and the notifyOnSuccess function\n return { ...defaults, notifyOnSuccess };\n}\n","import { AxiosError } from 'axios';\nimport { useModalNavigation } from '../modals/useModalNavigation';\nimport { GenericError, Withdraw } from '../../models';\nimport {\n CoinID,\n CommonModalsKey,\n RedirectError,\n WithdrawStep,\n} from '../../enums';\nimport { useQueryDefaults } from '../react-query/useQueryDefaults';\nimport { useSearchParams } from '../useSearchParams';\nimport { useNavigate } from '../useNavigate';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\n\n// Interface for the variables used in the onError function\ninterface Variables {\n coinId: number; // The ID of the coin involved in the withdrawal process\n}\n\n/**\n * Custom hook to handle withdrawal callbacks.\n * This hook provides functions to handle success and error scenarios during a withdrawal process.\n *\n * @returns {Object} An object containing the onError and onSuccess functions.\n *\n * @example\n * // Usage example:\n * const { onError, onSuccess } = useWithdrawCallbacks();\n * onSuccess(withdrawData); // Handle successful withdrawal\n * onError(error, variables, context); // Handle error during withdrawal\n */\nexport function useWithdrawCallbacks() {\n // Hook to navigate to different routes\n const navigate: NavigateFunction = useNavigate();\n // Hook to navigate to different modals\n const { navigateToModal } = useModalNavigation();\n // Hook to retrieve current search parameters\n const searchParams: URLSearchParams = useSearchParams();\n // Hook to get default error handling function\n const { onError: defaultOnError } = useQueryDefaults();\n\n /**\n * Function to handle successful withdrawal.\n * Updates the URL search parameters and navigates to the withdrawal modal.\n *\n * @param {Withdraw} withdraw - The withdrawal object containing withdrawal details.\n */\n function onSuccess(withdraw: Withdraw) {\n const newUrlSearchParams = new URLSearchParams(searchParams);\n newUrlSearchParams.set('withdraw-id', `${withdraw.id}`); // Set the withdrawal ID in the search params\n newUrlSearchParams.set('step', WithdrawStep.Response); // Set the step to Response\n\n // Navigate to the Withdraw modal with updated search parameters\n navigateToModal(\n CommonModalsKey.Withdraw,\n `?${newUrlSearchParams.toString()}`,\n );\n }\n\n /**\n * Function to handle errors during withdrawal.\n * Handles specific error scenarios and navigates accordingly.\n *\n * @param {AxiosError} error - The error object from Axios.\n * @param {Variables | unknown} variables - The variables used in the request, including coinId.\n * @param {unknown} context - Additional context for the error handling.\n */\n function onError(\n error: AxiosError,\n variables: Variables | unknown,\n context: unknown,\n ) {\n // Check if the error status code is not 307\n if (error.response?.data?.statusCode !== 307) {\n defaultOnError?.(error, variables, context); // Call default error handler\n return;\n }\n\n // Handle specific error message for uncompleted KYC\n if (error.response?.data.message == RedirectError.UNCOMPLETED_KYC) {\n defaultOnError?.(error, variables, context); // Call default error handler\n navigate('/account/verification/?kyc-tab=status'); // Navigate to KYC verification page\n return;\n }\n\n // Handle specific error message for uncompleted rollover\n if (error.response?.data.message == RedirectError.UNCOMPLETED_ROLLOVER) {\n defaultOnError?.(error, variables, context); // Call default error handler\n\n const urlSearchParams = new URLSearchParams();\n urlSearchParams.set(\n 'coin_id',\n String((variables as Variables)?.coinId ?? CoinID.BRL), // Set coin ID in search params\n );\n // Navigate to the Rollover Required modal with updated search parameters\n navigateToModal(\n CommonModalsKey.RolloverRequired,\n `?${urlSearchParams.toString()}`,\n );\n return;\n }\n }\n\n return {\n onError, // Return the onError function\n onSuccess, // Return the onSuccess function\n };\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createCryptoWithdraw } from './service';\nimport { UseWithdrawalProps } from '../useWithdraw/props';\nimport { useAxiosInstance, useWithdrawCallbacks } from '@starsoft/common/hooks';\nimport { Withdraw } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { WithdrawCryptoInputDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-crypto-input.dto';\n\n/**\n * Custom hook to handle crypto withdrawal creation\n *\n * This hook manages the mutation state for creating a crypto withdrawal request,\n * using React Query's mutation capabilities. It handles the API call and success/error callbacks.\n * The mutation will retry up to 3 times on failure.\n *\n * @param {UseWithdrawalProps} props - Optional configuration object\n * @param {Function} [props.onSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - mutate: Function to trigger the withdrawal creation\n * @param {WithdrawCryptoInputDto} data - The withdrawal request data\n * - isLoading: Boolean indicating if creation is in progress\n * - isError: Boolean indicating if an error occurred\n */\nexport function useCreateCryptoWithdraw(props?: UseWithdrawalProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { onSuccess: customOnSucess } = props ?? {};\n const { onError, onSuccess } = useWithdrawCallbacks();\n\n /**\n * Success handler that runs both custom and default success callbacks\n * @param {Withdraw} withdraw - The created withdrawal data\n */\n function handleOnSuccess(withdraw: Withdraw) {\n customOnSucess?.();\n onSuccess(withdraw);\n }\n\n const {\n mutate,\n isPending: isLoading,\n isError,\n } = useMutation({\n mutationFn: (data: WithdrawCryptoInputDto) =>\n createCryptoWithdraw(data, axiosInstance),\n onSuccess: handleOnSuccess,\n onError,\n });\n\n return {\n mutate,\n isLoading,\n isError,\n };\n}\n","import { Withdraw } from '@starsoft/common/models';\nimport { WithdrawBetterBroInputDto } from '../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-better-bro-input.dto';\nimport { AxiosInstance } from 'axios';\n\nexport async function createWithdrawBetterBro(\n data: WithdrawBetterBroInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n 'withdrawals/better-bro',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createWithdrawBetterBro } from './service';\nimport { UseWithdrawalProps } from '../useWithdraw/props';\nimport { useAxiosInstance, useWithdrawCallbacks } from '@starsoft/common/hooks';\nimport { Withdraw } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { WithdrawBetterBroInputDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-better-bro-input.dto';\n\n/**\n * Custom hook to handle Better Bro withdrawal creation\n *\n * This hook manages the mutation state for creating a Better Bro withdrawal request,\n * using React Query's mutation capabilities. It handles the API call and success/error callbacks.\n * The mutation will retry up to 3 times on failure.\n *\n * @param {UseWithdrawalProps} props - Optional configuration object\n * @param {Function} [props.onSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - createWithdrawBetterBro: Function to trigger the withdrawal creation\n * @param {WithdrawBetterBroInputDto} data - The withdrawal request data\n * - isLoading: Boolean indicating if creation is in progress\n * - isError: Boolean indicating if an error occurred\n */\nexport function useCreateWithdrawBetterBro(props?: UseWithdrawalProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { onSuccess: customOnSucess } = props ?? {};\n const { onError, onSuccess } = useWithdrawCallbacks();\n\n /**\n * Success handler that runs both custom and default success callbacks\n * @param {Withdraw} withdraw - The created withdrawal data\n */\n function handleOnSuccess(withdraw: Withdraw) {\n customOnSucess?.();\n onSuccess(withdraw);\n }\n\n const {\n mutate,\n isPending: isLoading,\n isError,\n } = useMutation({\n mutationFn: (data: WithdrawBetterBroInputDto) =>\n createWithdrawBetterBro(data, axiosInstance),\n onSuccess: handleOnSuccess,\n onError,\n });\n\n return {\n createWithdrawBetterBro: mutate,\n isLoading,\n isError,\n };\n}\n","import { Withdraw } from '@starsoft/common/models';\nimport { WithdrawPixToPayInputDto } from '../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-pix-to-pay-input.dto';\nimport { AxiosInstance } from 'axios';\n\nexport async function createWithdrawPixToPay(\n data: WithdrawPixToPayInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n 'withdrawals/pix-to-pay',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { createWithdrawPixToPay } from './service';\nimport { UseWithdrawalProps } from '../useWithdraw/props';\nimport { useAxiosInstance, useWithdrawCallbacks } from '@starsoft/common/hooks';\nimport { Withdraw } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { WithdrawPixToPayInputDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-pix-to-pay-input.dto';\n\n/**\n * Custom hook to handle Pix To Pay withdrawal creation\n *\n * This hook manages the mutation state for creating a Pix To Pay withdrawal request,\n * using React Query's mutation capabilities. It handles the API call and success/error callbacks.\n * The mutation will retry up to 3 times on failure.\n *\n * @param {UseWithdrawalProps} props - Optional configuration object\n * @param {Function} [props.onSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - createWithdrawPixToPay: Function to trigger the withdrawal creation\n * @param {WithdrawPixToPayInputDto} data - The withdrawal request data\n * - isLoading: Boolean indicating if creation is in progress\n * - isError: Boolean indicating if an error occurred\n */\nexport function useCreateWithdrawPixToPay(props?: UseWithdrawalProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { onSuccess: customOnSucess } = props ?? {};\n const { onError, onSuccess } = useWithdrawCallbacks();\n\n /**\n * Success handler that runs both custom and default success callbacks\n * @param {Withdraw} withdraw - The created withdrawal data\n */\n function handleOnSuccess(withdraw: Withdraw) {\n customOnSucess?.();\n onSuccess(withdraw);\n }\n\n const {\n mutate,\n isPending: isLoading,\n isError,\n } = useMutation({\n mutationFn: (data: WithdrawPixToPayInputDto) =>\n createWithdrawPixToPay(data, axiosInstance),\n onSuccess: handleOnSuccess,\n onError,\n });\n\n return {\n createWithdrawPixToPay: mutate,\n isLoading,\n isError,\n };\n}\n","import { Withdraw } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { WithdrawPayGamesInputDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-pay-games-input.dto';\n\nexport async function createWithdrawPayGames(\n data: WithdrawPayGamesInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post(\n 'withdrawals/pay-games',\n data,\n {\n timeout: 30 * 1000,\n },\n );\n\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { UseWithdrawalProps } from '../useWithdraw/props';\nimport { useAxiosInstance, useWithdrawCallbacks } from '@starsoft/common/hooks';\nimport { Withdraw } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\nimport { WithdrawPayGamesInputDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-pay-games-input.dto';\nimport { createWithdrawPayGames } from './service';\n\n/**\n * Custom hook to handle Pay Games withdrawal creation\n *\n * This hook manages the mutation state for creating a Pay Games withdrawal request,\n * using React Query's mutation capabilities. It handles the API call and success/error callbacks.\n * The mutation will retry up to 3 times on failure.\n *\n * @param {UseWithdrawalProps} props - Optional configuration object\n * @param {Function} [props.onSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - createWithdrawPayGames: Function to trigger the withdrawal creation\n * @param {WithdrawPayGamesInputDto} data - The withdrawal request data\n * - isLoading: Boolean indicating if creation is in progress\n * - isError: Boolean indicating if an error occurred\n */\nexport function useCreateWithdrawPayGames(props?: UseWithdrawalProps) {\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const { onSuccess: customOnSucess } = props ?? {};\n const { onError, onSuccess } = useWithdrawCallbacks();\n\n /**\n * Success handler that runs both custom and default success callbacks\n * @param {Withdraw} withdraw - The created withdrawal data\n */\n function handleOnSuccess(withdraw: Withdraw) {\n customOnSucess?.();\n onSuccess(withdraw);\n }\n\n const {\n mutate,\n isPending: isLoading,\n isError,\n } = useMutation({\n mutationFn: (data: WithdrawPayGamesInputDto) =>\n createWithdrawPayGames(data, axiosInstance),\n onSuccess: handleOnSuccess,\n onError,\n });\n\n return {\n createWithdrawPayGames: mutate,\n isLoading,\n isError,\n };\n}\n","import { useCreateCryptoWithdraw } from '../useCreateCryptoWithdraw';\nimport { useCreateWithdrawBetterBro } from '../useCreateWithdrawBetterBro';\nimport { useCreateWithdrawPixToPay } from '../useCreateWithdrawPixToPay';\nimport { useCallback } from 'react';\nimport { UseWithdrawalProps } from './props';\nimport { useWithdrawSearchParams } from '@starsoft/common/hooks';\nimport { WithdrawMethodId } from '@starsoft/common/enums';\nimport { WithdrawFormCreateDto } from '../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { parseToSubunits } from '@starsoft/common/utils';\nimport { useCreateWithdrawPayGames } from '../useCreateWithdrawPayGames';\n\n/**\n * Custom hook to handle withdrawals across different payment methods\n *\n * This hook consolidates the withdrawal functionality for multiple payment methods including:\n * - Crypto withdrawals\n * - Better Bro withdrawals (Brazilian PIX, Mexican SPEI, Indian IMPS, Argentine Bank Transfer)\n * - PIX To Pay withdrawals\n * - Pay Games withdrawals (India UPI, Indonesia QRIS, Nigeria, Singapore PayNow, South Africa)\n *\n * It manages the loading states and provides a unified interface to create withdrawals\n * based on the selected withdrawal method.\n *\n * @param {UseWithdrawalProps} options - Optional configuration object\n * @param {Function} [options.onSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - withdraw: Function to create a withdrawal based on the selected method\n * @param {WithdrawFormCreateDto} data - The withdrawal form data\n * - isLoading: Boolean indicating if any withdrawal creation is in progress\n */\nexport default function useWithdrawal(options?: UseWithdrawalProps) {\n const { onSuccess } = options ?? {};\n const { withdrawMethodId } = useWithdrawSearchParams();\n const {\n isLoading: loadingCreateCryptoWithdraw,\n mutate: createCryptoWithdraw,\n } = useCreateCryptoWithdraw({\n onSuccess,\n });\n const { isLoading: loadingCreateWithdrawBetterBro, createWithdrawBetterBro } =\n useCreateWithdrawBetterBro({\n onSuccess,\n });\n const { isLoading: loadingCreateWithdrawPixToPay, createWithdrawPixToPay } =\n useCreateWithdrawPixToPay({\n onSuccess,\n });\n const { isLoading: loadingCreateWithdrawPayGames, createWithdrawPayGames } =\n useCreateWithdrawPayGames({\n onSuccess,\n });\n\n // Combine loading states from all withdrawal methods\n const isLoading: boolean =\n loadingCreateWithdrawBetterBro ||\n loadingCreateCryptoWithdraw ||\n loadingCreateWithdrawPayGames ||\n loadingCreateWithdrawPixToPay;\n\n /**\n * Creates a withdrawal based on the selected withdrawal method\n *\n * @param {WithdrawFormCreateDto} data - The withdrawal form data containing:\n * - address: Crypto wallet address (for crypto withdrawals)\n * - amount: Withdrawal amount\n * - chainId: Blockchain network ID (for crypto withdrawals)\n * - code: Validation code\n * - coinId: Cryptocurrency ID (for crypto withdrawals)\n * - emailId: User's email ID (for crypto withdrawals)\n * - paymentDetailsId: ID of saved payment details\n */\n const withdraw = useCallback(\n (data: WithdrawFormCreateDto) => {\n switch (withdrawMethodId) {\n case WithdrawMethodId.Crypto?.toString():\n createCryptoWithdraw({\n address: data?.address,\n amount: parseToSubunits(data?.amount, data?.coin),\n chainId: data?.chainId,\n code: data?.code,\n coinId: data?.coinId,\n emailId: data?.emailId,\n });\n break;\n case WithdrawMethodId.BetterbroBrazillianPix?.toString():\n case WithdrawMethodId.BetterbroMexicanSpei?.toString():\n case WithdrawMethodId.BetterbroIndianImps?.toString():\n case WithdrawMethodId.BetterbroArgentineBankTransfer?.toString():\n createWithdrawBetterBro({\n amount: parseToSubunits(data?.amount, data?.coin),\n paymentDetailsId: data?.paymentDetailsId,\n methodId: withdrawMethodId,\n });\n break;\n case WithdrawMethodId.PixtopayBrazillianPix?.toString():\n createWithdrawPixToPay({\n amount: parseToSubunits(data?.amount, data?.coin),\n paymentDetailsId: data?.paymentDetailsId,\n });\n break;\n case WithdrawMethodId.PayGamesIndiaUpi?.toString():\n case WithdrawMethodId.PayGamesIndonesiaQris?.toString():\n case WithdrawMethodId.PayGamesNigeria?.toString():\n case WithdrawMethodId.PayGamesSingaporePayNow?.toString():\n case WithdrawMethodId.PayGamesSouthAfrica?.toString():\n createWithdrawPayGames({\n amount: parseToSubunits(data?.amount, data?.coin),\n paymentDetailsId: data?.paymentDetailsId?.toString(),\n methodId: withdrawMethodId?.toString(),\n });\n break;\n }\n },\n [\n withdrawMethodId,\n createCryptoWithdraw,\n createWithdrawPixToPay,\n createWithdrawBetterBro,\n createWithdrawPayGames,\n ],\n );\n\n return {\n withdraw,\n isLoading,\n };\n}\n","import { Success } from '@starsoft/common/models';\nimport { FetchSendValidationCodeRequestDto } from '../../../../dto/withdrawals/fetch-send-validation-code-request.dto';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchSendCode(\n { emailId }: FetchSendValidationCodeRequestDto,\n axiosInstance: AxiosInstance,\n) {\n const response = await axiosInstance.post('/withdrawals/send-code', {\n emailId,\n });\n\n return response.data;\n}\n","import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchSendCode } from './service';\nimport { UseSendWithdrawalCodeProps } from './props';\nimport { GenericError } from '@starsoft/common/models';\nimport { FetchSendValidationCodeRequestDto } from '@starsoft/common/dto/withdrawals/fetch-send-validation-code-request.dto';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\n\n/**\n * Custom hook to handle sending withdrawal validation codes\n *\n * This hook manages the mutation state for sending validation codes for withdrawals,\n * using React Query's mutation capabilities. It handles the API call and provides\n * customizable success/error callbacks.\n *\n * @param {UseSendWithdrawalCodeProps} options - Optional configuration object\n * @param {Function} [options.customOnError] - Custom error callback function\n * @param {Function} [options.customOnSuccess] - Custom success callback function\n *\n * @returns {Object} An object containing:\n * - sendWithdrawalCode: Function to trigger sending the validation code\n * @param {FetchSendValidationCodeRequestDto} data - The validation code request data\n * - isLoading: Boolean indicating if code sending is in progress\n * - isSuccess: Boolean indicating if code was sent successfully\n */\nexport function useSendWithdrawalCode(options?: UseSendWithdrawalCodeProps) {\n const { customOnError, customOnSuccess } = options ?? {};\n const queryClient = useQueryClient();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Error handler that runs both default and custom error callbacks\n * @param {AxiosError} error - The error that occurred\n * @param {unknown} variables - The variables passed to the mutation\n * @param {unknown} context - The mutation context\n */\n function onError(\n error: AxiosError,\n variables: unknown,\n context: unknown,\n ) {\n queryClient\n ?.getDefaultOptions()\n .mutations?.onError?.(error, variables, context);\n customOnError?.(error);\n }\n\n /**\n * Success handler that runs the custom success callback\n */\n function onSuccess() {\n customOnSuccess?.();\n }\n\n const {\n mutate,\n isPending: isLoading,\n isSuccess,\n } = useMutation({\n mutationFn: (data: FetchSendValidationCodeRequestDto) =>\n fetchSendCode(data, axiosInstance),\n onError,\n onSuccess,\n });\n\n return {\n sendWithdrawalCode: mutate,\n isLoading,\n isSuccess,\n };\n}\n","import { Transition, Variants } from 'framer-motion';\n\nconst transition: Transition = { duration: 0.3, ease: 'circIn' };\n\nexport const slideInRight: Variants = {\n hidden: {\n x: 200,\n pointerEvents: 'none',\n transition,\n },\n visible: {\n x: 0,\n transition,\n pointerEvents: 'all',\n },\n};\n","import { useMemo } from 'react';\nimport styles from '../styles.module.scss';\nimport { Button, FormGroup, Input } from '@starsoft/common/components';\n\nexport default function UserPaymentDetailsFormLayoutSkeleton() {\n const Rows: JSX.Element[] = useMemo(\n () =>\n Array.from({ length: 5 }).map((_, index) => (\n \n \n \n )),\n [],\n );\n\n return (\n <>\n
{Rows}
\n
\n
\n \n );\n}\n","import { CreateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport { UserPaymentDetails } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchCreateUserPaymentDetails(\n data: CreateUserPaymentDetailsInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response: AxiosResponse = await axiosInstance.post(\n '/user-payment-details',\n data,\n );\n\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchCreateUserPaymentDetails } from './service';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { UserPaymentDetailsQueryKeys } from '../../queryKeys';\nimport { GenericError, UserPaymentDetails } from '@starsoft/common/models';\nimport { CreateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport {\n useAxiosInstance,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\n\n/**\n * Custom hook to create user payment details\n *\n * This hook handles creating new payment details for a user, managing the mutation state,\n * and handling side effects like cache invalidation and URL param cleanup after successful creation.\n * It uses React Query's mutation capabilities for state management and caching.\n *\n * @returns {Object} An object containing:\n * - isPending: Boolean indicating if mutation is in progress\n * - createUserPaymentDetails: Function to trigger the creation mutation\n * @param {CreateUserPaymentDetailsInputDto} data - The payment details data to create\n * @returns {Promise} The created payment details\n */\nexport function useCreateUserPaymentDetails() {\n const queryClient: QueryClient = useQueryClient();\n const { handleDeleteWithdrawSearchParams } = useWithdrawSearchParams();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Handles side effects after successful payment details creation\n * - Invalidates relevant payment details queries to trigger refetch\n * - Removes withdraw-related URL parameters\n */\n function onSuccess() {\n queryClient.invalidateQueries({\n queryKey: [UserPaymentDetailsQueryKeys.MeInfinity],\n });\n queryClient.invalidateQueries({\n queryKey: [UserPaymentDetailsQueryKeys.MeDefault],\n });\n handleDeleteWithdrawSearchParams('user-payment');\n }\n\n const { isPending, mutate } = useMutation<\n UserPaymentDetails,\n AxiosError,\n CreateUserPaymentDetailsInputDto\n >({\n mutationFn: (data: CreateUserPaymentDetailsInputDto) =>\n fetchCreateUserPaymentDetails(data, axiosInstance),\n onSuccess,\n });\n\n return {\n isPending,\n createUserPaymentDetails: mutate,\n };\n}\n","import { UpdateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport { UserPaymentDetails } from '@starsoft/common/models';\nimport { AxiosInstance, AxiosResponse } from 'axios';\n\nexport async function fetchUpdateUserPaymentDetails(\n { id, ...data }: UpdateUserPaymentDetailsInputDto,\n axiosInstance: AxiosInstance,\n) {\n const response: AxiosResponse = await axiosInstance.patch(\n `/user-payment-details/${id}`,\n data,\n );\n\n return response.data;\n}\n","import {\n QueryClient,\n useMutation,\n useQueryClient,\n} from '@tanstack/react-query';\nimport { fetchUpdateUserPaymentDetails } from './service';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { UserPaymentDetailsQueryKeys } from '../../queryKeys';\nimport { GenericError, UserPaymentDetails } from '@starsoft/common/models';\nimport { UpdateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport {\n useAxiosInstance,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\n\n/**\n * Custom hook to update user payment details\n *\n * This hook handles updating existing payment details for a user, managing the mutation state,\n * and handling side effects like cache invalidation and URL param cleanup after successful update.\n * It uses React Query's mutation capabilities for state management and caching.\n *\n * @returns {Object} An object containing:\n * - isPending: Boolean indicating if mutation is in progress\n * - updateUserPaymentDetails: Function to trigger the update mutation\n * @param {UpdateUserPaymentDetailsInputDto} data - The payment details data to update\n * @returns {Promise} The updated payment details\n */\nexport function useUpdateUserPaymentDetails() {\n const queryClient: QueryClient = useQueryClient();\n const { handleDeleteWithdrawSearchParams } = useWithdrawSearchParams();\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n /**\n * Handles side effects after successful payment details update\n * - Invalidates relevant payment details queries to trigger refetch\n * - Removes withdraw-related URL parameters\n */\n function onSuccess() {\n queryClient.invalidateQueries({\n queryKey: [UserPaymentDetailsQueryKeys.MeInfinity],\n });\n queryClient.invalidateQueries({\n queryKey: [UserPaymentDetailsQueryKeys.MeDefault],\n });\n handleDeleteWithdrawSearchParams('user-payment');\n }\n\n const { isPending, mutate } = useMutation<\n UserPaymentDetails,\n AxiosError,\n UpdateUserPaymentDetailsInputDto\n >({\n mutationFn: (data: UpdateUserPaymentDetailsInputDto) =>\n fetchUpdateUserPaymentDetails(data, axiosInstance),\n onSuccess,\n });\n\n return {\n isPending,\n updateUserPaymentDetails: mutate,\n };\n}\n","import { CoinID } from '@starsoft/common/enums';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { UserPaymentDetailsTypeId } from '../enums/user-payment-details/type/id';\nimport { CoinIDType } from '../enums/coinId';\n\nexport namespace UserPaymentDetailsNamespace {\n export function getUserPaymentDetailsTypeIdByCoinId(\n coinId: CoinIDType,\n ): Nullable {\n switch (coinId?.toString()) {\n case CoinID.BRL?.toString():\n return UserPaymentDetailsTypeId.Pix?.toString();\n case CoinID.INR?.toString():\n return UserPaymentDetailsTypeId.Imps?.toString();\n case CoinID.ARS?.toString():\n return UserPaymentDetailsTypeId.ArgentineBankAccount?.toString();\n case CoinID.MXN?.toString():\n return UserPaymentDetailsTypeId.MexicanBankAccount?.toString();\n case CoinID.ZAR?.toString():\n return UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString();\n case CoinID.SGD?.toString():\n return UserPaymentDetailsTypeId.SingaporeBankAccount?.toString();\n case CoinID.IDR?.toString():\n return UserPaymentDetailsTypeId.Qris?.toString();\n case CoinID.NGN?.toString():\n return UserPaymentDetailsTypeId.NigerianBankAccount?.toString();\n default:\n return null;\n }\n }\n}\n","import { CoinIDType } from '@starsoft/common/enums/coinId';\nimport { Nullable } from '../../../interfaces';\nimport { UserPaymentDetailsNamespace } from '../../../namespaces';\nimport { useCoallescedCoinId } from '../../coin/useCoallescedCoinId';\n\n/**\n * Custom hook to get the user payment type ID by coin ID.\n * This hook uses the coalesced coin ID to fetch the corresponding user payment type ID.\n *\n * @returns {Nullable} The user payment type ID if available, otherwise null.\n *\n * @example\n * // Usage example:\n * const userPaymentTypeId = useUserPaymentTypeIdByCoinId();\n */\nexport function useUserPaymentTypeIdByCoinId(): Nullable {\n // Get the coalesced coin ID using the custom hook\n const { coinId } = useCoallescedCoinId();\n\n // Fetch the user payment type ID by coin ID from the namespace\n const userPaymentTypeId: Nullable =\n UserPaymentDetailsNamespace.getUserPaymentDetailsTypeIdByCoinId(\n coinId as CoinIDType,\n );\n\n // Return the user payment type ID\n return userPaymentTypeId;\n}\n","import { FormProvider, useForm } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { UserPaymentDetailsFormContentProps } from './props';\nimport { Button, ErrorCard, ModalHeader } from '@starsoft/common/components';\nimport { motion } from 'framer-motion';\nimport { slideInRight } from './variants';\nimport { PropsWithChildren, useCallback, useMemo } from 'react';\nimport UserPaymentDetailsFormLayoutSkeleton from './Skeleton';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { AxiosError } from 'axios';\nimport { GenericError, UserPaymentDetails } from '@starsoft/common/models';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport { KYCStatus, UserPaymentDetailsTypeId } from '@starsoft/common/enums';\nimport {\n useCreateUserPaymentDetails,\n useUpdateUserPaymentDetails,\n useUserPaymentDetailsById,\n} from '../../../../../../../api';\nimport {\n useKycMeByOriginIdWithOrigin,\n useTranslation,\n useUserPaymentTypeIdByCoinId,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\n\n/**\n * UserPaymentDetailsFormLayout Component\n * This component is responsible for rendering the user payment details form layout.\n * It handles form submission, validation, and displays the form content.\n *\n * @param {PropsWithChildren} props - The properties for the component.\n * @param {Function} props.onClose - The function to call when the form is closed.\n * @param {React.ReactNode} props.children - The child components to render within the form layout.\n *\n * @returns {JSX.Element} The rendered component displaying the user payment details form layout.\n *\n * @example\n * // Usage example:\n * function('Form closed')}>\n * \n * \n */\nexport default function UserPaymentDetailsFormLayout({\n onClose,\n children,\n}: PropsWithChildren) {\n const { t } = useTranslation('common');\n const methods = useForm<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n const {\n handleSubmit,\n reset,\n formState: { isDirty, errors },\n watch,\n } = methods;\n const { userPaymentDetails } = useWithdrawSearchParams();\n const userPaymentTypeIdByCoinId: Nullable =\n useUserPaymentTypeIdByCoinId();\n const isCreating: boolean = userPaymentDetails == 'new';\n const pixKey: string | undefined = watch('pix.key');\n const accountHolder: string | undefined = watch('imps.accountHolder');\n const ifsc: string | undefined = watch('imps.ifsc');\n const accountNumber: string | undefined = watch('imps.accountNumber');\n const bankAccount: string | undefined = watch('bankAccount.account');\n\n const hasError: boolean = useMemo(\n () => Object.values(errors).some(error => !!error),\n [errors],\n );\n\n /**\n * getIsSubmitButtonDisabled Function\n * Determines if the submit button should be disabled based on the user payment type and form values.\n *\n * @returns {boolean} True if the submit button should be disabled, false otherwise.\n *\n * @example\n * // Usage example:\n * const isDisabled = getIsSubmitButtonDisabled();\n */\n function getIsSubmitButtonDisabled() {\n switch (userPaymentTypeIdByCoinId?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return !pixKey;\n case UserPaymentDetailsTypeId.Imps?.toString():\n return !accountHolder || !accountNumber || !ifsc;\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n return !bankAccount;\n }\n }\n\n const isSubmitButtonDisabled =\n getIsSubmitButtonDisabled() || !isDirty || hasError;\n\n /**\n * getUserPaymentDetailsResetDto Function\n * Generates a reset DTO for user payment details based on the provided user payment details.\n *\n * @param {UserPaymentDetails} userPaymentDetails - The user payment details object.\n *\n * @returns {Pick} The reset DTO for user payment details.\n *\n * @example\n * // Usage example:\n * const resetDto = getUserPaymentDetailsResetDto(userPaymentDetails);\n */\n function getUserPaymentDetailsResetDto(\n userPaymentDetails: UserPaymentDetails,\n ): Pick<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto,\n 'pix' | 'imps' | 'bankAccount'\n > {\n switch (userPaymentDetails.type.id?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return {\n pix: {\n key: userPaymentDetails.pix.pixKey,\n },\n };\n case UserPaymentDetailsTypeId.Imps?.toString():\n return {\n imps: {\n accountHolder: userPaymentDetails.imps.accountHolder,\n ifsc: userPaymentDetails.imps.ifsc,\n accountNumber: userPaymentDetails.imps.accountNumber,\n },\n };\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n return {\n bankAccount: {\n account: userPaymentDetails?.bankAccount?.account,\n typeId: userPaymentDetails?.type?.id?.toString(),\n bankCode: userPaymentDetails?.bankAccount?.bank?.code,\n },\n };\n }\n }\n\n /**\n * handleExternalSuccess Function\n * Handles the external success event by resetting the form with the provided user payment details.\n *\n * @param {UserPaymentDetails} userPaymentDetails - The user payment details object.\n *\n * @example\n * // Usage example:\n * handleExternalSuccess(userPaymentDetails);\n */\n const handleExternalSuccess = useCallback(\n (userPaymentDetails: UserPaymentDetails) => {\n if (!userPaymentDetails) {\n return;\n }\n\n const userPaymentDetailsReset: Pick<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto,\n 'pix' | 'imps' | 'bankAccount'\n > = getUserPaymentDetailsResetDto(userPaymentDetails);\n\n reset({\n ...userPaymentDetailsReset,\n id: userPaymentDetails.id,\n typeId: userPaymentDetails.type.id?.toString(),\n });\n },\n [reset],\n );\n\n const {\n isLoading: isLoadingUserPaymentDetails,\n refetch: refetchUserPaymentDetails,\n error: errorUserPaymentDetails,\n } = useUserPaymentDetailsById({\n id: isCreating\n ? undefined\n : (parseToBigInt(userPaymentDetails ?? '0') as bigint),\n externalSuccess: handleExternalSuccess,\n });\n const {\n isPending: isPendingKyc,\n error: kycError,\n refetch: refetchKyc,\n kyc,\n } = useKycMeByOriginIdWithOrigin();\n const isPending: boolean = isLoadingUserPaymentDetails || isPendingKyc;\n const error: AxiosError = kycError ?? errorUserPaymentDetails;\n const {\n createUserPaymentDetails,\n isPending: isPendingCreateUserPaymentDetails,\n } = useCreateUserPaymentDetails();\n const {\n updateUserPaymentDetails,\n isPending: isPendingUpdateUserPaymentDetails,\n } = useUpdateUserPaymentDetails();\n const isFormPending: boolean =\n isPendingCreateUserPaymentDetails || isPendingUpdateUserPaymentDetails;\n\n /**\n * refetch Function\n * Refetches the KYC and user payment details data.\n *\n * @example\n * // Usage example:\n * refetch();\n */\n function refetch(): void {\n if (kycError) {\n refetchKyc();\n }\n\n if (errorUserPaymentDetails) {\n refetchUserPaymentDetails();\n }\n }\n\n /**\n * onSubmit Function\n * Handles the form submission event by creating or updating user payment details.\n *\n * @param {CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto} data - The form data.\n *\n * @example\n * // Usage example:\n * onSubmit({\n * id: '1',\n * identityId: '123',\n * typeId: '456',\n * pix: { key: 'pixKey' },\n * imps: { accountHolder: 'John Doe', ifsc: 'IFSC123', accountNumber: '123456' },\n * bankAccount: { account: '789', typeId: '456', bankCode: 'BANK123' },\n * });\n */\n function onSubmit({\n id,\n identityId,\n typeId,\n pix,\n imps,\n bankAccount,\n }: CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto) {\n const coallescedTypeId: Nullable =\n typeId ?? userPaymentTypeIdByCoinId;\n\n if (isCreating) {\n createUserPaymentDetails({\n identityId,\n typeId: coallescedTypeId,\n pix,\n imps,\n bankAccount: {\n ...bankAccount,\n typeId: coallescedTypeId,\n },\n });\n return;\n }\n\n updateUserPaymentDetails({\n id,\n typeId: coallescedTypeId,\n pix,\n imps,\n bankAccount: {\n ...bankAccount,\n typeId: coallescedTypeId,\n },\n });\n }\n\n if (error) {\n return ;\n }\n\n if (!isPending && (!kyc || (!!kyc && kyc?.status !== KYCStatus.Verified))) {\n return null;\n }\n\n return (\n \n \n \n\n {isPending ? (\n \n ) : (\n <>\n
{children}
\n
\n \n {t(isCreating ? 'create_label' : 'update_label')}\n \n
\n \n )}\n \n
\n );\n}\n","import { useTranslation } from '../../../../../../../../../hooks';\nimport { UserPaymentDetailsFormContentUserKycCardStatusProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * UserPaymentDetailsFormContentUserKycCardStatus Component\n * This component is responsible for displaying the status of the user's KYC (Know Your Customer) card.\n * It handles the loading state and displays the appropriate status message.\n *\n * @param {UserPaymentDetailsFormContentUserKycCardStatusProps} props - The properties for the component.\n * @param {KYCStatus} props.status - The current KYC status of the user.\n * @param {boolean} [props.isLoading] - Flag indicating whether the data is still loading.\n *\n * @returns {JSX.Element} The rendered component displaying the KYC status or a loading skeleton.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentUserKycCardStatus({\n status,\n isLoading,\n}: UserPaymentDetailsFormContentUserKycCardStatusProps) {\n const { t } = useTranslation('common');\n\n // Render a loading skeleton if the data is still loading\n if (isLoading) {\n return
;\n }\n\n // Render the KYC status message\n return (\n
\n {t(`kyc_status_${status}`)}\n
\n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport UserPaymentDetailsFormContentUserKycCardStatus from '../Status';\nimport { KYCStatus } from '@starsoft/common/enums';\n\nexport default function UserPaymentDetailsFormContentUserKycCardSkeleton() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { ErrorChip } from '@starsoft/common/components';\nimport UserPaymentDetailsFormContentUserKycCardStatus from './Status';\nimport UserPaymentDetailsFormContentUserKycCardSkeleton from './Skeleton';\nimport { AxiosError } from 'axios';\nimport { GenericError } from '@starsoft/common/models';\nimport { useKycMeByOriginIdWithOrigin } from '@starsoft/common/hooks';\nimport { UserPaymentDetailsFormContentUserKycCardProps } from './props';\n\n/**\n * UserPaymentDetailsFormContentUserKycCard Component\n * This component is responsible for displaying the user's KYC (Know Your Customer) card.\n * It handles different states such as loading, error, and displays the user's identity information.\n *\n * @param {UserPaymentDetailsFormContentUserKycCardProps} props - The properties for the component.\n * @param {string} props.image - The URL or path to the user's image to be displayed.\n * @param {boolean} props.isLoading - Flag indicating whether the data is still loading.\n *\n * @returns {JSX.Element} The rendered component displaying the user's KYC card, a skeleton if loading, or an error chip if an error occurs.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentUserKycCard({\n image,\n isLoading,\n}: UserPaymentDetailsFormContentUserKycCardProps) {\n // Destructure the necessary values from the custom hook for KYC data\n const {\n isPending,\n error: kycError,\n kyc,\n refetch: refetchKyc,\n } = useKycMeByOriginIdWithOrigin();\n const error: AxiosError = kycError;\n\n /**\n * handleError Function\n * This function handles the error state by refetching the KYC data if an error is present.\n */\n function handleError() {\n if (kycError) {\n refetchKyc();\n }\n }\n\n // Render an error chip if there is an error\n if (error) {\n return ;\n }\n\n // Render a skeleton component if the data is pending or loading\n if (isPending || isLoading) {\n return ;\n }\n\n // Render the user's KYC card with identity information\n return (\n
\n
\n
\n {/* */}\n
\n
\n {kyc?.identity?.firstName} {kyc?.identity?.lastName}\n
\n
\n {kyc?.identity?.maskedIdentifier}\n
\n
\n
\n \n
\n
\n );\n}\n","export enum UserPaymentDetailsFormFields {\n // Pix\n PixKey = 'pix_key',\n\n // Upi\n ImpsAccountHolder = 'imps_account_holder',\n ImpsIfsc = 'imps_ifsc',\n\n // Bank Account\n BankAccountNumber = 'bank_account_number',\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useUserPaymentTypeIdByCoinId } from '../useUserPaymentTypeIdByCoinId';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '../../../dto';\nimport { Nullable } from '../../../interfaces';\n\n/**\n * Custom hook to get the coalesced user payment type ID.\n * This hook combines the type ID from the form context and the user payment type ID by coin ID.\n *\n * @returns {string} The coalesced user payment type ID.\n *\n * @example\n * // Usage example:\n * const userPaymentTypeId = useCoallescedUserPaymentTypeId();\n */\nexport function useCoallescedUserPaymentTypeId(): string {\n // Get the watch function from the form context\n const { watch } = useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n\n // Watch the 'typeId' field from the form context\n const formTypeId: string = watch('typeId');\n\n // Get the user payment type ID by coin ID using the custom hook\n const userPaymentTypeIdByCoinId: Nullable =\n useUserPaymentTypeIdByCoinId() as string;\n\n // Return the form type ID if it exists, otherwise return the user payment type ID by coin ID\n return formTypeId ?? userPaymentTypeIdByCoinId;\n}\n","import { ValidateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UserPaymentDetailsValidationResult } from '../../../../models/user-payment-details/validation/result';\n\nexport async function fetchValidateUserPaymentDetails(\n data: ValidateUserPaymentDetailsInputDto,\n axiosInstance: AxiosInstance,\n): Promise {\n const response: AxiosResponse =\n await axiosInstance.post(\n '/user-payment-details/validate',\n data,\n );\n return response.data;\n}\n","import { useMutation } from '@tanstack/react-query';\nimport { fetchValidateUserPaymentDetails } from './service';\nimport { UseValidateUserPaymentDetailsProps } from './props';\nimport { useMemo } from 'react';\nimport { groupBy } from '@starsoft/common/utils';\nimport { UserPaymentDetailsFormFields } from '@starsoft/common/enums';\nimport { useAxiosInstance } from '@starsoft/common/hooks';\nimport { ValidateUserPaymentDetailsInputDto } from '@starsoft/common/dto';\nimport { AxiosInstance } from 'axios';\n\n/**\n * Custom hook to validate user payment details\n *\n * This hook handles validating payment details for a user, managing the mutation state,\n * and mapping validation errors to specific form fields. It uses React Query's mutation\n * capabilities for state management.\n *\n * @param {UseValidateUserPaymentDetailsProps} props - Optional configuration object\n * @param {Function} props.onSuccess - Optional callback function to execute on successful validation\n *\n * @returns {Object} An object containing:\n * - isPending: Boolean indicating if validation is in progress\n * - validationResult: The validation result data\n * - validateUserPaymentDetails: Function to trigger the validation\n * @param {ValidateUserPaymentDetailsInputDto} data - The payment details to validate\n * - errorMapping: Map of validation errors grouped by form fields\n */\nexport function useValidateUserPaymentDetails(\n props?: UseValidateUserPaymentDetailsProps,\n) {\n const { onSuccess } = props ?? {};\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n const { mutate, isPending, data } = useMutation({\n retry: 1,\n onSuccess,\n mutationFn: (data: ValidateUserPaymentDetailsInputDto) =>\n fetchValidateUserPaymentDetails(data, axiosInstance),\n });\n\n // Create and memoize a map of validation errors grouped by form fields\n const errorMapping: Map =\n useMemo(() => {\n const errors = data?.errors ?? [];\n const parsedErrors = errors.map(error => {\n return {\n ...error,\n field: error?.code?.includes('bank_account')\n ? UserPaymentDetailsFormFields.BankAccountNumber\n : undefined,\n };\n });\n\n return groupBy({\n records: parsedErrors,\n key: 'field',\n valueKey: 'description',\n });\n }, [data]);\n\n return {\n isPending,\n validationResult: data,\n validateUserPaymentDetails: mutate,\n errorMapping,\n };\n}\n","import { FormGroup, Input } from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport styles from '../../styles.module.scss';\nimport { UserPaymentDetailsFormContentFieldsProps } from '../props';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport { UserPaymentDetailsFormFields } from '@starsoft/common/enums';\nimport {\n useCoallescedUserPaymentTypeId,\n useTranslation,\n} from '../../../../../../../../../hooks';\nimport { useValidateUserPaymentDetails } from '../../../../../../../../../api';\nimport { UserPaymentDetailsValidationResult } from '../../../../../../../../../models/user-payment-details/validation/result';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * UserPaymentDetailsFormContentPix Component\n * This component is responsible for rendering the form fields specific to Pix payment details.\n * It handles validation and displays appropriate error messages or success indicators.\n *\n * @param {UserPaymentDetailsFormContentFieldsProps} props - The properties for the component.\n * @param {boolean} props.isPending - Flag indicating whether the form is in a pending state.\n *\n * @returns {JSX.Element} The rendered component displaying the Pix payment details form fields.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentPix({\n isPending,\n}: UserPaymentDetailsFormContentFieldsProps) {\n // Hook to get the translation function for the 'common' namespace\n const { t } = useTranslation('common');\n\n // Destructure necessary methods and state from the form context\n const {\n watch,\n register,\n formState: { dirtyFields },\n setValue,\n setError,\n clearErrors,\n } = useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n\n // Get the coalesced user payment type ID, which can be null\n const typeId: Nullable = useCoallescedUserPaymentTypeId();\n\n // Watch the 'pix.key' field for changes\n const pixKey: string = watch('pix.key');\n\n // Use the custom hook to validate user payment details\n const {\n isPending: isPendingValidation,\n validateUserPaymentDetails,\n errorMapping,\n } = useValidateUserPaymentDetails({\n onSuccess: (validationResult: UserPaymentDetailsValidationResult) => {\n clearErrors();\n if (validationResult?.errors?.length > 0) {\n setError('pix.key', {\n type: 'validate',\n });\n }\n\n if (validationResult?.pix?.maskedKey) {\n setValue('pix.key', validationResult.pix.maskedKey as never);\n }\n },\n });\n\n // Get any errors related to the Pix key\n const pixErrors = errorMapping.get(UserPaymentDetailsFormFields.PixKey);\n\n // Determine if there is an error with the Pix key\n const isError: boolean =\n pixErrors?.length > 0 && !isPendingValidation && dirtyFields?.pix?.key;\n\n // Determine if the Pix key lookup is valid\n const isValidLookup: boolean = pixErrors?.length === 0 && !isError;\n\n /**\n * onBlur Function\n * This function is triggered when the Pix key input loses focus.\n * It validates the user payment details using the current Pix key.\n */\n function onBlur() {\n validateUserPaymentDetails({\n typeId,\n pix: {\n key: pixKey,\n },\n });\n }\n\n // Render the form group and input for the Pix key\n return (\n \n \n \n );\n}\n","import { UserPaymentDetailsFormContentFieldsProps } from '../props';\nimport { useFormContext } from 'react-hook-form';\nimport { FormGroup, Input } from '@starsoft/common/components';\nimport styles from '../../styles.module.scss';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport { UserPaymentDetailsFormFields } from '@starsoft/common/enums';\nimport {\n useCoallescedUserPaymentTypeId,\n useTranslation,\n} from '../../../../../../../../../hooks';\nimport { ImpsInputDto } from '../../../../../../../../../dto/user-payment-details/create-user-payment-details-input/imps';\nimport { UserPaymentDetailsValidationResult } from '../../../../../../../../../models/user-payment-details/validation/result';\nimport { useValidateUserPaymentDetails } from '../../../../../../../../../api';\nimport { ImpsPayload } from '../../../../../../../../../interfaces/user-payment-details/validation-result/imps';\n\n/**\n * UserPaymentDetailsFormContentUpi Component\n * This component is responsible for rendering the form fields specific to IMPS payment details.\n * It handles validation and displays appropriate error messages or success indicators.\n *\n * @param {UserPaymentDetailsFormContentFieldsProps} props - The properties for the component.\n * @param {boolean} props.isPending - Flag indicating whether the form is in a pending state.\n *\n * @returns {JSX.Element} The rendered component displaying the IMPS payment details form fields.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentUpi({\n isPending,\n}: UserPaymentDetailsFormContentFieldsProps) {\n const { t } = useTranslation('common');\n const { register, setValue, watch, clearErrors, setError } = useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n const typeId: string = useCoallescedUserPaymentTypeId();\n const imps: ImpsInputDto & Partial = watch('imps');\n\n /**\n * onValidationResultSuccess Function\n * This function is triggered upon successful validation of user payment details.\n * It clears previous errors and sets new values in the form context based on the validation result.\n *\n * @param {UserPaymentDetailsValidationResult} validationResult - The result of the validation process.\n */\n function onValidationResultSuccess(\n validationResult: UserPaymentDetailsValidationResult,\n ) {\n clearErrors();\n\n if (validationResult?.errors?.length > 0) {\n setError('imps.accountHolder', {\n type: 'validate',\n });\n }\n\n if (validationResult?.imps?.accountHolder) {\n setValue('imps.accountHolder', validationResult?.imps?.accountHolder);\n }\n\n if (validationResult?.imps?.ifsc) {\n setValue('imps.ifsc', validationResult?.imps?.ifsc);\n }\n\n if (validationResult?.imps?.accountNumber) {\n setValue('imps.accountNumber', validationResult?.imps?.accountNumber);\n }\n }\n\n const {\n isPending: isPendingValidation,\n validateUserPaymentDetails,\n validationResult,\n errorMapping,\n } = useValidateUserPaymentDetails({\n onSuccess: onValidationResultSuccess,\n });\n\n const accountHolderErrors = errorMapping?.get(\n UserPaymentDetailsFormFields.ImpsAccountHolder,\n );\n const ifscErrors = errorMapping?.get(UserPaymentDetailsFormFields.ImpsIfsc);\n const bankAccountErrors = errorMapping?.get(\n UserPaymentDetailsFormFields.BankAccountNumber,\n );\n\n const isAccountHolderError: boolean =\n !isPendingValidation && accountHolderErrors?.length > 0;\n const isIfscError: boolean = !isPendingValidation && ifscErrors?.length > 0;\n const isBankAccountError: boolean =\n !isPendingValidation && bankAccountErrors?.length > 0;\n\n /**\n * onValidationInputBlur Function\n * This function is triggered when an input field loses focus.\n * It validates the user payment details using the current input value.\n *\n * @param {keyof ImpsPayload} key - The key of the input field being validated.\n * @param {string} value - The current value of the input field.\n *\n * @example\n * // Usage example:\n * onValidationInputBlur('accountHolder', 'John Doe');\n */\n function onValidationInputBlur(key: keyof ImpsPayload, value: string) {\n validateUserPaymentDetails({\n typeId,\n imps: {\n ...imps,\n [key]: value,\n },\n });\n }\n\n return (\n <>\n \n \n onValidationInputBlur('accountHolder', imps?.accountHolder)\n }\n />\n \n\n \n onValidationInputBlur('ifsc', imps?.ifsc)}\n />\n \n\n \n \n onValidationInputBlur('accountNumber', imps?.accountNumber)\n }\n />\n \n \n );\n}\n","import { useTranslation } from '../../../../../../../../../../../../hooks';\nimport { UserPaymentDetailsFormContentBankAccountDetailsBankDataProps } from './props';\nimport styles from './styles.module.scss';\nimport { FormGroup, Input } from '@starsoft/common/components';\n\n/**\n * UserPaymentDetailsFormContentBankAccountDetailsBankData Component\n * This component is responsible for rendering the bank details such as bank name and bank code.\n *\n * @param {UserPaymentDetailsFormContentBankAccountDetailsBankDataProps} props - The properties for the component.\n * @param {Bank} props.bank - The bank object containing the bank details.\n *\n * @returns {JSX.Element} The rendered component displaying the bank details.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccountDetailsBankData({\n bank,\n}: UserPaymentDetailsFormContentBankAccountDetailsBankDataProps) {\n // Translation hook for internationalization\n const { t } = useTranslation('common');\n\n return (\n
\n {/* Form group for displaying the bank name */}\n \n \n \n {/* Form group for displaying the bank code */}\n \n \n \n
\n );\n}\n","import UserPaymentDetailsFormContentBankAccountDetailsBankData from '../Common/BankDetails';\nimport { UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccountProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccount Component\n * This component is responsible for rendering the bank account details specific to Mexican bank accounts.\n * It displays the bank details if available in the validation result.\n *\n * @param {UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccountProps} props - The properties for the component.\n * @param {UserPaymentDetailsValidationResult} props.validationResult - The validation result containing bank account details.\n *\n * @returns {JSX.Element} The rendered component displaying the Mexican bank account details.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccount({\n validationResult,\n}: UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccountProps) {\n return (\n
\n {validationResult?.bankAccount?.bank && (\n \n )}\n
\n );\n}\n","import UserPaymentDetailsFormContentBankAccountDetailsBankData from '../Common/BankDetails';\nimport { UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccountProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccount Component\n * This component is responsible for rendering the bank account details specific to Argentine bank accounts.\n * It displays the bank details if available in the validation result.\n *\n * @param {UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccountProps} props - The properties for the component.\n * @param {UserPaymentDetailsValidationResult} props.validationResult - The validation result containing bank account details.\n *\n * @returns {JSX.Element} The rendered component displaying the Argentine bank account details.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccount({\n validationResult,\n}: UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccountProps) {\n return (\n
\n {validationResult?.bankAccount?.bank && (\n \n )}\n
\n );\n}\n","import UserPaymentDetailsFormContentBankAccountDetailsBankData from '../Common/BankDetails';\nimport { UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountProps } from './props';\nimport styles from './styles.module.scss';\n\n/**\n * UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccount Component\n * This component is responsible for rendering the bank account details specific to Nigerian bank accounts.\n * It displays the bank details if available in the validation result.\n *\n * @param {UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountProps} props - The properties for the component.\n * @param {UserPaymentDetailsValidationResult} props.validationResult - The validation result containing bank account details.\n *\n * @returns {JSX.Element} The rendered component displaying the Nigerian bank account details.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccount({\n validationResult,\n}: UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountProps) {\n return (\n
\n {validationResult?.bankAccount?.bank && (\n \n )}\n
\n );\n}\n","import { UserPaymentDetailsFormContentBankAccountDetailsProps } from './props';\nimport UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccount from './MexicanBankAccount';\nimport UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccount from './ArgentineBankAccount';\nimport { UserPaymentDetailsTypeId } from '../../../../../../../../../../enums';\nimport { useCoallescedUserPaymentTypeId } from '../../../../../../../../../../hooks';\nimport UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccount from './NigerianBankAccount';\n\n/**\n * UserPaymentDetailsFormContentBankAccountDetails Component\n * This component is responsible for rendering the specific bank account details component\n * based on the user's payment type ID. It selects the appropriate component to display\n * based on the type of bank account.\n *\n * @param {UserPaymentDetailsFormContentBankAccountDetailsProps} props - The properties for the component.\n * @param {UserPaymentDetailsValidationResult} props.validationResult - The validation result for the bank account details.\n *\n * @returns {JSX.Element | null} The rendered component for the specific bank account details or null if no match is found.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccountDetails({\n validationResult,\n}: UserPaymentDetailsFormContentBankAccountDetailsProps) {\n // Retrieve the coalesced user payment type ID\n const typeId: string = useCoallescedUserPaymentTypeId();\n\n // Render the appropriate bank account details component based on the type ID\n switch (typeId) {\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n return (\n \n );\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n return (\n \n );\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n return (\n \n );\n default:\n // Return null if no matching type ID is found\n return null;\n }\n}\n","export enum BanksQueryKeys {\n Primary = '/banks/',\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { AxiosInstance, AxiosResponse } from 'axios';\nimport { UseBanksQueryKey } from './props';\nimport { PaginatedResponse } from '@starsoft/common/models';\nimport { BanksRequestDto } from '@starsoft/common/dto/banks/banks-request.dto';\nimport { Bank } from '@starsoft/common/models/bank';\n\nexport async function fetchBanks(\n { pageParam = 1, queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n): Promise> {\n const { limit, countries, name }: BanksRequestDto = queryKey[1];\n\n const response: AxiosResponse> =\n await axiosInstance.get>('banks', {\n params: {\n page: pageParam,\n limit: limit,\n countries: countries?.join(','),\n name,\n },\n });\n\n return response.data;\n}\n","import { useMemo } from 'react';\nimport { BanksQueryKeys } from '../../queryKeys';\nimport { InfiniteData, useInfiniteQuery } from '@tanstack/react-query';\nimport { fetchBanks } from './service';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport {\n useAxiosInstance,\n useDebounce,\n useInfiniteQueryCallbacks,\n useInfiniteQueryReset,\n} from '@starsoft/common/hooks';\nimport { GenericError, PaginatedResponse } from '@starsoft/common/models';\nimport { UseBanksProps, UseBanksQueryKey } from './props';\nimport { BanksRequestDto } from '@starsoft/common/dto/banks/banks-request.dto';\nimport { Bank } from '@starsoft/common/models/bank';\n\n/**\n * Custom hook to fetch paginated bank data.\n *\n * @param {UseBanksProps} options - Configuration options for the query.\n * @param {string[]} [options.countries] - List of country codes to filter banks.\n * @param {string} [options.name] - Name of the bank to filter results.\n * @param {boolean} [options.enabled=true] - Flag to enable or disable the query.\n *\n * @returns {Object} - Returns an object containing the query state and functions.\n * @returns {boolean} return.isLoading - Indicates if the query is currently loading.\n * @returns {Bank[]} return.banks - The fetched paginated bank data.\n * @returns {AxiosError} return.error - Error object if the query fails.\n * @returns {Function} return.refetch - Function to manually refetch the data.\n */\nexport function useBanks(options?: UseBanksProps) {\n // Get an Axios instance for making HTTP requests\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Destructure options with default values\n const { countries, name, enabled = true } = options ?? {};\n\n // Debounce the bank name to reduce the number of API calls\n const debouncedName = useDebounce(name);\n\n // Define the request parameters\n const params: BanksRequestDto = {\n countries,\n name: debouncedName,\n limit: 20,\n };\n\n // Define the query key for caching and refetching purposes\n const queryKey: UseBanksQueryKey = [BanksQueryKeys.Primary, params];\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 bank data\n const { data, isPending, ...infinityQuery } = useInfiniteQuery<\n PaginatedResponse,\n AxiosError,\n InfiniteData>,\n UseBanksQueryKey\n >({\n queryKey,\n queryFn: queryContext => fetchBanks(queryContext, axiosInstance),\n initialPageParam: 1,\n getNextPageParam,\n getPreviousPageParam,\n staleTime: 5 * 1000, // Data is considered fresh for 5 seconds\n refetchOnWindowFocus: false, // Disable refetching on window focus\n enabled, // Enable or disable the query based on the 'enabled' option\n });\n\n // Memoize the flattened array of bank data from all pages\n const formattedData: Bank[] = useMemo(\n () => data?.pages?.map(page => page.data)?.flat(),\n [data],\n );\n\n // Return the query state and functions\n return {\n ...infinityQuery,\n isLoading: isPending, // Indicates if the query is currently loading\n banks: formattedData, // The fetched paginated bank data\n error: infinityQuery.error as AxiosError, // Error object if the query fails\n };\n}\n","import { useBanks } from '@starsoft/common/api/banks';\nimport { AutocompleteMenuSelector } from '@starsoft/common/components/AutocompleteMenuSelector';\nimport { ErrorChip } from '@starsoft/common/components/ErrorChip';\nimport { FormGroup } from '@starsoft/common/components/FormGroup';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport {\n useKycMeByOriginIdWithOrigin,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport { Bank } from '@starsoft/common/models/bank';\nimport { useCallback, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\n/**\n * This component renders a form section for selecting a Nigerian bank account.\n * It utilizes several hooks and components to manage state, fetch data, and display UI elements.\n */\nexport default function UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountSelect() {\n // Translation hook for internationalization\n const { t } = useTranslation('common');\n\n // Hook to fetch KYC (Know Your Customer) data\n const { kyc, isPending: isPendingKyc } = useKycMeByOriginIdWithOrigin();\n\n // State to manage the bank name input\n const [name, setName] = useState('');\n\n // React Hook Form context to manage form state\n const { setValue, watch } = useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n\n // Watching the 'bankCode' field in the form\n const bankCode: string = watch('bankCode');\n\n // Custom hook to fetch banks based on the current state\n const {\n banks,\n isLoading: isLoadingBanks,\n error: banksError,\n refetch: refetchBanks,\n hasNextPage,\n fetchNextPage,\n isFetchingNextPage,\n } = useBanks({\n name,\n countries: kyc?.origin?.countries?.map(country =>\n country?.country?.id?.toString(),\n ),\n enabled: !!kyc?.origin?.countries && kyc?.origin?.countries?.length > 0,\n });\n\n /**\n * Callback function to handle bank selection.\n * @param {Bank} data - The selected bank object.\n * Example: handleSelectBank({ code: '123', name: 'Bank of Nigeria' });\n */\n const handleSelectBank = useCallback(\n (data: Bank) => {\n setValue('bankCode', data.code);\n },\n [setValue],\n );\n\n /**\n * Callback function to handle changes in the search input.\n * @param {string} value - The current value of the search input.\n * Example: onSearchChange('First Bank');\n */\n const onSearchChange = useCallback((value: string) => {\n setName(value);\n }, []);\n\n // If there's an error fetching banks, display an error chip with a retry action\n if (banksError) {\n return ;\n }\n\n // Render the form group with an autocomplete selector for banks\n return (\n \n option.name}\n getOptionValue={option => option.code}\n value={bankCode}\n setValue={handleSelectBank}\n loading={isLoadingBanks || isPendingKyc}\n loadingMore={isFetchingNextPage}\n loadMore={fetchNextPage}\n hasNextPage={hasNextPage}\n isAsync\n hideSearch\n />\n \n );\n}\n","import { UserPaymentDetailsFormContentFieldsProps } from '../props';\nimport { useFormContext } from 'react-hook-form';\nimport { FormGroup, Input } from '@starsoft/common/components';\nimport styles from '../../styles.module.scss';\nimport { Collapse } from '@mui/material';\nimport UserPaymentDetailsFormContentBankAccountDetails from './Details';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport {\n useCoallescedUserPaymentTypeId,\n useTranslation,\n} from '../../../../../../../../../hooks';\nimport {\n UserPaymentDetailsFormFields,\n UserPaymentDetailsTypeId,\n} from '../../../../../../../../../enums';\nimport { BankAccountInputDto } from '../../../../../../../../../dto/user-payment-details/create-user-payment-details-input/bank-account';\nimport { UserPaymentDetailsValidationResult } from '../../../../../../../../../models/user-payment-details/validation/result';\nimport { useValidateUserPaymentDetails } from '../../../../../../../../../api';\nimport UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountSelect from './Details/NigerianBankAccount/Select';\n\n/**\n * UserPaymentDetailsFormContentBankAccount Component\n * This component is responsible for rendering the form fields specific to bank account payment details.\n * It handles validation and displays appropriate error messages or success indicators.\n *\n * @param {UserPaymentDetailsFormContentFieldsProps} props - The properties for the component.\n * @param {boolean} props.isPending - Flag indicating whether the form is in a pending state.\n *\n * @returns {JSX.Element} The rendered component displaying the bank account payment details form fields.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContentBankAccount({\n isPending,\n}: UserPaymentDetailsFormContentFieldsProps) {\n const { t } = useTranslation('common');\n const { register, setValue, watch, clearErrors, setError, getValues } =\n useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n const typeId: string = useCoallescedUserPaymentTypeId();\n const bankAccount: BankAccountInputDto & Partial =\n watch('bankAccount');\n const bankCode: string = watch('bankCode');\n\n /**\n * onValidationResultSuccess Function\n * This function is triggered upon successful validation of user payment details.\n * It clears previous errors and sets new values in the form context based on the validation result.\n *\n * @param {UserPaymentDetailsValidationResult} validationResult - The result of the validation process.\n */\n function onValidationResultSuccess(\n validationResult: UserPaymentDetailsValidationResult,\n ) {\n clearErrors();\n\n if (validationResult?.errors?.length > 0) {\n setError('bankAccount.account', {\n type: 'validate',\n });\n }\n\n if (validationResult?.bankAccount?.account) {\n setValue(\n 'bankAccount.account',\n validationResult?.bankAccount?.formattedAccount as never,\n );\n }\n if (validationResult?.bankAccount?.bank?.code) {\n setValue(\n 'bankAccount.bankCode',\n validationResult?.bankAccount?.bank?.code,\n );\n }\n }\n\n const {\n isPending: isPendingValidation,\n validateUserPaymentDetails,\n validationResult,\n errorMapping,\n } = useValidateUserPaymentDetails({\n onSuccess: onValidationResultSuccess,\n });\n\n const bankAccountErrors = errorMapping?.get(\n UserPaymentDetailsFormFields.BankAccountNumber,\n );\n\n const isBankAccountError =\n !isPendingValidation && bankAccountErrors?.length > 0;\n\n /**\n * onValidationInputBlur Function\n * This function is triggered when a bank account input field loses focus.\n * It validates the user payment details using the current bank account input.\n *\n * @param {keyof BankAccountInputDto} key - The key of the bank account field being validated.\n * @param {string} value - The value of the bank account field being validated.\n *\n * @example\n * // Usage example:\n * onValidationInputBlur('account', '1234567890');\n */\n function onValidationInputBlur(\n key: keyof BankAccountInputDto,\n value: string,\n ) {\n validateUserPaymentDetails({\n typeId,\n bankAccount: {\n [key]: value,\n bankCode,\n },\n });\n }\n\n return (\n <>\n {typeId === UserPaymentDetailsTypeId.NigerianBankAccount?.toString() && (\n \n )}\n \n onValidationInputBlur('account', bankAccount?.account)}\n />\n \n \n \n \n \n );\n}\n","import UserPaymentDetailsFormContentPix from './Pix';\nimport { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport UserPaymentDetailsFormContentImps from './Imps';\nimport UserPaymentDetailsFormContentBankAccount from './BankAccount';\nimport {\n CreateUserPaymentDetailsInputDto,\n UpdateUserPaymentDetailsInputDto,\n} from '@starsoft/common/dto';\nimport { UserPaymentDetailsTypeId } from '@starsoft/common/enums';\nimport {\n useCoallescedUserPaymentTypeId,\n useKycMeByOriginIdWithOrigin,\n useSearchParams,\n} from '@starsoft/common/hooks';\nimport { useUserPaymentDetailsById } from '../../../../../../../../api';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * UserPaymentDetailsFormContentFields Component\n * This component is responsible for rendering the appropriate form fields based on the user payment type.\n * It utilizes various hooks to manage form state and fetch necessary data.\n *\n * @returns {JSX.Element | undefined} The rendered component displaying the form fields for the user payment details.\n *\n * @example\n * // Usage example:\n * \n */\nexport function UserPaymentDetailsFormContentFields() {\n // Access the form context to set form values\n const { setValue } = useFormContext<\n CreateUserPaymentDetailsInputDto & UpdateUserPaymentDetailsInputDto\n >();\n\n // Get the coalesced user payment type ID, which can be null\n const typeId: Nullable = useCoallescedUserPaymentTypeId();\n\n // Retrieve search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n const userPaymentDetails = search.get('user-payment');\n const isCreating: boolean = userPaymentDetails == 'new';\n\n // Fetch user payment details by ID, determining if the data is loading\n const { isLoading: isLoadingUserPaymentDetails } = useUserPaymentDetailsById({\n id: isCreating\n ? undefined\n : (parseToBigInt(userPaymentDetails ?? '0') as bigint),\n });\n\n // Fetch KYC data and determine if it is pending or successful\n const {\n isPending: isPendingKyc,\n kyc,\n isSuccess: isKycSuccess,\n } = useKycMeByOriginIdWithOrigin();\n const isPending: boolean = isLoadingUserPaymentDetails || isPendingKyc;\n\n /**\n * onFetchKyc Function\n * This function sets the identity ID in the form context if KYC data is successfully fetched.\n */\n function onFetchKyc() {\n if (!kyc || !isKycSuccess) {\n return;\n }\n\n // Set the identity ID in the form context\n setValue('identityId', kyc?.identity?.id as never, { shouldDirty: true });\n }\n\n // Use the effect hook to call onFetchKyc when KYC data changes\n useEffect(onFetchKyc, [kyc, setValue, isKycSuccess]);\n\n // Render the appropriate form fields based on the user payment type ID\n switch (typeId?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return ;\n case UserPaymentDetailsTypeId.Imps?.toString():\n return ;\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n case UserPaymentDetailsTypeId.Qris?.toString():\n return ;\n }\n}\n","import styles from './styles.module.scss';\nimport UserPaymentDetailsFormContentUserKycCard from './UserKycCard';\nimport { UserPaymentDetailsFormContentFields } from './Fields';\nimport { UserPaymentDetailsFormContentProps } from './props';\nimport {\n useCoallescedUserPaymentTypeId,\n useTranslation,\n} from '../../../../../../../hooks';\nimport { Nullable } from '@starsoft/common/interfaces';\n\n/**\n * UserPaymentDetailsFormContent Component\n * This component is responsible for rendering the content of the user payment details form.\n * It includes the user's KYC card, a description, and the form fields.\n *\n * @param {UserPaymentDetailsFormContentProps} props - The properties for the component.\n * @param {string} props.userImage - The URL or path to the user's image to be displayed in the KYC card.\n *\n * @returns {JSX.Element} The rendered component displaying the user payment details form content.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsFormContent({\n userImage,\n}: UserPaymentDetailsFormContentProps) {\n // Hook to get the translation function for the 'common' namespace\n const { t } = useTranslation('common');\n\n // Hook to get the coalesced user payment type ID, which can be null\n const typeId: Nullable = useCoallescedUserPaymentTypeId();\n\n // Render the component structure\n return (\n
\n {/* Render the user's KYC card with the provided image */}\n \n\n {/* Render the description using the translation function and type ID */}\n
\n {t('create_user_payment_main_description', {\n key: t(`${typeId}_user_payment_description`),\n })}\n
\n\n {/* Render the form fields component */}\n \n
\n );\n}\n","import { AnimatePresence } from 'framer-motion';\nimport UserPaymentDetailsFormLayout from './Layout';\nimport { useCallback } from 'react';\nimport UserPaymentDetailsFormContent from './Content';\nimport { useWithdrawSearchParams } from '@starsoft/common/hooks';\n\n/**\n * UserPaymentDetailsForm Component\n * This component is responsible for rendering the user payment details form.\n * It uses the AnimatePresence component from framer-motion to handle animations when the form is displayed or removed.\n *\n * @returns {JSX.Element} The rendered component displaying the user payment details form layout and content.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsForm() {\n const { userPaymentDetails, handleDeleteWithdrawSearchParams } =\n useWithdrawSearchParams();\n\n /**\n * onClose Function\n * This function handles the close event of the user payment details form.\n * It deletes the 'user-payment' search parameter when the form is closed.\n *\n * @example\n * // Usage example:\n * onClose();\n */\n const onClose = useCallback(() => {\n handleDeleteWithdrawSearchParams('user-payment');\n }, [handleDeleteWithdrawSearchParams]);\n\n return (\n \n {userPaymentDetails && (\n \n \n \n )}\n \n );\n}\n","import { PropsWithChildren, useCallback, useEffect } from 'react';\nimport styles from './styles.module.scss';\nimport {\n useModal,\n useModalNavigation,\n useSearchParams,\n useToggle,\n useWithdrawForm,\n useWithdrawFormState,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\nimport { FormProvider, useForm } from 'react-hook-form';\nimport { Navigate } from '@starsoft/common/components';\nimport { CoinType } from '@starsoft/common/models';\nimport SecurityDrawer from './SecurityDrawer';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport TransactionModalsContentLayoutTabs from '../../../Common/Layout/Tabs';\nimport { CommonModalsKey, WithdrawStep } from '@starsoft/common/enums';\nimport useWithdrawal from '../../../../../api/withdrawals/mutations/useWithdraw';\nimport { useSendWithdrawalCode } from '../../../../../api';\nimport UserPaymentDetailsForm from '../../../Common/Layout/UserPaymentDetails/Form';\nimport TransactionsModalsLayoutHeader from '../../../Common/Layout/Header';\nimport { fadeInRight } from '../../../Common/variants';\nimport TransactionModalsLayoutFooter from '../../../Common/Layout/Footer';\nimport { WithdrawFormCreateDto } from '../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport useTransactionsTabNavigation from '../../../../../hooks/useTransactionsTabNavigation';\nimport { TransactionModalsWithdrawContentLayoutProps } from './props';\n\n/**\n * TransactionModalsWithdrawContentLayout Component\n * Main layout component for the withdrawal modal that handles the withdrawal flow including form submission,\n * navigation between steps, and security verification.\n *\n * Logic scope:\n * - Manages withdrawal form state and validation\n * - Handles navigation between different withdrawal steps\n * - Controls security drawer visibility\n * - Manages form submission based on current step\n * - Handles coin type validation and defaults\n * - Provides layout structure with header, content area and footer\n *\n * @component\n * @param {PropsWithChildren} props - React children to be rendered within the layout\n * @returns {JSX.Element} A form container with withdrawal flow UI components\n *\n * @example\n * \n * \n * \n */\nexport default function TransactionModalsWithdrawContentLayout({\n children,\n originId,\n version,\n}: PropsWithChildren) {\n const [isDrawerOpen, toggleDrawer] = useToggle();\n const { onClose } = useModal(CommonModalsKey.Withdraw);\n const {\n transactionStep,\n coinType,\n handleSetWithdrawSearchParams,\n handleDeleteWithdrawSearchParams,\n } = useWithdrawSearchParams();\n\n const { getModalLink } = useModalNavigation();\n const search: URLSearchParams = useSearchParams();\n const { coinId } = useWithdrawSearchParams();\n const disableStyles =\n transactionStep == WithdrawStep.Form ||\n transactionStep === WithdrawStep.UserPaymentDetails;\n\n const methods = useForm({\n defaultValues: {\n amount: 0,\n coinId: coinId?.toString(),\n },\n });\n\n const { handleSubmit, watch, setValue } = methods;\n const { setTab } = useTransactionsTabNavigation({ setValue });\n const amount = watch('amount');\n const emailId: bigint = watch('emailId');\n\n const {\n feeQuery: { isLoadingFee, fee },\n formError,\n isFormLoading,\n accountByCoinQuery: { currentAccount },\n coinOptions,\n isValidCoinId,\n } = useWithdrawForm(watch, setValue);\n const isSubmitDisabled: boolean = useWithdrawFormState({\n watch,\n setValue,\n });\n\n const { isLoading: isLoadingCreateWithdrawal, withdraw } = useWithdrawal({\n onSuccess: toggleDrawer,\n });\n const { sendWithdrawalCode } = useSendWithdrawalCode();\n\n /**\n * Handles navigation when back button is clicked\n * Manages step transitions based on coin type and current step\n *\n * @returns {void}\n *\n * @example\n * // When on confirmation step with crypto\n * handleBackButton() // Returns to form step\n *\n * // When on first step\n * handleBackButton() // Closes modal\n */\n const handleBackButton = useCallback(() => {\n if (!!search.get('user-payment')) {\n handleDeleteWithdrawSearchParams('user-payment');\n return;\n }\n const paths = Object.values(WithdrawStep);\n const currentIndex = paths.findIndex(path => path == transactionStep);\n\n if (currentIndex == 0) {\n onClose();\n }\n\n let targetPath = paths[currentIndex - 1];\n\n if (\n coinType == CoinType.Crypto &&\n targetPath == WithdrawStep.UserPaymentDetails\n ) {\n targetPath = WithdrawStep.Form;\n }\n\n if (coinType == CoinType.Fiat && targetPath != WithdrawStep.Form) {\n targetPath = WithdrawStep.Form;\n }\n\n handleSetWithdrawSearchParams('step', targetPath);\n }, [\n transactionStep,\n handleSetWithdrawSearchParams,\n onClose,\n coinType,\n search,\n handleDeleteWithdrawSearchParams,\n ]);\n\n /**\n * Handles form submission based on current withdrawal step\n * Controls flow between steps and triggers appropriate actions\n *\n * @param {WithdrawFormCreateDto} data - Form data for withdrawal\n * @returns {void}\n *\n * @example\n * onSubmit({\n * amount: 100,\n * coinId: \"1\",\n * emailId: 123n\n * })\n */\n function onSubmit(data: WithdrawFormCreateDto) {\n switch (transactionStep) {\n case WithdrawStep.Form:\n switch (coinType) {\n case CoinType.Fiat:\n handleSetWithdrawSearchParams(\n 'step',\n WithdrawStep.UserPaymentDetails,\n );\n break;\n case CoinType.Crypto:\n handleSetWithdrawSearchParams('step', WithdrawStep.Confirmation);\n break;\n }\n break;\n case WithdrawStep.Confirmation:\n sendWithdrawalCode({\n emailId,\n });\n handleSetWithdrawSearchParams('step', WithdrawStep.ConfirmationCode);\n break;\n case WithdrawStep.ConfirmationCode:\n case WithdrawStep.UserPaymentDetails:\n if (!isDrawerOpen) {\n toggleDrawer();\n return;\n }\n\n withdraw(data);\n break;\n case WithdrawStep.Response:\n break;\n }\n }\n\n /**\n * Validates selected coin ID and sets default if invalid\n * Ensures selected coin is available in options\n *\n * @returns {void}\n */\n function handleInvalidCoinId(): void {\n if (isValidCoinId || !coinOptions || coinOptions?.length === 0) {\n return;\n }\n\n handleSetWithdrawSearchParams('coin-id', coinOptions[0].id as never);\n }\n\n useEffect(handleInvalidCoinId, [\n coinOptions,\n isValidCoinId,\n handleSetWithdrawSearchParams,\n ]);\n\n if (\n ![WithdrawStep.Form, WithdrawStep.Response].includes(transactionStep) &&\n (!amount || amount == 0)\n ) {\n search.set('step', WithdrawStep.Form);\n search.delete('amount');\n search.delete('method-id');\n return (\n \n );\n }\n\n return (\n
\n \n \n
\n );\n}\n","import { Chain } from '@starsoft/common/models';\nimport { FCInputProp } from '../../props';\nimport styles from './styles.module.scss';\nimport { useTranslation } from '../../../../hooks';\nimport { getContrastColor } from '@starsoft/common/utils';\n\n/**\n * Component that renders a custom input for selecting blockchain chains\n * Displays the chain name, symbol and color with a dropdown toggle\n *\n * @param {Object} props - Component props\n * @param {Chain} props.option - The currently selected chain option\n * @param {Function} props.handleOpen - Callback function to handle opening/closing the dropdown\n * @param {boolean} props.open - Whether the dropdown is currently open\n * @param {boolean} props.disabled - Whether the input is disabled\n * @returns {JSX.Element} Chain input component with name, colored chip and dropdown arrow\n */\nexport function ChainInput({\n option,\n handleOpen,\n open,\n disabled,\n}: Omit, 'key'>) {\n const { t } = useTranslation('common');\n\n return (\n \n
\n {option?.name}{' '}\n \n {option?.symbol}\n
\n
\n \n
\n );\n}\n","import styles from './styles.module.scss';\nimport {\n AutocompleteMenuSelector,\n ChainOption,\n FormGroup,\n Input,\n ToolTip,\n} from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport { Chain } from '@starsoft/common/models';\nimport {\n useDebounce,\n useTranslation,\n useWithdrawForm,\n} from '@starsoft/common/hooks';\nimport { ErrorService } from '@starsoft/common/services';\nimport { WithdrawFormCreateDto } from '../../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { ChainInput } from '@starsoft/common/components/AutocompleteMenuSelector/CustomOptions/ChainInput';\nimport { useCallback, useState } from 'react';\nimport useFormattedCryptoAddress from '@starsoft/common/hooks/useFormattedCryptoAddress';\n\n/**\n * TransactionsModalsWithdrawContentFormCryptoContent Component\n * This component handles the rendering of the crypto withdrawal form content.\n * It manages the selection of blockchain networks and the input of crypto addresses.\n *\n * @returns {JSX.Element} The rendered component containing form groups for network selection and address input.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsWithdrawContentFormCryptoContent() {\n // Retrieve the translation function for the 'withdraw' namespace\n const { t } = useTranslation('withdraw');\n\n // State to toggle the display of the formatted address\n const [showFormatedAddress, setShowFormatedAddress] =\n useState(false);\n\n // Retrieve form context methods for watching and setting form values\n const {\n watch,\n register,\n formState: { dirtyFields },\n setFocus,\n setValue,\n } = useFormContext();\n\n // Watch the 'address' field in the form\n const address: string = watch('address');\n // Format the address using a custom hook\n const formattedAddress = useFormattedCryptoAddress(address ?? '');\n // Debounce the address input to reduce unnecessary updates\n const debouncedAddress: string = useDebounce(address);\n\n // Retrieve withdrawal form state and methods\n const {\n chainOptions,\n isFormLoading,\n accountByCoinQuery: { currentAccount, isLoadingAccountByCoin },\n tokenLookupQuery: { errorTokenLookup, isPendingTokenLookup, tokenLookup },\n } = useWithdrawForm(watch, setValue);\n\n // Determine if the form is in a loading state\n const isLoading: boolean = isLoadingAccountByCoin || isFormLoading;\n // Watch the 'chainId' field in the form\n const chainId: string | undefined = watch('chainId');\n\n /**\n * handleSelectChain Function\n * Updates the selected blockchain network in the form.\n *\n * @param {Chain} chain - The chain object selected by the user.\n * @returns {void}\n *\n * @example\n * handleSelectChain({ id: 1, name: 'Ethereum' });\n */\n function handleSelectChain(chain: Chain) {\n setValue('chainId', chain?.id?.toString(), {\n shouldDirty: true,\n });\n }\n\n /**\n * handePasteAddress Function\n * Pastes the address from the clipboard into the form.\n *\n * @returns {void}\n *\n * @example\n * handePasteAddress();\n */\n function handePasteAddress() {\n if (typeof navigator == 'undefined') {\n return;\n }\n\n navigator.clipboard.readText().then(clipText => {\n setValue('address', clipText);\n });\n }\n\n // Callback to handle focus on the address input\n const handleFocus = useCallback(() => {\n setShowFormatedAddress(false);\n setTimeout(() => setFocus('address'));\n }, [setFocus]);\n\n // Callback to handle blur on the address input\n const handleBlur = useCallback(() => {\n setShowFormatedAddress(true);\n }, []);\n\n // Render the component with form groups for network selection and address input\n return (\n
\n {chainOptions.length > 1 && (\n \n option.name}\n getOptionValue={option => option.id?.toString()}\n setValue={handleSelectChain}\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n customInput: props => ,\n }}\n />\n \n )}\n \n
\n \n \n \n }\n />\n
\n \n
\n );\n}\n","import { CoinType } from '@starsoft/common/models';\nimport TransactionsModalsWithdrawContentFormCryptoContent from './Crypto';\nimport { useWithdrawSearchParams } from '@starsoft/common/hooks';\nimport { WithdrawMethodId } from '@starsoft/common/enums';\n\n/**\n * TransactionsModalsWithdrawFormContent Component\n * This component determines the content to render based on the type of coin and withdrawal method.\n * It uses the `useWithdrawSearchParams` hook to retrieve the current coin type and withdrawal method ID.\n *\n * @returns {JSX.Element | null} The rendered component or null if no applicable content is found.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsWithdrawFormContent() {\n // Retrieve the current coin type and withdrawal method ID from search parameters\n const { coinType, withdrawMethodId } = useWithdrawSearchParams();\n\n // Determine the content to render based on the coin type\n switch (coinType) {\n case CoinType.Fiat:\n // For fiat coin types, check the withdrawal method ID\n switch (withdrawMethodId) {\n // If the withdrawal method matches any of the specified IDs, return null\n case WithdrawMethodId.BetterbroBrazillianPix?.toString():\n case WithdrawMethodId.PixtopayBrazillianPix?.toString():\n case WithdrawMethodId.BetterbroArgentineBankTransfer?.toString():\n case WithdrawMethodId.BetterbroIndianImps?.toString():\n case WithdrawMethodId.BetterbroMexicanSpei?.toString():\n return null;\n }\n break;\n case CoinType.Crypto:\n // For crypto coin types, render the crypto content component\n return ;\n }\n}\n","import { Button, CurrencyInput, FormGroup } from '@starsoft/common/components';\nimport { useFormContext } from 'react-hook-form';\nimport styles from './styles.module.scss';\nimport { AmountInputProps } from './props';\nimport { useTranslation, useWithdrawForm } from '@starsoft/common/hooks';\nimport { WithdrawFormCreateDto } from '../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { getMoneyOrAmount } from '@starsoft/common/utils';\nimport { WalletService } from '@starsoft/common/services';\n\n/**\n * AmountInput Component\n * This component is responsible for rendering an input field for entering withdrawal amounts.\n * It includes functionality to handle changes in the input value and to withdraw the full balance.\n *\n * @param {AmountInputProps} props - The properties for the component.\n * @param {boolean} props.showBalance - A flag to determine if the available balance should be displayed.\n *\n * @returns {JSX.Element} The rendered component for inputting withdrawal amounts.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function AmountInput({ showBalance = true }: AmountInputProps) {\n // Retrieve the translation functions for the 'withdraw' and 'notify' namespaces\n const { t } = useTranslation('withdraw');\n const { t: tNotify } = useTranslation('notify');\n // Retrieve form context methods for setting and watching form values\n const { setValue, watch } = useFormContext();\n\n // Retrieve withdrawal form state and methods\n const {\n isOverValued,\n isFormLoading,\n isUnderValued,\n minValueFormatted,\n maxValueFormatted,\n isValidReceiveAmount,\n accountByCoinQuery: { currentAccount, isLoadingAccountByCoin },\n selectedWithdrawalMethodQuery: { coinMapping, isLoadingWithdrawMethod },\n feeQuery: { isLoadingFee },\n } = useWithdrawForm(watch, setValue);\n\n // Determine if the form is in a loading state\n const isLoading: boolean =\n isLoadingAccountByCoin || isLoadingWithdrawMethod || isFormLoading;\n // Watch the 'amount' field in the form\n const amount = watch('amount');\n\n /**\n * handleChange Function\n * Updates the 'amount' field in the form with the provided value.\n *\n * @param {number} value - The new value for the 'amount' field.\n * @returns {void}\n *\n * @example\n * handleChange(100);\n */\n function handleChange(value: number) {\n setValue('amount', value, {\n shouldDirty: true,\n });\n }\n\n /**\n * handleWithdrawAll Function\n * Sets the 'amount' field in the form to the full balance available in the current account.\n *\n * @returns {void}\n *\n * @example\n * handleWithdrawAll();\n */\n function handleWithdrawAll() {\n setValue('amount', getMoneyOrAmount(currentAccount?.balance) ?? 0, {\n shouldDirty: true,\n shouldTouch: true,\n });\n }\n\n // Render the FormGroup component with a CurrencyInput for entering withdrawal amounts\n return (\n \n \n {t('max_label')}\n \n )\n }\n />\n {showBalance && (\n
\n
\n {t('available_balance_label')}\n
\n
\n {WalletService.maskCurrency({\n amount: getMoneyOrAmount(currentAccount?.balance),\n coin: currentAccount?.coin,\n })}\n
\n
\n )}\n \n );\n}\n","import { useTranslation, useWithdrawForm } from '@starsoft/common/hooks';\nimport { useFormContext } from 'react-hook-form';\nimport { WithdrawFormCreateDto } from '../../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport TransactionMethods from '../../../../../../Common/Content/TransactionMethods';\n\n/**\n * WithdrawalMethods Component\n * This component is responsible for rendering the available withdrawal methods in the form.\n *\n * @returns {JSX.Element} The TransactionMethods component with the withdrawal methods.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function WithdrawalMethods() {\n // Retrieve the translation function for the 'withdraw' namespace\n const { t } = useTranslation('withdraw');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Use custom hook to manage withdrawal form state and methods\n const {\n isFormLoading,\n withdrawMethodsQuery: { withdrawMethods },\n } = useWithdrawForm(watch, setValue);\n\n // Render the TransactionMethods component with the withdrawal methods\n return (\n \n );\n}\n","import {\n AutocompleteMenuSelector,\n AutocompleteSelectorOptionCoinWithImage,\n FormGroup,\n SelectInputWithImage,\n} from '@starsoft/common/components';\nimport {\n useNavigate,\n useSearchParams,\n useTranslation,\n useWithdrawForm,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\nimport { Coin } from '@starsoft/common/models';\nimport { useFormContext } from 'react-hook-form';\nimport { WithdrawFormCreateDto } from '../../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { useCurrentModal } from '../../../../../../../../hooks/modals/useCurrentModal';\nimport AutocompleteSelectorOptionWithImageSkeleton from '../../../../../../../AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount/Skeleton';\nimport SelectInputWithImageSkeleton from '../../../../../../../SelectInput/SelectWithImage/SelectInputWithImage/Skeleton';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\nimport { NavigateFunction } from '@starsoft/common/interfaces/navigate-function';\nimport { CommonModalsKey, WithdrawMethodId } from '@starsoft/common/enums';\nimport { useMemo } from 'react';\n\n/**\n * WithdrawCoinSelect Component\n * This component is responsible for rendering a coin selection dropdown in the withdrawal form.\n * It uses various hooks to manage form state, navigation, and translation.\n *\n * @returns {JSX.Element} The rendered component with a form group containing an autocomplete menu selector.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function WithdrawCoinSelect() {\n // Retrieve the translation function for the 'withdraw' namespace\n const { t } = useTranslation('withdraw');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Retrieve search parameters from the URL\n const search = useSearchParams();\n // Retrieve the current modal key\n const modal = useCurrentModal(CommonModalsKey);\n // Retrieve the navigate function for programmatic navigation\n const navigate: NavigateFunction = useNavigate();\n // Retrieve search parameters specific to withdrawal\n const { coinId: searchCoinId, withdrawMethodId } = useWithdrawSearchParams();\n // Retrieve withdrawal form state and methods\n const { coinOptions, isFormLoading, currentChain } = useWithdrawForm(\n watch,\n setValue,\n );\n // Determine the current coin ID from the form or search parameters\n const coinId = watch('coinId') || searchCoinId;\n\n // Memoize the current coin based on the selected coin ID\n const currentCoin = useMemo(\n () => coinOptions?.find(coin => coin?.id?.toString() == coinId),\n [coinId, coinOptions],\n );\n\n /**\n * handleSelectCoin Function\n * This function updates the selected coin in the form and URL search parameters.\n *\n * @param {Coin} coin - The coin object selected by the user.\n * @returns {void}\n *\n * @example\n * handleSelectCoin({ id: 1, name: 'Bitcoin', symbol: 'BTC' });\n */\n function handleSelectCoin(coin: Coin): void {\n search.set('coin-id', `${coin?.id}`);\n setValue('coinId', coin?.id?.toString(), {\n shouldDirty: false,\n });\n search.delete('method-id');\n navigate({\n search: search.toString(),\n hash: modal,\n });\n }\n\n // Render the form group with an autocomplete menu selector for coin selection\n return (\n \n option.code}\n getOptionValue={option => option.id?.toString()}\n loading={isFormLoading || !coinId}\n customComponents={{\n customOption: ({ handleSelect, option, selected }) => (\n \n ),\n customInput: ({ handleOpen, open, option }) => (\n ${option?.code}
`}\n />\n ),\n customSkeletonOption: () => (\n \n ),\n customSkeletonInput: () => ,\n }}\n isContainerColor\n />\n \n );\n}\n","import {\n useLottiePlayer,\n useTranslation,\n useWithdrawForm,\n} from '@starsoft/common/hooks';\nimport styles from './styles.module.scss';\nimport { useFormContext } from 'react-hook-form';\nimport { WithdrawFormCreateDto } from '@starsoft/common/dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\n\n/**\n * TransactionsModalWithdrawContentFormLayoutNoMethodsAvailable Component\n * This component is responsible for displaying a message and animation when no withdrawal methods are available.\n *\n * @returns {JSX.Element} A container with a Lottie animation and a description message.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalWithdrawContentFormLayoutNoMethodsAvailable() {\n // Retrieve the translation function for the 'common' namespace\n const { t } = useTranslation('common');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Use custom hook to manage withdrawal form state and methods\n const {\n accountByCoinQuery: { currentAccount },\n } = useWithdrawForm(watch, setValue);\n\n // Use Lottie player hook to manage animation\n const { lottieAnimationRef } = useLottiePlayer({\n path: '/under-maintenence.json',\n dependecyArray: [currentAccount],\n });\n\n // Render the component with a Lottie animation and a description message\n return (\n
\n
\n
\n {t('withdraw_no_methods_available_description', {\n coin: currentAccount?.coin?.code,\n })}\n
\n
\n );\n}\n","import { PropsWithChildren } from 'react';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '@starsoft/common/components';\nimport { useInfiniteScroll, useWithdrawForm } from '@starsoft/common/hooks';\nimport AmountInput from '../../AmountInput';\nimport WithdrawalMethods from './WithdrawalMethods';\nimport WithdrawCoinSelect from './CoinSelect';\nimport { useFormContext } from 'react-hook-form';\nimport { WithdrawFormCreateDto } from '../../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport TransactionsModalWithdrawContentFormLayoutNoMethodsAvailable from './NoMethodsAvailable';\n\n/**\n * TransactionsModalWithdrawContentFormLayout Component\n * This component is responsible for rendering the layout of the withdrawal form, including handling errors and infinite scrolling.\n *\n * @param {PropsWithChildren} props - The properties passed to the component, including children elements.\n * @returns {JSX.Element} The layout of the withdrawal form, including coin selection, amount input, and withdrawal methods.\n *\n * @example\n * // Usage example:\n * \n * \n * \n */\nexport default function TransactionsModalWithdrawContentFormLayout({\n children,\n}: PropsWithChildren) {\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n\n // Use custom hook to manage withdrawal form state and methods\n const {\n formError,\n refetchForm,\n withdrawMethodsQuery: {\n withdrawMethods,\n hasNextPage,\n isPendingWithdrawalMethods,\n isFetchingNextPage,\n fetchNextPage,\n },\n } = useWithdrawForm(watch, setValue);\n\n // Use custom hook for infinite scrolling functionality\n const { ref } = useInfiniteScroll({\n hasMore: hasNextPage,\n isLoading: isPendingWithdrawalMethods || isFetchingNextPage,\n loadMore: fetchNextPage,\n });\n\n // Render an error card if there is a form error\n if (formError) {\n return ;\n }\n\n // Render the form layout with coin selection, amount input, and withdrawal methods\n return (\n
\n
\n \n {(!isPendingWithdrawalMethods && withdrawMethods?.length > 0 && (\n <>\n \n \n {children}\n \n )) || }\n
\n
\n );\n}\n","import TransactionsModalsWithdrawFormContent from './Content';\nimport TransactionsModalWithdrawContentFormLayout from './Layout';\n\n/**\n * TransactionModalsWithdrawContentTransactionForm Component\n * This component is responsible for rendering the form layout and content for the withdrawal process.\n *\n * @returns {JSX.Element} The form layout component containing the form content component.\n *\n * @example\n * // This component does not take any parameters and returns:\n * \n * \n * \n */\nexport default function TransactionModalsWithdrawContentTransactionForm() {\n return (\n \n \n \n );\n}\n","import { useSearchParams } from '@starsoft/common/hooks';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport styles from './styles.module.scss';\nimport { ErrorCard } from '@starsoft/common/components';\nimport { useWithdrawalById } from '../../../../../../../api';\nimport TransactionResult from '../../../../../Result';\nimport { parseToBigInt } from '@starsoft/common/utils/parsers';\n\n/**\n * WithdrawResponseContent Component\n * This component is responsible for rendering the response content of a withdrawal transaction.\n * It fetches the withdrawal details using the withdrawal ID from the URL search parameters.\n *\n * @returns {JSX.Element} A skeleton loader, an error card, or the transaction result component.\n *\n * @example\n * // If the withdrawal is loading, it returns:\n *
\n * // If there is an error fetching the withdrawal, it returns:\n * \n * // If the withdrawal is successfully fetched, it returns:\n * \n */\nexport default function WithdrawResponseContent() {\n // Retrieve the URL search parameters\n const search: URLSearchParams = useSearchParams();\n // Extract the 'withdraw-id' parameter from the search parameters\n const id: Nullable = search.get('withdraw-id');\n // Fetch the withdrawal details using the 'withdraw-id'\n const { error, refetch, withdraw, isLoading } = useWithdrawalById({\n id: id ? (parseToBigInt(id) as bigint) : undefined,\n });\n\n // If the withdrawal details are still loading, render a skeleton loader\n if (isLoading) {\n return
;\n }\n\n // If there is an error fetching the withdrawal details, render an error card\n if (error) {\n return ;\n }\n\n // If the withdrawal details are successfully fetched, render the transaction result\n return ;\n}\n","import styles from './styles.module.scss';\nimport WithdrawResponseContent from './Content';\nimport { usePathname, useSearchParams } from '@starsoft/common/hooks';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport { Navigate } from '@starsoft/common/components';\n\n/**\n * WithdrawResponse Component\n * This component handles the response view for the withdrawal process.\n *\n * Constants & Hooks:\n * - pathname: Retrieved from usePathname hook, represents the current path.\n * - search: Retrieved from useSearchParams hook, represents the URL search parameters.\n * - id: Extracted from search parameters, represents the withdrawal ID.\n *\n * Logic scope:\n * - Checks if the withdrawal ID is present in the search parameters.\n * - If the ID is not present, navigates back to the current pathname.\n * - If the ID is present, renders the WithdrawResponseContent component.\n *\n * @returns {JSX.Element} The response content for the withdrawal process or a navigation component.\n *\n * @example\n * // If the URL contains the search parameter 'withdraw-id', it returns:\n *
\n * \n *
\n * // If the URL does not contain the search parameter 'withdraw-id', it returns:\n * \n */\nexport default function WithdrawResponse() {\n // Retrieve the current pathname using the usePathname hook\n const pathname: string = usePathname();\n // Retrieve the URL search parameters using the useSearchParams hook\n const search: URLSearchParams = useSearchParams();\n // Extract the 'withdraw-id' parameter from the search parameters\n const id: Nullable = search.get('withdraw-id');\n\n // If the 'withdraw-id' parameter is not present, navigate back to the current pathname\n if (!id) {\n return ;\n }\n\n // If the 'withdraw-id' parameter is present, render the WithdrawResponseContent component\n return (\n
\n \n
\n );\n}\n","import { Input } from '@starsoft/common/components';\nimport { ConfirmationMethodCardPropsIndicatorProps } from './props';\n\n/**\n * ConfirmationMethodCardPropsIndicator component that renders a radio input indicator\n * for confirmation method selection cards\n *\n * @component\n * @param {Object} props - Component props\n * @param {boolean} props.isLoading - Whether the indicator is in loading state\n * @param {boolean} props.selected - Whether this indicator is selected\n * @returns {JSX.Element} Radio input component with loading and selected states\n */\nexport default function ConfirmationMethodCardPropsIndicator({\n isLoading,\n selected,\n}: ConfirmationMethodCardPropsIndicatorProps) {\n return ;\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport ConfirmationMethodCardPropsIndicator from '../Indicator';\nimport { memo } from 'react';\n\nfunction ConfirmationMethodCardSkeleton() {\n return (\n
\n
\n
\n

\n
\n

\n

\n

\n

\n
\n \n
\n
\n );\n}\n\nexport default memo(ConfirmationMethodCardSkeleton);\n","import { ConfirmationMethodCardProps } from './props';\nimport styles from './styles.module.scss';\nimport ConfirmationMethodCardPropsIndicator from './Indicator';\nimport ConfirmationMethodCardSkeleton from './Skeleton';\nimport { memo } from 'react';\n\n/**\n * ConfirmationMethodCard component that displays a selectable card for confirmation methods\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.label - Label text to display in the card\n * @param {bigint} props.value - Value associated with this confirmation method\n * @param {(value: bigint) => void} props.onClick - Callback function when card is clicked\n * @param {boolean} props.selected - Whether this card is currently selected\n * @param {boolean} props.isLoading - Whether the card is in loading state\n * @returns {JSX.Element} Card component with label and selection indicator\n */\nfunction ConfirmationMethodCard({\n label,\n value,\n onClick,\n selected,\n isLoading,\n}: ConfirmationMethodCardProps) {\n /**\n * Handles click events on the card\n * Calls the onClick callback with the card's value if provided\n */\n function handleClick() {\n if (onClick) {\n onClick(value);\n }\n }\n\n // Show skeleton loader while loading\n if (isLoading) {\n return ;\n }\n\n return (\n \n
\n
\n

{label}

\n
\n \n
\n
\n );\n}\n\nexport default memo(ConfirmationMethodCard);\n","import { ErrorCard, FormGroup } from '@starsoft/common/components';\nimport { PaginatedResponse, UserEmail } from '@starsoft/common/models';\nimport { MethodSelectProps } from '../props';\nimport { useCallback, useMemo } from 'react';\n\nimport ConfirmationMethodCard from '../Card';\n\nimport styles from './styles.module.scss';\nimport { useUserEmails } from '../../../../api';\nimport { useTranslation } from '../../../../hooks';\n\n/**\n * Component that renders a list of user email confirmation methods to select from\n *\n * @component\n * @param {Object} props - Component props\n * @param {Function} props.callback - Callback function called when an email is selected\n * @param {bigint} props.currentId - Currently selected email ID\n * @returns {JSX.Element} Form group containing email selection cards\n */\nexport default function ConfirmationMethodSelectEmail({\n callback,\n currentId,\n}: MethodSelectProps) {\n const { t } = useTranslation('common');\n\n /**\n * Callback function called when emails are successfully fetched\n * Automatically selects the primary email if available\n *\n * @param {PaginatedResponse} data - Paginated response containing user emails\n */\n function externalOnSuccess(data: PaginatedResponse) {\n callback(data?.data?.find(userEmail => userEmail?.primary)?.id);\n }\n\n // Hook to fetch user emails with success callback\n const { emails, isLoading, error, refetch } = useUserEmails({\n externalOnSuccess,\n });\n\n /**\n * Handles selection of an email method\n * Calls the parent callback with selected email ID\n *\n * @param {bigint} emailId - ID of the selected email\n */\n const handleSetUserEmail = useCallback(\n (emailId: bigint) => {\n callback(emailId);\n },\n [callback],\n );\n\n /**\n * Memoized list of email selection cards\n * Each card displays an email address and handles selection\n */\n const Cards = useMemo(\n () =>\n emails?.data?.map(email => (\n \n )),\n [emails, currentId, handleSetUserEmail],\n );\n\n /**\n * Memoized list of skeleton loading cards\n * Displayed while emails are being fetched\n */\n const Skeletons = useMemo(\n () =>\n Array.from({ length: 3 })?.map((_, index) => (\n \n )),\n [],\n );\n\n // Show error card if email fetch failed\n if (error) {\n return ;\n }\n\n return (\n \n
{isLoading ? Skeletons : Cards}
\n \n );\n}\n","import styles from './styles.module.scss';\nimport ConfirmationMethodSelectEmail from './Emails';\nimport { ConfirmationMethodSelectProps } from './props';\n\n/**\n * Component that renders a confirmation method selection interface\n * Displays a title and email selection component\n *\n * @component\n * @param {Object} props - Component props\n * @param {string} props.title - Title text to display above selection\n * @param {bigint|null} props.currentId - Currently selected method ID\n * @param {Function} props.onEmailSelect - Callback when email is selected\n * @param {boolean} props.withoutPadding - Whether to remove container padding\n * @returns {JSX.Element} Container with title and email selection component\n */\nexport default function ConfirmationMethodSelect({\n title,\n currentId,\n onEmailSelect,\n withoutPadding,\n}: ConfirmationMethodSelectProps) {\n return (\n \n

{title}

\n \n
\n );\n}\n","import { useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useTranslation } from '../../../../../../hooks';\nimport { WithdrawFormCreateDto } from '../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport ConfirmationMethodSelect from '../../../../../Confirmation/MethodSelect';\n\n/**\n * TransactionsModalsWithdrawContentConfirmation Component\n * This component is responsible for rendering a confirmation method selection interface\n * during the withdrawal process. It utilizes translation for labels and manages form state\n * using React Hook Form.\n *\n * @returns {JSX.Element} The rendered component for selecting a confirmation method.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsWithdrawContentConfirmation() {\n // Retrieve the translation function for the 'common' namespace\n const { t } = useTranslation('common');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Watch the 'emailId' field in the form\n const current: bigint | undefined = watch('emailId');\n\n /**\n * handleSelectEmail Function\n * This function updates the selected email ID in the form.\n *\n * @param {bigint} emailId - The email ID selected by the user.\n * @returns {void}\n *\n * @example\n * handleSelectEmail(12345678901234567890n);\n */\n const handleSelectEmail = useCallback(\n (emailId: bigint) => {\n setValue('emailId', emailId as never, { shouldDirty: true });\n },\n [setValue],\n );\n\n // Render the ConfirmationMethodSelect component with the necessary props\n return (\n \n );\n}\n","import { useSendWithdrawalCode } from '../../../../../../api';\nimport { useFormContext } from 'react-hook-form';\nimport { useTranslation } from '../../../../../../hooks';\nimport { WithdrawFormCreateDto } from '../../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\nimport { ConfirmationCode } from '../../../../../Confirmation/ConfirmationCode';\n\n/**\n * TransactionsModalsWithdrawContentConfirmationCode Component\n * This component is responsible for handling the confirmation code input and sending the withdrawal code.\n * It utilizes translation for labels and manages form state using React Hook Form.\n *\n * @returns {JSX.Element} The rendered component for entering and sending a confirmation code.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function TransactionsModalsWithdrawContentConfirmationCode() {\n // Retrieve the translation function for the 'withdraw' namespace\n const { t } = useTranslation('withdraw');\n // Retrieve form context methods for watching and setting form values\n const { watch, setValue } = useFormContext();\n // Watch the 'emailId' field in the form\n const emailId: bigint = watch('emailId');\n\n // Destructure the sendWithdrawalCode function and its state from the custom hook\n const {\n isSuccess,\n sendWithdrawalCode,\n isLoading: isLoadingValidationCode,\n } = useSendWithdrawalCode();\n\n /**\n * handleSendSms Function\n * This function triggers the sending of the withdrawal code via SMS.\n *\n * @returns {void}\n *\n * @example\n * handleSendSms();\n */\n function handleSendSms() {\n sendWithdrawalCode({\n emailId,\n });\n }\n\n /**\n * handleChange Function\n * This function updates the 'code' field in the form with the provided value.\n *\n * @param {string} value - The new value for the 'code' field.\n * @returns {void}\n *\n * @example\n * handleChange('123456');\n */\n function handleChange(value: string) {\n setValue('code', value);\n }\n\n // Render the ConfirmationCode component with the necessary props\n return (\n \n );\n}\n","export enum UserPaymentDetailsStatus {\n Created = 'created',\n Verified = 'verified',\n Rejected = 'rejected',\n}\n","import { Button, Input } from '@starsoft/common/components';\nimport { UserPaymentDetailsCardIndicatorProps } from './props';\nimport { useTranslation } from '../../../../../../../hooks';\nimport { UserPaymentDetailsStatus } from '../../../../../../../enums';\n\n/**\n * UserPaymentDetailsCardIndicator Component\n * This component is responsible for rendering an indicator within the user payment details card.\n * It displays a button if the payment details status is rejected, otherwise, it displays a radio input.\n *\n * @param {UserPaymentDetailsCardIndicatorProps} props - The properties for the component.\n * @param {boolean} props.isLoading - Indicates if the data is still loading.\n * @param {boolean} props.selected - Indicates if the card is currently selected.\n * @param {object} props.userPaymentDetails - The user payment details object.\n *\n * @returns {JSX.Element} The rendered component displaying the appropriate indicator.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsCardIndicator({\n isLoading,\n selected,\n userPaymentDetails,\n}: UserPaymentDetailsCardIndicatorProps) {\n const { t } = useTranslation('common');\n\n // If the user payment details status is rejected, display a button with the 'edit_label' text\n if (userPaymentDetails?.status == UserPaymentDetailsStatus.Rejected) {\n return (\n \n );\n }\n\n // Otherwise, display a radio input indicating the selected state and loading status\n return ;\n}\n","import { UserPaymentDetailsStatus } from '../../../../../../../enums';\n\n/**\n * getCardIcon function\n * This function is responsible for returning the appropriate icon class based on the user payment details status.\n *\n * @param {UserPaymentDetailsStatus} status - The status of the user payment details.\n * @returns {string} The icon class corresponding to the given status.\n *\n * @example\n * // Usage example:\n * const iconClass = getCardIcon(UserPaymentDetailsStatus.Created);\n */\nexport function getCardIcon(status: UserPaymentDetailsStatus): string {\n switch (status) {\n case UserPaymentDetailsStatus.Created:\n return 'fa-solid fa-clock';\n case UserPaymentDetailsStatus.Verified:\n return 'fa-solid fa-badge-check';\n case UserPaymentDetailsStatus.Rejected:\n return 'fa-solid fa-circle-exclamation';\n }\n}\n","import { getCardIcon } from './helper';\nimport styles from './styles.module.scss';\nimport { UserPaymentDetailsCardProps } from '../props';\nimport { useTranslation } from '../../../../../../../hooks';\nimport { UserPaymentDetailsStatus } from '../../../../../../../enums';\nimport { SettingsService } from '@starsoft/common/services/SettingsService';\n\nexport default function UserPaymentDetailsCardStatus({\n userPaymentDetails,\n}: Pick) {\n const { t } = useTranslation('common');\n\n return (\n
\n \n

\n {t(\n `user_payment_details_${userPaymentDetails?.status === UserPaymentDetailsStatus.Created ? `${userPaymentDetails?.type?.id}_` : ''}${userPaymentDetails?.status}_label`,\n {\n app_provider: SettingsService.env.PROVIDER,\n },\n )}\n

\n
\n );\n}\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\nimport UserPaymentDetailsCardIndicator from '../Indicator';\n\nexport default function UserPaymentDetailsCardSkeleton() {\n return (\n
\n
\n
\n

\n
\n

\n

\n

\n

\n
\n \n
\n
\n );\n}\n","import { UserPaymentDetailsCardProps } from './props';\nimport styles from './styles.module.scss';\nimport UserPaymentDetailsCardIndicator from './Indicator';\nimport UserPaymentDetailsCardStatus from './Status';\nimport UserPaymentDetailsCardSkeleton from './Skeleton';\nimport { memo } from 'react';\nimport { Collapse } from '@mui/material';\nimport { useTranslation } from '../../../../../../hooks';\nimport { UserPaymentDetailsTypeId } from '../../../../../../enums';\n\n/**\n * UserPaymentDetailsCard Component\n * This component is responsible for rendering a card that displays user payment details.\n * It handles different types of payment details and provides a visual representation\n * based on the selected state and loading status.\n *\n * @param {UserPaymentDetailsCardProps} props - The properties for the component.\n * @param {boolean} props.isLoading - Indicates if the data is still loading.\n * @param {object} props.userPaymentDetails - The user payment details object.\n * @param {boolean} props.selected - Indicates if the card is currently selected.\n * @param {function} props.onClick - Callback function to handle click events.\n *\n * @returns {JSX.Element} The rendered component displaying the user payment details card.\n *\n * @example\n * // Usage example:\n * function(details)}\n * />\n */\nfunction UserPaymentDetailsCard({\n isLoading,\n userPaymentDetails,\n selected,\n onClick,\n}: UserPaymentDetailsCardProps) {\n const { t } = useTranslation('common');\n\n /**\n * Handles the click event on the card.\n * Calls the onClick callback with the user payment details.\n */\n function handleClick() {\n onClick?.(userPaymentDetails);\n }\n\n /**\n * Retrieves the value to be displayed on the card based on the payment type.\n *\n * @returns {string | undefined} The value to display, such as a masked key or account number.\n */\n function getValue(): string | undefined {\n switch (userPaymentDetails?.type?.id?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return userPaymentDetails?.pix?.maskedKey;\n case UserPaymentDetailsTypeId.Imps?.toString():\n return userPaymentDetails?.imps?.accountNumber;\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n return userPaymentDetails?.bankAccount?.account;\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n return userPaymentDetails?.bankAccount?.account;\n }\n }\n\n /**\n * Retrieves the label to be displayed on the card based on the payment type.\n *\n * @returns {string | undefined} The label to display, such as 'imps_label' or 'bank_account_label'.\n */\n function getLabel(): string | undefined {\n switch (userPaymentDetails?.type?.id?.toString()) {\n case UserPaymentDetailsTypeId.Pix?.toString():\n return t(`${userPaymentDetails?.pix?.type?.toLowerCase()}`);\n case UserPaymentDetailsTypeId.Imps?.toString():\n return t('imps_label');\n case UserPaymentDetailsTypeId.ArgentineBankAccount?.toString():\n case UserPaymentDetailsTypeId.MexicanBankAccount?.toString():\n case UserPaymentDetailsTypeId.NigerianBankAccount?.toString():\n case UserPaymentDetailsTypeId.SingaporeBankAccount?.toString():\n case UserPaymentDetailsTypeId.SouthAfricaBankAccount?.toString():\n return t('bank_account_label');\n }\n }\n\n // If the data is still loading, display a skeleton component\n if (isLoading) {\n return ;\n }\n\n // Render the user payment details card\n return (\n \n
\n
\n

{getValue()}

\n

{getLabel()}

\n
\n \n
\n\n \n
\n \n
\n \n
\n \n
\n );\n}\n\nexport default memo(UserPaymentDetailsCard);\n","import styles from '../styles.module.scss';\nimport skeleton from './styles.module.scss';\n\nexport default function UserPaymentDetailsKycCheckSkeleton() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n );\n}\n","import styles from './styles.module.scss';\nimport { ErrorCard } from '@starsoft/common/components';\nimport {\n useKycMeByOriginIdWithOrigin,\n useLottiePlayer,\n useSearchParams,\n useTranslation,\n} from '@starsoft/common/hooks';\nimport UserPaymentDetailsKycCheckSkeleton from './Skeleton';\nimport { UserPaymentDetailsKycCheckProps } from './props';\nimport { KYCStatus } from '@starsoft/common/enums';\n\n/**\n * UserPaymentDetailsKycCheck Component\n * This component is responsible for displaying the KYC (Know Your Customer) status of a user.\n * It shows different messages and animations based on the KYC status.\n *\n * @param {UserPaymentDetailsKycCheckProps} props - The properties for the component.\n * @param {boolean} props.showOnlyDescription - Flag indicating whether to show only the description.\n *\n * @returns {JSX.Element} The rendered component displaying KYC status or an error card if an error occurs.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsKycCheck({\n showOnlyDescription,\n}: UserPaymentDetailsKycCheckProps) {\n const { t } = useTranslation('withdraw');\n const search: URLSearchParams = useSearchParams();\n\n const { error, isPending, refetch, kyc } = useKycMeByOriginIdWithOrigin();\n\n const { lottieAnimationRef } = useLottiePlayer({\n path: `/${!kyc || (!!kyc && kyc?.status !== KYCStatus.Verified) ? 'kyc-rejected' : 'empty-search'}.json`,\n dependecyArray: [isPending],\n });\n\n /**\n * getLabel Function\n * Determines the label to display based on the KYC status and search parameters.\n *\n * @returns {string} The label key to be translated.\n */\n function getLabel() {\n if (!kyc) {\n return 'kyc_required_label';\n }\n\n if (kyc?.status !== KYCStatus.Verified) {\n return 'verify_kyc_label';\n }\n\n if (!!search.get('status')) {\n return 'kyc_success_withdraw_title';\n }\n\n return 'empty_payment_account';\n }\n\n /**\n * getDescription Function\n * Determines the description to display based on the KYC status and search parameters.\n *\n * @returns {string} The description key to be translated.\n */\n function getDescription() {\n if (!kyc || kyc?.status !== KYCStatus.Verified) {\n return 'kyc_required_description';\n }\n\n if (!!search.get('status')) {\n return 'kyc_success_withdraw_description';\n }\n\n return 'empty_payment_description';\n }\n\n if (isPending) {\n return ;\n }\n\n if (error) {\n return ;\n }\n\n if (showOnlyDescription) {\n return (\n
\n
\n {t(getDescription())}\n
\n
\n );\n }\n\n return (\n
\n
\n
\n
{t(getLabel())}
\n
\n {t(getDescription())}\n
\n
\n
\n );\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserPaymentDetailsMeQueryKeyProps } from './props';\nimport { PaginatedResponse, UserPaymentDetails } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchUserPaymentDetailsMe(\n { queryKey }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n) {\n const { typeId, limit, page } = queryKey[1];\n\n const response = await axiosInstance.get<\n PaginatedResponse\n >('/user-payment-details/me', {\n params: {\n limit,\n page,\n typeId,\n },\n });\n return response.data;\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserPaymentDetailsQueryKeys } from '../../../queryKeys';\nimport { UseUserPaymentDetailsMeQueryKeyProps } from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchUserPaymentDetailsMe } from './service';\nimport {\n GenericError,\n PaginatedResponse,\n UserPaymentDetails,\n} from '@starsoft/common/models';\nimport { useState } from 'react';\nimport { useAxiosInstance, usePaginatedQuery } from '@starsoft/common/hooks';\nimport {\n UserPaymentDetailsFetchTypeProps,\n UseUserPaymentDetailsMeProps,\n} from '../props';\nimport { UserPaymentDetailsInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to fetch paginated user payment details for the current user\n *\n * This hook handles fetching payment details with pagination support, filtering by payment type,\n * and managing the query state. It uses React Query for data fetching and caching.\n *\n * @template T - Type extending UserPaymentDetailsFetchTypeProps to specify valid payment types\n * @param {UseUserPaymentDetailsMeProps} options - Optional configuration object\n * @param {boolean} options.enabled - Optional flag to enable/disable the query (defaults to true)\n * @param {T} options.paymentType - Optional payment type to filter results\n *\n * @returns {Object} An object containing:\n * - data: The paginated payment details response\n * - pagination callbacks from usePaginatedQuery hook\n * - isPending: 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 */\nexport function useUserPaymentDetailsMeDefault<\n T extends UserPaymentDetailsFetchTypeProps,\n>(options?: UseUserPaymentDetailsMeProps) {\n const [page, setPage] = useState(1);\n const { enabled = true, paymentType } = options ?? {};\n const axiosInstance: AxiosInstance = useAxiosInstance();\n\n // Prepare filter object for pagination and type filtering\n const filter: UserPaymentDetailsInputDto = {\n typeId: paymentType,\n page,\n limit: 10,\n };\n\n const queryKey: UseUserPaymentDetailsMeQueryKeyProps = [\n UserPaymentDetailsQueryKeys.MeDefault,\n filter,\n ];\n\n const { data, isPending, isError, error, refetch, isFetching, fetchStatus } =\n useQuery<\n PaginatedResponse,\n AxiosError,\n PaginatedResponse,\n UseUserPaymentDetailsMeQueryKeyProps\n >({\n enabled,\n queryKey,\n queryFn: queryContext =>\n fetchUserPaymentDetailsMe(queryContext, axiosInstance),\n });\n\n // Setup pagination handling with the usePaginatedQuery hook\n const callbacks = usePaginatedQuery({\n data,\n page,\n setPage,\n queryParams: {\n paymentType,\n },\n });\n\n return {\n data,\n ...callbacks,\n isPending: isPending && fetchStatus !== 'idle',\n isFetching,\n isError,\n error,\n refetch,\n };\n}\n","import { QueryFunctionContext } from '@tanstack/react-query';\nimport { UseUserPaymentDetailsMeQueryKeyProps } from './props';\nimport { PaginatedResponse, UserPaymentDetails } from '@starsoft/common/models';\nimport { AxiosInstance } from 'axios';\n\nexport async function fetchUserPaymentDetailsMe(\n {\n queryKey,\n pageParam,\n }: QueryFunctionContext,\n axiosInstance: AxiosInstance,\n) {\n const { typeId, limit, page } = queryKey[1];\n\n const response = await axiosInstance.get<\n PaginatedResponse\n >('/user-payment-details/me', {\n params: {\n limit,\n page: page ?? pageParam,\n typeId,\n },\n });\n return response.data;\n}\n","import { InfiniteData } from '@tanstack/react-query';\nimport { useInfiniteQuery } from '@starsoft/common/services/query-client';\nimport { UserPaymentDetailsQueryKeys } from '../../../queryKeys';\nimport { UseUserPaymentDetailsMeQueryKeyProps } from './props';\nimport { AxiosError, AxiosInstance } from 'axios';\nimport { fetchUserPaymentDetailsMe } from './service';\nimport {\n GenericError,\n PaginatedResponse,\n UserPaymentDetails,\n} from '@starsoft/common/models';\nimport { useMemo } from 'react';\nimport {\n useAxiosInstance,\n useInfiniteQueryCallbacks,\n useInfiniteQueryReset,\n} from '@starsoft/common/hooks';\nimport {\n UserPaymentDetailsFetchTypeProps,\n UseUserPaymentDetailsMeProps,\n} from '../props';\nimport { UserPaymentDetailsInputDto } from '@starsoft/common/dto';\n\n/**\n * Custom hook to fetch infinite-scrolling user payment details for the current user\n *\n * This hook handles fetching paginated payment details with infinite scroll support,\n * filtering by payment type, and managing the query state. It uses React Query's\n * infinite query capabilities for data fetching, caching and state management.\n *\n * @template T - Type extending UserPaymentDetailsFetchTypeProps to specify valid payment types\n * @param {UseUserPaymentDetailsMeProps} options - Optional configuration object\n * @param {T} options.paymentType - Optional payment type to filter results\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 raw infinite query data structure\n * - userPaymentDetails: Flattened array of all payment details across pages\n * - isPending: Boolean indicating if initial fetch is in progress (excluding idle state)\n * - hasNextPage: Boolean indicating if more pages are available\n * - isFetchingNextPage: Boolean indicating if next page fetch is in progress\n * - fetchNextPage: Function to manually fetch next page\n * - Other infinite query state and helper methods\n */\nexport function useUserPaymentDetailsMeInfinity<\n T extends UserPaymentDetailsFetchTypeProps,\n>(options?: UseUserPaymentDetailsMeProps) {\n const { paymentType, enabled = true } = options ?? {};\n\n const filter: UserPaymentDetailsInputDto = {\n typeId: paymentType,\n limit: 10,\n };\n const axiosInstance: AxiosInstance = useAxiosInstance();\n const queryKey: UseUserPaymentDetailsMeQueryKeyProps = [\n UserPaymentDetailsQueryKeys.MeInfinity,\n filter,\n ];\n\n const { getNextPageParam, getPreviousPageParam } =\n useInfiniteQueryCallbacks();\n useInfiniteQueryReset(queryKey);\n\n const { data, isPending, fetchStatus, ...query } = useInfiniteQuery<\n PaginatedResponse,\n AxiosError,\n InfiniteData>,\n UseUserPaymentDetailsMeQueryKeyProps\n >({\n queryKey,\n queryFn: queryContext =>\n fetchUserPaymentDetailsMe(queryContext, axiosInstance),\n enabled,\n getNextPageParam,\n getPreviousPageParam,\n initialPageParam: 1,\n });\n\n // Flatten the paginated data into a single array of payment details\n const userPaymentDetails: UserPaymentDetails[] = useMemo(\n () => data?.pages?.flatMap(page => page?.data),\n [data],\n );\n\n return {\n ...query,\n data,\n userPaymentDetails,\n isPending: isPending && fetchStatus !== 'idle',\n };\n}\n","import {\n UserPaymentDetailsFetchTypeProps,\n UseUserPaymentDetailsMeProps,\n UseUserPaymentDetailsReturnType,\n} from './props';\nimport { useUserPaymentDetailsMeDefault } from './useUserPaymentDetailsMeDefault';\nimport { useUserPaymentDetailsMeInfinity } from './useUserPaymentDetailsMeInfinity';\n\nexport function useUserPaymentDetailsMe<\n T extends UserPaymentDetailsFetchTypeProps | undefined,\n>({\n type,\n enabled = true,\n paymentType,\n}: UseUserPaymentDetailsMeProps): UseUserPaymentDetailsReturnType {\n const useUserPaymentDetailsMeInfinite = useUserPaymentDetailsMeInfinity({\n type,\n paymentType,\n enabled: enabled && type === 'infinity',\n });\n const useUserPaymentDetailsMeDefaultQuery = useUserPaymentDetailsMeDefault({\n type,\n paymentType,\n enabled: enabled && type === 'default',\n });\n\n if (type == 'infinity') {\n return useUserPaymentDetailsMeInfinite as UseUserPaymentDetailsReturnType;\n }\n\n return useUserPaymentDetailsMeDefaultQuery as UseUserPaymentDetailsReturnType;\n}\n","import styles from './styles.module.scss';\nimport { Button, ErrorCard } from '@starsoft/common/components';\nimport {\n MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport UserPaymentDetailsCard from './Card';\nimport { useFormContext } from 'react-hook-form';\nimport {\n useInfiniteScroll,\n useKycMeByOriginIdWithOrigin,\n useTransactionsNavigation,\n useTranslation,\n useUserPaymentTypeIdByCoinId,\n useWithdrawSearchParams,\n} from '@starsoft/common/hooks';\nimport UserPaymentDetailsKycCheck from './KycCheck';\nimport { AxiosError } from 'axios';\nimport { GenericError, UserPaymentDetails } from '@starsoft/common/models';\nimport { Nullable } from '@starsoft/common/interfaces';\nimport {\n CommonModalsKey,\n KYCStatus,\n UserPaymentDetailsStatus,\n} from '@starsoft/common/enums';\nimport { useUserPaymentDetailsMe } from '../../../../../api';\nimport { WithdrawFormCreateDto } from '../../../../../dto/withdrawals/baseWithdrawalInputDto/withdraw-create-form.dto';\n\n/**\n * UserPaymentDetailsContent Component\n * This component is responsible for rendering the user payment details content.\n * It handles the display of user payment details, KYC status, and provides functionality for adding new user payment details.\n *\n * @returns {JSX.Element} The rendered component displaying user payment details or an error card if an error occurs.\n *\n * @example\n * // Usage example:\n * \n */\nexport default function UserPaymentDetailsContent() {\n const { t } = useTranslation('common');\n const isFirstMount: MutableRefObject = useRef(true);\n const { setValue, watch } = useFormContext();\n const userPaymentDetailSelectedAccount = watch('paymentDetailsId');\n const { navigateToTransactionModal } = useTransactionsNavigation();\n\n const {\n kyc,\n error: errorKyc,\n refetch: refetchKyc,\n isPending: isPendingKyc,\n } = useKycMeByOriginIdWithOrigin();\n const paymentType: Nullable = useUserPaymentTypeIdByCoinId();\n const {\n userPaymentDetails,\n error: errorUserPaymentDetailsMe,\n refetch: refetchUserPaymentDetailsMe,\n isLoading: isLoadingUserPaymentDetailsMe,\n hasNextPage: hasNextPageUserPaymentDetailsMe,\n fetchNextPage: fetchNextPageUserPaymentDetailsMe,\n isFetchingNextPage: isFetchingNextPageUserPaymentDetailsMe,\n } = useUserPaymentDetailsMe({\n paymentType,\n type: 'infinity',\n enabled: !!kyc,\n });\n const error: AxiosError = errorUserPaymentDetailsMe || errorKyc;\n const isLoading: boolean = isLoadingUserPaymentDetailsMe || isPendingKyc;\n const isWithoutUserPaymentDetails: boolean =\n !isLoading && (!userPaymentDetails || userPaymentDetails?.length == 0);\n\n const { ref } = useInfiniteScroll({\n hasMore: hasNextPageUserPaymentDetailsMe,\n isLoading: isLoading || isFetchingNextPageUserPaymentDetailsMe,\n loadMore: fetchNextPageUserPaymentDetailsMe,\n });\n\n const { handleSetWithdrawSearchParams } = useWithdrawSearchParams();\n\n /**\n * onButtonClick Function\n * This function handles the button click event.\n * It navigates to the deposit modal if KYC is not verified, otherwise sets the withdraw search params.\n */\n function onButtonClick() {\n if (!kyc || kyc?.status !== KYCStatus.Verified) {\n navigateToTransactionModal(CommonModalsKey.Deposit);\n return;\n }\n\n handleSetWithdrawSearchParams('user-payment', 'new');\n }\n\n /**\n * handleSelectAccount Function\n * This function handles the selection of a user account.\n * It sets the payment details ID in the form context based on the account status.\n *\n * @param {UserPaymentDetails} userAccount - The user account object containing payment details.\n *\n * @example\n * handleSelectAccount({ id: 1, status: UserPaymentDetailsStatus.Verified });\n */\n const handleSelectAccount = useCallback(\n (userAccount: UserPaymentDetails) => {\n switch (userAccount?.status) {\n case UserPaymentDetailsStatus.Created:\n case UserPaymentDetailsStatus.Verified:\n setValue('paymentDetailsId', userAccount?.id?.toString(), {\n shouldDirty: true,\n });\n break;\n case UserPaymentDetailsStatus.Rejected:\n handleSetWithdrawSearchParams(\n 'user-payment',\n userAccount?.id?.toString(),\n );\n }\n },\n [handleSetWithdrawSearchParams, setValue],\n );\n\n /**\n * handleError Function\n * This function handles the error state by refetching the user payment details and KYC data.\n */\n function handleError() {\n if (errorUserPaymentDetailsMe) {\n refetchUserPaymentDetailsMe();\n }\n\n if (errorKyc) {\n refetchKyc();\n }\n }\n\n /**\n * getButtonLabel Function\n * This function returns the appropriate button label based on the KYC status and user payment details.\n *\n * @returns {string} The button label.\n *\n * @example\n * const label = getButtonLabel();\n */\n function getButtonLabel(): string {\n if (!kyc) {\n return 'withdraw:create_kyc_button';\n } else if (!!kyc && kyc?.status !== KYCStatus.Verified) {\n return 'withdraw:verify_kyc_button';\n }\n\n return isWithoutUserPaymentDetails\n ? 'create_user_account_label'\n : 'add_user_account_label';\n }\n\n /**\n * getTitle Function\n * This function returns the appropriate title based on the KYC status.\n *\n * @returns {string} The title.\n *\n * @example\n * const title = getTitle();\n */\n function getTitle(): string {\n if (!kyc) {\n return 'withdraw:create_kyc_button';\n } else if (!!kyc && kyc?.status !== KYCStatus.Verified) {\n return 'withdraw:verify_kyc_button';\n }\n\n return 'withdraw_account_select_label';\n }\n\n /**\n * Cards Memo\n * This memoized array of JSX elements represents the user payment details cards.\n *\n * @returns {JSX.Element[]} The array of user payment details cards.\n *\n * @example\n * const cards = Cards;\n */\n const Cards: JSX.Element[] = useMemo(\n () =>\n userPaymentDetails?.map((userPaymentDetail, index) => (\n \n )),\n [userPaymentDetails, handleSelectAccount, userPaymentDetailSelectedAccount],\n );\n\n /**\n * Skeletons Memo\n * This memoized array of JSX elements represents the skeleton loading state for user payment details cards.\n *\n * @returns {JSX.Element[]} The array of skeleton loading state cards.\n *\n * @example\n * const skeletons = Skeletons;\n */\n const Skeletons: JSX.Element[] = useMemo(\n () =>\n Array.from({ length: 5 }).map((_, index) => (\n \n )),\n [],\n );\n\n /**\n * onFetchUserPaymentDetails Function\n * This function handles the fetching of user payment details on component mount.\n * It sets the withdraw search params if there are no user payment details and it is the first mount.\n */\n function onFetchUserPaymentDetails() {\n if (!isWithoutUserPaymentDetails || !isFirstMount.current || !kyc) {\n return;\n }\n\n isFirstMount.current = false;\n handleSetWithdrawSearchParams('user-payment', 'new');\n }\n\n // useEffect hook to execute onFetchUserPaymentDetails when the component mounts\n useEffect(onFetchUserPaymentDetails, [\n handleSetWithdrawSearchParams,\n isWithoutUserPaymentDetails,\n kyc,\n ]);\n\n // If there is an error, render the ErrorCard component with the error and refetch function\n if (error) {\n return ;\n }\n\n // Render the user payment details content\n return (\n
\n
\n {isLoading ? (\n
\n ) : (\n t(getTitle())\n )}\n
\n {(isWithoutUserPaymentDetails ||\n (!kyc && !isLoading) ||\n (!!kyc && kyc?.status !== KYCStatus.Verified)) && (\n \n )}\n
\n {isLoading ? Skeletons : Cards}\n {isFetchingNextPageUserPaymentDetailsMe && Skeletons}\n
\n
\n \n \n {t(getButtonLabel())}\n \n
\n
\n );\n}\n","// Importing components for different steps of the withdrawal process\nimport TransactionModalsWithdrawContentTransactionForm from './Form';\nimport WithdrawResponse from './Response';\nimport TransactionsModalsWithdrawContentConfirmation from './Confirmation';\nimport TransactionsModalsWithdrawContentConfirmationCode from './ConfirmationCode';\nimport { useWithdrawSearchParams } from '@starsoft/common/hooks';\nimport { WithdrawStep } from '@starsoft/common/enums';\nimport UserPaymentDetailsContent from '../../../Common/Layout/UserPaymentDetails';\n\n/**\n * TransactionModalsWithdrawContent Component\n * This component renders different content based on the current withdrawal step.\n *\n * Constants & Hooks:\n * - transactionStep: Retrieved from useWithdrawSearchParams hook, indicates the current step in the withdrawal process.\n *\n * Logic scope:\n * - Switches between different components based on the transactionStep value.\n *\n * @returns {JSX.Element} The component corresponding to the current withdrawal step.\n *\n * @example\n * // If the transactionStep is WithdrawStep.Form, it returns:\n * \n */\nexport default function TransactionModalsWithdrawContent() {\n // Destructuring transactionStep from the custom hook to determine the current step\n const { transactionStep } = useWithdrawSearchParams();\n\n // Switch statement to render the appropriate component based on the transaction step\n switch (transactionStep) {\n case WithdrawStep.Form:\n // Renders the form component for the withdrawal process\n return ;\n case WithdrawStep.UserPaymentDetails:\n // Renders the user payment details component\n return ;\n case WithdrawStep.Confirmation:\n // Renders the confirmation component\n return ;\n case WithdrawStep.ConfirmationCode:\n // Renders the confirmation code component\n return ;\n case WithdrawStep.Response:\n // Renders the response component after the withdrawal process\n return ;\n }\n}\n","import { useModal } from '@starsoft/common/hooks';\nimport TransactionsLayout from '../../Layout';\nimport TransactionModalsWithdrawContentLayout from './Layout';\nimport TransactionModalsWithdrawContent from './Content';\nimport { CommonModalsKey } from '@starsoft/common/enums';\nimport { TransactionModalWithdrawProps } from './props';\n\n/**\n * TransactionModalWithdraw Component\n * Renders a modal for handling withdrawal transactions. Uses a common transaction layout\n * and wraps withdrawal-specific content components.\n *\n * The component uses the useModal hook to handle modal state and callbacks for the withdrawal modal.\n *\n * @component\n * @returns {JSX.Element} A modal component with withdrawal transaction content\n *\n * @example\n * // The component is typically used in a modal context:\n * \n *\n * // The useModal hook returns callbacks like:\n * const modalCallbacks = {\n * onClose: () => void,\n * onBack: () => void,\n * isOpen: boolean\n * }\n */\nexport function TransactionModalWithdraw({\n originId,\n version,\n}: TransactionModalWithdrawProps) {\n const modalCallbacks = useModal(CommonModalsKey.Withdraw);\n\n return (\n \n \n \n \n \n );\n}\n","import { ModalLayout } from '@starsoft/common/components';\nimport { useSearchParams, useTranslation } from '@starsoft/common/hooks';\nimport UserPhoneNumberFormRenderer from './Form/Renderer';\nimport { CommonModalsKey } from '@starsoft/common/enums';\n\n/**\n * UserPhoneNumberModal Component\n * This component is responsible for rendering a modal for user phone number actions.\n * It uses the ModalLayout component to display the modal and includes a form renderer for phone number actions.\n *\n * @returns {JSX.Element} The rendered user phone number modal component.\n *\n * @example\n * // Usage example:\n * \n */\nexport function UserPhoneNumberModal() {\n // Translation hook for the 'account' namespace\n const { t } = useTranslation('account');\n\n // Hook to get search parameters from the URL\n const search: URLSearchParams = useSearchParams();\n\n // Get the phone number ID from the search parameters\n const phoneNumberId: string | undefined = search.get('phone-number-id');\n\n // Render the modal layout with the appropriate title and form renderer\n return (\n \n \n \n );\n}\n","export { Image } from './Image';\nexport { Animation } from './Animation/Fade';\nexport { StaggerAnimation } from './Animation/Stagger';\nexport { AutocompleteMenuSelector } from './AutocompleteMenuSelector';\nexport { filterOptions } from './AutocompleteMenuSelector/utils';\nexport { AutocompleteSelectorAccount } from './AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorAccount';\nexport { AutocompleteSelectorOptionCoinWithImage } from './AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorCoinWithImage';\nexport { AutocompleteSelectorOptionWithImage } from './AutocompleteMenuSelector/CustomOptions/AutocompleteSelectorOptionWithImage';\nexport { ChainOption } from './AutocompleteMenuSelector/CustomOptions/ChainOption';\nexport { BackButton } from './BackButton';\nexport { BarChartTooltip } from './BarChart/Tooltip';\nexport { BarChart } from './BarChart';\nexport { Button } from './Button';\nexport { Checkbox } from './Checkbox';\nexport { CircularProgress } from './CircularProgress';\nexport { CoinPicker } from './CoinPicker';\nexport { Copy } from './Copy';\nexport { CountrySelector } from './CountrySelector';\nexport { CurrencyInput } from './CurrencyInput';\nexport { DateRangePicker } from './DateRangePicker';\nexport { Drawer } from './Drawer';\nexport { ErrorCard } from './ErrorCard';\nexport { ErrorChip } from './ErrorChip';\nexport { FormGroup } from './FormGroup';\nexport { IconButton } from './IconButton';\nexport { InfiniteScrollLoader } from './InfinityScrollLoader';\nexport { Info } from './Info';\nexport { Input } from './Input';\nexport { Modal } from './Modal';\nexport { ModalHeader } from './Modal/Header';\nexport { default as CloseButton } from './Modal/Header/CloseButton';\nexport { NextNavigate } from './NextNavigate';\nexport { NavigationBreadcrumbs } from './NavigationBreadcrumbs';\nexport { NoDataComponent } from './NoDataComponent';\nexport { PaginationComponent } from './PaginationComponent';\nexport { PaginationWithProgress } from './PaginationWithProgress';\nexport { PieChart } from './PieChart';\nexport { Progress } from './Progress';\nexport { RichTooltip } from './RichTooltip';\nexport { Section } from './Section';\nexport { SelectInput } from './SelectInput';\nexport { SelectInputWithImage } from './SelectInput/SelectWithImage/SelectInputWithImage';\nexport { SelectOptionWithImage } from './SelectInput/SelectWithImage/SelectOptionWithImage';\nexport { SelectOptionWithHighlight } from './SelectInput/SelectWithImage/SelectOptionWithHighlight';\nexport { Slider } from './Slider';\nexport { TableGrid } from './TableGrid';\nexport { TableWithPagination } from './TableWithPagination';\nexport { Tabs } from './Tabs';\nexport { ToggleRender } from './ToggleRender';\nexport { ToolTip } from './Tooltip';\nexport { TransTextWithDefault } from './TransTextWithDefault';\nexport { TransWithDefault } from './TransWithDefault';\nexport { ValidateCodeInput } from './ValidateCodeInput';\nexport { default as Skeleton } from './Skeleton';\nexport { ModalLayout } from './Modal/Layout';\nexport { PreloadImages } from './PreloadImages';\nexport { PasswordInput } from './PasswordInput';\nexport { BarPasswordStrong } from './PasswordInput/BarPasswordStrong';\nexport { Switch } from './Switch';\nexport { ResendCodeButton } from './ResendCodeButton';\nexport { Counter } from './Counter';\nexport { PageDrawer } from './PageDrawer';\nexport { Steps } from './Steps';\nexport { DatePicker } from './DatePicker';\nexport {\n TransactionModalDeposit,\n SeeDeposit,\n SeeWithdrawal,\n TransactionModalWithdraw,\n} from './Transactions';\n\nexport { UserPhoneNumberModal } from './UserPhoneNumbers/Modals/UserPhoneNumberModal';\nexport { ConfirmationCode } from './Confirmation/ConfirmationCode';\nexport * from './Navigate';\nexport * from './Link';\nexport { default as EmptySearch } from './Empty';\nexport { DateRangeCard } from './DateRangeCard';\nexport { LottieOrImage } from './LottieOrImage';\n","import { useCallback, useEffect, useState } from 'react';\nimport { UseTimeAgoProps } from './props';\nimport { useTranslation } from '../useTranslation';\n\n/**\n * Custom hook to calculate and update the \"time ago\" string for a given date.\n * This hook provides a localized string representing how much time has passed since the given date.\n *\n * @param {UseTimeAgoProps} props - The properties for the hook.\n * @param {Date} props.date - The date to calculate the \"time ago\" from.\n * @returns {string} A string representing the time passed since the given date.\n *\n * @example\n * // Usage example:\n * const timeAgo = useTimeAgo({ date: new Date('2023-01-01') });\n */\nexport function useTimeAgo({ date }: UseTimeAgoProps): string {\n // Use the translation hook to get the translation function for the 'common' namespace\n const { t } = useTranslation('common');\n\n /**\n * Calculates the \"time ago\" string based on the current date and the provided date.\n * It returns a localized string indicating the time difference.\n *\n * @returns {string} The calculated \"time ago\" string.\n */\n const calculateTimeAgo = useCallback((): string => {\n if (!date) return '';\n\n const now = new Date().getTime();\n const diff = now - date.getTime();\n const minute = 60 * 1000;\n const hour = minute * 60;\n const day = hour * 24;\n const month = day * 30;\n const year = day * 365;\n\n switch (true) {\n case diff < minute:\n return t('time_ago_few_seconds');\n case diff < hour:\n const minutes = Math.round(diff / minute);\n if (minutes === 1) {\n return t('time_ago_a_minute');\n }\n return t('time_ago_minutes', { time: minutes });\n case diff < day:\n const hours = Math.round(diff / hour);\n if (hours === 1) {\n return t('time_ago_an_hour');\n }\n return t('time_ago_hours', { time: hours });\n case diff < month:\n const days = Math.round(diff / day);\n if (days === 1) {\n return t('time_ago_a_day');\n }\n return t('time_ago_days', { time: days });\n case diff < year:\n const months = Math.round(diff / month);\n if (months === 1) {\n return t('time_ago_a_month');\n }\n return t('time_ago_months', { time: months });\n case diff > year:\n const years = Math.round(diff / year);\n if (years === 1) {\n return t('time_ago_a_year');\n }\n return t('time_ago_years', { time: years });\n default:\n return '';\n }\n }, [date, t]);\n\n // State to store the \"time ago\" string, initialized with the calculated value\n const [timeAgo, setTimeAgo] = useState(() => calculateTimeAgo());\n\n // Effect to update the \"time ago\" string every minute\n useEffect(() => {\n const timer = setInterval(() => {\n setTimeAgo(calculateTimeAgo());\n }, 60 * 1000);\n\n // Cleanup function to clear the interval when the component is unmounted\n return () => {\n clearInterval(timer);\n };\n }, [calculateTimeAgo]);\n\n // Return the \"time ago\" string\n return timeAgo;\n}\n\nexport type { UseTimeAgoProps };\n","import { useCallback } from 'react';\nimport { useModalNavigation } from '../modals/useModalNavigation';\nimport { useWalletsMe } from '../../api';\nimport { CoinType } from '../../models';\nimport { CommonModalsKey, WithdrawStep } from '../../enums';\nimport { useSearchParams } from '../useSearchParams';\n\nexport function useTransactionsNavigation() {\n // Retrieve the current wallet and account information\n const { wallet } = useWalletsMe();\n const currentAccount = wallet?.currentAccount;\n\n // Hook to navigate to different modals\n const { navigateToModal } = useModalNavigation();\n // Hook to manage URL search parameters\n const params = useSearchParams();\n\n /**\n * Constructs search parameters for a transaction modal.\n *\n * @param {CoinType} [coinType] - Optional type of the coin.\n * @param {bigint} [coinId] - Optional ID of the coin.\n * @returns {string} - A string representing the search parameters.\n *\n * Example:\n * If currentAccount has a coin type of 'BTC' and id of 123n,\n * getModalSearchParams() returns \"?coin-type=BTC&coin-id=123&step=Form\".\n */\n const getModalSearchParams = useCallback(\n (coinType?: CoinType, coinId?: bigint) => {\n // Set the coin type in the search parameters, defaulting to the current account's coin type\n params.set('coin-type', coinType ?? currentAccount?.coin?.type);\n // Set the coin ID in the search parameters, defaulting to the current account's coin ID\n params.set(\n 'coin-id',\n coinId ? String(coinId) : String(currentAccount?.coin?.id),\n );\n // Set the step in the search parameters to 'Form'\n params.set('step', WithdrawStep.Form);\n\n // Return the constructed search parameters as a query string\n return `?${params.toString()}`;\n },\n [params, currentAccount],\n );\n\n /**\n * Navigates to a transaction modal with the appropriate search parameters.\n *\n * @param {CommonModalsKey.Deposit | CommonModalsKey.Withdraw} modal - The modal to navigate to.\n *\n * Example:\n * navigateToTransactionModal(CommonModalsKey.Deposit) will navigate to the deposit modal\n * with the search parameters constructed by getModalSearchParams().\n */\n const navigateToTransactionModal = useCallback(\n (modal: CommonModalsKey.Deposit | CommonModalsKey.Withdraw) => {\n // Get the search parameters for the modal\n const searchParams = getModalSearchParams();\n // Navigate to the specified modal with the search parameters\n navigateToModal(modal, searchParams);\n },\n [getModalSearchParams, navigateToModal],\n );\n\n // Return the functions to navigate to transaction modals and get search parameters\n return {\n navigateToTransactionModal,\n getModalSearchParams,\n };\n}\n","export namespace DepositStatusId {\n export const Created = 1n;\n export const Pending = 2n;\n export const Paid = 3n;\n export const Expired = 4n;\n export const Refunded = 5n;\n}\n\nexport type DepositStatusIdType =\n | typeof DepositStatusId.Created\n | typeof DepositStatusId.Pending\n | typeof DepositStatusId.Paid\n | typeof DepositStatusId.Expired\n | typeof DepositStatusId.Refunded;\n","export namespace WithdrawalStatusId {\n export const Created = 1n;\n export const Pending = 2n;\n export const Paid = 3n;\n export const Expired = 4n;\n export const Rejected = 5n;\n export const Canceled = 6n;\n export const Failed = 7n;\n export const Refunded = 8n;\n}\n\nexport type WithdrawalStatusIdType =\n | typeof WithdrawalStatusId.Created\n | typeof WithdrawalStatusId.Pending\n | typeof WithdrawalStatusId.Paid\n | typeof WithdrawalStatusId.Expired\n | typeof WithdrawalStatusId.Rejected\n | typeof WithdrawalStatusId.Canceled\n | typeof WithdrawalStatusId.Failed\n | typeof WithdrawalStatusId.Refunded;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"option\":\"styles_option__o_V4w\",\"option--container-color\":\"styles_option--container-color__kOpzY\",\"option--selected\":\"styles_option--selected__NFlQQ\",\"option__column\":\"styles_option__column__tmJCR\",\"option__image\":\"styles_option__image__gSRek\",\"option__symbol\":\"styles_option__symbol__EWV8Y\",\"option__name\":\"styles_option__name__NUtLl\",\"skeleton-animation\":\"styles_skeleton-animation__1Jn03\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__QH7ai\",\"container__title\":\"styles_container__title__OJ7py\",\"container__subtitle\":\"styles_container__subtitle__RwRbp\",\"container__chip\":\"styles_container__chip__oAPJq\",\"skeleton-animation\":\"styles_skeleton-animation__g01x_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__YsWss\",\"container--selected\":\"styles_container--selected__3IlgW\",\"container__title\":\"styles_container__title___hbM3\",\"container__subtitle\":\"styles_container__subtitle__9UVu0\",\"container__chip\":\"styles_container__chip__AsGfj\",\"skeleton-animation\":\"styles_skeleton-animation__eGNNV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skeleton\":\"styles_skeleton__ZhhVL\",\"skeleton-animation\":\"styles_skeleton-animation__7TeNF\",\"checkbox\":\"styles_checkbox__Ct9_p\",\"checkbox--checked\":\"styles_checkbox--checked__4mpxe\",\"checkbox--large\":\"styles_checkbox--large__YsFTA\",\"checkbox--disabled\":\"styles_checkbox--disabled__47svz\",\"skeleton--large\":\"styles_skeleton--large___eBxv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__jovXX\",\"description\":\"styles_description__UTc0L\",\"skeleton-animation\":\"styles_skeleton-animation__V9WoL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"styles_card__gOiAz\",\"card--disabled\":\"styles_card--disabled__xRJEj\",\"card--selected\":\"styles_card--selected__T_3t7\",\"card__row\":\"styles_card__row__A9xBR\",\"card__column\":\"styles_card__column__YVok1\",\"card__column__label\":\"styles_card__column__label__zvsm6\",\"card__column__description\":\"styles_card__column__description__Sjmk9\",\"card__divider\":\"styles_card__divider___TpVw\",\"skeleton-animation\":\"styles_skeleton-animation__GqNy5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__QRt8o\",\"skeleton-animation\":\"styles_skeleton-animation__Dn6J5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__up_3p\",\"container--no-padding\":\"styles_container--no-padding__nUL4_\",\"container__lottie\":\"styles_container__lottie__Lt_gg\",\"container__description\":\"styles_container__description__CBDj_\",\"skeleton-animation\":\"styles_skeleton-animation__KP6Ms\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__RG9i8\",\"skeleton-animation\":\"styles_skeleton-animation__A8JCA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__Gcci0\",\"value\":\"styles_value__so5Ue\",\"skeleton-animation\":\"styles_skeleton-animation__RQcPX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"styles_row__OnWJ6\",\"row__wrapper\":\"styles_row__wrapper__32m8q\",\"row__wrapper__card\":\"styles_row__wrapper__card__23V0j\",\"row--container-color\":\"styles_row--container-color__Fv6qc\",\"row--small\":\"styles_row--small__hKrLW\",\"row--hide-days\":\"styles_row--hide-days__VgYT_\",\"row--hide-hours\":\"styles_row--hide-hours__qOCUf\",\"row__wrapper__card--small\":\"styles_row__wrapper__card--small__VQFdA\",\"row__wrapper__label\":\"styles_row__wrapper__label__6J2Uo\",\"row__wrapper__label--small\":\"styles_row__wrapper__label--small__HFGhz\",\"skeleton-animation\":\"styles_skeleton-animation__KCvR0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"coin\":\"styles_coin__3TDCf\",\"skeleton-animation\":\"styles_skeleton-animation__m_G90\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__QLlP2\",\"container--default\":\"styles_container--default__pSCHU\",\"container__divider\":\"styles_container__divider__lAy2L\",\"container__button\":\"styles_container__button__8iGJN\",\"skeleton-animation\":\"styles_skeleton-animation__oWc64\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__NFqlj\",\"skeleton-animation\":\"styles_skeleton-animation__q0M7T\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__YkRmD\",\"container__lottie\":\"styles_container__lottie__8fCof\",\"container__title\":\"styles_container__title__Ed4WM\",\"container__description\":\"styles_container__description__z5r77\",\"skeleton-animation\":\"styles_skeleton-animation__jnAXP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"styles_text__rMoJX\",\"skeleton-animation\":\"styles_skeleton-animation__Du7x7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container___uwji\",\"container__text\":\"styles_container__text__8lGst\",\"container__icon\":\"styles_container__icon__Gjj_D\",\"container__link\":\"styles_container__link__7N_5v\",\"skeleton-animation\":\"styles_skeleton-animation__gFJr1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"coin\":\"styles_coin__uchAn\",\"skeleton-animation\":\"styles_skeleton-animation__T126L\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__wGiSD\",\"container__overlay\":\"styles_container__overlay__CXhEw\",\"container__content\":\"styles_container__content__6bi_x\",\"container__content--paddingless\":\"styles_container__content--paddingless__3rgAb\",\"skeleton-animation\":\"styles_skeleton-animation__EtKyk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"progress\":\"styles_progress__vmOnB\",\"label\":\"styles_label__kYnt0\",\"skeleton-animation\":\"styles_skeleton-animation__grSMs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__Y5ac0\",\"container__wrapper\":\"styles_container__wrapper__eD20K\",\"container__wrapper__progress\":\"styles_container__wrapper__progress__8PLwL\",\"container__wrapper__progress__container\":\"styles_container__wrapper__progress__container__gOeiQ\",\"container__wrapper__label\":\"styles_container__wrapper__label__N1dvc\",\"skeleton-animation\":\"styles_skeleton-animation__i3pWW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container__progress__skeleton\":\"styles_container__progress__skeleton__nK9bT\",\"skeleton-animation\":\"styles_skeleton-animation__Q2aZi\",\"container\":\"styles_container__b1jzK\",\"spin\":\"styles_spin__jGX60\",\"container__progress\":\"styles_container__progress__WKWfi\",\"container__progress--customColor\":\"styles_container__progress--customColor__N_V8R\",\"container--useContainerColor\":\"styles_container--useContainerColor__oyXPv\",\"container--card-color\":\"styles_container--card-color__iP1RJ\",\"container--tiny\":\"styles_container--tiny__glbXu\",\"container--small\":\"styles_container--small__7vLBo\",\"container--medium\":\"styles_container--medium__rJkPd\",\"container--large\":\"styles_container--large__yhP7Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__lCvZs\",\"container--unset-height\":\"styles_container--unset-height__PvMrJ\",\"skeleton-animation\":\"styles_skeleton-animation__iLm_5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__b0_7Y\",\"container__content\":\"styles_container__content__g4e0z\",\"container--error\":\"styles_container--error__0Ij1U\",\"skeleton-animation\":\"styles_skeleton-animation__Md2Ax\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text--secondary\":\"styles_text--secondary__zfxdz\",\"chevron--secondary\":\"styles_chevron--secondary__mlvdG\",\"text--default\":\"styles_text--default__Yzx24\",\"chevron--default\":\"styles_chevron--default__BYBLd\",\"skeleton-animation\":\"styles_skeleton-animation__9Xpi_\",\"text\":\"styles_text__M1fzq\",\"chevron\":\"styles_chevron__fmuoC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__pxp56\",\"container__step\":\"styles_container__step__AIWLJ\",\"container__step--active\":\"styles_container__step--active__UcOtF\",\"container--absolute\":\"styles_container--absolute__H_jKK\",\"skeleton-animation\":\"styles_skeleton-animation___d6pY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__be6gQ\",\"container__content\":\"styles_container__content__rkGuj\",\"container__content--dragging\":\"styles_container__content--dragging__7vEJQ\",\"container__mobile__only\":\"styles_container__mobile__only__oB_kP\",\"container__item\":\"styles_container__item__BArtt\",\"container__button\":\"styles_container__button__1B4gx\",\"container__button--left\":\"styles_container__button--left__T6yXU\",\"container__button--right\":\"styles_container__button--right__sWrDi\",\"skeleton-animation\":\"styles_skeleton-animation__qnxBE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__przL2\",\"skeleton-animation\":\"styles_skeleton-animation__8cLjG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__9lNVg\",\"container__content\":\"styles_container__content__Jdy6f\",\"skeleton-animation\":\"styles_skeleton-animation__VhNRS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label-skeleton\":\"styles_label-skeleton__XUH0i\",\"skeleton\":\"styles_skeleton__EgV65\",\"skeleton-animation\":\"styles_skeleton-animation__5EVpD\",\"container\":\"styles_container__jC7vC\",\"container--end\":\"styles_container--end__Bofsp\",\"switch__button\":\"styles_switch__button__GJoeK\",\"container__label\":\"styles_container__label__wucAG\",\"switch\":\"styles_switch__4cEuq\",\"switch__input\":\"styles_switch__input__Vy_eV\",\"switch--disabled\":\"styles_switch--disabled__0RTtB\",\"switch--checked\":\"styles_switch--checked__Tl3fa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__7HDjY\",\"skeleton-animation\":\"styles_skeleton-animation__xZcKc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container__mobile__only\":\"styles_container__mobile__only__B8ZQC\",\"container__desktop__only\":\"styles_container__desktop__only__TSu9C\",\"skeleton-animation\":\"styles_skeleton-animation__iX_0r\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"styles_image__OdaZ6\",\"name\":\"styles_name__y7Fz7\",\"description\":\"styles_description__6JtIa\",\"skeleton-animation\":\"styles_skeleton-animation__fEcW5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__rX0dn\",\"container__row\":\"styles_container__row__aDNMt\",\"container__image\":\"styles_container__image__RChPG\",\"container--checked\":\"styles_container--checked__oUXDU\",\"container--loading\":\"styles_container--loading__DKVEn\",\"container__column\":\"styles_container__column__7Qz3X\",\"container__column--gapped\":\"styles_container__column--gapped__sVz3h\",\"container__name\":\"styles_container__name__ax9Pl\",\"container__description\":\"styles_container__description__Skm49\",\"container__description--primary\":\"styles_container__description--primary__eO6_C\",\"container__chip\":\"styles_container__chip__zSeI0\",\"container__gateway__image\":\"styles_container__gateway__image__7c25o\",\"skeleton-animation\":\"styles_skeleton-animation__AFTH_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__H5SGS\",\"container__title\":\"styles_container__title__Aq4SO\",\"skeleton-animation\":\"styles_skeleton-animation__TGdw3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"address\":\"styles_address__79rd6\",\"address__wrapper\":\"styles_address__wrapper__AzHBk\",\"skeleton-animation\":\"styles_skeleton-animation__OGj6W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"value\":\"styles_value__QLAI9\",\"skeleton-animation\":\"styles_skeleton-animation__UO1qR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__xUk7t\",\"container--invisible\":\"styles_container--invisible__SLVHd\",\"container__row\":\"styles_container__row__BEIt3\",\"container__column\":\"styles_container__column__A_kTy\",\"container__column--large\":\"styles_container__column--large__rdmEP\",\"container__value\":\"styles_container__value__1nSKY\",\"container__value--light\":\"styles_container__value--light__H_KWZ\",\"container__value--secondary\":\"styles_container__value--secondary__Rgt3w\",\"container__divider\":\"styles_container__divider__oxexs\",\"skeleton-animation\":\"styles_skeleton-animation__U68Rd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tabs\":\"styles_tabs__yEEwD\",\"tabs--v2\":\"styles_tabs--v2__UZ2xo\",\"skeleton-animation\":\"styles_skeleton-animation__t8jS2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__Wolkc\",\"description\":\"styles_description__lI5p5\",\"skeleton-animation\":\"styles_skeleton-animation__3D2ZG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"styles_row__glIDx\",\"row__icon\":\"styles_row__icon__14rFf\",\"row__description\":\"styles_row__description__1Rjkb\",\"skeleton-animation\":\"styles_skeleton-animation__c2nhH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"styles_card__8UZyf\",\"card--disabled\":\"styles_card--disabled__0007P\",\"card--selected\":\"styles_card--selected__A9JpQ\",\"card__row\":\"styles_card__row__0Of3H\",\"card__column\":\"styles_card__column__dFEVB\",\"card__column__label\":\"styles_card__column__label__0h4SJ\",\"card__column__description\":\"styles_card__column__description__SycPC\",\"card__column--large\":\"styles_card__column--large__8isU4\",\"card__divider\":\"styles_card__divider__50VNc\",\"card__spacer\":\"styles_card__spacer__w4dmp\",\"skeleton-animation\":\"styles_skeleton-animation___ldq1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__dl6qL\",\"skeleton-animation\":\"styles_skeleton-animation__Nh2_M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"styles_row__E1SF9\",\"skeleton-animation\":\"styles_skeleton-animation__zy4tN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__Z3oWv\",\"skeleton-animation\":\"styles_skeleton-animation__Ub9nt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__2jSrx\",\"skeleton-animation\":\"styles_skeleton-animation___3zoJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__a_Q5r\",\"description\":\"styles_description__KztmG\",\"skeleton-animation\":\"styles_skeleton-animation__MQfRy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__qmRrc\",\"container--verified\":\"styles_container--verified__5RbS3\",\"container--created\":\"styles_container--created__3KXQ6\",\"skeleton-animation\":\"styles_skeleton-animation__tMvI7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"styles_card__Vw_8I\",\"card__row\":\"styles_card__row__QGcL2\",\"card__row__wrapper\":\"styles_card__row__wrapper__A5X9N\",\"card__row__wrapper__image\":\"styles_card__row__wrapper__image__0KvDC\",\"card__row__wrapper__column\":\"styles_card__row__wrapper__column__CO8CT\",\"card__row__wrapper__label\":\"styles_card__row__wrapper__label__VhCnf\",\"card__row__wrapper__description\":\"styles_card__row__wrapper__description__9vy17\",\"card__divider\":\"styles_card__divider__uuNS4\",\"card__description\":\"styles_card__description__5zydk\",\"skeleton-animation\":\"styles_skeleton-animation__nLTYl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__OiYts\",\"container__row\":\"styles_container__row___eizR\",\"container__column\":\"styles_container__column__jUgMj\",\"container__input\":\"styles_container__input__Ivf2X\",\"container__description\":\"styles_container__description__dcWBT\",\"skeleton-animation\":\"styles_skeleton-animation__W8D4N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__BE8_X\",\"container__header\":\"styles_container__header__bednW\",\"container__header__title\":\"styles_container__header__title__mb3Kj\",\"container__header__button\":\"styles_container__header__button__AKsAw\",\"container__content\":\"styles_container__content__3bHZq\",\"container__padded\":\"styles_container__padded__aB_GQ\",\"container__submit\":\"styles_container__submit__Qn5hB\",\"skeleton-animation\":\"styles_skeleton-animation__8yLye\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"lottie\":\"styles_lottie__qrIpA\",\"title\":\"styles_title__lWz7Z\",\"description\":\"styles_description__BYROL\",\"skeleton-animation\":\"styles_skeleton-animation__0DEXD\",\"description__container\":\"styles_description__container__6D8fQ\",\"description--half\":\"styles_description--half__FnBIW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__vXMpA\",\"container__lottie\":\"styles_container__lottie__VdL_i\",\"container__wrapper\":\"styles_container__wrapper__6_EPc\",\"container__wrapper__label\":\"styles_container__wrapper__label__ru4yB\",\"container__wrapper__description\":\"styles_container__wrapper__description__c1BOH\",\"skeleton-animation\":\"styles_skeleton-animation__Om5H8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container__heading__skeleton\":\"styles_container__heading__skeleton__qcxq4\",\"skeleton-animation\":\"styles_skeleton-animation__zP796\",\"container\":\"styles_container__3GQwr\",\"container__heading\":\"styles_container__heading__kOjnz\",\"container__cards\":\"styles_container__cards__D4A9F\",\"container__padded\":\"styles_container__padded__ZCg9H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__7OtK_\",\"container__coin\":\"styles_container__coin__Y6zLg\",\"container__coin__image\":\"styles_container__coin__image__qIZfB\",\"container__coin__amount\":\"styles_container__coin__amount__1QdpN\",\"skeleton-animation\":\"styles_skeleton-animation__ung4H\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container___ZxBx\",\"skeleton-animation\":\"styles_skeleton-animation__gK2if\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"styles_row__yj3CB\",\"skeleton\":\"styles_skeleton__80CVm\",\"skeleton__text\":\"styles_skeleton__text__hmfke\",\"skeleton__text--small\":\"styles_skeleton__text--small__KSXuf\",\"skeleton-animation\":\"styles_skeleton-animation__HB3B6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__nDOVf\",\"container__card\":\"styles_container__card__mb7yT\",\"container__title\":\"styles_container__title__1GWBE\",\"skeleton-animation\":\"styles_skeleton-animation__L75tV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"styles_button__jdrwb\",\"title\":\"styles_title__1__kx\",\"label\":\"styles_label__L5iah\",\"skeleton-animation\":\"styles_skeleton-animation___yvdj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__VKyOK\",\"container__row\":\"styles_container__row__Ums_c\",\"container__row--wrapped\":\"styles_container__row--wrapped__TW_ID\",\"container__title\":\"styles_container__title__W6Zze\",\"container__time__relative\":\"styles_container__time__relative__gqNpu\",\"container__time__absolute\":\"styles_container__time__absolute__GH2JT\",\"container__icon\":\"styles_container__icon___01Vt\",\"skeleton-animation\":\"styles_skeleton-animation__bQRB3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__DRB90\",\"container--error\":\"styles_container--error__a9hV7\",\"container__row\":\"styles_container__row__1ivA9\",\"container__title\":\"styles_container__title__djiqx\",\"skeleton-animation\":\"styles_skeleton-animation__Gk2Q3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__Cpl_v\",\"skeleton-animation\":\"styles_skeleton-animation__Wvl4Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"styles_card__yzXe3\",\"card__lottie\":\"styles_card__lottie__iB68x\",\"skeleton-animation\":\"styles_skeleton-animation__SNg9j\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__ofXbH\",\"container--v2\":\"styles_container--v2__goMTO\",\"skeleton-animation\":\"styles_skeleton-animation__GFnyA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__5kGdk\",\"wrapper__button\":\"styles_wrapper__button__bZJYY\",\"skeleton-animation\":\"styles_skeleton-animation__OqyCG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"styles_icon__5yVeh\",\"text\":\"styles_text__RBPM4\",\"container__qr__skeleton\":\"styles_container__qr__skeleton__AVmXd\",\"skeleton-animation\":\"styles_skeleton-animation__wAbxt\",\"container\":\"styles_container___G6OF\",\"container__paste\":\"styles_container__paste__k1n9d\",\"container__row\":\"styles_container__row__bRLpb\",\"container__row--1col\":\"styles_container__row--1col__mczWo\",\"container__wrapper\":\"styles_container__wrapper__Y1uq8\",\"container__qr\":\"styles_container__qr__V5V_y\",\"container__qr__container\":\"styles_container__qr__container__dvh5g\",\"container__qr__container__column\":\"styles_container__qr__container__column__EphJx\",\"container__card\":\"styles_container__card__TNG_h\",\"text__container\":\"styles_text__container__kjQ_J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__INjxK\",\"container__button\":\"styles_container__button__dp7d_\",\"container__button__chip\":\"styles_container__button__chip__07LcJ\",\"container__button__chip--selected\":\"styles_container__button__chip--selected__5rDVJ\",\"skeleton-animation\":\"styles_skeleton-animation__aD3Rb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__ToYNr\",\"container__content\":\"styles_container__content__5fFZe\",\"container__content--crypto\":\"styles_container__content--crypto__gLsY2\",\"skeleton-animation\":\"styles_skeleton-animation__8ld_e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__BsDqC\",\"skeleton-animation\":\"styles_skeleton-animation__w6y1g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__mxrtw\",\"container__title\":\"styles_container__title__j5fWA\",\"container__wrapper\":\"styles_container__wrapper__51oes\",\"container__qrcode\":\"styles_container__qrcode__VTl0F\",\"container__value\":\"styles_container__value__zhmpd\",\"container__text\":\"styles_container__text__D3fmo\",\"container__icon\":\"styles_container__icon__eXIwJ\",\"container__list\":\"styles_container__list__jS7rD\",\"container__list__item\":\"styles_container__list__item__44xnk\",\"container__row\":\"styles_container__row__qLyAx\",\"container__divider\":\"styles_container__divider__VRjfi\",\"container__alert\":\"styles_container__alert__Dt01e\",\"skeleton-animation\":\"styles_skeleton-animation__19SfB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skeleton\":\"styles_skeleton__Oz_aI\",\"skeleton-animation\":\"styles_skeleton-animation__IMjiT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__O0kAs\",\"container__content\":\"styles_container__content__aycpJ\",\"container__button\":\"styles_container__button__rhe9H\",\"container__padded\":\"styles_container__padded__iaXKE\",\"skeleton-animation\":\"styles_skeleton-animation__pmbKO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__UT2yN\",\"container__header\":\"styles_container__header__M7vHm\",\"container__header__wrapper\":\"styles_container__header__wrapper__jXPJV\",\"container__header__wrapper__arrow\":\"styles_container__header__wrapper__arrow__H6y8t\",\"container__header__close\":\"styles_container__header__close__Bg3ob\",\"container__content\":\"styles_container__content__H9vk7\",\"container__content__wrapper\":\"styles_container__content__wrapper__9WUSP\",\"container__content__wrapper--disable-styles\":\"styles_container__content__wrapper--disable-styles__VLGxa\",\"container__content__button\":\"styles_container__content__button__gNsEO\",\"skeleton-animation\":\"styles_skeleton-animation__e_7L0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"styles_wrapper__XXCOy\",\"wrapper__button\":\"styles_wrapper__button__sdP5O\",\"wrapper__row\":\"styles_wrapper__row__T0QCa\",\"wrapper__row__label\":\"styles_wrapper__row__label__C8vCU\",\"wrapper__row__value\":\"styles_wrapper__row__value__gpcAc\",\"skeleton-animation\":\"styles_skeleton-animation__zhpff\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__NmtRA\",\"container__input__icon\":\"styles_container__input__icon__PsANY\",\"skeleton-animation\":\"styles_skeleton-animation__FPZv_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__H3Ak8\",\"value\":\"styles_value__u3ieC\",\"skeleton-animation\":\"styles_skeleton-animation__Ing3t\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__3APEQ\",\"container__row\":\"styles_container__row__oXolS\",\"container__label\":\"styles_container__label__jJ0ql\",\"container__value\":\"styles_container__value__cqVYl\",\"container__spinner\":\"styles_container__spinner__7TIdo\",\"skeleton-animation\":\"styles_skeleton-animation__jia_A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__mb3kt\",\"container__lottie\":\"styles_container__lottie__w0Ee6\",\"container__description\":\"styles_container__description__1rdSQ\",\"skeleton-animation\":\"styles_skeleton-animation__qjxnJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__Oz7kp\",\"container__content\":\"styles_container__content__Uwkbg\",\"skeleton-animation\":\"styles_skeleton-animation__tQTdx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skeleton\":\"styles_skeleton__Ci5Cs\",\"skeleton-animation\":\"styles_skeleton-animation__K6NzG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__NEA_f\",\"skeleton-animation\":\"styles_skeleton-animation__E25GY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"styles_label__XwX_8\",\"skeleton-animation\":\"styles_skeleton-animation__pANn6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__AsR_S\",\"container__card\":\"styles_container__card__qxmpo\",\"container__card__row\":\"styles_container__card__row__KsGB0\",\"container__card__row--small\":\"styles_container__card__row--small__x6qaf\",\"container__card__row__label\":\"styles_container__card__row__label__w0E5p\",\"container__card__row__value\":\"styles_container__card__row__value__d6d7Y\",\"container__card__row__label--small\":\"styles_container__card__row__label--small__QcEfS\",\"container__card__row__coin\":\"styles_container__card__row__coin__ASJ_t\",\"skeleton-animation\":\"styles_skeleton-animation__JcNej\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__2cxAe\",\"container__divider\":\"styles_container__divider__PqiUz\",\"container__content\":\"styles_container__content__TLncV\",\"drawer\":\"styles_drawer__UBHb0\",\"skeleton-animation\":\"styles_skeleton-animation__FzAN5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__SklPW\",\"container__header\":\"styles_container__header__pkcRZ\",\"container__header__wrapper\":\"styles_container__header__wrapper__DozqB\",\"container__header__wrapper__arrow\":\"styles_container__header__wrapper__arrow__vYzTk\",\"container__header__close\":\"styles_container__header__close__5E3h0\",\"container__content\":\"styles_container__content__wHwNd\",\"container__content__wrapper\":\"styles_container__content__wrapper__udr4R\",\"container__content__wrapper--disable-styles\":\"styles_container__content__wrapper--disable-styles__sjVJc\",\"container__content__button\":\"styles_container__content__button__elrem\",\"skeleton-animation\":\"styles_skeleton-animation__vzZpC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__rPM_e\",\"container__link\":\"styles_container__link__KBPKw\",\"container__button\":\"styles_container__button__l0J79\",\"container__button__label\":\"styles_container__button__label__ckTZM\",\"container__button__icon\":\"styles_container__button__icon__z2ttq\",\"skeleton-animation\":\"styles_skeleton-animation__9HLKo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"value\":\"styles_value__y9YZB\",\"text\":\"styles_text__r5d_O\",\"skeleton-animation\":\"styles_skeleton-animation__MRbJv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__WaDeZ\",\"container__value\":\"styles_container__value__9K_jO\",\"container__card\":\"styles_container__card__Tucs6\",\"container__card--row\":\"styles_container__card--row__KA5Gp\",\"container__row\":\"styles_container__row__Zw3zy\",\"container__row--between\":\"styles_container__row--between__9Rppz\",\"container__row--small\":\"styles_container__row--small__itxL0\",\"container__row--center\":\"styles_container__row--center__pg7yX\",\"container__text\":\"styles_container__text__oNi_q\",\"container__text--secondary\":\"styles_container__text--secondary__ohZ3h\",\"container__text--primary\":\"styles_container__text--primary__zW88K\",\"container__text--link\":\"styles_container__text--link__Tcq0K\",\"container__dot\":\"styles_container__dot__eglR8\",\"container__dot--2\":\"styles_container__dot--2__aXTo0\",\"container__dot--1\":\"styles_container__dot--1__vZAoT\",\"container__dot--3\":\"styles_container__dot--3__w5Qap\",\"container__dot--4\":\"styles_container__dot--4__bnB7q\",\"container__dot--5\":\"styles_container__dot--5__rSIr4\",\"ping\":\"styles_ping__Fedlf\",\"container__image\":\"styles_container__image__FEiM2\",\"skeleton-animation\":\"styles_skeleton-animation__q4bYq\",\"pulse\":\"styles_pulse__mp_LE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__0yqJO\",\"container__label\":\"styles_container__label__0waET\",\"skeleton-animation\":\"styles_skeleton-animation__LNG9Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__DPnnl\",\"container__description\":\"styles_container__description__tzcw_\",\"container__button\":\"styles_container__button__qDy49\",\"container__button--positive\":\"styles_container__button--positive__alWUX\",\"container__button--positive--selected\":\"styles_container__button--positive--selected__So2ye\",\"thumb-up\":\"styles_thumb-up__XQMKi\",\"container__button__particle-container__particle\":\"styles_container__button__particle-container__particle__ZD_d8\",\"container__button--negative\":\"styles_container__button--negative__Hgu9j\",\"container__button--negative--selected\":\"styles_container__button--negative--selected__PQOTr\",\"thumb-down\":\"styles_thumb-down__cI5eQ\",\"container__button__particle-container\":\"styles_container__button__particle-container__CHwrP\",\"particle-animation\":\"styles_particle-animation__qWTzS\",\"container__row\":\"styles_container__row__O2Qk1\",\"skeleton-animation\":\"styles_skeleton-animation__A72uX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"style_container__Ny7Rk\",\"container__indicator\":\"style_container__indicator__svlY_\",\"container__indicator--current\":\"style_container__indicator--current__N163G\",\"container__indicator--completed\":\"style_container__indicator--completed__vPb30\",\"container__indicator--error\":\"style_container__indicator--error__LtVFA\",\"container__column\":\"style_container__column__KbiA5\",\"container__column__label\":\"style_container__column__label__jnBoY\",\"container__column__description\":\"style_container__column__description__9mleh\",\"container__column__link\":\"style_container__column__link__092s_\",\"skeleton-animation\":\"style_skeleton-animation__zIV9y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__hCMOY\",\"skeleton-animation\":\"styles_skeleton-animation__ePRyW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__MzVQK\",\"container__title\":\"styles_container__title__Qn_xQ\",\"container__description\":\"styles_container__description__Jycvp\",\"container__link\":\"styles_container__link__WwHPo\",\"container__link--disabled\":\"styles_container__link--disabled__bVjRM\",\"skeleton-animation\":\"styles_skeleton-animation__PO9fd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"styles_container__dxcz_\",\"container__column\":\"styles_container__column__DNXqU\",\"container__value\":\"styles_container__value__gIO_h\",\"container__description\":\"styles_container__description__aw1Jl\",\"container__row\":\"styles_container__row__ZOP5J\",\"container__coin\":\"styles_container__coin__TNHj6\",\"container__lottie\":\"styles_container__lottie__aCqcR\",\"container__animated-coin\":\"styles_container__animated-coin__UKyt9\",\"container__animated-coin__coin\":\"styles_container__animated-coin__coin__SIdNm\",\"container__animated-coin__particle-container\":\"styles_container__animated-coin__particle-container__nfGwq\",\"container__animated-coin__particle-container__particle\":\"styles_container__animated-coin__particle-container__particle__h6qiD\",\"particle-animation\":\"styles_particle-animation__us17t\",\"skeleton-animation\":\"styles_skeleton-animation__xkQLX\"};"],"names":["fetchAccountByCoin","param","axiosInstance","queryKey","coinId","response","get","concat","data","useAccountByCoin","options","customOnSuccess","enabled","refetchOnMount","useAxiosInstance","AccountQueryKeys","ByCoin","isPending","error","refetch","fetchStatus","isRefetching","useQuery","queryFn","queryContext","refetchOnWindowFocus","staleTime","useEffect","isLoading","fetchCoinById","id","useCoinById","CoinsQueryKey","ById","coin","CustomOptionSkeletonWrapper","styled","div","withConfig","ImageSkeleton","jsx_runtime","jsx","Skeleton","props","LabelSkeleton","theme","vars","shape","borderRadius","AutocompleteSelectorOptionWithImageSkeleton","jsxs","AutocompleteSelectorOptionCoinWithImage","option","selected","handleSelect","isContainerColor","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","className","styles","onClick","Image","alt","name","format","width","height","src","SettingsService","env","S3_BUCKET_BASE_URL","image","secondarySkeleton","p","code","Label","palette","text","secondary","Option","Color","getComputedColor","primary","main","alpha","toString","NextImage","AutocompleteSelectorOptionWithImage","label","Checkbox","isChecked","isLarge","disabled","i","CircularProgress","progress","pathColor","trailColor","invert","primaryColor","trail","path","Math","ceil","Copy","textToCopy","secondaryStyles","callback","Input","CopyToClipboard","onCopy","value","readOnly","rightIcon","hasPaddingRight","CounterSkeleton","skeleton","Counter","countdown","isSmall","hideDays","hideHours","t","useTranslation","days","hours","minutes","seconds","CounterSekeleton","DateGroup","onChange","isDefault","Buttons","useMemo","EDateGroup","TODAY","FIFTEEN_DAYS","THIRTY_DAYS","map","dateGroup","array","Fragment","button","getDateRange","group","today","Date","endDate","startDate","setDate","getDate","length","DateRangeCard","range","setRange","dateRange","handleDateChange","rawStartDate","rawEndDate","startOfDay","endOfDay","DateRangePicker","Link","state","useSettingsStore","settings","router","Navigate","NavigationBreadcrumbsSkeleton","NavigationBreadcrumbs","currentPageLabel","lastPageLabel","to","isError","ErrorChip","action","href","h1","drawerTransition","duration","ease","pageDrawerVariant","hidden","x","transition","open","PageDrawer","isOpen","onClose","children","title","paddingless","version","classNames","preventClose","current","useClickOutside","onClickOutside","AnimatePresence","mode","overlay","undefined","m","variants","initial","animate","event","stopPropagation","exit","container","ref","ModalHeader","withoutPadding","PaginationWithProgressSkeleton","Button","isSkeleton","PaginationWithProgress","count","fetchNextPage","hasNextPage","loading","isFetchingNextPage","totalCount","style","isSecondary","RechartsTooltip","background","default","lighten","darken","PieChartTooltip","payload","CustomText","RADIAN","PI","pieChartLabel","cx","cy","midAngle","innerRadius","outerRadius","radius","Number","cos","y","sin","fill","fontSize","textAnchor","dominantBaseline","PieChart","dataKey","showAxis","angles","useTheme","ResponsiveContainer","RechartsPieChart","margin","left","right","bottom","top","overflow","Pie","nameKey","labelLine","startAngle","start","paddingAngle","endAngle","end","stroke","item","index","Cell","color","Tooltip","cursor","content","position","Portal","createPortal","document","body","PreloadImages","images","Images","img","link","rel","as","fetchPriority","Head","Progress","size","useCardColor","useContainerColor","RichTooltip","unsetHeight","poppoverOrigin","vertical","horizontal","transformOrigin","anchorEl","setAnchorEl","useState","currentTarget","suppressHydrationWarning","Popover","BackdropProps","invisible","anchorOrigin","Section","paginated","paginationType","hasMore","isLoadingMore","limit","loadMore","componenents","component","Skeletons","Array","from","_","Components","ErrorCard","NoDataComponent","isSecondaryStyles","SelectInputWithImageSkeleton","cardBg","__webpack_exports__","Z","inverse","paper","SliderStepper","currentStep","onStepClick","steps","absolute","Steps","SliderContent","showButtonsOnScroll","containerProps","hideButtons","absoluteButton","mobileSize","containerRef","handleMouseDown","handleMouseLeave","handleMouseMove","handleMouseUp","hasScroll","isDragging","isMobile","useIsMobile","itemsPerView","Sections","React","toArray","child","idx","onMouseDown","onMouseMove","onMouseUp","onMouseLeave","dir","LoadMore","Slider","timeout","slideBy","currentIndex","onStepChange","useAutoScroll","customComponents","scrollToCurrentOnEnter","direction","handleDragLeft","handleDragRight","rest","useCustomCarousel","autoScroll","header","onDragLeft","onDragRight","Content","Switch","flexEnd","input","type","checked","e","preventDefault","span","TableWithPagination","columns","fetchPreviousPage","page","setCurrentPage","TableGrid","rows","PaginationComponent","currentPage","hasPreviousPage","metadata","lastPage","pageCount","maxLength","SeeDeposit","deposit","navigateToModal","useModalNavigation","isTiny","CommonModalsKey","Deposit","DepositStep","Response","method","SeeWithdrawal","withdrawal","Withdraw","WithdrawStep","WithdrawalMethodsQueryKeys","WithdrawConfirmationMethod","WithdrawMethodId","DepositMethodId","DepositMethodsQueryKeys","NodeType","StepperOptions","UserPaymentDetailsTypeId","UserPaymentDetailsQueryKeys","RedirectError","UserPaymentDetailsFormFields","UserPaymentDetailsStatus","CoinName","CoinSymbol","Row","Column","BalanceContainer","AutocompleteSelectorAccount","isInvestmentWallet","formattedValue","WalletService","maskCurrency","amount","getMoneyOrAmount","balance","dollarBalance","copyWith","scale","decimals","multiply","price","toNumber","ToolTip","titleComponent","profit","getContrastColor","startsWith","chroma","luminance","ChainOption","backgroundColor","symbol","confirmations","BarChartTooltip","isProfit","toFixed","BarChart","Cells","entry","light","success","strokeWidth","RechartsBarChart","Bar","line","XAxis","tick","fontWeight","YAxis","FormGroup","CoinPicker","setCoin","modalTitle","coins","currentCoinId","filter","CoinType","Demo","AutocompleteMenuSelector","filterBy","setValue","getOptionLabel","getOptionValue","customOption","customInput","handleOpen","SelectInputWithImage","customSkeletonOption","customSkeletonInput","CountrySelector","currentValue","isDisabled","onSearchChange","isAsync","isSmallerDrawer","loadingMore","SelectOptionWithImage","dialCode","CurrencyInput","defaultValue","hideCurrency","isExternalTouched","touched","setTouched","displayedValue","setDisplayedValue","isFocused","setIsFocused","getMaskedValue","useCallback","hideSymbol","getUnmaskedValue","unmaskCurrency","String","inputValue","target","replace","unmaskedValue","onBlur","onFocus","customIcon","placeholder","LoaderContainer","InfiniteScrollLoader","Info","description","lottie","lottieAnimationRef","useLottiePlayer","h6","ToggleRender","desktopComponent","mobileComponent","TransactionsLayout","SettingLayoutComponentId","modalCallbacks","handleContainer","Modal","motion","ModalV2","drawerVariants","containerVariants","TransactionsModalsLayoutHeader","handleBackButton","transactionStep","modal","useCurrentModal","isDefaultStep","Form","includes","isReponseStep","withBackButton","handleGoBack","smallPadding","transactionsTabsOptions","Fiat","Crypto","TransactionModalsContentLayoutTabs","OriginId","currentTab","onTabChange","originId","Brazil","Tabs","i18nNamespace","TabsV1","tabs","setTab","fadeInUp","opacity","zIndex","stiffness","damping","show","FeeLoader","FeeSkeleton","noChain","fetchWithdrawalMethodById","useWithdrawSearchParams","search","useSearchParams","navigate","useNavigate","coinType","searchMethodId","searchCoinId","userPaymentDetails","withdrawMethodId","confirmationMethod","Email","handleSetWithdrawSearchParams","searchParamKey","set","hash","preventScrollReset","handleDeleteWithdrawSearchParams","delete","BetterbroBrazillianPix","PixtopayBrazillianPix","BetterbroMexicanSpei","BetterbroArgentineBankTransfer","BetterbroIndianImps","PayGamesIndiaUpi","PayGamesSingaporePayNow","PayGamesIndonesiaQris","PayGamesSouthAfrica","PayGamesNigeria","fetchFee","chainId","methodId","params","fetchTokenLookup","fetchWithdrawMethods","pageParam","isValidChainId","account","chain","tokens","some","token","useWalletAccountsByCoinType","wallet","useWalletsMe","accounts","useWithdrawForm","watch","errorWithdrawalMethods","useUserOriginId","debouncedAmount","useDebounce","kyc","errorKyc","refetchKyc","isPendingKyc","useKycMeByOriginId","currentAccount","errorAccountByCoin","isLoadingAccountByCoin","refetchAccountByCoin","shouldDirty","fee","errorFee","isErrorFee","refetchFee","isLoadingFee","useFee","WithdrawalsQueryKeys","Fee","retry","Infinity","refetchOnReconnect","parseToSubunits","address","tokenLookup","errorTokenLookup","refetchTokenLookup","isPendingTokenLookup","useTokenLookup","TokenLookup","errorAccounts","refetchAccounts","isLoadingAccounts","withdrawalMethod","errorWithdrawMethod","refetchWithdrawMethod","isLoadingWithdrawMethod","useSelectedWithdrawalMethod","useWithdrawalMethodById","isPendingWithdrawalMethods","refetchWithdrawalMethods","withdrawMethodsQuery","useWithdrawalMethods","Primary","getNextPageParam","getPreviousPageParam","useInfiniteQueryCallbacks","useInfiniteQueryReset","infinityQuery","useInfiniteQuery","initialPageParam","formattedData","pages","flat","withdrawMethods","formError","coinMapping","mappings","find","mapping","chainOptions","push","coinOptions","CoinID","BRL","isValidCoinId","minValueFormatted","minimum","maxValueFormatted","maximum","isOverValued","isUnderValued","isValidReceiveAmount","receiveAmount","currentChain","feeQuery","accountsQuery","accountByCoinQuery","tokenLookupQuery","selectedWithdrawalMethodQuery","refetchForm","isFormLoading","useKycMeQuery","useFormContext","chainFee","TransactionModalsWithdrawLayoutFooterSkeleton","TransactionModalsLayoutFooter","feeOptions","isLoadingSubmit","showExternalLink","isSubmitButtonDisabled","tTransaction","hideFooter","getValue","form","isloading","fadeInRight","useDepositSearchParams","depositMethodId","handleSetDepositSearchParams","handleDeleteDepositSearchParams","BetterbroMercadoPago","BetterbroUpi","fetchDepositMethods","useDepositForm","errorDepositMethods","identifier","selectedChainId","birthDate","debouncedIdentifier","debouncedName","debouncedBirthDate","personalIdentityLookup","errorPersonalIdentityLookup","refetchPersonalIdentityLookup","isPendingPersonalIdentityLookup","useUserIdentityValidateByOriginId","CreatePersonalIdentity","refetchDepositMethods","isPendingDepositMethods","depositMethods","depositMethodsQuery","useDepositMethods","countries","errorCountries","refetchCountries","isLoadingCountries","useCountries","depositMethod","accountAddress","selectedChain","addresses","status","KYCStatus","Verified","personalIdentityLookUpQuery","countriesQuery","useKycMeByOriginIdQuery","createDeposit","post","useDepositCallback","externalRedirect","searchParams","onSuccess","setTimeout","window","paymentLink","url","newUrlSearchParams","URLSearchParams","createDepositPixToPay","useTransactionsTabNavigation","getCookie","CookiesKey","withdrawTransactionStep","depositTransactionStep","step","USDT","USD","TransactionModalsDepositContentLayout","useModal","getModalLink","disableStyles","methods","useForm","defaultValues","handleSubmit","useDepositFormState","isSubmitDisabled","usePhoneNumberForm","KycIdentityOriginId","KycCheckpointId","UserIdentityStatus","Invalid","India","Mexico","Argentina","stage","checkpoint","VerifiedPhoneNumber","Identity","valid","isLoadigCreateDeposit","useDeposit","createDepositBetterBro","loadingCreateDepositBetterBroPix","useDepositBetterBro","hasExternalRedirect","mutate","useMutation","mutationFn","loadingCreateDepositPixToPay","useDepositPixToPay","createDepositPayGames","loadingCreateDepositPayGames","useDepositPayGames","handleKycSubmission","isLoadingKycSubmission","useKycFormSubmission","handleSetKycStep","handleSetKycAndDepositStep","useKycNavigation","paths","Object","values","findIndex","handleCreateKycAndDeposit","createdkyc","err","onSubmit","handleDepositFormStep","handleFiatDeposit","origin","FormProvider","DepositCoinSelect","hideInput","pairImage","hooks_useFormattedCryptoAddress","firstFour","substring","lastFour","middleIndex","floor","middleFour","beforeMiddle","afterMiddle","TransactionsCommonCopyAddress","dangerouslySetInnerHTML","__html","TransactionsModalsDepositContentFormCryptoContent","NotificationsService","useNotificationService","formattedAddress","useFormattedCryptoAddress","hideSearch","message","navigator","clipboard","writeText","QRCodeSVG","imageSettings","excavate","TransWithDefault","i18nKey","currency","TransactionsModalsDepositFormContent","AmountInput","tWithdraw","tNotify","formState","dirtyFields","touchedFields","hideLock","registerOptions","required","min","max","errorMessage","minAmount","maxAmount","MethodCardSkeleton","TransactionMethods_MethodCard","memo","tCommon","isCryptoTransactionMethod","gateway","getDescription","TransactionMethods","transactionMethods","onClickMethod","transactionMethod","Methods","MethodCard","DepositMethods","ValueSelector","onSelectValue","suggestedAmounts","Amounts","suggestedAmount","skeletonDefault","TransactionsThirdPartyAlert","dependecyArray","app_provider","PROVIDER","TransactionsModalDepositContentFormLayout","additionalContent","setFocus","loadingDepositMethods","useInfiniteScroll","shouldTouch","Decimal","TransactionModalsDepositContentTransactionForm","QrCodePendingContent","qrCode","h5","TransactionResultDetailsSkeleton","minimal","transactionMappingVariants","boundings","pointerEvents","visible","TransactionsCommonMappingModalLayout","deleteFlowWatermark","remover","element","querySelectorAll","el","ariaLabel","remove","console","clear","fetchDepositById","useDepositById","queryClient","useQueryClient","DepositQueryKeys","DepositStatusId","Pending","invalidateQueries","fetchWithdrawalById","useWithdrawalById","withdraw","useTransactionById","depositId","withdrawId","errorDeposit","refetchDeposit","loadingDeposit","parseToBigInt","errorWithdraw","refetchWithdraw","loadingWithdraw","transaction","formatAddress","TransactionsCommonMappingModalContentBoardNode","transfer","bucketUrl","nodeLabelHandler","Sender","sender","Coin","Receiver","receiver","Handle","Position","Left","Right","TransactionsCommonMappingModalContentBoard","edges","nodes","onEdgesChange","onNodesChange","transactionByIdQuery","useNodesFromTransactions","parsedEdges","parsedNodes","useComposedNodesFromTransaction","transfers","flatMap","rowIndex","keys","colIndex","NODE_WIDTH","NODE_VERTICAL_SPACE","sourcePosition","targetPosition","_this","edgesList","forEach","nodeIds","source","setNodes","useNodesState","setEdges","useEdgesState","fitView","useReactFlow","handleAdjustNodeOnEnter","ReactFlow","deleteKeyCode","selectionKeyCode","MiniMap","Controls","Background","variant","BackgroundVariant","Dots","gap","TransactionsCommonMappingModalContentDetailsHeaderSkeleton","TransactionResultDetails","TransactionsCommonMappingModalContentDetailsHeader","NotificationService","timeAgo","useTimeAgo","date","createdAt","CloseButton","hasPaddingLeft","Intl","DateTimeFormat","dateStyle","NotificationCoin","process","TransactionsCommonMappingModalContentDetailsActionRow","maskedSender","maskedReceiver","components","icon","converted","TransactionsCommonMappingModalContentDetailsActions","Actions","h2","TransactionsCommonMappingModalContentDetails","Slide","in","TransactionsCommonMappingModal","ReactFlowProvider","TransactionsMapping","useRef","toggleOpen","useToggle","getBoundingClientRect","useMaxContent","hour","minute","day","month","year","getStatus","Paid","Expired","Created","Refunded","a","PaymentExperience","isPositive","setIsPositive","TransactionResultActions","SupportModal","TransactionModalResponseContentStepperStep","_transaction_paymentLink","lang","formUrl","getDepositStepTitle","Processing","Result","getWithdrawStepTitle","getStepDescription","getSteperIcon","WithdrawalStatusId","itemStatus","getStepperStatus","Rejected","ExternalRedirectHeaderStepper","ExternalRedirectTrail","TransactionResultExpiresAt","useCountdown","expiresAt","targetDate","onCountdownComplete","TransactionResult","getLottie","StaggerAnimation","stagger","staggerDirection","Collapse","QrCodeResponse","ExternalRedirect","DepositResponseContent","DepositResponse","pathname","usePathname","TransactionModalsDepositContent","UserIdentityForm","usePartialForm","TransactionModalDeposit","SecurityDrawerContentSkeleton","Pix","Imps","MexicanBankAccount","ArgentineBankAccount","SouthAfricaBankAccount","NigerianBankAccount","Qris","SingaporeBankAccount","fetchUserPaymentDetailsById","useUserPaymentDetailsById","externalSuccess","isFetching","SecurityDrawerContent","isPendingCoin","errorCoin","isLoadingMutation","paymentDetailsId","refetchCoin","useWithdrawalCoinBySearchParamId","userPaymentDetail","errorUserPaymentDetail","isLoadingUserPaymentDetail","refetchUserPaymentDetail","feeAmount","Money","add","maskedAmount","getWithdrawToValue","getUserPaymentDetailsFieldByTypeId","pix","maskedKey","imps","accountNumber","bankAccount","SecurityDrawer","Drawer","createCryptoWithdraw","useWithdrawCallbacks","onError","defaultOnError","useQueryDefaults","defaults","getDefaultOptions","mutations","notifyOnSuccess","variables","context","_variables_coinId","statusCode","UNCOMPLETED_KYC","UNCOMPLETED_ROLLOVER","urlSearchParams","RolloverRequired","createWithdrawBetterBro","createWithdrawPixToPay","createWithdrawPayGames","fetchSendCode","emailId","useSendWithdrawalCode","customOnError","isSuccess","sendWithdrawalCode","slideInRight","UserPaymentDetailsFormLayoutSkeleton","Rows","fetchCreateUserPaymentDetails","fetchUpdateUserPaymentDetails","patch","UserPaymentDetailsNamespace","getUserPaymentDetailsTypeIdByCoinId","INR","ARS","MXN","ZAR","SGD","IDR","NGN","useUserPaymentTypeIdByCoinId","useCoallescedCoinId","UserPaymentDetailsFormLayout","reset","isDirty","errors","userPaymentTypeIdByCoinId","isCreating","pixKey","accountHolder","ifsc","hasError","getIsSubmitButtonDisabled","handleExternalSuccess","getUserPaymentDetailsResetDto","key","typeId","bankCode","bank","isLoadingUserPaymentDetails","refetchUserPaymentDetails","errorUserPaymentDetails","kycError","useKycMeByOriginIdWithOrigin","createUserPaymentDetails","isPendingCreateUserPaymentDetails","useCreateUserPaymentDetails","MeInfinity","MeDefault","updateUserPaymentDetails","isPendingUpdateUserPaymentDetails","useUpdateUserPaymentDetails","identityId","coallescedTypeId","hideCloseButton","UserPaymentDetailsFormContentUserKycCardStatus","UserPaymentDetailsFormContentUserKycCardSkeleton","UserPaymentDetailsFormContentUserKycCard","identity","firstName","lastName","maskedIdentifier","useCoallescedUserPaymentTypeId","formTypeId","fetchValidateUserPaymentDetails","useValidateUserPaymentDetails","errorMapping","parsedErrors","field","BankAccountNumber","groupBy","records","valueKey","validationResult","validateUserPaymentDetails","UserPaymentDetailsFormContentPix","register","setError","clearErrors","isPendingValidation","pixErrors","PixKey","isValidLookup","showSpinner","UserPaymentDetailsFormContentUpi","accountHolderErrors","ImpsAccountHolder","ifscErrors","ImpsIfsc","bankAccountErrors","isAccountHolderError","isIfscError","isBankAccountError","onValidationInputBlur","UserPaymentDetailsFormContentBankAccountDetailsBankData","UserPaymentDetailsFormContentBankAccountDetailsMexicanBankAccount","UserPaymentDetailsFormContentBankAccountDetailsArgentineBankAccount","UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccount","UserPaymentDetailsFormContentBankAccountDetails","fetchBanks","join","UserPaymentDetailsFormContentBankAccountDetailsNigerianBankAccountSelect","setName","banks","isLoadingBanks","banksError","refetchBanks","useBanks","BanksQueryKeys","country","handleSelectBank","UserPaymentDetailsFormContentBankAccount","getValues","formattedAccount","UserPaymentDetailsFormContentFields","isKycSuccess","UserPaymentDetailsFormContentImps","UserPaymentDetailsFormContent","userImage","UserPaymentDetailsForm","TransactionModalsWithdrawContentLayout","isDrawerOpen","toggleDrawer","UserPaymentDetails","useWithdrawFormState","userPaymentDetailSelectedAccount","Confirmation","ConfirmationCode","isLoadingCreateWithdrawal","useWithdrawal","loadingCreateCryptoWithdraw","useCreateCryptoWithdraw","customOnSucess","loadingCreateWithdrawBetterBro","useCreateWithdrawBetterBro","loadingCreateWithdrawPixToPay","useCreateWithdrawPixToPay","loadingCreateWithdrawPayGames","useCreateWithdrawPayGames","targetPath","ChainInput","TransactionsModalsWithdrawContentFormCryptoContent","ErrorService","showFormatedAddress","setShowFormatedAddress","debouncedAddress","handleFocus","handleBlur","focusOnMount","useTextArea","extractError","readText","then","clipText","TransactionsModalsWithdrawFormContent","showBalance","isLinkButton","WithdrawalMethods","WithdrawCoinSelect","currentCoin","TransactionsModalWithdrawContentFormLayoutNoMethodsAvailable","TransactionsModalWithdrawContentFormLayout","TransactionModalsWithdrawContentTransactionForm","WithdrawResponseContent","WithdrawResponse","ConfirmationMethodCardPropsIndicator","Card_Skeleton","h3","Card","ConfirmationMethodCardSkeleton","ConfirmationMethodSelectEmail","currentId","emails","useUserEmails","externalOnSuccess","userEmail","handleSetUserEmail","Cards","email","ConfirmationMethodCard","ConfirmationMethodSelect","onEmailSelect","TransactionsModalsWithdrawContentConfirmation","handleSelectEmail","TransactionsModalsWithdrawContentConfirmationCode","isLoadingValidationCode","handleChangeCode","handleSendSms","UserPaymentDetailsCardIndicator","UserPaymentDetailsCardStatus","getCardIcon","UserPaymentDetailsCardSkeleton","UserPaymentDetails_Card","getLabel","toLowerCase","UserPaymentDetailsKycCheckSkeleton","UserPaymentDetailsKycCheck","showOnlyDescription","fetchUserPaymentDetailsMe","UserPaymentDetailsContent","isFirstMount","navigateToTransactionModal","useTransactionsNavigation","errorUserPaymentDetailsMe","refetchUserPaymentDetailsMe","isLoadingUserPaymentDetailsMe","hasNextPageUserPaymentDetailsMe","fetchNextPageUserPaymentDetailsMe","isFetchingNextPageUserPaymentDetailsMe","useUserPaymentDetailsMe","paymentType","useUserPaymentDetailsMeInfinite","useUserPaymentDetailsMeInfinity","query","useUserPaymentDetailsMeDefaultQuery","useUserPaymentDetailsMeDefault","setPage","callbacks","usePaginatedQuery","queryParams","isWithoutUserPaymentDetails","handleSelectAccount","userAccount","UserPaymentDetailsCard","dotted","TransactionModalsWithdrawContent","TransactionModalWithdraw","UserPhoneNumberModal","phoneNumberId","ModalLayout","UserPhoneNumber","fitContent","smallMobilePadding","UserPhoneNumberFormRenderer","calculateTimeAgo","diff","now","getTime","round","time","months","years","setTimeAgo","timer","setInterval","clearInterval","getModalSearchParams","Canceled","Failed","module","exports"],"sourceRoot":""}