{"version":3,"file":"static/chunks/98699.66b12faaf8bc8f17.js","sources":["webpack://_N_E/./src/LegacyApp/client/modules/app/strategyService.js","webpack://_N_E/./src/modules/games/DiceGame/components/BetValue/betValue.constants.ts","webpack://_N_E/./src/modules/games/Game/methods/checkExpertConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/checkEasyConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsDoubleValue.ts","webpack://_N_E/./src/modules/games/Game/methods/checkIsQuadrupleValue.ts","webpack://_N_E/./src/modules/games/Game/methods/getBetValueMaxMin.ts","webpack://_N_E/./src/modules/games/Game/methods/getRuleBetValuesBetConfig.ts","webpack://_N_E/./src/modules/games/Game/methods/getStrategyFromState.ts","webpack://_N_E/./src/modules/games/Game/methods/getWinChanceFromBetValues.ts","webpack://_N_E/./src/modules/games/Game/methods/mapBetValuesDTO.ts"],"sourceRoot":"","sourcesContent":["import { getStrategyFromState } from '@modules/games/Game/methods/getStrategyFromState';\nimport { getGamesList } from '@modules/games/Game/methods/getGamesList';\nimport { lsSet } from '@modules/localStorage/methods/lsSet';\nimport { lsGet } from '@modules/localStorage/methods/lsGet';\nimport { lsClear } from '@modules/localStorage/methods/lsClear';\nimport { generateGameStrategyKey } from '@modules/localStorage/types/localStorageKeys.type';\nimport { jsonToString } from '@common/methods/jsonToString';\nimport { BetState } from '@modules/games/Game/store/game/@types/PlaceBetResponse';\nimport { game_config } from '../../game_config';\nimport sortService, { DIRECTION } from './sortService';\nimport { capitalize } from './appService';\n\nexport const isDeprecated = (strategy) => {\n\t// console.log('isDeprecated', strategy);\n\tconst isV3 = strategy.config;\n\tif (\n\t\t(!!strategy.advancedType ||\n\t\t\ttypeof strategy.winIncrease !== 'object' ||\n\t\t\tstrategy.winIncrease === null) &&\n\t\t!isV3\n\t) {\n\t\treturn 'v1';\n\t}\n\tif (!isV3 && typeof strategy.winIncrease === 'object') {\n\t\treturn 'v2';\n\t}\n\treturn null;\n};\n\nexport const parseFetchedStrategy = (data) => {\n\tconst deprecated = isDeprecated(data);\n\tconst parsed = {\n\t\t...data,\n\t};\n\tif (deprecated === 'v1') {\n\t\tparsed.lostStop = data.loseStop;\n\t\tdelete parsed.loseStop;\n\t}\n\tif (parsed.config) {\n\t\tparsed.config = parsed.config\n\t\t\t.filter((el) => {\n\t\t\t\tif (el.length !== undefined) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn el.when.length !== undefined && el.command.length !== undefined;\n\t\t\t})\n\t\t\t.map((block) => {\n\t\t\t\tblock.when = block.when.map((condition) => {\n\t\t\t\t\tif (condition.type === 'exact') {\n\t\t\t\t\t\tcondition.type = condition.name === 'loss' ? 'before' : 'gte';\n\t\t\t\t\t}\n\t\t\t\t\treturn condition;\n\t\t\t\t});\n\t\t\t\treturn block;\n\t\t\t});\n\t}\n\n\treturn parsed;\n};\n\nexport const getActiveStrategy = ({ state, strategies, strategy }) => {\n\tif (!strategies) {\n\t\tstrategies = state.gameAutobet?.strategies;\n\t}\n\tconst currentStrategy = strategy\n\t\t? getStrategyString(strategy)\n\t\t: getStrategyString(getStrategyFromState(state));\n\treturn strategies.find((el) => {\n\t\t// console.log('getActiveStrategy', {\n\t\t//   el,\n\t\t//   curr: getStrategyFromState(state),\n\t\t//   currArr: currentStrategy.split(';'),\n\t\t//   setArr: this.getStrategyString(el).split(';'),\n\t\t//   bool: this.getStrategyString(el) === currentStrategy,\n\t\t// });\n\n\t\treturn getStrategyString(el) === currentStrategy;\n\t});\n};\n\nexport const getStrategyString = (strategy) => {\n\treturn Object.keys(strategy)\n\t\t.filter((key) => ['name', 'id'].indexOf(key) === -1)\n\t\t.sort((a, b) => sortService.sort(DIRECTION.ASC, a, b))\n\t\t.map((key) => {\n\t\t\tlet value = strategy[key];\n\t\t\tif (value === null || value === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (value && typeof value === 'object') {\n\t\t\t\tvalue = jsonToString(value);\n\t\t\t}\n\t\t\treturn `${key}:${value}`;\n\t\t})\n\t\t.join(';');\n};\n\nexport const parseDeprecatedStrategy = (data) => {\n\tconst deprecated = isDeprecated(data);\n\tconst parsed = {\n\t\t...data,\n\t};\n\tif (deprecated === 'v1') {\n\t\tconst parseIncrease = (value, type = 'every') => ({\n\t\t\tcount: value ? 1 : 0,\n\t\t\tactive: !!value,\n\t\t\tvalue: value || 0,\n\t\t\ttype: type,\n\t\t});\n\t\tconst parseAdvanced = (betType, dataType, data) => ({\n\t\t\ttype: data.advancedType[betType] || data.advancedType.init,\n\t\t\tcount: data.advancedCounter[betType] || data.advancedCounter.init,\n\t\t\tactive:\n\t\t\t\tdata[`advancedIs${capitalize(dataType)}`][betType] ||\n\t\t\t\tdata[`advancedIs${capitalize(dataType)}`].init,\n\t\t});\n\t\tparsed.lostStop = data.loseStop || false;\n\t\tparsed.winIncrease = parseIncrease(parsed.winIncrease);\n\t\tparsed.loseIncrease = parseIncrease(parsed.loseIncrease);\n\t\tparsed.winSwitch = parseAdvanced(BetState.WIN, 'switch', parsed);\n\t\tparsed.loseSwitch = parseAdvanced(BetState.LOSE, 'switch', parsed);\n\t\tparsed.winReset = parseAdvanced(BetState.WIN, 'reset', parsed);\n\t\tparsed.loseReset = parseAdvanced(BetState.LOSE, 'reset', parsed);\n\t\tparsed.winStop = parseAdvanced(BetState.WIN, 'stop', parsed);\n\t\tparsed.loseStop = parseAdvanced(BetState.LOSE, 'stop', parsed);\n\t\tdelete parsed.advancedCounter;\n\t\tdelete parsed.advancedType;\n\t\tdelete parsed.advancedIsStop;\n\t\tdelete parsed.advancedIsReset;\n\t\tdelete parsed.advancedIsSwitch;\n\t}\n\tif (deprecated === 'v1' || deprecated === 'v2') {\n\t\tparsed.config = [];\n\t\tconst parse = ({\n\t\t\tforce,\n\t\t\tkey,\n\t\t\tcommandName,\n\t\t\twhenName,\n\t\t\tactive,\n\t\t\tvalue,\n\t\t\tcount,\n\t\t\ttype,\n\t\t}) => {\n\t\t\tconst details = parsed[key];\n\t\t\tif (!details && !force) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (details) {\n\t\t\t\tif (!value) {\n\t\t\t\t\tvalue = details.value;\n\t\t\t\t}\n\t\t\t\tif (!count) {\n\t\t\t\t\tcount = details.count;\n\t\t\t\t}\n\t\t\t\tif (!type) {\n\t\t\t\t\ttype = details.type;\n\t\t\t\t}\n\t\t\t\tif (!active) {\n\t\t\t\t\tactive = details.active;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (active || (details && details.value > 0)) {\n\t\t\t\tparsed.config.push({\n\t\t\t\t\tcommand: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: commandName,\n\t\t\t\t\t\t\tvalue: value || null,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\twhen: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: whenName,\n\t\t\t\t\t\t\tvalue: count,\n\t\t\t\t\t\t\ttype: type || null,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t});\n\t\t\t}\n\t\t\t// console.log('parse', key, {\n\t\t\t//   parsed,\n\t\t\t//   details,\n\t\t\t//   key,\n\t\t\t//   commandName,\n\t\t\t//   whenName,\n\t\t\t//   active,\n\t\t\t//   value,\n\t\t\t//   count,\n\t\t\t//   type,\n\t\t\t//   pushed: {\n\t\t\t//     command: [{\n\t\t\t//       name: commandName,\n\t\t\t//       value: value || null,\n\t\t\t//     }],\n\t\t\t//     when: [{\n\t\t\t//       name: whenName,\n\t\t\t//       value: count,\n\t\t\t//       type: type || null,\n\t\t\t//     }],\n\t\t\t//   }\n\t\t\t// });\n\t\t\tdelete parsed[key];\n\t\t};\n\t\tparse({\n\t\t\tkey: 'loseReset',\n\t\t\tcommandName: 'resetAmount',\n\t\t\twhenName: BetState.LOSE,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winReset',\n\t\t\tcommandName: 'resetAmount',\n\t\t\twhenName: BetState.WIN,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseIncrease',\n\t\t\tcommandName: 'increaseAmountPercent',\n\t\t\twhenName: BetState.LOSE,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winIncrease',\n\t\t\tcommandName: 'increaseAmountPercent',\n\t\t\twhenName: BetState.WIN,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseSwitch',\n\t\t\tcommandName: 'switch',\n\t\t\twhenName: BetState.LOSE,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winSwitch',\n\t\t\tcommandName: 'switch',\n\t\t\twhenName: BetState.WIN,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'loseStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: BetState.LOSE,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'winStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: BetState.WIN,\n\t\t});\n\t\tparse({\n\t\t\tkey: 'profitStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'profit',\n\t\t\tactive: !!parsed.profitStop,\n\t\t\tcount: parsed.profitStop,\n\t\t\ttype: 'gte',\n\t\t});\n\t\tparse({\n\t\t\tkey: 'lostStop',\n\t\t\tcommandName: 'stop',\n\t\t\twhenName: 'loss',\n\t\t\tactive: !!parsed.lostStop,\n\t\t\tcount: parsed.lostStop,\n\t\t\ttype: 'before',\n\t\t});\n\t\t// if (!parsed.config.length) {\n\t\t//   parse({key: 'loseReset', commandName: 'resetAmount', whenName: BetState.LOSE, active: true, count: 1, type: 'every', force: true});\n\t\t//   parse({key: 'winReset', commandName: 'resetAmount', whenName: BetState.WIN, active: true, count: 1, type: 'every', force: true});\n\t\t// }\n\t}\n\t// console.log('parseDeprecatedStrategy', {data: {...data}, parsed: {...parsed}});\n\treturn parsed;\n};\n\nexport const updateStrategyLocalStorage = (state) => {\n\tgetGamesList().forEach((game) => {\n\t\tif (!state) {\n\t\t\treturn lsClear(generateGameStrategyKey(game));\n\t\t}\n\t\tconst strategy = getStrategyFromState(state, game);\n\t\tdelete strategy.config;\n\t\tif (strategy.rollDirection) {\n\t\t\tdelete strategy.rollDirection;\n\t\t}\n\t\tif (strategy.betValues) {\n\t\t\tdelete strategy.betValues;\n\t\t}\n\t\tstrategy.configExpert = state.gameAutobet?.config[game];\n\t\tstrategy.configEasy = state.gameAutobet?.configEasy[game];\n\t\t// console.log('updateStrategyLocalStorage', jsonToString(strategy), game);\n\t\tif (game_config[game].isAutobet) {\n\t\t\tlsSet(generateGameStrategyKey(game), strategy);\n\t\t}\n\t});\n};\n\nexport const getStrategyLocalStorage = (game) => {\n\treturn lsGet(generateGameStrategyKey(game));\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 { GameStrategy } from '../types/GameStrategy';\nimport { checkEasyConfig } from './checkEasyConfig';\n\nexport const checkExpertConfig = (config: GameStrategy['config']): boolean => {\n\t// console.log('isExpert - 1', { config });\n\tif (!config) {\n\t\treturn false;\n\t}\n\t// console.log('isExpert - 2', {length: config.length, config});\n\tif (config?.length) {\n\t\tconst isEasyTemplate = config.every(\n\t\t\t(el) => !el?.command || (el.command.length === 1 && el.when.length === 1),\n\t\t);\n\t\t// console.log('isExpert - 3', {isEasyTemplate});\n\t\tif (config?.length <= 4 && isEasyTemplate) {\n\t\t\t// console.log('isExpert', {isEasy: isEasyConfig(config), config: JSON.stringify(config)});\n\t\t\treturn !checkEasyConfig(config);\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n","import { BetState } from '@modules/games/Game/store/game/@types/PlaceBetResponse';\nimport { GameStrategy } from '../types/GameStrategy';\n\nexport const checkEasyConfig = (config: GameStrategy['config']): boolean => {\n\tif (\n\t\tconfig.filter((el) => {\n\t\t\treturn (\n\t\t\t\t['resetAmount', 'increaseAmountPercent'].indexOf(el.command[0].name) >\n\t\t\t\t-1\n\t\t\t);\n\t\t}).length !== 2\n\t) {\n\t\treturn false;\n\t}\n\treturn config.every((el) => {\n\t\tif (el.command[0].name === 'stop') {\n\t\t\tif (el.when[0].name === 'profit' && el.when[0].type === 'gte') {\n\t\t\t\t// console.log('isEasyConfig - stopAction', jsonToString(el));\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (el.when[0].name === 'loss' && el.when[0].type === 'before') {\n\t\t\t\t// console.log('isEasyConfig - stopAction', jsonToString(el));\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\t['resetAmount', 'increaseAmountPercent'].indexOf(el.command[0].name) > -1\n\t\t) {\n\t\t\tif ([BetState.WIN, BetState.LOSE].indexOf(el.when[0].name) > -1) {\n\t\t\t\tif (el.when[0].type === 'every') {\n\t\t\t\t\tif (parseFloat(el.when[0].value) === 1) {\n\t\t\t\t\t\t// console.log('isEasyConfig - amountAction', jsonToString(el));\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t});\n};\n","import { RollRule } from '../types/RollRule';\n\nexport const checkIsDoubleValue = (rule: RollRule): boolean => {\n\treturn [RollRule.BETWEEN, RollRule.OUTSIDE].indexOf(rule) > -1;\n};\n","import { RollRule } from '../types/RollRule';\n\nexport const checkIsQuadrupleValue = (rule: RollRule): boolean => {\n\treturn [RollRule.TWO_RANGE].indexOf(rule) > -1;\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 { RootState } from '@legacyApp/client/store/configure.store';\nimport { scientificToDecimal } from '@legacyApp/methods/math/scientificToDecimal';\nimport { roundNumber } from '@common/methods/roundNumber/roundNumber';\nimport { RollRule } from '../types/RollRule';\nimport { checkIsSingleValue } from './checkIsSingleValue';\nimport { getWinChangeFromSingleBetValue } from './getWinChanceFromBetValues';\nimport { checkIsDoubleValue } from './checkIsDoubleValue';\nimport { checkIsQuadrupleValue } from './checkIsQuadrupleValue';\nimport { BetValuesDTO } from './mapBetValuesDTO';\n\nconst parseValue = (value: number): string => {\n\treturn scientificToDecimal(roundNumber(value, 2)).toString();\n};\n\ninterface BetValuesBetConfig extends BetValuesDTO {\n\trule?: RollRule;\n}\n\nexport const getRuleBetValuesBetConfig = (\n\trule: RollRule,\n\tbetValue: RootState['dice']['betValue'],\n): BetValuesBetConfig => {\n\tif (rule === RollRule.DIRECT) {\n\t\treturn {\n\t\t\tbet_value: parseValue(betValue.singleUnder),\n\t\t};\n\t}\n\tif (checkIsSingleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value: parseValue(\n\t\t\t\tgetWinChangeFromSingleBetValue(betValue.singleUnder, rule),\n\t\t\t),\n\t\t};\n\t}\n\tif (checkIsDoubleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: parseValue(betValue.double[0]),\n\t\t\tbet_value_second: parseValue(betValue.double[1]),\n\t\t};\n\t}\n\tif (checkIsQuadrupleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: parseValue(betValue.quadruple[0]),\n\t\t\tbet_value_second: parseValue(betValue.quadruple[1]),\n\t\t\tbet_value_third: parseValue(betValue.quadruple[2]),\n\t\t\tbet_value_fourth: parseValue(betValue.quadruple[3]),\n\t\t};\n\t}\n\treturn null;\n};\n","import {\n\tgetGameFromUrl,\n\tgetPayout,\n} from '@legacyApp/client/modules/app/gameService';\nimport { RootState } from '@legacyApp/client/store/configure.store';\nimport { GameType } from '../constants/availableGames';\nimport { GameStrategy } from '../types/GameStrategy';\nimport { RollRule } from '../types/RollRule';\nimport { getRuleBetValuesBetConfig } from './getRuleBetValuesBetConfig';\n\nconst getDiceConfig = (state: RootState) => {\n\tconst rule = state.dice.rollDirection;\n\tconst betValues =\n\t\trule === RollRule.OVER\n\t\t\t? null\n\t\t\t: getRuleBetValuesBetConfig(\n\t\t\t\t\tstate.dice.rollDirection,\n\t\t\t\t\tstate.dice.betValue,\n\t\t\t  );\n\treturn {\n\t\trollDirection: rule,\n\t\t...(!!betValues && { betValues }),\n\t};\n};\n\nconst getKenoConfig = (state: RootState) => {\n\treturn {\n\t\tselected: state.keno.selectedNumbers,\n\t};\n};\n\nexport const getStrategyFromState = (\n\tstate: RootState,\n\tgame: GameType,\n\tisDefault?: boolean,\n): GameStrategy => {\n\tif (!game) {\n\t\tgame = state.game?.activeGame || getGameFromUrl();\n\t}\n\treturn {\n\t\t...(game === GameType.DICE && getDiceConfig(state)),\n\t\t...(game === GameType.KENO && getKenoConfig(state)),\n\t\tgame,\n\t\tcurrency:\n\t\t\tisDefault &&\n\t\t\tstate.gameAutobet?.currency &&\n\t\t\tstate.gameAutobet?.currency[game]\n\t\t\t\t? state.gameAutobet?.currency[game]\n\t\t\t\t: state.user.activeCurrency,\n\t\tconfig:\n\t\t\tstate.gameAutobet?.mode === 'easy'\n\t\t\t\t? state.gameAutobet?.configEasy[game]\n\t\t\t\t: state.gameAutobet?.config[game],\n\t\tpayoutValue:\n\t\t\tNumber(\n\t\t\t\tisDefault\n\t\t\t\t\t? game === 'limbo'\n\t\t\t\t\t\t? state?.limbo?.defaultPayout\n\t\t\t\t\t\t: getPayout(state.game?.defaultWinChanceValue[game], game)\n\t\t\t\t\t: state.game?.payoutValue[game],\n\t\t\t) || null,\n\t\trolls: Number(state.gameAutobet?.rolls) || null,\n\t\t...(state[game]?.risk && { risk: state[game].risk }),\n\t\t...(state[game]?.lines && { rows: state[game].lines }),\n\t\tbetAmount:\n\t\t\tNumber(\n\t\t\t\tisDefault\n\t\t\t\t\t? state.game?.defaultBetAmount[game]\n\t\t\t\t\t: state.game?.betAmount[game],\n\t\t\t) || 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 { checkIsSingleValue } from './checkIsSingleValue';\nimport { checkIsDoubleValue } from './checkIsDoubleValue';\n\nexport interface BetValuesDTO {\n\tbet_value?: string;\n\tbet_value_first?: string;\n\tbet_value_second?: string;\n\tbet_value_third?: string;\n\tbet_value_fourth?: string;\n}\n\nexport const mapBetValuesDTO = (\n\tbetValues: BetValuesDTO,\n): ReadonlyArray<number> => {\n\tconst {\n\t\tbet_value,\n\t\tbet_value_second,\n\t\tbet_value_first,\n\t\tbet_value_fourth,\n\t\tbet_value_third,\n\t} = betValues || {};\n\n\tif (bet_value) {\n\t\treturn [Number(bet_value)];\n\t}\n\n\tif (bet_value_fourth) {\n\t\treturn [\n\t\t\tNumber(bet_value_first),\n\t\t\tNumber(bet_value_second),\n\t\t\tNumber(bet_value_third),\n\t\t\tNumber(bet_value_fourth),\n\t\t];\n\t}\n\n\treturn [Number(bet_value_first), Number(bet_value_second)];\n};\n\nexport const mapBetValuesToDTO = (\n\tbetValues: ReadonlyArray<number>,\n\trule: RollRule,\n): BetValuesDTO => {\n\tif (checkIsSingleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value: String(betValues[0]),\n\t\t};\n\t}\n\n\tif (checkIsDoubleValue(rule)) {\n\t\treturn {\n\t\t\tbet_value_first: String(betValues[0]),\n\t\t\tbet_value_second: String(betValues[1]),\n\t\t};\n\t}\n\n\treturn {\n\t\tbet_value_first: String(betValues[0]),\n\t\tbet_value_second: String(betValues[1]),\n\t\tbet_value_third: String(betValues[2]),\n\t\tbet_value_fourth: String(betValues[3]),\n\t};\n};\n"],"names":["isDeprecated","strategy","isV3","config","advancedType","winIncrease","parseFetchedStrategy","data","deprecated","parsed","lostStop","loseStop","filter","el","undefined","length","when","command","map","block","condition","type","name","getActiveStrategy","state","strategies","gameAutobet","currentStrategy","getStrategyString","getStrategyFromState","find","Object","keys","key","indexOf","sort","a","b","sortService","DIRECTION","value","jsonToString","join","parseDeprecatedStrategy","parseIncrease","count","active","parseAdvanced","betType","dataType","init","advancedCounter","capitalize","loseIncrease","winSwitch","BetState","loseSwitch","winReset","loseReset","winStop","advancedIsStop","advancedIsReset","advancedIsSwitch","parse","force","commandName","whenName","details","push","profitStop","updateStrategyLocalStorage","getGamesList","forEach","game","lsClear","generateGameStrategyKey","rollDirection","betValues","configExpert","configEasy","game_config","isAutobet","lsSet","getStrategyLocalStorage","lsGet","GAME","GameType","ID","roundBetValue","roundNumber","checkExpertConfig","isEasyTemplate","every","parseFloat","checkEasyConfig","checkIsDoubleValue","rule","RollRule","checkIsQuadrupleValue","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","props","isTrueOrZero","index","prevBetValue","nextBetValue","getBetValueMaxMin","checkIsSingleValue","min","max","getSingleBetValueMaxMin","getBetweenBetValueMaxMin","getOutsideBetValueMaxMin","minResult","maxResult","MIN_WIN_CHANCE_","getTwoRangeBetValueMaxMin","parseValue","scientificToDecimal","toString","getRuleBetValuesBetConfig","betValue","bet_value","singleUnder","getWinChangeFromSingleBetValue","bet_value_first","bet_value_second","quadruple","bet_value_third","bet_value_fourth","isDefault","activeGame","getGameFromUrl","dice","getDiceConfig","selected","keno","selectedNumbers","getKenoConfig","currency","user","activeCurrency","mode","payoutValue","Number","limbo","defaultPayout","getPayout","defaultWinChanceValue","rolls","risk","lines","rows","betAmount","defaultBetAmount","parseSingleBetValue","getWinChanceDecimal","getWinChanceFromMultipleBetValues","mapBetValuesDTO","mapBetValuesToDTO","String"],"mappings":"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","debug_id":"66cfcdce-2fa2-54d2-8d50-5b16fb5c88e4"}