{"version":3,"sources":["api/relaxClient.ts","api/threepiClient.ts","shared/helpers/handleExit.ts","shared/helpers/parseUrl.ts","api/client.ts","shared/constants/game.ts","store/playStatus/index.ts","i18n/Key.ts","store/modal/index.ts","store/boards/index.ts","store/gameInfo/index.ts","store/controls/index.ts","store/intro/index.ts","store/states/index.ts","assets/icons/ic_timer.min.svg","assets/sounds/button_enable.mp3","assets/sounds/button_hover.mp3","assets/sounds/gold_reveal.mp3","assets/sounds/stone_click.mp3","assets/sounds/stone_hover.mp3","assets/sounds/dynamite_explosion.mp3","assets/sounds/game_starter.mp3","assets/sounds/win.mp3","shared/hooks/useSound.ts","shared/components/Span/index.ts","shared/components/Span/Span.tsx","shared/components/Toasts/style.ts","shared/components/Toasts/index.ts","shared/components/Toasts/Toasts.tsx","shared/helpers/isMobile.ts","assets/images/img_tile01.min.png","assets/images/img_tile02.min.png","assets/images/img_coin.min.png","assets/images/img_mine.min.png","assets/images/img_explosion.min.png","assets/icons/bonus_label.min.png","shared/components/BlockButton/style.ts","shared/components/BlockButton/index.ts","shared/components/BlockButton/BlockButton.tsx","shared/components/InfoBoard/style.ts","shared/components/InfoBoard/index.ts","shared/components/InfoBoard/InfoBoard.tsx","shared/components/Board/style.ts","shared/components/Board/Board.tsx","shared/helpers/random.ts","shared/components/Board/index.ts","assets/icons/ic_plus.min.svg","shared/hooks/useInterval.ts","shared/components/Button/style.ts","shared/components/Button/Button.tsx","shared/components/Button/index.ts","assets/icons/ic_minus.min.svg","assets/icons/bonus_active.min.png","assets/icons/bonus_inactive.min.png","shared/components/Controller/style.ts","shared/components/Controller/index.ts","shared/components/Controller/Controller.tsx","shared/components/Header/style.ts","shared/components/Header/index.ts","shared/components/Header/Header.tsx","shared/components/PlayingTimer/index.ts","shared/components/PlayingTimer/PlayingTimer.tsx","assets/images/game_logo.min.png","shared/components/PureTable/style.ts","shared/components/PureTable/index.ts","shared/components/PureTable/PureTable.tsx","assets/icons/ic_arrow_right.min.svg","shared/components/Collapser/style.ts","shared/components/Collapser/index.ts","shared/components/Collapser/Collapser.tsx","shared/components/BetsList/store/state.ts","shared/components/BetsList/style.ts","shared/components/BetsList/index.ts","shared/components/BetsList/BetsList.tsx","shared/helpers/translationUtils.ts","i18n/config.ts","shared/components/Intro/Tabs/paytables.ts","assets/images/intro/about/img_about6@2x.min.jpg","assets/images/intro/about/img_about7@2x.min.jpg","assets/images/intro/about/img_about8@2x.min.jpg","shared/components/Intro/Tabs/aboutElements.ts","assets/images/intro/about/img_about1@2x.min.png","assets/images/intro/about/img_about2@2x.min.png","assets/images/intro/about/img_about3@2x.min.png","assets/images/intro/about/img_about4@2x.min.png","assets/images/intro/about/img_about5@2x.min.png","assets/images/intro/about/img_about9@2x.min.jpg","assets/images/intro/about/img_about10@2x.min.png","shared/components/Intro/Tabs/style.ts","shared/components/Intro/Tabs/About.tsx","assets/images/intro/info_cashout.min.png","assets/images/intro/info_mine.min.png","assets/images/intro/info_start.min.png","assets/images/intro/info_bonus.min.png","shared/components/Intro/introSlides.ts","assets/icons/ic_info.min.svg","shared/components/Intro/style.ts","shared/components/Intro/Tabs/Slider.tsx","shared/components/Intro/Intro.tsx","shared/components/Intro/IntroModal.tsx","shared/components/Intro/IntroBar.tsx","shared/hooks/useWindowSize.ts","shared/components/Freebets/style.ts","shared/components/Freebets/index.ts","shared/components/Freebets/Freebets.tsx","shared/components/BonusButton/style.ts","shared/components/BonusButton/index.ts","shared/components/BonusButton/BonusButton.tsx","assets/icons/ic_soundon.min.svg","assets/icons/ic_soundoff.min.svg","assets/icons/ic_session_time.svg","assets/icons/ic_session_timer.svg","views/Game/types.ts","shared/components/Icon/Icon.tsx","shared/components/Icon/index.ts","shared/components/SessionTimer/style.ts","shared/components/SessionTimer/index.ts","shared/components/SessionTimer/SessionTimer.tsx","views/Game/style.ts","views/Game/components/Informer/style.ts","views/Game/components/Informer/index.ts","views/Game/components/Informer/Informer.tsx","views/Game/Game.tsx","assets/images/logo.min.svg","views/Game/index.ts","shared/components/Modal/style.ts","shared/components/Modal/index.ts","shared/components/Modal/Modal.tsx","store/imageStore/index.ts","shared/components/Preloader/files.ts","shared/components/Preloader/style.ts","shared/components/Preloader/index.ts","shared/components/Preloader/Preloader.tsx","App/style.ts","App/index.ts","App/App.tsx","index.tsx"],"names":["isConfigured","setRelaxConfig","currency","configure","p2pConfig","handleRgPostMessageAPI","handleFeaturePause","setProgressLoad","percent","send","gameLoadProgress","startGame","balance","roundStarted","endGame","win","roundFinished","updateBalance","balanceUpdate","updateWin","winUpdate","updateSound","status","updateSettings","sounds","relaxEventer","mappedParams","path","clientName","lobbyurl","operatorid","operatorbrandid","gameid","NYX_GCM_ENV","NYX_GCM_PARAMS","sessionid","jurisdiction","regulatoryURL","rcLimit","rcElapsed","rcExitURL","historyurl","hideHome","environment","playMode","lang","threepiClient","isInitialized","observers","clientAPI","window","init","launchParams","a","initParams","Object","keys","reduce","acc","key","k","initEvents","accountParams","addCallback","type","modeOn","modeOff","callbacks","add","arg","forEach","cb","on","callback","includes","push","off","observerIndex","indexOf","splice","startLoad","value","Math","floor","endLoad","noFunds","stake","mode","updateBet","state","exitGame","updateGameHelp","updatePaytable","updateBetsHistory","isShowRealityCheck","undefined","showInGameRealityCheck","isShowInGameErrors","showInGameErrors","handleError","error","message","code","abs","exitLobby","data","customer","doLobbyURLNavigate","lobby_url","decodeURIComponent","split","start","end","encodeURIComponent","open","e","availParams","getUrlParams","href","decodeURI","location","searchParams","URL","params","val","get","ext_params","parseExtParams","entries","pair","substring","lastIndexOf","session_token","cheats","_forceWin","_forceLoss","this","max","console","log","force_win","force_loss","forceWin","bind","forceLoss","PlayStatus","agentOptions","keepAlive","client","axios","create","baseURL","headers","httpAgent","http","httpsAgent","https","auth","post","bet","getCheatValues","cashout","terminate","getTranslations","translations_url","getBalance","getHistory","Key","playStatusAtom","atom","default","REGULAR","processingAtom","modalState","gridAtom","items","spentTimeAtom","startTime","won","errorsAtom","gameInfoAtom","currency_hex_code","controlsAtom","sound","isPausedMainTheme","introState","statesAtom","paused","_g","soundMap","btnEnable","btnHover","goldReveal","stoneClick","stoneHover","dynamiteExplosion","gameStarter","successfulGame","NOT_SOUND","useSound","name","options","controls","useRecoilValue","useSoundVendor","soundEnabled","volume","Span","html","dangerouslySetInnerHTML","__html","SToasts","styled","div","SToast","span","css","Toasts","useState","setVal","useEffect","intervalId","setTimeout","clearInterval","className","cx","toastAnim","isMobile","some","toMatchItem","navigator","userAgent","match","tileStyle","SButton","button","mineSrc","coinSrc","SStone","tile01Src","tile02Src","SExplosion","explosionSrc","SBox","SStrip","SBonusStrip","bonusSrc","BlockButton","strip","onClick","isSelected","isLast","disabled","isBonus","isProcessing","playStoneClick","playStoneHover","playGoldReveal","playDynamiteExplosion","useRecoilState","errors","setErrors","isMobileDevice","isClicked","setIsClicked","length","prev","filter","item","onMouseEnter","selected","selectedGold","show","opened","SWrapper","SElement","isRight","SLabel","SValue","InfoBoard","nextTile","openedCount","count","t","useTranslation","nuggetsFound","SInner","cellAnimDelay","initialCell","id","initialRows","Array","fill","map","i","index","min","random","join","Board","isGamePlaying","onBet","mines","cells","setCells","countCells","setCountCells","calcCells","useMemo","row","isPlaying","rowIndex","cellIndex","multiplier","bonus","title","_excluded","_extends","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgIcTimermin","_ref","svgRef","titleId","props","xmlns","viewBox","ref","fillRule","d","_path","ForwardRef","useInterval","delay","savedCallback","useRef","current","setInterval","decorativeStyle","StyledButton","StyledLabel","StyledText","Label","style","children","Text","Button","time","isInverseClickSound","onFinished","playBtnEnable","playBtnHover","ms","setMs","useCallback","dayjs","valueOf","hoverHandle","onMouseDown","onFocus","duration","format","SvgIcPlusmin","width","height","_rect","SvgIcMinusmin","x","y","rx","common","SLeft","SRight","SCenter","SCenterOver","StyleLabel","StyleValue","SCenterCover","SProgress","SInput","input","srcBonusSymbolActive","srcBonusSymbol","Controller","label","prevValue","unit","haveBonus","showBonus","hasMaxButton","hasMinButton","onChange","inputRef","progress","setProgress","opt","valueIndex","setValueIndex","setValidatedValueIndex","maxIndex","ind","handleTouchMove","event","pageX","touches","getBoundingClientRect","left","parseInt","toString","changeBy","handleClick","clickHandle","step","onTouchStart","onTouchMove","SHeader","header","Header","PlayingTimer","isStarted","historyUrlRef","modal","setModal","spentTime","setStartTime","currentTime","counter","realityCheck1","realityCheck2","toFixed","realityCheck3","realityCheck4","buttons","keepPlaying","action","quitTheGame","SText","PureTable","isFirstKey","stickyHeaderTop","columns","column","top","cell","SScrollElement","iconArrow","isActive","SBody","Collapser","setIsActive","p","betsListState","isLoading","fixedStyle","SOverlay","SFooter","footer","SModal","STitle","h2","SSubTitle","h3","animRotate","keyframes","animDash","SSpinner","SNoItems","SList","SItem","SSections","SSection","SField","SFieldValue","SFieldKey","SMore","SCollapser","BetsList","openCells","setOpenCells","portalEL","document","getElementById","setBetsList","then","prepareItems","it","pos","positions","i1","i2","grid","_order","handleToggleItem","concat","createPortal","betsHistory","cy","r","noItems","end_time","bet_time","balance_before","balance_after","bet_amount","win_amount","balanceBefore","balanceAfter","arr","revealed","showDetails","maxWidth","close","createTranslation","literal","country","nl","cl","DEFAULT_NS","DEFAULT_LANG","resources","en","fr","ro","de","sv","hr","es","ru","da","lt","bg","ja","ko","th","vi","zh","lv","i18n","use","initReactI18next","lng","getLanguageFromUrl","fallbackLng","interpolation","escapeValue","addDefaultTranslates","trans","defaultTrans","getResourceBundle","img","addResources","minesMultipliers","multi","minesMultipliersB","minesMultipliersC","minesMultipliers_86","minesMultipliers_92","minesMultipliers_93","minesMultipliers_95","urlParams","img_about1","img_about2","img_about3","img_about4","img_about5","img_about6","img_about7","img_about8","img_about9","img_about10","gameCode","versionT","getVersion","aboutRTP","infoP10","generatedMines","getPaytable","content","dynamiteAmount","title2","tilesOpened","betMultiplier","elements","aboutHeader1","aboutText1","aboutText2","aboutText3","aboutHeader2","aboutImage1Title","src","caption","aboutImage1Caption","aboutImage2Title","aboutImage2Caption","aboutImage3Title","aboutImage3Caption","aboutImage4Title","aboutImage4Caption","aboutImage5Title","aboutImage5Caption","aboutImage9Title","aboutImage9Caption","aboutImage10Title","aboutImage10Caption","aboutHeader3","aboutImage6Title","aboutImage6Caption","aboutImage7Title","aboutImage7Caption","aboutImage8Title","aboutImage8Caption","aboutImage11Title","aboutImage11Caption","aboutHeader4","aboutText4","aboutList1Title","text","aboutList1Text","aboutList2Title","aboutList2Text","aboutHeader6","aboutImage91Caption","aboutImage92Caption","aboutImage931ListTitle","aboutImage931ListText","aboutImage932ListTitle","aboutImage932ListText","aboutImage933ListTitle","aboutImage933ListText","aboutImage94Caption","aboutHeader5","aboutText5","aboutText51","aboutHeader7","aboutHeader8","gameVersion","SContent","SSubHeader","STypeHeader","h4","STypeTitle","h5","STypeCaption","STypeFigure","figure","STypeImage","STypeText","STypeList","ul","STypeItem","li","SSliderWrapper","section","SItemImg","withMargin","SItemContent","About","scrollTo","useSetRecoilState","gameInfo","els","el","render","alt","listTitle","listText","tTitle","tTitle2","tColumns","tData","col","querySelector","scrollIntoView","behavior","aboutTitle","rest","img_info_cashout","img_info_mine","img_info_start","img_info_bonus","slides","imgM","header2","infoP21","infoP22","infoP31","infoP32","infoP41","infoP42","infoP61","infoP62","SLogo","SItemHeader2","SCheckedLabel","SBar","STabs","STabHeader","STabHeaderInner","STabButton","STabContent","Slider","showFlag","introStatus","spaceBetween","slidesPerView","navigation","pagination","clickable","initialSlide","sliderIndex","loop","Intro","setIsIntro","tab","currentTab","setCurrentTab","setScrollTo","flag","setFlag","tabs","tutorial","about","imgGameLogo","tabKey","doNotShow","continue","IntroModal","elHtml","classList","remove","IntroBar","screen","getWindowSize","innerWidth","innerHeight","setScreen","handleResize","addEventListener","removeEventListener","useWindowSize","handleChange","color","Freebets","total_win","amount_left","coin_value","freeBets","betAmount","totalWin","srcBadgeActive","srcBadge","BonusButton","setIntro","SvgIcInfomin","SvgIcSoundonmin","SvgIcSoundoffmin","SvgIcSessionTime","SvgIcSessionTimer","GameStatuses","icons","info","InfoIcon","VolumeIcon","VolumeXIcon","session_time","SessionIimeIcon","session_timer","SessionIimerIcon","StyledIcon","Icon","IconComp","SessionTimer","setCurrentTime","durrantion","SSidebar","aside","SWinInfo","SDownTimerText","SGameLogo","gameLogo","SLobbyWrapper","SLobbyLink","StyledInformer","Informer","setControls","flex","alignItems","textAlign","relax","Game","isLoaded","show_time","controlsOption","setControlsOption","setIntroStatus","playGameStarter","playSuccessfulGame","roundBalance","setRoundBalance","freebets","setFreebets","setIsProcessing","setPlayStatus","setGrid","setSpentTime","setStates","INIT","gameStatus","setGameStatus","isBetting","setIsbetting","iterationCount","setIterationCount","previous_session","next_tile_bonus","setHaveBonus","possibleWin","setPossibleWin","nextPossibleWin","setNextPossibleWin","min_interval_bet","countDownTimer","countDownStartTime","setCountDownStartTIme","setBalance","amount","controller","setController","changeStatus","handleCashout","is_active","freeBetsEnd","infoGotIt","mergeItems","newItems","oldItems","END","handleController","betUpdate","playGame","PLAYING","PLAY","next_possible_win","handleBet","coords","position","symbol_found","LOSS","rInd","cInd","closed","possible_win","iteration_number","isRestored","colIndex","oldCol","mine_grid","bet_value_list","mines_number","default_bet_value","freeBetsStart","newSetting","refreshBalance","bal","toggleGameHelp","togglePaytable","handleSound","handleGameHelp","handlePaytable","handleBetsHistory","handlePause","handleSyncBalance","handleUpdateBalance","_b","nextGameTimerT","play","cashOut","selectBetAmount","hasMaxBetButton","hasMinBetButton","mines_value_list","bonus_trigger","maxWin","max_multipliers","hasLobbyButton","backToLobby","reality_check_time","SMessage","SButtonWrapper","Modal","handleQuit","needClearAuth","closeModal","terminateSession","handleCallback","needAuth","reload","background","imageToBlob","fetch","blob","createObjectURL","imageStore","images","addImage","removeImage","getImage","ImageStore","SvgLogomin","files","image","img_game_logo","img_mine","img_coin","img_tile01","img_tile02","img_explosion","sound_button_enable","sound_button_hover","sound_dynamite_explosion","sound_game_starter","sound_gold_reveal","sound_stone_click","sound_stone_hover","sound_win","SPreloader","SImage","SProgressBar","SProgressTrack","Preloader","onLoad","getFilesLength","total","loadedFiles","setLoadedFiles","file","Image","result","Audio","onloadedmetadata","gameLoadStarted","relaxClient","gameLoadCompleted","SPause","App","isPreloaded","setIsPreloaded","setGameInfo","states","setGameInfoA","fetchTranslations","checkAuth","third_party_data","history_url","leftGame","debouncedResize","debounce","elApp","scale","H_CONTENT","W_SIDEBAR","transform","size","update","removeAttribute","extend","SwiperCore","Navigation","Pagination","Index","isThreePILooaded","setThreePILooaded","navigateToHistoryUrl","url","openHistoryUrl","navigateToLobbyUrl","interceptors","response","res","config","mTitle","errorMessage","mButtons","handle911","isArray","newButtons","b","timeoutDesc","timeout","connectionError","handleTabClosing","loadScript","gameURL","Promise","rej","script","createElement","async","head","appendChild","play_for_fun","language","staging","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.f463b098.chunk.js","sourcesContent":["import { configure, send, on } from '@rlx/feim';\n\nlet isConfigured = false;\n\nexport const setRelaxConfig = ({ currency }: { currency: string }) => {\n configure({\n // The received response from /getclientconfig/, or an object adhering to its format\n // (Relax game server users only):\n // clientConfig: clientconfigResponse,\n // The casino login response, or an object adhering to its format\n // (Relax game server users only):\n // loginResponse: casinoLoginResponse,\n\n // When clientConfig and loginResponse cannot be provided\n // (only when not using the Relax game server):\n p2pConfig: { currency: currency },\n\n /* If set to true, FEIM will handle the responsibilities of RgPostMessageAPI library.\n If true, RgPostMessageAPI library or any equivalent/duplicate integration must be\n removed from the game. */\n handleRgPostMessageAPI: true,\n\n /* Some jurisdictions require that the game needs to wait for a user confirmation when\n a bonus game is reached. Set this to false if the game handles it internally. */\n handleFeaturePause: true,\n\n // Optional, see showError:\n // showErrorMessageCallback: MY_GAME.showInGameErrorMessage,\n });\n isConfigured = true;\n};\n\nsetRelaxConfig({ currency: '' });\n\nexport const startLoad = () => {\n send.gameLoadStarted();\n};\n\nexport const setProgressLoad = (percent: number) => {\n send.gameLoadProgress(percent);\n};\n\nexport const endLoad = () => {\n send.gameLoadCompleted();\n};\n\nexport const startGame = (balance: number) => {\n if (isConfigured)\n send.roundStarted({\n balance: balance * 100,\n });\n};\n\nexport const endGame = (balance: number, win: number) => {\n if (isConfigured)\n send.roundFinished({\n balance: balance * 100,\n win: { win: win * 100 },\n });\n};\n\nexport const updateBalance = (balance: number) => {\n if (isConfigured) send.balanceUpdate(balance * 100);\n};\n\nexport const updateBet = (bet: number) => {\n if (isConfigured) send.betUpdate(bet * 100);\n};\n\nexport const updateWin = (win: number) => {\n if (isConfigured)\n send.winUpdate({\n win: win * 100,\n });\n};\n\nexport const updateSound = (status: boolean = true) => {\n send.updateSettings({ sounds: status });\n};\n\nexport const exitGame = () => {\n send.exitGame();\n};\n\nupdateSound();\n\nlet relaxEventer: boolean = false;\n\ntype TFunc =\n | 'updateSettings'\n | 'refreshBalance'\n | 'toggleGameHelp'\n | 'togglePaytable';\n\nexport const listenEvents = (\n cb: (\n on: {\n [key in TFunc]: (cb: (data?: any) => void) => void;\n },\n ) => void,\n) => {\n if (!relaxEventer) {\n relaxEventer = true;\n\n cb(on);\n }\n};\n","import { IKeyLaunchParams, IAccountParams } from '../global';\n\nconst mappedParams = {\n path: 'path',\n clientName: 'clientName',\n lobbyurl: 'lobbyURL',\n operatorid: 'operatorID',\n operatorbrandid: 'operatorBrandID',\n gameid: 'gameID',\n NYX_GCM_ENV: 'NYX_GCM_ENV',\n NYX_GCM_PARAMS: 'NYX_GCM_PARAMS',\n sessionid: 'sessionID',\n jurisdiction: 'jurisdiction',\n regulatoryURL: 'regulatoryURL',\n rcLimit: 'rcLimit',\n rcElapsed: 'rcElapsed',\n rcExitURL: 'rcExitURL',\n historyurl: 'rcHistoryURL',\n hideHome: 'hideHome',\n currency: 'currencyCode',\n\n environment: 'environment',\n playMode: 'playMode',\n lang: 'lang',\n} as const;\n\ntype TKeyUrlParams = keyof typeof mappedParams;\ntype TUrlParams = {\n [key in TKeyUrlParams]: boolean | number | string;\n};\n\ntype TInitParams = {\n [key in IKeyLaunchParams]?: boolean | number | string;\n};\n\nclass ThreepiClient {\n private isInitialized: boolean = true;\n private observers: { [key: string]: ((...args: any) => void)[] } = {};\n clientAPI = window.clientAPI;\n\n init = async (launchParams: { [key: string]: boolean | number | string }) => {\n const initParams = Object.keys(\n launchParams as TUrlParams,\n ).reduce((acc, key) => {\n const k = key as keyof typeof mappedParams;\n\n if (mappedParams[k]) {\n acc[mappedParams[k]] = launchParams[k];\n }\n return acc;\n }, {});\n\n this.isInitialized = await window.clientAPI?.init(initParams);\n\n this.initEvents();\n };\n\n configure = async (accountParams: IAccountParams) => {\n await window.clientAPI?.configure(accountParams);\n };\n\n addCallback = (\n type: string,\n modeOn: string,\n modeOff: string | null = null,\n ) => {\n window.clientAPI?.callbacks[modeOn].add((arg: any) => {\n this.observers[type]?.forEach(cb => cb(true, arg));\n });\n\n if (modeOff) {\n window.clientAPI?.callbacks[modeOff].add((arg: any) => {\n this.observers[type]?.forEach(cb => cb(false, arg));\n });\n }\n };\n\n initEvents = () => {\n const { addCallback } = this;\n\n addCallback('audio', 'audio-enable', 'audio-disable');\n addCallback('help', 'help-open', 'help-close');\n addCallback('paytable', 'paytable-open', 'paytable-close');\n addCallback('history', 'history-open', 'history-close');\n addCallback('pause', 'game-pause', 'game-resume');\n addCallback('sync-balance', 'sync-balance');\n addCallback('update-balance', 'update-balance');\n };\n\n on = (type: string, callback: (...args: any) => void) => {\n if (!this.observers[type]) {\n this.observers[type] = [];\n }\n\n if (!this.observers[type].includes(callback)) {\n this.observers[type].push(callback);\n }\n };\n\n off = (type: string, callback: (...args: any) => void) => {\n if (!this.observers[type]) return;\n\n const observerIndex = this.observers[type].indexOf(callback);\n\n if (observerIndex > -1) {\n this.observers[type].splice(observerIndex, 1);\n }\n };\n\n startLoad = () => {\n window.clientAPI?.send('load-start');\n };\n\n setProgressLoad = (value: number) => {\n window.clientAPI?.send('load-progress', Math.floor(value));\n };\n\n endLoad = () => {\n window.clientAPI?.send('load-end');\n };\n\n startGame = () => {\n window.clientAPI?.send('play-start');\n window.clientAPI?.send('value-win', 0);\n };\n\n endGame = () => {\n window.clientAPI?.send('play-end');\n };\n\n noFunds = () => {\n window.clientAPI?.send('no-funds');\n };\n\n updateBalance = (\n value: number,\n stake: number,\n mode: 'start' | 'end' = 'start',\n ) => {\n window.clientAPI?.send('value-balance', {\n balance: value,\n mode: mode === 'start' ? 'place' : 'settle',\n stake: stake, // 'place' start of round | 'settle' end of round\n });\n };\n\n updateBet = (value: number) => {\n window.clientAPI?.send('value-stake', value);\n };\n\n updateWin = (value: number) => {\n window.clientAPI?.send('value-win', value);\n };\n\n updateSound = (state: boolean) => {\n if (state) {\n window.clientAPI?.send('audio-enable');\n } else {\n window.clientAPI?.send('audio-disable');\n }\n };\n\n exitGame = () => {\n window.clientAPI?.send('game-close');\n };\n\n updateGameHelp = (state: boolean) => {\n if (state) {\n window.clientAPI?.send('help-open');\n } else {\n window.clientAPI?.send('help-close');\n }\n };\n\n updatePaytable = (state: boolean) => {\n if (state) {\n window.clientAPI?.send('paytable-open');\n } else {\n window.clientAPI?.send('paytable-close');\n }\n };\n\n updateBetsHistory = (state: boolean) => {\n if (state) {\n window.clientAPI?.send('history-open');\n } else {\n window.clientAPI?.send('history-close');\n }\n };\n\n isShowRealityCheck = () => {\n return window.clientAPI &&\n window.clientAPI.showInGameRealityCheck !== undefined\n ? window.clientAPI.showInGameRealityCheck\n : true;\n };\n\n isShowInGameErrors = () => {\n return window.clientAPI && window.clientAPI.showInGameErrors !== undefined\n ? window.clientAPI.showInGameErrors\n : true;\n };\n\n handleError = (error: { status: number, message: string }) => {\n const {status, message} = error;\n let code = status;\n\n if (code > 1000) {\n code = -Math.abs(code - 1000);\n }\n\n window.clientAPI?.send(\"error\", [code, message]);\n };\n}\n\nconst threepiClient = new ThreepiClient();\n\nexport default threepiClient;\n","import { exitGame } from 'api/relaxClient';\nimport threepiClient from 'api/threepiClient';\n\nexport const exitLobby = (data: any): boolean => {\n if (data?.customer === 'onextwo') {\n threepiClient.exitGame();\n\n if (!threepiClient.clientAPI.doLobbyURLNavigate) {\n return true;\n }\n }\n\n if (data?.customer === 'relax') {\n exitGame();\n return true;\n }\n\n try {\n if (data?.lobby_url || data?.lobbyurl) {\n if (data?.customer === 'betconstruct') {\n let lobby_url = data?.lobby_url || data?.lobbyurl || '';\n const [start, end] = decodeURIComponent(lobby_url).split('?');\n lobby_url = start + '?' + encodeURIComponent(end);\n data.lobby_url = data.lobbyurl = lobby_url;\n }\n\n window?.open(data?.lobby_url || '', '_top');\n return true;\n }\n } catch (e) {}\n\n return false;\n};\n\nexport const openHistoryUrl = (url: string) => {\n try {\n if (url) {\n window?.open(url, '_blank', 'noopener,noreferrer');\n }\n } catch (e) {}\n};\n","import { IParams } from 'api/types';\n\nconst availParams = [\n 'game_code',\n 'platform',\n 'pre_authentication_token',\n 'casino_token',\n 'customer',\n 'currency',\n 'language',\n 'player_uid',\n 'play_for_fun',\n 'reality_check_time',\n 'max_bet',\n 'min_bet',\n 'translations_url',\n 'show_time',\n 'staging',\n];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst exampleQueryParams =\n '?game_code=gold_mine&platform=desktop&play_for_fun=false&player_uid=ef209437-0674-4d9d-8456-f2653cc356fd&casino_token=calayroche¤cy=EUR&language=sv&ext_params[gamesessionid]={operator_id}_IOJEWE3JFF0&ext_params[accountid]=1086&ext_params[lobbyurl]=https://{home_url}&ext_params[historyurl]=https://{historyUrl}&ext_params[license]=UK';\n\nexport const QUERY_MAX_BET = 'max_bet';\nexport const QUERY_MIN_BET = 'min_bet';\n\nexport const getUrlParams = () => {\n const href = decodeURI(window.location.href);\n const { searchParams } = new URL(href);\n const params: IParams = {};\n\n availParams.forEach(key => {\n const val = searchParams.get(key);\n if (val) {\n params[key] = val;\n }\n });\n\n const ext_params = parseExtParams();\n\n if (ext_params) {\n params['ext_params'] = ext_params;\n }\n\n return params;\n};\n\nexport const getLanguageFromUrl = () => {\n const href = decodeURI(window.location.href);\n const { searchParams } = new URL(href);\n return searchParams.get('language') || 'en';\n};\n\nexport const parseExtParams = () => {\n let ext_params: { [key: string]: string } = {};\n let href = decodeURI(window.location.href);\n let searchParams = new URL(href).searchParams; // new URLSearchParams(href);\n for (let pair of searchParams.entries()) {\n if (pair[0].indexOf('ext_params') !== -1) {\n let field = pair[0].substring(\n pair[0].lastIndexOf('[') + 1,\n pair[0].lastIndexOf(']'),\n );\n ext_params[field] = pair[1];\n }\n }\n return ext_params;\n};\n","import axios from 'axios';\nimport { IParams } from './types';\nimport * as http from 'http';\nimport * as https from 'https';\nimport { getUrlParams } from 'shared/helpers/parseUrl';\nimport { setRelaxConfig } from './relaxClient';\n\nlet session_token: string = '';\nlet currency: string = '';\n\nclass Cheats {\n _forceWin: number | null = null;\n _forceLoss: number | null = null;\n\n constructor() {\n this._forceWin = null;\n this._forceLoss = null;\n }\n\n forceWin(value: any) {\n if (!(typeof value === 'number')) {\n console.log(`Incorrect force win value: ${value}. Should be number`);\n return;\n }\n this._forceWin = Math.max(0, value);\n this._forceLoss = null;\n console.log(\n `Force win is set to: ${this._forceWin}.\\nForce loss is reset.`,\n );\n }\n\n forceLoss(value: any) {\n if (!(typeof value === 'number')) {\n console.log(`Incorrect force loss value: ${value}. Should be number`);\n return;\n }\n\n this._forceLoss = Math.max(0, value);\n this._forceWin = null;\n console.log(\n `Force loss is set to: ${this._forceLoss}.\\nForce win is reset.`,\n );\n }\n\n getCheatValues(): any {\n if (this._forceWin != null) {\n this._forceWin--;\n console.log(\n `Sending force_win: true.\\nForce wins left: ${this._forceWin}`,\n );\n if (this._forceWin === 0) {\n this._forceWin = null;\n }\n return {\n force_win: true,\n };\n }\n\n if (this._forceLoss != null) {\n this._forceLoss--;\n if (this._forceLoss >= 0) {\n console.log(\n `Sending force_win: true.\\nBets to force_loss left: ${this._forceLoss}`,\n );\n return {\n force_win: true,\n };\n }\n this._forceLoss = null;\n console.log(`Sending force_loss: true.`);\n return {\n force_loss: true,\n };\n }\n\n return {};\n }\n}\n\nconst cheats = new Cheats();\n//@ts-ignore\nwindow.forceWin = cheats.forceWin.bind(cheats);\n//@ts-ignore\nwindow.forceLoss = cheats.forceLoss.bind(cheats);\n\nconst agentOptions = {\n keepAlive: true,\n};\n\nexport const client = axios.create({\n baseURL: 'https://curacao-backend.gamingcorpscasino.com/casino/mines',\n headers: {\n 'Content-Type': 'application/json',\n },\n httpAgent: new http.Agent(agentOptions),\n httpsAgent: new https.Agent(agentOptions),\n});\n\nexport const auth = async (params: IParams) => {\n try {\n const { data } = await client.post('/authenticate', params);\n session_token = data.session_token || '';\n currency = data.currency || '';\n\n if (currency) {\n setRelaxConfig({\n currency,\n });\n }\n\n return {\n currency,\n ...data,\n };\n } catch (error) {}\n return {};\n};\n\nexport const init = async (params: IParams) => {\n try {\n const { data } = await client.post('/init', {\n currency,\n session_token,\n ...params,\n });\n\n return data.status === 200 ? data : false;\n } catch (error) {}\n};\n\nexport const bet = async (params: IParams) => {\n try {\n const { data } = await client.post('/bet', {\n currency,\n session_token,\n ...params,\n ...cheats.getCheatValues(),\n });\n\n return data;\n } catch (error) {}\n};\n\nexport const cashout = async () => {\n try {\n const { data } = await client.post('/cashout', {\n currency,\n session_token,\n });\n\n return data;\n } catch (error) {}\n};\n\nexport const terminate = async () => {\n try {\n if (!session_token) {\n return;\n }\n const { data } = await client.post('/terminate', {\n session_token,\n });\n return data;\n } catch (error) {}\n};\n\nexport const getTranslations = async () => {\n try {\n const { translations_url } = getUrlParams();\n const { data } = await axios.get(translations_url);\n\n return data || {};\n } catch (error) {\n console.log('getTranslations', error);\n }\n return {};\n};\n\nexport const getBalance = async () => {\n try {\n if (!session_token) {\n return;\n }\n\n const { data } = await client.post('/balance', {\n session_token,\n });\n return data;\n } catch (error) {}\n return {};\n};\n\nexport const getHistory = async () => {\n try {\n if (!session_token) {\n return;\n }\n\n const { data } = await client.post('/history', {\n session_token,\n });\n\n return data;\n } catch (error) {}\n return {};\n};\n","export const GETTING_BALANCE_DELAY = 60000;\n\nexport enum PlayStatus {\n REGULAR = 'regular',\n PLAYING = 'playing',\n LOSS = 'loss',\n WIN = 'win',\n}\n","import { atom } from 'recoil';\nimport { PlayStatus } from 'shared/constants/game';\n\nexport const playStatusAtom = atom<{\n status:\n | PlayStatus.REGULAR\n | PlayStatus.PLAYING\n | PlayStatus.LOSS\n | PlayStatus.WIN;\n}>({\n key: 'playStatus',\n default: {\n status: PlayStatus.REGULAR,\n },\n});\n\nexport const processingAtom = atom({\n key: 'processing',\n default: false,\n});\n","export enum Key {\n play = 'play',\n selectBetAmount = 'selectBetAmount',\n dynamiteAmount = 'dynamiteAmount',\n mines = 'mines',\n balance = 'balance',\n reload = 'reload',\n cashOut = 'cashOut',\n nextTile = 'nextTile',\n nuggetsFound = 'found',\n keepPlaying = 'keepPlaying',\n quitTheGame = 'quitTheGame',\n leftGame = 'leftGame',\n realityCheck1 = 'realityCheck1',\n realityCheck2 = 'realityCheck2',\n realityCheck3 = 'realityCheck3',\n realityCheck4 = 'realityCheck4',\n nextGameTimerT = 'nextGameTimerT',\n infoGotIt = 'infoGotIt',\n doNotShow = 'doNotShow',\n rotatePhone = 'rotatePhone',\n maxWin = 'maxWin',\n continue = 'continue',\n betAmount = 'betAmount',\n freeBets = 'freeBets',\n totalWin = 'totalWin',\n freeBetsStart = 'freeBetsStart',\n freeBetsEnd = 'freeBetsEnd',\n connectionError = 'connectionError',\n timeout = 'timeout',\n timeoutDesc = 'timeoutDesc',\n infoP10 = 'infoP10',\n infoP10B = 'infoP10B',\n infoP10C = 'infoP10C',\n infoP21 = 'infoP21',\n infoP22 = 'infoP22',\n infoP31 = 'infoP31',\n infoP32 = 'infoP32',\n infoP41 = 'infoP41',\n infoP42 = 'infoP42',\n infoP61 = 'infoP61',\n infoP62 = 'infoP62',\n tutorial = 'tutorial',\n about = 'about',\n aboutTitle = 'aboutTitle',\n aboutText1 = 'aboutText1',\n aboutText2 = 'aboutText2',\n aboutText3 = 'aboutText3',\n aboutText4 = 'aboutText4',\n aboutText4B = 'aboutText4B',\n aboutText4C = 'aboutText4C',\n aboutText5 = 'aboutText5',\n aboutText51 = 'aboutText51',\n aboutHeader1 = 'aboutHeader1',\n aboutHeader2 = 'aboutHeader2',\n aboutHeader3 = 'aboutHeader3',\n aboutHeader4 = 'aboutHeader4',\n aboutHeader5 = 'aboutHeader5',\n aboutHeader6 = 'aboutHeader6',\n aboutHeader7 = 'aboutHeader7',\n aboutHeader8 = 'aboutHeader8',\n aboutImage1Title = 'aboutImage1Title',\n aboutImage1Caption = 'aboutImage1Caption',\n aboutImage2Title = 'aboutImage2Title',\n aboutImage2Caption = 'aboutImage2Caption',\n aboutImage3Title = 'aboutImage3Title',\n aboutImage3Caption = 'aboutImage3Caption',\n aboutImage4Title = 'aboutImage4Title',\n aboutImage4Caption = 'aboutImage4Caption',\n aboutImage5Title = 'aboutImage5Title',\n aboutImage5Caption = 'aboutImage5Caption',\n aboutImage6Title = 'aboutImage6Title',\n aboutImage6Caption = 'aboutImage6Caption',\n aboutImage7Title = 'aboutImage7Title',\n aboutImage7Caption = 'aboutImage7Caption',\n aboutImage8Title = 'aboutImage8Title',\n aboutImage8Caption = 'aboutImage8Caption',\n aboutImage9Title = 'aboutImage9Title',\n aboutImage9Caption = 'aboutImage9Caption',\n aboutImage91Caption = 'aboutImage91Caption',\n aboutImage931ListTitle = 'aboutImage931ListTitle',\n aboutImage931ListText = 'aboutImage931ListText',\n aboutImage932ListTitle = 'aboutImage932ListTitle',\n aboutImage932ListText = 'aboutImage932ListText',\n aboutImage933ListTitle = 'aboutImage933ListTitle',\n aboutImage933ListText = 'aboutImage933ListText',\n aboutImage92Caption = 'aboutImage92Caption',\n aboutImage94Caption = 'aboutImage94Caption',\n aboutImage10Title = 'aboutImage10Title',\n aboutImage10Caption = 'aboutImage10Caption',\n aboutImage11Title = 'aboutImage11Title',\n aboutImage11Caption = 'aboutImage11Caption',\n aboutList1Title = 'aboutList1Title',\n aboutList1TitleB = 'aboutList1TitleB',\n aboutList1TitleC = 'aboutList1TitleC',\n aboutList1Text = 'aboutList1Text',\n aboutList1TextB = 'aboutList1TextB',\n aboutList1TextC = 'aboutList1TextC',\n aboutList2Title = 'aboutList2Title',\n aboutList2TitleB = 'aboutList2TitleB',\n aboutList2TitleC = 'aboutList2TitleC',\n aboutList2Text = 'aboutList2Text',\n aboutList2TextB = 'aboutList2TextB',\n aboutList2TextC = 'aboutList2TextC',\n tilesOpened = 'tilesOpened',\n betMultiplier = 'betMultiplier',\n bonus = 'bonus',\n backToLobby = 'backToLobby',\n gameVersion = 'gameVersion',\n img_about1 = 'img_about1',\n img_about2 = 'img_about2',\n img_about3 = 'img_about3',\n img_about4 = 'img_about4',\n img_about5 = 'img_about5',\n img_about6 = 'img_about6',\n img_about7 = 'img_about7',\n img_about8 = 'img_about8',\n img_about9 = 'img_about9',\n img_about10 = 'img_about10',\n img_info_start = 'img_info_start',\n img_info_cashout = 'img_info_cashout',\n img_info_mine = 'img_info_mine',\n img_info_bonus = 'img_info_bonus',\n betsHistory = 'betsHistory',\n noItems = 'noItems',\n duration = 'duration',\n balanceAfter = 'balanceAfter',\n balanceBefore = 'balanceBefore',\n win = 'win',\n bet = 'bet',\n close = 'close',\n showDetails = 'showDetails',\n}\n","import { ReactNode } from 'react';\nimport { atom } from 'recoil';\n\nexport interface IModalButton {\n label: string;\n type: 'reload' | 'close' | 'quit' | 'history' | 'continue' | 'lobby';\n action?: () => void | boolean;\n}\n\nexport interface IModalState {\n title?: ReactNode;\n message?: ReactNode;\n buttons?: IModalButton[];\n needAuth?: boolean;\n needClearAuth?: boolean;\n}\n\nexport const modalState = atom({\n key: 'modal',\n default: null,\n});\n","import { atom } from 'recoil';\nimport { IRow } from 'shared/components/Board';\n\nexport const gridAtom = atom<{\n items: IRow[];\n}>({\n key: 'gridAtom',\n default: {\n items: [],\n },\n});\n","import { atom } from 'recoil';\n\nexport const spentTimeAtom = atom<{\n startTime: number;\n bet: number;\n won: number;\n}>({\n key: 'spentTime',\n default: {\n startTime: 0,\n bet: 0,\n won: 0,\n },\n});\n\nexport const errorsAtom = atom<{\n items: string[];\n}>({\n key: 'errors',\n default: {\n items: [],\n },\n});\n\nexport const gameInfoAtom = atom<{ [key: string]: any }>({\n key: 'info',\n default: {\n currency_hex_code: '',\n },\n});\n","import { atom } from 'recoil';\n\nexport const controlsAtom = atom<{\n sound: boolean;\n isPausedMainTheme: boolean;\n}>({\n key: 'controls',\n default: {\n sound: true,\n isPausedMainTheme: false,\n },\n});\n","import { atom } from 'recoil';\nimport { TTabs } from 'shared/components/Intro/types';\n\ntype TIntro = null | {\n tab?: TTabs;\n sliderIndex?: number;\n scrollTo?: string;\n};\n\nexport const introState = atom({\n key: 'intro',\n default: null,\n});\n","import { atom } from 'recoil';\n\nexport const statesAtom = atom<{\n paused: boolean;\n}>({\n key: 'states',\n default: {\n paused: false,\n },\n});\n","var _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcTimermin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"nonzero\",\n d: \"M12.75 5a.75.75 0 01-1.493.102L11.25 5V3a.75.75 0 01.75-.75c5.385 0 9.75 4.365 9.75 9.75s-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12a9.72 9.72 0 012.847-6.886.75.75 0 011.062 1.06 8.25 8.25 0 106.592-2.39L12.75 5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.474 7.596a.3.3 0 01.406-.122l5.06 2.725-.024.022a2 2 0 11-2.722 2.638l-.026.025L7.474 7.88a.3.3 0 010-.284z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcTimermin);\nexport default __webpack_public_path__ + \"static/media/ic_timer.min.6ab16fcd.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/button_enable.4bb3017d.mp3\";","export default __webpack_public_path__ + \"static/media/button_hover.e6da8898.mp3\";","export default __webpack_public_path__ + \"static/media/gold_reveal.c471283e.mp3\";","export default __webpack_public_path__ + \"static/media/stone_click.098ae0bf.mp3\";","export default __webpack_public_path__ + \"static/media/stone_hover.b900921d.mp3\";","export default __webpack_public_path__ + \"static/media/dynamite_explosion.683bc38a.mp3\";","export default __webpack_public_path__ + \"static/media/game_starter.511f033e.mp3\";","export default __webpack_public_path__ + \"static/media/win.b482700e.mp3\";","import useSoundVendor from 'use-sound';\nimport { useRecoilValue } from 'recoil';\n\nimport { controlsAtom } from 'store';\n\nimport btnEnable from 'assets/sounds/button_enable.mp3';\nimport btnHover from 'assets/sounds/button_hover.mp3';\nimport goldReveal from 'assets/sounds/gold_reveal.mp3';\nimport stoneClick from 'assets/sounds/stone_click.mp3';\nimport stoneHover from 'assets/sounds/stone_hover.mp3';\nimport dynamiteExplosion from 'assets/sounds/dynamite_explosion.mp3';\nimport gameStarter from 'assets/sounds/game_starter.mp3';\nimport successfulGame from 'assets/sounds/win.mp3';\n\ntype TSoundName =\n | 'btnEnable'\n | 'btnHover'\n | 'goldReveal'\n | 'stoneClick'\n | 'stoneHover'\n | 'dynamiteExplosion'\n | 'gameStarter'\n | 'successfulGame'\n | 'NOT_SOUND';\n\nconst soundMap: {\n [key in TSoundName]: string;\n} = {\n btnEnable,\n btnHover,\n goldReveal,\n stoneClick,\n stoneHover,\n dynamiteExplosion,\n gameStarter,\n successfulGame,\n NOT_SOUND: '',\n};\n\nexport const useSound = (\n name: TSoundName,\n options?: {\n [key: string]: string | boolean | number;\n },\n) => {\n const controls = useRecoilValue(controlsAtom);\n\n return useSoundVendor(soundMap[name], {\n soundEnabled: controls.sound,\n volume: 0.2,\n ...options,\n });\n};\n","import Span from './Span';\n\nexport default Span;\n","import { FC } from 'react';\n\nconst Span: FC<{ html: string }> = ({ html }) => {\n return ;\n};\n\nexport default Span;\n","import styled, { css } from 'styled-components';\n\nexport const SToasts = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n position: absolute;\n left: 15px;\n top: 10px;\n margin-top: -40px;\n height: 1px;\n`;\n\nexport const SToast = styled.span<{ type: string }>`\n display: block;\n height: 22px;\n font-size: 17px;\n font-weight: 500;\n padding: 1px 10px;\n border-radius: 11px;\n color: #fff;\n background: rgb(232, 89, 21);\n margin-bottom: 8px;\n min-width: 40px;\n\n &.toastAnim {\n animation: fadeInAnim 2s forwards;\n }\n\n ${({ type }) =>\n type === 'start' &&\n css`\n color: var(--primary-color);\n background: rgb(255, 227, 16);\n `};\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n font-size: 14px;\n line-height: 22px;\n }\n`;\n","import Toasts from './Toasts';\nexport * from './types';\n\nexport default Toasts;\n","import { FC, useEffect, useState } from 'react';\nimport cx from 'classnames';\n\nimport Span from '../Span';\n\nimport { SToasts, SToast } from './style';\nimport { IToastsProps } from './types';\n\nconst Toasts: FC = ({ value, type = 'start', currency }) => {\n const [val, setVal] = useState(-1);\n\n useEffect(() => {\n setVal(value);\n let intervalId: any = 0;\n\n if (type !== 'win')\n intervalId = setTimeout(() => {\n setVal(-1);\n }, 2000);\n\n return () => {\n clearInterval(intervalId);\n };\n }, [value, type]);\n\n return (\n \n {val > 0 && (\n \n {type === 'start' ? '-' : '+'}\n \n {value}\n \n )}\n \n );\n};\n\nexport default Toasts;\n","export const isMobile = () => {\n const toMatch = [\n /Android/i,\n /webOS/i,\n /iPhone/i,\n /iPad/i,\n /iPod/i,\n /BlackBerry/i,\n /Windows Phone/i,\n ];\n\n return toMatch.some(toMatchItem => {\n return navigator.userAgent.match(toMatchItem);\n });\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/img_coin.min.dbd64c60.png\";","export default __webpack_public_path__ + \"static/media/img_mine.min.cae89b9e.png\";","export default __webpack_public_path__ + \"static/media/img_explosion.min.ad5a6617.png\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAABrCAMAAAA8RU7yAAAC/VBMVEVHcEzoWRTmVBbrRhPnUxXXPyf/Aw/oVxXuOxDtQRHrRRLnVxX/ABbsPBHqPxTuMA/cURfoVBTlVRfnURToThTlVxbqRxLnWRXoWRTqJhDyFAzlUBXpThPfTRzpRBTnWBXjWBnmWBbZVxjnVRTtPBDtNRHpTBXmWBbuJhDqRxHrTBPyHgzqPRLrQRLmSBbnUBfeWCXmWBfnUxXpQxXvMQ/pHxLtPxH/AADmWBboSxT2CAjmWBf1GQrsPxLwLAztLRH2FAzsNhLaSx7gVhnoTRPuKBDeVhvoVhPvLw3kWBnpVRTsPRH/AAfiUBjwOhDhWhvwHA7/AADmWRjnQxPoSBTtLBPrQhPmVRfuNQ7nUBXfTx//AADwNQ7lVxboTRX/AADnWBXmWBbpRxHtPRDrPRDmWBbgVxrqQRTkVxfnVxTqTBPiWRjSUibsRRL4AAboQhTnVxPrQxPuLRDnVxbmVhfoWRX////qYyP+9O/tglDpYyPrbjLrbTH//v786uLugk/0sI/ugU3///7+8+7oWRb51cT86uH749fypoLsdDrtfknyo37pYCD51sTscjn1t5jym3LqaSvoWhb++/r++PX1tJT86+LpXx3qZynuhFHrbDD40sD97ebwlWnyo33zrIr4z7vvi1v2wafwkGLqZSX2vqL2wKbzqIX4zbj75tv+9fHxl2375Nn1up70rIr50r/sdz7xoHn//fz2vqT628z739HqaS3+9fLyoXvsdTzqZCP0s5L86eD4zrrrbzPxnXXsekPpYiHvjF3pXRrpXRz3y7b62Mf86N/ug1D85t3+9PH4ybL1tJb518b62cn62svyoXn0rozviVn63c774NP0q4n2wqn3w6rsekXwkmX62sr3yLHvhlbwkmTzqofsfEfoWxn62831t5rrbTPwmG397ufuhVL97+n3wqn++vfrcTfpXBr98Or1uZvrcDb0tZf3xKz4ybPxmW/+9/Tsdj/40LztfUnzq4bwmG/zpoHyn3b1vKD3wKb3xq7qaCkDWVqjAAAAc3RSTlMA4P4n/iAQoL6A7mALvsl/Fv7foPNQ7v7fPz8j+llv7nl/KWO+VsnJP56aKpbefsE33Pu+lFKxBMR6H5kzvn5ZPRxUbZFeXuZ1x+jAIJHFVXwJXpDlZ6nRnvEQDDSd5gfSIHa8W+R0lHWgt34ooip7gLZfLG6xcgAABNhJREFUeF7E1kfI5VQYx+G4ns1shhlQHJGBcam4EURcCIJbN4JiGcWGCm7+b3J7/Xrvvfc2vffee2/23nsv+IWc+/IlX05ObnLB3/ry5Lzw3pNohZY+/trbYbpn2VLN3rKHEL7VTy4Q16xGaXpiTYG8dyVK1Yo7xSnvQOlaaaEPoJQ99fw8uQQlbfnd8+YKBG+0CYt6TtPuR+A+6mmhiqFFB71Peyw4maT5svuc5ovaw2FIV/Qt7fUQpEBnYOslNgOQjNbYgFVsBiN5/PAmkzx+WJNJ5/hshif5pGyGJ3ml2AxPMspmeJLHD2g2l5O0lvpgZjULl48Iai2jbcHMCIkq/h22oAQYHQ9mxgW5Rc+zyWhlMFNIW3SwiQKajAUzkf+LKPvPKGwm3s0RXYoF3/kDv+qAwwRSVSHvEIfJ/f+m3llaU9/XM21uZEO8RGY+MraNCjV0lMBsmuilhc1uDWnq75SRs6OhzMjpk+TSQGBTr5yVXWh6IDN6sYfk/RbAjKRPklcVxZp6/2ZSlE0VY9ZGJje6MsapW7PEfePf1AcMcm9MBzDDm2/ofs2Rr0nSEZihkYe/4dOsJGldsOIxyvhyNjNk5qckb1SYvGCJvTBLWeacxIwmSV69MOvs/yXxFjrXKTF/l4ssxIk7JoDrbWMHOyAxL3mZ0z8DgH7ZvqKcxIwSR1czqJ0pt6FfjEV2bDhBCzqlNq8Tl4bZXoM8M3SlmWHgp8O8Wl5lzyvNbxnYA6sYeVemNGsTJLomzCqFmdihMsHvCKPZMj8mRWml2cdADcy6kwLYNFQ9stvNzCnNqMHoQAeQOSaAH2H2uestqjLRQFziLL9+hwF+orM9SjNFbg3B6pqLuVFXmZhyM98T5pzb8P1K84qbuUGYZ8ilc0pzZ4uLOWVt1nre9LarveqLhE2UkUuTcQARsVi7qwC8/zeju5TmCLmVGxy/SaL9MMvXqS4SNtFskHcfCKCPhz+uMnFaYQ4L4EsqlFaaGYU5KIDbbH6vNHHU22zdCrP8OJu/qM0Ju5Frd6DrOvnTwfc5o63EUXnXIXSn7Whye6RvkrjsdrWJdcR9EoNZDXmU2O/DvEjcHzDDoc9I3hn4MGEwkIHVJo9jVvsydzFQ+P0tuXkBvsz1zu8ZJKVkG1Sm8zNrOg6zAZmYa4Rfs5+B9htfoek7iXj2ig7fZnQbca3t7qDxYQaAfxM/kHeJuoOHoegRh3ncUzyxdifUPag9C1vyJTfmUhCpzFdga0Ii1jXWAn7NJbB1oMIF7L3QDf+t0t6EvXrDAU6Pp1BUr2raC7AXK7fNfF5HcS1/VNPegKP4HK9iugpFd9czmvb0y1ik/jm4eepmQxeC9F8rddaSQBSGcfxhRse1wopZQoMIwz0QLQzRikLRVtRQxpsBb/TCpez7OzIQVrOcOef8PsCf9+LhHcL0+s1T8glbS45J5Q2WM37JD5i4Xqq86PiRUnkkE7137LjLrZmPlB/xhxFiK0YbEv4TLxiKBxLspQ/pksdm0VlMpShWJLjSay1/xXLhBp6MB4G8GMjmQcSYkhav6iAmXpJMPHwLX+69JiDsncC3c9Wt2NVA47rUcZr4fga0gs9ru2KxCgouX0DpD8BKnP0qym0JHIyPRlbwS1414+BFmywip59zENkAwyZ7KieKcEQAAAAASUVORK5CYII=\"","import styled, { css } from 'styled-components';\n\nimport tile01Src from 'assets/images/img_tile01.min.png';\nimport tile02Src from 'assets/images/img_tile02.min.png';\nimport coinSrc from 'assets/images/img_coin.min.png';\nimport mineSrc from 'assets/images/img_mine.min.png';\nimport explosionSrc from 'assets/images/img_explosion.min.png';\nimport bonusSrc from 'assets/icons/bonus_label.min.png';\n\nconst tileStyle = css`\n position: absolute;\n width: 100%;\n height: 100%;\n max-width: 100px;\n max-height: 100px;\n top: 0;\n left: 0;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\nexport const SButton = styled.button`\n flex: 0 0 20%;\n position: relative;\n display: block;\n border: none;\n width: 100%;\n height: 100%;\n max-width: 100px;\n max-height: 100px;\n border-radius: 3px;\n background: none;\n cursor: pointer;\n user-select: none;\n transition: transform 0.1s;\n z-index: 10;\n padding-top: 20%;\n\n &:not(:disabled):not(.is-mobile):hover {\n transform: scale(1.08);\n }\n\n &:disabled {\n cursor: default;\n z-index: 10;\n }\n\n &.is-last {\n z-index: 11;\n }\n\n &:before,\n &:after {\n content: '';\n ${tileStyle};\n opacity: 0.4;\n visibility: hidden;\n background-image: url('${mineSrc}');\n }\n\n &:after {\n background-image: url('${coinSrc}');\n }\n\n &.is-dynamite:before,\n &.is-gold:after {\n visibility: visible;\n }\n\n &.selected.is-dynamite:before,\n &.selected.is-gold:after {\n opacity: 1;\n }\n`;\n\nexport const SStone = styled.span`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n max-width: 100px;\n max-height: 100px;\n animation: collapsePart ease-out forwards;\n\n span {\n ${tileStyle};\n opacity: 1;\n z-index: 100;\n pointer-events: none;\n\n &.block-part-1 {\n background-image: url('${tile01Src}');\n }\n\n &.block-part-2 {\n background-image: url('${tile02Src}');\n z-index: 101;\n }\n }\n\n &.opened {\n animation: none;\n\n span {\n }\n\n .block-part-1 {\n animation: 0.25s expandPart1 forwards;\n }\n\n .block-part-2 {\n animation: 0.25s expandPart2 forwards;\n }\n }\n`;\n\nexport const SExplosion = styled.span`\n ${tileStyle};\n opacity: 0;\n background-image: url('${explosionSrc}');\n\n &.show {\n opacity: 1;\n }\n`;\n\nexport const SBox = styled.span`\n position: absolute;\n width: 100%;\n height: 100%;\n max-width: 100px;\n max-height: 100px;\n top: 0;\n left: 0;\n z-index: 10;\n\n &.selectedGold {\n &:before {\n content: '';\n position: absolute;\n top: 20%;\n left: 30%;\n display: block;\n width: 32px;\n height: 32px;\n border-radius: 5px;\n background: rgb(255, 245, 168);\n filter: blur(15px);\n animation: goldPulse ease-in-out 2s forwards;\n }\n }\n`;\n\nexport const SStrip = styled.span`\n display: block;\n position: absolute;\n background: rgb(232, 89, 21);\n color: white;\n font-size: 15px;\n font-weight: 500;\n text-align: center;\n border-radius: 0 0 4px 4px;\n overflow: hidden;\n height: 26px;\n line-height: 26px;\n bottom: 5%;\n left: 5%;\n width: 90%;\n animation: fadeOut 0.3s;\n animation-fill-mode: forwards;\n animation-delay: 2s;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n height: 22px;\n line-height: 22px;\n }\n\n @media (max-width: 350px) and (max-aspect-ratio: 1/1) {\n height: 18px;\n line-height: 18px;\n font-size: 12px;\n }\n`;\n\nexport const SBonusStrip = styled.span`\n background-size: 100% auto;\n width: 36px;\n height: 45px;\n z-index: 100;\n right: 3px;\n top: 3px;\n position: absolute;\n background: none no-repeat 50% 50%;\n background-size: auto 100%;\n background-image: url('${bonusSrc}');\n pointer-events: none;\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n width: 30px;\n height: 30px;\n }\n`;\n","import BlockButton from './BlockButton';\n\nexport default BlockButton;\n","import { useState, useEffect, FC } from 'react';\nimport cx from 'classnames';\nimport { useRecoilState, useRecoilValue } from 'recoil';\nimport { errorsAtom, processingAtom } from 'store';\n\nimport { useSound } from 'shared/hooks/useSound';\nimport { isMobile } from 'shared/helpers/isMobile';\n\nimport { IBlockButtonProps } from './types';\nimport {\n SButton,\n SStone,\n SBox,\n SExplosion,\n SStrip,\n SBonusStrip,\n} from './style';\n\nconst BlockButton: FC = ({\n type,\n strip = 0,\n onClick,\n isSelected = false,\n isLast = false,\n disabled,\n isBonus = false,\n}) => {\n const isProcessing = useRecoilValue(processingAtom);\n\n const [playStoneClick] = useSound('stoneClick', { volume: 0.2 });\n const [playStoneHover] = useSound('stoneHover', { volume: 0.1 });\n const [playGoldReveal] = useSound('goldReveal', { volume: 0.2 });\n const [playDynamiteExplosion] = useSound('dynamiteExplosion', {\n volume: 0.1,\n });\n const [errors, setErrors] = useRecoilState(errorsAtom);\n\n const [isMobileDevice] = useState(isMobile());\n const [isClicked, setIsClicked] = useState(false);\n\n const handleClick = () => {\n if (isProcessing) return;\n\n playStoneClick();\n setIsClicked(true);\n if (onClick) onClick();\n };\n\n const hoverHandle = () => {\n if (!isMobileDevice) playStoneHover();\n };\n\n useEffect(() => {\n setIsClicked(false);\n\n if (errors.items.length === 0) {\n if (type === 'regular' && isLast && isSelected) playGoldReveal();\n if (type === 'loss' && isLast && isSelected) playDynamiteExplosion();\n } else {\n setErrors(prev => ({\n ...prev,\n items: prev.items.filter(item => item !== 'BET_ERROR'),\n }));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [type, isLast, isSelected, errors.items, setErrors]);\n\n return (\n \n \n {isBonus && }\n \n {strip > 0 && (\n \n ×\n {strip}\n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default BlockButton;\n","import styled, { css } from 'styled-components';\n\nexport const SWrapper = styled.div`\n top: 0;\n left: 0;\n width: 100%;\n position: absolute;\n display: flex;\n justify-content: space-between;\n padding: 15px 20px;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n padding: 10px 20px;\n }\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n padding: 8px 10px;\n }\n`;\n\nexport const SElement = styled.div<{ isRight?: boolean }>`\n ${({ isRight }) =>\n isRight &&\n css`\n text-align: right;\n margin-left: auto;\n\n div {\n color: #fff;\n text-shadow: none;\n }\n `}\n`;\n\nexport const SLabel = styled.span`\n display: block;\n font-size: 12px;\n color: rgb(144, 144, 149);\n text-transform: uppercase;\n\n @media (max-width: 500px) and (max-aspect-ratio: 1/1) {\n font-size: 10px;\n }\n\n @media (max-width: 300px) and (max-aspect-ratio: 1/1) {\n font-size: 8px;\n }\n`;\n\nexport const SValue = styled.div`\n font-size: 17px;\n margin-top: 4px;\n color: rgb(255, 227, 16);\n text-shadow: 0 0 15px rgba(255, 227, 16, 0.3);\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n margin-top: 0;\n font-size: 14px;\n }\n\n @media (max-width: 300px) and (max-aspect-ratio: 1/1) {\n font-size: 10px;\n }\n`;\n","import InfoBoard from './InfoBoard';\n\nexport default InfoBoard;\n","import { FC } from 'react';\nimport { SWrapper, SElement, SLabel, SValue } from './style';\nimport { IInfoBoardProps } from './types';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nconst InfoBoard: FC = ({\n nextTile,\n openedCount,\n count = 25,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n {nextTile && (\n \n {t(Key.nextTile)}\n {nextTile}\n \n )}\n\n \n {t(Key.nuggetsFound)}\n \n {openedCount}/{count}\n \n \n \n );\n};\n\nexport default InfoBoard;\n","import styled, { css } from 'styled-components';\n\nexport const SWrapper = styled.div<{ isPlaying: boolean }>`\n position: relative;\n padding: 65px 20px 30px;\n border-radius: 8px;\n background: var(--primary-color);\n user-select: none;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n padding: 50px 20px 20px;\n border-radius: 8px 8px 0 0;\n }\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n padding: 40px 10px 0;\n }\n`;\n\nexport const SInner = styled.div<{\n disabled: boolean;\n cellAnimDelay: string;\n}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n width: 100%;\n height: 100%;\n\n ${({ disabled }) =>\n disabled &&\n css`\n pointer-events: none;\n `}\n\n ${({ cellAnimDelay }) => cellAnimDelay}\n`;\n","import { FC, useMemo, useEffect, useState } from 'react';\n\nimport BlockButton from 'shared/components/BlockButton';\nimport InfoBoard from 'shared/components/InfoBoard';\n\nimport { SWrapper, SInner } from './style';\nimport { IBoardProps, ICell } from './types';\nimport { getRandom } from 'shared/helpers/random';\n\nconst initialCell: ICell = {\n id: 0,\n name: 'Rock',\n type: 'block',\n};\n\nconst initialRows = Array(5)\n .fill(1)\n .map(() =>\n Array(5)\n .fill(1)\n .map(() => ({ ...initialCell })),\n );\n\nconst cellAnimDelay = Array(25)\n .fill(1)\n .map(\n (i, index) => `\n button:nth-child(${index}) span {\n animation-duration: ${getRandom(0.1, 0.5)}s;\n }\n `,\n )\n .join('');\n\nconst Board: FC = ({\n isGamePlaying,\n data = [],\n disabled = false,\n onBet = () => {},\n nextTile,\n openedCount = 0,\n mines = 0,\n}) => {\n const [cells, setCells] = useState(initialRows);\n const [countCells, setCountCells] = useState(25);\n\n const handleClick = (coords: [r: number, c: number]) => {\n onBet(coords);\n };\n\n const calcCells = useMemo(\n () => data.reduce((acc, row) => acc + row.length, 0) - mines,\n [mines, data],\n );\n\n useEffect(() => {\n if (data?.length)\n setCells(() => {\n setCountCells(calcCells);\n return data;\n });\n }, [data, calcCells]);\n\n return (\n \n {isGamePlaying && (\n \n )}\n\n \n {cells.map((row, rowIndex) =>\n row.map(\n (\n { id, name, type, multiplier, isSelected, isLast, bonus },\n cellIndex,\n ) => (\n handleClick([rowIndex, cellIndex])}\n title={name}\n type={type}\n strip={multiplier}\n isSelected={isSelected}\n disabled={disabled}\n isLast={isLast}\n isBonus={bonus}\n />\n ),\n ),\n )}\n \n \n );\n};\n\nexport default Board;\n","export const getRandom = (min: number, max: number) => {\n return Math.random() * (max - min) + min;\n};\n","import Board from './Board';\n\nexport * from './types';\nexport default Board;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcPlusmin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 3a1 1 0 011 1v5h5a1 1 0 010 2h-5v5a1 1 0 01-2 0v-5H4a1 1 0 010-2h5V4a1 1 0 011-1z\",\n fill: \"#FFF\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcPlusmin);\nexport default __webpack_public_path__ + \"static/media/ic_plus.min.96b9eaf2.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useRef } from 'react';\n\nexport const useInterval = (callback: () => void, delay: number | null) => {\n const savedCallback = useRef<() => void>(() => {});\n\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n let id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n};\n\nexport const useTimeout = (callback: () => void, delay: number | null) => {\n const savedCallback = useRef(callback);\n\n // Remember the latest callback if it changes.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the timeout.\n useEffect(() => {\n // Don't schedule if no delay is specified.\n if (delay === null) {\n return;\n }\n\n const id = setTimeout(() => savedCallback.current(), delay);\n\n return () => clearTimeout(id);\n }, [delay]);\n};\n","import styled, { css } from 'styled-components';\n\nconst decorativeStyle = css`\n height: 42px;\n font-weight: 500;\n font-size: 18px;\n width: 100%;\n justify-content: center;\n margin-bottom: 20px;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n margin-bottom: 6px;\n }\n`;\n\nexport const StyledButton = styled.button`\n padding: 6px 10px;\n background: var(--secondary-color);\n border: none;\n text-align: left;\n display: inline-flex;\n flex-direction: column;\n min-width: 45px;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n cursor: pointer;\n position: relative;\n user-select: none;\n\n &[data-mode='danger'] {\n min-width: 120px;\n background: rgb(232, 89, 21);\n ${decorativeStyle}\n }\n\n &[data-mode='warning'] {\n min-width: 120px;\n background: rgb(40, 234, 27);\n color: rgb(33, 34, 43);\n\n & > span {\n color: rgb(33, 34, 43);\n }\n ${decorativeStyle}\n }\n\n &:disabled {\n cursor: default;\n background: #777;\n }\n\n &[data-mode='count-down'] {\n min-width: 120px;\n flex-direction: row;\n background: rgba(255, 227, 16, 0.2);\n color: rgba(255, 227, 16, 1);\n & > span {\n margin-right: 6px;\n min-width: 53px;\n text-align: right;\n }\n\n & > svg {\n max-width: 20px;\n min-height: 20px;\n }\n ${decorativeStyle}\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n border-radius: 4px;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(255, 255, 255, 0);\n transition: all 0.2s;\n z-index: 1;\n }\n\n @media (min-width: 990px) and (min-aspect-ratio: 1/1) {\n &:not(:disabled):hover:before {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\n\nexport const StyledLabel = styled.span`\n display: block;\n font-size: 12px;\n font-weight: 400;\n color: var(--manatee-color);\n text-transform: uppercase;\n margin-bottom: 4px;\n position: relative;\n z-index: 2;\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n margin-bottom: 0;\n }\n`;\n\nexport const StyledText = styled.span`\n display: block;\n font-size: 17px;\n font-weight: 500;\n color: var(--inverse-color);\n text-transform: uppercase;\n width: 100%;\n max-width: 100%;\n min-width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n position: relative;\n text-align: center;\n z-index: 2;\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n span {\n font-size: 14px;\n }\n }\n`;\n","import { useState, FC, useEffect, useCallback } from 'react';\nimport dayjs from 'dayjs';\nimport { useRecoilValue } from 'recoil';\nimport cx from 'classnames';\n\nimport { controlsAtom } from 'store';\nimport { ReactComponent as CountDownTimerIcon } from 'assets/icons/ic_timer.min.svg';\nimport { useInterval } from 'shared/hooks/useInterval';\nimport { useSound } from 'shared/hooks/useSound';\nimport { isMobile } from 'shared/helpers/isMobile';\n\nimport { IButtonProps, ITextProps } from './types';\nimport { StyledButton, StyledLabel, StyledText } from './style';\n\nexport const Label: FC = ({ style, children }) => (\n {children}\n);\n\nexport const Text: FC = ({ style, children }) => (\n {children}\n);\n\nconst INTERVAL_DELAY = 1000;\n\nconst Button: FC = ({\n children,\n style,\n disabled,\n mode = 'default',\n onClick,\n time = 0,\n startTime = 0,\n isInverseClickSound = false,\n onFinished,\n}) => {\n const controls = useRecoilValue(controlsAtom);\n\n const [playBtnEnable] = useSound(!disabled ? 'btnEnable' : 'NOT_SOUND', {\n soundEnabled: isInverseClickSound ? !controls.sound : controls.sound,\n });\n const [playBtnHover] = useSound(!disabled ? 'btnHover' : 'NOT_SOUND');\n const [isMobileDevice] = useState(isMobile());\n const [ms, setMs] = useState(-1);\n\n const count = useCallback(() => {\n const current = time + INTERVAL_DELAY - (dayjs().valueOf() - startTime);\n setMs(current > 0 ? current : 0);\n }, [time, startTime, setMs]);\n\n useInterval(count, time > 0 ? INTERVAL_DELAY : null);\n\n useEffect(() => {\n if (time > 0 && ms === 0 && onFinished) onFinished(0);\n }, [onFinished, time, ms]);\n\n useEffect(() => {\n count();\n }, [count]);\n\n const clickHandle = () => {\n playBtnEnable();\n };\n\n const hoverHandle = () => {\n if (!isMobileDevice) playBtnHover();\n };\n\n return (\n \n {children}\n {mode === 'count-down' && ms >= 0 && (\n <>\n {dayjs.duration(ms).format('HH:mm:ss')}\n \n \n )}\n \n );\n};\n\nexport default Button;\n","import Button from './Button';\nexport { Label, Text } from './Button';\n\nexport default Button;\n","var _rect;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcMinusmin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 3,\n y: 9,\n width: 14,\n height: 2,\n rx: 1,\n fill: \"#FFF\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcMinusmin);\nexport default __webpack_public_path__ + \"static/media/ic_minus.min.f4fcc4aa.svg\";\nexport { ForwardRef as ReactComponent };","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import styled, { css } from 'styled-components';\nimport srcBonusSymbolActive from 'assets/icons/bonus_active.min.png';\nimport srcBonusSymbol from 'assets/icons/bonus_inactive.min.png';\n\nconst common = css`\n background: rgb(33, 34, 43);\n`;\n\nexport const SWrapper = styled.div<{ disabled: boolean }>`\n margin-bottom: 6px;\n border-radius: 4px;\n touch-action: none;\n\n ${({ disabled }) =>\n disabled &&\n css`\n filter: grayscale(1);\n `}\n`;\n\nexport const SInner = styled.div`\n display: flex;\n height: 70px;\n`;\n\nexport const SLeft = styled.div`\n flex: 0 0 50px;\n border-radius: 4px 0 0 4px;\n overflow: hidden;\n ${common}\n`;\n\nexport const SRight = styled.div`\n flex: 0 0 50px;\n border-radius: 0 4px 4px 0;\n overflow: hidden;\n ${common}\n`;\n\nexport const SCenter = styled.div`\n flex: 0 0 calc(100% - 100px);\n max-width: calc(100% - 100px);\n position: relative;\n border: 1px solid rgb(19, 21, 29);\n border-top: none;\n border-bottom: none;\n ${common}\n`;\n\nexport const SCenterOver = styled.div`\n display: flex;\n flex-direction: column;\n text-align: center;\n justify-content: center;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n`;\n\nexport const StyleLabel = styled.span`\n display: block;\n width: 100%;\n border: none;\n color: rgb(144, 144, 149);\n font-size: 12px;\n font-weight: 500;\n text-transform: uppercase;\n margin-bottom: 6px;\n`;\n\nexport const StyleValue = styled.span`\n display: block;\n width: 100%;\n font-size: 18px;\n font-weight: 400;\n height: 22px;\n border: none;\n`;\n\nexport const SCenterCover = styled.div`\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n z-index: 1;\n`;\n\nexport const SButton = styled.button`\n background: none;\n width: 100%;\n height: 50%;\n border: none;\n font-weight: 400;\n text-align: center;\n padding: 0;\n font-size: 15px;\n line-height: 15px;\n color: rgb(255, 227, 16);\n text-transform: uppercase;\n cursor: pointer;\n transition: all 0.25s;\n\n &:disabled {\n cursor: default;\n }\n\n @media (min-width: 990px) and (min-aspect-ratio: 1/1) {\n &:not(:disabled):hover {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n\n svg {\n transform: translate(0, 3px);\n color: #fff;\n }\n`;\n\nexport const SProgress = styled.span`\n display: block;\n position: absolute;\n min-width: 10px;\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 227, 16, 50) 50%,\n rgb(255, 227, 16) 100%\n );\n height: 4px;\n bottom: 0;\n pointer-events: none;\n width: 50%;\n`;\n\nexport const SInput = styled.input`\n display: block;\n position: absolute;\n top: 0;\n left: 10px;\n width: calc(100% - 20px);\n height: 100%;\n opacity: 0;\n cursor: pointer;\n\n &:disabled {\n cursor: default;\n }\n`;\n\nexport const SBonusStrip = styled.span<{ disabled: boolean }>`\n width: 40px;\n height: 40px;\n z-index: 100;\n right: 2px;\n top: 16px;\n position: absolute;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 100% auto;\n background-image: url('${srcBonusSymbolActive}');\n pointer-events: none;\n\n ${({ disabled }) =>\n disabled &&\n css`\n background-image: url('${srcBonusSymbol}');\n `}\n`;\n","import Controller from './Controller';\n\nexport default Controller;\n","import {\n useState,\n useEffect,\n useRef,\n useCallback,\n FC,\n TouchEvent,\n} from 'react';\nimport { useRecoilValue } from 'recoil';\nimport { processingAtom } from 'store';\n\nimport { useSound } from 'shared/hooks/useSound';\nimport Span from 'shared/components/Span';\n\nimport { ReactComponent as PlusIcon } from 'assets/icons/ic_plus.min.svg';\nimport { ReactComponent as MinusIcon } from 'assets/icons/ic_minus.min.svg';\n\nimport { IControllerProps } from './types';\nimport {\n SWrapper,\n SInner,\n SCenter,\n SCenterCover,\n SCenterOver,\n SLeft,\n SRight,\n SButton,\n StyleLabel,\n StyleValue,\n SProgress,\n SInput,\n SBonusStrip,\n} from './style';\n\nconst Controller: FC = ({\n label,\n name,\n options,\n value: prevValue,\n max,\n unit = '',\n disabled = false,\n haveBonus = false,\n showBonus = false,\n hasMaxButton = true,\n hasMinButton = true,\n onChange,\n}) => {\n const isProcessing = useRecoilValue(processingAtom);\n\n const [playBtnEnable] = useSound('btnEnable');\n const [playBtnHover] = useSound('btnHover');\n\n const inputRef = useRef(null);\n const [progress, setProgress] = useState(0);\n const [valueIndex, setValueIndex] = useState(() =>\n options.reduce((acc, opt, index) => (opt === prevValue ? index : acc), 0),\n );\n\n const setValidatedValueIndex = useCallback(\n (index: number) => {\n let maxIndex = -1;\n\n if (max && max > 0) {\n maxIndex = options.reduce((acc: number, val: number, ind: number) => {\n if (val <= max) {\n acc = ind;\n }\n return acc;\n }, 0);\n }\n\n if (maxIndex === -1) {\n return setValueIndex(index);\n }\n\n setValueIndex(index <= maxIndex ? index : maxIndex);\n },\n [setValueIndex, max, options],\n );\n\n const handleChangeSlider = () => {\n setValidatedValueIndex(parseInt(inputRef.current?.value || '0', 10));\n };\n\n const handleTouchMove = useCallback(\n (event: TouchEvent) => {\n if (!inputRef.current || inputRef.current?.disabled) return;\n\n const { pageX } = event.touches[0];\n const { left, width } = inputRef.current.getBoundingClientRect();\n\n if (left + width <= pageX + 10) {\n setValidatedValueIndex(options.length - 1);\n return;\n } else if (left > pageX) {\n setValidatedValueIndex(0);\n return;\n } else {\n setValidatedValueIndex(\n parseInt(((options.length * (pageX - left)) / width).toString(), 10),\n );\n }\n },\n [options.length, setValidatedValueIndex],\n );\n\n const changeBy = (mode: number) => {\n setValidatedValueIndex(\n options[valueIndex + mode] ? valueIndex + mode : valueIndex,\n );\n };\n\n const handleClick = (mode: 'min' | 'max' | -1 | 1) => () => {\n switch (mode) {\n case 'min':\n setValidatedValueIndex(0);\n break;\n case 'max':\n setValidatedValueIndex(options.length - 1);\n break;\n case -1:\n changeBy(-1);\n break;\n case 1:\n changeBy(1);\n break;\n default:\n }\n };\n\n const clickHandle = () => {\n playBtnEnable();\n };\n\n const hoverHandle = () => {\n playBtnHover();\n };\n\n useEffect(() => {\n setProgress(((valueIndex + 1) / options.length) * 100);\n\n onChange(name, options[valueIndex]);\n }, [valueIndex, onChange, options, name]);\n\n return (\n \n \n \n \n \n \n {hasMinButton && (\n \n min\n \n )}\n \n \n {showBonus && }\n \n \n {label}\n \n \n \n {options[valueIndex]}\n \n \n \n \n \n \n \n \n \n \n \n {hasMaxButton && (\n \n max\n \n )}\n \n \n \n );\n};\n\nexport default Controller;\n","import styled from 'styled-components';\n\nexport const SHeader = styled.header`\n display: flex;\n position: relative;\n justify-content: center;\n align-items: flex-start;\n height: var(--header-height);\n z-index: 1;\n\n [data-box='toasts'] {\n display: none;\n z-index: 100;\n }\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n [data-box='informer'] {\n display: flex;\n }\n\n [data-box='toasts'] {\n display: block;\n margin: 50px 0 0 -5px;\n }\n }\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n [data-box='toasts'] {\n margin: 30px 0 0 -15px;\n }\n }\n`;\n","import Header from './Header';\n\nexport default Header;\n","import { FC, default as React } from 'react';\n\nimport { SHeader } from './style';\n\nconst Header: FC = ({ children }) => {children};\n\nexport default Header;\n","import PlayingTimer from './PlayingTimer';\n\nexport default PlayingTimer;\n","import { useState, FC } from 'react';\nimport { useRecoilState, useRecoilValue } from 'recoil';\nimport dayjs from 'dayjs';\n\nimport threepiClient from 'api/threepiClient';\n\nimport { exitLobby } from 'shared/helpers/handleExit';\n\nimport { modalState, spentTimeAtom } from 'store';\nimport { useInterval } from 'shared/hooks/useInterval';\n\nimport { IPlayingTimer } from './types';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nconst PlayingTimer: FC = ({\n time,\n isStarted,\n historyUrlRef,\n currency,\n}) => {\n const { t } = useTranslation();\n const [modal, setModal] = useRecoilState(modalState);\n const spentTime = useRecoilValue(spentTimeAtom);\n const [startTime, setStartTime] = useState(dayjs().valueOf());\n\n useInterval(() => {\n const currentTime = dayjs().valueOf();\n const counter = (currentTime - startTime) / 1000;\n\n if (!threepiClient.isShowRealityCheck()) {\n return;\n }\n\n if (time <= counter && !modal && !isStarted) {\n setModal({\n title: (\n \n \n {`${t(Key.realityCheck1)} ${dayjs\n .duration(currentTime - spentTime.startTime)\n .format('HH:mm:ss')}s.`}\n \n
\n {`${t(Key.realityCheck2)} `}\n {currency}\n {spentTime.bet.toFixed(2)}\n {` ${t(Key.realityCheck3)} `}\n {currency}\n {spentTime.won.toFixed(2)}\n
\n {t(Key.realityCheck4)}\n
\n ),\n buttons: [\n {\n label: t(Key.keepPlaying),\n type: 'close',\n action: () => {\n setStartTime(dayjs().valueOf());\n },\n },\n {\n label: t(Key.quitTheGame),\n type: 'quit',\n action: () => {\n exitLobby(historyUrlRef.current);\n },\n },\n ],\n });\n }\n }, 1000);\n\n return null;\n};\n\nexport default PlayingTimer;\n","export default __webpack_public_path__ + \"static/media/game_logo.min.01cfe23a.png\";","import styled from 'styled-components';\n\nexport const SWrapper = styled.div`\n table {\n position: relative;\n margin: 0 auto;\n text-align: center;\n font-weight: 500;\n font-size: 14px;\n border-collapse: collapse;\n border-spacing: 0;\n width: 100%;\n\n thead {\n td,\n th {\n padding: 10px 8px;\n font-size: 12px;\n color: var(--manatee-color);\n text-transform: uppercase;\n position: sticky;\n background: var(--primary-color);\n top: -10px;\n\n @media (max-width: 990px) {\n top: 35px;\n }\n }\n }\n\n tbody {\n td {\n margin: 0;\n\n &:first-child span {\n border-radius: 4px 0 0 4px;\n }\n\n &:last-child span {\n border-radius: 0 4px 4px 0;\n }\n }\n }\n }\n`;\n\nexport const SText = styled.span`\n line-height: 18px;\n display: block;\n padding: 6px 8px;\n color: var(--iron-color);\n background: var(--secondary-color);\n min-width: 70px;\n`;\n","import PureTable from './PureTable';\n\nexport default PureTable;\n","import { FC } from 'react';\nimport { SWrapper, SText } from './style';\n\nconst PureTable: FC<{\n isFirstKey?: boolean;\n stickyHeaderTop?: number;\n columns: string[];\n data: (string | number)[][];\n}> = ({ isFirstKey = false, stickyHeaderTop = 35, columns, data = [] }) => {\n return (\n \n \n \n \n {columns.map(column => (\n \n ))}\n \n \n \n {data.map(row => (\n \n {row.map((cell, index) =>\n isFirstKey && index === 0 ? null : (\n \n ),\n )}\n \n ))}\n \n
\n {column}\n
\n {cell}\n
\n
\n );\n};\n\nexport default PureTable;\n","export default __webpack_public_path__ + \"static/media/ic_arrow_right.min.4c1d5424.svg\";","import styled, { css } from 'styled-components';\nimport iconArrow from 'assets/icons/ic_arrow_right.min.svg';\n\nexport const SWrapper = styled.div`\n position: relative;\n margin: 20px 0;\n`;\n\nexport const SScrollElement = styled.span`\n display: block;\n position: absolute;\n top: -60px;\n`;\n\nexport const SHeader = styled.button<{ isActive: boolean }>`\n border: none;\n display: block;\n width: 100%;\n position: relative;\n font-size: 14px;\n height: 34px;\n line-height: 20px;\n color: #fff;\n padding: 8px;\n border-radius: 6px;\n text-align: left;\n text-transform: uppercase;\n font-weight: 500;\n background: var(--secondary-color);\n cursor: pointer;\n transition: background 0.4s;\n\n &:after {\n display: block;\n position: absolute;\n right: 8px;\n top: 9px;\n content: '';\n width: 16px;\n height: 16px;\n background: url(${iconArrow}) center center no-repeat;\n background-size: 100% auto;\n transform: rotate(90deg);\n transition: transform 0.4s;\n }\n\n ${({ isActive }) =>\n isActive &&\n css`\n background: rgba(40, 234, 27, 0.1);\n color: rgb(40, 234, 27);\n\n &:after {\n transform: rotate(-90deg);\n }\n `}\n`;\n\nexport const SBody = styled.div``;\n","import Collapser from './Collapser';\n\nexport * from './Collapser';\nexport default Collapser;\n","import { FC, ReactNode, useState } from 'react';\nimport { SWrapper, SScrollElement, SHeader, SBody } from './style';\n\nconst Collapser: FC<{ id: number; title: ReactNode }> = ({\n id,\n title,\n children,\n}) => {\n const [isActive, setIsActive] = useState(false);\n\n const toggle = () => {\n setIsActive(p => !p);\n };\n\n return (\n \n \n\n \n {title}\n \n {isActive && {children}}\n \n );\n};\n\nexport default Collapser;\n","import { atom } from 'recoil';\n\nexport interface IHistoryItem {\n bet_time: string;\n end_time: string;\n bet_amount: number;\n win_amount: number;\n balance_before: number;\n balance_after: number;\n multiplier: number;\n iteration_number: number;\n grid: {\n id: number;\n name: string;\n type: 'regular' | 'loss';\n revealed?: boolean;\n bonus?: boolean;\n _order?: number;\n }[][];\n mines_number: number;\n positions: number[][];\n}\n\nexport interface IBetsListState {\n isActive?: boolean;\n isLoading?: boolean;\n items?: IHistoryItem[];\n}\n\nexport const betsListState = atom({\n key: 'betsList',\n default: {\n isActive: false,\n isLoading: false,\n items: [],\n },\n});\n","import styled, { css, keyframes } from 'styled-components';\nimport coinSrc from 'assets/images/img_coin.min.png';\nimport mineSrc from 'assets/images/img_mine.min.png';\nimport bonusSrc from 'assets/icons/bonus_label.min.png';\n\nconst fixedStyle = css`\n position: fixed;\n width: 100vw;\n height: 100vh;\n top: 0;\n left: 0;\n`;\n\nexport const SWrapper = styled.div`\n ${fixedStyle};\n z-index: 300;\n vertical-align: top;\n text-align: center;\n background: rgba(0, 0, 0, 0.5);\n white-space: nowrap;\n overflow-y: auto;\n user-select: none;\n\n &:after {\n content: '';\n display: inline-block;\n vertical-align: top;\n position: relative;\n height: 100%;\n width: 0;\n margin-left: -5px;\n pointer-events: none;\n }\n`;\n\nexport const SOverlay = styled.div`\n ${fixedStyle};\n z-index: 10;\n`;\n\nexport const SFooter = styled.footer`\n margin-top: 10px;\n text-align: center;\n padding: 10px 0;\n position: sticky;\n bottom: 0;\n\n button[data-mode='warning'] {\n margin-bottom: 0;\n }\n\n @media (max-width: 540px) {\n margin-top: 10px;\n }\n`;\n\nexport const SModal = styled.div`\n position: relative;\n vertical-align: top;\n display: inline-block;\n max-width: 440px;\n padding: 20px 0;\n width: calc(100% - 40px);\n white-space: normal;\n z-index: 20;\n\n @media (max-width: 540px) {\n padding: 5px 0;\n width: calc(100% - 10px);\n }\n`;\n\nexport const SInner = styled.div`\n background: var(--primary-color);\n padding: 12px 12px 20px;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.05);\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);\n text-align: left;\n line-height: 24px;\n\n @media (max-width: 540px) {\n padding: 10px;\n }\n`;\n\nexport const STitle = styled.h2`\n margin: 10px 0 20px;\n font-weight: 600;\n text-align: center;\n`;\n\nexport const SSubTitle = styled.h3`\n margin: 10px 0 20px;\n font-weight: 400;\n text-align: center;\n`;\n\nconst animRotate = keyframes`\n 100% {\n transform: rotate(360deg);\n }\n`;\n\nconst animDash = keyframes`\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 200;\n stroke-dashoffset: -35px;\n }\n 100% {\n stroke-dashoffset: -125px;\n }\n`;\n\nexport const SSpinner = styled.div`\n text-align: center;\n\n svg {\n width: 2em;\n transform-origin: center;\n animation: ${animRotate} 2s linear infinite;\n }\n\n circle {\n fill: none;\n stroke: var(--inverse-color);\n stroke-width: 3;\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n animation: ${animDash} 1.5s ease-in-out infinite;\n }\n`;\n\nexport const SNoItems = styled.div`\n text-align: center;\n height: 50px;\n line-height: 50px;\n opacity: 0.6;\n`;\n\nexport const SList = styled.div`\n line-height: 18px;\n min-height: 50px;\n`;\n\nexport const SItem = styled.button`\n width: 100%;\n padding: 0;\n border: none;\n text-align: left;\n font-size: 18px;\n margin: 0 0 15px;\n gap: 1px;\n color: var(--iron-color);\n background: var(--secondary-color);\n border-radius: 4px;\n cursor: pointer;\n overflow: hidden;\n transition: background 0.25s;\n\n &[data-is-open='false']:hover {\n background: var(--secondary-color--hover);\n }\n\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n }\n\n &::-webkit-scrollbar-thumb {\n border: none;\n }\n`;\n\nexport const SSections = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n`;\n\nexport const SSection = styled.div`\n display: block;\n flex: 0 0 calc(33.3333% - 1px);\n\n @media (max-width: 540px) {\n &:last-child {\n flex: 0 0 calc(100% - 1px);\n }\n\n flex: 0 0 calc(50% - 1px);\n }\n`;\n\nexport const SField = styled.span`\n display: block;\n padding: 6px 8px;\n`;\n\nexport const SFieldValue = styled.span`\n display: block;\n font-weight: 500;\n margin: 0 0 5px;\n`;\n\nexport const SFieldKey = styled.span`\n white-space: nowrap;\n display: block;\n font-size: 14px;\n margin-bottom: 5px;\n min-height: 20px;\n opacity: 0.5;\n`;\n\nexport const SMore = styled.span`\n display: block;\n font-size: 14px;\n text-align: center;\n opacity: 0.8;\n margin-bottom: 5px;\n`;\n\nexport const SCollapser = styled.div`\n flex: 0 0 calc(100% - 2px);\n\n ul,\n li {\n margin: 0;\n padding: 0;\n }\n\n ul {\n display: flex;\n }\n\n span {\n background-color: var(--primary-color);\n color: var(--inverse-color);\n border-radius: 50%;\n padding: 2px 6px;\n display: none;\n position: absolute;\n font-size: 14px;\n font-weight: 500;\n text-align: center;\n top: 3px;\n left: 3px;\n }\n\n li {\n position: relative;\n display: block;\n flex: 0 0 20%;\n width: 100%;\n text-align: center;\n background-repeat: no-repeat;\n background-size: 92% auto;\n background-position: 50% 50%;\n opacity: 0.3;\n\n &:before {\n position: relative;\n content: '';\n display: block;\n width: 100%;\n height: 0;\n padding-bottom: 100%;\n }\n\n &[data-is-bonus='true']:after {\n position: absolute;\n display: block;\n content: '';\n background-size: 100% auto;\n width: 32px;\n height: 40px;\n z-index: 100;\n right: 3px;\n top: 3px;\n background: none no-repeat 50% 50%;\n background-size: auto 100%;\n pointer-events: none;\n background-image: url(${bonusSrc});\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n width: 30px;\n height: 30px;\n }\n }\n\n &[data-cell-type='regular'] {\n background-image: url(${coinSrc});\n }\n\n &[data-cell-type='loss'] {\n background-image: url(${mineSrc});\n }\n\n &[data-is-open='true'] {\n opacity: 1;\n\n span {\n display: block;\n }\n }\n }\n`;\n","import BetsList from './BetsList';\n\nexport * from './store/state';\nexport default BetsList;\n","import React, { FC, useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useRecoilState } from 'recoil';\nimport { useTranslation } from 'react-i18next';\n\nimport { Key } from 'i18n/Key';\nimport Button, { Text } from 'shared/components/Button';\n\nimport { IHistoryItem, betsListState } from './store/state';\nimport { gameInfoAtom } from 'store';\n\nimport {\n SWrapper,\n SModal,\n SInner,\n STitle,\n SSubTitle,\n SOverlay,\n SFooter,\n SSpinner,\n SNoItems,\n SList,\n SItem,\n SSections,\n SSection,\n SField,\n SFieldKey,\n SFieldValue,\n SCollapser,\n SMore,\n} from './style';\nimport dayjs from 'dayjs';\nimport Span from '../Span';\nimport threepiClient from 'api/threepiClient';\n\nimport { getHistory } from 'api/client';\n\nconst BetsList: FC = () => {\n const { t } = useTranslation();\n const [{ currency_hex_code }] = useRecoilState(gameInfoAtom);\n const [openCells, setOpenCells] = useState([0]);\n const portalEL = document.getElementById('portal-root');\n const [{ isActive, isLoading, items = [] }, setBetsList] =\n useRecoilState(betsListState);\n\n useEffect(() => {\n if (isLoading) {\n getHistory().then(items => {\n setBetsList(p => ({\n isActive: p.isActive,\n isLoading: false,\n items: prepareItems(items),\n }));\n });\n }\n }, [isLoading]);\n\n const prepareItems = (items?: IHistoryItem[]): IHistoryItem[] | undefined => {\n if (!items) {\n return items;\n }\n\n const preparedItems = items.map(it => {\n let pos = 0;\n it.positions.forEach(([i1, i2]) => {\n it.grid[i1][i2] = { ...it.grid[i1][i2], _order: ++pos };\n });\n return it;\n });\n\n return preparedItems;\n };\n\n const handleClose = () => {\n threepiClient.updateBetsHistory(false);\n\n setBetsList({\n isActive: false,\n isLoading: false,\n items: [],\n });\n };\n\n const handleToggleItem = (index: number) => () => {\n setOpenCells(prev => {\n if (prev.includes(index)) {\n return prev.filter(ind => index !== ind);\n }\n\n return prev.concat(index);\n });\n };\n\n useEffect(() => {\n if (isActive) {\n setOpenCells([]);\n }\n }, [isActive]);\n\n return isActive && portalEL\n ? createPortal(\n \n \n \n Coin Miner\n {t(Key.betsHistory)}\n {isLoading ? (\n \n \n \n \n \n ) : (\n items.length === 0 && {t(Key.noItems)}\n )}\n\n \n {items.map(\n (\n {\n end_time,\n bet_time,\n balance_before,\n balance_after,\n bet_amount,\n win_amount,\n grid,\n },\n index,\n ) => (\n \n \n \n \n {t(Key.balanceBefore)}\n \n \n {balance_before}\n \n \n\n \n {t(Key.bet)}\n \n \n {bet_amount}\n \n \n \n\n \n \n {t(Key.balanceAfter)}\n\n \n \n {balance_after}\n \n \n\n \n {t(Key.win)}\n\n \n \n {win_amount}\n \n \n \n\n \n \n {t(Key.duration)}\n \n {dayjs\n .duration(\n dayjs(end_time).valueOf() -\n dayjs(bet_time).valueOf(),\n )\n .format('HH:mm:ss')}\n \n \n\n \n \n {dayjs(bet_time).format('MMM DD, HH:mm')}\n \n \n \n \n\n {openCells.includes(index) ? (\n \n {grid.map((arr, index) => (\n
    \n {arr.map(\n (\n { id, name, type, revealed, bonus, _order },\n ind,\n ) => (\n \n {_order}\n \n ),\n )}\n
\n ))}\n
\n ) : (\n {t(Key.showDetails)}\n )}\n \n ),\n )}\n
\n\n \n \n {t(Key.close)}\n \n \n
\n
\n \n
,\n portalEL,\n )\n : null;\n};\n\nexport default BetsList;\n","export const createTranslation = (\n literal: string,\n t: (literal: string) => string,\n country?: string,\n) => {\n if (!country) {\n return t(literal);\n }\n\n const nl = `${literal}-${country}`;\n const cl = t(nl);\n\n return cl === nl ? t(literal) : cl;\n};\n","import { initReactI18next } from 'react-i18next';\nimport i18n from 'i18next';\nimport { getLanguageFromUrl } from 'shared/helpers/parseUrl';\nimport { Key } from 'i18n/Key';\n\nimport en from 'i18n/translations/en.json';\nimport fr from 'i18n/translations/fr.json';\nimport ro from 'i18n/translations/ro.json';\nimport de from 'i18n/translations/de.json';\nimport sv from 'i18n/translations/sv.json';\nimport hr from 'i18n/translations/hr.json';\nimport es from 'i18n/translations/es.json';\nimport ru from 'i18n/translations/ru.json';\nimport it from 'i18n/translations/it.json';\nimport da from 'i18n/translations/da.json';\nimport lt from 'i18n/translations/lt.json';\nimport bg from 'i18n/translations/bg.json';\nimport id from 'i18n/translations/id.json';\nimport ja from 'i18n/translations/ja.json';\nimport ko from 'i18n/translations/ko.json';\nimport nl from 'i18n/translations/nl.json';\nimport th from 'i18n/translations/th.json';\nimport vi from 'i18n/translations/vi.json';\nimport zh from 'i18n/translations/zh.json';\nimport lv from 'i18n/translations/lv.json';\n\nexport const DEFAULT_NS = 'translation';\nexport const DEFAULT_LANG = 'en';\n\nconst resources = {\n en: {\n [DEFAULT_NS]: en,\n },\n fr: {\n [DEFAULT_NS]: fr,\n },\n ro: {\n [DEFAULT_NS]: ro,\n },\n de: {\n [DEFAULT_NS]: de,\n },\n sv: {\n [DEFAULT_NS]: sv,\n },\n hr: {\n [DEFAULT_NS]: hr,\n },\n es: {\n [DEFAULT_NS]: es,\n },\n ru: {\n [DEFAULT_NS]: ru,\n },\n it: {\n [DEFAULT_NS]: it,\n },\n da: {\n [DEFAULT_NS]: da,\n },\n lt: {\n [DEFAULT_NS]: lt,\n },\n bg: {\n [DEFAULT_NS]: bg,\n },\n id: {\n [DEFAULT_NS]: id,\n },\n ja: {\n [DEFAULT_NS]: ja,\n },\n ko: {\n [DEFAULT_NS]: ko,\n },\n nl: {\n [DEFAULT_NS]: nl,\n },\n th: {\n [DEFAULT_NS]: th,\n },\n vi: {\n [DEFAULT_NS]: vi,\n },\n zh: {\n [DEFAULT_NS]: zh,\n },\n lv: {\n [DEFAULT_NS]: lv,\n },\n};\n\ni18n.use(initReactI18next).init({\n resources: resources,\n lng: getLanguageFromUrl(),\n fallbackLng: DEFAULT_LANG,\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport const addDefaultTranslates = (\n trans: { [key in keyof typeof Key]?: string },\n) => {\n const defaultTrans = i18n.getResourceBundle(DEFAULT_LANG, DEFAULT_NS);\n Object.entries(trans).forEach(([key, img]) => {\n if (!defaultTrans[img])\n i18n.addResources(DEFAULT_LANG, DEFAULT_NS, { [key]: img });\n });\n};\n","export const minesMultipliers: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 1.01, 1.05, 1.1, 1.15, 1.21, 1.28, 1.35, 1.43, 1.52, 1.62, 1.73, 1.87,\n 2.02, 2.2, 2.43, 2.69, 3.03, 3.46, 4.04, 4.85, 6.06, 8.08, 12.13, 24.33,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.05, 1.15, 1.26, 1.39, 1.53, 1.7, 1.9, 2.14, 2.42, 2.77, 3.2, 3.73, 4.41,\n 5.29, 6.47, 8.08, 10.39, 13.86, 19.4, 29.09, 48.49, 96.98, 290.97,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.1, 1.26, 1.45, 1.68, 1.96, 2.3, 2.73, 3.28, 3.98, 4.9, 6.13, 7.8, 10.14,\n 13.52, 18.59, 26.56, 39.84, 63.75, 106.25, 193.18, 386.36, 930.99,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.21, 1.5, 1.87, 2.34, 2.96, 3.77, 4.84, 6.24, 8.32, 11.4, 15.83, 22.29,\n 31.85, 46.83, 69.9, 107.54, 168.02, 270.14, 476.43, 992.57,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.29, 1.73, 2.32, 3.13, 4.28, 5.91, 8.19, 11.45, 16.08, 22.81, 32.44,\n 46.68, 76.53, 126.49, 209.42, 347.29, 583.69, 997.75,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.5, 2.33, 3.61, 5.6, 8.69, 13.47, 20.89, 33.15, 52.62, 83.53, 132.58,\n 210.45, 334.05, 530.24, 996.69,\n ],\n },\n {\n mines: 17,\n multi: [1.76, 3.53, 7.84, 18.23, 44.46, 108.44, 293.08, 996.88],\n },\n {\n mines: 20,\n multi: [2.77, 9.24, 30.79, 102.65, 996.56],\n },\n {\n mines: 24,\n multi: [24.25],\n },\n];\n\nexport const minesMultipliersB: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.93, 0.97, 1.01, 1.06, 1.11, 1.17, 1.23, 1.31, 1.39, 1.48, 1.59, 1.71,\n 1.85, 2.02, 2.22, 2.47, 2.77, 3.17, 3.7, 4.44, 5.55, 7.4, 11.1, 22.33,\n ],\n },\n {\n mines: 2,\n multi: [\n 0.97, 1.05, 1.15, 1.27, 1.4, 1.56, 1.74, 1.96, 2.22, 2.54, 2.93, 3.42,\n 4.04, 4.84, 5.92, 7.4, 9.51, 12.68, 17.76, 26.63, 44.39, 88.78, 266.38,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.01, 1.15, 1.33, 1.54, 1.79, 2.11, 2.5, 3.0, 3.65, 4.49, 5.61, 7.14,\n 9.29, 12.38, 17.02, 24.32, 36.48, 58.36, 97.27, 176.85, 353.7, 930.79,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.11, 1.37, 1.71, 2.14, 2.71, 3.45, 4.43, 5.71, 7.62, 10.43, 14.49, 20.41,\n 29.15, 42.87, 63.99, 98.45, 153.82, 248.1, 443.03, 984.52,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.18, 1.59, 2.15, 2.92, 4.0, 5.52, 7.67, 10.72, 15.1, 21.43, 30.61, 44.04,\n 72.2, 119.33, 198.89, 331.48, 571.52, 993.95,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.38, 2.15, 3.36, 5.25, 8.21, 12.82, 20.03, 31.8, 50.48, 80.12, 127.18,\n 201.87, 320.43, 508.62, 997.29,\n ],\n },\n {\n mines: 17,\n multi: [1.61, 3.23, 7.18, 16.69, 40.7, 99.27, 268.31, 993.72],\n },\n {\n mines: 20,\n multi: [2.54, 8.46, 28.19, 93.97, 939.68],\n },\n {\n mines: 24,\n multi: [22.2],\n },\n];\n\nexport const minesMultipliersC: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.98, 1.02, 1.07, 1.12, 1.18, 1.24, 1.31, 1.38, 1.47, 1.57, 1.68, 1.81,\n 1.96, 2.14, 2.35, 2.61, 2.94, 3.36, 3.92, 4.7, 5.88, 7.83, 11.75, 23.5,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.02, 1.11, 1.22, 1.34, 1.48, 1.65, 1.84, 2.07, 2.35, 2.69, 3.1, 3.62,\n 4.27, 5.13, 6.27, 7.83, 10.07, 13.43, 18.8, 28.2, 47.0, 94.0, 282.0,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.07, 1.22, 1.4, 1.63, 1.9, 2.23, 2.65, 3.18, 3.86, 4.75, 5.94, 7.56,\n 9.83, 13.1, 18.02, 25.74, 38.61, 61.77, 102.95, 187.19, 374.37, 985.19,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.18, 1.45, 1.81, 2.27, 2.87, 3.65, 4.69, 6.05, 8.06, 11.04, 15.34, 21.6,\n 30.86, 45.38, 67.74, 104.21, 162.83, 262.63, 468.98, 997.82,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.31, 1.47, 1.69, 1.94, 2.23, 2.56, 2.94, 3.59, 4.38, 5.34, 6.51, 7.94,\n 13.23, 22.05, 36.75, 61.25, 175.01, 972.29,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.46, 2.28, 3.56, 5.56, 8.69, 13.57, 21.21, 33.66, 53.43, 84.81, 134.63,\n 213.69, 339.19, 538.4, 997.04,\n ],\n },\n {\n mines: 17,\n multi: [1.71, 3.42, 7.6, 17.67, 43.09, 105.09, 284.02, 979.37],\n },\n {\n mines: 20,\n multi: [2.69, 8.95, 29.84, 99.47, 994.71],\n },\n {\n mines: 24,\n multi: [23.5],\n },\n];\n\nexport const minesMultipliers_86: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.9, 0.93, 0.98, 1.02, 1.08, 1.13, 1.19, 1.26, 1.34, 1.43, 1.54, 1.65,\n 1.79, 1.95, 2.15, 2.39, 2.69, 3.07, 3.58, 4.3, 5.38, 7.17, 10.75, 21.5,\n ],\n },\n {\n mines: 2,\n multi: [\n 0.93, 1.02, 1.12, 1.23, 1.36, 1.51, 1.69, 1.9, 2.15, 2.46, 2.83, 3.31,\n 3.91, 4.69, 5.73, 7.17, 9.21, 12.28, 17.2, 25.8, 42.99, 85.98, 257.98,\n ],\n },\n {\n mines: 3,\n multi: [\n 0.98, 1.12, 1.28, 1.49, 1.74, 2.04, 2.42, 2.91, 3.53, 4.35, 5.43, 6.92,\n 8.99, 11.99, 16.49, 23.55, 35.33, 56.52, 94.2, 171.27, 342.55, 901.44,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.08, 1.33, 1.66, 2.07, 2.62, 3.34, 4.29, 5.53, 7.38, 10.1, 14.03, 19.76,\n 28.23, 41.52, 61.97, 95.34, 148.97, 240.28, 429.06, 912.9,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.19, 1.34, 1.54, 1.77, 2.04, 2.34, 2.69, 3.28, 4.0, 4.88, 5.96, 7.26,\n 12.1, 20.17, 33.62, 56.04, 160.12, 941.86,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.33, 2.08, 3.26, 5.09, 7.95, 12.42, 19.4, 30.8, 48.89, 77.6, 123.17,\n 195.5, 310.32, 492.58, 965.84,\n ],\n },\n {\n mines: 17,\n multi: [1.56, 3.13, 6.95, 16.16, 39.42, 96.14, 259.85, 896.02],\n },\n {\n mines: 20,\n multi: [2.46, 8.19, 27.3, 91.01, 910.05],\n },\n {\n mines: 24,\n multi: [21.5],\n },\n];\n\nexport const minesMultipliers_92: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.96, 1.0, 1.05, 1.1, 1.15, 1.21, 1.28, 1.35, 1.44, 1.53, 1.64, 1.77,\n 1.92, 2.09, 2.3, 2.56, 2.87, 3.29, 3.83, 4.6, 5.75, 7.67, 11.5, 23.0,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.0, 1.09, 1.19, 1.31, 1.45, 1.61, 1.8, 2.03, 2.3, 2.63, 3.03, 3.54, 4.18,\n 5.02, 6.13, 7.67, 9.86, 13.14, 18.4, 27.59, 45.99, 91.98, 275.98,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.05, 1.19, 1.37, 1.59, 1.86, 2.18, 2.59, 3.11, 3.78, 4.65, 5.81, 7.4,\n 9.62, 12.83, 17.64, 25.19, 37.79, 60.46, 100.77, 183.22, 366.45, 964.33,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.15, 1.42, 1.77, 2.22, 2.81, 3.58, 4.59, 5.92, 7.89, 10.81, 15.01, 21.14,\n 30.2, 44.42, 66.3, 101.99, 159.36, 257.04, 459.0, 976.59,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.28, 1.44, 1.65, 1.9, 2.18, 2.51, 2.88, 3.51, 4.28, 5.22, 6.37, 7.77,\n 12.95, 21.58, 35.97, 59.95, 171.29, 978.79,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.42, 2.18, 3.53, 5.23, 8.18, 12.78, 19.97, 31.69, 50.31, 79.86, 126.76,\n 201.2, 319.36, 506.93, 993.97,\n ],\n },\n {\n mines: 17,\n multi: [1.67, 3.53, 7.43, 17.29, 42.17, 102.85, 277.97, 958.53],\n },\n {\n mines: 20,\n multi: [2.63, 8.76, 29.21, 97.35, 973.54],\n },\n {\n mines: 24,\n multi: [23.0],\n },\n];\n\nexport const minesMultipliers_93: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.97, 1.01, 1.06, 1.11, 1.16, 1.22, 1.29, 1.37, 1.45, 1.55, 1.66, 1.79,\n 1.94, 2.11, 2.33, 2.58, 2.91, 3.32, 3.88, 4.65, 5.81, 7.75, 11.63, 23.25,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.01, 1.1, 1.21, 1.33, 1.47, 1.63, 1.82, 2.05, 2.32, 2.66, 3.07, 3.58,\n 4.23, 5.07, 6.2, 7.75, 9.96, 13.28, 18.6, 27.89, 46.49, 92.98, 278.98,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.06, 1.21, 1.39, 1.61, 1.88, 2.21, 2.62, 3.15, 3.82, 4.7, 5.88, 7.48,\n 9.72, 12.97, 17.83, 25.47, 38.2, 61.12, 101.87, 185.21, 370.43, 974.81,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.16, 1.44, 1.79, 2.24, 2.84, 3.62, 4.64, 5.98, 7.98, 10.93, 15.17, 21.37,\n 30.53, 44.9, 67.02, 103.1, 161.1, 259.83, 463.99, 987.2,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.29, 1.45, 1.67, 1.92, 2.2, 2.53, 2.91, 3.55, 4.33, 5.28, 6.44, 7.85,\n 13.09, 21.82, 36.36, 60.6, 173.15, 989.43,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.43, 2.2, 3.39, 5.21, 8.14, 12.72, 19.87, 31.55, 50.07, 79.48, 126.16,\n 200.26, 317.87, 504.55, 989.32,\n ],\n },\n {\n mines: 17,\n multi: [1.69, 3.38, 7.52, 17.48, 42.63, 103.97, 281.0, 968.95],\n },\n {\n mines: 20,\n multi: [2.66, 8.86, 29.52, 98.41, 984.13],\n },\n {\n mines: 24,\n multi: [23.25],\n },\n];\n\nexport const minesMultipliers_94: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.98, 1.02, 1.07, 1.12, 1.18, 1.24, 1.31, 1.38, 1.47, 1.57, 1.68, 1.81,\n 1.96, 2.14, 2.35, 2.61, 2.94, 3.36, 3.92, 4.7, 5.88, 7.83, 11.75, 23.5,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.02, 1.11, 1.22, 1.34, 1.48, 1.65, 1.84, 2.07, 2.35, 2.69, 3.1, 3.62,\n 4.27, 5.13, 6.27, 7.83, 10.07, 13.43, 18.8, 28.2, 47.0, 94.0, 282.0,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.07, 1.22, 1.4, 1.63, 1.9, 2.23, 2.65, 3.18, 3.86, 4.75, 5.94, 7.56,\n 9.83, 13.1, 18.02, 25.74, 38.61, 61.77, 102.95, 187.19, 374.37, 985.19,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.18, 1.45, 1.81, 2.27, 2.87, 3.65, 4.69, 6.05, 8.06, 11.04, 15.34, 21.6,\n 30.86, 45.38, 67.74, 104.21, 162.83, 262.63, 468.98, 997.82,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.31, 1.47, 1.69, 1.94, 2.23, 2.56, 2.94, 3.59, 4.38, 5.34, 6.51, 7.94,\n 13.23, 22.05, 36.75, 61.25, 175.01, 972.29,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.46, 2.28, 3.56, 5.56, 8.69, 13.57, 21.21, 33.66, 53.43, 84.81, 134.63,\n 213.69, 339.19, 538.4, 997.04,\n ],\n },\n {\n mines: 17,\n multi: [1.71, 3.42, 7.6, 17.67, 43.09, 105.09, 284.02, 979.37],\n },\n {\n mines: 20,\n multi: [2.69, 8.95, 29.84, 99.47, 994.71],\n },\n {\n mines: 24,\n multi: [23.5],\n },\n];\n\nexport const minesMultipliers_95: { mines: number; multi: number[] }[] = [\n {\n mines: 1,\n multi: [\n 0.99, 1.03, 1.08, 1.13, 1.19, 1.25, 1.32, 1.4, 1.48, 1.58, 1.7, 1.83,\n 1.98, 2.16, 2.38, 2.64, 2.97, 3.39, 3.96, 4.75, 5.94, 7.92, 11.88, 23.75,\n ],\n },\n {\n mines: 2,\n multi: [\n 1.03, 1.13, 1.23, 1.36, 1.5, 1.67, 1.86, 2.1, 2.37, 2.71, 3.13, 3.65,\n 4.32, 5.18, 6.33, 7.92, 10.18, 13.57, 19.0, 28.49, 47.49, 94.98, 284.97,\n ],\n },\n {\n mines: 3,\n multi: [\n 1.08, 1.23, 1.42, 1.64, 1.92, 2.26, 2.68, 3.21, 3.9, 4.8, 6.0, 7.64, 9.93,\n 13.24, 18.21, 26.02, 39.02, 62.44, 104.06, 189.2, 378.39, 995.78,\n ],\n },\n {\n mines: 5,\n multi: [\n 1.19, 1.47, 1.83, 2.29, 2.9, 3.69, 4.74, 6.11, 8.15, 11.16, 15.5, 21.83,\n 31.19, 45.87, 68.46, 105.32, 164.56, 265.42, 473.96, 987.43,\n ],\n },\n {\n mines: 7,\n multi: [\n 1.32, 1.48, 1.7, 1.96, 2.25, 2.59, 2.97, 3.63, 4.42, 5.39, 6.58, 8.02,\n 13.37, 22.29, 37.14, 61.91, 176.87, 982.63,\n ],\n },\n {\n mines: 10,\n multi: [\n 1.46, 2.25, 3.46, 5.32, 8.32, 12.99, 20.3, 32.22, 51.15, 81.19, 128.87,\n 204.56, 324.7, 515.4, 991.16,\n ],\n },\n {\n mines: 17,\n multi: [1.73, 3.45, 7.68, 17.85, 43.54, 106.2, 287.04, 989.79],\n },\n {\n mines: 20,\n multi: [2.71, 9.05, 30.16, 100.53, 957.42],\n },\n {\n mines: 24,\n multi: [23.75],\n },\n];\n","export default __webpack_public_path__ + \"static/media/img_about6@2x.min.2ec8cf17.jpg\";","export default __webpack_public_path__ + \"static/media/img_about7@2x.min.4289cc43.jpg\";","export default __webpack_public_path__ + \"static/media/img_about8@2x.min.94eb437e.jpg\";","import { TElement } from './types';\nimport { Key } from 'i18n/Key';\nimport { addDefaultTranslates } from 'i18n/config';\nimport {\n minesMultipliers,\n minesMultipliersB,\n minesMultipliersC,\n minesMultipliers_86,\n minesMultipliers_92,\n minesMultipliers_93,\n minesMultipliers_94,\n minesMultipliers_95,\n} from './paytables';\n\nimport img_about1 from 'assets/images/intro/about/img_about1@2x.min.png';\nimport img_about2 from 'assets/images/intro/about/img_about2@2x.min.png';\nimport img_about3 from 'assets/images/intro/about/img_about3@2x.min.png';\nimport img_about4 from 'assets/images/intro/about/img_about4@2x.min.png';\nimport img_about5 from 'assets/images/intro/about/img_about5@2x.min.png';\nimport img_about6 from 'assets/images/intro/about/img_about6@2x.min.jpg';\nimport img_about7 from 'assets/images/intro/about/img_about7@2x.min.jpg';\nimport img_about8 from 'assets/images/intro/about/img_about8@2x.min.jpg';\nimport img_about9 from 'assets/images/intro/about/img_about9@2x.min.jpg';\nimport img_about10 from 'assets/images/intro/about/img_about10@2x.min.png';\nimport { getUrlParams } from 'shared/helpers/parseUrl';\n\nconst urlParams = getUrlParams();\n\naddDefaultTranslates({\n [Key.img_about1]: img_about1,\n [Key.img_about2]: img_about2,\n [Key.img_about3]: img_about3,\n [Key.img_about4]: img_about4,\n [Key.img_about5]: img_about5,\n [Key.img_about6]: img_about6,\n [Key.img_about7]: img_about7,\n [Key.img_about8]: img_about8,\n [Key.img_about9]: img_about9,\n [Key.img_about10]: img_about10,\n});\n\nconst gameCode: string =\n urlParams != null && urlParams.hasOwnProperty('game_code')\n ? urlParams['game_code']\n : '';\n\nconst getVersion = (gameCode: string): string => {\n switch (gameCode) {\n case 'coin_miner_86':\n return '_coin_miner_86';\n case 'mine_bomb_90':\n case 'coin_miner_90':\n return 'B';\n case 'coin_miner_92':\n return '_coin_miner_92';\n case 'coin_miner_93':\n return '_coin_miner_93';\n case 'coin_miner_94':\n case 'gold_mine_94':\n return 'C';\n case 'coin_miner_95':\n return '_coin_miner_95';\n case 'coin_miner_97':\n return '_coin_miner_97';\n default:\n return '';\n }\n};\n\nconst getPaytable = (\n gameCode: string,\n): { mines: number; multi: number[] }[] => {\n switch (gameCode) {\n case 'coin_miner_86':\n return minesMultipliers_86;\n case 'mine_bomb_90':\n case 'coin_miner_90':\n return minesMultipliersB;\n case 'coin_miner_92':\n return minesMultipliers_92;\n case 'coin_miner_93':\n return minesMultipliers_93;\n case 'coin_miner_94':\n case 'gold_mine_94':\n return minesMultipliersC;\n case 'coin_miner_95':\n return minesMultipliers_95;\n case 'coin_miner_97':\n default:\n return minesMultipliers;\n }\n};\n\nconst versionT = getVersion(gameCode);\n\nexport const aboutRTP = `${Key.infoP10}${versionT}`;\n\nconst generatedMines = getPaytable(gameCode).map(\n ({ mines, multi }) => ({\n type: 'table',\n content: {\n title: Key.dynamiteAmount,\n title2: ` — ${mines}`,\n columns: [Key.tilesOpened, Key.betMultiplier],\n data: multi.map(item => item.toFixed(2)),\n },\n }),\n);\n\nexport const elements: TElement[] = [\n {\n type: 'header',\n content: Key.aboutHeader1,\n },\n {\n type: 'text',\n content: Key.aboutText1,\n },\n {\n type: 'text',\n content: Key.aboutText2,\n },\n {\n type: 'text',\n content: Key.aboutText3,\n },\n {\n type: 'header',\n content: Key.aboutHeader2,\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage1Title,\n src: Key.img_about1,\n caption: Key.aboutImage1Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage2Title,\n src: Key.img_about2,\n caption: Key.aboutImage2Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage3Title,\n src: Key.img_about3,\n caption: Key.aboutImage3Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage4Title,\n src: Key.img_about4,\n caption: Key.aboutImage4Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage5Title,\n src: Key.img_about5,\n caption: Key.aboutImage5Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage9Title,\n src: Key.img_about9,\n caption: Key.aboutImage9Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage10Title,\n src: Key.img_about10,\n caption: Key.aboutImage10Caption,\n },\n },\n {\n type: 'header',\n content: Key.aboutHeader3,\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage6Title,\n src: Key.img_about6,\n caption: Key.aboutImage6Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage7Title,\n src: Key.img_about7,\n caption: Key.aboutImage7Caption,\n },\n },\n {\n type: 'image',\n content: {\n title: Key.aboutImage8Title,\n src: Key.img_about8,\n caption: Key.aboutImage8Caption,\n },\n },\n {\n type: 'header',\n content: Key.aboutImage11Title,\n },\n {\n type: 'text',\n content: Key.aboutImage11Caption,\n },\n {\n type: 'header',\n content: Key.aboutHeader4,\n },\n {\n type: 'text',\n content: `${Key.aboutText4}${versionT}`,\n },\n {\n type: 'list',\n content: [\n {\n title: `${Key.aboutList1Title}${versionT}`,\n text: `${Key.aboutList1Text}${versionT}`,\n },\n {\n title: `${Key.aboutList2Title}${versionT}`,\n text: `${Key.aboutList2Text}${versionT}`,\n },\n ],\n },\n {\n type: 'header',\n content: Key.aboutHeader6,\n },\n {\n type: 'text',\n content: Key.aboutImage91Caption,\n },\n {\n type: 'text',\n content: Key.aboutImage92Caption,\n },\n {\n type: 'list',\n content: [\n {\n title: Key.aboutImage931ListTitle,\n text: Key.aboutImage931ListText,\n },\n {\n title: Key.aboutImage932ListTitle,\n text: Key.aboutImage932ListText,\n },\n {\n title: Key.aboutImage933ListTitle,\n text: Key.aboutImage933ListText,\n },\n ],\n },\n {\n type: 'text',\n content: Key.aboutImage94Caption,\n },\n {\n type: 'header',\n content: Key.aboutHeader5,\n },\n {\n type: 'text',\n content: Key.aboutText5,\n },\n {\n type: 'text',\n content: Key.aboutText51,\n },\n ...generatedMines,\n {\n type: 'header',\n content: Key.aboutHeader7,\n },\n {\n type: 'text',\n content: Key.aboutHeader8,\n },\n {\n type: 'header',\n content: Key.gameVersion,\n },\n];\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAADYCAMAAABMUaKiAAAAgVBMVEULDRIUKRIqbBE5nBFAshFCtxEMERIrcBFCthEschENExI0ixE0jBEUKhIueRE+qxFQuCiPwXqYwoR8vmNnu0mGv29cujpyvVfXzcvJyrvQzMS6yKqpxZjBybOhxI6yxqFBsxE3lhE4lxEcQhI5mhEOFRI+rBEqbRE6nRFBtBFAsBGRWLWYAAADSklEQVR4Ae3ZhZLbOBzAYRf+ZUhMUajM7/+AlzjaxLutMrfZc4++b8CWRuOhn7kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvxn37j94GDCBhw/u36vOe/T4ScBknjx9dra/5wGTevGoKnsaE4OnVdHLJzExePKyKnkVk4NXVcnrmBy8rkqexOTgSVUSvwGUAwQBIkAQIAIEASJAECACBAEiQBAgAgQBIkAQIAIEASJAuDBAZvP6qGnjqNuN57P4hb7ea8ejPo4W9c4sItrjAcoEyCKNLeucTJv2FvELy7S3ygvr42B0uC4i1oUDFAhQgINVm6dL/bTpYB6DPu1tItsOGc8EKMALA0yr/nyAm3SwvTZuY9DlC6AABXhpgGlzPsBVynJzs2FiPdpfhgAF+GeNSpvN02B2LsAuXXkTB3Xaa067CwEK8NYBDrbHQTHAt2nnbb7QDWbLq1Gf9tZxWYACFOA87c3LAebG+qG55tpFsc5xpvbCAAUowMXZAI+Jvo03P7/6rmaLlGcvC1CAAnxTvgWPW+vyt5hZHOTyDh32FwYoQAHO06AvB9gOjc2OIY5iy+oQoABvHeB2vZMO1lEOMN96c6vbUZfZaiZAAd7tQ3R7JsBV2mlOLyORbVLWxV0CFKAAV02UA2yGFae+6sj6VRos4w4BClCAq00fZwLcnD5Ad9d7q9NgcUmAAhTgpt6b515KAc7S2HhB/gm3DQEK8BYKpZWmu3TT5npv6zip8zcZBPhXBbhNN61uBogAJwuwTz/rigHO1+v12zYQ4MUBjiz7q/8k9ZVl2nlbDPCwOBDgnQPMK8bFHV98ewEK8LcEmKeaG3fkuQAF+HsC3By//GVvc3MCvDxA+rf7l4VZ3PR2PTKsaNY7TZy0+zX16J1jfeo4T7TBrQIEASJAECACBAEiQBAgAgQBIkAQIAIEASJAECACBAEiQBAgAoQnVcm7mBw8rErex+TgQ1XyMSYHH6uiTzEx+FSVfX4dk4Ivn6szHj1+EpOBJ0+fVee9/Prte0wAfnz6+rL6ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgD8Av9cetbAWFwkAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAADYCAMAAABMUaKiAAAApVBMVEULDRI3MRKTYRPMZBTiWxTnWRTLZBQMERKRZBPgXRTkWxTmWRSUZBMPFBKrahPiXBSsahOIZhLjWxSHZhIrLxLdXxSEahLCaxPfXRToZS7qhWLpe1PqjnDv0cnx5uTsqZXtuqvrmH3w39zvyb/roIrocELuwbXw2NLtsaDmWhTfXBTbXRS+VBS8VBR5MxMpFxLeVhSDNhPkWBTlWBQQDxKsRROuRRMn3Y/aAAAEkElEQVR4AezSRQHDUBQAsDfmMvlXOgW/t3KiIQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs7HS+XG8TgOv9fIpxj+fr/bnBJD7v1/c3+i/LbzChvHhEWlndYFLvOpKa9gYTa5tI6W4wuS5S+htMro+U4QaTGyLlBjMQEAFZGwEREAREQBAQAUFABAQBERAEREAQEAFBQAQEAREQBERAEPDPrhktuQrCAPSJjyAgEQDx/7/wiinJMjps7+6+2OG81KYQnfEMaUQNAEYNgQP1FgYAtPoVICk+nymgXdwJajHAHawi6EojVhrh5cfjKHQqr8FVFk/f43FMauNxlJSqmYQ7p/NrSATJWq8Q61G6nxudAFPAZyFKBN9im6tkRZiFR0BzKbKATgkmuMbKZgALiBQYyuIlRdQUgjOEcmFuCvg5JCcEQzFNX5MiimNCHgmoixPwRwLm5p9InPp8xBTwU6g3vOwGdncQOykX+mbqMRqD9XMfCEjzNjC0iuk7AQEPSpULD/L9eozZ+MVR9dbbV6GP6AKEVoKBig0k7RTwQQDX2k1kWqp93b+3RUrvQMBYf2Bn/Y2AhESVQUSthFCHcYpE1+I4Kme+YpbH+TcFFLuUDk25XNcxS8vdgafS2xgISM40hfEdAaOEK9qx9ynG6Kn+J558fmbQd/49cv2bAopMuT2L2c/lK7QGN7vK6vXXOQVPrgICV9L9BwICJ2wYFwxPNvXMVbSAn+bfFFAozgV9OmS7PrnsUpOFi4CS9n8FNI7xqpG1TAbHLFp1FIomrZ7GFHDtQ5ZCUAuxDCLwrwUERDSy/jGoBJns3UGJwV2vuhPzwcwVkJe+Qp1sJafoiP2PBezIjrG3ApoYI7Y1uTfNI25BOvlHMv8DQusD8GDpKqG2qzsIrXGBk5GAe6faOhBQkIR3AgrhPgOKmE9jdsH5dVO9Y+gn05oTQ4KNu2DLiuHr03MkjQS874I7AXVChK7LFrorfBbzOaCR54Bkh5BptbFcIeGd54C59RErRUSNoYDX54CdgJIkv1TXAIZ77gM/BXzkTkhYrW07Ifn8PCl0X9c6AsFAJCO/2QlZEqy0E9KMiFbKdy8gJU+XnRAwqchaKCW4BosH2/JvNDvRJMAgZ3kocy8Ypfm19XbTIslsb+8F71wrG6iGj2Hu94I7AbHLz7N16M/yUObbMK33tTUux7tjon7/bRiKlC4yEvD6Nsy1CUH5Ucvs/rxTwIcBG+mH+lWSl6/3PcmI9paflftM2yWC3ouMpAhKpFHTmb4EC3klmyJILPEoS9mK59mezkKTNqumgA8EAPL37zmrt8g0chgZM56g5WJ/d5Z/7dI3EcQADAAwL+by/dP5QwsCT7l0CYMEBAEREAREQBCQ5QREQBAQAUFABAQBERAEREAQEAFBQAQEAREQBERAeEbllauDd1Q+uTr4RuWXq4NfVP5Nrgyaf5TaLlcFfRu1YcxVwTTEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAycO403WtRLxwAAAABJRU5ErkJggg==\"","export default \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDIBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/CABEIARwChAMBIgACEQEDEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAAAQUEBgcDAv/aAAgBAQAAAADh4AAAAAAAAAAAACYAAAAAAAAAAAAATAAAAAAAAAAAAACYAAAAAAAAAAAAATAAAAAAAAAAAAACYAAAAAAAAAAAAATAAAAAAAAAAAAACYAAAAAAAAAAAAATAAAAAAAE/UfIAAAAAmAAAAAAAfdhYYdb5AAAAAEwAAAAAAH3abFZYWvU/kAAAAAmAAAAAAB9WeyWZha3T/AAAAAEwAAAAAAPbZr/AOfv4+6jU8YAAAACYAAAAAA+vbJ9bS08bSv+qnXvAAAAACYAAAAAE+mVYWOf9YNZaXFbrmB4QAAAABMAAAAAJ97CxssrYttyeY63k3FXqWIAAAAATAAAAADJ2C4tNv2vP57s+s8987Wq1LFAAAAAJgAAAACbnbOpX3r9+fG93u+NV3vT0fkAAAAATAAAAAH1fbh3HiGz9E+4hyDUKDE8oAAAAAJgAAAACbba+v4tn7cm6bdNM5jqdcAAAAAEwAAAAAy9q6B0ljc533x1vc+J6rRfIAAAAAmAAAAAH3sG0dv+8fJaZpHZ+S6LrfwAAAAAJgAAAAAs9s6m5v2jMnw1XnOqUnyAAAAAJgAAAAAyNn3fpurbnSajq+DT0eKAAAAAEwAAAAAfVztO/wD1qVThVtfheUAAAAABMAAAAAD3u7dgV2D4fEAAAAAATAAAAAAevs8vKAAAAAABMAAAAAAAAAAAAAJgAAAAAAAAAAAABMAAAAAAAAAAAAAJgAAAAAAAAAAAABMAAAAAAAAAAAAAJgAAAAAAAAAAAABMAAAAAAAAAAAAAJgAAAAAAAAAAAABIAAAAAAAAAAAEAJ//8QAGwEBAAIDAQEAAAAAAAAAAAAAAAECAwUGBAf/2gAIAQIQAAAAuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERYAAAAABGOuS4AAAAAIrjTlkAAAAArXU22lcsgAAAAGPlua2de8ZJAAAAAMPDeLJpvpW2kAAAAAU4bnvfvMfaWAAAAAEafR83vuo2UgAAAABTS7bJaQAAAAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//EABoBAQACAwEAAAAAAAAAAAAAAAAFBgEDBAL/2gAIAQMQAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7rj8AAAAAAb7pK1GvYAAAAAGd0xa9vBQ9YAAAAD1Izvb64Zmg8YAAAABaJKM68d/ijawAAAAGbp45/fBYKZyAAAAACcmIvqkNdeigAAAABvu2qKkeincgAAAAAWaW1wcVoAAAAABnbr8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8QANBAAAgEEAAMGBAQGAwAAAAAAAQIDAAQFERIhQQYQIjEyYAcTUXEUUpGhFSMzYYGQQnKC/9oACAEBAAE/AP8AVmFJr5ZoqR7ORCxq2si+uVDFMU3wHVXFgUHlUkZU+zEQsasrMuQSKs7MaBI0o/egABqry0Dguo+4q9stbZRyqWMqfZSjZqyteNhVlZjQJGkH70BoaHfd2gYF1H3FX1pwkkDlUi8J9kwjbCsPCrsAaAAGhTyqjqp827vmr835Z9XdloVVOID1bq5GmPsYITSWxaksWPSksmQ71VlKbdga/iCsvhU8VRMXulZjzJ7r3YuFI8xS5AIn8wHYrJX4m+w8qnfib2GFJpYS1RWTN0qHG65tyqDH/lT/ACajsFUeM/pRsomHgNXNqY/MfY0XaOTVWbcckZ7r88Mm/oKu7tgx5085aid+wQN1HAWqDHs1QY9eg2ahx5A56WkgijbhA25rGdkcvlAHWEQw/nkrH9gcba6e9la6k/asj2LxN9AywRG3n14HWshZSWlzcWNwP5kTFT/fRq5t/GfqDqrIcMkfdk/M/arz1n2HbxcZqxsOLXLnS2cUa7c7rHYq9yTBLG2MgPXpWP8Ah2x0+UutfWKI1jsJjMSurO2Cn87HnTybBklbwqNk1kfiDfG8dcbHEluh0C4O2rsz2iXP2jMyCO6h/qKPI18QseIb+DIp5TLwv96vI+GbfRqt+U6d2Vbh39quztz7CUc6x0QJ2atoikaoo27HkKwfYyxx0CS30f4i8PMhvStXeSssYix3NwluD5R6NRSxTwiaCRZIz5MO6eL8RazQE6+YhXdX+KvMVdva3ELbU6UjmGFdgsPcWUU+QuUMfzuUaV2mx4ynZ65gHrQB0/UE1coZLfn6lovwaahlkVOY21ZC++cWNTNxH2EnqrGkVYTJDe2s7DaI+zTOGcyr4gw4lrIXEuQyM9xdeKUv16V8O7iWPMy2Sk/h5ELsv0PcI3I3r96J2AGAOvLfSmYsdk7NDz0fIgg12lx38Nz93B/wkYyJ9iTV6hQOPoannZWNPMWonfsIedY6XTirR+OAoT5V2OyZyPZ6Is25oD8tqzHYeyyt413DO1tI/rUHkf2rCYCzwFuyW5aSV/XK/mazORGIw899w8TIAEB+pIFSZjJzXJunvZfnE75NyFdlszJnMN86cD58TcDkdeQ7/iJYGWztsig5w+B6yEWwH6EVfxcLmj7EtZOFqx0/iU9DyNdgcgLXOPZu2orlT+ta0efdkLGHJ46ayn2EkHmOh3un7C5xLkQJGjx9JNisFh48Fi1s0fjkJ45X+raFdou0EPZ+0VygluZP6cZrG/EK4e8SPIWsIgc64owdrV/aR5LEz23qSaPiQ/uKuoGQTW7jTxMUP3BrJx9acab2JG2mrHTbXW6tbpoXhuozp4zsVBdJfWsV3GdrKvFXIAkkADzJNQ5HH3EphgvYpJfyjYrmOXd2+xVzdJb5C3QyJCOGRR0qyx91kruO3t4HZmYb5a0KtYfw1tbW+9mKNUJ+1dqhEvajICLXDxtvX14jWV1tvual9Z9iCrCbhcVYScSlP8ivh/kPxGGlsXbx27kj/rpa+IF9Pa4uC2hYqk7eNhSkwOssJ4JFOwwrE3Ml7hrS5mGpXiUt3DfTr51Pc2WNjaSZ4LYdSo5n9Kyvb+0iikhxSGaYgr8xwQBV3cEfMllfilkJZiepNZKcMxG6c7b2LbvwsKx0/pbflXZPJfwztDC7HUUvgesvibbLWb2V2Dwb2rjzU1a/DuCO6D3N8ZIQfQBomgqRRKBwxxINAEgaFZLtfhsZtTOZ5eiIrVke3mUu9pZqlpGeo9VXd487mS7uHlb6ud1Lfqo8AAFXuR4t+LZqeYux9jIdGsfccJ0atZhLEBvTCsT8QFhtkgysLOyDQlTzNX/xEGiuMtP/AHLWQzmSyJJvL6Qr+QOQtPdxR+gbNT5E9X4f7CpskBvVTX7N1p5i1E79jwylDVnkeHXPRqPKAjno1Jk+XLQqfIjqxapskT5GpLtm600rNWyfZIOqWUrS3bDqaa8Y9TTTMeposT/sD//EACsRAAEDAgUDAwQDAAAAAAAAAAECAwQABRESITFQBhATFEFRIiNwcYGx0f/aAAgBAgEBPwD8dY8QT2SeGVWHYDg8azVKvMSPopWJ+BrVvujE3Hx6Eex7ChwSjUnqMZvHFRnNSrjLk6Or/jaun4sV9S/MASNhSXWYN2+yfoxw7AcG4kKBBq0yGrZJcakfrGrk+mdNzMDfAVcLK9CaDqlAjtaZXqYiHDvsf2KHBqFdSxsj6Xxsqm84OdGOlTbvJmIDbuGFWq3QHoPkd39z8V0y8Q44yNt6Twl5i+piLSNxqKs12iRonjc0P90hlyS4QwgnH2FRemnl6vqyioNuYhpKWRvQ4RQo2KCXPJk/ym2ktpyoGAoJ/MX/xAAnEQACAgEDBAEEAwAAAAAAAAABAgADBAUREhMhMVAUECJBcCMyUf/aAAgBAwEBPwD9c1UNYdhLNOtRdyIQQdj6aik2tsJp+nrWoZpZUti8TNT04oSwhGx9GATEx3bwJplXRsBsEbJXsEl1hrXkJnZNJpIlpBY+hVCx7SjTbHmNooHdoWw8bsTuYhoy1IrGxEx0ZLdjM3tVMm5y5HotIwVf7mj6iiHhjpuZdlXW9nM0ymmwt1IHrx83+P8ArL1Fdu8z82rokAy1uTE+hE0awNXwmFamHc6WzKsGRkb1jzMnT3x0Dk7/AEJ+RiB/yJks6uVPo9IyOD7TVatnFo8GLyB5L+JfnW3qFeYeLjPj8nmlPuXq/E1RAtp9HjWFHBhHycMgeRMDNoqp4vFRrXPTWVaU572tsI1uPhoRXMu/quT6MTStRFf2tOngb85dqtVQ41zI1d38SzIezyfShiJ8h/8AYWJ8/rr/2Q==\"","export default \"data:image/png;base64,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\"","import styled, { css } from 'styled-components';\nimport iconArrow from 'assets/icons/ic_arrow_right.min.svg';\n\nexport const SWrapper = styled.div`\n max-width: 520px;\n margin: 0 auto;\n padding: 0 0 40px;\n font-size: 14px;\n font-weight: 400;\n line-height: 18px;\n\n @media (max-width: 990px) {\n padding: 0 10px 40px;\n }\n`;\n\nexport const SContent = styled.div`\n margin: 10px 0 20px;\n text-align: center;\n`;\n\nexport const SHeader = styled.h2`\n font-size: 18px;\n line-height: 24px;\n margin: 10px 0 20px;\n text-transform: uppercase;\n`;\n\nexport const SSubHeader = styled.h3`\n margin: 10px 0 20px;\n font-weight: 500;\n color: #f43f3d;\n`;\n\nexport const STypeHeader = styled.h4`\n font-size: 16px;\n font-weight: 700;\n line-height: 20px;\n margin: 35px 0 20px;\n`;\n\nexport const STypeTitle = styled.h5`\n color: rgb(40, 234, 27);\n margin: 10px 0;\n text-transform: uppercase;\n`;\n\nexport const STypeCaption = styled.p`\n margin: 10px 0;\n font-size: 14px;\n line-height: 18px;\n`;\n\nexport const STypeFigure = styled.figure`\n display: block;\n border-radius: 8px;\n max-width: 320px;\n margin: 10px auto;\n overflow: hidden;\n`;\n\nexport const STypeImage = styled.img`\n display: block;\n margin: 0;\n width: 100%;\n min-height: 50px;\n`;\n\nexport const STypeText = styled.div`\n margin: 10px 0 20px;\n text-align: left;\n`;\n\nexport const STypeList = styled.ul`\n margin: 10px 0 20px;\n padding: 0;\n list-style: none;\n text-align: left;\n`;\n\nexport const STypeItem = styled.li`\n position: relative;\n margin: 10px 0;\n padding: 0 0 0 30px;\n list-style: none;\n\n &:before {\n content: '';\n position: absolute;\n height: 10px;\n width: 10px;\n left: 0;\n top: 50%;\n border-radius: 5px;\n background: rgb(40, 234, 27);\n transform: translateY(-50%);\n }\n`;\n\nexport const SSliderWrapper = styled.div`\n margin: 0 0 20px;\n position: relative;\n\n * {\n outline: none !important;\n }\n\n .swiper-button-prev,\n .swiper-button-next {\n position: absolute;\n width: 60px;\n height: 60px;\n border-radius: 30px;\n left: 20px;\n bottom: 40px;\n z-index: 10;\n cursor: pointer;\n background: #2c2a1c;\n\n &:hover {\n background: #383622;\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 32px;\n height: 32px;\n line-height: 30px;\n font-size: 32px;\n color: rgb(40, 234, 27);\n transform: translate(-50%, -50%) rotate(180deg);\n background: url(${iconArrow}) center center no-repeat;\n background-size: auto 24px;\n }\n\n @media (max-width: 990px) {\n display: none;\n }\n }\n .swiper-button-next {\n right: 20px;\n left: auto;\n\n &:after {\n transform: translate(-50%, -50%);\n }\n }\n\n .swiper-pagination {\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: 0;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 22;\n\n .swiper-pagination-bullet {\n position: relative;\n display: block;\n width: 10px;\n height: 10px;\n margin: 0 1px;\n cursor: pointer;\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 6px;\n height: 6px;\n margin: 2px;\n border-radius: 3px;\n background: rgb(40, 234, 27, 0.2);\n transition: width 0.05s;\n transform: translateX(-3px);\n }\n\n &.swiper-pagination-bullet-active {\n width: 20px;\n\n &:after {\n width: 16px;\n background: rgb(40, 234, 27);\n }\n }\n }\n }\n`;\n\nexport const SItem = styled.section`\n width: 100%;\n padding: 0 0 40px;\n\n @media (max-width: 990px) {\n padding: 0 20px 20px;\n }\n`;\n\nexport const SItemImg = styled.img`\n display: inline-block;\n max-width: calc(100% - 30px);\n max-height: 500px;\n height: auto;\n`;\n\nexport const SText = styled.div<{ withMargin: boolean }>`\n ${({ withMargin }) =>\n withMargin &&\n css`\n margin: 0 100px;\n `};\n\n @media (max-width: 990px) {\n margin: 0;\n }\n`;\n\nexport const SItemHeader = styled.h3`\n margin: 20px 0;\n font-size: 18px;\n font-weight: 500;\n color: rgb(40, 234, 27);\n text-transform: uppercase;\n`;\n\nexport const SItemContent = styled.div`\n font-size: 14px;\n word-wrap: break-word;\n max-width: calc(100% - 30px);\n margin: 20px auto 10px;\n color: var(--iron-color);\n\n @media (max-width: 990px) {\n margin: 10px auto 10px;\n }\n`;\n\nexport const SButton = styled.button`\n height: 42px;\n min-width: 45px;\n width: 80%;\n margin-top: 20px;\n font-weight: 500;\n font-size: 18px;\n padding: 6px 10px;\n background: var(--primary-color);\n color: var(--inverse-color);\n border: 1px solid var(--inverse-color);\n border-radius: 4px;\n text-align: left;\n display: inline-flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: relative;\n user-select: none;\n\n @media (min-width: 990px) and (min-aspect-ratio: 1/1) {\n &:hover {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\n","import { FC, ReactElement, useMemo, useEffect } from 'react';\nimport { useRecoilValue, useSetRecoilState } from 'recoil';\nimport { useTranslation } from 'react-i18next';\n\nimport { Key } from 'i18n/Key';\nimport PureTable from 'shared/components/PureTable';\nimport Collapser from 'shared/components/Collapser';\nimport { betsListState } from 'shared/components/BetsList';\n\nimport { gameInfoAtom } from 'store';\nimport { createTranslation } from 'shared/helpers/translationUtils';\n\nimport { elements, aboutRTP } from './aboutElements';\nimport {\n SWrapper,\n SContent,\n SHeader,\n SSubHeader,\n STypeText,\n STypeHeader,\n STypeTitle,\n STypeFigure,\n STypeCaption,\n STypeImage,\n STypeList,\n STypeItem,\n SButton,\n} from './style';\nimport { TElement, TImageElement, TListElement, TTableElement } from './types';\n\nexport const About: FC<{\n scrollTo?: string | null;\n}> = ({ scrollTo }) => {\n const { t } = useTranslation();\n const setBetsList = useSetRecoilState(betsListState);\n const gameInfo = useRecoilValue(gameInfoAtom);\n\n const els = useMemo(\n () => elements.map((el, index) => ({ ...el, id: index + 1 })),\n [],\n );\n\n const render = ({ type, content }: TElement, id: number): ReactElement => {\n const { title, src, caption } = content as TImageElement;\n\n switch (type) {\n case 'header':\n return (\n \n {createTranslation(content as string, t, gameInfo?.country)}\n \n );\n case 'text':\n return (\n \n {createTranslation(content as string, t, gameInfo?.country)}\n \n );\n case 'image':\n return (\n <>\n \n {createTranslation(title, t, gameInfo?.country)}\n \n {createTranslation(src, t, gameInfo?.country) && (\n \n \n \n )}\n \n {createTranslation(caption, t, gameInfo?.country)}\n \n \n );\n case 'list':\n return (\n \n {(content as TListElement[]).map(\n ({ title: listTitle, text: listText }) => (\n \n \n {createTranslation(listTitle, t, gameInfo?.country)}\n \n
\n \n {createTranslation(listText, t, gameInfo?.country)}\n \n
\n ),\n )}\n
\n );\n case 'table':\n const {\n title: tTitle,\n title2: tTitle2,\n columns: tColumns,\n data: tData,\n } = content as TTableElement;\n return (\n \n t(col))}\n data={tData.map((item, index) => [index + 1, item])}\n />\n \n );\n }\n };\n\n useEffect(() => {\n if (scrollTo) {\n const el = document.querySelector(`[${scrollTo}]`);\n\n if (el)\n el.scrollIntoView({\n behavior: 'smooth',\n });\n }\n }, [scrollTo]);\n\n const handleBetsList = () => {\n setBetsList({\n isActive: true,\n isLoading: true,\n });\n };\n\n return (\n \n \n {createTranslation(Key.aboutTitle, t, gameInfo?.country)}\n \n \n {createTranslation(aboutRTP, t, gameInfo?.country)}\n \n\n {els.map(({ id, ...rest }) => (\n {render(rest, id)}\n ))}\n\n {t(Key.betsHistory)}\n \n );\n};\n\nexport default About;\n","export default __webpack_public_path__ + \"static/media/info_cashout.min.f94460a6.png\";","export default __webpack_public_path__ + \"static/media/info_mine.min.65407c38.png\";","export default __webpack_public_path__ + \"static/media/info_start.min.8519f536.png\";","export default __webpack_public_path__ + \"static/media/info_bonus.min.23b9b3da.png\";","import { Key } from 'i18n/Key';\nimport img_info_cashout from 'assets/images/intro/info_cashout.min.png';\nimport img_info_mine from 'assets/images/intro/info_mine.min.png';\nimport img_info_start from 'assets/images/intro/info_start.min.png';\nimport img_info_bonus from 'assets/images/intro/info_bonus.min.png';\nimport { addDefaultTranslates } from 'i18n/config';\n\nexport const BONUS_SLIDE_INDEX = 3;\n\naddDefaultTranslates({\n [Key.img_info_cashout]: img_info_cashout,\n [Key.img_info_mine]: img_info_mine,\n [Key.img_info_start]: img_info_start,\n [Key.img_info_bonus]: img_info_bonus,\n});\n\nexport const slides = [\n {\n id: 2,\n img: Key.img_info_start,\n imgM: Key.img_info_start,\n header2: Key.infoP21,\n content: Key.infoP22,\n },\n {\n id: 3,\n img: Key.img_info_cashout,\n imgM: Key.img_info_cashout,\n header2: Key.infoP31,\n content: Key.infoP32,\n },\n {\n id: 4,\n img: Key.img_info_mine,\n imgM: Key.img_info_mine,\n header2: Key.infoP41,\n content: Key.infoP42,\n },\n {\n id: 5,\n img: Key.img_info_bonus,\n imgM: Key.img_info_bonus,\n header2: Key.infoP61,\n content: Key.infoP62,\n },\n];\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcInfomin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 24,\n width: 24,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11-11-4.925-11-11 4.925-11 11-11zm0 1.5a9.5 9.5 0 1 0 0 19 9.5 9.5 0 0 0 0-19zm.798 7.185-1.326 6.646.311.094 2.57-2.378 1.147.992-1.146 1.166c-.612.63-1.15 1.086-1.613 1.37a2.74 2.74 0 0 1 -1.45.425c-.589 0-1.036-.15-1.342-.449s-.458-.7-.458-1.205c0-.147.01-.299.032-.456.022-.158.06-.362.115-.614l.802-4.016h-1.94l.278-1.575zm-.442-3.685c.459 0 .778.084.958.252s.27.373.27.614c0 .053-.005.12-.016.205-.011.084-.027.2-.05.346a1.148 1.148 0 0 1 -.4.717c-.213.173-.549.26-1.007.26-.459 0-.778-.084-.958-.252a.808.808 0 0 1 -.27-.614c0-.053.005-.121.016-.205l.02-.15.029-.197c.055-.304.188-.543.401-.716s.549-.26 1.007-.26z\",\n fill: \"#fff\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcInfomin);\nexport default __webpack_public_path__ + \"static/media/ic_info.min.b2d0346a.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from 'styled-components';\nimport iconArrow from 'assets/icons/ic_arrow_right.min.svg';\n\nexport const SWrapper = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 200;\n background: var(--primary-color--06);\n`;\n\nexport const SInner = styled.div`\n position: relative;\n max-width: 950px;\n width: 100%;\n height: 100%;\n max-height: 950px;\n border-radius: 8px;\n\n @media (max-width: 990px) {\n max-width: 100%;\n max-height: 100%;\n }\n`;\n\nexport const SBox = styled.div`\n position: relative;\n height: 100%;\n background: var(--primary-color);\n border-radius: 8px;\n overflow: hidden;\n overflow-y: auto;\n padding: 20px 20px 15px;\n text-align: center;\n color: var(--inverse-color);\n display: flex;\n flex-direction: column;\n\n @media (max-width: 990px) {\n padding: 15px 0 0;\n border-radius: 0;\n border: none;\n box-shadow: none;\n }\n`;\n\nexport const SLogo = styled.div`\n img {\n max-width: none;\n height: 60px;\n }\n`;\n\nexport const SSliderWrapper = styled.div`\n margin: 0 0 20px;\n position: relative;\n\n * {\n outline: none !important;\n }\n\n .swiper-button-prev,\n .swiper-button-next {\n position: absolute;\n width: 60px;\n height: 60px;\n border-radius: 30px;\n left: 20px;\n bottom: 40px;\n z-index: 10;\n cursor: pointer;\n background: #2c2a1c;\n\n &:hover {\n background: #383622;\n }\n\n &:after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 32px;\n height: 32px;\n line-height: 30px;\n font-size: 32px;\n color: rgb(255, 227, 16);\n transform: translate(-50%, -50%) rotate(180deg);\n background: url(${iconArrow}) center center no-repeat;\n background-size: auto 24px;\n }\n\n @media (max-width: 990px) {\n display: none;\n }\n }\n .swiper-button-next {\n right: 20px;\n left: auto;\n\n &:after {\n transform: translate(-50%, -50%);\n }\n }\n\n .swiper-pagination {\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: 0;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 22;\n\n .swiper-pagination-bullet {\n position: relative;\n display: block;\n width: 10px;\n height: 10px;\n margin: 0 1px;\n cursor: pointer;\n\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 6px;\n height: 6px;\n margin: 2px;\n border-radius: 3px;\n background: rgb(43, 41, 28);\n transition: width 0.05s;\n transform: translateX(-3px);\n }\n\n &.swiper-pagination-bullet-active {\n width: 20px;\n\n &:after {\n width: 16px;\n background: rgb(255, 227, 16);\n }\n }\n }\n }\n`;\n\nexport const SItem = styled.section`\n width: 100%;\n padding: 0 0 40px;\n\n @media (max-width: 990px) {\n padding: 0 20px 20px;\n }\n`;\n\nexport const SItemImg = styled.img`\n display: inline-block;\n max-width: 100%;\n max-height: 200px;\n height: auto;\n`;\n\nexport const SText = styled.div<{ withMargin: boolean }>`\n ${({ withMargin }) =>\n withMargin &&\n css`\n margin: 0 100px;\n `};\n\n @media (max-width: 990px) {\n margin: 0;\n }\n`;\n\nexport const SItemHeader = styled.h4`\n margin: 10px 30px 0;\n font-size: 14px;\n font-weight: 400;\n color: rgb(255, 227, 16, 0.8);\n`;\n\nexport const SItemHeader2 = styled.h3`\n margin: 20px 0;\n font-size: 16px;\n font-weight: 500;\n color: rgb(255, 227, 16);\n text-transform: uppercase;\n\n @media (max-width: 990px) {\n margin: 10px 0;\n }\n`;\n\nexport const SItemContent = styled.div`\n font-size: 14px;\n word-wrap: break-word;\n max-width: calc(100% - 30px);\n margin: 20px auto 10px;\n font-stretch: expanded;\n color: rgb(207, 208, 209);\n`;\n\nexport const SFooter = styled.footer`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: auto;\n position: relative;\n z-index: 10;\n\n button {\n max-width: 230px;\n margin-bottom: 0 !important;\n }\n\n @media (min-width: 990px) {\n position: sticky;\n background: var(--primary-color);\n bottom: -40px;\n padding: 20px 10px;\n }\n\n @media (max-width: 990px) {\n flex-direction: column;\n align-items: center;\n }\n\n @media (max-width: 990px) {\n margin-bottom: 90px;\n }\n`;\n\nexport const SCheckedLabel = styled.label`\n position: absolute;\n display: flex;\n margin: 0;\n right: -10px;\n font-size: 15px;\n color: rgb(255, 255, 255);\n cursor: pointer;\n justify-content: space-between;\n padding: 8px 25px 8px 14px;\n border-radius: 4px;\n\n strong {\n font-weight: 400;\n margin-right: 10px;\n opacity: 0.5;\n }\n\n input {\n position: absolute;\n opacity: 0;\n }\n\n span {\n position: absolute;\n right: 10px;\n display: block;\n background: rgb(33, 34, 43);\n width: 18px;\n height: 18px;\n border-radius: 2px;\n overflow: hidden;\n }\n\n input:checked + span:before {\n content: '';\n display: block;\n position: absolute;\n height: 7px;\n width: 11px;\n border-left: 2px solid rgb(255, 227, 16);\n border-bottom: 2px solid rgb(255, 227, 16);\n transform: rotate(310deg) translate(0px, 4px);\n }\n\n @media (max-width: 990px) {\n position: relative;\n right: 0;\n margin-bottom: 30px;\n width: 100%;\n max-width: 270px;\n background: rgba(255, 227, 16, 0.1);\n }\n`;\n\nexport const SBar = styled.div`\n display: block;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 200;\n\n @media (max-width: 990px) {\n display: none;\n }\n`;\n\nexport const STabs = styled.div`\n display: flex;\n flex-direction: column;\n max-height: calc(100% - 125px);\n position: relative;\n\n @media (max-width: 990px) {\n max-height: none;\n }\n`;\n\nexport const STabHeader = styled.header`\n width: 100%;\n display: flex;\n background: var(--primary-color);\n z-index: 10;\n padding: 15px 10px;\n top: -20px;\n position: sticky;\n\n @media (max-width: 990px) {\n padding: 10px 10px;\n top: -15px;\n }\n`;\n\nexport const STabHeaderInner = styled.div`\n display: flex;\n background: rgb(40, 234, 27, 0.05);\n margin: 0 auto;\n border-radius: 6px;\n`;\n\nexport const STabButton = styled.button<{ isActive?: boolean }>`\n display: block;\n border: none;\n background: none;\n color: #fff;\n padding: 8px;\n min-width: 120px;\n border-radius: 6px;\n font-size: 15px;\n font-weight: 500;\n cursor: pointer;\n\n &:hover {\n background: rgba(255, 255, 255, 0.05);\n }\n\n @media (max-width: 990px) {\n min-width: 0;\n padding: 8px 16px;\n }\n\n ${({ isActive }) =>\n isActive &&\n css`\n background: rgb(40, 234, 27);\n color: #13151d;\n\n &:hover {\n background: rgb(40, 234, 27);\n }\n `}\n`;\n\nexport const STabContent = styled.div`\n overflow: hidden;\n overflow-y: auto;\n\n @media (max-width: 990px) {\n overflow: visible;\n }\n`;\n","import { FC } from 'react';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { useTranslation } from 'react-i18next';\n\nimport { gameInfoAtom } from 'store';\nimport { createTranslation } from 'shared/helpers/translationUtils';\n\nimport { slides } from '../introSlides';\n\nimport { SItem, SItemContent, SItemImg, SSliderWrapper, SText } from './style';\nimport { SItemHeader2 } from '../style';\nimport { useRecoilValue } from 'recoil';\nimport { introState } from 'store';\n\nconst Slider: FC<{ showFlag?: boolean }> = ({ showFlag }) => {\n const { t } = useTranslation();\n const introStatus = useRecoilValue(introState);\n const gameInfo = useRecoilValue(gameInfoAtom);\n\n return (\n \n \n {slides.map(({ id, img, header2, content }) => (\n \n \n \n \n \n {createTranslation(header2, t, gameInfo?.country)}\n \n \n {createTranslation(content, t, gameInfo?.country)}\n \n \n \n \n ))}\n \n \n );\n};\n\nexport default Slider;\n","import { useState, useMemo, ReactElement, FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useRecoilValue } from 'recoil';\n\nimport threepiClient from 'api/threepiClient';\nimport { introState } from 'store';\nimport imgGameLogo from 'assets/images/game_logo.min.png';\nimport Button from 'shared/components/Button';\nimport { Key } from 'i18n/Key';\n\nimport { Slider, About } from './Tabs/';\n\nimport {\n SBox,\n SLogo,\n SFooter,\n SCheckedLabel,\n STabs,\n STabHeader,\n STabHeaderInner,\n STabButton,\n STabContent,\n} from './style';\nimport { TTabs } from './types';\n\nconst Intro: FC<{\n setIsIntro: (showIntro: boolean, isFlag: boolean) => void;\n showFlag?: boolean;\n}> = ({ setIsIntro, showFlag }) => {\n const introStatus = useRecoilValue(introState);\n const [currentTab, setCurrentTab] = useState(\n introStatus?.tab ? introStatus?.tab : 'tutorial',\n );\n const [scrollTo, setScrollTo] = useState(\n introStatus?.scrollTo || null,\n );\n\n const { t } = useTranslation();\n const [flag, setFlag] = useState(false);\n\n const handleFlag = () => {\n setFlag(prev => !prev);\n };\n\n const handleOnClick = () => {\n threepiClient.updateGameHelp(false);\n\n setIsIntro(false, flag);\n };\n\n const handleTab = (tab: TTabs) => {\n setCurrentTab(tab);\n setScrollTo(null);\n };\n\n const tabs: {\n [key in TTabs]: { label: string; render: () => ReactElement };\n } = useMemo(\n () => ({\n tutorial: {\n label: t(Key.tutorial),\n render: () => ,\n },\n about: {\n label: t(Key.about),\n render: () => ,\n },\n }),\n [showFlag, t, scrollTo],\n );\n\n return (\n \n \n \"Coin\n \n\n \n \n \n {Object.keys(tabs).map(tabKey => (\n handleTab(tabKey as TTabs)}\n >\n {tabs[tabKey as TTabs].label}\n \n ))}\n \n \n\n {Object.keys(tabs).map(\n tabKey =>\n tabKey === currentTab && (\n \n {tabs[tabKey as TTabs].render()}\n \n ),\n )}\n \n\n \n {showFlag && (\n \n {t(Key.doNotShow)}\n \n \n \n )}\n\n \n \n \n );\n};\n\nexport default Intro;\n","import { FC, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport Intro from './Intro';\nimport { SInner, SWrapper } from './style';\n\nexport const IntroModal: FC<{\n onChange: (status: boolean, isFlag: boolean) => void;\n showFlag?: boolean;\n}> = ({ onChange, showFlag = true }) => {\n const portalEL = document.getElementById('portal-root');\n\n useEffect(() => {\n const elHtml = document.querySelector('html');\n if (elHtml) elHtml.classList.add('scroll-block');\n\n return () => {\n if (elHtml) elHtml.classList.remove('scroll-block');\n };\n }, []);\n\n return (\n portalEL &&\n createPortal(\n \n \n \n \n ,\n portalEL,\n )\n );\n};\n","import { FC } from 'react';\n\nimport { useWindowSize } from 'shared/hooks/useWindowSize';\nimport Intro from './Intro';\nimport { IntroModal } from './IntroModal';\nimport { SBar } from './style';\nimport { IIntroBarProps } from './types';\n\nexport const IntroBar: FC = ({ onChange }) => {\n const screen = useWindowSize();\n const handleChange = () => {\n onChange(null);\n };\n\n return screen && screen?.width < 992 ? (\n \n ) : (\n \n \n \n );\n};\n","import { useEffect, useState } from 'react';\n\nexport const useWindowSize = () => {\n const getWindowSize = () => {\n if (typeof window !== 'undefined') {\n return {\n width: window?.innerWidth,\n height: window?.innerHeight,\n };\n }\n return {\n width: 0,\n height: 0,\n };\n };\n\n const [screen, setScreen] = useState<{\n width: number;\n height: number;\n }>(getWindowSize());\n\n useEffect(() => {\n function handleResize() {\n setScreen(getWindowSize());\n }\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n return screen;\n};\n","import styled, { css } from 'styled-components';\n\nexport const SWrapper = styled.div`\n margin-bottom: 6px;\n border-radius: 4px;\n overflow: hidden;\n`;\n\nexport const SList = styled.ul`\n display: flex;\n height: 70px;\n margin: 0;\n padding: 0;\n list-style: none;\n text-align: center;\n gap: 1px;\n`;\n\nexport const SItem = styled.li`\n flex: 1 0;\n background: rgba(40, 234, 27, 0.1);\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n width: 100%;\n`;\n\nexport const SLabel = styled.div`\n font-size: 12px;\n font-weight: 500;\n opacity: 0.5;\n text-transform: uppercase;\n margin-bottom: 6px;\n`;\n\nexport const SValue = styled.div<{ color?: 'green' }>`\n font-size: 14px;\n font-weight: 400;\n padding: 0 2px;\n\n ${({ color }) =>\n color === 'green' &&\n css`\n color: rgb(52, 199, 89);\n `}\n`;\n","import Freebets from './Freebets';\n\nexport default Freebets;\n","import { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nimport { SWrapper, SList, SItem, SLabel, SValue } from './style';\nimport { IFreebetsProps } from './types';\n\nconst Freebets: FC = ({\n data: { total_win, amount_left, coin_value },\n currency,\n}) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {t(Key.freeBets)}\n {amount_left}\n \n \n {t(Key.betAmount)}\n \n {currency}\n {coin_value}\n \n \n \n {t(Key.totalWin)}\n \n {currency}\n {total_win}\n \n \n \n \n );\n};\n\nexport default Freebets;\n","import styled, { css } from 'styled-components';\nimport srcBadgeActive from 'assets/icons/bonus_active.min.png';\nimport srcBadge from 'assets/icons/bonus_inactive.min.png';\n\nexport const SButton = styled.button<{ disabled: boolean }>`\n border: none;\n background-color: transparent;\n background-image: url('${srcBadgeActive}');\n color: var(--inverse-color);\n display: flex;\n height: 40px;\n min-width: 40px;\n padding: 0 5px;\n align-items: center;\n border-radius: 20px;\n text-transform: uppercase;\n font-size: 15px;\n font-weight: 500;\n gap: 15px;\n position: absolute;\n bottom: -55px;\n z-index: 20;\n cursor: pointer;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: auto 100%;\n\n ${({ disabled }) =>\n disabled &&\n css`\n background-image: url('${srcBadge}');\n cursor: default;\n `};\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n bottom: -45px;\n }\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n bottom: -35px;\n height: 35px;\n }\n\n span {\n display: none;\n max-height: 36px;\n }\n\n svg {\n width: 36px;\n height: 36px;\n }\n`;\n","import BonusButton from './BonusButton';\n\nexport default BonusButton;\n","import { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nimport { useRecoilValue, useSetRecoilState } from 'recoil';\nimport { controlsAtom, introState } from 'store';\nimport { useSound } from 'shared/hooks/useSound';\nimport { isMobile } from 'shared/helpers/isMobile';\nimport { BONUS_SLIDE_INDEX } from 'shared/components/Intro/introSlides';\n\nimport { SButton } from './style';\n\nconst BonusButton: FC<{ disabled: boolean }> = ({ disabled }) => {\n const setIntro = useSetRecoilState(introState);\n\n const { t } = useTranslation();\n const controls = useRecoilValue(controlsAtom);\n\n const [playBtnEnable] = useSound('btnEnable', {\n soundEnabled: controls.sound,\n });\n const [playBtnHover] = useSound('btnHover');\n\n const clickHandle = () => {\n playBtnEnable();\n };\n\n const hoverHandle = () => {\n if (!isMobile()) playBtnHover();\n };\n\n const handleClick = () => {\n setIntro({\n sliderIndex: BONUS_SLIDE_INDEX,\n });\n };\n\n return (\n \n {t(Key.bonus)}\n \n );\n};\n\nexport default BonusButton;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcSoundonmin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.375 2.61c4.906 4.905 4.978 12.815.216 17.809l-.216.222-1.06-1.061c4.324-4.325 4.392-11.295.202-15.702l-.203-.208 1.061-1.06zM12 5v14h-2l-4-4H3a1 1 0 01-1-1v-4a1 1 0 011-1h3l4-4h2zm4.375.438a8.75 8.75 0 01.18 12.19l-.18.184-1.06-1.06A7.25 7.25 0 0015.48 6.67l-.167-.172 1.061-1.06zm-2 2.828a4.75 4.75 0 01.15 6.56l-.15.158-1.06-1.06a3.25 3.25 0 00.126-4.463l-.127-.134 1.061-1.06z\",\n fill: \"#FFF\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcSoundonmin);\nexport default __webpack_public_path__ + \"static/media/ic_soundon.min.91fc0982.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcSoundoffmin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 24,\n width: 24,\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m12 5v14h-2l-4-4h-3a1 1 0 0 1 -1-1v-4a1 1 0 0 1 1-1h3l4-4zm7.47 3.47 1.06 1.06-2.469 2.47 2.47 2.47-1.061 1.06-2.47-2.469-2.47 2.47-1.06-1.061 2.469-2.47-2.47-2.47 1.061-1.06 2.47 2.469 2.47-2.47z\",\n fill: \"#fff\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcSoundoffmin);\nexport default __webpack_public_path__ + \"static/media/ic_soundoff.min.fa38d291.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcSessionTime(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10,\n height: 10,\n viewBox: \"0 0 10 10\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5 0a5 5 0 110 10A5 5 0 015 0zm0 1.4a.6.6 0 00-.6.6v3l.007.094a.6.6 0 00.169.33l2 2 .083.07a.6.6 0 00.765-.07l.07-.083a.6.6 0 00-.07-.765L5.6 4.75V2l-.008-.097A.6.6 0 005 1.4z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcSessionTime);\nexport default __webpack_public_path__ + \"static/media/ic_session_time.2eca1829.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgIcSessionTimer(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10,\n height: 11,\n viewBox: \"0 0 10 11\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.5 1.5a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm0 .9a.6.6 0 00-.592.503L3.9 3v3l.008.097a.6.6 0 001.184 0L5.1 6V3l-.008-.097A.6.6 0 004.5 2.4zm3.806-.849l.843.855a.4.4 0 01-.004.566l-.285.28a.4.4 0 01-.566-.003l-.843-.855a.4.4 0 01.004-.566l.285-.28a.4.4 0 01.566.003zM5.6 0c.22 0 .4.18.4.4v.4a.4.4 0 01-.4.4H3.4A.4.4 0 013 .8V.4c0-.22.18-.4.4-.4h2.2z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIcSessionTimer);\nexport default __webpack_public_path__ + \"static/media/ic_session_timer.5e668293.svg\";\nexport { ForwardRef as ReactComponent };","import { MutableRefObject } from 'react';\n\nexport enum GameStatuses {\n INIT = 'init',\n PLAY = 'play',\n END = 'end',\n}\n\nexport type TGameStatuses = 'init' | 'play' | 'end';\n\nexport interface IGameProps {\n isLoaded?: boolean;\n gameInfo: {\n [key: string]: any;\n };\n historyUrlRef: MutableRefObject<{}>;\n}\n","import { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { ReactComponent as InfoIcon } from 'assets/icons/ic_info.min.svg';\nimport { ReactComponent as VolumeIcon } from 'assets/icons/ic_soundon.min.svg';\nimport { ReactComponent as VolumeXIcon } from 'assets/icons/ic_soundoff.min.svg';\nimport { ReactComponent as SessionIimeIcon } from 'assets/icons/ic_session_time.svg';\nimport { ReactComponent as SessionIimerIcon } from 'assets/icons/ic_session_timer.svg';\n\nconst icons = {\n info: InfoIcon,\n volume: VolumeIcon,\n 'volume-x': VolumeXIcon,\n session_time: SessionIimeIcon,\n session_timer: SessionIimerIcon,\n};\n\nconst StyledIcon = styled.i`\n display: inline-block;\n width: 24px;\n height: 24px;\n vertical-align: middle;\n`;\n\nconst Icon: FC<{ name: keyof typeof icons }> = ({ name }) => {\n const IconComp = icons[name];\n return (\n \n \n \n );\n};\n\nexport default Icon;\n","import Icon from './Icon';\n\nexport default Icon;\n","import styled from 'styled-components';\n\nexport const SWrapper = styled.div`\n flex: 0 0 100%;\n padding: 0 15px 0 20px;\n margin-bottom: 20px;\n width: 100%;\n display: flex;\n position: relative;\n justify-content: space-between;\n z-index: 1;\n pointer-events: none;\n font-size: 13px;\n`;\n\nexport const SItem = styled.div`\n color: var(--timer-color);\n padding: 1px 8px 1px 5px;\n border-radius: 12px;\n\n i {\n width: 12px;\n height: 12px;\n }\n i svg {\n width: 12px;\n height: 12px;\n transform: translateY(-2px);\n }\n`;\n\nexport const SValue = styled.span`\n display: inline-block;\n margin-left: 6px;\n\n &[data-min-width] {\n min-width: 56px;\n }\n`;\n","import SessionTimer from './SessionTimer';\n\nexport default SessionTimer;\n","import { useState, FC } from 'react';\nimport dayjs, { Dayjs } from 'dayjs';\n\nimport { useInterval } from 'shared/hooks/useInterval';\nimport Icon from 'shared/components/Icon';\n\nimport { SWrapper, SItem, SValue } from './style';\n\nconst SessionTimer: FC = () => {\n const [startTime] = useState(dayjs().valueOf());\n const [currentTime, setCurrentTime] = useState(dayjs());\n const durrantion = dayjs\n .duration(currentTime.valueOf() - startTime)\n .format('HH:mm:ss');\n\n useInterval(() => {\n setCurrentTime(dayjs());\n }, 1000);\n\n return (\n \n {currentTime && (\n \n \n {currentTime.format('HH:mm')}\n \n )}\n {durrantion && (\n \n \n {durrantion}\n \n )}\n \n );\n};\n\nexport default SessionTimer;\n","import styled from 'styled-components';\nimport gameLogo from 'assets/images/game_logo.min.png';\nexport const SWrapper = styled.section`\n max-width: 600px;\n margin: 0 auto;\n transform: translate(calc(var(--sidebar-width) / 2), 0);\n position: relative;\n z-index: 10;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n padding: 0 10px;\n transform: translate(0, 0);\n }\n`;\n\nexport const SSidebar = styled.aside`\n position: absolute;\n top: 0;\n width: 340px;\n z-index: 1;\n margin-left: -350px;\n user-select: none;\n margin-top: var(--header-height);\n\n [data-box='intro'] {\n max-height: 660px;\n }\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n position: relative;\n margin-left: 0;\n width: 100%;\n margin-top: 0;\n\n [data-box='toasts'] {\n display: none;\n }\n }\n\n @media (max-width: 540px) and (max-aspect-ratio: 1/1) {\n margin-bottom: 40px;\n }\n`;\n\nexport const SContent = styled.section``;\n\nexport const SWinInfo = styled.div`\n color: rgb(144, 144, 149);\n padding: 5px 0px 20px;\n font-size: 15px;\n text-align: center;\n`;\n\nexport const SDownTimerText = styled.div`\n color: rgb(255, 227, 16);\n text-align: center;\n font-size: 15px;\n margin: -10px 0 10px;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n margin: 0 0 4px;\n }\n`;\n\nexport const SBox = styled.section`\n flex: 0 0 100%;\n border-radius: 8px;\n padding: 10px;\n margin-bottom: 20px;\n background: var(--primary-color);\n\n &[data-box='informer-header'] {\n background: none;\n display: none;\n padding: 10px 0;\n\n button {\n background: none;\n flex: 0 1;\n }\n\n button:first-child {\n flex: 0 1 !important;\n margin-right: auto;\n min-width: 150px;\n }\n }\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n border-radius: 0 0 8px 8px;\n padding: 0 10px 10px;\n\n &[data-box='informer'] {\n display: none;\n }\n\n &[data-box='informer-header'] {\n display: block;\n padding: 10px 0 0 10px;\n\n button {\n flex: 0 0 45px !important;\n min-height: 45px;\n padding: 6px 0;\n }\n }\n }\n\n @media (max-width: 450px) and (max-aspect-ratio: 1/1) {\n padding: 10px;\n\n &[data-box='informer-header'] {\n padding: 0;\n }\n }\n`;\n\nexport const SGameLogo = styled.span`\n display: block;\n position: absolute;\n width: 450px;\n height: 150px;\n bottom: 0;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n background-image: url('${gameLogo}');\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n width: 180px;\n height: 60px;\n }\n`;\n\nexport const SLobbyWrapper = styled.div`\n width: 100%;\n text-align: center;\n margin-top: 10px;\n`;\n\nexport const SLobbyLink = styled.a`\n padding: 4px 6px 3px;\n border: 2px solid var(--btn-bg-active);\n color: var(--inverse-color);\n text-transform: uppercase;\n text-decoration: none;\n font-size: 10px;\n font-weight: 600;\n text-align: center;\n border-radius: 4px;\n`;\n","import styled from 'styled-components';\n\nexport const StyledInformer = styled.div`\n display: flex;\n justify-content: space-between;\n flex: 0 0 100%;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n span {\n text-shadow: 0 0 2px black;\n }\n }\n`;\n","import Informer from './Informer';\n\nexport default Informer;\n","import { FC } from 'react';\nimport { useRecoilState, useSetRecoilState } from 'recoil';\n\nimport * as relax from 'api/relaxClient';\nimport threepiClient from 'api/threepiClient';\n\nimport { controlsAtom, introState } from 'store';\nimport Button, { Label, Text } from 'shared/components/Button';\nimport Icon from 'shared/components/Icon';\nimport Span from 'shared/components/Span';\nimport { betsListState } from 'shared/components/BetsList';\n\nimport { IInformerProps } from './types';\nimport { StyledInformer } from './style';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nconst Informer: FC = ({ balance, currency }) => {\n const { t } = useTranslation();\n const [controls, setControls] = useRecoilState(controlsAtom);\n const setIntro = useSetRecoilState(introState);\n const setBetsList = useSetRecoilState(betsListState);\n\n const clickSound = () => {\n setControls(prev => {\n relax.updateSound(!prev.sound);\n threepiClient.updateSound(!prev.sound);\n\n return {\n ...prev,\n sound: !prev.sound,\n };\n });\n };\n\n const showIntro = () => {\n threepiClient.updateGameHelp(true);\n\n setIntro({\n tab: 'tutorial',\n });\n };\n\n const handleBetsList = () => {\n threepiClient.updateBetsHistory(true);\n setBetsList({\n isActive: true,\n isLoading: true,\n });\n };\n\n return (\n \n \n \n \n \n {balance}\n \n \n\n \n\n \n \n \n \n \n \n );\n};\n\nexport default Informer;\n","import { FC, useCallback, useEffect, useState } from 'react';\nimport { useRecoilState, useSetRecoilState } from 'recoil';\nimport dayjs from 'dayjs';\nimport { useTranslation } from 'react-i18next';\nimport { exitLobby } from 'shared/helpers/handleExit';\nimport * as relax from 'api/relaxClient';\nimport threepiClient from 'api/threepiClient';\nimport { Key } from 'i18n/Key';\n\nimport {\n playStatusAtom,\n gridAtom,\n spentTimeAtom,\n errorsAtom,\n processingAtom,\n introState,\n modalState,\n controlsAtom,\n statesAtom,\n} from 'store';\nimport { bet, cashout, getBalance, getHistory, init } from 'api/client';\nimport { useSound } from 'shared/hooks/useSound';\nimport { PlayStatus, GETTING_BALANCE_DELAY } from 'shared/constants/game';\nimport Toasts, { IToastProps } from 'shared/components/Toasts';\nimport Board from 'shared/components/Board';\nimport Span from 'shared/components/Span';\nimport Button, { Text as ButtonText } from 'shared/components/Button';\nimport Controller from 'shared/components/Controller';\nimport Header from 'shared/components/Header';\nimport { IRow } from 'shared/components/Board';\nimport PlayingTimer from 'shared/components/PlayingTimer';\nimport { IntroBar } from 'shared/components/Intro';\nimport Freebets from 'shared/components/Freebets';\nimport BonusButton from 'shared/components/BonusButton';\nimport { getUrlParams } from 'shared/helpers/parseUrl';\nimport SessionTimer from 'shared/components/SessionTimer';\nimport { useInterval } from 'shared/hooks/useInterval';\n\nimport {\n SBox,\n SContent,\n SSidebar,\n SWrapper,\n SWinInfo,\n SDownTimerText,\n SGameLogo,\n SLobbyLink,\n SLobbyWrapper,\n} from './style';\nimport Informer from './components/Informer';\nimport { GameStatuses, TGameStatuses, IGameProps } from './types';\nimport { betsListState } from 'shared/components/BetsList';\n\nconst Game: FC = ({ gameInfo, isLoaded, historyUrlRef }) => {\n const { show_time } = getUrlParams();\n\n const { t } = useTranslation();\n\n const [controlsOption, setControlsOption] = useRecoilState(controlsAtom);\n const setBetsList = useSetRecoilState(betsListState);\n\n const [introStatus, setIntroStatus] = useRecoilState(introState);\n const [playGameStarter] = useSound('gameStarter', {\n volume: 0.1,\n soundEnabled: controlsOption.sound && !controlsOption.isPausedMainTheme,\n });\n const [playSuccessfulGame] = useSound('successfulGame', {\n volume: 0.2,\n soundEnabled: controlsOption.sound && !controlsOption.isPausedMainTheme,\n });\n\n const setModal = useSetRecoilState(modalState);\n const [roundBalance, setRoundBalance] = useState<{\n value: number;\n type: IToastProps['type'];\n }>({ value: 0, type: 'start' });\n const [info] = useState(gameInfo);\n const [freebets, setFreebets] = useState(gameInfo.freebets);\n const [isProcessing, setIsProcessing] = useRecoilState(processingAtom);\n const setPlayStatus = useSetRecoilState(playStatusAtom);\n const [{ items }, setGrid] = useRecoilState(gridAtom);\n const setSpentTime = useSetRecoilState(spentTimeAtom);\n const setErrors = useSetRecoilState(errorsAtom);\n const setStates = useSetRecoilState(statesAtom);\n\n const [gameStatus, setGameStatus] = useState(\n GameStatuses.INIT,\n );\n const [isBetting, setIsbetting] = useState(false);\n const [iterationCount, setIterationCount] = useState(0);\n const [haveBonus, setHaveBonus] = useState(\n !!gameInfo?.previous_session?.next_tile_bonus,\n );\n const [possibleWin, setPossibleWin] = useState(0);\n const [nextPossibleWin, setNextPossibleWin] = useState(0);\n const [countDownTimer] = useState(gameInfo?.min_interval_bet || 0);\n const [countDownStartTime, setCountDownStartTIme] = useState(0);\n const [balance, setBalance] = useState(0);\n const [controller, setController] = useState<{\n amount?: number;\n mines?: number;\n }>({\n amount: undefined,\n mines: undefined,\n });\n\n const changeStatus = (status: TGameStatuses) => {\n setGameStatus(status);\n };\n\n const handleCashout = async () => {\n if (isProcessing) return;\n setIsProcessing(true);\n\n const data = await cashout();\n setHaveBonus(false);\n\n setIsProcessing(false);\n setFreebets(data?.freebets);\n\n relax.updateBalance(data?.balance || 0);\n\n threepiClient.updateBalance(\n data?.balance || 0,\n freebets?.coin_value || controller.amount,\n 'end',\n );\n\n if (data?.freebets && !data?.freebets?.is_active) {\n setModal({\n title: `${t(Key.freeBetsEnd)}: ${data?.freebets?.total_win}`,\n buttons: [\n {\n label: t(Key.infoGotIt),\n type: 'close',\n },\n ],\n });\n }\n\n if (!data || data.status > 200) return;\n setBalance(data.balance || 0);\n setIterationCount(0);\n setGrid({\n items: mergeItems({\n newItems: data.grid,\n oldItems: items,\n }),\n });\n changeStatus(GameStatuses.END);\n playSuccessfulGame();\n setSpentTime(prev => ({\n ...prev,\n won: (data?.win_amount || 0) + prev.won,\n }));\n\n setRoundBalance(() => ({\n value: data?.win_amount || 0,\n type: 'win',\n }));\n\n relax.updateWin(data?.win_amount || 0);\n relax.endGame(data?.balance, data?.win_amount || 0);\n threepiClient.updateWin(data?.win_amount || 0);\n threepiClient.endGame();\n };\n\n const handleController = useCallback((name: string, value: number) => {\n if (name === 'amount') {\n relax.updateBet(value);\n threepiClient.updateBet(value);\n }\n\n setController(prev => ({\n ...prev,\n [name]: value,\n }));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const playGame = async () => {\n if (isProcessing) return;\n setIsProcessing(true);\n\n const data = await init({\n ...controller,\n amount: freebets?.coin_value || controller.amount,\n });\n\n setHaveBonus(!!data?.next_tile_bonus);\n setIsProcessing(false);\n setFreebets(data?.freebets);\n\n setPlayStatus({\n status: PlayStatus.PLAYING,\n });\n\n // Start playing game\n if (data) {\n relax.updateBalance(data?.balance || 0);\n relax.startGame(data.balance);\n\n threepiClient.updateBalance(\n data?.balance || 0,\n freebets?.coin_value || controller.amount,\n 'start',\n );\n threepiClient.startGame();\n\n // start waiting counter on button\n if (countDownTimer > 0) setCountDownStartTIme(dayjs().valueOf());\n\n if (!data?.freebets) {\n setRoundBalance({\n value: controller.amount || 0,\n type: 'start',\n });\n }\n\n setSpentTime(prev => ({\n ...prev,\n bet: prev.bet + (controller?.amount || 0),\n }));\n\n playGameStarter();\n\n changeStatus(GameStatuses.PLAY);\n setBalance(data.balance || 0);\n setPossibleWin(0);\n setNextPossibleWin(data.next_possible_win || 0);\n setGrid({\n items: mergeItems({\n newItems: data.grid,\n oldItems: [],\n }),\n });\n }\n };\n\n const handleBet = async (coords: number[]) => {\n setIsbetting(true);\n const data = await bet({\n position: coords,\n });\n relax.updateBalance(data?.balance || 0);\n\n setIsbetting(false);\n\n if (!data || ![0, 200].includes(data.status)) {\n setErrors(prev => ({ ...prev, items: [...prev.items, 'BET_ERROR'] }));\n\n return false;\n }\n\n if (data.symbol_found?.type === 'loss') {\n relax.endGame(data?.balance, 0);\n threepiClient.updateBalance(\n data?.balance || 0,\n freebets?.coin_value || controller.amount,\n 'end',\n );\n threepiClient.endGame();\n\n setHaveBonus(false);\n\n setRoundBalance({\n value: 0,\n type: 'win',\n });\n setPlayStatus({\n status: PlayStatus.LOSS,\n });\n }\n\n if (data?.freebets && !data?.freebets?.is_active) {\n setModal({\n title: `${t(Key.freeBetsEnd)}: ${data?.freebets?.total_win}`,\n buttons: [\n {\n label: t(Key.infoGotIt),\n type: 'close',\n },\n ],\n });\n }\n\n const {\n grid,\n position: [rInd, cInd],\n closed,\n balance,\n next_tile_bonus,\n } = data;\n\n if (closed) {\n setHaveBonus(false);\n changeStatus(GameStatuses.END);\n setIterationCount(0);\n setPossibleWin(0);\n setFreebets(data?.freebets);\n\n // Cashout\n if (data.symbol_found?.type === 'regular') {\n relax.updateWin(data?.possible_win || 0);\n relax.endGame(data?.balance, data?.possible_win || 0);\n\n threepiClient.updateWin(data?.possible_win || 0);\n threepiClient.endGame();\n\n setRoundBalance({\n value: data?.possible_win || 0,\n type: 'win',\n });\n playSuccessfulGame();\n setSpentTime(prev => ({\n ...prev,\n won: (data?.possible_win || 0) + prev.won,\n }));\n }\n } else {\n setHaveBonus(!!next_tile_bonus);\n setIterationCount(data.iteration_number);\n setPossibleWin(data.possible_win);\n }\n\n setNextPossibleWin(data.next_possible_win || 0);\n\n setBalance(balance);\n setGrid({\n items: mergeItems({\n newItems: grid,\n oldItems: items,\n rInd: rInd,\n cInd: cInd,\n multiplier: data.multiplier,\n }),\n });\n };\n\n const mergeItems = useCallback(\n ({\n newItems,\n oldItems,\n rInd = -1,\n cInd = -1,\n multiplier = -1,\n isRestored = false,\n }: {\n newItems: IRow[];\n oldItems: IRow[];\n rInd?: number;\n cInd?: number;\n multiplier?: number;\n isRestored?: boolean;\n }) => {\n return newItems.map((row, rowIndex) =>\n row.map((col, colIndex) => {\n const oldCol = oldItems[rowIndex] ? oldItems[rowIndex][colIndex] : {};\n return rowIndex === rInd && colIndex === cInd\n ? {\n ...oldCol,\n ...col,\n multiplier: multiplier,\n isSelected: true,\n isLast: true,\n }\n : {\n isSelected: col.type === 'regular' ? isRestored : false,\n ...oldCol,\n multiplier: -1,\n ...col,\n isLast: false,\n };\n }),\n );\n },\n [],\n );\n\n useEffect(() => {\n // initial values\n setBalance(info.balance);\n\n if (info?.previous_session) {\n changeStatus(GameStatuses.PLAY);\n setPossibleWin(info.previous_session?.possible_win);\n setNextPossibleWin(info.previous_session?.next_possible_win);\n setGrid({\n items: mergeItems({\n newItems: info.previous_session?.mine_grid,\n oldItems: [],\n isRestored: true,\n }),\n });\n setController({\n amount: info.previous_session?.bet_amount || info?.bet_value_list[0],\n mines: info.previous_session?.mines_number,\n });\n\n setSpentTime(prev => ({\n ...prev,\n bet: info.previous_session?.bet_amount || 0,\n }));\n\n setIterationCount(info.previous_session?.iteration_number || 0);\n } else {\n setController(prev => ({\n ...prev,\n amount: info?.bet_value_list.includes(info?.default_bet_value)\n ? info.default_bet_value\n : info?.bet_value_list[0],\n mines: 1,\n }));\n }\n\n if (info?.freebets) {\n setModal({\n title: `${t(Key.freeBetsStart)}: ${info?.freebets.amount_left}`,\n buttons: [\n {\n label: t(Key.infoGotIt),\n type: 'close',\n },\n ],\n });\n }\n }, [info, setGrid, mergeItems, setSpentTime, setModal, t]);\n\n useEffect(() => {\n return () => {\n setIsProcessing(false);\n };\n }, [isLoaded, setIsProcessing]);\n\n useEffect(() => {\n relax.listenEvents(on => {\n on.updateSettings(newSetting => {\n if (newSetting?.sounds !== undefined) {\n setControlsOption(prev => ({\n ...prev,\n sound: newSetting?.sounds,\n }));\n }\n });\n\n on.refreshBalance(() => {\n getBalance().then(({ balance: bal }) => {\n if (bal && bal > -1) {\n relax.updateBalance(bal);\n setBalance(bal);\n }\n });\n });\n\n on.toggleGameHelp(() => {\n setIntroStatus({\n tab: 'tutorial',\n });\n });\n\n on.togglePaytable(() => {\n setIntroStatus({\n tab: 'about',\n scrollTo: 'data-bet-table',\n });\n });\n });\n\n const handleSound = (state: boolean) =>\n setControlsOption(prev => ({\n ...prev,\n sound: state,\n }));\n\n const handleGameHelp = (state: boolean) =>\n setIntroStatus(\n state\n ? {\n tab: 'tutorial',\n }\n : null,\n );\n\n const handlePaytable = (state: boolean) =>\n setIntroStatus(\n state\n ? {\n tab: 'about',\n scrollTo: 'data-bet-table',\n }\n : null,\n );\n\n const handleBetsHistory = (state: boolean) => {\n setBetsList({\n isActive: state,\n isLoading: state,\n });\n };\n\n const handlePause = (state: boolean) => {\n setStates({ paused: state });\n };\n\n const handleSyncBalance = (state: boolean) => {\n getBalance().then(({ balance: bal }) => {\n if (bal && bal > -1) {\n threepiClient.updateBalance(\n bal,\n freebets?.coin_value || controller.amount,\n );\n setBalance(bal);\n }\n });\n };\n\n const handleUpdateBalance = (_b: boolean, value: number) => {\n setBalance(value);\n };\n\n threepiClient.on('audio', handleSound);\n threepiClient.on('help', handleGameHelp);\n threepiClient.on('paytable', handlePaytable);\n threepiClient.on('history', handleBetsHistory);\n threepiClient.on('pause', handlePause);\n threepiClient.on('sync-balance', handleSyncBalance);\n threepiClient.on('update-balance', handleUpdateBalance);\n\n return () => {\n threepiClient.off('audio', handleSound);\n threepiClient.off('help', handleGameHelp);\n threepiClient.off('paytable', handlePaytable);\n threepiClient.off('history', handleBetsHistory);\n threepiClient.off('pause', handlePause);\n threepiClient.off('sync-balance', handleSyncBalance);\n threepiClient.off('update-balance', handleUpdateBalance);\n };\n }, []);\n\n useInterval(() => {\n getBalance().then(({ balance: bal }) => {\n if (bal && bal > -1) {\n relax.updateBalance(bal);\n threepiClient.updateBalance(\n bal,\n freebets?.coin_value || controller.amount,\n );\n setBalance(bal);\n }\n });\n }, GETTING_BALANCE_DELAY);\n\n return (\n \n \n
\n \n \n\n \n \n \n\n \n
\n\n 0 && (\n <>\n \n {nextPossibleWin}\n \n )\n }\n openedCount={iterationCount}\n mines={controller.mines}\n />\n
\n\n \n {introStatus && }\n\n \n\n \n \n \n\n \n {gameStatus !== GameStatuses.PLAY &&\n countDownTimer > 0 &&\n countDownStartTime > 0 && (\n <>\n \n {t(Key.nextGameTimerT)}\n \n )}\n\n {(gameStatus === GameStatuses.INIT ||\n GameStatuses.END === gameStatus) &&\n countDownStartTime < 1 && (\n \n )}\n\n {GameStatuses.PLAY === gameStatus && (\n \n \n {possibleWin > 0 && iterationCount > 0 ? (\n <>\n {t(Key.cashOut)}: \n \n {possibleWin}\n \n ) : (\n {t(Key.cashOut)}\n )}\n \n \n )}\n\n {freebets?.is_active && (\n }\n />\n )}\n\n {controller.amount && !freebets?.is_active && (\n \n )}\n\n {controller.mines && (\n \n )}\n\n \n {t(Key.maxWin)} \n \n {info &&\n controller.amount &&\n controller.mines &&\n info.max_multipliers && (\n \n {(\n info.max_multipliers[controller.mines] * controller.amount\n ).toFixed(2)}\n \n )}\n \n\n {show_time && }\n\n {info?.hasLobbyButton && (\n \n {\n exitLobby(info);\n }}\n >\n {t(Key.backToLobby)}\n \n \n )}\n \n \n\n {gameInfo?.reality_check_time > 0 && (\n }\n />\n )}\n
\n );\n};\n\nexport default Game;\n","var _path;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLogomin(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 841.89 595.276\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m467.1 231.573c-.534-.25 2.675 1.338-2.676-1.337-7.496-3.748-17.167-7.358-16.944-19.62.027-1.483-1.244-.892-2.898.892a4.112 4.112 0 0 1 -.355.306c-14.36 12.625-20.836 21.765-22.81 35.264-3.144 21.505 2.222 24.203 4.068 23.329a2.502 2.502 0 0 0 1.338-1.775c.651-3.014 1.97-13.411 20.234-16.882 18.038 29.504-10.016 47.325-27.167 47.325-20.94 0-48.66-27.593-16.66-61.08 5.456-5.71 13.154-11.23 21.063-23.143 9.689-14.594 11.391-28.383 1.652-41.453-4.996-6.704-5.86-6.485-5.665-4.92.79 6.327.592 4.387.669 6.242.38 9.19-6.076 13.674-14.715 18.95l-33.666 19.397c-.32.184-4.138 2.27-4.459 2.453-3.121 1.783-11.391 8.472-11.391 18.505 0 6.007.02 50.387.02 50.387a20.785 20.785 0 0 0 10.257 18.059c4.475 2.648 35.993 20.989 41.914 24.302.35.195.76.486 1.115.668 8.25 4.237 16.171 3.09 22.741-.668 6.459-3.695 34.212-18.927 43.922-25.863 6.242-4.459 8.695-10.701 8.472-16.052v-29.653c0-10.256-6.689-18.282-18.06-23.633zm-288.477 155.934c0-11.324 8.024-18.523 17.699-18.523 4.8 0 8.774 1.5 11.474 4.2v-3.376h9.075v36.149c0 9-6.525 17.55-18.674 17.55-11.324 0-17.85-7.275-18.674-15.075h9.299c.975 3.6 3.825 6.6 9.375 6.6 6.45 0 9.75-4.5 9.75-9.825v-3.45c-2.7 2.776-6.825 4.2-11.625 4.2-9.675 0-17.7-7.124-17.7-18.45zm9.075 0c0 6.375 4.425 10.276 10.348 10.276a10.354 10.354 0 0 0 0-20.7c-5.923 0-10.348 3.975-10.348 10.424zm54.898 21.825c-9.974 0-18.524-7.5-18.524-20.174s8.55-20.25 18.524-20.25a16.338 16.338 0 0 1 11.775 4.65v-3.75h9.3v38.624h-9.3v-3.675a16.29 16.29 0 0 1 -11.775 4.575zm-9.074-20.174c0 7.425 4.65 11.699 10.725 11.699 5.55 0 10.35-4.274 10.35-11.7 0-7.5-4.8-11.774-10.35-11.774-6.076 0-10.725 4.275-10.725 11.775zm87.148-20.249c9.825 0 14.624 6.9 14.624 16.8v22.723h-9.524v-21.675c0-6.148-2.55-9.374-8.25-9.374-4.8 0-8.55 3.226-8.55 9.374v21.675h-9.524v-21.675c0-6.148-2.25-9.374-7.95-9.374-5.1 0-8.85 3.226-8.85 9.374v21.675h-9.524v-38.624h9.524v3.976c1.8-2.55 5.25-4.875 11.7-4.875 6.225 0 10.5 2.625 12.45 6.224 2.25-3.6 6.45-6.224 13.873-6.224zm22.577-13.199a5.858 5.858 0 0 1 5.85-5.851 5.794 5.794 0 0 1 5.775 5.85 5.813 5.813 0 0 1 -11.625 0zm10.649 14.098v38.624h-9.524v-38.624zm18.974 0v3.976c1.8-2.55 5.475-4.875 11.7-4.875 9.824 0 15.223 6.9 15.223 16.8v22.723h-9.524v-21.675c0-6.148-2.925-9.374-8.55-9.374-5.1 0-8.85 3.226-8.85 9.374v21.675h-9.524v-38.624zm33.825 17.699c0-11.324 8.024-18.523 17.699-18.523 4.8 0 8.774 1.5 11.475 4.2v-3.376h9.074v36.149c0 9-6.525 17.55-18.674 17.55-11.324 0-17.85-7.275-18.674-15.075h9.299c.976 3.6 3.825 6.6 9.375 6.6 6.45 0 9.75-4.5 9.75-9.825v-3.45c-2.7 2.776-6.825 4.2-11.625 4.2-9.675 0-17.7-7.124-17.7-18.45zm9.075 0c0 6.375 4.425 10.276 10.349 10.276a10.354 10.354 0 0 0 0-20.7c-5.924 0-10.349 3.975-10.349 10.424zm73.273 12.975a14.13 14.13 0 0 0 11.325-5.1l5.025 7.425c-2.85 3.075-8.175 6.525-16.425 6.525-12.224 0-19.949-8.774-19.949-20.174s7.725-20.174 19.95-20.174c8.25 0 13.573 3.45 16.424 6.524l-5.025 7.425a14.133 14.133 0 0 0 -11.325-5.1c-6.224 0-10.499 4.5-10.499 11.325s4.275 11.324 10.5 11.324zm19.427-11.324c0-10.574 7.424-20.25 20.474-20.25s20.474 9.676 20.474 20.25c0 10.65-7.424 20.324-20.474 20.324s-20.474-9.674-20.474-20.324zm9.525 0c0 7.199 4.724 11.85 10.949 11.85s10.95-4.651 10.95-11.85c0-7.125-4.726-11.775-10.95-11.775s-10.95 4.65-10.95 11.775zm48.073-19.35v3.676c1.275-2.325 3.75-4.575 8.625-4.575 6.075 0 10.35 4.65 9.974 13.05h-9.3c0-2.776-1.649-4.65-4.424-4.65-2.55 0-4.875 1.874-4.875 8.025v23.098h-9.525v-38.624zm33.974 3.676c2.775-3 6.975-4.575 12.075-4.575 10.499 0 18.598 7.95 18.598 20.175s-8.1 20.248-18.598 20.248c-5.1 0-9.3-1.65-12.075-4.65v20.25h-9.525v-55.124h9.524zm-.45 15.6c0 7.499 4.95 11.773 10.424 11.773 6.226 0 11.175-4.274 11.175-11.773 0-7.426-4.95-11.7-11.175-11.7-5.474 0-10.424 4.274-10.424 11.7zm34.575 12.824 6.225-6.225a9.11 9.11 0 0 0 8.625 5.324c2.775 0 5.175-1.574 5.175-4.275 0-2.475-1.95-3.824-4.875-4.799l-3.45-1.125c-5.325-1.724-9.15-5.4-9.15-11.1 0-5.849 5.4-10.8 12-10.8 6.375 0 10.8 2.926 12.824 6.3l-6.224 5.401a7.17 7.17 0 0 0 -6.225-3.6c-2.175 0-3.45 1.274-3.45 2.7 0 1.724 1.35 2.775 3.525 3.524l3.3 1.125c5.25 1.8 10.95 5.25 10.95 12.374 0 7.125-6 12.6-14.4 12.6-7.725 0-12.6-3.525-14.85-7.424z\",\n fill: \"#fff\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogomin);\nexport default __webpack_public_path__ + \"static/media/logo.min.a2f53e44.svg\";\nexport { ForwardRef as ReactComponent };","import Game from './Game';\n\nexport default Game;\n","import styled, { css } from 'styled-components';\n\nconst fixedStyle = css`\n position: fixed;\n width: 100vw;\n height: 100vh;\n top: 0;\n left: 0;\n`;\n\nexport const SWrapper = styled.div`\n ${fixedStyle};\n vertical-align: middle;\n text-align: center;\n background: rgba(0, 0, 0, 0.5);\n white-space: nowrap;\n overflow-y: auto;\n user-select: none;\n\n &:after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n position: relative;\n height: 100%;\n width: 0;\n margin-left: -5px;\n pointer-events: none;\n }\n`;\n\nexport const SOverlay = styled.div`\n ${fixedStyle};\n z-index: 10;\n`;\n\nexport const SModal = styled.div`\n position: relative;\n vertical-align: middle;\n display: inline-block;\n max-width: 440px;\n width: calc(100% - 40px);\n white-space: normal;\n z-index: 20;\n`;\n\nexport const SInner = styled.div`\n background: var(--primary-color);\n padding: 20px 20px 20px;\n border-radius: 8px;\n border: 1px solid rgba(255, 255, 255, 0.05);\n text-align: center;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);\n`;\n\nexport const SHeader = styled.h2`\n font-size: 18px;\n font-weight: 500;\n color: #fff;\n line-height: 28px;\n margin: 0 0 20px;\n`;\n\nexport const SMessage = styled.p`\n font-size: 15px;\n font-weight: 400;\n color: rgb(144, 144, 149);\n margin: 0 0 40px;\n`;\n\nexport const SButtonWrapper = styled.div`\n display: flex;\n position: sticky;\n line-height: 1.48;\n gap: 5px;\n bottom: 0;\n max-width: 100%;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n\n & > button {\n }\n`;\n","import Modal from './Modal';\n\nexport default Modal;\n","import { useEffect, FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useRecoilState } from 'recoil';\nimport { terminate } from 'api/client';\n\nimport { IModalButton, modalState } from 'store';\nimport Button, { Text } from 'shared/components/Button';\n\nimport {\n SWrapper,\n SOverlay,\n SModal,\n SInner,\n SHeader,\n SMessage,\n SButtonWrapper,\n} from './style';\n\nconst Modal: FC = () => {\n const portalEL = document.getElementById('portal-root');\n const [modal, setModal] = useRecoilState(modalState);\n\n const reload = (action: IModalButton['action']) => {\n if (action) action();\n setModal({\n needAuth: true,\n });\n };\n\n const handleQuit = () => {\n setModal({\n needClearAuth: true,\n });\n };\n\n const closeModal = () => {\n setModal(null);\n (modal?.buttons || []).forEach(({ type, action }) => {\n if (type === 'close' && action) action();\n });\n };\n\n const terminateSession = () => {\n terminate();\n };\n\n const handleCallback = (\n type: IModalButton['type'],\n action: IModalButton['action'],\n ) => {\n switch (type) {\n case 'reload':\n terminateSession();\n reload(action);\n break;\n case 'close':\n case 'continue':\n closeModal();\n break;\n case 'quit':\n terminateSession();\n if (action && action()) {\n break;\n }\n handleQuit();\n break;\n case 'lobby':\n if (action) action();\n terminateSession();\n handleQuit();\n break;\n case 'history':\n if (action) action();\n break;\n default:\n closeModal();\n }\n };\n\n useEffect(() => {\n const elHtml = document.querySelector('html');\n\n if (elHtml && modal) elHtml.classList.add('modal-scroll-hidden');\n\n return () => {\n if (elHtml) elHtml.classList.remove('modal-scroll-hidden');\n };\n }, [modal]);\n\n return modal && portalEL\n ? createPortal(\n \n \n \n {modal.title}\n {modal.message}\n \n {(modal.buttons || []).map(({ type, label, action }) => (\n handleCallback(type, action)}\n >\n {label}\n \n ))}\n \n \n \n \n ,\n portalEL,\n )\n : null;\n};\n\nexport default Modal;\n","export const imageToBlob = async (\n src: string,\n callback: (result: string) => void,\n) => {\n try {\n const r = await fetch(src);\n const blob = await r.blob();\n callback(URL.createObjectURL(blob));\n } catch (e) {\n callback(src);\n }\n};\n\nconst ImageStore = () => {\n const images: { [key: string]: string } = {};\n\n const addImage = (key: string, value: string) => {\n images[key] = value;\n };\n\n const removeImage = (key: string) => {\n if (images[key]) {\n delete images[key];\n }\n };\n\n const getImage = (key: string): string => {\n const value = images[key];\n if (value) {\n return value;\n }\n return key;\n };\n\n return {\n addImage,\n removeImage,\n getImage,\n };\n};\n\nconst imageStore = ImageStore();\nexport default imageStore;\n","import img_game_logo from 'assets/images/game_logo.min.png';\nimport img_explosion from 'assets/images/img_explosion.min.png';\nimport img_mine from 'assets/images/img_mine.min.png';\nimport img_coin from 'assets/images/img_coin.min.png';\nimport img_tile01 from 'assets/images/img_tile01.min.png';\nimport img_tile02 from 'assets/images/img_tile02.min.png';\nimport sound_button_enable from 'assets/sounds/button_enable.mp3';\nimport sound_button_hover from 'assets/sounds/button_hover.mp3';\nimport sound_dynamite_explosion from 'assets/sounds/dynamite_explosion.mp3';\nimport sound_game_starter from 'assets/sounds/game_starter.mp3';\nimport sound_gold_reveal from 'assets/sounds/gold_reveal.mp3';\nimport sound_stone_click from 'assets/sounds/stone_click.mp3';\nimport sound_stone_hover from 'assets/sounds/stone_hover.mp3';\nimport sound_win from 'assets/sounds/win.mp3';\n\nimport { TFiles } from './types';\n\nexport const files: TFiles = {\n image: [\n img_game_logo,\n img_mine,\n img_coin,\n img_tile01,\n img_tile02,\n img_explosion,\n ],\n fetch: [\n sound_button_enable,\n sound_button_hover,\n sound_dynamite_explosion,\n sound_game_starter,\n sound_gold_reveal,\n sound_stone_click,\n sound_stone_hover,\n sound_win,\n ],\n callback: [\n cb => {\n setTimeout(() => {\n cb();\n }, 1000);\n },\n ],\n};\n","import styled from 'styled-components';\n\nexport const SPreloader = styled.div`\n display: flex;\n background: #323031;\n position: fixed;\n top: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 200%;\n z-index: 1000;\n`;\n\nexport const SLogo = styled.div`\n position: fixed;\n top: 50%;\n flex: 0 0 100%;\n width: 100%;\n max-width: 400px;\n height: 280px;\n animation: fadeIn 0.5s forwards;\n transform: translateY(-50%);\n`;\n\nexport const SImage = styled.div`\n max-width: 400px;\n width: 100%;\n height: 282px;\n`;\n\nexport const SProgressBar = styled.div`\n position: relative;\n width: 40%;\n height: 5px;\n margin: -30px auto 0;\n background: rgba(35, 34, 34);\n border-radius: 4px;\n overflow: hidden;\n`;\n\nexport const SProgressTrack = styled.div`\n position: absolute;\n left: 0;\n top: 0;\n background-color: #aa19ab;\n background-image: linear-gradient(90deg, #aa19ab, #e00e52);\n border-radius: 4px;\n height: 100%;\n`;\n","import Preloader from './Preloader';\n\nexport default Preloader;\n","import { FC, useState, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport * as relaxClient from 'api/relaxClient';\nimport threepiClient from 'api/threepiClient';\nimport { imageToBlob } from 'store/imageStore';\nimport imageStore from 'store/imageStore';\nimport { ReactComponent as BrandLogo } from 'assets/images/logo.min.svg';\nimport { files } from './files';\nimport {\n SPreloader,\n SLogo,\n SImage,\n SProgressBar,\n SProgressTrack,\n} from './style';\nimport { TFiles } from './types';\n\nconst Preloader: FC<{ onLoad: (status: boolean) => void }> = ({ onLoad }) => {\n const portalEL = document.getElementById('portal-root');\n\n const getFilesLength = useCallback(\n (files: TFiles) =>\n Object.keys(files).reduce((acc, key) => acc + files[key].length, 0),\n [],\n );\n\n const [total] = useState(() => getFilesLength(files));\n const [loadedFiles, setLoadedFiles] = useState(0);\n\n useEffect(() => {\n Object.keys(files).forEach(key => {\n files[key].forEach(file => {\n switch (key) {\n case 'callback':\n (file as Function)(() => {\n setLoadedFiles(prev => prev + 1);\n });\n break;\n case 'image':\n const img = new Image();\n img.src = file as string;\n img.addEventListener('load', () => {\n setLoadedFiles(prev => prev + 1);\n });\n break;\n case 'imageToBlob':\n imageToBlob(file as string, result => {\n imageStore.addImage(file as string, result);\n setLoadedFiles(prev => prev + 1);\n });\n break;\n case 'fetch':\n const audio = new Audio(file as string);\n audio.onloadedmetadata = () => {\n setLoadedFiles(prev => prev + 1);\n };\n break;\n default:\n setLoadedFiles(prev => prev + 1);\n }\n });\n });\n }, [setLoadedFiles]);\n\n useEffect(() => {\n relaxClient.startLoad();\n threepiClient.startLoad();\n }, []);\n\n useEffect(() => {\n const elHtml = document.querySelector('html');\n elHtml?.classList.add('scroll-hidden');\n\n if (loadedFiles >= total) {\n onLoad(true);\n relaxClient.setProgressLoad(100);\n relaxClient.endLoad();\n\n threepiClient.setProgressLoad(100);\n threepiClient.endLoad();\n } else {\n relaxClient.setProgressLoad((loadedFiles * 100) / total);\n threepiClient.setProgressLoad((loadedFiles * 100) / total);\n }\n\n return () => {\n elHtml?.classList.remove('scroll-hidden');\n };\n }, [loadedFiles, total, onLoad]);\n\n return (\n portalEL &&\n createPortal(\n \n \n \n \n \n \n \n \n \n ,\n portalEL,\n )\n );\n};\n\nexport default Preloader;\n","import styled from 'styled-components';\n\nexport const SWrapper = styled.div`\n position: relative;\n z-index: 100;\n\n @media (max-width: 990px) and (max-aspect-ratio: 1/1) {\n padding-bottom: 0;\n }\n`;\n\nexport const SPause = styled.div`\n position: fixed;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 1000;\n`;\n","import App from './App';\n\nexport default App;\n","import { FC, useCallback, useEffect, useState } from 'react';\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil';\nimport { debounce } from 'lodash';\nimport dayjs from 'dayjs';\nimport cx from 'classnames';\nimport i18n from 'i18next';\n\nimport threepiClient from 'api/threepiClient';\n\nimport { auth, getTranslations } from 'api/client';\nimport {\n modalState,\n gridAtom,\n spentTimeAtom,\n gameInfoAtom,\n statesAtom,\n} from 'store';\n\nimport Game from 'views/Game';\nimport { getUrlParams } from 'shared/helpers/parseUrl';\nimport Modal from 'shared/components/Modal';\nimport BetsList from 'shared/components/BetsList';\nimport Preloader from 'shared/components/Preloader';\n\nimport { SWrapper, SPause } from './style';\nimport { IAppProps } from './types';\nimport { useTranslation } from 'react-i18next';\nimport { Key } from 'i18n/Key';\n\nimport { DEFAULT_NS } from 'i18n/config';\n\nimport { QUERY_MAX_BET, QUERY_MIN_BET } from 'shared/helpers/parseUrl';\n\nconst CUSTOMER_RELAX = 'relax';\n\nconst App: FC = ({ historyUrlRef }) => {\n const { t } = useTranslation();\n const [isPreloaded, setIsPreloaded] = useState(false);\n const [gameInfo, setGameInfo] = useState<{ [key: string]: any }>({});\n const setSpentTime = useSetRecoilState(spentTimeAtom);\n const [modal, setModal] = useRecoilState(modalState);\n const states = useRecoilValue(statesAtom);\n const setGrid = useSetRecoilState(gridAtom);\n const setGameInfoA = useSetRecoilState(gameInfoAtom);\n\n const fetchTranslations = async () => {\n const data = await getTranslations();\n\n Object.keys(data).forEach(lang => {\n i18n.addResources(lang, DEFAULT_NS, data[lang]);\n });\n };\n\n const checkAuth = useCallback(async () => {\n setSpentTime({\n startTime: dayjs().valueOf(),\n bet: 0,\n won: 0,\n });\n const { reality_check_time, ...params } = getUrlParams();\n const customer = params.customer;\n const hasMaxBetButton = params[QUERY_MAX_BET] !== 'false';\n const hasMinBetButton = params[QUERY_MIN_BET] !== 'false';\n\n const data = await auth(params);\n if ([0, 200].includes(data.status)) {\n const hasLobbyButton = customer === CUSTOMER_RELAX || !!data?.lobby_url;\n\n threepiClient.configure(data.third_party_data || {}).then(r => {\n threepiClient.updateBalance(\n data.balance,\n data.previous_session?.bet_amount || data.default_bet_value,\n data.previous_session ? 'start' : 'end',\n );\n });\n\n setGameInfoA(data || {});\n setGameInfo({\n ...data,\n hasLobbyButton,\n customer,\n reality_check_time,\n hasMaxBetButton,\n hasMinBetButton,\n });\n\n historyUrlRef.current = {\n history_url: data?.history_url || '',\n lobby_url: data?.lobby_url || '',\n customer: customer,\n hasLobbyButton: hasLobbyButton,\n };\n } else {\n setModal({\n title: data?.title || data?.error?.name || '',\n message: data?.message || '',\n buttons: [\n {\n label: t(Key.reload),\n type: 'reload',\n },\n ],\n });\n }\n }, [setModal, setSpentTime, t, historyUrlRef]);\n\n useEffect(() => {\n checkAuth();\n fetchTranslations();\n }, [checkAuth]);\n\n useEffect(() => {\n if (modal?.needAuth) {\n setGameInfo({});\n checkAuth();\n setGrid({ items: [] });\n setModal(null);\n } else if (modal?.needClearAuth) {\n setGameInfo({});\n setGrid({ items: [] });\n setModal({\n title: t(Key.leftGame),\n buttons: [\n {\n label: t(Key.play),\n type: 'reload',\n },\n ],\n });\n }\n }, [modal, checkAuth, setModal, setGrid, t]);\n\n const W_SIDEBAR = 350;\n const W_CONTENT = 600;\n const H_CONTENT = 660;\n const H_LOGO = 150;\n const TOP = 20;\n const W_GAME = W_SIDEBAR + W_CONTENT;\n const H_GAME = H_CONTENT + H_LOGO;\n const MAGIC_WIDHT = 612;\n const MAGIC_WIDTH_DELTA = 1;\n const MAGIC_HEIGHT_DELTA = 1.01;\n\n const debouncedResize = debounce(\n (elApp: HTMLElement, width: number, height: number) => {\n if (width / height > 1) {\n const scale = Math.min(\n height /\n (H_GAME - Math.max(MAGIC_WIDHT - width, 0) * MAGIC_HEIGHT_DELTA),\n width /\n (W_GAME - Math.max(MAGIC_WIDHT - width, 0) * MAGIC_WIDTH_DELTA),\n );\n elApp.style.transform = `scale(${Math.min(1, scale)})`;\n\n const size = elApp.getBoundingClientRect();\n elApp.style.top = `${scale > 1 ? 0 : 0 - size.top - TOP}px`;\n }\n },\n 100,\n );\n\n useEffect(() => {\n const elApp = document.getElementById('app');\n\n const update = () => {\n if (elApp) {\n elApp.removeAttribute('style');\n debouncedResize(elApp, window.innerWidth, window.innerHeight);\n }\n };\n\n update();\n\n window.addEventListener('resize', update, false);\n\n return () => {\n window.removeEventListener('resize', update, false);\n };\n }, [debouncedResize]);\n\n return (\n
\n \n {gameInfo.session_token && (\n <>\n \n \n )}\n \n \n \n {/* isMobileDevice && */}\n {!isPreloaded && }\n {states.paused && }\n
\n );\n};\n\nexport default App;\n","import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport { RecoilRoot, useRecoilState } from 'recoil';\nimport { useTranslation } from 'react-i18next';\nimport { exitLobby, openHistoryUrl } from 'shared/helpers/handleExit';\nimport SwiperCore, { Navigation, Pagination } from 'swiper';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport { client, terminate } from 'api/client';\nimport { IModalButton, modalState } from 'store';\nimport './index.css';\nimport 'swiper/swiper.scss';\nimport App from './App';\nimport './i18n/config';\nimport { Key } from './i18n/Key';\nimport threepiClient from 'api/threepiClient';\nimport { getUrlParams } from 'shared/helpers/parseUrl';\n\ndayjs.extend(duration);\nSwiperCore.use([Navigation, Pagination]);\n\nconst Index = () => {\n const urlParams = getUrlParams();\n const [isThreePILooaded, setThreePILooaded] = useState(false);\n const [, setModal] = useRecoilState(modalState);\n const historyUrlRef = useRef({\n history_url: '',\n lobby_url: '',\n customer: '',\n hasLobbyButton: false,\n });\n\n const { t } = useTranslation();\n const navigateToHistoryUrl = () => {\n openHistoryUrl(historyUrlRef.current?.history_url);\n };\n\n const navigateToLobbyUrl = () => {\n exitLobby(historyUrlRef.current);\n };\n\n useEffect(() => {\n client.interceptors.response.use(\n res => {\n const { status, error, message, title, buttons } = res.data;\n\n if (\n // if request url is /history\n (res.config.url === '/history' && res.status === 200) ||\n [200, 0].includes(status)\n ) {\n return res;\n }\n\n let mTitle = title || error?.name || '';\n let errorMessage = message || '';\n let mButtons: IModalButton[] = [\n {\n label: t(Key.reload),\n type: 'reload',\n },\n ];\n\n const handle911 = () => {\n if (!buttons || !Array.isArray(buttons) || !buttons.length) {\n return;\n }\n\n let newButtons: IModalButton[] = [];\n buttons.forEach(b => {\n if (!b) {\n return;\n }\n\n newButtons.push({\n label: b.text || t(Key.continue),\n type: b.action || 'reload',\n action:\n b.action === 'history'\n ? navigateToHistoryUrl\n : b.action === 'lobby' || b.action === 'quit'\n ? navigateToLobbyUrl\n : undefined,\n });\n });\n\n if (newButtons.length) {\n mButtons = newButtons;\n }\n };\n\n switch (status) {\n case 912:\n threepiClient.noFunds();\n handle911();\n break;\n case 911:\n handle911();\n break;\n case 804:\n errorMessage = t(Key.timeoutDesc);\n mTitle = t(Key.timeout);\n break;\n }\n\n if (!threepiClient.isShowInGameErrors()) {\n return res;\n }\n\n threepiClient.handleError({status, message})\n\n setModal({\n title: mTitle,\n message: errorMessage,\n buttons: mButtons,\n });\n\n return res;\n },\n () => {\n setModal({\n title: t(Key.connectionError),\n message: '',\n buttons: [\n {\n label: t(Key.continue),\n type: 'close',\n },\n ],\n });\n },\n );\n }, [setModal, t]);\n\n const handleTabClosing = () => {\n terminate();\n };\n\n const loadScript = async (gameURL: string) => {\n return new Promise((res, rej) => {\n const script = document.createElement('script');\n script.src = gameURL || '';\n script.async = false;\n script.addEventListener('load', () => {\n res(true);\n });\n document.head.appendChild(script);\n });\n };\n\n useEffect(() => {\n const { ext_params, currency, play_for_fun, language, staging, customer } =\n urlParams;\n\n const isOneXTwo = customer === 'onextwo';\n const isStaging = staging === 'true';\n\n if (isOneXTwo) {\n loadScript(\n isStaging\n ? 'https://www.1x2-cloud-1.com/f1x2games/infrastr_generic-framework/clientAPI.game.min.js'\n : 'https://www.1x2gamingcdn.com/f1x2games/infrastr_generic-framework/clientAPI.game.min.js',\n ).then(res => {\n threepiClient.init(\n Object.assign(ext_params, {\n environment: staging === 'true' ? 'staging' : 'production',\n playMode: play_for_fun ? 'demo' : 'real',\n lang: language,\n currency,\n }),\n );\n setThreePILooaded(true);\n });\n } else {\n setThreePILooaded(true);\n }\n\n window.addEventListener('beforeunload', handleTabClosing);\n return () => {\n window.removeEventListener('beforeunload', handleTabClosing);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return isThreePILooaded ? :
;\n};\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\n);\n"],"sourceRoot":""}