{"version":3,"file":"static/chunks/gameSlider.1878e263964b3fcd.js","sources":["webpack://_N_E/./src/LegacyApp/client/modules/app/checkHotkeysAllowed.ts","webpack://_N_E/./src/modules/games/DiceGame/components/BetValue/betValue.constants.ts","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResult/ResultStars.jsx","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResult/gameSliderResult.jsx","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResult/gameSliderResult.container.js","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResultRailAnimation/GameSliderResultRailAnimation.styled.js","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResultRailAnimation/GameSliderResultRailAnimation.jsx","webpack://_N_E/./src/modules/games/DiceGame/components/GameSliderResultRailAnimation/GameSliderResultRailAnimation.container.js","webpack://_N_E/./src/modules/games/DiceGame/components/GameSlider/GameSlider.tsx","webpack://_N_E/./src/modules/games/Game/store/game/thunks/updateFormLock.thunk.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsSingleValue.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsWinChanceDisabled.ts","webpack://_N_E/./src/modules/games/Game/methods/getBetValueMaxMin.ts","webpack://_N_E/./src/modules/games/Game/methods/getWinChanceFromBetValues.ts","webpack://_N_E/./src/modules/games/Game/methods/validateBetValue.ts","webpack://_N_E/./src/modules/games/Game/store/game/thunks/getHotkey.thunk.ts","webpack://_N_E/./src/LegacyApp/client/modules/app/getHotkey.ts","webpack://_N_E/./src/modules/games/Game/types/RollRule.ts","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useIsomorphicEffect.js","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useFreshTick.js","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useFreshRef.js","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useWindowEventListener.js","webpack://_N_E/./node_modules/rooks/dist/esm/hooks/useGlobalObjectEventListener.js"],"sourceRoot":"","sourcesContent":["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 { config } from '@legacyApp/client/config';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { GameType } from '../../../Game/constants/availableGames';\n\nexport const GAME = GameType.DICE;\nexport const ID = `${GAME}-value`;\nexport const roundBetValue = (value: number): number => {\n\treturn roundNumber(value, config.decimals.betValue);\n};\n","import React from 'react';\nimport { enhanceComponent } from '../../../../../LegacyApp/client/wrappers/enhanceComponent';\nimport star from '../../../../../../public/img/dice/result-stars.json';\nimport { LottieWrapper } from '../../../../../common/components/LottieWrapper';\nimport { LottieIds } from '../../../../../common/components/LottieWrapper/Lottie.ids';\nimport {\n\tgameSliderResultTransition,\n\tStyledGameSliderResultStarsBox,\n} from './GameSliderResult.styled';\n\nclass ResultStars extends React.PureComponent {\n\tstatic propTypes = {};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tshowSecondStar: false,\n\t\t\tfirstStarFinished: false,\n\t\t\tfinished: false,\n\t\t\tduration: 800,\n\t\t\tdelay: gameSliderResultTransition,\n\t\t};\n\t\tthis.showSecondStar = null;\n\t\tthis.finised = null;\n\t\tthis.firstStarFinished = null;\n\t\tthis.showSecondStar = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tshowSecondStar: true,\n\t\t\t\t}),\n\t\t\tthis.state.delay,\n\t\t);\n\t\tthis.firstStarFinished = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tfirstStarFinished: true,\n\t\t\t\t}),\n\t\t\tthis.state.duration,\n\t\t);\n\t\tthis.finised = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tfinished: true,\n\t\t\t\t}),\n\t\t\tthis.state.delay + this.state.duration,\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.showSecondStar) {\n\t\t\tclearTimeout(this.showSecondStar);\n\t\t}\n\t\tif (this.finised) {\n\t\t\tclearTimeout(this.finised);\n\t\t}\n\t\tif (this.firstStarFinished) {\n\t\t\tclearTimeout(this.firstStarFinished);\n\t\t}\n\t}\n\n\trender() {\n\t\tif (this.state.finished) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\t<StyledGameSliderResultStarsBox>\n\t\t\t\t{!this.state.firstStarFinished && (\n\t\t\t\t\t<LottieWrapper\n\t\t\t\t\t\tdataname={LottieIds.GAME_RESULT_STAR_1}\n\t\t\t\t\t\theight={40}\n\t\t\t\t\t\tjson={star}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{this.state.showSecondStar && (\n\t\t\t\t\t<LottieWrapper\n\t\t\t\t\t\tdataname={LottieIds.GAME_RESULT_STAR_2}\n\t\t\t\t\t\theight={20}\n\t\t\t\t\t\tjson={star}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</StyledGameSliderResultStarsBox>\n\t\t);\n\t}\n}\n\nResultStars = enhanceComponent({\n\tResultStars,\n});\n\nexport { ResultStars };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { config } from '../../../../../LegacyApp/client/config';\nimport { enhanceComponent } from '../../../../../LegacyApp/client/wrappers/enhanceComponent';\nimport { RepeatAnimationClass } from '../../../../../LegacyApp/client/modules/app/animationService';\nimport { roundNumber } from '../../../../../common/methods/roundNumber/roundNumber';\nimport {\n\tStyledGameSliderResult,\n\tStyledGameSliderResultBox,\n} from './GameSliderResult.styled';\nimport { ResultStars } from './ResultStars';\n\nclass GameSliderResult extends React.PureComponent {\n\tstatic propTypes = {\n\t\tdisable: PropTypes.bool,\n\t\tshowResult: PropTypes.any,\n\t\tresult: PropTypes.any,\n\t\tresultValue: PropTypes.any,\n\t\tisMobile: PropTypes.bool,\n\t\tanimation: PropTypes.bool,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tresultValue: false,\n\t\t\t// TODO: range_dice\n\t\t\tresultOffset: `${config.games.dice.betValue}%`,\n\t\t\tanimation: false,\n\t\t};\n\t\tthis.resultAnimation = new RepeatAnimationClass(60000, 300);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setResultValue();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tconst isResultValueChanged =\n\t\t\tthis.props.resultValue !== prevProps.resultValue;\n\n\t\tif (isResultValueChanged) {\n\t\t\tthis.setResultValue();\n\t\t}\n\t}\n\n\tsetResultValue() {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tresultValue: roundNumber(this.props.resultValue, 2),\n\t\t\tresultOffset: `${this.props.resultValue}%`,\n\t\t});\n\t\tif (this.props.result === 'win' && this.props.animation) {\n\t\t\tthis.resultAnimation.trigger(this.state.animation, (bool) =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tanimation: bool,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\n\trender() {\n\t\tif (!this.state.resultValue && this.state.resultValue !== 0) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<StyledGameSliderResultBox\n\t\t\t\tdata-animation={this.state.animation}\n\t\t\t\t$disable={!this.state.animation}\n\t\t\t\t$show={\n\t\t\t\t\tthis.props.showResult ||\n\t\t\t\t\t(this.props.disable && this.state.resultValue)\n\t\t\t\t}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${this.state.resultOffset}, 0)`,\n\t\t\t\t}}\n\t\t\t\tclassName=\"game-slider--box\"\n\t\t\t>\n\t\t\t\t<StyledGameSliderResult\n\t\t\t\t\tname=\"game-slider-result\"\n\t\t\t\t\tclassName=\"text-style-md-medium\"\n\t\t\t\t\t$animation={this.state.animation}\n\t\t\t\t\t$result={this.props.result}\n\t\t\t\t>\n\t\t\t\t\t{this.state.resultValue}\n\t\t\t\t\t{this.state.animation && <ResultStars />}\n\t\t\t\t</StyledGameSliderResult>\n\t\t\t</StyledGameSliderResultBox>\n\t\t);\n\t}\n}\n\nGameSliderResult = enhanceComponent({\n\tGameSliderResult,\n});\n\nexport { GameSliderResult };\n","import { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { OPTIONS } from '../../../../../LegacyApp/client/store/options/options.constants';\nimport { GameSliderResult } from './gameSliderResult';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tisMobile: state.app.mobile,\n\t\tshowResult: !!state.dice?.showResult,\n\t\tresult: state.dice?.result.result,\n\t\tresultValue: state.dice?.result.resultValue,\n\t\tdisable: state.gameAutobet?.autoBetRolling['dice'],\n\t\tanimation: state.options[OPTIONS.ANIMATION],\n\t};\n};\n\nconst GameSliderResultContainer = compose(connect(mapStateToProps, false))(\n\tGameSliderResult,\n);\n\nexport { GameSliderResultContainer };\n","import styled, { css, keyframes } from 'styled-components';\nimport { StyledGameSliderResultBox } from '../GameSliderResult/GameSliderResult.styled';\n\nexport const StyledGameSliderResultRailAnimation = styled(\n\tStyledGameSliderResultBox,\n)`\n\tz-index: 2;\n\n\t@media (min-width: ${(props) => props.theme.media.minWidthDesktop}) {\n\t\tleft: -6px;\n\t}\n\n\t> div {\n\t\tposition: absolute;\n\t\t&:before {\n\t\t\tbackground-color: #00ff1d;\n\t\t\tcontent: '';\n\t\t\tdisplay: block;\n\t\t\theight: 10px;\n\t\t\tleft: 50%;\n\t\t\tposition: absolute;\n\t\t\ttransform: translateX(-50%);\n\t\t\twidth: 0;\n\t\t}\n\n\t\t${(props) =>\n\t\t\tprops.$animation\n\t\t\t\t? css`\n\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\tanimation: ${ResultAnimation} 0.5s linear;\n\t\t\t\t\t\t}\n\t\t\t\t  `\n\t\t\t\t: ''}\n\t}\n`;\n\nconst ResultAnimation = keyframes`\n  0% {\n    width: 0;\n    opacity: 1;\n  }\n  100% {\n    width: 60px;\n    opacity: 0;\n  }\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { config } from '@legacyApp/client/config';\nimport { enhanceComponent } from '@legacyApp/client/wrappers/enhanceComponent';\nimport { RepeatAnimationClass } from '@legacyApp/client/modules/app/animationService';\nimport { gameSliderResultTransition } from '../GameSliderResult/GameSliderResult.styled';\nimport { StyledGameSliderResultRailAnimation } from './GameSliderResultRailAnimation.styled';\n\nclass GameSliderResultRailAnimation extends React.PureComponent {\n\tstatic propTypes = {\n\t\tshowResult: PropTypes.any,\n\t\tresult: PropTypes.any,\n\t\tresultValue: PropTypes.any,\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\t// TODO: range_dice\n\t\t\tresultOffset: `${config.games.dice.betValue}%`,\n\t\t\tanimation: false,\n\t\t};\n\t\tthis.resultAnimation = new RepeatAnimationClass(\n\t\t\t500,\n\t\t\tgameSliderResultTransition,\n\t\t);\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.setResultValue();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tconst isResultValueChanged =\n\t\t\tthis.props.resultValue !== prevProps.resultValue;\n\n\t\tif (isResultValueChanged) {\n\t\t\tthis.setResultValue();\n\t\t}\n\t}\n\n\tsetResultValue() {\n\t\tthis.setState({\n\t\t\tresultOffset: `${this.props.resultValue}%`,\n\t\t});\n\t\tif (this.props.result === 'win') {\n\t\t\tthis.resultAnimation.trigger(this.state.animation, (bool) =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tanimation: bool,\n\t\t\t\t}),\n\t\t\t);\n\t\t}\n\t}\n\n\trender() {\n\t\t// console.log('gameSliderResult', this.props);\n\t\tif (!this.props.resultValue && this.props.resultValue !== 0) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\t<StyledGameSliderResultRailAnimation\n\t\t\t\t$animation={this.state.animation}\n\t\t\t\t$show={this.props.showResult}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${this.state.resultOffset}, 0)`,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div />\n\t\t\t</StyledGameSliderResultRailAnimation>\n\t\t);\n\t}\n}\n\nGameSliderResultRailAnimation = enhanceComponent({\n\tGameSliderResult: GameSliderResultRailAnimation,\n});\n\nexport { GameSliderResultRailAnimation };\n","import { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { GameSliderResultRailAnimation } from './GameSliderResultRailAnimation';\n\nconst mapStateToProps = (state) => {\n\treturn {\n\t\tshowResult: !!state.dice?.showResult,\n\t\tresult: state.dice?.result.result,\n\t\tresultValue: state.dice?.result.resultValue,\n\t};\n};\n\nconst GameSliderResultRailAnimationContainer = compose(\n\tconnect(mapStateToProps, false),\n)(GameSliderResultRailAnimation);\n\nexport { GameSliderResultRailAnimationContainer };\n","import React, { FC, useCallback, useEffect, useRef, useState } from 'react';\nimport { useWindowEventListener } from 'rooks';\nimport {\n\tSlider,\n\tSliderProps,\n\tSliderRangeMode,\n} from '@common/components/games/Slider/slider';\nimport { getPayout } from '@legacyApp/client/modules/app/gameService';\nimport { useAppMobile } from '@common/selectors/app.selectors';\nimport { useAppDispatch } from '@legacyApp/hooks/store/useAppDispatch';\nimport { checkHotkeysAllowed } from '@legacyApp/client/modules/app/checkHotkeysAllowed';\nimport {\n\tGameSliderResult,\n\tGameSliderResultContainer,\n} from '../GameSliderResult';\nimport { GameSliderResultRailAnimation } from '../GameSliderResultRailAnimation/GameSliderResultRailAnimation';\nimport { GameSliderResultRailAnimationContainer } from '../GameSliderResultRailAnimation/GameSliderResultRailAnimation.container';\nimport {\n\tgetWinChanceFromMultipleBetValues,\n\tgetWinChangeFromSingleBetValue,\n} from '../../../Game/methods/getWinChanceFromBetValues';\nimport { GameType } from '../../../Game/constants/availableGames';\nimport transactionService from '../../../../transactions/transactionsService';\nimport { checkIsSingleValue } from '../../../Game/methods/checkIsSingleValue';\nimport { RollRule } from '../../../Game/types/RollRule';\nimport { getBetValueMaxMin } from '../../../Game/methods/getBetValueMaxMin';\nimport { validateBetValue } from '../../../Game/methods/validateBetValue';\nimport { checkIsWinChanceDisabled } from '../../../Game/methods/checkIsWinChanceDisabled';\nimport { updateFormLockThunk } from '../../../Game/store/game/thunks/updateFormLock.thunk';\nimport { getHotkeyThunk } from '../../../Game/store/game/thunks/getHotkey.thunk';\nimport { StyledGameSlider } from './GameSlider.styled';\n\nlet SLIDER_TIMEOUT = null;\n\nexport interface GameSliderBaseProps {\n\tgame: GameType;\n\tclassName?: string;\n\tmessage?: any;\n\tresult?: {\n\t\tvalue: number;\n\t\tstate: string;\n\t};\n}\n\nexport interface GameSliderProps extends GameSliderBaseProps {\n\trule: RollRule;\n\tdisable?: boolean;\n\tdisableHotkeys?: boolean;\n\tbetValues: ReadonlyArray<number>;\n\tupdateBetValue?: (values: ReadonlyArray<number>, rule: RollRule) => void;\n\tupdateWinChance?: (value: number, game: GameType) => void;\n\tupdatePayout?: (value: number, game: GameType) => void;\n\tanimation?: boolean;\n}\n\nconst getRangeMode = (rule: RollRule): number => {\n\tif (\n\t\trule === RollRule.OVER ||\n\t\trule === RollRule.BETWEEN ||\n\t\trule === RollRule.TWO_RANGE\n\t) {\n\t\treturn 1; // opposite\n\t}\n\tif (rule === RollRule.DIRECT) {\n\t\treturn 2; // no range\n\t}\n\treturn 0;\n};\n\nconst GameSlider: FC<GameSliderProps> = (props) => {\n\tconst sliderBoxRef = useRef(null);\n\n\tconst {\n\t\tresult,\n\t\tclassName,\n\t\tgame,\n\t\tmessage,\n\t\trule,\n\t\tdisable,\n\t\tdisableHotkeys,\n\t\tanimation,\n\t\tbetValues,\n\t\tupdateBetValue,\n\t\tupdateWinChance,\n\t\tupdatePayout,\n\t} = props;\n\n\tconst dispatch = useAppDispatch();\n\tconst isMobile = useAppMobile();\n\n\tconst [rangeMode, setRangeMode] = useState<SliderRangeMode>(\n\t\tgetRangeMode(rule),\n\t);\n\n\tconst updateBetValue_: GameSliderProps['updateBetValue'] = useCallback(\n\t\t(valuesArray, rule) => {\n\t\t\tif (updateBetValue) {\n\t\t\t\tupdateBetValue(valuesArray, rule);\n\t\t\t}\n\t\t},\n\t\t[updateBetValue],\n\t);\n\n\tconst updateWinChance_: GameSliderProps['updateWinChance'] = useCallback(\n\t\t(value) => {\n\t\t\tif (updateWinChance) {\n\t\t\t\tupdateWinChance(value, game);\n\t\t\t}\n\t\t},\n\t\t[game, updateWinChance],\n\t);\n\n\tconst updatePayout_: GameSliderProps['updatePayout'] = useCallback(\n\t\t(value) => {\n\t\t\tif (updatePayout) {\n\t\t\t\tupdatePayout(value, game);\n\t\t\t}\n\t\t},\n\t\t[game, updatePayout],\n\t);\n\n\tconst validate_: SliderProps['validate'] = useCallback(\n\t\t(valuesArray, value, index) => {\n\t\t\t// console.log('GameSlider - validate_', { valuesArray, rule, value, index });\n\t\t\treturn validateBetValue(valuesArray, rule, value, index);\n\t\t},\n\t\t[rule],\n\t);\n\n\tconst update = useCallback(\n\t\t(valuesArray: ReadonlyArray<number>, index: number) => {\n\t\t\tif (transactionService.isListDifferent(valuesArray, betValues)) {\n\t\t\t\t// console.log('GameSlider - update', valuesArray, index);\n\t\t\t\tconst validatedValue = validate_(\n\t\t\t\t\tvaluesArray,\n\t\t\t\t\tvaluesArray[index],\n\t\t\t\t\tindex,\n\t\t\t\t);\n\t\t\t\tconst valuesArray_ = [...valuesArray];\n\t\t\t\tvaluesArray_[index] = validatedValue;\n\t\t\t\tupdateBetValue_(valuesArray_, rule);\n\t\t\t\tconst winChance = checkIsSingleValue(rule)\n\t\t\t\t\t? getWinChangeFromSingleBetValue(valuesArray_[0], rule)\n\t\t\t\t\t: getWinChanceFromMultipleBetValues(valuesArray_, rule);\n\t\t\t\tconst payout = getPayout(winChance, game);\n\t\t\t\t// console.log('update', { valuesArray, rule, index, winChance, payout });\n\t\t\t\tupdateWinChance_(winChance, game);\n\t\t\t\tupdatePayout_(payout, game);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tbetValues,\n\t\t\tgame,\n\t\t\trule,\n\t\t\tupdateBetValue_,\n\t\t\tupdatePayout_,\n\t\t\tupdateWinChance_,\n\t\t\tvalidate_,\n\t\t],\n\t);\n\n\tconst updateLock = useCallback(\n\t\t(isLocked: boolean) => {\n\t\t\tdispatch(updateFormLockThunk(isLocked, game));\n\t\t},\n\t\t[dispatch, game],\n\t);\n\n\tconst changeValue = useCallback(\n\t\t(diff: number, index: number) => {\n\t\t\tconst { max, min } = getBetValueMaxMin({\n\t\t\t\tbetValues,\n\t\t\t\trule,\n\t\t\t\tindex: 0,\n\t\t\t});\n\t\t\tconst newValue = betValues[index] + diff;\n\t\t\tif (newValue > max) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (newValue < min) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdate([newValue], index);\n\t\t},\n\t\t[betValues, rule, update],\n\t);\n\n\tconst handleKeyboard = useCallback(\n\t\t(obj) => {\n\t\t\tif (\n\t\t\t\tdisable ||\n\t\t\t\t!sliderBoxRef.current ||\n\t\t\t\t!checkHotkeysAllowed(disableHotkeys)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tobj.keyCode ===\n\t\t\t\t\tdispatch(getHotkeyThunk('lower_slider', game)).keyCode &&\n\t\t\t\tcheckIsSingleValue(rule)\n\t\t\t) {\n\t\t\t\tobj.preventDefault();\n\t\t\t\tchangeValue((rule === RollRule.DIRECT ? 0.01 : 1) * -1, 0);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tobj.keyCode ===\n\t\t\t\t\tdispatch(getHotkeyThunk('higher_slider', game)).keyCode &&\n\t\t\t\tcheckIsSingleValue(rule)\n\t\t\t) {\n\t\t\t\tobj.preventDefault();\n\t\t\t\tchangeValue(rule === RollRule.DIRECT ? 0.01 : 1, 0);\n\t\t\t}\n\t\t},\n\t\t[changeValue, disable, disableHotkeys, dispatch, game, rule],\n\t);\n\n\tconst handleSliderChange: SliderProps['onChange'] = useCallback(\n\t\t(valuesArray, index) => {\n\t\t\tif (disable) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!transactionService.isListDifferent(valuesArray, betValues)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (SLIDER_TIMEOUT) {\n\t\t\t\tclearTimeout(SLIDER_TIMEOUT);\n\t\t\t}\n\n\t\t\tSLIDER_TIMEOUT = setTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tupdate(valuesArray, index);\n\t\t\t\t},\n\t\t\t\tisMobile ? 100 : 10,\n\t\t\t);\n\t\t},\n\t\t[betValues, disable, isMobile, update],\n\t);\n\n\tuseWindowEventListener('keydown', (event) => handleKeyboard(event));\n\n\tuseEffect(() => {\n\t\tconst rangeMode_ = getRangeMode(rule);\n\t\tif (rangeMode_ !== rangeMode) {\n\t\t\tsetRangeMode(rangeMode_);\n\t\t}\n\t}, [rangeMode, rule]);\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tupdateLock(false);\n\t\t},\n\t\t[updateLock],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<StyledGameSlider\n\t\t\t\tref={sliderBoxRef}\n\t\t\t\t$demo={!!result}\n\t\t\t\t$disable={disable}\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t{result ? (\n\t\t\t\t\t<GameSliderResult\n\t\t\t\t\t\tanimation={animation}\n\t\t\t\t\t\tshowResult={true}\n\t\t\t\t\t\tresult={result.state}\n\t\t\t\t\t\tresultValue={result.value}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<GameSliderResultContainer />\n\t\t\t\t)}\n\t\t\t\t<Slider\n\t\t\t\t\tanimation={animation}\n\t\t\t\t\tminDisplay={0}\n\t\t\t\t\tmaxDisplay={100}\n\t\t\t\t\tstep={checkIsWinChanceDisabled(rule, game) ? 0.01 : 0.1}\n\t\t\t\t\trangeMode={rangeMode}\n\t\t\t\t\tticks={5}\n\t\t\t\t\tvalues={betValues}\n\t\t\t\t\tsoundActive={true}\n\t\t\t\t\tvalidate={validate_}\n\t\t\t\t\trailChildren={\n\t\t\t\t\t\tanimation ? (\n\t\t\t\t\t\t\tresult ? (\n\t\t\t\t\t\t\t\t<GameSliderResultRailAnimation\n\t\t\t\t\t\t\t\t\tshowResult={true}\n\t\t\t\t\t\t\t\t\tresult={result.state}\n\t\t\t\t\t\t\t\t\tresultValue={result.value}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<GameSliderResultRailAnimationContainer />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : null\n\t\t\t\t\t}\n\t\t\t\t\tonLockChange={updateLock}\n\t\t\t\t\tonChange={handleSliderChange}\n\t\t\t\t/>\n\t\t\t\t{message}\n\t\t\t</StyledGameSlider>\n\t\t</>\n\t);\n};\n\nexport default GameSlider;\n","import { AppThunk } from '@legacyApp/types/store/ThunkAction';\nimport { gameUpdateFormLock } from '../game.actions';\n\nexport const updateFormLockThunk = (isLocked, game): AppThunk => {\n\treturn (dispatch, getState) => {\n\t\tif (!getState()?.game?.activeGame) {\n\t\t\treturn;\n\t\t}\n\t\tif (getState().game.formLock[game] === isLocked) {\n\t\t\treturn;\n\t\t}\n\t\tdispatch(\n\t\t\tgameUpdateFormLock({\n\t\t\t\tvalue: isLocked,\n\t\t\t\tgame,\n\t\t\t}),\n\t\t);\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 { RollRule } from '../types/RollRule';\nimport { GameType } from '../constants/availableGames';\nimport { checkIsSingleValue } from './checkIsSingleValue';\n\nexport const checkIsWinChanceDisabled = (rule: RollRule, game: GameType) => {\n\tif (game !== GameType.DICE) {\n\t\treturn false;\n\t}\n\treturn !checkIsSingleValue(rule) || rule === RollRule.DIRECT;\n};\n","import { config } from '@legacyApp/client/config';\nimport { mathService } from '@legacyApp/client/modules/math/mathService';\nimport {\n\tgetMaxWinChance,\n\tgetMinWinChance,\n} from '@legacyApp/client/modules/app/validateService';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { roundBetValue } from '@modules/games/DiceGame/components/BetValue/betValue.constants';\nimport {\n\tGetBetValueMaxMin,\n\tGetBetValueMaxMinProps,\n\tGetBetValueMaxMinResult,\n} from '../types/GetBetValueMaxMin';\nimport { RollRule } from '../types/RollRule';\nimport { GameType } from '../constants/availableGames';\nimport { checkIsSingleValue } from './checkIsSingleValue';\n\nexport const MAX_WIN_CHANCE = getMaxWinChance();\nexport const MIN_WIN_CHANCE = getMinWinChance(GameType.DICE);\n\nexport const MAX_BET_RESULT = config.games.dice.maxBetResult;\nexport const MIN_BET_RESULT = config.games.dice.minBetResult;\nexport const MIN_BET_VALUE_UNIT = mathService.getMinValueByPrecision(\n\tconfig.decimals.betValue,\n);\nexport const GUARANTEED_LOST_VALUES_WIN_CHANCE = roundBetValue(\n\tMAX_BET_RESULT - config.games.maxWinChance,\n);\nexport const MAX_RANGE_VALUE = roundBetValue(\n\tMAX_BET_RESULT + MIN_BET_VALUE_UNIT,\n);\n\nexport const getPrevAndNextBetValue = (props: GetBetValueMaxMinProps) => {\n\tif (!isTrueOrZero(props.index)) {\n\t\treturn {};\n\t}\n\tconst prevBetValue = props.betValues?.[props.index - 1];\n\tconst nextBetValue = props.betValues?.[props.index + 1];\n\treturn {\n\t\tprevBetValue,\n\t\tnextBetValue,\n\t};\n};\n\nexport const getSingleBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tif (props.rule === RollRule.DIRECT) {\n\t\treturn {\n\t\t\tmin: roundBetValue(MIN_BET_RESULT),\n\t\t\tmax: roundBetValue(MAX_BET_RESULT),\n\t\t};\n\t}\n\tif (props.rule === RollRule.OVER) {\n\t\treturn {\n\t\t\tmin: roundBetValue(MIN_BET_RESULT + GUARANTEED_LOST_VALUES_WIN_CHANCE),\n\t\t\tmax: roundBetValue(MAX_BET_RESULT - MIN_BET_VALUE_UNIT),\n\t\t};\n\t}\n\treturn {\n\t\tmin: roundBetValue(MIN_BET_RESULT + MIN_BET_VALUE_UNIT),\n\t\tmax: roundBetValue(MAX_BET_RESULT - GUARANTEED_LOST_VALUES_WIN_CHANCE),\n\t};\n};\n\nexport const getBetweenBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { prevBetValue, nextBetValue } = getPrevAndNextBetValue(props);\n\n\tlet min = MIN_BET_RESULT;\n\tlet max = MAX_RANGE_VALUE;\n\n\tif (isTrueOrZero(nextBetValue)) {\n\t\tmin = nextBetValue - (MAX_WIN_CHANCE + MIN_BET_VALUE_UNIT);\n\t\tmax = nextBetValue - (MIN_WIN_CHANCE + MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (isTrueOrZero(prevBetValue)) {\n\t\tmin = MIN_WIN_CHANCE + (prevBetValue + MIN_BET_VALUE_UNIT);\n\t\tmax = MAX_WIN_CHANCE + (prevBetValue + MIN_BET_VALUE_UNIT);\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < MIN_BET_RESULT ? MIN_BET_RESULT : min),\n\t\tmax: roundBetValue(max > MAX_RANGE_VALUE ? MAX_RANGE_VALUE : max),\n\t};\n};\n\nexport const getOutsideBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { prevBetValue, nextBetValue } = getPrevAndNextBetValue(props);\n\n\tlet min = MIN_BET_RESULT;\n\tlet max = MAX_BET_RESULT;\n\n\tif (isTrueOrZero(nextBetValue)) {\n\t\tmin = nextBetValue + MIN_WIN_CHANCE - MAX_BET_RESULT;\n\t\tmax = nextBetValue + MAX_WIN_CHANCE - MAX_BET_RESULT;\n\t}\n\n\tif (isTrueOrZero(prevBetValue)) {\n\t\tmin = prevBetValue - MAX_WIN_CHANCE + MAX_BET_RESULT;\n\t\tmax = prevBetValue - MIN_WIN_CHANCE + MAX_BET_RESULT;\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < MIN_BET_RESULT ? MIN_BET_RESULT : min),\n\t\tmax: roundBetValue(max > MAX_BET_RESULT ? MAX_BET_RESULT : max),\n\t};\n};\n\nexport const getTwoRangeBetValueMaxMin = (\n\tprops: GetBetValueMaxMinProps,\n): GetBetValueMaxMinResult => {\n\tconst { index, betValues } = props;\n\n\tconst minResult = isTrueOrZero(betValues?.[index - 1])\n\t\t? betValues?.[index - 1] < MIN_BET_RESULT\n\t\t\t? MIN_BET_RESULT\n\t\t\t: betValues?.[index - 1] +\n\t\t\t  (index % 2 === 1 ? 2 * MIN_BET_VALUE_UNIT : MIN_BET_VALUE_UNIT)\n\t\t: MIN_BET_RESULT;\n\tconst maxResult = isTrueOrZero(betValues?.[index + 1])\n\t\t? betValues?.[index + 1] > MAX_RANGE_VALUE\n\t\t\t? MAX_RANGE_VALUE\n\t\t\t: betValues?.[index + 1] -\n\t\t\t  (index % 2 === 1 ? MIN_BET_VALUE_UNIT : 2 * MIN_BET_VALUE_UNIT)\n\t\t: MAX_RANGE_VALUE;\n\n\tlet min = minResult;\n\tlet max = maxResult;\n\n\tconst MIN_WIN_CHANCE_ = MIN_WIN_CHANCE + MIN_BET_VALUE_UNIT;\n\n\tif (index === 0) {\n\t\tmin =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[2] -\n\t\t\t(MAX_WIN_CHANCE + 2 * MIN_BET_VALUE_UNIT);\n\t\tmax =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[2] -\n\t\t\t(MIN_WIN_CHANCE_ + 2 * MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (index === 1) {\n\t\tmin =\n\t\t\tMIN_WIN_CHANCE_ +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[3] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t\tmax =\n\t\t\tMAX_WIN_CHANCE +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[3] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t}\n\n\tif (index === 2) {\n\t\tmin =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[0] -\n\t\t\t(MAX_WIN_CHANCE + 2 * MIN_BET_VALUE_UNIT);\n\t\tmax =\n\t\t\tbetValues[3] +\n\t\t\tbetValues[1] -\n\t\t\tbetValues[0] -\n\t\t\t(MIN_WIN_CHANCE_ + 2 * MIN_BET_VALUE_UNIT);\n\t}\n\n\tif (index === 3) {\n\t\tmin =\n\t\t\tMIN_WIN_CHANCE_ +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[1] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t\tmax =\n\t\t\tMAX_WIN_CHANCE +\n\t\t\t2 * MIN_BET_VALUE_UNIT -\n\t\t\tbetValues[1] +\n\t\t\tbetValues[2] +\n\t\t\tbetValues[0];\n\t}\n\n\treturn {\n\t\tmin: roundBetValue(min < minResult ? minResult : min),\n\t\tmax: roundBetValue(max > maxResult ? maxResult : max),\n\t};\n};\n\nexport const getBetValueMaxMin: GetBetValueMaxMin = (props) => {\n\tif (checkIsSingleValue(props.rule)) {\n\t\treturn getSingleBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.BETWEEN) {\n\t\treturn getBetweenBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.OUTSIDE) {\n\t\treturn getOutsideBetValueMaxMin(props);\n\t}\n\n\tif (props.rule === RollRule.TWO_RANGE) {\n\t\treturn getTwoRangeBetValueMaxMin(props);\n\t}\n\n\treturn {\n\t\tmin: null,\n\t\tmax: null,\n\t};\n};\n","import { getWinChanceDecimal } from '@legacyApp/client/modules/app/gameService';\nimport { isTrueOrZero } from '@common/methods/isTrueOrZero';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { GameType } from '../constants/availableGames';\nimport { RollRule } from '../types/RollRule';\nimport { MAX_BET_RESULT, MIN_BET_VALUE_UNIT } from './getBetValueMaxMin';\n\nexport const parseSingleBetValue = (betValue: number, rule: RollRule) => {\n\tif (rule === RollRule.DIRECT) {\n\t\treturn betValue;\n\t}\n\n\treturn getWinChangeFromSingleBetValue(betValue, rule);\n};\n\nexport const getWinChangeFromSingleBetValue = (\n\tbetValue: number,\n\trule: RollRule,\n): number => {\n\tif (!isTrueOrZero(betValue)) {\n\t\treturn null;\n\t}\n\tif (rule === RollRule.OVER) {\n\t\treturn roundNumber(\n\t\t\tMAX_BET_RESULT - betValue,\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.DIRECT) {\n\t\treturn roundNumber(MIN_BET_VALUE_UNIT, getWinChanceDecimal(GameType.DICE));\n\t}\n\treturn betValue;\n};\n\nexport const getWinChanceFromMultipleBetValues = (\n\tbetValue: ReadonlyArray<number>,\n\trule: RollRule,\n): number => {\n\tif (!betValue?.length) {\n\t\treturn null;\n\t}\n\tif (rule === RollRule.OUTSIDE) {\n\t\treturn roundNumber(\n\t\t\tMAX_BET_RESULT - roundNumber(betValue[1] - betValue[0]),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.BETWEEN) {\n\t\treturn roundNumber(\n\t\t\troundNumber(betValue[1] - (betValue[0] + MIN_BET_VALUE_UNIT)),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\tif (rule === RollRule.TWO_RANGE) {\n\t\treturn roundNumber(\n\t\t\troundNumber(betValue[1] - (betValue[0] + MIN_BET_VALUE_UNIT)) +\n\t\t\t\troundNumber(betValue[3] - (betValue[2] + MIN_BET_VALUE_UNIT)),\n\t\t\tgetWinChanceDecimal(GameType.DICE),\n\t\t);\n\t}\n\treturn null;\n};\n","import { RollRule } from '../types/RollRule';\nimport { getBetValueMaxMin } from './getBetValueMaxMin';\n\nexport const validateBetValues = (\n\tbetValues: ReadonlyArray<number>,\n\trule: RollRule,\n): ReadonlyArray<number> => {\n\tconst validated = [...betValues];\n\tbetValues.forEach((betValue, index) => {\n\t\tvalidated[index] = validateBetValue(validated, rule, betValue, index);\n\t});\n\treturn validated;\n};\n\nexport const validateBetValue = (\n\tbetValues: ReadonlyArray<number>,\n\trule: RollRule,\n\tvalue: number,\n\tindex: number,\n): number => {\n\tconst { min, max } = getBetValueMaxMin({ betValues, rule, index });\n\t// console.log('validateBetValue', rule, betValues, { value, index, min, max });\n\tif (!Array.isArray(betValues)) {\n\t\treturn min;\n\t}\n\tif (value > max) {\n\t\treturn max;\n\t}\n\tif (value < min) {\n\t\treturn min;\n\t}\n\treturn value;\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","export enum RollRule {\n\tDIRECT = 'direct',\n\tUNDER = 'under',\n\tOVER = 'over',\n\tBETWEEN = 'between',\n\tOUTSIDE = 'outside',\n\tTWO_RANGE = 'two_ranges',\n}\n","import { useEffect, useLayoutEffect } from 'react';\n/**\n * useIsomorphicEffect\n * Resolves to useEffect when \"window\" is not in scope and useLayout effect in the browser\n *\n * @param {Function} callback Callback function to be called on mount\n */\nvar useIsomorphicEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;\nexport { useIsomorphicEffect };\n","import { useFreshRef } from \"./useFreshRef\";\nfunction useFreshTick(callback) {\n    var freshRef = useFreshRef(callback);\n    function tick() {\n        var args = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            args[_i] = arguments[_i];\n        }\n        if (typeof freshRef.current === \"function\") {\n            freshRef.current.apply(freshRef, args);\n        }\n    }\n    return tick;\n}\nexport { useFreshTick };\n","import { useEffect, useRef } from \"react\";\nimport { useIsomorphicEffect } from \"./useIsomorphicEffect\";\n/**\n * useFreshRef\n *\n * @param value The value which needs to be fresh at all times. Probably\n * best used with functions\n * @param preferLayoutEffect Should the value be updated using a layout effect\n * or a passive effect. Defaults to false.\n * @returns A ref containing the fresh value\n */\nfunction useFreshRef(value, preferLayoutEffect) {\n    if (preferLayoutEffect === void 0) { preferLayoutEffect = false; }\n    var useEffectToUse = preferLayoutEffect ? useIsomorphicEffect : useEffect;\n    var ref = useRef(value);\n    useEffectToUse(function () {\n        ref.current = value;\n    });\n    return ref;\n}\nexport { useFreshRef };\n","import { useGlobalObjectEventListener } from \"./useGlobalObjectEventListener\";\n/**\n *  useWindowEventListener hook\n *\n *  A react hook to an event listener to the window\n *\n * @param {string} eventName The event to track\n * @param {Function} callback The callback to be called on event\n * @param {ListenerOptions} listenerOptions The options to be passed to the event listener\n * @param {boolean} isLayoutEffect Should it use layout effect. Defaults to false\n * @returns {undefined}\n */\nfunction useWindowEventListener(eventName, callback, listenerOptions, isLayoutEffect) {\n    if (listenerOptions === void 0) { listenerOptions = {}; }\n    if (isLayoutEffect === void 0) { isLayoutEffect = false; }\n    useGlobalObjectEventListener(window, eventName, callback, listenerOptions, true, isLayoutEffect);\n}\nexport { useWindowEventListener };\n","import { useEffect } from \"react\";\nimport { useFreshTick } from \"./useFreshTick\";\nimport { useIsomorphicEffect } from \"./useIsomorphicEffect\";\nimport { warning } from \"./warning\";\n/**\n *  useGlobalObjectEventListener hook\n *\n *  A react hook to an event listener to a global object\n *\n * @param {Window|Document} globalObject The global object to add event onto\n * @param {string} eventName The event to track\n * @param {Function} callback The callback to be called on event\n * @param {ListenerOptions} listenerOptions The options to be passed to the event listener\n * @param {boolean} when Should the event listener be active\n * @param {boolean} isLayoutEffect Should it use layout effect. Defaults to false\n * @returns {undefined}\n */\nfunction useGlobalObjectEventListener(globalObject, eventName, callback, listenerOptions, when, isLayoutEffect) {\n    if (listenerOptions === void 0) { listenerOptions = {}; }\n    if (when === void 0) { when = true; }\n    if (isLayoutEffect === void 0) { isLayoutEffect = false; }\n    var freshCallback = useFreshTick(callback);\n    var useEffectToRun = isLayoutEffect ? useIsomorphicEffect : useEffect;\n    useEffectToRun(function () {\n        warning(typeof globalObject !== \"undefined\", \"[useGlobalObjectEventListener]: Cannot attach event handlers to undefined.\");\n        if (typeof globalObject !== \"undefined\" && when) {\n            globalObject.addEventListener(eventName, freshCallback, listenerOptions);\n            return function () {\n                globalObject.removeEventListener(eventName, freshCallback, listenerOptions);\n            };\n        }\n        return function () { };\n    }, [eventName, listenerOptions]);\n}\nexport { useGlobalObjectEventListener };\n"],"names":["checkHotkeysAllowed","disableHotKeys","document","activeElement","indexOf","localName","GAME","GameType","ID","roundBetValue","value","roundNumber","config","ResultStars","props","state","showSecondStar","firstStarFinished","finished","duration","delay","gameSliderResultTransition","finised","setTimeout","setState","this","clearTimeout","LottieWrapper","dataname","LottieIds","height","json","star","React","enhanceComponent","GameSliderResult","resultValue","resultOffset","animation","resultAnimation","RepeatAnimationClass","setResultValue","prevProps","result","trigger","bool","$disable","$show","showResult","disable","style","transform","className","name","$animation","$result","GameSliderResultContainer","compose","connect","isMobile","app","mobile","dice","gameAutobet","autoBetRolling","options","OPTIONS","StyledGameSliderResultRailAnimation","styled","StyledGameSliderResultBox","theme","media","minWidthDesktop","css","ResultAnimation","keyframes","GameSliderResultRailAnimation","GameSliderResultRailAnimationContainer","SLIDER_TIMEOUT","getRangeMode","rule","RollRule","sliderBoxRef","useRef","game","message","disableHotkeys","betValues","updateBetValue","updateWinChance","updatePayout","dispatch","useAppDispatch","useAppMobile","useState","rangeMode","setRangeMode","updateBetValue_","useCallback","valuesArray","updateWinChance_","updatePayout_","validate_","index","validateBetValue","update","transactionService","validatedValue","valuesArray_","winChance","checkIsSingleValue","getWinChangeFromSingleBetValue","getWinChanceFromMultipleBetValues","payout","getPayout","updateLock","isLocked","getState","activeGame","formLock","gameUpdateFormLock","updateFormLockThunk","changeValue","diff","getBetValueMaxMin","max","min","newValue","handleKeyboard","obj","current","keyCode","getHotkeyThunk","preventDefault","handleSliderChange","useWindowEventListener","event","useEffect","rangeMode_","ref","$demo","minDisplay","maxDisplay","step","checkIsWinChanceDisabled","ticks","values","soundActive","validate","railChildren","onLockChange","onChange","MAX_WIN_CHANCE","getMaxWinChance","MIN_WIN_CHANCE","getMinWinChance","MAX_BET_RESULT","MIN_BET_RESULT","MIN_BET_VALUE_UNIT","mathService","GUARANTEED_LOST_VALUES_WIN_CHANCE","MAX_RANGE_VALUE","getPrevAndNextBetValue","isTrueOrZero","prevBetValue","nextBetValue","getSingleBetValueMaxMin","getBetweenBetValueMaxMin","getOutsideBetValueMaxMin","minResult","maxResult","MIN_WIN_CHANCE_","getTwoRangeBetValueMaxMin","parseSingleBetValue","betValue","getWinChanceDecimal","length","validateBetValues","validated","forEach","Array","isArray","EMPTY_HOTKEY","id","symbol","modal","MODAL_ID","hilo","skipActive","game_config","hotkeys","find","el","getHotkey","useIsomorphicEffect","window","useLayoutEffect","useFreshTick","callback","freshRef","preferLayoutEffect","useEffectToUse","useFreshRef","args","_i","arguments","apply","eventName","listenerOptions","isLayoutEffect","globalObject","when","freshCallback","warning","addEventListener","removeEventListener","useGlobalObjectEventListener"],"mappings":"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","debug_id":"6b3cb5e2-1f58-58ff-8728-aaa6981869c6"}