{"version":3,"file":"1063-52d6ce3a.pkg.js","mappings":"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","sources":["webpack://frontend-build-tools/./src/app/withdrawFlow/routes.js","webpack://frontend-build-tools/./src/app/withdrawFlow/constants/sessionStorage.js","webpack://frontend-build-tools/./src/app/withdrawFlow/constants/tracking.js","webpack://frontend-build-tools/./src/app/withdrawFlow/context/Auth.js","webpack://frontend-build-tools/./src/app/withdrawFlow/Helpers/PrivateRoute.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Helpers/populate.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Helpers/formatCurrency.js","webpack://frontend-build-tools/./src/app/shared/store/api/withdraw.js","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/WithdrawAmount/WithdrawAmount.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/WithdrawAmount/WithdrawAmountBonus.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/WithdrawOverview.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/WithdrawSuccess.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/containers/ErrorMessage.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/WithdrawFailed.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/GeneralError.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/Views/SessionFail.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/WithdrawApp.jsx","webpack://frontend-build-tools/./src/app/withdrawFlow/context/Dictionary.js"],"sourcesContent":["const appBaseRoute = window?.TC?.appRoutes?.withdraw || '/udbetaling';\r\n\r\nconst routes = {\r\n login: {\r\n url: '/bruger/log-ind/brugernavn',\r\n },\r\n documentation: {\r\n url: '/bruger/opret-konto/dokumentation/afventer-dokumentation',\r\n },\r\n withdrawAmount: {\r\n url: `${appBaseRoute}/beloeb`,\r\n label: 'Udbetaling',\r\n progress: '33',\r\n isVisible: true,\r\n skipAuth: true\r\n },\r\n withdrawAmountBonus: {\r\n url: `${appBaseRoute}/bonus-info`\r\n },\r\n withdrawOverview: {\r\n url: `${appBaseRoute}/godkend`,\r\n label: 'Udbetaling',\r\n progress: '66',\r\n isVisible: true\r\n },\r\n withdrawConfirmed: {\r\n url: `${appBaseRoute}/godkend/postback`,\r\n label: 'Udbetaling',\r\n progress: '66',\r\n isVisible: true\r\n },\r\n withdrawSuccess: {\r\n url: `${appBaseRoute}/bekraeftelse`\r\n },\r\n withdrawFailed: {\r\n url: `${appBaseRoute}/afvisning`\r\n },\r\n generalError: {\r\n url: `${appBaseRoute}/fejl`,\r\n skipAuth: true,\r\n },\r\n sessionFail: {\r\n url: `${appBaseRoute}/session-udloebet`,\r\n label: '',\r\n skipAuth: true,\r\n }\r\n};\r\n\r\nexport default routes;\r\n","// Constants for sessionStorage\r\nexport const userVerified = 'userVerified';\r\nexport const hasUploaded = 'hasUploaded';\r\n","// Tracking\r\nexport const ErrorCategory = 'errorMessage';\r\n","import React from 'react';\r\n\r\nexport default React.createContext({});\r\n","import React, { useContext } from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport AuthContext from 'app/withdrawFlow/context/Auth';\r\n\r\nconst PrivateRoute = (props) => {\r\n\tconst auth = useContext(AuthContext);\r\n\r\n\treturn auth\r\n\t\t? \r\n\t\t: ;\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import React from 'react';\r\n\r\nconst populate = (dictionary, data, dangerously) => {\r\n\tlet populated = dictionary;\r\n\tif (data) {\r\n\t\tdata.forEach((entry) => {\r\n\t\t\tif (dictionary && dictionary.includes(entry.key)) {\r\n\t\t\t\tpopulated = populated.replace(new RegExp('{' + entry.key + '}', 'gi'), entry.value);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\tconst html = {\r\n\t\t__html: populated\r\n\t};\r\n\r\n\treturn dangerously ? : populated;\r\n};\r\n\r\nexport default populate;\r\n","export const formatCurrency = (number, useFixed, noCurrency) => {\r\n if (useFixed) {\r\n return new Intl.NumberFormat('da-DA', {\r\n style: 'currency',\r\n currency: 'DKK',\r\n maximumFractionDigits: 0,\r\n minimumFractionDigits: 0\r\n }).format(number);\r\n }\r\n\r\n if (noCurrency) {\r\n return new Intl.NumberFormat('da-DA', {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2\r\n }).format(number);\r\n }\r\n return new Intl.NumberFormat('da-DA', {\r\n style: 'currency',\r\n currency: 'DKK'\r\n }).format(number);\r\n};\r\n\r\nexport const currencyInputPattern = (text) => {\r\n const regex = /^[\\d]*([,\\d]{1,3})?$/;\r\n const matched = text.match(regex);\r\n if (matched) {\r\n return matched[0];\r\n }\r\n return text.substring(0, text.length - 1);\r\n};\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\nimport ApiRequest from 'foundation/apiRequest/apiRequest';\r\n\r\nconst createWithdraw = createAsyncThunk(\r\n '/withdraw/createWithdraw',\r\n async (ignore_, thunkAPI) => {\r\n const {\r\n withdrawAmount: {\r\n Amount\r\n },\r\n } = thunkAPI.getState();\r\n\r\n const formData = {\r\n Amount: parseFloat(Amount) || 0\r\n };\r\n\r\n try {\r\n const response = await ApiRequest(`${process.env.API_URL}/\r\n\t\t\t\t\ttivolicasino/payment/withdraw`, { method: 'POST', data: formData });\r\n return response;\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n);\r\n\r\nconst getBalance = createAsyncThunk(\r\n '/balance/getBalance',\r\n async () => {\r\n try {\r\n const response = await ApiRequest(`${process.env.API_URL}/\r\n\t\t\t\t\ttivolicasino/payment/balance`, { method: 'GET' });\r\n return response;\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n);\r\n\r\nconst getActiveBonus = createAsyncThunk(\r\n '/bonus/getActiveBonus',\r\n async () => {\r\n try {\r\n return await ApiRequest(`${process.env.API_URL}/\r\n\t\t\t\t\ttivolicasino/payment/getactivebonus`, { method: 'GET' });\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n);\r\n\r\nconst getDepositLimits = createAsyncThunk(\r\n '/withdraw/getDepositLimits',\r\n async () => {\r\n try {\r\n return await ApiRequest(`${process.env.API_URL}/tivolicasino/payment/getdepositlimits`,\r\n { method: 'GET' });\r\n } catch (err) {\r\n return new Error(err);\r\n }\r\n }\r\n);\r\n\r\nconst voidBonus = createAsyncThunk(\r\n '/bonus/voidBonus',\r\n async (ignore_, thunkAPI) => {\r\n const {\r\n withdrawAmount: {\r\n BonusId\r\n },\r\n } = thunkAPI.getState();\r\n\r\n const formData = {\r\n bonusId: BonusId\r\n };\r\n\r\n try {\r\n const response = await ApiRequest(`${process.env.API_URL}/\r\n\t\t\t\t\ttivolicasino/payment/voidBonus`, { method: 'POST', data: formData });\r\n return response;\r\n } catch (error) {\r\n return error;\r\n }\r\n }\r\n);\r\n\r\nexport {\r\n createWithdraw,\r\n getBalance,\r\n getActiveBonus,\r\n getDepositLimits,\r\n voidBonus\r\n};","import React, { useState, useContext, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { useLastLocation } from 'react-router-last-location';\r\nimport PropTypes from 'prop-types';\r\nimport { useForm } from 'react-hook-form';\r\nimport { ErrorCategory } from 'app/withdrawFlow/constants';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport registerRoutes from 'app/registerFlow/routes';\r\nimport redirect from 'app/popup/routes';\r\nimport { unwrapErrorStatusText } from 'foundation/apiRequest/apiRequest';\r\nimport Dictionary from 'app/withdrawFlow/context/Dictionary';\r\nimport { getBalance, getDepositLimits, getActiveBonus } from 'app/shared/store/api/withdraw';\r\nimport { populate, formatCurrency } from 'app/withdrawFlow/Helpers';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { onError } from 'foundation/tracking/tracking';\r\nimport { unwrapResult } from '@reduxjs/toolkit';\r\nimport { update, empty } from 'app/shared/store/slices/withdrawAmountSlice';\r\nimport { updateBonus } from 'app/shared/store/slices/withdrawAmountBonusSlice';\r\nimport { showFlowAfterLogin } from 'app/shared/store/slices/currentUserSlice';\r\nimport {\r\n\tHeading,\r\n\tParagraph,\r\n\tPhrasePrimary,\r\n\tPhraseSecondary,\r\n\tIcon,\r\n\tLink,\r\n\tLabel,\r\n\tInput\r\n} from 'atoms';\r\nimport { BackBtn, Button } from 'molecules';\r\n\r\nconst WithdrawAmount = (props) => {\r\n\tconst context = useContext(Dictionary);\r\n\tconst [balance, setBalance] = useState(null);\r\n\tconst [fetchData, setFetchData] = useState(true);\r\n const currentUser = useSelector(state => state.currentUser);\r\n\tconst withdrawAmount = useSelector(state => state.withdrawAmount);\r\n\tconst withdrawAmountBonus = useSelector(state => state.withdrawAmountBonus)\r\n\tconst dictionary = context?.withdrawamount;\r\n\tconst dispatch = useDispatch();\r\n\tconst {\r\n\t\tregister,\r\n\t\thandleSubmit,\r\n\t\terrors,\r\n\t\tclearErrors,\r\n\t\tsetValue,\r\n\t} = useForm({\r\n\t\tmode: 'onBlur',\r\n\t\treValidateMode: 'onBlur',\r\n\t\tdefaultValues: withdrawAmount\r\n\t});\r\n\tconst lastLocation = useLastLocation();\r\n\r\n\tconst resetForm = () => {\r\n\t\tdocument.querySelector('.o-form') && document.querySelector('.o-form').reset();\r\n\t}\r\n\r\n\tconst verifyBonusState = async () => {\r\n\t\ttry {\r\n\t\t\tif(lastLocation === null || lastLocation.pathname !== routes.withdrawAmountBonus.url) {\r\n\t\t\t\tdispatch(empty());\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error('No need to clear bonus, returning from accept view')\r\n\t\t\t}\r\n\r\n\t\t\treturn Promise.resolve(true);\r\n\t\t} catch (error) {\r\n\t\t\treturn Promise.reject(error);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tlet isMounted = true;\r\n\r\n if(!currentUser.currentUser.isAuthenticated) {\r\n dispatch(showFlowAfterLogin({showWithdraw: true, showDeposit: false}));\r\n\t props.history.push(registerRoutes.detectLogin.url);\r\n return;\r\n }\r\n\r\n dispatch(getDepositLimits())\r\n .then(unwrapResult)\r\n .then((limitsResponse) => {\r\n if (limitsResponse.status >= 400 || limitsResponse.status === undefined) {\r\n throw limitsResponse;\r\n }\r\n const hasLimits = limitsResponse.data?.DepositLimit && limitsResponse.data?.DepositLimit[0].Limits.some((limit) => {\r\n return limit.Limit !== null;\r\n })\r\n if (hasLimits) {\r\n dispatch(getBalance())\r\n .then(unwrapResult)\r\n .then((balanceResponse) => {\r\n if (balanceResponse.status >= 400 || balanceResponse.status === undefined) {\r\n throw balanceResponse;\r\n }\r\n if (balanceResponse.data) {\r\n if (isMounted) {\r\n dispatch(update({\r\n Amount: null,\r\n VoidBonus: null,\r\n BonusId: null\r\n }));\r\n\r\n setBalance(balanceResponse.data.RealAmount.Amount);\r\n setValue('Amount', ''); // Lets clear any previous values in input\r\n\r\n verifyBonusState()\r\n .then((success) => {\r\n // We need to fetch bonus\r\n dispatch(getActiveBonus())\r\n .then(unwrapResult)\r\n .then((bonusResponse) => {\r\n // Any error code 4xx and 5xx\r\n if (bonusResponse.status >= 400 || bonusResponse.status === undefined) {\r\n throw bonusResponse;\r\n }\r\n if (bonusResponse.data && !withdrawAmountBonus.VoidBonus) {\r\n dispatch(updateBonus({\r\n BonusCurrent: bonusResponse.data.Wagered,\r\n BonusTarget: bonusResponse.data.WageringReq,\r\n BonusId: bonusResponse.data.BonusId,\r\n BonusAmount: balanceResponse.data.BonusAmount.Amount,\r\n Balance: balanceResponse.data.RealAmount.Amount,\r\n }));\r\n props.history.push(routes.withdrawAmountBonus.url);\r\n } else {\r\n setFetchData(false);\r\n resetForm();\r\n }\r\n })\r\n .catch((error) => {\r\n const { statusText } = unwrapErrorStatusText(error);\r\n window?.TC?.gaEvent('endpointError', ErrorCategory, `endpoint_get_balance_failed_with_${statusText}`);\r\n if (isMounted) {\r\n props.history.push(routes.generalError.url);\r\n }\r\n });\r\n }).catch(() => {\r\n //Already have data we need, lets ready up ui\r\n setFetchData(false);\r\n resetForm();\r\n })\r\n\r\n\r\n }\r\n } else {\r\n throw balanceResponse; // Can't find balance, something went wrong\r\n }\r\n })\r\n .catch((error) => {\r\n const { statusText } = unwrapErrorStatusText(error);\r\n window?.TC?.gaEvent('endpointError', ErrorCategory, `endpoint_get_active_bonuses_failed_with_${statusText}`);\r\n props.history.push(routes.generalError.url);\r\n });\r\n } else {\r\n // Redirect since no limits is set.\r\n props.history.push(redirect.limits.url);\r\n return;\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n const { statusText } = unwrapErrorStatusText(error);\r\n window?.TC?.gaEvent('endpointError', ErrorCategory, `endpoint_get_deposit_limits_failed_with_${statusText}`);\r\n props.history.push(routes.generalError.url);\r\n })\r\n\r\n\r\n\t\treturn () => { isMounted = false; };\r\n\t}, [withdrawAmountBonus.VoidBonus]);\r\n\r\n\tconst onSubmit = (formData) => {\r\n\t\tif (withdrawAmountBonus.BonusAmount && !withdrawAmountBonus.VoidBonus) {\r\n\t\t\tprops.history.push(routes.withdrawAmountBonus.url);\r\n\t\t} else {\r\n\t\t\tconst parsedAmount = formData.Amount.replaceAll('.', '').replace(',', '.'); //Lets clean up pretty formats\r\n\t\t\tdispatch(update({\r\n\t\t\t\tAmount: parsedAmount,\r\n\t\t\t\tBonusId: withdrawAmountBonus.BonusId,\r\n\t\t\t\tVoidBonus: withdrawAmountBonus.VoidBonus\r\n\t\t\t}));\r\n\r\n props.history.push(routes.withdrawOverview.url);\r\n\t\t}\r\n\t};\r\n\r\n\tconst backClick = () => {\r\n\t\tprops.history.goBack();\r\n\t};\r\n\r\n\tconst validateAmount = (amount) => {\r\n\t\tconst parseAmount = amount.replaceAll('.', '').replaceAll(',', '.');\r\n\r\n\t\tif (parseAmount < 50) {\r\n\t\t\treturn dictionary?.ValidationDictionary['forms.validationMessages.withdrawAmountMin'];\r\n\t\t}\r\n\r\n\t\tif (parseAmount > balance) {\r\n\t\t\treturn populate(dictionary?.ValidationDictionary['forms.validationMessages.withdrawAmountMax'],\r\n\t\t\t\t[\r\n\t\t\t\t\t{ key: 'MAX', value: formatCurrency(balance) }\r\n\t\t\t\t],\r\n\t\t\t\ttrue\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{fetchData ?
\r\n\t\t\t\t
\r\n\t\t\t\t\t\tVent venligst\r\n\t\t\t
\r\n\t\t\t\t:
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{dictionary && {dictionary.Title}}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{dictionary?.ManchetText}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t validateAmount(value)\r\n\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\taria-invalid={errors.Amount ? 'true' : 'false'}\r\n\t\t\t\t\t\t\t\tname=\"Amount\"\r\n\t\t\t\t\t\t\t\tid=\"withdraw\"\r\n\t\t\t\t\t\t\t\taria-label=\"withdraw\"\r\n\t\t\t\t\t\t\t\ttitle=\"withdraw\"\r\n\t\t\t\t\t\t\t\tplaceholder={dictionary?.ValidationDictionary['forms.validationMessages.minimalAmount50']}\r\n\t\t\t\t\t\t\t\tclassName=\"a-input a-input--string\"\r\n\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\tstep=\"0.01\"\r\n\t\t\t\t\t\t\t\terrors={errors.Amount}\r\n\t\t\t\t\t\t\t\tonChange={() => clearErrors('Amount')}\r\n\t\t\t\t\t\t\t\tonFocus={(event) => {\r\n\t\t\t\t\t\t\t\t\tconst cleanAmount = event.target.value.replaceAll('.', '');\r\n\t\t\t\t\t\t\t\t\tsetValue('Amount', cleanAmount);\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonBlur={(event) => {\r\n\t\t\t\t\t\t\t\t\tconst replaceComma = event.target.value.replaceAll(',', '.');\r\n\t\t\t\t\t\t\t\t\tconst reduceComma = replaceComma.replace('.','|').replaceAll('.','').replace('|','.');\r\n\t\t\t\t\t\t\t\t\tsetValue('Amount', formatCurrency(reduceComma, false, true));\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tonKeyUp={(event) => {\r\n\t\t\t\t\t\t\t\t\tsetValue('Amount', event.target.value.replace(/[^0-9,]/g, ''));\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t{dictionary?.GuidanceDictionary['forms.guidanceMessages.currencydk']}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{populate(dictionary?.AlternativeText,\r\n\t\t\t\t\t\t\t\t\t[\r\n\t\t\t\t\t\t\t\t\t\t{ key: 'MAX', value: formatCurrency(balance) }\r\n\t\t\t\t\t\t\t\t\t],\r\n\t\t\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{dictionary?.HelpText}\r\n\t\t\t\t\t\t\t{dictionary?.HelpTextLinkText}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nWithdrawAmount.propTypes = {\r\n\tsetView: PropTypes.func,\r\n\thistory: PropTypes.shape({\r\n\t\tpush: PropTypes.func.isRequired,\r\n\t\tgoBack: PropTypes.func\r\n\t}),\r\n\tgoBack: PropTypes.func\r\n};\r\n\r\nexport default withRouter(WithdrawAmount);\r\n","import React, { useContext, useEffect, useState } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { populate, formatCurrency } from 'app/withdrawFlow/Helpers';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport { Heading, Paragraph, Icon } from 'atoms';\r\nimport { PlainButton, Button, UsageBar } from 'molecules';\r\nimport Dictionary from '../../context/Dictionary';\r\nimport { updateBonus } from 'app/shared/store/slices/withdrawAmountBonusSlice';\r\n\r\nconst WithdrawAmountBonus = (props) => {\r\n const context = useContext(Dictionary);\r\n const [bonusContent, setBonusContent] = useState(null);\r\n const withdrawAmountBonus = useSelector(state => state.withdrawAmountBonus);\r\n const dictionary = context?.withdrawbonus;\r\n const dispatch = useDispatch();\r\n\r\n const clickHandle = () => {\r\n dispatch(updateBonus({ VoidBonus: true }));\r\n props.history.push(routes.withdrawAmount.url);\r\n };\r\n\r\n const cancel = () => {\r\n window.location.href = window.location.pathname;\r\n };\r\n\r\n useEffect(() => {\r\n const textData = [{ key: 'BONUS', value: formatCurrency(withdrawAmountBonus.BonusTarget, true) }];\r\n\r\n setBonusContent({\r\n usageValue: withdrawAmountBonus.BonusCurrent,\r\n usageText: formatCurrency(withdrawAmountBonus.BonusCurrent, true),\r\n maxValue: withdrawAmountBonus.BonusTarget,\r\n maxText: formatCurrency(withdrawAmountBonus.BonusTarget, true),\r\n text: dictionary.AlternativeText,\r\n textData\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {dictionary?.Title}\r\n \r\n \r\n \r\n {bonusContent && }\r\n
\r\n
\r\n {\r\n populate(dictionary?.ManchetText, [\r\n { key: 'BONUS', value: formatCurrency(withdrawAmountBonus.BonusAmount) },\r\n { key: 'BALANCE', value: formatCurrency(withdrawAmountBonus.Balance) }\r\n ], true)\r\n }\r\n \r\n
\r\n
\r\n {dictionary?.HelpText}\r\n
\r\n
\r\n );\r\n};\r\n\r\nWithdrawAmountBonus.propTypes = {\r\n setView: PropTypes.func,\r\n history: PropTypes.shape({\r\n push: PropTypes.func.isRequired\r\n }),\r\n};\r\n\r\nexport default withRouter(WithdrawAmountBonus);\r\n","import React, { useState, useContext, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { useForm } from 'react-hook-form';\r\nimport { ErrorCategory, userVerified, hasUploaded} from 'app/withdrawFlow/constants';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { unwrapResult } from '@reduxjs/toolkit';\r\nimport { unwrapErrorStatusText} from 'foundation/apiRequest/apiRequest';\r\nimport {\r\n\tHeading, Paragraph, PhrasePrimary, Icon, Link, Row, Loader\r\n} from 'atoms';\r\nimport { BackBtn, Button } from 'molecules';\r\nimport Dictionary from '../context/Dictionary';\r\nimport { createWithdraw, voidBonus } from 'app/shared/store/api/withdraw';\r\nimport { formatCurrency } from '../Helpers';\r\nimport registerRoutes from 'app/registerFlow/routes';\r\nimport { empty } from 'app/shared/store/slices/withdrawAmountSlice';\r\nimport { isMobile } from 'foundation/utilities/isMobile';\r\n\r\nconst WithdrawOverview = (props) => {\r\n\tconst context = useContext(Dictionary);\r\n\tconst withdrawAmount = useSelector(state => state.withdrawAmount);\r\n\tconst amount = parseFloat(withdrawAmount?.Amount) || 0;\r\n\tconst [isLoading, setLoading] = useState(false);\r\n\tconst currentUser = useSelector(state => state.currentUser.currentUser);\r\n\tconst [executePayout, setExecutePayout] = useState(false);\r\n\tconst dictionary = context?.withdrawoverview;\r\n\tconst dispatch = useDispatch();\r\n\tconst { handleSubmit } = useForm();\r\n\tconst isPayoutVerifyEnabled = context?.config.isPayoutVerifyEnabled;\r\n\tconst isPayoutVerifyEnabledMobile = context?.config.isPayoutVerifyEnabledMobile;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (routes.withdrawConfirmed.url === props.location.pathname) {\r\n\t\t\tsetExecutePayout(true);\r\n\t\t\tdispatchWithdraw();\r\n\t\t}\r\n\t}, [props.history.pathname]);\r\n\r\n\tconst dispatchWithdraw = () => {\r\n\t\tdispatch(createWithdraw())\r\n\t\t\t.then(unwrapResult)\r\n\t\t\t.then((res) => {\r\n\t\t\t\t// Any error code 4xx and 5xx\r\n\t\t\t\tif (res.status >= 400 || res.status === undefined) {\r\n\t\t\t\t\tthrow res;\r\n\t\t\t\t}\r\n\t\t\t\tprops.history.push(routes.withdrawSuccess.url);\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconst { statusText } = unwrapErrorStatusText(error);\r\n\t\t\t\tconst errorData = error?.response?.data?.ResponseData?.Data;\r\n\r\n\t\t\t\twindow?.TC?.gaEvent('endpointError', ErrorCategory, `endpoint_create_withdraw_failed_with_${statusText}`);\r\n\r\n\t\t\t\tif (error.response.status === 401 && shouldVerifyAction()) {\r\n\t\t\t\t\tprops.history.push(registerRoutes.confirmActionError.url);\r\n\t\t\t\t} else if (errorData && error.response.status === 403 && errorData?.UserVerified === 'false') {\r\n\t\t\t\t\tsessionStorage.setItem(userVerified, 'false');\r\n\t\t\t\t\tsessionStorage.setItem(hasUploaded, errorData?.HasUploaded.toLowerCase() ?? 'false');\r\n\t\t\t\t\tprops.history.push(routes.documentation.url)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tprops.history.push(routes.withdrawFailed.url);\r\n\t\t\t\t}\r\n\t\t\t}).finally(() => {\r\n\t\t\t\tif (shouldVerifyAction()) {\r\n\t\t\t\t\tdispatch(empty());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tconst shouldVerifyAction = () => {\r\n\t\tif (currentUser.hasConfirmedWithdrawOnce) return false;\r\n\t\tif (isMobile.any() && isPayoutVerifyEnabledMobile) return true;\r\n\t\tif (!isMobile.any() && isPayoutVerifyEnabled) return true;\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst dispatchVoidBonus = () => {\r\n\t\treturn dispatch(voidBonus())\r\n\t\t\t.then(unwrapResult)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (res.status >= 400 || res.status === undefined) {\r\n\t\t\t\t\tthrow res;\r\n\t\t\t\t}\r\n\t\t\t\treturn Promise.resolve(true);\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tconst { statusText } = unwrapErrorStatusText(error);\r\n\t\t\t\treturn Promise.reject(statusText);\r\n\t\t\t});\r\n\t}\r\n\r\n\tconst onSubmit = () => {\r\n\t\tsetLoading(true);\r\n\t\tif (withdrawAmount.BonusId) {\r\n\t\t\tif (withdrawAmount.VoidBonus) {\r\n\t\t\t\tdispatchVoidBonus()\r\n\t\t\t\t\t.then((success) => {\r\n\t\t\t\t\t\tif (success) {\r\n\t\t\t\t\t\t\tif (shouldVerifyAction()) {\r\n\t\t\t\t\t\t\t\tprops.history.push({\r\n\t\t\t\t\t\t\t\t\tpathname: registerRoutes.confirmAction.url,\r\n\t\t\t\t\t\t\t\t\tstate: {\r\n\t\t\t\t\t\t\t\t\t\treturnUrl: routes.withdrawConfirmed.url,\r\n\t\t\t\t\t\t\t\t\t\terrorReturnUrl: registerRoutes.confirmActionError.url,\r\n\t\t\t\t\t\t\t\t\t\tdictionaryType: 'confirmpayoutaction',\r\n hideAlert: true\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdispatchWithdraw();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error)=> {\r\n\t\t\t\t\twindow?.TC?.gaEvent('endpointError', ErrorCategory, `endpoint_void_bonus_failed_with_${error}`);\r\n\t\t\t\t\tprops.history.push(routes.generalError.url);\r\n\t\t\t\t})\r\n\t\t\t} else {\r\n\t\t\t\tprops.history.push(routes.withdrawAmountBonus.url);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (shouldVerifyAction()) {\r\n\t\t\t\tprops.history.push({\r\n\t\t\t\t\tpathname: registerRoutes.confirmAction.url,\r\n\t\t\t\t\tstate: {\r\n\t\t\t\t\t\treturnUrl: routes.withdrawConfirmed.url,\r\n\t\t\t\t\t\terrorReturnUrl: registerRoutes.confirmActionError.url,\r\n\t\t\t\t\t\tdictionaryType: 'confirmpayoutaction',\r\n hideAlert: true\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdispatchWithdraw();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tconst backClick = () => {\r\n\t\tprops.history.goBack();\r\n\t};\r\n\r\n\tif (executePayout) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t{dictionary && {dictionary.Title}}\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{dictionary?.ManchetText}\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t{dictionary?.HelpText}\r\n\t\t\t\t\t{dictionary?.HelpTextLinkText}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nWithdrawOverview.propTypes = {\r\n\tsetView: PropTypes.func,\r\n\thistory: PropTypes.shape({\r\n\t\tpush: PropTypes.func.isRequired,\r\n\t\tgoBack: PropTypes.func\r\n\t}),\r\n\tgoBack: PropTypes.func\r\n};\r\n\r\nexport default withRouter(WithdrawOverview);\r\n","import React, { useContext, useEffect } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Heading, Paragraph, PhrasePrimary, Icon, Link } from 'atoms';\r\nimport { Button } from 'molecules';\r\nimport Dictionary from '../context/Dictionary';\r\nimport { pushGaEvent } from '../../../foundation/tracking/tracking';\r\nimport { formatCurrency } from 'app/withdrawFlow/Helpers';\r\n\r\nconst WithdrawSuccess = (props) => {\r\n const context = useContext(Dictionary);\r\n const dictionary = context?.withdrawsuccess;\r\n const withdrawAmount = useSelector(state => state.withdrawAmount.Amount);\r\n const clickHandle = () => {\r\n window.location.href = window.location.pathname;\r\n };\r\n\r\n useEffect( () => {\r\n pushGaEvent('withdraw', 'success', formatCurrency(withdrawAmount));\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {dictionary?.Title}\r\n \r\n \r\n \r\n
\r\n {dictionary?.ManchetText ?
\r\n {dictionary?.ManchetText}\r\n
: '' }\r\n
\r\n \r\n {dictionary?.HelpText}\r\n {dictionary?.HelpTextLinkText}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nWithdrawSuccess.propTypes = {\r\n setView: PropTypes.func,\r\n history: PropTypes.shape({\r\n push: PropTypes.func.isRequired\r\n }),\r\n};\r\n\r\nexport default withRouter(WithdrawSuccess);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n\tHeading, Paragraph, PhrasePrimary, Icon, Link\r\n} from 'atoms';\r\nimport { Button } from 'molecules';\r\n\r\nconst ErrorMessage = ({\r\n\tdictionary, clickHandle, ButtonText, linkTarget\r\n}) => (\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{dictionary && {dictionary.Title}}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{dictionary?.ManchetText}\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t{dictionary?.HelpText}\r\n\t\t\t\t{dictionary?.HelpTextLinkText}\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n);\r\n\r\nErrorMessage.propTypes = {\r\n\tdictionary: PropTypes.shape({\r\n\t\tTitle: PropTypes.string.isRequired,\r\n\t\tManchetText: PropTypes.string.isRequired,\r\n\t\tHelpText: PropTypes.string,\r\n\t\tHelpTextLink: PropTypes.string,\r\n\t\tHelpTextLinkText: PropTypes.string,\r\n\t\tHelpTextLinkTarget: PropTypes.string,\r\n\t\tlinkTarget: PropTypes.string\r\n\t}),\r\n\tButtonText: PropTypes.string,\r\n\tclickHandle: PropTypes.func,\r\n\tlinkTarget: PropTypes.string\r\n};\r\n\r\nexport default ErrorMessage;\r\n","import React, { useContext } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { ErrorMessage } from 'app/withdrawFlow/containers';\r\nimport { populate, formatCurrency } from 'app/withdrawFlow/Helpers';\r\nimport { useSelector } from 'react-redux';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport Dictionary from '../context/Dictionary';\r\n\r\nconst WithdrawFailed = (props) => {\r\n const context = useContext(Dictionary);\r\n const dictionary = context?.withdrawfailed;\r\n const withdrawAmount = useSelector(state => state.withdrawAmount);\r\n const amount = parseFloat(withdrawAmount?.Amount) || 0;\r\n\r\n if (dictionary.ManchetText) {\r\n dictionary.ManchetText = populate(dictionary.ManchetText, [{ key: 'AMOUNT', value: formatCurrency(amount) }]);\r\n }\r\n\r\n const clickHandle = () => {\r\n props.history.push(routes.withdrawAmount.url);\r\n };\r\n return (\r\n clickHandle()}\r\n ButtonText={dictionary?.CtaText}\r\n />);\r\n};\r\n\r\nWithdrawFailed.propTypes = {\r\n setView: PropTypes.func,\r\n history: PropTypes.shape({\r\n push: PropTypes.func.isRequired\r\n }),\r\n};\r\n\r\nexport default withRouter(WithdrawFailed);\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport Dictionary from 'app/withdrawFlow/context/Dictionary';\r\nimport { ErrorMessage } from 'app/withdrawFlow/containers';\r\nimport routes from 'app/withdrawFlow/routes';\r\n\r\nconst GeneralError = (props) => {\r\n const context = useContext(Dictionary);\r\n const dictionary = context?.generalerror;\r\n\r\n const clickHandle = () => {\r\n props.history.push(routes.withdrawAmount.url);\r\n };\r\n\r\n return (\r\n clickHandle()}\r\n ButtonText={dictionary?.CtaText}\r\n />);\r\n};\r\n\r\nGeneralError.propTypes = {\r\n setView: PropTypes.func,\r\n history: PropTypes.shape({\r\n push: PropTypes.func.isRequired\r\n })\r\n};\r\n\r\n\r\nexport default withRouter(GeneralError);\r\n","import React, { useContext } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport Dictionary from 'app/withdrawFlow/context/Dictionary';\r\nimport { ErrorMessage } from 'app/withdrawFlow/containers';\r\n\r\nconst SessionFail = (props) => {\r\n const context = useContext(Dictionary);\r\n const dictionary = context?.sessionexpired;\r\n\r\n const clickHandle = () => {\r\n props.history.push(routes.login.url);\r\n };\r\n\r\n return (\r\n );\r\n};\r\n\r\nSessionFail.propTypes = {\r\n setView: PropTypes.func,\r\n history: PropTypes.shape({\r\n push: PropTypes.func.isRequired\r\n }),\r\n};\r\n\r\nexport default withRouter(SessionFail);\r\n","import React, { useEffect, useState } from 'react';\r\nimport {\r\n\tSwitch, Route, withRouter, useLocation\r\n} from 'react-router-dom';\r\nimport { SwitchTransition, CSSTransition } from 'react-transition-group';\r\nimport { LastLocationProvider } from 'react-router-last-location';\r\nimport routes from 'app/withdrawFlow/routes';\r\nimport { Provider } from 'react-redux';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport PropTypes from 'prop-types';\r\nimport { fetchAuth } from 'foundation/Helpers/fetchAuth';\r\nimport { ErrorCategory, userVerified } from 'app/withdrawFlow/constants';\r\nimport AuthContext from 'app/withdrawFlow/context/Auth';\r\nimport { PrivateRoute } from 'app/withdrawFlow/Helpers';\r\nimport {\r\n\tWithdrawAmount,\r\n\tWithdrawAmountBonus,\r\n\tWithdrawOverview,\r\n\tWithdrawSuccess,\r\n\tWithdrawFailed,\r\n\tGeneralError,\r\n\tSessionFail\r\n} from 'app/withdrawFlow/Views';\r\nimport { store, persistor } from 'app/shared/store';\r\nimport { ProgressBar } from 'molecules';\r\nimport { Modal } from 'organisms';\r\n\r\nconst WithdrawApp = (props) => {\r\n\tconst [isModalOpen, setModalVisibility] = useState(null);\r\n\tconst [auth, setAuth] = useState(true);\r\n\tconst { pathname } = props.location;\r\n\r\n\tconst currentRoute = Object.values(routes).filter((route) => {\r\n\t\tif (route.url.indexOf(':') > -1) {\r\n\t\t\tconst tempRoute = route.url.substring(0, route.url.indexOf(':'));\r\n\t\t\tconst isPartOfRoute = pathname.indexOf(tempRoute);\r\n\t\t\tif (isPartOfRoute === 0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn route.url === pathname;\r\n\t})[0];\r\n\r\n\tconst { progress, label, isVisible, skipAuth } = currentRoute || {};\r\n\tconst location = useLocation();\r\n\tlet closeTitle = 'Luk';\r\n\tif (pathname === routes.withdrawAmount.url || pathname === routes.withdrawOverview.url) {\r\n\t\tcloseTitle = 'Afbryd';\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tlet isMounted = true;\r\n\r\n\t\ttry {\r\n\t\t\t\tconst pathArray = pathname.split('/');\r\n\t\t\t\tlet name = pathArray[pathArray.length - 1];\r\n\r\n\t\t\t\tif (!name.length) {\r\n\t\t\t\t\tname = 'forside';\r\n\t\t\t\t}\r\n\t\t\t\tif (currentRoute) {\r\n\t\t\t\t\tif (sessionStorage\r\n\t\t\t\t\t\t&& sessionStorage.getItem(userVerified)\r\n\t\t\t\t\t\t&& sessionStorage.getItem(userVerified).replace(/[^\\w!?]/g,'') === 'false') {\r\n\t\t\t\t\t\treturn props.history.push(routes.documentation.url);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!skipAuth) {\r\n\t\t\t\t\t\tfetchAuth()\r\n\t\t\t\t\t\t\t.then((authResponse) => {\r\n if (isMounted) {\r\n setAuth(authResponse?.data?.Data?.IsAuthValid.toLowerCase() === 'true');\r\n }\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.catch((authError) => {\r\n if (isMounted) {\r\n setAuth(false);\r\n }\r\n\t\t\t\t\t\t\t\twindow?.TC?.gaEvent('sessionError', ErrorCategory, `session_failed_with_${authError.statusText}`);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow?.TC?.pushVirtualPage(name, `/virtualPath/udbetaling${pathname}`, '');\r\n if (isMounted) {\r\n setModalVisibility(true);\r\n }\r\n\t\t\t\t} else {\r\n\t\t\t\t\tprops.history.push(routes.generalError.url);\r\n\t\t\t\t}\r\n\r\n\t\t} catch (pathError) {\r\n\t\t\tconsole.error('Could not get route', pathname, pathError);\r\n\t\t}\r\n\t\treturn () => { isMounted = false; };\r\n\t}, [location]);\r\n\r\n\tconst toggleModal = (isModalVisible) => {\r\n\t\tsetModalVisibility(isModalVisible);\r\n\r\n\t\tif (isModalVisible) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.location.href = window.location.pathname; // Link to current page\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nWithdrawApp.propTypes = {\r\n\thistory: PropTypes.shape({\r\n\t\tpush: PropTypes.func.isRequired,\r\n\t}),\r\n\tlocation: PropTypes.shape({\r\n\t\tpathname: PropTypes.string\r\n\t}),\r\n\tmodelId: PropTypes.string,\r\n\tappBaseRoute: PropTypes.string\r\n};\r\n\r\nexport default withRouter(WithdrawApp);\r\n","import React from 'react';\r\n\r\nexport default React.createContext({});\r\n"],"names":["appBaseRoute","window","TC","appRoutes","withdraw","login","url","documentation","withdrawAmount","label","progress","isVisible","skipAuth","withdrawAmountBonus","withdrawOverview","withdrawConfirmed","withdrawSuccess","withdrawFailed","generalError","sessionFail","userVerified","ErrorCategory","React","props","useContext","AuthContext","Route","Redirect","to","pathname","routes","populate","dictionary","data","dangerously","populated","forEach","entry","includes","key","replace","RegExp","value","html","__html","dangerouslySetInnerHTML","formatCurrency","number","useFixed","noCurrency","Intl","NumberFormat","style","currency","maximumFractionDigits","minimumFractionDigits","format","createWithdraw","createAsyncThunk","async","ignore_","thunkAPI","Amount","getState","formData","parseFloat","ApiRequest","method","error","getBalance","getActiveBonus","getDepositLimits","err","Error","voidBonus","BonusId","bonusId","WithdrawAmount","context","Dictionary","balance","setBalance","useState","fetchData","setFetchData","currentUser","useSelector","state","withdrawamount","dispatch","useDispatch","register","handleSubmit","errors","clearErrors","setValue","useForm","mode","reValidateMode","defaultValues","lastLocation","useLastLocation","resetForm","document","querySelector","reset","useEffect","isMounted","isAuthenticated","then","unwrapResult","limitsResponse","status","undefined","DepositLimit","Limits","some","limit","Limit","balanceResponse","update","VoidBonus","RealAmount","empty","Promise","resolve","reject","verifyBonusState","success","bonusResponse","updateBonus","BonusCurrent","Wagered","BonusTarget","WageringReq","BonusAmount","Balance","history","push","catch","statusText","unwrapErrorStatusText","gaEvent","redirect","limits","showFlowAfterLogin","showWithdraw","showDeposit","registerRoutes","detectLogin","className","BackBtn","onClick","backClick","goBack","Heading","Title","Icon","iconId","Paragraph","ManchetText","name","onSubmit","parsedAmount","replaceAll","onError","Label","Input","useRef","required","ValidationDictionary","validate","amount","parseAmount","validateAmount","id","title","placeholder","type","step","onChange","onFocus","event","cleanAmount","target","onBlur","reduceComma","onKeyUp","GuidanceDictionary","PhraseSecondary","AlternativeText","Button","CtaText","PhrasePrimary","useDiv","HelpText","Link","href","HelpTextLink","HelpTextLinkText","propTypes","setView","PropTypes","isRequired","withRouter","WithdrawAmountBonus","bonusContent","setBonusContent","withdrawbonus","textData","usageValue","usageText","maxValue","maxText","text","UsageBar","content","theme","showUptick","clickHandle","PlainButton","cancel","location","WithdrawOverview","isLoading","setLoading","executePayout","setExecutePayout","withdrawoverview","isPayoutVerifyEnabled","config","isPayoutVerifyEnabledMobile","dispatchWithdraw","res","errorData","response","ResponseData","Data","shouldVerifyAction","confirmActionError","UserVerified","sessionStorage","setItem","HasUploaded","toLowerCase","finally","hasConfirmedWithdrawOnce","isMobile","any","Loader","confirmAction","returnUrl","errorReturnUrl","dictionaryType","hideAlert","Row","left","isHeader","right","isAlternate","isFooter","WithdrawSuccess","withdrawsuccess","pushGaEvent","HelpTextLinkTarget","ErrorMessage","_ref","ButtonText","linkTarget","WithdrawFailed","withdrawfailed","GeneralError","generalerror","SessionFail","sessionexpired","WithdrawApp","isModalOpen","setModalVisibility","auth","setAuth","currentRoute","Object","values","filter","route","indexOf","tempRoute","substring","useLocation","closeTitle","pathArray","split","length","getItem","fetchAuth","authResponse","IsAuthValid","authError","pushVirtualPage","pathError","console","Provider","store","LastLocationProvider","PersistGate","loading","persistor","Modal","visible","toggleModal","isModalVisible","ProgressBar","heading","current","SwitchTransition","CSSTransition","classNames","timeout","Switch","PrivateRoute","exact","path","component","modelId"],"sourceRoot":""}