{"version":3,"file":"static/chunks/15918-b57ad85a40ce58ec.js","sources":["webpack://_N_E/./src/LegacyApp/client/components/betAmountInput/betAmountInput.container.ts","webpack://_N_E/./src/modules/games/Game/store/gameValidation/thunks/doValidateBetAmountThunk.js","webpack://_N_E/./src/LegacyApp/client/components/betAmountInput/betAmountInput.jsx","webpack://_N_E/./src/modules/games/Game/methods/getBetFromMaxProfit.ts","webpack://_N_E/./src/LegacyApp/client/modules/app/checkHotkeysAllowed.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsSingleValue.ts","webpack://_N_E/./src/modules/games/Game/store/game/thunks/getHotkey.thunk.ts","webpack://_N_E/./src/LegacyApp/client/modules/app/getHotkey.ts"],"sourceRoot":"","sourcesContent":["import { connect } from 'react-redux';\n\nimport {\n\tconverterToNative,\n\tconverterToUsd,\n} from '@legacyApp/client/store/converter/converter.actions';\nimport { OPTIONS } from '@legacyApp/client/store/options/options.constants';\nimport { openModal } from '@modules/modals/store/modal.actions';\nimport { gameUpdateAmount } from '@modules/games/Game/store/game/game.actions';\nimport { doValidateBetAmountThunk } from '@modules/games/Game/store/gameValidation/thunks/doValidateBetAmountThunk';\nimport { validateBetAmountThunk } from '@modules/games/Game/store/gameValidation/thunks/validateBetAmountThunk';\nimport { getHotkeyThunk } from '@modules/games/Game/store/game/thunks/getHotkey.thunk';\n\nimport { BetAmountInput } from '@legacyApp/client/components/betAmountInput/betAmountInput';\n\nconst mapStateToProps = (state, props) => {\n\treturn {\n\t\tisMobile: state.app.mobile,\n\t\tbetAmount:\n\t\t\tprops.betAmount !== undefined\n\t\t\t\t? props.betAmount\n\t\t\t\t: state.game?.betAmount[props.game],\n\t\tbetAmountError:\n\t\t\tprops.betAmountError !== undefined\n\t\t\t\t? props.betAmountError\n\t\t\t\t: state.gameValidation?.betAmountError[props.game],\n\t\tautoBetRolling:\n\t\t\tprops.autoBetRolling !== undefined\n\t\t\t\t? props.autoBetRolling\n\t\t\t\t: state.gameAutobet?.autoBetRolling[props.game],\n\t\tcurrency: props.currency || state.user.activeCurrency,\n\t\tmaxButtonDisabled: !state.options[OPTIONS.MAX_BET],\n\t\tdisableButtons:\n\t\t\tprops.disableButtons !== undefined\n\t\t\t\t? props.disableButtons\n\t\t\t\t: state.gameAutobet?.autoBetRolling[props.game],\n\t\tisLogged: state.user.isLogged,\n\t\tdisableHotkeys: !state.options[OPTIONS.HOTKEYS],\n\t\tformCurrency:\n\t\t\tstate.converter.currency === 'usd'\n\t\t\t\t? state.converter.currency\n\t\t\t\t: props.currency || state.user.activeCurrency,\n\t\tbalance:\n\t\t\tstate.balance.balances[props.currency || state.user.activeCurrency],\n\t\tpayout:\n\t\t\tprops.payoutValue !== undefined\n\t\t\t\t? props.payoutValue\n\t\t\t\t: state.game?.payoutValue[props.game],\n\t};\n};\n\nconst mapDispatchToProps = (dispatch, props) => {\n\treturn {\n\t\topenModal: (id, props) => dispatch(openModal(id, 'betAmountInput', props)),\n\t\tupdateBetAmount: (payload) => {\n\t\t\tconst data = {\n\t\t\t\tvalue: payload,\n\t\t\t\tgame: props.game,\n\t\t\t};\n\t\t\tif (props.updateBetAmount) {\n\t\t\t\treturn props.updateBetAmount(data);\n\t\t\t}\n\t\t\treturn dispatch(gameUpdateAmount(data));\n\t\t},\n\t\tgetHotkey: (id, game) => dispatch(getHotkeyThunk(id, game)),\n\t\t// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'argument' implicitly has an 'any' type.\n\t\ttoUsd: (...argument) => dispatch(converterToUsd(...argument)),\n\t\t// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'argument' implicitly has an 'any' type.\n\t\ttoNative: (...argument) => dispatch(converterToNative(...argument)),\n\t\tvalidate: ({ value, currency, isLogged, checkBalance, game }) =>\n\t\t\tdispatch(\n\t\t\t\tvalidateBetAmountThunk({\n\t\t\t\t\tvalue,\n\t\t\t\t\tisLogged,\n\t\t\t\t\tcurrency,\n\t\t\t\t\tcheckBalance,\n\t\t\t\t\tgame: game || props.game,\n\t\t\t\t}),\n\t\t\t),\n\t\tdoValidate: (\n\t\t\tresult,\n\t\t\tvalue,\n\t\t\tcurrency,\n\t\t\tisLogged,\n\t\t\tchangeError,\n\t\t\tcheckBalance,\n\t\t\tclearError,\n\t\t) => {\n\t\t\tif (props.doValidate) {\n\t\t\t\treturn props.doValidate(\n\t\t\t\t\tprops.game,\n\t\t\t\t\tresult,\n\t\t\t\t\tvalue,\n\t\t\t\t\tcurrency,\n\t\t\t\t\tisLogged,\n\t\t\t\t\tchangeError,\n\t\t\t\t\tcheckBalance,\n\t\t\t\t\tclearError,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdispatch(\n\t\t\t\tdoValidateBetAmountThunk(\n\t\t\t\t\tprops.game,\n\t\t\t\t\tresult,\n\t\t\t\t\tvalue,\n\t\t\t\t\tcurrency,\n\t\t\t\t\tisLogged,\n\t\t\t\t\tchangeError,\n\t\t\t\t\tcheckBalance,\n\t\t\t\t\tclearError,\n\t\t\t\t),\n\t\t\t);\n\t\t},\n\t};\n};\n\nconst BetAmountInputContainer = connect(\n\tmapStateToProps,\n\tmapDispatchToProps,\n)(BetAmountInput);\n\nexport { BetAmountInputContainer };\n","import { doValidateBetAmount } from '../gameValidation.actions';\n\nexport const doValidateBetAmountThunk = (\n\tgame,\n\tresult,\n\tvalue,\n\tcurrency,\n\tisLogged,\n\tchangeError = true,\n\tcheckBalance,\n\tclearError,\n) => {\n\treturn (dispatch, getState) => {\n\t\treturn dispatch(\n\t\t\tdoValidateBetAmount(\n\t\t\t\tgame,\n\t\t\t\tresult,\n\t\t\t\tvalue,\n\t\t\t\tgetState().balance.balancesArray,\n\t\t\t\tcurrency,\n\t\t\t\tisLogged,\n\t\t\t\tchangeError,\n\t\t\t\tcheckBalance,\n\t\t\t\tclearError,\n\t\t\t),\n\t\t);\n\t};\n};\n","import PropTypes from 'prop-types';\nimport React, { createRef, PureComponent } from 'react';\nimport styled from 'styled-components';\n\nimport { MODAL_ID } from '@common/constants/modal/ids.modal.constants';\nimport { preventDefault } from '@common/methods/preventDefault';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { config } from '@legacyApp/client/config';\nimport { mathService } from '@legacyApp/client/modules/math/mathService';\nimport { getId } from '@legacyApp/client/modules/app/appService';\nimport { checkHotkeysAllowed } from '@legacyApp/client/modules/app/checkHotkeysAllowed';\nimport { getMinBetAmount } from '@legacyApp/client/modules/app/gameService';\nimport { sentryError } from '@legacyApp/client/modules/app/sentryService';\nimport { trans } from '@legacyApp/client/modules/translation/translate';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { getLimits } from '@legacyApp/methods/currency/getLimits';\n\nimport { ConverterValueContainer } from '@legacyApp/client/components/converterValue';\nimport { CurrencySymbol } from '@legacyApp/client/components/currencySymbol/currencySymbol';\nimport { Input } from '@legacyApp/client/components/input/input';\nimport { InputLabelStyle } from '@legacyApp/client/components/input/styled/inputLabelStyle';\nimport { InputRelativeBoxStyle } from '@legacyApp/client/components/input/styled/inputRelativeBox.styled';\nimport { InputWrapperStyle } from '@legacyApp/client/components/input/styled/inputWrapper.style';\nimport { Tooltip } from '@legacyApp/client/components/tooltip';\nimport { Button } from '@ui/button';\nimport { scientificToDecimal } from '@legacyApp/methods/math/scientificToDecimal';\nimport { getBetFromMaxProfit } from '@modules/games/Game/methods/getBetFromMaxProfit';\n\nconst TITLE = 'Bet amount';\n\nclass BetAmountInput extends PureComponent {\n\tstatic propTypes = {\n\t\tbetAmountError: PropTypes.any,\n\t\tbetAmount: PropTypes.any,\n\t\tcurrency: PropTypes.any,\n\t\tautoBetRolling: PropTypes.any,\n\t\tupdateBetAmount: PropTypes.func,\n\t\tisMobile: PropTypes.any,\n\t\tisLogged: PropTypes.bool,\n\t\tbalance: PropTypes.any,\n\t\tnoModal: PropTypes.any,\n\t\topenModal: PropTypes.func,\n\t\tclassNames: PropTypes.any,\n\t\tdisableButtons: PropTypes.bool,\n\t\tmaxButtonDisabled: PropTypes.bool,\n\t\tdisableHotkeys: PropTypes.bool,\n\t\tonClick: PropTypes.func,\n\t\tdoValidate: PropTypes.func,\n\t\tvalidate: PropTypes.func,\n\t\tgetHotkey: PropTypes.func,\n\t\tformCurrency: PropTypes.any,\n\t\ttoUsd: PropTypes.func,\n\t\ttoNative: PropTypes.func,\n\t\tonModal: PropTypes.bool,\n\t\tnoCheckBalance: PropTypes.bool,\n\t\tisMessage: PropTypes.bool,\n\t\tlocalTheme: PropTypes.any,\n\t\tgame: PropTypes.any,\n\t\tminEnabled: PropTypes.bool,\n\t\tpayout: PropTypes.number,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tconvertedValue: 0,\n\t\t\tid: 'bet-amount',\n\t\t};\n\n\t\tthis.el = createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setConverted(this.props.betAmount);\n\n\t\tthis.doValidate({ error: false }, this.props.betAmount, true, false, true);\n\n\t\tthis.setState({ id: `bet-amount-${getId()}` });\n\n\t\twindow.addEventListener('keydown', this.handleKeyboard);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.doValidate({ error: false }, this.props.betAmount, true, false, true);\n\n\t\twindow.removeEventListener('keydown', this.handleKeyboard);\n\t}\n\n\thandleKeyboard = (obj) => {\n\t\tif (\n\t\t\tthis.props.disableButtons ||\n\t\t\t!this.el ||\n\t\t\t!checkHotkeysAllowed(this.props.disableHotkeys)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (obj.keyCode === this.props.getHotkey('half_amount').keyCode) {\n\t\t\tobj.preventDefault();\n\n\t\t\tthis.halfAmount();\n\t\t}\n\n\t\tif (obj.keyCode === this.props.getHotkey('double_amount').keyCode) {\n\t\t\tobj.preventDefault();\n\n\t\t\tthis.doubleAmount();\n\t\t}\n\n\t\tif (obj.keyCode === this.props.getHotkey('min_amount').keyCode) {\n\t\t\tobj.preventDefault();\n\n\t\t\tthis.minAmount();\n\t\t}\n\t};\n\n\trefEl = (el) => (this.el = el);\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (this.props.disableHotkeys) {\n\t\t\twindow.removeEventListener('keydown', this.handleKeyboard);\n\t\t} else {\n\t\t\twindow.addEventListener('keydown', this.handleKeyboard);\n\t\t}\n\n\t\tconst isCurrencyUpdated = this.props.currency !== prevProps.currency;\n\n\t\tconst isBetAmountUpdated = mathService.isNumberDiff(\n\t\t\tprevProps.betAmount,\n\t\t\tthis.props.betAmount,\n\t\t);\n\n\t\tif (isBetAmountUpdated && this.props.formCurrency !== 'usd') {\n\t\t\tthis.setConverted(this.props.betAmount);\n\t\t}\n\n\t\tif (isCurrencyUpdated) {\n\t\t\tthis.doValidate(undefined, this.props.betAmount, false, false, true);\n\n\t\t\tif (this.props.formCurrency === 'usd') {\n\t\t\t\tconsole.log({\n\t\t\t\t\ttoNative: this.props.toNative(\n\t\t\t\t\t\tthis.state.convertedValue,\n\t\t\t\t\t\tthis.props.currency,\n\t\t\t\t\t\tconfig.decimals.bet,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t),\n\t\t\t\t\tprops: this.props,\n\t\t\t\t\tstate: this.state,\n\t\t\t\t});\n\n\t\t\t\tthis.props.updateBetAmount(\n\t\t\t\t\tthis.props.toNative(\n\t\t\t\t\t\tthis.state.convertedValue,\n\t\t\t\t\t\tthis.props.currency,\n\t\t\t\t\t\tconfig.decimals.bet,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.setConverted(this.props.betAmount);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetConverted = (value) => {\n\t\tvalue = parseFloat(value);\n\n\t\tconst min = getMinBetAmount({\n\t\t\tgame: this.props.game,\n\t\t\tcurrency: this.props.currency,\n\t\t});\n\n\t\tlet convertedValue = this.props.toUsd(\n\t\t\tvalue,\n\t\t\tthis.props.currency,\n\t\t\tconfig.decimals.bet,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\n\t\tif (!convertedValue) {\n\t\t\tlet native = this.props.toNative(\n\t\t\t\tmin,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.bet,\n\t\t\t\tundefined,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tif (native < min) {\n\t\t\t\tconvertedValue = this.props.toUsd(\n\t\t\t\t\tmin,\n\t\t\t\t\tthis.props.currency,\n\t\t\t\t\tconfig.decimals.bet,\n\t\t\t\t\tundefined,\n\t\t\t\t\ttrue,\n\t\t\t\t);\n\t\t\t\tnative = min;\n\t\t\t}\n\n\t\t\tif (value !== 0 && this.props.formCurrency === 'usd') {\n\t\t\t\tthis.props.updateBetAmount(native);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\tconvertedValue: !convertedValue ? min : convertedValue,\n\t\t});\n\t};\n\n\tdoValidate = (result, value, changeError, checkBalance, clearError) => {\n\t\tvalue = this.props.toNative(\n\t\t\tvalue,\n\t\t\tthis.props.currency,\n\t\t\tconfig.decimals.bet,\n\t\t);\n\n\t\tif (this.props.noCheckBalance) {\n\t\t\tcheckBalance = false;\n\t\t}\n\n\t\treturn this.props.doValidate(\n\t\t\tresult,\n\t\t\tvalue,\n\t\t\tthis.props.currency,\n\t\t\tthis.props.isLogged,\n\t\t\tchangeError,\n\t\t\tcheckBalance,\n\t\t\tclearError,\n\t\t);\n\t};\n\n\tvalidate = (value, checkBalance = true, isNative) => {\n\t\tif (!isNative) {\n\t\t\tvalue = this.props.toNative(\n\t\t\t\tvalue,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.bet,\n\t\t\t);\n\t\t}\n\n\t\tif (this.props.noCheckBalance) {\n\t\t\tcheckBalance = false;\n\t\t}\n\n\t\tconsole.log('validate', {\n\t\t\tvalue,\n\t\t\tcurrency: this.props.currency,\n\t\t\tisLogged: this.props.isLogged,\n\t\t\tcheckBalance,\n\t\t});\n\n\t\treturn this.props.validate({\n\t\t\tvalue,\n\t\t\tcurrency: this.props.currency,\n\t\t\tisLogged: this.props.isLogged,\n\t\t\tcheckBalance,\n\t\t});\n\t};\n\n\thalfAmount = () => {\n\t\tif (this.isHalfAmountDisabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.multiplyBetAmount(0.5);\n\t};\n\n\tdoubleAmount = () => {\n\t\tif (this.isDoubleAmountDisabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.multiplyBetAmount(2);\n\t};\n\n\tmultiplyBetAmount(multiplier) {\n\t\tconst isConverted = this.props.formCurrency === 'usd';\n\n\t\tconst betAmount = isConverted\n\t\t\t? parseFloat(this.state.convertedValue)\n\t\t\t: this.getBetAmount();\n\n\t\tlet value = betAmount\n\t\t\t? roundNumber(multiplier * betAmount, config.decimals.bet)\n\t\t\t: getMinBetAmount({\n\t\t\t\t\tgame: this.props.game,\n\t\t\t\t\tcurrency: this.props.currency,\n\t\t\t  });\n\n\t\tif (!value) {\n\t\t\tvalue = getMinBetAmount({\n\t\t\t\tgame: this.props.game,\n\t\t\t\tcurrency: this.props.currency,\n\t\t\t});\n\t\t}\n\n\t\tlet balance = this.getBalance();\n\n\t\tif (isConverted) {\n\t\t\tbalance = this.props.toUsd(\n\t\t\t\tbalance,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.balance,\n\t\t\t);\n\t\t}\n\n\t\tif (balance < value) {\n\t\t\tvalue = balance;\n\t\t}\n\n\t\tconst validateAmount = this.validate(\n\t\t\tthis.props.toNative(value, this.props.currency, config.decimals.bet),\n\t\t\ttrue,\n\t\t\ttrue,\n\t\t);\n\n\t\tconsole.log('betAmountInput - multiplyBetAmount', {\n\t\t\tisConverted,\n\t\t\tmultiplier,\n\t\t\tbetAmount,\n\t\t\tvalue,\n\t\t\tbalance,\n\t\t\tvalidateAmount,\n\t\t\tvalidated: this.props.toNative(\n\t\t\t\tvalue,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.bet,\n\t\t\t),\n\t\t});\n\n\t\tif (!!validateAmount.error !== !!this.props.betAmountError) {\n\t\t\tthis.doValidate(validateAmount, value, false, false, true);\n\n\t\t\tif (validateAmount.error) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (value === undefined) {\n\t\t\treturn sentryError(\n\t\t\t\tnew Error('Undefined bet amount in multiplyBetAmount()'),\n\t\t\t\t{\n\t\t\t\t\tbetAmount,\n\t\t\t\t\tmultiplier,\n\t\t\t\t\tbalance,\n\t\t\t\t\tvalidateAmount,\n\t\t\t\t\tvalue,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (isConverted) {\n\t\t\tthis.update(value);\n\n\t\t\tthis.props.updateBetAmount(\n\t\t\t\tthis.props.toNative(value, this.props.currency, config.decimals.bet),\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.update(\n\t\t\tthis.props.toUsd(value, this.props.currency, config.decimals.bet),\n\t\t);\n\n\t\tthis.props.updateBetAmount(value);\n\t}\n\n\tgetBalance = (balance = this.props.balance) => {\n\t\tbalance = parseFloat(balance);\n\n\t\tconst max = getLimits({\n\t\t\tcurrency: this.props.currency,\n\t\t\tgame: this.props.game,\n\t\t}).amount_maximum;\n\n\t\tconst betFromMaxProfit = this.getBetFromMaxProfit();\n\n\t\tif (max && balance > max) {\n\t\t\tbalance = max;\n\t\t}\n\n\t\tif (betFromMaxProfit && balance > betFromMaxProfit) {\n\t\t\tbalance = betFromMaxProfit;\n\t\t}\n\n\t\tif (balance) {\n\t\t\tbalance = roundNumber(balance, config.decimals.bet, 'floor');\n\t\t}\n\n\t\treturn balance;\n\t};\n\n\tgetBetAmount = () => {\n\t\treturn parseFloat(this.props.betAmount);\n\t};\n\n\tgetBetFromMaxProfit = () => {\n\t\treturn getBetFromMaxProfit({\n\t\t\tpayout: this.props.payout,\n\t\t\tgame: this.props.game,\n\t\t\tcurrency: this.props.currency,\n\t\t});\n\t};\n\n\tmaxAmount = () => {\n\t\tconst balance = roundNumber(\n\t\t\tthis.getBalance(),\n\t\t\tconfig.decimals.bet,\n\t\t\t'floor',\n\t\t);\n\n\t\tconst validateAmount = this.validate(balance, true, true);\n\n\t\tconsole.log('betAmountInput - maxAmount', {\n\t\t\tprops: this.props,\n\t\t\tstate: this.state,\n\t\t\tbalance,\n\t\t\tvalidateAmount,\n\t\t});\n\n\t\tif (!!validateAmount.error !== !!this.props.betAmountError) {\n\t\t\tthis.doValidate(validateAmount, balance, false, false, true);\n\n\t\t\tif (validateAmount.error && balance) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (balance === undefined) {\n\t\t\treturn sentryError(new Error('Undefined bet amount in maxAmount()'), {\n\t\t\t\tprops: this.props,\n\t\t\t\tstate: this.state,\n\t\t\t\tbalance,\n\t\t\t\tvalidateAmount,\n\t\t\t});\n\t\t}\n\n\t\tthis.update(\n\t\t\tthis.props.toUsd(\n\t\t\t\tbalance,\n\t\t\t\tthis.props.currency,\n\t\t\t\tconfig.decimals.bet,\n\t\t\t\t'floor',\n\t\t\t),\n\t\t);\n\n\t\tthis.props.updateBetAmount(balance);\n\t};\n\n\tminAmount = () => {\n\t\tif (\n\t\t\tgetMinBetAmount({\n\t\t\t\tgame: this.props.game,\n\t\t\t\tcurrency: this.props.currency,\n\t\t\t}) === undefined\n\t\t) {\n\t\t\treturn sentryError(new Error('Undefined bet amount in minAmount()'), {\n\t\t\t\tprops: this.props,\n\t\t\t\tstate: this.state,\n\t\t\t\tbetDecimals: config.decimals.bet,\n\t\t\t\tvalue: getMinBetAmount({\n\t\t\t\t\tgame: this.props.game,\n\t\t\t\t\tcurrency: this.props.currency,\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\n\t\tconst value = getMinBetAmount({\n\t\t\tgame: this.props.game,\n\t\t\tcurrency: this.props.currency,\n\t\t});\n\n\t\tthis.update(\n\t\t\tthis.props.toUsd(value, this.props.currency, config.decimals.bet),\n\t\t);\n\n\t\tthis.props.updateBetAmount(value);\n\t};\n\n\thandleAmountClick = () => {\n\t\tif (!this.props.isMobile) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet maxValue = roundNumber(this.getBalance(), config.decimals.bet, 'floor');\n\n\t\tthis.handleInputExtend({\n\t\t\tonChange: this.onUpdate,\n\t\t\tvalue:\n\t\t\t\tthis.props.formCurrency === 'usd'\n\t\t\t\t\t? this.state.convertedValue\n\t\t\t\t\t: this.props.betAmount,\n\t\t\tmaxValue:\n\t\t\t\tthis.props.formCurrency === 'usd'\n\t\t\t\t\t? this.props.toUsd(\n\t\t\t\t\t\t\tmaxValue,\n\t\t\t\t\t\t\tthis.props.currency,\n\t\t\t\t\t\t\tconfig.decimals.bet,\n\t\t\t\t\t\t\t'floor',\n\t\t\t\t\t  )\n\t\t\t\t\t: maxValue,\n\t\t});\n\t};\n\n\thandleInputExtend(data) {\n\t\tif (!this.props.isMobile) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.props.openModal(MODAL_ID.INPUT_EXTEND, {\n\t\t\tisMaxButton: !this.props.maxButtonDisabled,\n\t\t\tmaxValue: data.maxValue,\n\t\t\tprecision: config.decimals.bet,\n\t\t\tonChange: data.onChange,\n\t\t\tarray: data.array,\n\t\t\tvalue: data.value,\n\t\t\tminValue: getMinBetAmount({\n\t\t\t\tgame: this.props.game,\n\t\t\t\tcurrency: this.props.currency,\n\t\t\t}),\n\t\t\ttitle: TITLE,\n\t\t});\n\t}\n\n\tonUpdate = (data) => {\n\t\tlet sanitizedValue = `${scientificToDecimal(data)}`;\n\n\t\tif (/^0[0-9]/.test(sanitizedValue)) {\n\t\t\tsanitizedValue = sanitizedValue.replace(/^0+/, '0');\n\t\t}\n\n\t\tsanitizedValue = sanitizedValue.replace(/[^0-9.]/g, '');\n\n\t\tconst value = this.props.toNative(\n\t\t\tsanitizedValue,\n\t\t\tthis.props.currency,\n\t\t\tconfig.decimals.bet,\n\t\t);\n\n\t\tconst validateAmount = this.validate(value, false, true);\n\n\t\tif (!!validateAmount.error !== !!this.props.betAmountError) {\n\t\t\tthis.doValidate(validateAmount, this.getBalance(), false, false, true);\n\t\t}\n\n\t\tif (value === undefined) {\n\t\t\treturn sentryError(new Error('Undefined bet amount in onUpdate()'), {\n\t\t\t\tprops: this.props,\n\t\t\t\tstate: this.state,\n\t\t\t\tvalidateAmount,\n\t\t\t\tvalue,\n\t\t\t\tbalance: this.getBalance(),\n\t\t\t});\n\t\t}\n\n\t\tthis.update(sanitizedValue);\n\n\t\tthis.props.updateBetAmount(value);\n\t};\n\n\tupdate = (convertedValue) => {\n\t\tif (this.props.formCurrency === 'usd') {\n\t\t\tthis.setState({\n\t\t\t\tconvertedValue,\n\t\t\t});\n\t\t}\n\t};\n\n\tisDoubleAmountDisabled = () => {\n\t\tconst balance = this.getBalance(this.props.balance);\n\n\t\treturn this.getBetAmount() >= balance;\n\t};\n\n\tisMaxAmountDisabled = () => {\n\t\tconst balance = this.getBalance(this.props.balance);\n\n\t\treturn this.getBetAmount() === balance;\n\t};\n\n\tisMinAmountDisabled = () => {\n\t\treturn (\n\t\t\tthis.getBetAmount() ===\n\t\t\tgetMinBetAmount({\n\t\t\t\tgame: this.props.game,\n\t\t\t\tcurrency: this.props.currency,\n\t\t\t})\n\t\t);\n\t};\n\n\tisHalfAmountDisabled = () => {\n\t\tconst minBet = getMinBetAmount({\n\t\t\tgame: this.props.game,\n\t\t\tcurrency: this.props.currency,\n\t\t});\n\n\t\treturn (\n\t\t\tthis.getBetAmount() <= minBet ||\n\t\t\t(this.props.formCurrency === 'usd' && this.state.convertedValue <= minBet)\n\t\t);\n\t};\n\n\trender() {\n\t\tconst button = (\n\t\t\t<InputRelativeBoxStyle\n\t\t\t\tisDisabled={this.props.autoBetRolling}\n\t\t\t\tonClick={this.props.onClick}\n\t\t\t>\n\t\t\t\t<Input\n\t\t\t\t\tid={this.state.id}\n\t\t\t\t\ttype=\"number\"\n\t\t\t\t\tgameInputId=\"betAmount\"\n\t\t\t\t\tnoTranslatePlaceholder={true}\n\t\t\t\t\tplaceholder={'min 1 sat'}\n\t\t\t\t\tonClick={\n\t\t\t\t\t\tthis.props.isMobile && !this.props.noModal\n\t\t\t\t\t\t\t? this.handleAmountClick\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t}\n\t\t\t\t\tisDisabled={this.props.autoBetRolling || this.props.disableButtons}\n\t\t\t\t\tlocalTheme={{\n\t\t\t\t\t\tmessage: this.props.isMessage,\n\t\t\t\t\t}}\n\t\t\t\t\tonChangeDelayed={this.onUpdate}\n\t\t\t\t\tonChange={this.validate}\n\t\t\t\t\tprecision={config.decimals.bet}\n\t\t\t\t\tvalue={\n\t\t\t\t\t\tthis.props.formCurrency === 'usd'\n\t\t\t\t\t\t\t? this.state.convertedValue\n\t\t\t\t\t\t\t: this.props.betAmount\n\t\t\t\t\t}\n\t\t\t\t\tname=\"bet_amount\"\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={`buttons-box ${\n\t\t\t\t\t\tthis.props.autoBetRolling ? 'disabled' : ''\n\t\t\t\t\t}`}\n\t\t\t\t>\n\t\t\t\t\t{!this.props.isMobile && (\n\t\t\t\t\t\t<i>\n\t\t\t\t\t\t\t<CurrencySymbol currency={this.props.formCurrency} noTippy />\n\t\t\t\t\t\t</i>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this.props.minEnabled && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tname=\"bet-amount-min\"\n\t\t\t\t\t\t\tdisabled={this.isMinAmountDisabled()}\n\t\t\t\t\t\t\tclassName={'text-uppercase'}\n\t\t\t\t\t\t\tonClick={this.minAmount}\n\t\t\t\t\t\t\tlabel={trans({ label: 'min' })}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!this.props.disableButtons && !this.props.maxButtonDisabled && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tname=\"bet-amount-max\"\n\t\t\t\t\t\t\tclassName={'text-uppercase'}\n\t\t\t\t\t\t\tdisabled={this.isMaxAmountDisabled()}\n\t\t\t\t\t\t\tonClick={this.maxAmount}\n\t\t\t\t\t\t\tlabel={trans({ label: 'max' })}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!this.props.disableButtons && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tname=\"bet-amount-half\"\n\t\t\t\t\t\t\tdisabled={this.isHalfAmountDisabled()}\n\t\t\t\t\t\t\tlabel={'1/2'}\n\t\t\t\t\t\t\tonClick={this.halfAmount}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!this.props.disableButtons && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tname=\"bet-amount-double\"\n\t\t\t\t\t\t\tdisabled={this.isDoubleAmountDisabled()}\n\t\t\t\t\t\t\tlabel={'2x'}\n\t\t\t\t\t\t\tonClick={this.doubleAmount}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</InputRelativeBoxStyle>\n\t\t);\n\n\t\treturn (\n\t\t\t<BetAmountInputWrapper\n\t\t\t\tref={this.refEl}\n\t\t\t\tlocalTheme={this.props.localTheme}\n\t\t\t\tclassName={this.props.classNames}\n\t\t\t>\n\t\t\t\t<InputLabelStyle\n\t\t\t\t\thtmlFor={this.state.id}\n\t\t\t\t\tonClick={preventDefault}\n\t\t\t\t\tclassName=\"text-style-label-cap flex-space-between width-100\"\n\t\t\t\t>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{trans({ label: TITLE })}{' '}\n\t\t\t\t\t\t{this.props.isMobile && (\n\t\t\t\t\t\t\t<CurrencySymbol currency={this.props.formCurrency} noTippy />\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\n\t\t\t\t\t<ConverterValueContainer\n\t\t\t\t\t\tvalue={this.props.betAmount}\n\t\t\t\t\t\tcurrency={this.props.currency}\n\t\t\t\t\t/>\n\t\t\t\t</InputLabelStyle>\n\n\t\t\t\t{this.props.autoBetRolling || this.props.disableButtons ? (\n\t\t\t\t\tbutton\n\t\t\t\t) : (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tonModal={this.props.onModal}\n\t\t\t\t\t\tnamespace={'common'}\n\t\t\t\t\t\tlocalTheme=\"error\"\n\t\t\t\t\t\tcontent={this.props.betAmountError}\n\t\t\t\t\t\tisVisible={\n\t\t\t\t\t\t\t!!this.props.betAmountError &&\n\t\t\t\t\t\t\ttypeof this.props.betAmountError !== 'boolean'\n\t\t\t\t\t\t}\n\t\t\t\t\t\thideOnClick={false}\n\t\t\t\t\t>\n\t\t\t\t\t\t{button}\n\t\t\t\t\t</Tooltip>\n\t\t\t\t)}\n\t\t\t</BetAmountInputWrapper>\n\t\t);\n\t}\n}\n\nexport const BetAmountInputWrapper = styled(InputWrapperStyle)``;\n\nBetAmountInput = enhanceComponent({\n\tBetAmountInput,\n});\n\nexport { BetAmountInput };\n","import { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { config } from '@legacyApp/client/config';\nimport { getLimits } from '@legacyApp/methods/currency/getLimits';\nimport { GameNameType } from '@legacyApp/types/games/GameNameType';\nimport { CurrencyType } from '@legacyApp/types/wallet/CurrencyType';\n\ntype GetBetFromMaxProfitProps = {\n\tpayout: number | string;\n\tgame: GameNameType;\n\tcurrency: CurrencyType;\n};\n\nexport const getBetFromMaxProfit = ({\n\tpayout,\n\tgame,\n\tcurrency,\n}: GetBetFromMaxProfitProps): number => {\n\tif (!payout) {\n\t\treturn 0;\n\t}\n\n\tconst maxProfit = getLimits({ currency, game })?.profit_maximum;\n\n\tconst payout_ = typeof payout === 'number' ? payout : Number(payout);\n\n\treturn roundNumber(\n\t\tNumber(maxProfit) / (payout_ - 1),\n\t\tconfig.decimals.bet,\n\t\t'floor',\n\t);\n};\n","export const checkHotkeysAllowed = (disableHotKeys: boolean): boolean => {\n\tif (disableHotKeys) {\n\t\treturn false;\n\t}\n\tif (!process.browser) {\n\t\treturn false;\n\t}\n\treturn !(\n\t\tdocument.activeElement &&\n\t\t['input', 'textarea'].indexOf(document.activeElement.localName) > -1\n\t);\n};\n","import { RollRule } from '../types/RollRule';\n\nexport const checkIsSingleValue = (rule: RollRule): boolean => {\n\tif (!rule) {\n\t\treturn true;\n\t}\n\treturn [RollRule.UNDER, RollRule.OVER, RollRule.DIRECT].indexOf(rule) > -1;\n};\n","import { AppThunk } from '@legacyApp/types/store/ThunkAction';\nimport { getHotkey, Hotkey } from '@legacyApp/client/modules/app/getHotkey';\nimport { MODAL_ID } from '@common/constants/modal/ids.modal.constants';\nimport { GameType } from '../../../constants/availableGames';\n\nconst EMPTY_HOTKEY = {\n\tkeyCode: null,\n\tid: null,\n\tname: null,\n\tsymbol: null,\n};\n\nexport const getHotkeyThunk = (\n\tkeyCode: string,\n\tgame: GameType,\n): AppThunk<Hotkey> => {\n\treturn (dispatch, getState) => {\n\t\tconst state = getState();\n\t\t// TODO: NEW GAME FLAG\n\t\tif (game && game !== state.game?.activeGame) {\n\t\t\treturn EMPTY_HOTKEY;\n\t\t}\n\t\tif (\n\t\t\tstate.modal?.id &&\n\t\t\t(state.modal?.id !== MODAL_ID.AUTOBET || keyCode === 'roll')\n\t\t) {\n\t\t\treturn EMPTY_HOTKEY;\n\t\t}\n\t\tif (state.game?.activeGame === GameType.HILO && state.hilo?.skipActive) {\n\t\t\treturn EMPTY_HOTKEY;\n\t\t}\n\t\treturn getHotkey(keyCode, game);\n\t};\n};\n","import { GameType } from '@modules/games/Game/constants/availableGames';\nimport { config } from '../../config';\nimport { game_config } from '../../game_config';\n\nexport interface Hotkey {\n\tid: string;\n\tsymbol: string;\n\tkeyCode: number;\n\tname: string;\n}\n\nexport const getHotkey = (id: string, game: GameType): Hotkey => {\n\tif (!game) {\n\t\treturn config.defaultHotKeys.find((el) => id === el.id);\n\t}\n\t//@ts-expect-error invalid type\n\treturn game_config[game].hotkeys.find((el) => id === el.id);\n};\n"],"names":["BetAmountInputContainer","connect","state","props","isMobile","app","mobile","betAmount","undefined","game","betAmountError","gameValidation","autoBetRolling","gameAutobet","currency","user","activeCurrency","maxButtonDisabled","options","OPTIONS","disableButtons","isLogged","disableHotkeys","formCurrency","converter","balance","balances","payout","payoutValue","dispatch","openModal","id","updateBetAmount","payload","data","value","gameUpdateAmount","getHotkey","getHotkeyThunk","toUsd","converterToUsd","toNative","converterToNative","validate","checkBalance","validateBetAmountThunk","doValidate","result","changeError","clearError","getState","doValidateBetAmount","balancesArray","doValidateBetAmountThunk","BetAmountInput","TITLE","obj","el","checkHotkeysAllowed","keyCode","preventDefault","halfAmount","doubleAmount","minAmount","parseFloat","min","getMinBetAmount","convertedValue","config","native","setState","noCheckBalance","isNative","isHalfAmountDisabled","multiplyBetAmount","isDoubleAmountDisabled","max","getLimits","amount_maximum","betFromMaxProfit","getBetFromMaxProfit","roundNumber","maxProfit","profit_maximum","payout_","Number","getBalance","validateAmount","error","sentryError","Error","update","betDecimals","maxValue","handleInputExtend","onChange","onUpdate","sanitizedValue","scientificToDecimal","test","replace","getBetAmount","minBet","createRef","this","setConverted","getId","window","addEventListener","handleKeyboard","removeEventListener","prevProps","isCurrencyUpdated","mathService","multiplier","isConverted","MODAL_ID","isMaxButton","precision","array","minValue","title","button","isDisabled","onClick","I","type","gameInputId","noTranslatePlaceholder","placeholder","noModal","handleAmountClick","localTheme","message","isMessage","onChangeDelayed","name","className","noTippy","minEnabled","disabled","isMinAmountDisabled","label","trans","isMaxAmountDisabled","maxAmount","BetAmountInputWrapper","ref","refEl","classNames","htmlFor","onModal","namespace","content","isVisible","hideOnClick","PureComponent","styled","InputWrapperStyle","enhanceComponent","disableHotKeys","document","activeElement","indexOf","localName","checkIsSingleValue","rule","RollRule","EMPTY_HOTKEY","symbol","activeGame","modal","GameType","hilo","skipActive","game_config","hotkeys","find"],"mappings":"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","debug_id":"adea860b-dd6a-579d-9538-a97ea673ca8b"}