{"version":3,"sources":["constants/index.js","store/actions/types.js","assets/images/favicons/index.js","helpers/localHelperFunctions.js","store/reducers/appData.js","store/reducers/masterBoardData.js","store/reducers/gameHallData.js","store/reducers/tournamentHallData.js","store/reducers/filtersData.js","store/reducers/gameLauncherData.js","store/reducers/popupState.js","store/reducers/customTournamentsData.js","store/reducers/tournamentKingData.js","store/reducers/autoJoinData.js","store/reducers/tournamentRakeRace.js","store/reducers/index.js","store/reducers/historyData.js","store/reducers/tournamentHistoryData.js","store/index.js","store/actions/index.js","helpers/translation.js","connection/api/index.js","helpers/utility.js","components/Shared/Button/index.js","constants/popupNames.js","components/Shared/Loader/index.js","connection/socket/socketRequests.js","components/NotificationWrapper/Notifications/autoJoinGameNotifocation.js","components/NotificationWrapper/Notifications/jackpotWinNotification.js","components/NotificationWrapper/Notifications/jackpotInfoNotification.js","components/NotificationWrapper/Notifications/masterboardWinNotification.js","connection/socket/dataHandlerFunctions.js","connection/socket/index.js","customHooks/useRouteParams.js","components/ConventionsBlock/index.js","components/NotificationWrapper/Notifications/InfoNotification.js","connection/api/networkService.js","components/Tooltip/index.js","store/selectors/index.js","assets/audio/offer.ogg","assets/audio/gameOffer_tournamentStart.mp3","components/NotificationWrapper/Notifications/tournamentStartedNotification.js","assets/images/game-card/belote.png","assets/images/game-card/backgammon.png","assets/images/game-card/domino.png","assets/images/game-card/hokm.png","assets/images/banner/desktop/games/pasoor.png","assets/images/banner/desktop/games/dominoes.png","assets/images/banner/desktop/games/hokm.png","components/Shared/ToggleSwitch/index.js","assets/images/game-card/21.png","assets/images/game-card/pasoor.png","assets/images/game-card/pasur.png","assets/images/game-card/joker.png","assets/images/game-card/chingachoong.png","assets/images/game-card/minesweeper.png","assets/images/game-card/penalty.png","assets/images/game-card/poker.png","assets/images/game-card/hokm2.png","assets/images/game-card/hexagon.png","assets/images/game-card/hexagon-43.png","assets/images/game-card/hexagon-37.png","assets/images/game-card/hexagon-61.png","assets/images/game-card/tournament.png","components/NotificationWrapper/Notifications/gameOfferNotification.js","components/NotificationWrapper/Notifications/activeGameNotification.js","components/Shared/Balance/index.js","components/Rules/RulesNav/index.js","components/Rules/RulesContent/index.js","components/ConnectionIndicator/ConnectionIcon/index.js","components/ConnectionIndicator/index.js","assets/images/banner/desktop/en-desktop.png","assets/images/banner/mobile/en-mobile.png","assets/images/banner/desktop/toto/Baron/Home_slider_baron_am.webp","assets/images/banner/desktop/toto/Baron/Home_slider_baron_ru.webp","assets/images/banner/desktop/toto/Baron/Home_slider_baron_en.webp","assets/images/banner/desktop/toto/Blot/Home_slider_blot_am.webp","assets/images/banner/desktop/toto/Blot/Home_slider_blot_ru.webp","assets/images/banner/desktop/toto/Blot/Home_slider_blot_en.webp","assets/images/banner/desktop/toto/Domino/Home_slider_domino_am.webp","assets/images/banner/desktop/toto/Domino/Home_slider_domino_ru.webp","assets/images/banner/desktop/toto/Domino/Home_slider_domino_en.webp","assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_am.webp","assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_ru.webp","assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_en.webp","assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_am.webp","assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_ru.webp","assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_en.webp","assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_am.webp","assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_ru.webp","assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_en.webp","assets/images/banner/mobile/toto/Baron/mobile_baron_am.webp","assets/images/banner/mobile/toto/Baron/mobile_baron_ru.webp","assets/images/banner/mobile/toto/Baron/mobile_baron_en.webp","assets/images/banner/mobile/toto/Blot/mobile_blot_am.webp","assets/images/banner/mobile/toto/Blot/mobile_blot_ru.webp","assets/images/banner/mobile/toto/Blot/mobile_blot_en.webp","assets/images/banner/mobile/toto/Domino/mobile_domino_am.webp","assets/images/banner/mobile/toto/Domino/mobile_domino_ru.webp","assets/images/banner/mobile/toto/Domino/mobile_domino_en.webp","assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_am.webp","assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_ru.webp","assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_en.webp","assets/images/banner/mobile/toto/Nardi/mobile_nardi_am.webp","assets/images/banner/mobile/toto/Nardi/mobile_nardi_ru.webp","assets/images/banner/mobile/toto/Nardi/mobile_nardi_en.webp","assets/images/banner/mobile/toto/Toto11/mobile_toto11_am.webp","assets/images/banner/mobile/toto/Toto11/mobile_toto11_ru.webp","assets/images/banner/mobile/toto/Toto11/mobile_toto11_en.webp","assets/images/banner/desktop/albatros/en-desktop.jpg","assets/images/banner/desktop/albatros/en-desktop1.jpg","assets/images/banner/desktop/albatros/en-desktop2.jpg","assets/images/banner/mobile/albatros/en-mobile.jpg","assets/images/banner/mobile/albatros/en-mobile1.jpg","assets/images/banner/mobile/albatros/en-mobile2.jpg","assets/images/banner/desktop/autojoin/en-desktop.jpg","assets/images/banner/desktop/autojoin/en-desktop1.jpg","assets/images/banner/desktop/autojoin/en-desktop2.jpg","assets/images/banner/desktop/autojoin/en-desktop3.jpg","assets/images/banner/desktop/netbet/en-desktop.jpg","assets/images/banner/mobile/netbet/en-mobile.jpg","assets/images/banner/desktop/cannonbet/en-desktop.jpg","assets/images/banner/mobile/cannonbet/en-mobile.jpg","assets/images/banner/desktop/geegeel/en-desktop.jpg","assets/images/banner/mobile/geegeel/en-mobile.png","assets/images/banner/desktop/games/belote.png","assets/images/banner/desktop/games/chingachoong.png","assets/images/banner/desktop/games/penalty.png","assets/images/banner/desktop/games/backgammon.png","assets/images/banner/desktop/games/backgammonnew.png","assets/images/banner/desktop/games/game21.png","assets/images/banner/desktop/games/joker.png","assets/images/banner/desktop/games/minesweeper.png","assets/images/masterboard/tierce.png","assets/images/masterboard/50.png","assets/images/masterboard/100.png","assets/images/masterboard/4x9.png","assets/images/masterboard/4x10.png","assets/images/masterboard/4xJ.png","assets/images/masterboard/4xQ.png","assets/images/masterboard/4xK.png","assets/images/masterboard/4xA.png","assets/images/realityCheckClock.png","assets/images/maintenance.png","assets/images/cookies-slider/chrome/step1.png","assets/images/cookies-slider/chrome/step2.png","assets/images/cookies-slider/chrome/step3.png","assets/images/cookies-slider/chrome/step4.png","assets/images/cookies-slider/chrome/step5.png","assets/images/cookies-slider/safari/step1.png","assets/images/cookies-slider/safari/step2.png","assets/images/cookies-slider/safari/step3.png","assets/images/cookies-slider/safari/step4.png","assets/images/cookies-slider/safari/step5.png","assets/images/app-belote-new.png","assets/images/favicons/totoFavicon.ico","assets/images/favicons/cannonbetFavicon.ico","assets/images/favicons/Arianbet.ico","assets/images/favicons/Marcbet.ico","assets/images/favicons/Novinbet.ico","assets/images/favicons/winsport.ico","assets/images/favicons/Irbet365.ico","assets/images/favicons/Onexfa.ico","assets/images/favicons/Takbet.ico","assets/images/favicons/Betfa.ico","assets/images/favicons/Irtoto.ico","assets/images/favicons/Manotobet.ico","assets/images/favicons/cyrusbet.ico","assets/images/favicons/maxbet.ico","assets/images/favicons/ibet.ico","assets/images/favicons/betzan.ico","assets/images/favicons/bia2bet.ico","assets/images/favicons/parsgoal.ico","assets/images/favicons/royalbet.ico","assets/images/favicons/betchanel.ico","assets/images/favicons/kingbet.ico","assets/images/favicons/betcloob.ico","assets/images/favicons/violetbet.ico","assets/images/favicons/igoal90.ico","assets/images/favicons/i90API.ico","assets/images/favicons/default-favicon.ico","assets/images/GSLoader.gif","connection/index.js","components/NotificationWrapper/index.js","layout/Navbar/MaintenanceNavbar/index.js","layout/Navbar/GamesNavbar/mobileTemplate.js","layout/Navbar/GamesNavbar/desktopTemplate.js","layout/Navbar/GamesNavbar/index.js","layout/Navbar/GameTypesNavbar/index.js","layout/Navbar/GameHallNavbar/index.js","layout/Navbar/TournamentsNavbar/index.js","layout/Navbar/AutojoinGameHallNavbar/index.js","layout/Navbar/MobileHistoryNavbar/index.js","layout/Navbar/index.js","components/PlayersCount/index.js","containers/BalanceContainer/index.js","layout/Header/index.js","components/Shared/Balance/BalanceCount/index.js","components/Rules/index.js","components/HallWrapper/index.js","script/index.js","App.js","index.js"],"names":["APP_URL","IDENTITY_URL","VALIDATION_URL","_getGameDataFromUrl","getGameDataFromUrl","PartnerId","token","lang","IsMobileLogin","isRGS","homeUrl","mainDomain","partnerFiltersData","GAME_ID_QUERY_PARAM","TOTO_PASOOR_CONVERTED_NAME","TOTO_HOKM_CONVERTED_NAME","TOTO_ROMANIA_PARTNER_ID","TOTO_PARTNER_ID","TOTO_PARTNER_ID_TEST","DANYBET_PARTNER_ID","GAME_QUERY_PARAMS_FROM_LOBBY_URL","concat","TOTO_NEW_GAMES_LOBBY_URL","TOTO_ROMANIA_URL","GAME_QUERY_PARAM_FOR_NEW_WINDOW","toLowerCase","gamesAppLinks","4","icon","beloteAppIcon","title","androidLink","iosLink","partnersList","process","separateHost","REQ_METHODS","POSITIONS","TOP_LEFT","BOTTOM_LEFT","CENTER_LEFT","BOTTOM_RIGHT","TOP_RIGHT","CENTER_RIGHT","CENTER","CLOSE_GAME_TABLE","UN_JOIN_FROM_GAME_TABLE","GAME_HISTORY","GET_GAME_TABLES","INITIAL_REQUEST","GET_TRANSLATIONS","REFRESH_GAME","GET_PLAYER_BALANCE","GET_REALITY_CHECK_INFO","GET_TOURNAMENT_KING_TEMPLATES","GET_TOURNAMENT_KING_DETAILS","GET_TOURNAMENT_KING_LEADER_BOARD","TOURNAMENT_GAME_HISTORY","TOURNAMENT_INFO","TOURNAMENT_INFO_PLAYERS","TOURNAMENT_INFO_PRIZE_DISTRIBUTION","TOURNAMENT_INFO_GAMES","UPCOMING_TOURNAMENTS","EXIT_FROM_TOURNAMENTS","GET_PLAYER_TOURNAMENTS","GET_PARTNER_NETWORKS_LIST","GET_DEMO_GAMES","PLAY_DEMO_GAME","AGREE_FOR_GAME_WITH_OPPONENT","UN_JOIN_OPPONENT_FROM_GAME_TABLE","GET_TOURNAMENTS","CREATE_GAME_TABLE","REBUY_FOR_TOURNAMENT","REGISTER_FOR_TOURNAMENT","GET_UPCOMING_TOURNAMENT_FOR_PARTNER","GAME_HISTORY_SLIDER","REPLAY_GAME_OFFER","TAKE_RISK","PLAY_TAKE_RISK","GET_EXTERNAL_PARTNER","CARDS_COMBINATION","GET_AUTO_JOIN_TABLES","CREATE_AUTO_JOIN_TABLES","GET_UNDER_CONSTRUCTION_DATA","CREATE_AND_SAVE_CONVENTION_TEMPLATE","EDIT_CONVENTION_TEMPLATE","DELETE_CONVENTION_TEMPLATE_REQUEST","GET_RAKE_RACE_TOURNAMENTS","GET_RAKE_RACE_LEADER_BOARD","GET_RAKE_RACE_LEADER_BOARD_PLAYER_INFO","GET_PARTNER_CONFIG","CREATE_CONVENTION_MAX_LENGTH","MINUTE_IN_MILISECONDS","CREATE_CONVENTION_NAME_FIELD_SIZE","UNAUTHORIZED_STATUS_CODE","ID","TO","COIN","COIN_LONG","_getBrowserSpecificPr","getBrowserSpecificProperties","HIDDEN","VISIBILITY_CHANGE","FROM","GAME_ID","SHOW_TO_GUEST","WITH_RATING","IDENTITY","CUBE","DOUBLE_SCORE_FOR_KAPUT","CHANGE_DICE","CHANGE_CARD","TOURNAMENTS","DEFAULT_TOURNAMENT_TYPE","CLASSIC_TOURNAMENT_TYPE","SIT_AND_GO_TOURNAMENT_TYPE","TOURNAMENT_TRUNCATE_TEXT_LENGTH","AUTO_JOIN_DEFAULT_GAME_TABLE_ID","COIN_RATE_PRECISION","PRIVATE_STATUS","CANCELED_GAME_ID","GAMES_COUNT_IN_GAME_LAUNCHER","OPEN_GAME_STATUS","CLOSE_GAME_STATUS","PLAY_GAME_STATUS","VIEW_GAME_STATUS","PRIMITIVE_TYPE","INITIAL_MAXIMUM_HEIGHT_BEFORE_DATA_LOADING","INITIAL_COUNT","LOADABLE_COUNT","INITIAL_COUNT_LEADERBOAED","NOTIFICATION_DURATION","ERROR_CODE","SUCCESS_CODE","INFO_CODE","GAME_OFFER_DURATION","GAME_DISABLE_MIN_SECONDS","REMOVE_GAME_ANIMATION_DURATION","HOUR_IN_MILLISECONDS","QUARTER_HOUR","DECLINED_DURATION","JACKPOT_AUTOSLIDE_TIME","JACKPOT_NOTIFICATION_DURATION","MY_STARTED_GAMES","MY_NOT_STARTED_GAMES","NOT_STARTED_GAMES","STARTED_GAMES","CLOSE_TOURNAMENT_REGISTRATION_TIME","MY_NOT_STARTED_ORDER_CASE","STARTED_ORDER_CASE","NOT_STARTED_ORDER_CASE","FINISHED_ORDER_CASE","STARTED_STATUS","REBUY_STATUS","REGISTER_STATUS","SOON_STATUS","TOURNAMENT_PRIVATE_STATUS","FINISHED_STATUS","CANCELED_STATUS","T_KING_IN_PROGRESS_STATUS","T_KING_CANCELED_STATUS","T_KING_SOON_STATUS","T_KING_FINISHED_STATUS","BACKGAMMON_KIND_ID","BELOTE_KIND_ID","NEW_BELOTE_KIND_ID","PASOOR_KIND_ID","HOKM_KIND_ID","FAV_CONV_ACTIONS","EDIT","SELECT","CREATE","GAME_KIND_TITLE","GAME_KIND_TITLE_ID","GAME_TYPE_TITLE","GAME_TYPE_TITLE_ID","TOUR_PARTICIPATION_TYPE_ID","GAME_DATA_CHANGES_ITEMS_QUANTITY_ID","TOURNAMENT_TYPE_TITLE_ID","CANCELED_ON_A_TECHNICALITY","CANCELED_DUE_TO_LACK_OF_OPPONENT_RESPONSE","ENGLISH","LANG_ARR","RAKE_RACE_NOT_STARTED","RAKE_RACE_IN_PROGRESS","RAKE_RACE_FINISHED","RAKE_RACE_CANCELED","LOCAL_IP","getLocalIp","then","ip","STATUS_INFO","1","text","endPoint","2","3","5","GAME_HALL_GAMES_ARRAYS_NAMES","ICON_NAMES","GAME_LAUNCHER_ICIN_NAMES","API_ENDPOINTS","cardsCombination","method","path","getExternalPartner","identity","initialRequest","getTextResources","getGameTables","getPartnerNetworksList","gameHistory","tournamentGameHistory","tournamentInfo","tournamentInfoPlayers","tournamentInfoPrizeDistribution","tournamentInfoGames","getTournamentKingTemplates","getTournamentKingDetails","getTournamentKingLeaderBoard","sitAtGameTable","upcomingTournaments","getPlayerTournaments","exitFromTournament","registerForTournament","unjoinOpponentFromGameTable","getPlayerBalance","getClientRealityCheckInfo","getTournaments","agreeForGameWithOpponent","refreshGame","createGameTable","watchGame","rebuyForTournament","getUpcomingTournamentForPartner","gameHistorySlider","replayGameOffer","takeRisk","playTakeRisk","getAutoJoinTables","createOrJoinToAutoJoinTable","getUnderConstructionData","createConventionTemplate","editConventionTemplate","deleteConventionsTemplate","getRakeRaceTournaments","getRakeRaceLeaderBoard","getCurrentPlayerInfoInRakeRace","disableIntroduction","ROUTES","AUTOJOIN","HOME","GAMES","GAME_HALL","HISTORY","HISTORY_GAMES","HISTORY_TOURNAMENTS_MOBILE","TOURNAMENTS_HALL","TOURNAMENTS_TYPES_MOBILE","TOURNAMENTS_HALL_TYPE","MASTERBOARD","TOURNAMENT_KING","TOURNAMENT_RAKE_RACE","TOURNAMENTS_HISTORY","GAME_HALL_DESKTOP","GAME_HALL_MOBILE","GAME_HALL_TYPES_MOBILE","GAME_TYPES_MOBILE","GAME_HALL_HISTORY","MAINTENANCE","SUPER_BELOTE","DEMO_GAMES_DESKTOP","DEMO_GAMES_MOBILE","PARTIAL_ROUTE_PATHS","GAME_TYPES","GAME_HALL_GAME","TOURNAMENT_STANDARD","TOURNAMENT_SIT_AND_GO","GAME_ID_INDEXES_OF_PATHNAME","_GAME_ID_INDEXES_OF_P","_defineProperty","META_TITLES","_META_TITLES","realityCheckClockImg","realityCheckClock","GAMES_LIST_RESOURCES","backgammon","image","imageBackgammon","backgammonnew","toto21","image21","dominoes","imageDomino","domino","belote","imageBelote","blot","pasoor","imagePasoor","joker","imageJoker","hokm","imageHokm","chingachoong","imageChingachoong","minesweeper","imageMinesweeper","penalty","imagePenalty","poker","imagePoker","hokm2","imageHokm2","pasur","imagePasoor2","hexagon","imageHexagon","types","33","imageHexagon37","34","imageHexagon43","35","imageHexagon61","default","underConstruction","imageUnderConstruction","TOURNAMENT_LIST_RESOURCES","Tournament","ImageTournament","NO_MOBILE_HOME_BUTTON_PARTNER_IDS","isAlbatrosPartner","some","id","desktopSliderData","en","fa","includes","ro","hy","ru","mobileSliderData","bannerImageUrls","enTotoBaronDesktop","enTotoBlotDesktop","enTotoDominoDesktop","enTotoHexagonDesktop","enTotoNardiDesktop","enTotoToto11Desktop","hyTotoBaronDesktop","hyTotoBlotDesktop","hyTotoDominoDesktop","hyTotoHexagonDesktop","hyTotoNardiDesktop","hyTotoToto11Desktop","ruTotoBaronDesktop","ruTotoBlotDesktop","ruTotoDominoDesktop","ruTotoHexagonDesktop","ruTotoNardiDesktop","ruTotoToto11Desktop","enTotoBaronMobile","enTotoBlotMobile","enTotoDominoMobile","enTotoHexagonMobile","enTotoNardiMobile","enTotoToto11Mobile","hyTotoBaronMobile","hyTotoBlotMobile","hyTotoDominoMobile","hyTotoHexagonMobile","hyTotoNardiMobile","hyTotoToto11Mobile","ruTotoBaronMobile","ruTotoBlotMobile","ruTotoDominoMobile","ruTotoHexagonMobile","ruTotoNardiMobile","ruTotoToto11Mobile","enBannerDesktop","enBannerMobile","enAlbatrosBannerDesktop","enAlbatrosBannerDesktop1","enAlbatrosBannerDesktop2","enAutojoinBannerDesktop","enAutojoinBannerDesktop1","enAutojoinBannerDesktop2","enAutojoinBannerDesktop3","enAlbatrosBannerMobile","enAlbatrosBannerMobile1","enAlbatrosBannerMobile2","enNetbetBannerDesktop","enNetbetBannerMobile","enCannonbetBannerDesktop","enCannonbetBannerMobile","enGeegeelBannerDesktop","enGeegeelBannerMobile","beloteBanner","chingachoongBanner","penaltyBanner","pasoorBanner","pasurBanner","dominoesBanner","dominoBanner","backgammonBanner","backgammonnewBanner","hokmBanner","hokm2Banner","toto21Banner","jokerBanner","minesweeperBanner","masterboardImages","Tierce","ImageTierce","Fifty","Image50","Hundred","Image100","FourNines","Image4x9","FourTens","Image4x10","FourAces","Image4xA","FourJacks","Image4xJ","FourKings","Image4xK","FourDames","Image4xQ","FILTERS_NAME","NETWORKS","SELECTED_NETWORK_IDS","SELECTED_GAME_TYPES_IDES","SELECTED_SCORES","SELECTED_GAME_KIND_IDS","SELECTED_MOVE_TIMES","SELECTED_EXTRA_TIMES","SELECTED_CONVENTIONS","MIN_STAKE","MAX_STAKE","ORDER_BY_DATE","ORDER_BY_STAKE","langObjForMoment","gameKindIdsWithPortraitView","gameKindIdsWithNewFullScreen","gameKindIdsWithOnlyPortraitView","INCOGNITO_POPUP_DATA","chrome","step0","imageChromeStep1","step1","imageChromeStep2","step2","imageChromeStep3","step3","imageChromeStep4","step4","imageChromeStep5","safari","imageSafariStep1","imageSafariStep2","imageSafariStep3","imageSafariStep4","imageSafariStep5","badgeTypes","New","currencySelected","BROWSER_NAME","getBrowserName","GAME_KIND_IDS","HEXAGON_ID","VALIDATION_COOKIE_NAME","IS_PWA_APP","navigator","userAgent","LOGIN","ADD_GAME","SET_GAMES","SET_DEMO_GAMES","RESET_GAMES","UPDATE_GAME","REMOVE_GAME","MERGE_GAMES","DISABLE_GAME","ENABLE_GAME","SET_GAMES_COUNT","SET_IS_COIN","SET_BALANCE","SET_FILTERS","SET_All_FILTERS","SET_APP_DATA","SET_NETWORKS","RESET_FILTER","TOGGLE_MULTI_VIEW","RESET_ALL_FILTERS","KEEP_ONLY_TYPE_IDS","ENABLE_FILTERS","DISABLE_FILTERS","TOGGLE_UNDER_CONSTRUCTION","ADD_UNDER_CONSTRUCTION_INFO","REMOVE_UNDER_CONSTRUCTION_INFO","ADD_ACTIVE_GAME_INTO_LAUNCHER","REPLACE_ACTIVE_GAME_INTO_LAUNCHER","RESET_SECONDARY_FILTERS","REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES","UPDATE_LAUNCHER_GAME","REMOVE_LAUNCHER_GAME","REMOVE_ALL_LAUNCHER_GAMES","REMOVE_ALL_LAUNCHER_ACTIVE_GAMES","ADD_INTO_REQUESTED_GAMES","REMOVE_FROM_REQUESTED_GAMES","ADD_LAUNCHER_GAME","SET_LAUNCHER_GAMES","MERGE_LAUNCHER_GAMES","SET_MY_STARTED_GAMES_URLS","MAKE_OWNER_GAME_TABLE_FREE","SET_TOURNAMENTS","SET_LOADER_IN_TOURNAMENTS_LIST","RESET_ALL_TOURNAMENTS_DATA","MERGE_TOURNAMENTS","ADD_TOURNAMENT","REMOVE_TOURNAMENT","TOGGLE_DISABLE_TOURNAMENT","UPDATE_TOURNAMENT","UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT","SET_SELECTED_TOURNAMENT_INFO","SET_SELECTED_TOURNAMENT_PRIZES","SET_CUSTOM_TOURNAMENTS","UPDATE_CUSTOM_TOURNAMENTS","DISABLE__CUSTOM_TOURNAMENT_BUTTON","SET_CUSTOM_TOURNAMENTS_TYPE","SET_TOURNAMENT_INFO","SET_SELECTED_TOURNAMENT_GENERAL_INFO","RESET_TOURNAMENT_INFO","SET_TOURNAMENT_INFO_ID","SET_TOURNAMENT_GAMES","REMOVE_TOURNAMENT_ALL_GAMES","ADD_TOURNAMENT_GAMES","REMOVE_TOURNAMENT_GAME","CHANGE_TOURNAMENT_GAME_SCORE","UPDATE_TOURNAMENT_PLAYERS_QUANTITY","SET_TOURNAMENT_INFO_PLAYERS","UPDATE_TOURNAMENT_INFO_STATUS","UPDATE_CURRENT_PAGE","DISABLE_BTN_WHILE_WS_RECONNECTING","ACTIVE_POPUP","UPDATE_JACKPOT_DATA","REPLACE_JACKPOT_DATA_ITEM","SET_CURRENT_GAME_KIND","ADD_CONVENTIONS_TEMPLATES","EDIT_CONVENTIONS_TEMPLATE","DELETE_CONVENTIONS_TEMPLATE","SELECT_CONVENTION_TEMPLATE","SET_GAME_HISTORY","OPEN_POPUP","CLOSE_POPUP","SET_TOURNAMENT_HISTORY","MASTER_BOARD_SELECTED_RANGE_ID","MASTER_BOARD_RANGES","MASTER_BOARD_PLAYER_WON_FOR_ROW","MASTER_BOARD_TOTAL_AMOUNT","MASTER_BOARD_RANGE_ROWS","TOURNAMENT_KING_LEADER_BOARD","UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS","SELECTED_TOURNAMENT_KING_ID","CANCEL_SELECTED_TOURNAMENT_KING","MERGE_LEADER_BOARD_DATA","TOURNAMENT_KING_CURRENT_PLAYER","TOURNAMENT_KING_DETAILS","UPDATE_TOURNAMENT_KING_CURRENT_PLAYER","TOURNAMENT_KING_TEMPLATES_DATA","UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM","REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM","SET_AUTO_JOIN_TABLES_DATA","SET_AUTO_JOIN_FROM_TO","SET_AUTO_JOIN_DATA_LOADING","ADD_AUTO_JOIN_GAME","UPDATE_AUTO_JOIN_GAMES","REMOVE_AUTO_JOIN_GAME","ADD_MORE_AUTO_JOIN_GAMES","RESET_FROM_TO_AUTO_JOIN","SET_AUTO_JOIN_CONNECTION_IS_LOW","SET_RAKE_RACE_TOURNAMENTS","SET_RAKE_RACE_TOURNAMENTS_DETAILS","SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID","RESET_RAKE_RACE_STATE","CANCEL_RAKE_RACE","FINISH_RAKE_RACE","START_RAKE_RACE","SET_RAKE_RACE_LEADER_BOARD","RESET_RAKE_RACE_LEADER_BOARD","SET_RAKE_RACE_LEADER_BOARD_LOADING","SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA","favIcons","totoFavicon","cannonbetFavicon","Arianbet","Marcbet","Novinbet","winsport","Irbet365","Onexfa","Takbet","Betfa","Irtoto","Manotobet","cyrusbet","maxbet","ibet","betzan","bia2bet","parsgoal","royalbet","betchanel","kingbet","betcloob","violetbet","igoal90","i90API","defaultFavicon","handleNetworksData","networksData","isAutoJoin","handledNetworksData","ShowDemo","Networks","PossibleGamePoints","PossibleMoveTimes","PossibleExtraTimes","PossibleConventions","PossibleGameTypes","PossibleQuickFilters","PossibleGameKinds","ConventionDependencies","i","length","network","ConventionsTemplates","handleConventionsTemplatesData","getConventionsNames","GameTypeConfigurations","Id","showDemo","networks","possibleGamePoints","possibleMoveTimes","possibleExtraTimes","possibleConventions","possibleConventionsNames","Conventions","possibleGameTypes","possibleQuickFilters","possibleGameKinds","conventionDependencies","conventionsTemplates","currentGameType","onlyCurrentTypeTemplates","push","filter","item","GameTypeId","handleUnderConstructionData","data","underConstructionData","underConstructionSchedule","GameTypeIdles","Model","forEach","updateJackpot","currentData","newData","updatedData","_loop","_objectSpread","find","itmInner","replaceJackpotItem","jackpots","newJackpotItem","indexOfReplacingItem","jackpotItems","_toConsumableArray","JackpotTemplateId","getReqBodyFilters","reqBody","filtersData","selectedNetworkIds","selectedGameTypesIds","selectedScores","selectedMoveTimes","selectedExtraTimes","selectedConventions","minStake","maxStake","conventions","conventionsFilter","gameTypes","gamePoints","moveTimes","extraTimes","diceChangeForGame","game","gameKindId","Number","isInteger","GameKindId","pathname","window","location","slice","indexOf","GameDataChangeParameters","ItemsQuantity","addDiceChangeToConventions","GameTables","isValidNumber","number","maxValue","precision","isCoin","store","getState","appData","isNaN","getAllGamesFromReduxStore","gamesObj","PartnersAllGameKinds","Name","getGameTitleFromPathName","pathName","gameIdIndex","Object","keys","splitGameIdIndex","split","isPasoor","isHokm","isPasoorOrIsHokm","gameTitle","charAt","toUpperCase","setDocTitleByRoute","translateDocumentTitle","updateDocumentLanguage","document","documentElement","getGames","gameId","fromRowNumber","pageItemsCount","dataHandler","typeId","arguments","undefined","copiedFilters","body","dispatch","disableFilters","sendRequest","enableFilters","type","selectedGameKindIds","requestBody","gameKindsIds","Tournaments","len","currentTour","j","lenJ","startDateTime","Date","getTime","StartDateInMilliseconds","handleTournamentData","collectGameHallFilters","nextProps","prevState","scores","scoresByType","moveTimesByType","extraTimesByType","conventionsByType","currentNetworkId","map","collectFiltersData","joinArrays","apply","newGameTypes","setActiveGamesInterval","cb","intervalId","setInterval","clearInterval","reOpenNotFinishedGames","notFinishedGames","actions","_loop2","_notFinishedGames$i","GameTableId","GameId","NetworkId","GameBet","GameBetInCoin","Win","WinInCoin","MaxStakeDoubling","OpponentNickname","TournamentId","TournamentName","CurrentTourOrder","WithGameDataChange","popupId","popupName","notificationComponent","POPUP_NAMES","REOPEN_ACTIVE_TOURNAMENT_GAME","React","createElement","TournamentStartedNotification","onCloseHandler","REOPEN_ACTIVE_GAME","ActiveGameNotification","showNotification","autoClose","containerId","openPopup","batchActions","currentConfig","conventionsNames","Convention","ConventionsNames","isConventionDisabled","key","currentValue","score","cd","excludedScores","ExcludeScores","JSON","parse","LinkedConvention","IsInverseLink","getDataChangeConfigOptions","itemsQuantityOptionId","ChangeItemOptions","t","allScoresByGameType","allMoveTimesByGameType","allExtraTimesByGameType","allConventionsByGameType","GamePoints","MoveTimes","ExtraTimes","collectQuickFiltersData","gameTypesArray","gameScoresArray","gameConventionsArray","GameTypes","GameScores","GameConventions","addGame","games","_objectSpread2","currentArrName","Status","currentArr","gamesTotalCount","updateGame","changedGame","NextStatus","PrevStatus","FirstPlayerScore","SecondPlayerScore","gamesArrName","gamesArr","secondGamesArrName","secondGamesArr","scoreChange","gameTableIsFound","updatedArraysObj","fromArray","toArray","nextStatus","assign","disabled","unshift","splice","from","to","moveGame","currentArrIndex","tmpArr","updatedGame","opponentNickname","OpponentJoinCountdownSpent","enableDisableGame","index","findIndex","updatedGames","removeGame","startAnimation","_objectSpread5","breakNow","currentGamesArrName","currentGames","gamesArray","elIndex","removed","findDisabledGames","gameClickHandler","disableGamesUpdater","isTournamentGame","openNewGameWindow","getRefreshGameReqBody","openGameAfterWindowLoaded","openGame","finally","invoke","CONFIRM_PARTICIPATION","didPassFiltration","MoveTime","ExtraTime","isFiltered","closePopupAndRemoveGameFromLauncher","gameTableId","startedGamesUrls","closePopup","windowsRefs","getUrlParam","toString","removeGameFromLauncher","IsGameTable","IsCoin","openHistoryGame","callback","gameLauncherData","currentPageInfo","pageInfo","loaded","toggle","popupClose","setUrl","_data$Model","Url","currency","PlayerCurrencyId","hasOwnProperty","setNewWindowGameUrl","addGameIntoLauncher","toggleMultiView","close","doesGameExistInLauncher","isQuickFiltersEmpty","quickFilters","emptyCount","hidden","visibilityChange","msHidden","webkitHidden","removeDuplicatedGames","newGameTables","currentGameTables","filteredGameTables","_loop3","currentGame","loadMoreGameHallGames","_ref","state","gameHallData","myStartedGames","myNotStartedGames","notStartedGames","startedGames","allGames","_store$getState$gameH2","filterGames","mergeGameHallGames","setGames","_store$getState$gameH","stringify","isGameHallResultTheSame","setGameHallGames","setGamesCount","GameTablesTotalCount","loadMoreTournaments","_ref2","_store$getState2","tournaments","tournamentHallData","_concatAllTournaments","concatAllTournamentsLists","tournamentsTotalCount","allTournaments","mergeTournaments","startedTournaments","finishedTournaments","notStartedTournaments","myNotStartedTournaments","getTournamentInfo","status","Rebuy","OrderCase","PlayerRegisteredByPayment","currentStatus","buttonText","iconName","isBtnDisabled","btnClassColorName","isViewButton","handlerTournamentData","tournament","Prize","Fee","PrizeInCoin","FeeInCoin","RebuyInCoin","_getTournamentInfo","_getTournamentCurrenc","getTournamentCurrencyData","prize","fee","rebuy","tournamentAmount","Currency","getJackpotFriendlyArray","inputNumber","tempArr","numberWithThousandSeparator","resultArray","isFloat","separator","val","parseInt","floated","showErrorNotification","error","messageEndPoint","randomId","Math","random","InfoNotification","message","removeTournament","currentTournament","tournamentId","addTournament","added","newTournamentsArr","sort","a","b","updateTournament","tournamentInfoId","PlayerPaymentSum","Rate","DisplayedPrecision","TourNumber","PreviusCase","NewCase","tournamentsArrays","values","nextArray","previousArray","found","findEl","prevArr","currentTorunament","updateCurrentTournamentInfo","isTournamentInfo","convertCoinToCurrency","addOrRemoveTournamentPlayer","updatedPlayerInfo","allPlayers","currentPlayerId","InTournament","PlayerId","findMePlayerAndSort","disableCustomTournamentBtnClick","_ref3","updatedTounaments","milliseconds","Disabled","postLoginMessage","console","log","parent","postMessage","getGameTitle","gameTypeId","gameKindTitle","getIdAndName","name","timers","convertSecondsToMinutes","getInlineStyle","value","frames","getElementsByTagName","iframe","src","parentElement","_getElementsPosition","getElementsPosition","x","y","width","height","childNodes","classList","add","left","top","element","position","rect","getBoundingClientRect","right","bottom","toFixed","getIdentityReqBody","apiIdsObject","refreshToken","details","client_id","client_secret","grant_type","scope","apiid","ExternalPartnerID","apidomainid","ApiDomainId","refresh_token","formBody","detailsArr","currentKey","encodedKey","encodeURIComponent","encodedValue","join","doRevanche","agree","isRevanche","LocalIP","Agree","Error","openLuckySpin","openLuckySpinPopup","luckySpinType","luckySpin","LUCKY_SPIN","playLuckySpin","LocalIp","closeFinishedGameWindow","gameWindow","sendPostMsgToGameWindow","gameUrl","isHistory","isNotWaiting","isTournament","isDemoGame","_store$getState$appDa","IntGameKindId","url","origin","loadAutoJoinLobby","gamewinRef","open","taskQueue","windowReplaceUrl","prevGameTableId","_window5","addEventListenersOnOpenedGame","eventMethod","addEventListener","eventer","e","_store$getState3","Texts","currentNetwork","_ref4","CurrencyRateForPlayer","_e$data","demoGameUrl","Token","ReplaceGameUrl","_window6","removeOpenedWindowRef","getRealityCheckInfo","RepetitionPeriodInMinutes","setTimeout","REALITY_CHECK","createDoubleStakeArr","stake","arr","currentStakeObj","isRadioButton","getTournamentKingLeaderBoardData","TournamentKingId","initial","FromRowNumber","PageItemsCount","actionCreatorForTournamentKingLeaderBoardData","loadMoreTournamentKingLeaderBoardData","_store$getState4$tour","tournamentKingData","leaderBoardData","selectedTournamentKingId","TournamentKingAwards","PlayersTotalCount","loadMoreAutoJoinGames","_store$getState5$auto","autoJoinData","reduce","setAutoJoinFromTo","updateTournamentKingItemStatusAndLeftTime","itemInfo","dataArray","TournamentKingTemplateStatus","calcLeftTimeForTournamentKingItem","newStatus","dateNow","finishInMs","FinishDate","parseFloat","startInMs","StartDate","leftTimeInMillisecondsForCurrentStatus","removeTournamentKingItem","updateTKLeaderBoardsPlayerPoints","playerInfo","PlayerNickName","Point","awards","change","createGameKindsArray","gameKinds","gameKindsAndTypes","gameKindsArr","gameKind","gameName","conventionKeysForPopups","conventionKeys","addMePlayer","array","currentPlayer","selectedTournamentPlayers","playerId","WinsCount","el","order","PlayerIsMe","inTheGamePlayers","player","finishedPlayers","getBannerImageUrl","language","URL","searchParams","get","banners","_step","sliderImgs","sliderData","_iterator","_createForOfIteratorHelper","s","n","done","err","f","getTournamentInfoFromAllList","debounce","func","wait","timeout","immediate","context","this","args","later","callNow","clearTimeout","getCurrentPageData","updateCurrentPage","toggleALLButtonsDisabledState","toggleDisableBtnWhileWSReconnecting","addNewConventionTemplate","SelectedEmptyTemplateId","template","allNetworks","currentNetworkTemplates","selectedTemplateIndex","handleDataStructure","action","ChangeItem","ChangeItemCount","BetInCoin","_GameDataChangeParame","ChangesQuantity","_state$appData","_ref5","Bet","removeConventionTemplate","currentNetworksTemplates","editConventionsTemplate","networkId","conventionsTemplateId","conventionsTemplateStructureChange","betInCoin","conventionsObj","gameDataChangeParameters","maxStakeDoubling","switchPrizePlace","PrizePlace","sliceData","dataToShow","sendIframeSizeToCasWeb","clearUnJoinTimeOutId","unJoinTimeOutId","sessionStorage","getItem","removeItem","capitalizeFirstLetter","str","changeFaviconApi","makeAPIGetRequest","appConfigUrlKey","query","partnerSiteId","faviconUrl","appUrl","getUrlDynamic","href","changeFavIcon","changeFavIconByPartnerId","host","shift","isDynamicUrl","ADF1A1C772683CB8651112A304E9F62B","abeb9ffaa17c768940d3d544e715fb0f","dae6e4a5a713d9a4cd29faa9f17121f8","c7c5cdc302f2fa082c5c24ad79b4365b","d443f10e0b169b2f4df0424a0897f4c2","d95f9c7dcfda891db29e56dde6006999","F00751F8EB990909336333A7ED1D18D9","B389ACDFA6C241CBFB88CC5F85FC3F4A","C66179972246FA5B1D2F79DB9129920B","EFBE1BD8FF61035501DCCC30CF328163","C66FD5E2EC38E9542A9FA72B085770AC","B9F2A71CCF96DDBAB8F335A49C356DA0","link","querySelector","rel","appendChild","mobileHomeButtonAction","redirectToTotoLobby","homeBtnHandler","initialState","ShowWithCoin","isLobbyV2","JackpotsDataJson","currentGameKind","IsTournamentAllowed","appReady","loggedIn","balance","appStatusInfo","appUpdater","disableBtnWhileWSReconnecting","selectedConventionTemplate","playerWonData","selectedRangeId","ranges","rangeRows","totalAmount","disabledGames","loaderInTournaments","noInfo","isSelected","selectedTournamentGeneralInfo","selectedTournamentGames","selectedTournamentPrizes","disabledTournaments","orderByDate","isMultiViewVisible","requestedGames","popups","activePopupKey","popupState","payload","popupKey","updated","templatesData","currentPlayerData","selectedTournamentIsCanceled","isLoading","connectionIsLow","setAutoJoinTableData","count","setAutoJoinDataLoading","bool","addAutoJoinGame","gameTables","updateAutoJoinGames","StatusBefore","removeAutoJoinGame","addAutoJoinMoreGames","updatedGameTables","tournamentDetails","leaderBoard","setRakeRaceTournamentsData","setRakeRaceTournamentsDetailsData","setRakeRaceTournamentsDetailsDataById","cancelRakeRaceTournament","startRakeRaceTournament","finishRakeRaceTournament","setRakeRaceLeaderBoardData","setRakeRaceLoaderBoardLoading","resetRakeRaceLeaderBoardData","setRakeRaceLeaderBoardPlayerInfo","CurrentPlayerInTournament","combineReducers","currentSchedule","newUnderConstSchedule","IsUnderConstruction","filtersDisabled","_payload$Games","Games","oldGameId","TournamentTables","TournamentsTotalCount","_updateTournament","_removeTournament","newDisabledTournaments","g","ParticipantsQuantity","currentGamesCount","CurrentGamesCount","historyData","isPrimitiveType","tournamentHistoryData","customTournamentsData","masterBoardData","_action$payload$","tournamentRakeRace","form","persistConfig","storage","whitelist","pReducer","persistReducer","rootReducer","createStore","enableBatching","composeWithDevTools","applyMiddleware","thunk","persistor","persistStore","login","setAppData","setNetworks","setIsCoin","resetGameHallGames","addGameTable","updateGameTable","removeGameTable","setLauncherGames","addLauncherGame","removeLauncherGame","removeAllLauncherGames","removeAllLauncherActiveGames","addIntoRequestedGames","removeFromRequestedGames","updateLauncherGame","mergeLauncherGames","replaceGameInLauncher","setFilters","setAllSelectedFilters","resetFilter","resetAllFilters","resetSecondayFilters","keepOnlyTypeIds","setTournaments","setLoaderInTournamentsList","resetAllTournamentsData","addTournamentToTable","updateTournamentTable","removeTournamentFromTable","updateTournamentTablesCount","toggleDisableTournament","setTournamentInfoId","resetTournamentInfo","setCustomTournaments","disableCustomTournamentBtn","setCustomTournamentsType","activePopup","setTournamentGames","removeTournamentAllGames","addTournamentGames","removeTournamentGame","changeTournamentGameScore","setTournamentInfo","setSelectedTournamentGeneralInfo","setSelectedTournamentPrizes","updateTournamentPlayersQuantity","setTournamentPlayers","updateTournamentGeneralInfoStatus","updateJackpotData","replaceItemInJackpotData","setCurrentGameKind","setMBSelectedRangeId","setMBPlayerWonForRow","setMBTotalAmount","setMBRangeRows","updateTournamentKingsLeaderBoardIPlayerPoint","cancelSelectedTournamentKing","setTKCurrentPlayer","setTKDetails","updateTKCurrentPlayer","updateTournamentKingDataItem","removeTournamentKingDataItem","resetFromToAutoJoin","setAutJoinConnectionIsLow","disableGameHallGame","enableGameHallGame","removeUnderConstructionInfo","addUnderConstructionInfo","toggleUnderConstruction","setSelectedConventionTemplate","deleteCurrentConventionTemplate","actionCreatorToDeleteCurrentConventionTemplate","res","actionCreatorForConfirmPopup","localIP","WAIT_FOR_OPPONENT","GAME_OFFER_DECLINED","mergeTKLeaderBoardData","actionCreatorForMasterboardData","CardsCombination","cardsCombinationRows","playersWonForRow","totalBonus","CardsCombinationBetRanges","rangeArray","range","From","FromInCurrency","To","ToInCurrency","Amount","AmountInCurrency","PlayerWon","CardsCombinationCaseRows","TotalSumAmount","TotalSumAmountInCurrency","row","coin","fromInCurrency","toInCurrency","actionCreatorForTournamentInfoPlayers","response","players","actionCreatorForTournamentHistory","actionCreatorForTournamentInfoPrizes","actionCreatorForTournamentGeneralInfo","registrationDateString","RegistrationInMilliseconds","moment","now","toDate","format","actionCreatorForCurrentToken","currentToken","access_token","actionCreatorToGetAutoJoinTableData","actionCreatorToAddMoreAutoJoinGames","actionCreatorForPlayerBalance","actionCreatorToCreateGameTable","CREATE_NEW_GAME","actionCreatorToCreateGameTemplate","actionCreatorToEditGameTemplate","actionCreatorForTournamentInfoGames","currentUserIndex","FirstPlayerId","SecondPlayerId","FirstPlayerIsMe","SecondPlayerIsMe","currentUser","actionCreatorForGameHistory","setDataLoaded","actionCreatorToGetPartnerNetworksList","setIsLoading","setNetworksData","getDemoGames","setGamesLoaded","actionCreatorToGetPartnerNetworksListForAutojoin","setIsLoaded","startSignalR","actionCreatorToGetUpcomingTournamentForPartner","actionCreatorForTournamentKingTemplates","selectTournament","actionCreatorToUpdateTournamentTableAndToggleDisableTournament","tournamentData","Result","actionCreatorGameLauncherForStatusInfo","setWaitingTime","actionCreatorForTournamentKingDetails","TournamentKingCurrentPlayer","actionCreatorForUpcomingOrPlayersTournaments","tournamentsType","setDisabled","setRakeRaceTournamentsDetailsById","round","setRakeRaceTournaments","resetRakeRaceState","cancelRakeRace","finishRakeRace","startRakeRace","resetRakeRaceLeaderBoard","getRakeRaceLeaderBoardPlayerInfo","defaultTexts","DefaultErrorMessage","DuplicateName","GameCountIsFilled","GameDataChangesItemsQuantityid0","GameDataChangesItemsQuantityid1","GameDataChangesItemsQuantityid2","GameDataChangesItemsQuantityid3","GameKindTitleid1","GameKindTitleid2","GameKindTitleid3","GameKindTitleid4","GameKindTitleid5","GameKindTitleid6","GameKindTitleid7","GameKindTitleid8","GameKindTitleid9","GameKindTitleid10","GameKindTitleid11","GameKindTitleid12","GameKindTitleid13","GameKindTitleid14","GameKindTitleid15","GameKindTitleid16","GameKindTitleidPoker","GameTypeTitleid1","GameTypeTitleid2","GameTypeTitleid3","GameTypeTitleid4","GameTypeTitleid5","GameTypeTitleid6","GameTypeTitleid7","GameTypeTitleid8","GameTypeTitleid9","GameTypeTitleid10","GameTypeTitleid11","GameTypeTitleid12","GameTypeTitleid13","GameTypeTitleid14","GameTypeTitleid15","GameTypeTitleid16","GameTypeTitleid17","GameTypeTitleid18","GameTypeTitleid19","GameTypeTitleid20","GameTypeTitleid21","GameTypeTitleid22","GameTypeTitleid23","GameTypeTitleid24","GreaterMaxBet","LowBalance","LowBet","MaxTournamentQuantityExpired","PlayersCountExpired","RebuyNotAlowed","StakeGameValidation","TemplateNameValidation","TicketMinBet","TourParticipationTypeid1","TourParticipationTypeid2","TourParticipationTypeid3","TourParticipationTypeid4","TourParticipationTypeid5","TourParticipationTypeid6","TourParticipationTypeid7","TournamentStatusid1","TournamentStatusid2","TournamentStatusid3","TournamentStatusid4","TournamentStatusid5","TournamentStatusid6","TournamentStatusid7","TournamentStatusid8","TournamentStatusid9","TournamentTypeTitleid1","TournamentTypeTitleid2","TournamentTypeTitleid3","TournamentVerifyKYC","VerifyKYC","VerifyMobileNumber","betRangeValidation","conventionAll","conventionBeaver","conventionBlindCard","conventionBoy","conventionChangeCard","conventionChangeDice","conventionCube","conventionDoubleScoreForBoy","conventionDoubleScoreForKaput","conventionHiddenCards","conventionIncludeHeapPips","conventionIncognito","conventionJacobyRule","conventionKoks","conventionMultiplePair","conventionNameIsRequired","conventionNoBluff","conventionOnlyTierce","conventionShowToGuest","conventionWithQuanshSur","conventionWithRating","conventionWithSur","conventionWithoutCombination","conventionWithoutFourCards","id1Lose","id1Win","id2Lose","id2Win","id3Lose","id3Win","id4Lose","id5Lose","strAccept","strNewWin","strActiveGame","strActiveGame1","strActiveTables","strAll","strAllNetworks","strAmount","strAnd","strApply","strAttention","strAutoJoin","strBack","strBalance","strBetRanges","strBetSelection","strBiggestWin","strBusy","strBuyin","strCancel","strCancelGame","strCanceled","strGameCanceled","strCardChangePrice","strChangeCards","strChooseNetwork","strClassic","strClearSelection","strClose","strCloseGame","strCloseTable","strCoin","strCoinLong","strConfirm","strConfirmToCloseTheTable","strConfirmYourParticipation","strCongratulations","strContactSupportCenter","strContinue","strConventions","strCreate","strCreateConvention","strCreateGameTableError","strCreateNewGame","strCurrentScore","strDate","strDay","strDay1","strDays","strDecline","strDetails","strDiceChange","strDiceChangeNumber","strDistribution","strDoubleStake","strDownload","strDuration","strEndsIn","strEnter","strEnterAmount","strErrorBalanceNotSufficient","strErrorCount","strErrorDeposit","strErrorLogin","strErrorMaxBet","strErrorMessageForErrorPage","strErrorMinBet","strErrorNetworkTablesLimit","strErrorRegisterCount","strErrorStake","strErrorVerifyKYC","strExchange","strExit","strExtraBonus","strFactor","strFavoriteConventions","strFiltered","strFilters","strFinishDate","strFinished","strFreerollsOnly","strGame","strGameCancellation","strGameConventions","strGameID","strGameIsOver","strGameOffer","strGameScore","strGameTime","strGameType","strGames","strGamesAvailable","strGamesHistory","strGeneral","strGeneralInformation","strHall","strHands","strHistory","strHour","strHours","strHowToPlay","strHowToPlayIntro","strID","strIfYouLeaveYouWillLose","strInGame","strInactiveTable","strInactiveTableMessage","strIncognito","strInprocess","strInputStake","strItemChangeNumber","strItemChangeType1","strItemChangeType2","strJackpot","strJoin","strJoin1","strKing","strLastWin","strLatestResults","strLeaderboard","strLeave","strLeaveTheGame","strLogin","strLogout","strLuckySpin","strMaintenance","strMasterBoard","strMasterboardDetails","strMasterboardDetailsLevel","strMasterboardWin","strMasterboardWinTitle","strMax","strMaxStake","strMaxStakeDoubling","strMe","strMin","strMinBet","strMinStake","strMinimumPoints","strMinute","strMinutes","strMoney","strMyGame","strMyTournaments","strName","strNetwork","strNetworkMaintanance","strNetworks","strNew","strNewGame","strNo","strNoActiveTables","strNoGames","strNoGamesWouldYouCreateNewOne","strNoTournaments","strNoTrump","strNotBad","strNowPlaying","strOk","strOne","strOnlyOpenTables","strOnlyTierce","strOpen","strOpponentID","strOpponentNickName","strOwnerDeclinedYourRequest","strParticipants","strPassword","strPlace","strPlace_s","strPlaces","strPlay","strPlayDemo","strPlayAgain","strPlayNow","strPlayer","strPlayer1","strPlayer1ID","strPlayer2","strPlayer2ID","strPlayerId","strPlayerIsWaiting","strPlayers","strPlayersList","strPleaseVerifyKYC","strPointCapot","strPoints","strPopupCanceledTournament","strPopupGameCancellationText","strPopupGameOver","strPopupJackpotInfo","strPopupOnlyOneOption","strPopupOpponentDeclinedRevanche","strPopupOpponentWantToPlay","strPopupPleaseWaitForNextRound","strPopupReplayDeclinedText","strPopupReplayOfferText","strPopupRevancheDeclinedText","strPopupRematchDeclinedText","strPopupRevancheOffer","strPopupRevancheOfferQuestion","strPopupRevancheOfferText","strPopupSkipTour","strPopupTournamentCanceledText","strPopupTournamentGameOverWithVictoryText","strPopupTournamentTourSkippedText","strPopupVerifyKYCText","strPopupWaitForJoin","strPopupWaitingRevancheOrReplayAnswerText","strPopupWonJackpot","strPopupYouLostGame","strPopupYouWon","strPopupYouWonGame","strPopupYourOpponentWonGame","strPossibleWin","strPrice","strPrivate","strPrivateGame","strPrize","strPrizeAmount","strPrizeDistribution","strPrizeFund","strPrizeMaxPrize","strPrizePlace_s","strPrizePlaces","strProduct","strQuantity","strRakeRace","strRating","strRebuy","strRegistered","strRegistrated","strRegistration","strRegistrationDate","strReject","strRemaining","strRememberMe","strRepeat","strRepeatGameOfferForLoser","strReset","strRevanche","strRevancheOffer","strRevancheOrLuckySpinOfferForWinner","strRematchOrLuckySpinOfferForWinner","strRules","strSameWin","strSattelite","strSave","strScore","strScores","strSecond","strSecond1","strSeconds","strSelectConventions","strSelectGame","strSelectHandicap","strSelectNetwork","strSelected","strSettings","strSitAndGo","strSkillGames","strSlideToPlay","strSlideToPlayAltText","strSlowConnection","strSoClose","strSoon","strSpin","strStake","strStakeAmount","strStakeMaxStake","strStakeRange","strStakes","strStart","strStartDate","strStarted","strStarting","strStartsIn","strStatus","strStay","strStepTime","strTable","strTables","strTakeRiskBetMultiplied","strTakeRiskRandomFactorText","strTapToFullScreen","strTapToFullScreenAltText","strTechnicalIssues","strTicket","strTime","strTimeLeft","strTimers","strTotalBonus","strTotalWinners","strTour","strTournament","strTournamentHall","strTournamentHistory","strTournamentID","strTournamentInformation","strTournamentIsStarting","strTournamentName","strTournamentStart","strTournamentStarted","strTournamentType","strTournamentTypes","strTournaments","strTransferToAccount","strTutorials","strTwo","strType","strUnderconstructionInfo","strUnfortunatelyYouLost","strUpcomingTournaments","strUser","strUser1","strUsernameEmailMobile","strVerifyKyc","strView","strWait","strWaitForOpponent","strWaiting","strWaitingForInternetConnection","strWantToLogOut","strWeWillBeBackSoon","strWin","strWinner","strWins","strWithout4Cards","strWithoutCombinations","strYes","strYouAreLeftTournament","strYouAreRegistred","strYouLost","strYouWon","strYourOpponentWantsToRepeat","strYourOpponentWantsToRevanche","strYourScore","strZeroAvailableGames","strPopupPrev","strPopupFinish","strPopupFinishIntro","strPopupNext","strPopupNextIntro","strRematchOffer","strOpponentWantPlayAgain","strRematchWait","strRematch","strYouWin","strYouLose","strDontShowAgain","strHexagonGameName","strBoards","strThemes","strTheme1","strTheme2","strHexIntroStep1Txt","strHexIntroStep2Txt","strHexIntroStep3Txt","strHexIntroStep4Txt","getValidationCookie","_document$cookie$spli","cookie","startsWith","identityUrl","identityToken","endPointData","headers","PartnerSiteId","EntryType","Authorization","fetch","UNAUTHORIZED","json","Promise","resolve","catch","getUrlParams","paramsArr","urlParams","isIOS","test","detect","isSafari","_getUrlParams","param","urlString","seconds","minuteLabel","secondLabel","convertedMinutes","trunc","convertedSeconds","minutePart","secondPart","jointArray","Array","prototype","call","Set","fromUtcToLocal","time","utc","handleScroll","winScroll","scrollTop","scrollHeight","clientHeight","floor","isBottomOfPage","amount","rate","resultAmount","convertCurrency","convertedVal","reject","RTCPeerConnection","mozRTCPeerConnection","webkitRTCPeerConnection","pc","ips","createDataChannel","createOffer","offer","setLocalDescription","onicecandidate","event","candidate","replace","removeLeadingZeroes","substring","separateCamelCase","removeStringSpaces","getMobileOperatingSystem","vendor","opera","MSStream","Button","_classNames","_classNames2","className","isSimple","imageTag","iconDirection","onClick","style","disable","ariaLabel","dataTooltip","onTouchStart","onTouchEnd","isToggled","classNames","btn","aria-label","data-tooltip","alt","defaultProps","memo","MAX_STAKE_DOUBLING","GAME_OFFER","JACKPOT_WIN","JACKPOT_INFO","CHOOSE_NETWORKS","CHOOSE_SCORE","CHOOSE_STAKE","CHOOSE_TIMERS","CHOOSE_CONVENTIONS","CHOOSE_CHANGE_ITEMS","SELECT_GAME_KIND","SELECT_GAME_TYPE","CONFIRM_PARTICIPATION_V3","SET_SELECTED_TOURNAMENT_GAME_KIND","SELECT_SCORE","CONVENTIONS","SELECT_TIMERS","STAKE","WIN","GAME_OVER_V1","GAME_OVER_V2","GAME_OVER_V3","TOURNAMENT_STARTED","TOURNAMENT_SKIPPED","TOURNAMENT_CANCELED","TOURNAMENT_GAME_INFO","REVANCHE_OFFER_V1","REVANCHE_OFFER_V2","REVANCHE_OFFER_V3","REVANCHE_PLEASE_WAIT_V1","REVANCHE_PLEASE_WAIT_V2","REVANCHE_PLEASE_WAIT_V3","REVANCHE_DECLINED_V1","REVANCHE_DECLINED_V2","REVANCHE_DECLINED_V3","MASTERBOARD_STAKE_RANGE","INTERNET_SPEED","COOKIES_INCOGNITO","INACTIVE_TABLE","CANCEL_GAME_ALBATROSS","RULES","LUCKY_SPIN_V3","HEXAGON_INTRO","GAME_OFFER_V3","GAME_CANCELED_V3","Loader","GSLoader","params","socketListener","connection","socket","connect","_useState","useState","_useState2","_slicedToArray","disablePlayBtn","setDisablePlayBtn","flatMap","ConventionsBlock","jackpotName","winnerPrizeInCoin","winnerPrize","winnerCurrencyId","JackpotInfoNotification","winnerNick","opponentNick","replacedText","amountInCurrency","addGameTableHandler","OwnerId","OwnerNickname","OwnerRating","OwnerCurrencyId","NetworkPartners","_state$appData$networ","updateGameTableHandler","OpponentRating","_store$getState","removeGameTableHandler","oldLobbyParam","_arguments","openedFinishedGame","gameOverHandler","finishStatusId","isWinner","takeRiskAllowed","isTournamentGameWinner","tourOrder","masterBoardWinAmount","masterBoardWinAmountInCurrency","popupType","popup","popupIdToClose","MasterboardWinNotification","makeOwnerGameTableBusyHandler","OpponentRaiting","setItem","GameOfferNotification","makeOwnerGameTableFreeHandler","startDemoGameHandler","DemoGameId","_Object$values","demoGameOverHandler","startGameHandler","isAutojoin","gameNetworkId","oldGameTableId","_window","closed","AutoJoinGameNotification","addTournamentHandler","PartnerIds","TournamentTypeId","updateTournamentHandler","_store$getState4","setRebuyAmountForPlayerHandler","RebuyAmount","removeTournamentHandler","_store$getState6","removeUpcomingTournamentHandler","addTournamentGamesHandler","_store$getState7","removeTournamentGameHandler","_store$getState8","showTournamentGameNotificationHandler","openTourSkipPopupHandler","tournamentName","openTournamentCanceledPopupHandler","gameScoreChangeHandler","gameWithChangedScores","openRevancheRequestPopupHandler","openRevancheDeclinePopupHandler","updateJackpotsDataHandler","_store$getState9$appD","jackpotsData","resultData","_ref6","BiggestWin","LastWin","MinBet","MinBetInCoin","TotalWinnersCount","openJackpotWinningPopupForWinnersHandler","newJackpotObj","JackpotWinNotification","openJackpotPopupForOthersHandler","amountInCoin","unusedParam","_store$getState10","_store$getState10$app","_ref7","cancelTournamentKingTemplateHandler","updateTournamentKingPlayersPointsHandler","tournamentObj","PromotionId","PlayerPointsModels","_store$getState$tourn","addAutoJoinGameHandler","updateAutoJoinTable","updatePlayersParticipationQuantityHandler","_store$getState11","_tournamentHallData$t","PlayersQuantity","PlayerInfo","updatedPlayersArr","GameTableClosedByGameOfferRejectHandler","preventGameTableCreationHandler","underConstructionHandler","endUnderConstructionHandler","currentDataGroups","connected","disconnected","start","callBack","pingInterval","fail","addSocketListeners","on","subscribeToDataGroups","dataGroups","dataToUnsubscribe","dataTosubscribe","qs","connectBeforeInvoke","DataGroups","accessToken","hubConnection","createHubProxy","reconnected","reconnecting","stop","useRouteParams","wholePath","matchPath","exact","strict","Tooltip","hasCaret","prev","next","success","danger","createUrl","arg","makeAPIRequest","options","requestURL","fetchOptions","children","tooltipDanger","tooltipSuccess","tooltipBottomRight","caret","getBalanceInfo","_state$appData$Model","getGameHallInfo","_state$appData2","_state$appData2$Model","_state$gameHallData","getGameHallFiltersData","_state$partnerFilters","_appData$networksData","getLauncherGames","_state$appData$Model2","getTournamentsHallInfo","_state$appData3","_state$appData3$Model","_state$tournamentHall","module","exports","audioElement","useRef","ref","preload","autoPlay","loop","offerSong","waitingMusic","current","pause","ToggleSwitch","props","isBalance","changeHandler","checked","firstNameValue","SecondNameValue","names","label","uniqueId","smartChecked","input","onChange","target","htmlFor","reopenActiveGame","disableBtn","setDisableBtn","endpoint","Balance","getBalance","useCallback","useEffect","timeOutId","RulesNav","activeTabId","setActiveTabId","activeRule","getElementById","scrollIntoView","inline","active","RulesContent","htmlContent","setHtmlContent","rulesContentEl","rulesUrl","htmlData","dangerouslySetInnerHTML","__html","ConnectionIcon","viewBox","d","fill","ConnectionIndicator","setConnectionIsLow","hasTooltip","clickHandler","timerId","mozConnection","webkitConnection","handleConnectionChange","downlink","startTime","endTime","imageAddr","download","Image","onload","speedMbps","downloadSize","showResults","toggled","initConnection","launchApp","doLogin","NotificationWrapper","desktop","mobile","NotificationContainer","MaintenanceNavbar","search","history","Fragment","goBack","NavLink","preventDefault","MobileTemplate","ShowRakeRace","GamesNavbar","DesktopTemplate","GameTypesNavbar","GameHallNavbar","currentGameObj","isMasterBoard","ParticipateToMasterBoard","currentUnderConstructionSchedule","ShowTournamentKing","lazy","AutojoinGameHallNavbar","Suspense","fallback","MobileHistoryNavbar","withRouter","setShowRules","useDispatch","useSelector","navbar","TournamentsNavbar","NavbarWrapper","PlayersCount","BalanceContainer","setIsToggled","container","Navbar","BalanceCount","MobileRules","gameIdHallMobile","gameIdGameHallTypes","activeGameId","useMemo","GameHall","Autojoin","History","Footer","Popups","UnderConstruction","UnderConstructionSchedule","HallWrapper","_ref$location","sessionStorageDisabled","showRules","openRules","rules","remove","updateIframeSize","prevHeight","allGamesIsUnderConstruction","app","isIos","autojoin","Header","Switch","URLSearchParams","gameKindIdParam","isDemoParam","delete","strUrlParams","Redirect","redirectIfNecessary","Route","component","exect","Rules","Script","Helmet","GameLauncher","App","isFullScreen","useLockBodyScroll","disableScroll","scrollableClassName","useLockBodyZoom","_unused","getResources","all","textRes","underConstData","NotFinishedGames","validateKey","validateValue","startProject","openerUrl","referrer","hostname","ReactDOM","render","Provider","PersistGate","loading","BrowserRouter","TooltipStyles","toolTipColor"],"mappings":"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D,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,kD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,qD,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,gC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,cCA3CD,EAAOC,QAAU,k5Y,gBCAjBD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,cCA3CD,EAAOC,QAAU,kgW,gBCAjBD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,cCA3CD,EAAOC,QAAU,sgN,cCAjBD,EAAOC,QAAU,k2I,mBCAjBD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA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","file":"static/js/main.9aa664fb.chunk.js","sourcesContent":["import { getBrowserName, getGameDataFromUrl, getLocalIp } from \"../helpers/utility\";\r\n\r\n// banners\r\nimport enBannerDesktop from \"../assets/images/banner/desktop/en-desktop.png\";\r\nimport enBannerMobile from \"../assets/images/banner/mobile/en-mobile.png\";\r\n// toto banner\r\n//* desktop\r\nimport hyTotoBaronDesktop from \"../assets/images/banner/desktop/toto/Baron/Home_slider_baron_am.webp\";\r\nimport ruTotoBaronDesktop from \"../assets/images/banner/desktop/toto/Baron/Home_slider_baron_ru.webp\";\r\nimport enTotoBaronDesktop from \"../assets/images/banner/desktop/toto/Baron/Home_slider_baron_en.webp\";\r\nimport hyTotoBlotDesktop from \"../assets/images/banner/desktop/toto/Blot/Home_slider_blot_am.webp\";\r\nimport ruTotoBlotDesktop from \"../assets/images/banner/desktop/toto/Blot/Home_slider_blot_ru.webp\";\r\nimport enTotoBlotDesktop from \"../assets/images/banner/desktop/toto/Blot/Home_slider_blot_en.webp\";\r\nimport hyTotoDominoDesktop from \"../assets/images/banner/desktop/toto/Domino/Home_slider_domino_am.webp\";\r\nimport ruTotoDominoDesktop from \"../assets/images/banner/desktop/toto/Domino/Home_slider_domino_ru.webp\";\r\nimport enTotoDominoDesktop from \"../assets/images/banner/desktop/toto/Domino/Home_slider_domino_en.webp\";\r\nimport hyTotoHexagonDesktop from \"../assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_am.webp\";\r\nimport ruTotoHexagonDesktop from \"../assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_ru.webp\";\r\nimport enTotoHexagonDesktop from \"../assets/images/banner/desktop/toto/Hexagon/Home_slider_hexagon_en.webp\";\r\nimport hyTotoNardiDesktop from \"../assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_am.webp\";\r\nimport ruTotoNardiDesktop from \"../assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_ru.webp\";\r\nimport enTotoNardiDesktop from \"../assets/images/banner/desktop/toto/Nardi/Home_slider_nardi_en.webp\";\r\nimport hyTotoToto11Desktop from \"../assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_am.webp\";\r\nimport ruTotoToto11Desktop from \"../assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_ru.webp\";\r\nimport enTotoToto11Desktop from \"../assets/images/banner/desktop/toto/Toto11/Home_slider_toto11_en.webp\";\r\n//*mobile\r\nimport hyTotoBaronMobile from \"../assets/images/banner/mobile/toto/Baron/mobile_baron_am.webp\";\r\nimport ruTotoBaronMobile from \"../assets/images/banner/mobile/toto/Baron/mobile_baron_ru.webp\";\r\nimport enTotoBaronMobile from \"../assets/images/banner/mobile/toto/Baron/mobile_baron_en.webp\";\r\nimport hyTotoBlotMobile from \"../assets/images/banner/mobile/toto/Blot/mobile_blot_am.webp\";\r\nimport ruTotoBlotMobile from \"../assets/images/banner/mobile/toto/Blot/mobile_blot_ru.webp\";\r\nimport enTotoBlotMobile from \"../assets/images/banner/mobile/toto/Blot/mobile_blot_en.webp\";\r\nimport hyTotoDominoMobile from \"../assets/images/banner/mobile/toto/Domino/mobile_domino_am.webp\";\r\nimport ruTotoDominoMobile from \"../assets/images/banner/mobile/toto/Domino/mobile_domino_ru.webp\";\r\nimport enTotoDominoMobile from \"../assets/images/banner/mobile/toto/Domino/mobile_domino_en.webp\";\r\nimport hyTotoHexagonMobile from \"../assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_am.webp\";\r\nimport ruTotoHexagonMobile from \"../assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_ru.webp\";\r\nimport enTotoHexagonMobile from \"../assets/images/banner/mobile/toto/Hexagon/mobile_hexagon_en.webp\";\r\nimport hyTotoNardiMobile from \"../assets/images/banner/mobile/toto/Nardi/mobile_nardi_am.webp\";\r\nimport ruTotoNardiMobile from \"../assets/images/banner/mobile/toto/Nardi/mobile_nardi_ru.webp\";\r\nimport enTotoNardiMobile from \"../assets/images/banner/mobile/toto/Nardi/mobile_nardi_en.webp\";\r\nimport hyTotoToto11Mobile from \"../assets/images/banner/mobile/toto/Toto11/mobile_toto11_am.webp\";\r\nimport ruTotoToto11Mobile from \"../assets/images/banner/mobile/toto/Toto11/mobile_toto11_ru.webp\";\r\nimport enTotoToto11Mobile from \"../assets/images/banner/mobile/toto/Toto11/mobile_toto11_en.webp\";\r\n\r\n// albatros banners\r\nimport enAlbatrosBannerDesktop from \"../assets/images/banner/desktop/albatros/en-desktop.jpg\";\r\nimport enAlbatrosBannerDesktop1 from \"../assets/images/banner/desktop/albatros/en-desktop1.jpg\";\r\nimport enAlbatrosBannerDesktop2 from \"../assets/images/banner/desktop/albatros/en-desktop2.jpg\";\r\nimport enAlbatrosBannerMobile from \"../assets/images/banner/mobile/albatros/en-mobile.jpg\";\r\nimport enAlbatrosBannerMobile1 from \"../assets/images/banner/mobile/albatros/en-mobile1.jpg\";\r\nimport enAlbatrosBannerMobile2 from \"../assets/images/banner/mobile/albatros/en-mobile2.jpg\";\r\n// autojoin banners\r\n// autojoin hasn't mobile banners\r\nimport enAutojoinBannerDesktop from \"../assets/images/banner/desktop/autojoin/en-desktop.jpg\";\r\nimport enAutojoinBannerDesktop1 from \"../assets/images/banner/desktop/autojoin/en-desktop1.jpg\";\r\nimport enAutojoinBannerDesktop2 from \"../assets/images/banner/desktop/autojoin/en-desktop2.jpg\";\r\nimport enAutojoinBannerDesktop3 from \"../assets/images/banner/desktop/autojoin/en-desktop3.jpg\";\r\n// netbet banner\r\nimport enNetbetBannerDesktop from \"../assets/images/banner/desktop/netbet/en-desktop.jpg\";\r\nimport enNetbetBannerMobile from \"../assets/images/banner/mobile/netbet/en-mobile.jpg\";\r\n// cannonbet banner\r\nimport enCannonbetBannerDesktop from \"../assets/images/banner/desktop/cannonbet/en-desktop.jpg\";\r\nimport enCannonbetBannerMobile from \"../assets/images/banner/mobile/cannonbet/en-mobile.jpg\";\r\n// geegeel banner\r\nimport enGeegeelBannerDesktop from \"../assets/images/banner/desktop/geegeel/en-desktop.jpg\";\r\nimport enGeegeelBannerMobile from \"../assets/images/banner/mobile/geegeel/en-mobile.png\";\r\n// games banners\r\nimport beloteBanner from \"../assets/images/banner/desktop/games/belote.png\";\r\nimport chingachoongBanner from \"../assets/images/banner/desktop/games/chingachoong.png\";\r\nimport penaltyBanner from \"../assets/images/banner/desktop/games/penalty.png\";\r\nimport pasoorBanner from \"../assets/images/banner/desktop/games/pasoor.png\";\r\nimport dominoesBanner from \"../assets/images/banner/desktop/games/dominoes.png\";\r\nimport backgammonBanner from \"../assets/images/banner/desktop/games/backgammon.png\";\r\nimport backgammonnewBanner from \"../assets/images/banner/desktop/games/backgammonnew.png\";\r\nimport hokmBanner from \"../assets/images/banner/desktop/games/hokm.png\";\r\nimport toto21Banner from \"../assets/images/banner/desktop/games/game21.png\";\r\nimport jokerBanner from \"../assets/images/banner/desktop/games/joker.png\";\r\nimport minesweeperBanner from \"../assets/images/banner/desktop/games/minesweeper.png\";\r\n\r\n// masterboard\r\nimport ImageTierce from \"../assets/images/masterboard/tierce.png\";\r\nimport Image50 from \"../assets/images/masterboard/50.png\";\r\nimport Image100 from \"../assets/images/masterboard/100.png\";\r\nimport Image4x9 from \"../assets/images/masterboard/4x9.png\";\r\nimport Image4x10 from \"../assets/images/masterboard/4x10.png\";\r\nimport Image4xJ from \"../assets/images/masterboard/4xJ.png\";\r\nimport Image4xQ from \"../assets/images/masterboard/4xQ.png\";\r\nimport Image4xK from \"../assets/images/masterboard/4xK.png\";\r\nimport Image4xA from \"../assets/images/masterboard/4xA.png\";\r\n\r\n// Game list images\r\nimport image21 from \"../assets/images/game-card/21.png\";\r\nimport imageBackgammon from \"../assets/images/game-card/backgammon.png\";\r\nimport imageDomino from \"../assets/images/game-card/domino.png\";\r\nimport imageBelote from \"../assets/images/game-card/belote.png\";\r\nimport imagePasoor from \"../assets/images/game-card/pasoor.png\";\r\nimport imagePasoor2 from \"../assets/images/game-card/pasur.png\";\r\nimport realityCheckClock from \"../assets/images/realityCheckClock.png\";\r\nimport imageJoker from \"../assets/images/game-card/joker.png\";\r\nimport imageHokm from \"../assets/images/game-card/hokm.png\";\r\nimport imageChingachoong from \"../assets/images/game-card/chingachoong.png\";\r\nimport imageMinesweeper from \"../assets/images/game-card/minesweeper.png\";\r\nimport imagePenalty from \"../assets/images/game-card/penalty.png\";\r\nimport imagePoker from \"../assets/images/game-card/poker.png\";\r\nimport imageHokm2 from \"../assets/images/game-card/hokm2.png\";\r\nimport imageHexagon from \"../assets/images/game-card/hexagon.png\";\r\nimport imageHexagon43 from \"../assets/images/game-card/hexagon-43.png\";\r\nimport imageHexagon37 from \"../assets/images/game-card/hexagon-37.png\";\r\nimport imageHexagon61 from \"../assets/images/game-card/hexagon-61.png\";\r\nimport imageUnderConstruction from \"../assets/images/maintenance.png\";\r\n\r\n// Tournament list images\r\nimport ImageTournament from \"../assets/images/game-card/tournament.png\";\r\nimport { getBrowserSpecificProperties, separateHost } from \"../helpers/localHelperFunctions\";\r\n\r\n// Cookies slider\r\nimport imageChromeStep1 from \"../assets/images/cookies-slider/chrome/step1.png\";\r\nimport imageChromeStep2 from \"../assets/images/cookies-slider/chrome/step2.png\";\r\nimport imageChromeStep3 from \"../assets/images/cookies-slider/chrome/step3.png\";\r\nimport imageChromeStep4 from \"../assets/images/cookies-slider/chrome/step4.png\";\r\nimport imageChromeStep5 from \"../assets/images/cookies-slider/chrome/step5.png\";\r\nimport imageSafariStep1 from \"../assets/images/cookies-slider/safari/step1.png\";\r\nimport imageSafariStep2 from \"../assets/images/cookies-slider/safari/step2.png\";\r\nimport imageSafariStep3 from \"../assets/images/cookies-slider/safari/step3.png\";\r\nimport imageSafariStep4 from \"../assets/images/cookies-slider/safari/step4.png\";\r\nimport imageSafariStep5 from \"../assets/images/cookies-slider/safari/step5.png\";\r\n\r\n//appIcons\r\nimport beloteAppIcon from \"../assets/images/app-belote-new.png\";\r\n\r\nexport const { PartnerId, token, lang, IsMobileLogin, homeUrl, isRGS, mainDomain } = getGameDataFromUrl();\r\nexport const partnerFiltersData = `filtersData`;\r\nexport const GAME_ID_QUERY_PARAM = `&gameId=`;\r\nexport const TOTO_PASOOR_CONVERTED_NAME = \"Toto 11\";\r\nexport const TOTO_HOKM_CONVERTED_NAME = \"Baron\";\r\nexport const TOTO_ROMANIA_PARTNER_ID = \"F7957FA13C4F33D997E92D9B1E735973\";\r\nexport const TOTO_PARTNER_ID = \"ADF1A1C772683CB8651112A304E9F62B\";\r\nexport const TOTO_PARTNER_ID_TEST = \"2E2D3E2BF24EA4A1FF972E4E0711A1D5\";\r\nexport const CANNONBET_PARTNER_ID = \"abeb9ffaa17c768940d3d544e715fb0f\";\r\nexport const GEEGEEL_PARTNER_ID = \"DCFEE0CDC7E85EC7965AA9278CE5870E\";\r\nexport const DANYBET_PARTNER_ID = \"110a53218c054e7d41dd7b813b4a34ce\";\r\nexport const GAME_QUERY_PARAMS_FROM_LOBBY_URL = `&isMobile=${IsMobileLogin}&lang=${lang}&iframeId=`;\r\nexport const TOTO_NEW_GAMES_LOBBY_URL = `https://www.totogaming.am/${lang}/Lobby/Skillgames/Main/All/All-All`;\r\nexport const TOTO_ROMANIA_URL = `https://totogaming.ro/${lang}`;\r\nexport const GAME_QUERY_PARAM_FOR_NEW_WINDOW = `?isMobile=${IsMobileLogin}&lang=${lang}${\r\n PartnerId.toLowerCase() === TOTO_PARTNER_ID.toLowerCase() ? \"&pwwap=client.skillgames.bet\" : \"\"\r\n}&gameTableId=`;\r\n\r\nexport const gamesAppLinks = {\r\n 4: {\r\n icon: beloteAppIcon,\r\n title: \"TotoGaming \",\r\n androidLink: \"https://mobileapp.apidigi.com/android/pwapp/apk/pwapp-toto.apk\",\r\n iosLink: \"https://apps.apple.com/am/app/totogaming/id1564104447\",\r\n partnersList: [TOTO_PARTNER_ID]\r\n }\r\n};\r\n\r\n// App environment urls\r\nexport let APP_URL;\r\nexport let IDENTITY_URL;\r\nexport let VALIDATION_URL;\r\nif (process.env.REACT_APP_IS_DYNAMIC_URL === \"true\") {\r\n APP_URL = process.env.REACT_APP_ENV + separateHost();\r\n IDENTITY_URL = process.env.REACT_APP_IDENTITY_URL + separateHost() + \"/connect/token\";\r\n} else {\r\n APP_URL = process.env.REACT_APP_ENV;\r\n IDENTITY_URL = process.env.REACT_APP_IDENTITY_URL;\r\n}\r\nif (process.env.REACT_APP_IS_DYNAMIC_TRANSLATIONS_URL === \"true\") {\r\n VALIDATION_URL = process.env.REACT_APP_TRANSLATIONS_URL + separateHost() + \"/api/settings/getsettings\";\r\n} else {\r\n VALIDATION_URL = process.env.REACT_APP_TRANSLATIONS_URL + \"/api/settings/getsettings\";\r\n}\r\n\r\nconst REQ_METHODS = {\r\n POST: \"POST\",\r\n GET: \"GET\"\r\n};\r\n\r\nexport const POSITIONS = {\r\n TOP_LEFT: \"TOP_LEFT\",\r\n BOTTOM_LEFT: \"BOTTOM_LEFT\",\r\n CENTER_LEFT: \"CENTER_LEFT\",\r\n BOTTOM_RIGHT: \"BOTTOM_RIGHT\",\r\n TOP_RIGHT: \"TOP_RIGHT\",\r\n CENTER_RIGHT: \"CENTER_RIGHT\",\r\n CENTER: \"CENTER\"\r\n};\r\n\r\n//SOCKET\r\nexport const CLOSE_GAME_TABLE = \"CloseGameTable\";\r\nexport const UN_JOIN_FROM_GAME_TABLE = \"UnjoinFromGameTable\";\r\n\r\n//API\r\nexport const GAME_HISTORY = \"gameHistory\";\r\nexport const GET_GAME_TABLES = \"getGameTables\";\r\nexport const INITIAL_REQUEST = \"initialRequest\";\r\nexport const GET_TRANSLATIONS = \"GamingZone/GetTranslations\";\r\nexport const SIT_AT_GAME_TABLE = \"sitAtGameTable\";\r\nexport const REFRESH_GAME = \"refreshGame\";\r\nexport const GET_PLAYER_BALANCE = \"getPlayerBalance\";\r\nexport const GET_REALITY_CHECK_INFO = \"getClientRealityCheckInfo\";\r\nexport const GET_TOURNAMENT_KING_TEMPLATES = \"getTournamentKingTemplates\";\r\nexport const GET_TOURNAMENT_KING_DETAILS = \"getTournamentKingDetails\";\r\nexport const GET_TOURNAMENT_KING_LEADER_BOARD = \"getTournamentKingLeaderBoard\";\r\nexport const TOURNAMENT_GAME_HISTORY = \"tournamentGameHistory\";\r\nexport const TOURNAMENT_INFO = \"tournamentInfo\";\r\nexport const TOURNAMENT_INFO_PLAYERS = \"tournamentInfoPlayers\";\r\nexport const TOURNAMENT_INFO_PRIZE_DISTRIBUTION = \"tournamentInfoPrizeDistribution\";\r\nexport const TOURNAMENT_INFO_GAMES = \"tournamentInfoGames\";\r\nexport const UPCOMING_TOURNAMENTS = \"upcomingTournaments\";\r\nexport const EXIT_FROM_TOURNAMENTS = \"exitFromTournament\";\r\nexport const GET_PLAYER_TOURNAMENTS = \"getPlayerTournaments\";\r\nexport const GET_PARTNER_NETWORKS_LIST = \"getPartnerNetworksList\";\r\nexport const GET_DEMO_GAMES = \"preview/GetDemoGames\";\r\nexport const PLAY_DEMO_GAME = \"PlayDemoGame\";\r\nexport const START_DEMO_GAME = \"StartDemoGame\";\r\nexport const AGREE_FOR_GAME_WITH_OPPONENT = \"agreeForGameWithOpponent\";\r\nexport const UN_JOIN_OPPONENT_FROM_GAME_TABLE = \"unjoinOpponentFromGameTable\";\r\nexport const GET_TOURNAMENTS = \"getTournaments\";\r\nexport const CREATE_GAME_TABLE = \"createGameTable\";\r\nexport const WATCH_GAME = \"watchGame\";\r\nexport const REBUY_FOR_TOURNAMENT = \"rebuyForTournament\";\r\nexport const REGISTER_FOR_TOURNAMENT = \"registerForTournament\";\r\nexport const GET_UPCOMING_TOURNAMENT_FOR_PARTNER = \"getUpcomingTournamentForPartner\";\r\nexport const GAME_HISTORY_SLIDER = \"gameHistorySlider\";\r\nexport const REPLAY_GAME_OFFER = \"replayGameOffer\";\r\nexport const TAKE_RISK = \"takeRisk\";\r\nexport const PLAY_TAKE_RISK = \"playTakeRisk\";\r\nexport const GET_EXTERNAL_PARTNER = \"getExternalPartner\";\r\nexport const CARDS_COMBINATION = \"cardsCombination\";\r\nexport const GET_AUTO_JOIN_TABLES = \"getAutoJoinTables\";\r\nexport const CREATE_AUTO_JOIN_TABLES = \"createOrJoinToAutoJoinTable\";\r\nexport const GET_UNDER_CONSTRUCTION_DATA = \"getUnderConstructionData\";\r\nexport const CREATE_AND_SAVE_CONVENTION_TEMPLATE = \"createConventionTemplate\";\r\nexport const EDIT_CONVENTION_TEMPLATE = \"editConventionTemplate\";\r\nexport const DELETE_CONVENTION_TEMPLATE_REQUEST = \"deleteConventionsTemplate\";\r\nexport const GET_RAKE_RACE_TOURNAMENTS = \"getRakeRaceTournaments\";\r\nexport const GET_RAKE_RACE_LEADER_BOARD = \"getRakeRaceLeaderBoard\";\r\nexport const GET_RAKE_RACE_LEADER_BOARD_PLAYER_INFO = \"getCurrentPlayerInfoInRakeRace\";\r\nexport const GET_PARTNER_CONFIG = \"Partner/GetConfig\";\r\n\r\n// Various constants\r\nexport const CREATE_CONVENTION_MAX_LENGTH = 13;\r\nexport const MINUTE_IN_MILISECONDS = 60000;\r\nexport const CREATE_CONVENTION_NAME_FIELD_SIZE = 60;\r\nexport const UNAUTHORIZED_STATUS_CODE = 401;\r\nexport const ID = \"id\";\r\nexport const TO = \"To\";\r\nexport const COIN = \"C\";\r\nexport const COIN_LONG = \"COIN\";\r\nexport const { HIDDEN, VISIBILITY_CHANGE } = getBrowserSpecificProperties();\r\nexport const FROM = \"From\";\r\nexport const STAKE = \"stake\";\r\nexport const GAME_ID = \"gameId\";\r\nexport const SHOW_TO_GUEST = \"ShowToGuest\";\r\nexport const WITH_RATING = \"WithRating\";\r\nexport const EXTRA_TIME = \"ExtraTime\";\r\nexport const MOVE_TIME = \"MoveTime\";\r\nexport const IDENTITY = \"identity\";\r\nexport const CUBE = \"Cube\";\r\nexport const DOUBLE_SCORE_FOR_KAPUT = \"DoubleScoreForKaput\";\r\nexport const CHANGE_DICE = \"ChangeDice\";\r\nexport const CHANGE_CARD = \"ChangeCard\";\r\nexport const GAME_POINTS = \"GamePoints\";\r\nexport const TOURNAMENTS = \"tournaments\";\r\nexport const DEFAULT_TOURNAMENT_TYPE = \"1\";\r\nexport const CLASSIC_TOURNAMENT_TYPE = \"1\";\r\nexport const SIT_AND_GO_TOURNAMENT_TYPE = \"2\";\r\nexport const TOURNAMENT_TRUNCATE_TEXT_LENGTH = 15;\r\nexport const AUTO_JOIN_DEFAULT_GAME_TABLE_ID = 1;\r\nexport const COIN_RATE_PRECISION = 2;\r\nexport const PRIVATE_STATUS = 5;\r\nexport const CANCELED_GAME_ID = 5;\r\nexport const GAMES_COUNT_IN_GAME_LAUNCHER = 4;\r\nexport const OPEN_GAME_STATUS = 1;\r\nexport const CLOSE_GAME_STATUS = 2;\r\nexport const PLAY_GAME_STATUS = 3;\r\nexport const VIEW_GAME_STATUS = 4;\r\nexport const PRIMITIVE_TYPE = true;\r\nexport const INITIAL_MAXIMUM_HEIGHT_BEFORE_DATA_LOADING = 200;\r\n//TODO make initial count generic :D the count should depend on screen sizes\r\nexport const INITIAL_COUNT = 500;\r\nexport const LOADABLE_COUNT = 10;\r\nexport const INITIAL_COUNT_LEADERBOAED = 15;\r\nexport const NOTIFICATION_DURATION = 5000;\r\nexport const ERROR_CODE = 1;\r\nexport const SUCCESS_CODE = 2;\r\nexport const INFO_CODE = 3;\r\nexport const GAME_OFFER_DURATION = 60000;\r\nexport const GAME_DISABLE_MIN_SECONDS = 1000;\r\nexport const REMOVE_GAME_ANIMATION_DURATION = 300;\r\nexport const HOUR_IN_MILLISECONDS = 3600000;\r\nexport const QUARTER_HOUR = 900000;\r\nexport const REVANCHE_DECLINED_DURATION = 5000;\r\nexport const DECLINED_DURATION = 5000;\r\nexport const JACKPOT_AUTOSLIDE_TIME = 5000;\r\nexport const JACKPOT_NOTIFICATION_DURATION = 60000;\r\nexport const MY_STARTED_GAMES = 0;\r\nexport const MY_NOT_STARTED_GAMES = 1;\r\nexport const NOT_STARTED_GAMES = 2;\r\nexport const STARTED_GAMES = 3;\r\nexport const WAIT_FOR_OPPONENT_TIME = 59;\r\nexport const CLOSE_TOURNAMENT_REGISTRATION_TIME = 60;\r\n// Tournament order cases\r\nexport const MY_NOT_STARTED_ORDER_CASE = 1;\r\nexport const STARTED_ORDER_CASE = 2;\r\nexport const NOT_STARTED_ORDER_CASE = 3;\r\nexport const FINISHED_ORDER_CASE = 4;\r\n// Tournament statuses\r\nexport const STARTED_STATUS = 2;\r\nexport const REBUY_STATUS = 3;\r\nexport const REGISTER_STATUS = 4;\r\nexport const SOON_STATUS = 6;\r\nexport const TOURNAMENT_PRIVATE_STATUS = 7;\r\nexport const FINISHED_STATUS = 8;\r\nexport const CANCELED_STATUS = 9;\r\n//Tournament king statuses\r\nexport const T_KING_IN_PROGRESS_STATUS = 1;\r\nexport const T_KING_CANCELED_STATUS = 4;\r\nexport const T_KING_SOON_STATUS = 2;\r\nexport const T_KING_FINISHED_STATUS = 3;\r\n//Game kind ids\r\nexport const BACKGAMMON_KIND_ID = 1;\r\nexport const NEW_BACKGAMMON_KIND_ID = 11;\r\nexport const BELOTE_KIND_ID = 4;\r\nexport const NEW_BELOTE_KIND_ID = 15;\r\nexport const PASOOR_KIND_ID = 5;\r\nexport const HOKM_KIND_ID = 7;\r\n//Favourite Conventions template\r\nexport const FAV_CONV_ACTIONS = {\r\n EDIT: \"edit\",\r\n SELECT: \"select\",\r\n CREATE: \"create\"\r\n};\r\n\r\n// translations constants\r\nexport const GAME_KIND_TITLE = \"GameKindTitle\";\r\nexport const GAME_KIND_TITLE_ID = \"GameKindTitleid\";\r\nexport const GAME_KIND_TITLE_ID_POKER = \"GameKindTitleidPoker\";\r\nexport const GAME_TYPE_TITLE = \"GameTypeTitle\";\r\nexport const GAME_TYPE_TITLE_ID = \"GameTypeTitleid\";\r\nexport const TOUR_PARTICIPATION_TYPE_ID = \"TourParticipationTypeid\";\r\nexport const GAME_DATA_CHANGES_ITEMS_QUANTITY_ID = \"GameDataChangesItemsQuantityid\";\r\nexport const TOURNAMENT_TYPE_TITLE_ID = \"TournamentTypeTitleid\";\r\n\r\n//game over finish statuses\r\nexport const CANCELED_ON_A_TECHNICALITY = 4;\r\nexport const CANCELED_DUE_TO_LACK_OF_OPPONENT_RESPONSE = 5;\r\n\r\n//languages\r\nexport const ARMENIAN = \"hy\";\r\nexport const RUSSIAN = \"ru\";\r\nexport const ENGLISH = \"en\";\r\n\r\nexport const LANG_ARR = [ARMENIAN, RUSSIAN];\r\n\r\n//Rake Race Tournaments Enums\r\n\r\nexport const RAKE_RACE_NOT_STARTED = 0;\r\nexport const RAKE_RACE_IN_PROGRESS = 1;\r\nexport const RAKE_RACE_FINISHED = 2;\r\nexport const RAKE_RACE_CANCELED = 3;\r\n\r\nexport let LOCAL_IP = null;\r\n//TODO: get local functionality make dynamic\r\ngetLocalIp().then(ip => {\r\n LOCAL_IP = ip[0];\r\n});\r\n\r\nexport const STATUS_INFO = {\r\n 1: { text: \"Open\", endPoint: REFRESH_GAME },\r\n 2: { text: \"Close\", endPoint: CLOSE_GAME_TABLE },\r\n 3: { text: \"Play\", endPoint: SIT_AT_GAME_TABLE },\r\n 4: { text: \"View\", endPoint: WATCH_GAME },\r\n 5: { text: \"Private\" }\r\n};\r\n\r\nexport const GAME_HALL_GAMES_ARRAYS_NAMES = {\r\n 1: \"myStartedGames\",\r\n 2: \"myNotStartedGames\",\r\n 3: \"notStartedGames\",\r\n 4: \"startedGames\"\r\n};\r\n\r\nexport const ICON_NAMES = {\r\n 1: \"icon-Open\",\r\n 2: \"icon-Close\",\r\n 3: \"icon-Play\",\r\n 4: \"icon-View\",\r\n 5: \"icon-ShowToGuest\"\r\n};\r\n\r\nexport const GAME_LAUNCHER_ICIN_NAMES = {\r\n 1: \"icon-Open text-success\",\r\n 2: \"icon-Reject text-danger\",\r\n 3: \"icon-PlayBorder text-success\",\r\n 4: \"icon-View\",\r\n 5: \"icon-ShowToGuest\"\r\n};\r\n\r\nexport const API_ENDPOINTS = {\r\n cardsCombination: {\r\n method: REQ_METHODS.POST,\r\n path: \"CardsCombination\"\r\n },\r\n getExternalPartner: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetExternalPartner\"\r\n },\r\n identity: {\r\n method: REQ_METHODS.POST\r\n },\r\n initialRequest: {\r\n method: REQ_METHODS.POST,\r\n path: \"InitialRequest\"\r\n },\r\n getTextResources: {\r\n method: REQ_METHODS.GET,\r\n path: \"GetTextResources\"\r\n },\r\n getGameTables: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetGameTables\"\r\n },\r\n getPartnerNetworksList: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetPartnerNetworksList\"\r\n },\r\n gameHistory: {\r\n method: REQ_METHODS.POST,\r\n path: \"GameHistory\"\r\n },\r\n tournamentGameHistory: {\r\n method: REQ_METHODS.POST,\r\n path: \"TournamentGameHistory\"\r\n },\r\n tournamentInfo: {\r\n method: REQ_METHODS.POST,\r\n path: \"TournamentInfo\"\r\n },\r\n tournamentInfoPlayers: {\r\n method: REQ_METHODS.POST,\r\n path: \"TournamentInfoPlayers\"\r\n },\r\n tournamentInfoPrizeDistribution: {\r\n method: REQ_METHODS.POST,\r\n path: \"tournamentInfoPrizeDistribution\"\r\n },\r\n tournamentInfoGames: {\r\n method: REQ_METHODS.POST,\r\n path: \"TournamentInfoGames\"\r\n },\r\n getTournamentKingTemplates: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetTournamentKingTemplates\"\r\n },\r\n getTournamentKingDetails: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetTournamentKingDetails\"\r\n },\r\n getTournamentKingLeaderBoard: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetTournamentKingLeaderBoard\"\r\n },\r\n sitAtGameTable: {\r\n method: REQ_METHODS.POST,\r\n path: \"SitAtGameTable\"\r\n },\r\n upcomingTournaments: {\r\n method: REQ_METHODS.POST,\r\n path: \"UpcomingTournaments\"\r\n },\r\n getPlayerTournaments: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetPlayerTournaments\"\r\n },\r\n exitFromTournament: {\r\n method: REQ_METHODS.POST,\r\n path: \"ExitFromTournament\"\r\n },\r\n registerForTournament: {\r\n method: REQ_METHODS.POST,\r\n path: \"RegisterForTournament\"\r\n },\r\n unjoinOpponentFromGameTable: {\r\n method: REQ_METHODS.POST,\r\n path: \"UnjoinOpponentFromGameTable\"\r\n },\r\n getPlayerBalance: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetPlayerBalance\"\r\n },\r\n getClientRealityCheckInfo: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetClientRealityCheckInfo\"\r\n },\r\n getTournaments: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetTournaments\"\r\n },\r\n agreeForGameWithOpponent: {\r\n method: REQ_METHODS.POST,\r\n path: \"AgreeForGameWithOpponent\"\r\n },\r\n refreshGame: {\r\n method: REQ_METHODS.POST,\r\n path: \"RefreshGame\"\r\n },\r\n createGameTable: {\r\n method: REQ_METHODS.POST,\r\n path: \"CreateGameTable\"\r\n },\r\n watchGame: {\r\n method: REQ_METHODS.POST,\r\n path: \"WatchGame\"\r\n },\r\n rebuyForTournament: {\r\n method: REQ_METHODS.POST,\r\n path: \"RebuyForTournament\"\r\n },\r\n getUpcomingTournamentForPartner: {\r\n method: REQ_METHODS.GET,\r\n path: \"GetUpcomingTournamentForPartner\"\r\n },\r\n gameHistorySlider: {\r\n method: REQ_METHODS.POST,\r\n path: \"GameHistorySlider\"\r\n },\r\n replayGameOffer: {\r\n method: REQ_METHODS.POST,\r\n path: \"ReplayGameOffer\"\r\n },\r\n takeRisk: {\r\n method: REQ_METHODS.POST,\r\n path: \"TakeRisk\"\r\n },\r\n playTakeRisk: {\r\n method: REQ_METHODS.POST,\r\n path: \"PlayTakeRisk\"\r\n },\r\n getAutoJoinTables: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetAutoJoinTables\"\r\n },\r\n createOrJoinToAutoJoinTable: {\r\n method: REQ_METHODS.POST,\r\n path: \"CreateOrJoinToAutoJoinTable\"\r\n },\r\n getUnderConstructionData: {\r\n method: REQ_METHODS.GET,\r\n path: \"GetUnderConstructionData\"\r\n },\r\n createConventionTemplate: {\r\n method: REQ_METHODS.POST,\r\n path: \"CreateConventionTemplate\"\r\n },\r\n editConventionTemplate: {\r\n method: REQ_METHODS.POST,\r\n path: \"EditConventionTemplate\"\r\n },\r\n deleteConventionsTemplate: {\r\n method: REQ_METHODS.POST,\r\n path: \"DeleteConventionsTemplate\"\r\n },\r\n getRakeRaceTournaments: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetRakeRaceTournaments\"\r\n },\r\n getRakeRaceLeaderBoard: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetRakeRaceLeaderBoard\"\r\n },\r\n getCurrentPlayerInfoInRakeRace: {\r\n method: REQ_METHODS.POST,\r\n path: \"GetCurrentPlayerInfoInRakeRace\"\r\n },\r\n disableIntroduction: {\r\n method: REQ_METHODS.POST,\r\n path: \"DisableIntroduction\"\r\n }\r\n};\r\n\r\nexport const ROUTES = {\r\n AUTOJOIN: \"/autojoin\",\r\n HOME: \"/\",\r\n GAMES: \"/games\",\r\n GAME_HALL: \"/game-hall\",\r\n HISTORY: \"/history\",\r\n HISTORY_GAMES: \"/history/games\",\r\n HISTORY_TOURNAMENTS_MOBILE: \"/history/tournaments\",\r\n TOURNAMENTS_HALL: \"/tournaments/type/:type\",\r\n TOURNAMENTS_TYPES_MOBILE: \"/tournaments/types\",\r\n TOURNAMENTS: \"/tournaments\",\r\n TOURNAMENTS_HALL_TYPE: \"/tournaments/type\",\r\n MASTERBOARD: \"/game-hall/game/:gameId/masterboard\",\r\n TOURNAMENT_KING: \"/tournaments/king\",\r\n TOURNAMENT_RAKE_RACE: \"/tournaments/rake-race\",\r\n TOURNAMENTS_HISTORY: \"/tournaments/history\",\r\n GAME_HALL_DESKTOP: \"/game-hall/game/:gameId\",\r\n GAME_HALL_MOBILE: \"/game-hall/game/:gameId/type/:typeId\",\r\n GAME_HALL_TYPES_MOBILE: \"/game-types/:gameId\",\r\n GAME_TYPES_MOBILE: \"/game-types\",\r\n GAME_HALL_HISTORY: \"/game-hall/game/:gameId/history\",\r\n MAINTENANCE: \"/maintenance\",\r\n SUPER_BELOTE: \"/super-belote\",\r\n DEMO_GAMES_DESKTOP: \"/game-hall/game/:gameId/demo-games\",\r\n DEMO_GAMES_MOBILE: \"/game-hall/game/:gameId/type/:typeId/demo-games\"\r\n};\r\n\r\nexport const PARTIAL_ROUTE_PATHS = {\r\n GAME_TYPES: \"/game-types/\",\r\n GAME_HALL_GAME: \"/game-hall/game/\",\r\n MASTERBOARD: \"masterboard\",\r\n TOURNAMENT_STANDARD: \"/tournaments/type/1\",\r\n TOURNAMENT_SIT_AND_GO: \"/tournaments/type/2\"\r\n};\r\n\r\nexport const GAME_ID_INDEXES_OF_PATHNAME = {\r\n [PARTIAL_ROUTE_PATHS.GAME_HALL_GAME]: 3,\r\n [PARTIAL_ROUTE_PATHS.GAME_TYPES]: 2\r\n};\r\n\r\nexport const META_TITLES = {\r\n [PARTIAL_ROUTE_PATHS.TOURNAMENT_STANDARD]: \"Standard Tournaments\",\r\n [PARTIAL_ROUTE_PATHS.TOURNAMENT_SIT_AND_GO]: \"Sit & Go Tournaments\",\r\n [ROUTES.HISTORY_GAMES]: \"Game History\",\r\n [ROUTES.HISTORY_TOURNAMENTS_MOBILE]: \"Tournament History\",\r\n [ROUTES.TOURNAMENTS_TYPES_MOBILE]: \"Tournaments\",\r\n [ROUTES.TOURNAMENT_KING]: \"Tournament King\",\r\n [ROUTES.TOURNAMENTS_HISTORY]: \"Tournament History\",\r\n [ROUTES.MAINTENANCE]: \"Maintenance\",\r\n [ROUTES.SUPER_BELOTE]: \"Super Index\"\r\n};\r\n\r\nexport const realityCheckClockImg = realityCheckClock;\r\n\r\nexport const GAMES_LIST_RESOURCES = {\r\n backgammon: {\r\n image: imageBackgammon\r\n },\r\n backgammonnew: {\r\n image: imageBackgammon\r\n },\r\n toto21: {\r\n image: image21\r\n },\r\n dominoes: {\r\n image: imageDomino\r\n },\r\n domino: {\r\n image: imageDomino\r\n },\r\n belote: {\r\n image: imageBelote\r\n },\r\n blot: {\r\n image: imageBelote\r\n },\r\n pasoor: {\r\n image: imagePasoor\r\n },\r\n joker: {\r\n image: imageJoker\r\n },\r\n hokm: {\r\n image: imageHokm\r\n },\r\n chingachoong: {\r\n image: imageChingachoong\r\n },\r\n minesweeper: {\r\n image: imageMinesweeper\r\n },\r\n penalty: {\r\n image: imagePenalty\r\n },\r\n poker: {\r\n image: imagePoker\r\n },\r\n hokm2: {\r\n image: imageHokm2\r\n },\r\n pasur: {\r\n image: imagePasoor2\r\n },\r\n hexagon: {\r\n image: imageHexagon,\r\n types: {\r\n 33: imageHexagon37,\r\n 34: imageHexagon43,\r\n 35: imageHexagon61\r\n }\r\n },\r\n default: {\r\n image: imageHokm\r\n }\r\n};\r\n\r\nexport const underConstruction = imageUnderConstruction;\r\n\r\nexport const TOURNAMENT_LIST_RESOURCES = {\r\n Tournament: {\r\n image: ImageTournament\r\n }\r\n};\r\n\r\nconst albatrosPartnerIds = [\r\n \"1bbbf652231945eb2c011056800d3f78\",\r\n \"501f38b14a7797bb82289b7383796390\",\r\n \"073a32e7d5e6473346037d4c133aa0d6\",\r\n \"18a15a4949a1dd266dde5139998c7e98\",\r\n \"dae6e4a5a713d9a4cd29faa9f17121f8\",\r\n \"84dbb94bb63fe0301a42d6d9a01696e0\",\r\n \"c7c5cdc302f2fa082c5c24ad79b4365b\",\r\n \"4898fdadb198b129075d507ad84b9ed4\",\r\n \"97addeeb31784674b206262ff57c6b0e\",\r\n \"d443f10e0b169b2f4df0424a0897f4c2\",\r\n \"d95f9c7dcfda891db29e56dde6006999\",\r\n \"ECEDAC2828645E67C47D16FC80642A2D\",\r\n \"1DBDE870AF9FD3EE00005E12F794F4C8\",\r\n \"797FC7FAF79AE3AD7E9A7B8BABBCDC57\",\r\n \"42CA7D49F6B3B864B22982F98E2AF703\",\r\n \"EE105727EBC9E97EF5A33D9E9A08AE8C\",\r\n \"451F592B5FA7F625CC53DAB04B9F8ABB\",\r\n \"3356667FD99DC76F210904CB6B523432\",\r\n \"C19534B6D89934CDAAF693F80D2E4401\",\r\n \"8E8A58DA1454AD63228450EBFB256B52\",\r\n \"B35A19B3E8E4629595A1D3A44DBC71A4\",\r\n \"9A59B6EA99945FB1112821F43785EAB9\",\r\n \"B9F2A71CCF96DDBAB8F335A49C356DA0\",\r\n \"EF8EAC059D45533E7BAA4B1FE89D9EA3\",\r\n \"B389ACDFA6C241CBFB88CC5F85FC3F4A\",\r\n \"C66179972246FA5B1D2F79DB9129920B\",\r\n \"87B561E411152C36D59E300E4B892F32\",\r\n \"F9802F107FD02957307B61F1D1F09BED\",\r\n \"00880C132AE978C54ED21FA40496BD59\",\r\n \"22D3DA3389C10F7FAFD006B9197F56C8\",\r\n \"95A29B6EA390FB8C05A7D51ED800F383\",\r\n \"EB47FCEBBB4473D9B4395E22A94F3126\",\r\n \"F6694DC577B797264C5E4054546A2156\",\r\n \"2BBB2B5CE3141C536708052E812B4AC6\",\r\n \"F00751F8EB990909336333A7ED1D18D9\",\r\n \"737CAEAB0E0AB47B00224B05B2800641\",\r\n \"8BD0F5B2DEF7BB818361608779C7F33B\",\r\n \"9750A1CFD7A4068253C86721E1454A80\",\r\n \"4301B08D9F8984818B0913B3CB9AF159\",\r\n \"EFBE1BD8FF61035501DCCC30CF328163\",\r\n \"C66FD5E2EC38E9542A9FA72B085770AC\",\r\n \"C6A8E1C0A89053E923DF9C3A3D69FA1B\",\r\n \"6C43A2844A71E5172B0311284D6CE9CE\",\r\n \"84F851C7B115F4DB06415800B5777E4C\",\r\n \"1C0010E9A78BAE77F2EE983B7CE7FB40\",\r\n \"7C0ECB48B49E37324C7383F95D606E81\",\r\n \"7A8B023D5C8E27B7808252CB8B15A421\",\r\n \"16A18E1B32F8FE7247AB23E6305D2387\",\r\n \"4512F8362551DDC6A340BA8240650514\",\r\n \"B22BCFF446AD8021F89E2F1486165764\",\r\n \"8DC7A90C9B7150AFA54D4759A625A36D\",\r\n \"77A06D5A10B461E5BC8271E40BA86067\"\r\n];\r\n\r\nconst autojoinPartnerIds = [\r\n \"073a32e7d5e6473346037d4c133aa0d6\", // TakBet\r\n \"18a15a4949a1dd266dde5139998c7e98 \", // Betfa\r\n \"84dbb94bb63fe0301a42d6d9a01696e0\", // Irtoto\r\n \"501f38b14a7797bb82289b7383796390\" // 1xfa\r\n];\r\n\r\nexport const NO_MOBILE_HOME_BUTTON_PARTNER_IDS = [\r\n \"98C65893E8E4D088C0C1C198B7DCF4F1\", // Fight club (prod)\r\n \"7068EB3453F5011714843D0384E4CD4D\" // Fight club (stg)\r\n];\r\n\r\nconst netbetPartnerId = \"DD33358AF43CC577BA94D4074ADD76D3\";\r\nconst hattrickPartnerId = \"0f4dd631ae8bdfc755e49c1b095ac1f9\";\r\n\r\nexport const isAlbatrosPartner = albatrosPartnerIds.some(\r\n id => typeof id === \"string\" && typeof PartnerId === \"string\" && id.toLowerCase() === PartnerId.toLowerCase()\r\n);\r\n\r\nexport const desktopSliderData = isAlbatrosPartner\r\n ? {\r\n en: [\"enAlbatrosBannerDesktop\", \"enAlbatrosBannerDesktop1\", \"enAlbatrosBannerDesktop2\"],\r\n fa: [\"enAlbatrosBannerDesktop\", \"enAlbatrosBannerDesktop1\", \"enAlbatrosBannerDesktop2\"]\r\n }\r\n : autojoinPartnerIds.includes(PartnerId)\r\n ? {\r\n en: [\r\n \"enAutojoinBannerDesktop\",\r\n \"enAutojoinBannerDesktop1\",\r\n \"enAutojoinBannerDesktop2\",\r\n \"enAutojoinBannerDesktop3\"\r\n ]\r\n }\r\n : netbetPartnerId === PartnerId\r\n ? {\r\n ro: [\"enNetbetBannerDesktop\"],\r\n en: [\"enNetbetBannerDesktop\"]\r\n }\r\n : CANNONBET_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\"enCannonbetBannerDesktop\"]\r\n }\r\n : GEEGEEL_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\"enGeegeelBannerDesktop\"]\r\n }\r\n : TOTO_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\r\n \"enTotoBaronDesktop\",\r\n \"enTotoBlotDesktop\",\r\n \"enTotoDominoDesktop\",\r\n \"enTotoHexagonDesktop\",\r\n \"enTotoNardiDesktop\",\r\n \"enTotoToto11Desktop\"\r\n ],\r\n hy: [\r\n \"hyTotoBaronDesktop\",\r\n \"hyTotoBlotDesktop\",\r\n \"hyTotoDominoDesktop\",\r\n \"hyTotoHexagonDesktop\",\r\n \"hyTotoNardiDesktop\",\r\n \"hyTotoToto11Desktop\"\r\n ],\r\n ru: [\r\n \"ruTotoBaronDesktop\",\r\n \"ruTotoBlotDesktop\",\r\n \"ruTotoDominoDesktop\",\r\n \"ruTotoHexagonDesktop\",\r\n \"ruTotoNardiDesktop\",\r\n \"ruTotoToto11Desktop\"\r\n ]\r\n }\r\n : {\r\n en: [\"enBannerDesktop\"]\r\n };\r\n\r\nexport const mobileSliderData = isAlbatrosPartner\r\n ? {\r\n en: [\"enAlbatrosBannerMobile\", \"enAlbatrosBannerMobile1\", \"enAlbatrosBannerMobile2\"],\r\n fa: [\"enAlbatrosBannerMobile\", \"enAlbatrosBannerMobile1\", \"enAlbatrosBannerMobile2\"]\r\n }\r\n : netbetPartnerId === PartnerId\r\n ? {\r\n ro: [\"enNetbetBannerMobile\"],\r\n en: [\"enNetbetBannerMobile\"]\r\n }\r\n : CANNONBET_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\"enCannonbetBannerMobile\"]\r\n }\r\n : GEEGEEL_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\"enGeegeelBannerMobile\"]\r\n }\r\n : TOTO_PARTNER_ID === PartnerId\r\n ? {\r\n en: [\r\n \"enTotoBaronMobile\",\r\n \"enTotoBlotMobile\",\r\n \"enTotoDominoMobile\",\r\n \"enTotoHexagonMobile\",\r\n \"enTotoNardiMobile\",\r\n \"enTotoToto11Mobile\"\r\n ],\r\n hy: [\r\n \"hyTotoBaronMobile\",\r\n \"hyTotoBlotMobile\",\r\n \"hyTotoDominoMobile\",\r\n \"hyTotoHexagonMobile\",\r\n \"hyTotoNardiMobile\",\r\n \"hyTotoToto11Mobile\"\r\n ],\r\n ru: [\r\n \"ruTotoBaronMobile\",\r\n \"ruTotoBlotMobile\",\r\n \"ruTotoDominoMobile\",\r\n \"ruTotoHexagonMobile\",\r\n \"ruTotoNardiMobile\",\r\n \"ruTotoToto11Mobile\"\r\n ]\r\n }\r\n : {\r\n en: [\"enBannerMobile\"]\r\n };\r\n\r\nexport const bannerImageUrls = {\r\n //toto desktop\r\n enTotoBaronDesktop,\r\n enTotoBlotDesktop,\r\n enTotoDominoDesktop,\r\n enTotoHexagonDesktop,\r\n enTotoNardiDesktop,\r\n enTotoToto11Desktop,\r\n hyTotoBaronDesktop,\r\n hyTotoBlotDesktop,\r\n hyTotoDominoDesktop,\r\n hyTotoHexagonDesktop,\r\n hyTotoNardiDesktop,\r\n hyTotoToto11Desktop,\r\n ruTotoBaronDesktop,\r\n ruTotoBlotDesktop,\r\n ruTotoDominoDesktop,\r\n ruTotoHexagonDesktop,\r\n ruTotoNardiDesktop,\r\n ruTotoToto11Desktop,\r\n //toto mobile\r\n enTotoBaronMobile,\r\n enTotoBlotMobile,\r\n enTotoDominoMobile,\r\n enTotoHexagonMobile,\r\n enTotoNardiMobile,\r\n enTotoToto11Mobile,\r\n hyTotoBaronMobile,\r\n hyTotoBlotMobile,\r\n hyTotoDominoMobile,\r\n hyTotoHexagonMobile,\r\n hyTotoNardiMobile,\r\n hyTotoToto11Mobile,\r\n ruTotoBaronMobile,\r\n ruTotoBlotMobile,\r\n ruTotoDominoMobile,\r\n ruTotoHexagonMobile,\r\n ruTotoNardiMobile,\r\n ruTotoToto11Mobile,\r\n enBannerDesktop,\r\n enBannerMobile,\r\n enAlbatrosBannerDesktop,\r\n enAlbatrosBannerDesktop1,\r\n enAlbatrosBannerDesktop2,\r\n enAutojoinBannerDesktop,\r\n enAutojoinBannerDesktop1,\r\n enAutojoinBannerDesktop2,\r\n enAutojoinBannerDesktop3,\r\n enAlbatrosBannerMobile,\r\n enAlbatrosBannerMobile1,\r\n enAlbatrosBannerMobile2,\r\n enNetbetBannerDesktop,\r\n enNetbetBannerMobile,\r\n enCannonbetBannerDesktop,\r\n enCannonbetBannerMobile,\r\n enGeegeelBannerDesktop,\r\n enGeegeelBannerMobile,\r\n beloteBanner,\r\n chingachoongBanner,\r\n penaltyBanner,\r\n pasoorBanner,\r\n pasurBanner: pasoorBanner,\r\n dominoesBanner,\r\n dominoBanner: dominoesBanner,\r\n backgammonBanner,\r\n backgammonnewBanner,\r\n hokmBanner,\r\n hokm2Banner: hokmBanner,\r\n toto21Banner,\r\n jokerBanner,\r\n minesweeperBanner\r\n};\r\n\r\nexport const masterboardImages = {\r\n Tierce: {\r\n image: ImageTierce\r\n },\r\n Fifty: {\r\n image: Image50\r\n },\r\n Hundred: {\r\n image: Image100\r\n },\r\n FourNines: {\r\n image: Image4x9\r\n },\r\n FourTens: {\r\n image: Image4x10\r\n },\r\n FourAces: {\r\n image: Image4xA\r\n },\r\n FourJacks: {\r\n image: Image4xJ\r\n },\r\n FourKings: {\r\n image: Image4xK\r\n },\r\n FourDames: {\r\n image: Image4xQ\r\n }\r\n};\r\n\r\nexport const FILTERS_NAME = {\r\n NETWORKS: \"selectedNetworkIds\",\r\n SELECTED_NETWORK_IDS: \"selectedNetworkIds\",\r\n SELECTED_GAME_TYPES_IDES: \"selectedGameTypesIds\",\r\n SELECTED_SCORES: \"selectedScores\",\r\n SELECTED_GAME_KIND_IDS: \"selectedGameKindIds\",\r\n SELECTED_MOVE_TIMES: \"selectedMoveTimes\",\r\n SELECTED_EXTRA_TIMES: \"selectedExtraTimes\",\r\n SELECTED_CONVENTIONS: \"selectedConventions\",\r\n MIN_STAKE: \"minStake\",\r\n MAX_STAKE: \"maxStake\",\r\n ORDER_BY_DATE: \"orderByDate\",\r\n ORDER_BY_STAKE: \"orderByStake\"\r\n};\r\n\r\nexport const langObjForMoment = {\r\n en: \"en-gb\",\r\n ru: \"ru\",\r\n hy: \"hy-am\",\r\n fa: \"fa\"\r\n};\r\n\r\n// export const APP_VERSION = \"0.1.0\";\r\nconst [\r\n BELOTE_GAME_KIND_ID,\r\n NEW_HOKM_GAME_KIND_ID,\r\n NEW_PASOOR_GAME_KIND_ID,\r\n HEXAGON_GAME_KIND_ID,\r\n GAME_21,\r\n NEW_BELOTE_GAME_KIND_ID\r\n] = [4, 12, 13, 16, 2, 15];\r\n\r\nexport const gameKindIdsWithPortraitView = [\r\n BELOTE_GAME_KIND_ID,\r\n NEW_HOKM_GAME_KIND_ID,\r\n NEW_PASOOR_GAME_KIND_ID,\r\n NEW_BELOTE_GAME_KIND_ID,\r\n GAME_21\r\n];\r\nexport const gameKindIdsWithNewFullScreen = [BELOTE_GAME_KIND_ID, NEW_BELOTE_GAME_KIND_ID];\r\nexport const gameKindIdsWithOnlyPortraitView = [HEXAGON_GAME_KIND_ID];\r\n\r\nexport const INCOGNITO_POPUP_DATA = {\r\n chrome: {\r\n step0: {\r\n text: \"Click on more button in Chrome window.\",\r\n image: imageChromeStep1\r\n },\r\n step1: {\r\n text: \"Click on settings in opened menu.\",\r\n image: imageChromeStep2\r\n },\r\n step2: {\r\n text: 'Open \"Cookies and other site data\".',\r\n image: imageChromeStep3\r\n },\r\n step3: {\r\n text: \"Select Allow all cookies.\",\r\n image: imageChromeStep4\r\n },\r\n step4: {\r\n text: \"After this changes please reload the page.\",\r\n image: imageChromeStep5\r\n }\r\n },\r\n safari: {\r\n step0: {\r\n text: \"Click on Safari.\",\r\n image: imageSafariStep1\r\n },\r\n step1: {\r\n text: 'Open \"Preferences\" section.',\r\n image: imageSafariStep2\r\n },\r\n step2: {\r\n text: \"Click on Privacy.\",\r\n image: imageSafariStep3\r\n },\r\n step3: {\r\n text: 'Select \"Prevent cross-site tracking\".',\r\n image: imageSafariStep4\r\n },\r\n step4: {\r\n text: \"After this changes please reload the page.\",\r\n image: imageSafariStep5\r\n }\r\n }\r\n};\r\n\r\nexport const badgeTypes = {\r\n New: {\r\n text: \"strNew\"\r\n }\r\n};\r\n\r\nexport const currencySelected = [hattrickPartnerId, GEEGEEL_PARTNER_ID];\r\n\r\nexport const BROWSER_NAME = getBrowserName();\r\n\r\nexport const GAME_KIND_IDS = {\r\n HEXAGON_ID: 16\r\n};\r\n\r\nexport const VALIDATION_COOKIE_NAME = \"_ga_anl_cf3q\";\r\nexport const IS_PWA_APP = navigator.userAgent.includes(\"MobApp\");\r\n","export const LOGIN = \"LOGIN\";\r\nexport const ADD_GAME = \"ADD_GAME\";\r\nexport const SET_GAMES = \"SET_GAMES\";\r\nexport const SET_DEMO_GAMES = \"SET_DEMO_GAMES\";\r\nexport const RESET_GAMES = \"RESET_GAMES\";\r\nexport const UPDATE_GAME = \"UPDATE_GAME\";\r\nexport const REMOVE_GAME = \"REMOVE_GAME\";\r\nexport const MERGE_GAMES = \"MERGE_GAMES\";\r\nexport const DISABLE_GAME = \"DISABLE_GAME\";\r\nexport const ENABLE_GAME = \"ENABLE_GAME\";\r\nexport const SET_GAMES_COUNT = \"SET_GAMES_COUNT\";\r\nexport const SET_IS_COIN = \"SET_IS_COIN\";\r\nexport const SET_BALANCE = \"SET_BALANCE\";\r\nexport const SET_FILTERS = \"SET_FILTERS\";\r\nexport const SET_All_FILTERS = \"SET_All_FILTERS\";\r\nexport const SET_APP_DATA = \"SET_APP_DATA\";\r\nexport const SET_NETWORKS = \"SET_NETWORKS\";\r\nexport const RESET_FILTER = \"RESET_FILTER\";\r\nexport const TOGGLE_MULTI_VIEW = \"TOGGLE_MULTI_VIEW\";\r\nexport const RESET_ALL_FILTERS = \"RESET_ALL_FILTERS\";\r\nexport const KEEP_ONLY_TYPE_IDS = \"KEEP_ONLY_TYPE_IDS\";\r\nexport const ENABLE_FILTERS = \"ENABLE_FILTERS\";\r\nexport const DISABLE_FILTERS = \"DISABLE_FILTERS\";\r\nexport const TOGGLE_UNDER_CONSTRUCTION = \"TOGGLE_UNDER_CONSTRUCTION\";\r\nexport const ADD_UNDER_CONSTRUCTION_INFO = \"ADD_UNDER_CONSTRUCTION_INFO\";\r\nexport const REMOVE_UNDER_CONSTRUCTION_INFO = \"REMOVE_UNDER_CONSTRUCTION_INFO\";\r\nexport const ADD_ACTIVE_GAME_INTO_LAUNCHER = \"ADD_ACTIVE_GAME_INTO_LAUNCHER\";\r\nexport const REPLACE_ACTIVE_GAME_INTO_LAUNCHER = \"REPLACE_ACTIVE_GAME_INTO_LAUNCHER\";\r\nexport const RESET_SECONDARY_FILTERS = \"RESET_SECONDARY_FILTERS\";\r\nexport const REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES = \"REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES\";\r\nexport const UPDATE_LAUNCHER_GAME = \"UPDATE_LAUNCHER_GAME\";\r\nexport const REMOVE_LAUNCHER_GAME = \"REMOVE_LAUNCHER_GAME\";\r\nexport const REMOVE_ALL_LAUNCHER_GAMES = \"REMOVE_ALL_LAUNCHER_GAMES\";\r\nexport const REMOVE_ALL_LAUNCHER_ACTIVE_GAMES = \"REMOVE_ALL_LAUNCHER_ACTIVE_GAMES\";\r\nexport const ADD_INTO_REQUESTED_GAMES = \"ADD_INTO_REQUESTED_GAMES\";\r\nexport const REMOVE_FROM_REQUESTED_GAMES = \"REMOVE_FROM_REQUESTED_GAMES\";\r\nexport const ADD_LAUNCHER_GAME = \"ADD_LAUNCHER_GAME\";\r\nexport const SET_LAUNCHER_GAMES = \"SET_LAUNCHER_GAMES\";\r\nexport const MERGE_LAUNCHER_GAMES = \"MERGE_LAUNCHER_GAMES\";\r\nexport const SET_MY_STARTED_GAMES_URLS = \"SET_MY_STARTED_GAMES_URLS\";\r\nexport const MAKE_OWNER_GAME_TABLE_FREE = \"MAKE_OWNER_GAME_TABLE_FREE\";\r\nexport const SET_TOURNAMENTS = \"SET_TOURNAMENTS\";\r\nexport const SET_LOADER_IN_TOURNAMENTS_LIST = \"SET_LOADER_IN_TOURNAMENTS_LIST\";\r\nexport const RESET_ALL_TOURNAMENTS_DATA = \"RESET_ALL_TOURNAMENTS_DATA\";\r\nexport const MERGE_TOURNAMENTS = \"MERGE_TOURNAMENTS\";\r\nexport const ADD_TOURNAMENT = \"ADD_TOURNAMENT\";\r\nexport const REMOVE_TOURNAMENT = \"REMOVE_TOURNAMENT\";\r\nexport const TOGGLE_DISABLE_TOURNAMENT = \"TOGGLE_DISABLE_TOURNAMENT\";\r\nexport const UPDATE_TOURNAMENT = \"UPDATE_TOURNAMENT\";\r\nexport const UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT = \"UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT\";\r\nexport const SET_SELECTED_TOURNAMENT_INFO = \"SET_SELECTED_TOURNAMENT_INFO\";\r\nexport const SET_SELECTED_TOURNAMENT_PRIZES = \"SET_SELECTED_TOURNAMENT_PRIZES\";\r\nexport const SET_CUSTOM_TOURNAMENTS = \"SET_CUSTOM_TOURNAMENTS\";\r\nexport const UPDATE_CUSTOM_TOURNAMENTS = \"UPDATE_CUSTOM_TOURNAMENTS\";\r\nexport const DISABLE__CUSTOM_TOURNAMENT_BUTTON = \"DISABLE__CUSTOM_TOURNAMENT_BUTTON\";\r\nexport const SET_CUSTOM_TOURNAMENTS_TYPE = \"SET_CUSTOM_TOURNAMENTS_TYPE\";\r\nexport const SET_TOURNAMENT_INFO = \"SET_TOURNAMENT_INFO\";\r\nexport const SET_SELECTED_TOURNAMENT_GENERAL_INFO = \"SET_SELECTED_TOURNAMENT_GENERAL_INFO\";\r\nexport const RESET_TOURNAMENT_INFO = \"RESET_TOURNAMENT_INFO\";\r\nexport const SET_TOURNAMENT_INFO_ID = \"SET_TOURNAMENT_INFO_ID\";\r\nexport const SET_TOURNAMENT_GAMES = \"SET_TOURNAMENT_GAMES\";\r\nexport const REMOVE_TOURNAMENT_ALL_GAMES = \"REMOVE_TOURNAMENT_ALL_GAMES\";\r\nexport const ADD_TOURNAMENT_GAMES = \"ADD_TOURNAMENT_GAMES\";\r\nexport const REMOVE_TOURNAMENT_GAME = \"REMOVE_TOURNAMENT_GAME\";\r\nexport const CHANGE_TOURNAMENT_GAME_SCORE = \"CHANGE_TOURNAMENT_GAME_SCORE\";\r\nexport const UPDATE_TOURNAMENT_PLAYERS_QUANTITY = \"UPDATE_TOURNAMENT_PLAYERS_QUANTITY\";\r\nexport const SET_TOURNAMENT_INFO_PLAYERS = \"SET_TOURNAMENT_INFO_PLAYERS\";\r\nexport const UPDATE_TOURNAMENT_INFO_STATUS = \"UPDATE_TOURNAMENT_INFO_STATUS\";\r\nexport const UPDATE_CURRENT_PAGE = \"UPDATE_CURRENT_PAGE\";\r\nexport const DISABLE_BTN_WHILE_WS_RECONNECTING = \"DISABLE_BTN_WHILE_WS_RECONNECTING\";\r\nexport const ACTIVE_POPUP = \"ACTIVE_POPUP\";\r\nexport const UPDATE_JACKPOT_DATA = \"UPDATE_JACKPOT_DATA\";\r\nexport const REPLACE_JACKPOT_DATA_ITEM = \"REPLACE_JACKPOT_DATA_ITEM\";\r\nexport const SET_CURRENT_GAME_KIND = \"SET_CURRENT_GAME_KIND\";\r\n\r\n//game templates\r\nexport const ADD_CONVENTIONS_TEMPLATES = \"ADD_CONVENTIONS_TEMPLATES\";\r\nexport const EDIT_CONVENTIONS_TEMPLATE = \"EDIT_CONVENTIONS_TEMPLATE\";\r\nexport const DELETE_CONVENTIONS_TEMPLATE = \"DELETE_CONVENTIONS_TEMPLATE\";\r\nexport const SELECT_CONVENTION_TEMPLATE = \"SELECT_CONVENTION_TEMPLATE\";\r\n\r\n//Game History action types\r\nexport const SET_GAME_HISTORY = \"SET_GAME_HISTORY\";\r\n\r\n//Popup action types\r\nexport const OPEN_POPUP = \"OPEN_POPUP\";\r\nexport const CLOSE_POPUP = \"CLOSE_POPUP\";\r\n\r\n//Tournament History action types\r\nexport const SET_TOURNAMENT_HISTORY = \"SET_TOURNAMENT_HISTORY\";\r\n\r\nexport const MASTER_BOARD_SELECTED_RANGE_ID = \"MASTERBOARD_SELECTED_RANGE_ID\";\r\nexport const MASTER_BOARD_RANGES = \"MASTER_BOARD_RANGES\";\r\nexport const MASTER_BOARD_PLAYER_WON_FOR_ROW = \"MASTER_BOARD_PLAYER_WON_FOR_ROW\";\r\nexport const MASTER_BOARD_TOTAL_AMOUNT = \"MASTER_BOARD_TOTAL_AMOUNT\";\r\nexport const MASTER_BOARD_RANGE_ROWS = \"MASTER_BOARD_RANGE_ROWS\";\r\n\r\nexport const TOURNAMENT_KING_LEADER_BOARD = \"TOURNAMENT_KING_LEADER_BOARD\";\r\nexport const UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS = \"UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS\";\r\nexport const SELECTED_TOURNAMENT_KING_ID = \"SELECTED_TOURNAMENT_KING_ID\";\r\nexport const CANCEL_SELECTED_TOURNAMENT_KING = \"CANCEL_SELECTED_TOURNAMENT_KING\";\r\nexport const MERGE_LEADER_BOARD_DATA = \"MERGE_LEADER_BOARD_DATA\";\r\nexport const TOURNAMENT_KING_CURRENT_PLAYER = \"TOURNAMENT_KING_CURRENT_PLAYER\";\r\nexport const TOURNAMENT_KING_DETAILS = \"TOURNAMENT_KING_DETAILS\";\r\nexport const UPDATE_TOURNAMENT_KING_CURRENT_PLAYER = \"UPDATE_TOURNAMENT_KING_CURRENT_PLAYER\";\r\nexport const TOURNAMENT_KING_TEMPLATES_DATA = \"TOURNAMENT_KING_TEMPLATES_DATA\";\r\nexport const UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM = \"UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM\";\r\nexport const REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM = \"REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM\";\r\n\r\n//AutoJoin action types\r\nexport const SET_AUTO_JOIN_TABLES_DATA = \"SET_AUTO_JOIN_TABLES_DATA\";\r\nexport const SET_AUTO_JOIN_FROM_TO = \"SET_AUTO_JOIN_FROM_TO\";\r\nexport const SET_AUTO_JOIN_DATA_LOADING = \"SET_AUTO_JOIN_DATA_LOADING\";\r\nexport const ADD_AUTO_JOIN_GAME = \"ADD_AUTO_JOIN_GAME\";\r\nexport const UPDATE_AUTO_JOIN_GAMES = \"UPDATE_AUTO_JOIN_GAMES\";\r\nexport const REMOVE_AUTO_JOIN_GAME = \"REMOVE_AUTO_JOIN_GAME\";\r\nexport const ADD_MORE_AUTO_JOIN_GAMES = \"ADD_MORE_AUTO_JOIN_GAMES\";\r\nexport const RESET_FROM_TO_AUTO_JOIN = \"RESET_FROM_TO_AUTO_JOIN\";\r\nexport const SET_AUTO_JOIN_CONNECTION_IS_LOW = \"SET_AUTO_JOIN_CONNECTION_IS_LOW\";\r\n\r\n//Rake Race Tournaments action types\r\nexport const SET_RAKE_RACE_TOURNAMENTS = \"SET_RAKE_RACE_TOURNAMENTS\";\r\nexport const SET_RAKE_RACE_TOURNAMENTS_DETAILS = \"SET_RAKE_RACE_TOURNAMENTS_DETAILS\";\r\nexport const SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID = \"SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID\";\r\nexport const RESET_RAKE_RACE_STATE = \"RESET_RAKE_RACE_STATE\";\r\nexport const CANCEL_RAKE_RACE = \"CANCEL_RAKE_RACE\";\r\nexport const FINISH_RAKE_RACE = \"FINISH_RAKE_RACE\";\r\nexport const START_RAKE_RACE = \"START_RAKE_RACE\";\r\nexport const SET_RAKE_RACE_LEADER_BOARD = \"SET_RAKE_RACE_LEADER_BOARD\";\r\nexport const RESET_RAKE_RACE_LEADER_BOARD = \"RESET_RAKE_RACE_LEADER_BOARD\";\r\nexport const SET_RAKE_RACE_LEADER_BOARD_LOADING = \"SET_RAKE_RACE_LEADER_BOARD_LOADING\";\r\nexport const SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA = \"SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA\";\r\n","import totoFavicon from \"./totoFavicon.ico\";\r\nimport cannonbetFavicon from \"./cannonbetFavicon.ico\";\r\nimport Arianbet from \"./Arianbet.ico\";\r\nimport Marcbet from \"./Marcbet.ico\";\r\nimport Novinbet from \"./Novinbet.ico\";\r\nimport winsport from \"./winsport.ico\";\r\nimport Irbet365 from \"./Irbet365.ico\";\r\nimport Onexfa from \"./Onexfa.ico\";\r\nimport Takbet from \"./Takbet.ico\";\r\nimport Betfa from \"./Betfa.ico\";\r\nimport Irtoto from \"./Irtoto.ico\";\r\nimport Manotobet from \"./Manotobet.ico\";\r\nimport cyrusbet from \"./cyrusbet.ico\";\r\nimport maxbet from \"./maxbet.ico\";\r\nimport ibet from \"./ibet.ico\";\r\nimport betzan from \"./betzan.ico\";\r\nimport bia2bet from \"./bia2bet.ico\";\r\nimport parsgoal from \"./parsgoal.ico\";\r\nimport royalbet from \"./royalbet.ico\";\r\nimport betchanel from \"./betchanel.ico\";\r\nimport kingbet from \"./kingbet.ico\";\r\nimport betcloob from \"./betcloob.ico\";\r\nimport violetbet from \"./violetbet.ico\";\r\nimport igoal90 from \"./igoal90.ico\";\r\nimport i90API from \"./i90API.ico\";\r\nimport defaultFavicon from \"./default-favicon.ico\";\r\n\r\nconst favIcons = {\r\n totoFavicon,\r\n cannonbetFavicon,\r\n Arianbet,\r\n Marcbet,\r\n Novinbet,\r\n winsport,\r\n Irbet365,\r\n Onexfa,\r\n Takbet,\r\n Betfa,\r\n Irtoto,\r\n Manotobet,\r\n cyrusbet,\r\n maxbet,\r\n ibet,\r\n betzan,\r\n bia2bet,\r\n parsgoal,\r\n royalbet,\r\n betchanel,\r\n kingbet,\r\n betcloob,\r\n violetbet,\r\n igoal90,\r\n i90API,\r\n defaultFavicon\r\n};\r\n\r\nexport default favIcons;\r\n","import sendRequest from \"../connection/api\";\r\nimport {\r\n CANCELED_STATUS,\r\n CHANGE_DICE,\r\n COIN_LONG,\r\n FINISHED_ORDER_CASE,\r\n FINISHED_STATUS,\r\n GAME_ID,\r\n GAME_ID_QUERY_PARAM,\r\n GAME_QUERY_PARAM_FOR_NEW_WINDOW,\r\n GAME_QUERY_PARAMS_FROM_LOBBY_URL,\r\n ID,\r\n IsMobileLogin,\r\n LOADABLE_COUNT,\r\n LOCAL_IP,\r\n MY_NOT_STARTED_ORDER_CASE,\r\n NOT_STARTED_ORDER_CASE,\r\n PLAY_TAKE_RISK,\r\n POSITIONS,\r\n REBUY_STATUS,\r\n REGISTER_STATUS,\r\n REPLAY_GAME_OFFER,\r\n SOON_STATUS,\r\n STARTED_ORDER_CASE,\r\n TAKE_RISK,\r\n token,\r\n TOURNAMENT_PRIVATE_STATUS,\r\n GAME_HISTORY_SLIDER,\r\n OPEN_GAME_STATUS,\r\n STATUS_INFO,\r\n CLOSE_GAME_STATUS,\r\n PLAY_GAME_STATUS,\r\n VIEW_GAME_STATUS,\r\n GAME_HALL_GAMES_ARRAYS_NAMES,\r\n GAME_OFFER_DURATION,\r\n COIN,\r\n INITIAL_COUNT,\r\n QUARTER_HOUR,\r\n T_KING_IN_PROGRESS_STATUS,\r\n T_KING_SOON_STATUS,\r\n T_KING_FINISHED_STATUS,\r\n T_KING_CANCELED_STATUS,\r\n PartnerId,\r\n APP_URL,\r\n gameKindIdsWithPortraitView,\r\n gameKindIdsWithNewFullScreen,\r\n SHOW_TO_GUEST,\r\n CHANGE_CARD,\r\n WITH_RATING,\r\n BELOTE_KIND_ID,\r\n BACKGAMMON_KIND_ID,\r\n PASOOR_KIND_ID,\r\n HOKM_KIND_ID,\r\n MY_STARTED_GAMES,\r\n STARTED_GAMES,\r\n NOT_STARTED_GAMES,\r\n MY_NOT_STARTED_GAMES,\r\n STARTED_STATUS,\r\n desktopSliderData,\r\n mobileSliderData,\r\n ERROR_CODE,\r\n NOTIFICATION_DURATION,\r\n META_TITLES,\r\n PARTIAL_ROUTE_PATHS,\r\n GAME_ID_INDEXES_OF_PATHNAME,\r\n GAMES_COUNT_IN_GAME_LAUNCHER,\r\n UPCOMING_TOURNAMENTS,\r\n AUTO_JOIN_DEFAULT_GAME_TABLE_ID,\r\n partnerFiltersData,\r\n TOTO_PARTNER_ID,\r\n TOTO_PASOOR_CONVERTED_NAME,\r\n TOTO_HOKM_CONVERTED_NAME,\r\n SIT_AND_GO_TOURNAMENT_TYPE,\r\n GAME_KIND_TITLE_ID,\r\n GAME_DATA_CHANGES_ITEMS_QUANTITY_ID,\r\n GAME_TYPE_TITLE_ID,\r\n GET_PARTNER_CONFIG,\r\n GET_GAME_TABLES,\r\n BROWSER_NAME,\r\n GET_TOURNAMENTS,\r\n gameKindIdsWithOnlyPortraitView,\r\n isRGS,\r\n mainDomain,\r\n TOTO_NEW_GAMES_LOBBY_URL,\r\n TOTO_PARTNER_ID_TEST,\r\n NEW_BELOTE_KIND_ID,\r\n PLAY_DEMO_GAME,\r\n lang,\r\n GET_REALITY_CHECK_INFO,\r\n MINUTE_IN_MILISECONDS\r\n} from \"../constants\";\r\nimport {\r\n addGameIntoLauncher,\r\n closePopup,\r\n mergeGameHallGames,\r\n mergeTournaments,\r\n openPopup,\r\n removeGameFromLauncher,\r\n setGamesCount,\r\n setAutoJoinFromTo,\r\n // setCurrentPageLoader,\r\n setGameHallGames,\r\n toggleMultiView,\r\n updateCurrentPage,\r\n actionCreatorForTournamentKingLeaderBoardData,\r\n // disableBtnWhileWSReconnecting,\r\n toggleDisableBtnWhileWSReconnecting,\r\n disableFilters,\r\n enableFilters\r\n} from \"../store/actions\";\r\nimport { store } from \"../store\";\r\nimport {\r\n convertCoinToCurrency,\r\n convertSecondsToMinutes,\r\n getUrlParam,\r\n joinArrays,\r\n numberWithThousandSeparator\r\n} from \"./utility\";\r\nimport t from \"./translation\";\r\nimport { invoke } from \"../connection/socket/socketRequests\";\r\nimport { POPUP_NAMES } from \"../constants/popupNames\";\r\nimport { batchActions } from \"redux-batched-actions\";\r\nimport { onCloseHandler, showNotification } from \"livecasino/components/Notification\";\r\nimport React from \"react\";\r\nimport TournamentStartedNotification from \"../components/NotificationWrapper/Notifications/tournamentStartedNotification\";\r\nimport ActiveGameNotification from \"../components/NotificationWrapper/Notifications/activeGameNotification\";\r\nimport InfoNotification from \"../components/NotificationWrapper/Notifications/InfoNotification\";\r\nimport { makeAPIGetRequest } from \"../connection/api/networkService\";\r\nimport favIcons from \"../assets/images/favicons\";\r\n\r\n/**\r\n * Returns all networks data\r\n * @param {array} networksData\r\n * @param {boolean} isAutoJoin\r\n * @return {object}\r\n */\r\nexport function handleNetworksData(networksData, isAutoJoin) {\r\n const handledNetworksData = {};\r\n const {\r\n ShowDemo,\r\n Networks,\r\n PossibleGamePoints,\r\n PossibleMoveTimes,\r\n PossibleExtraTimes,\r\n PossibleConventions,\r\n PossibleGameTypes,\r\n PossibleQuickFilters,\r\n PossibleGameKinds,\r\n ConventionDependencies\r\n } = networksData;\r\n\r\n for (let i = 0; i < Networks.length; ++i) {\r\n const network = Networks[i];\r\n if (!isAutoJoin) {\r\n network.ConventionsTemplates = handleConventionsTemplatesData(\r\n network.ConventionsTemplates,\r\n PossibleGameTypes[0]\r\n );\r\n getConventionsNames(network.GameTypeConfigurations);\r\n }\r\n handledNetworksData[network.Id] = network;\r\n }\r\n\r\n // let possibleGameTypes = PossibleGameTypes.map(i => ({ GameTypeId: i }));\r\n let possibleConventionsNames = getConventionsNames([{ Conventions: PossibleConventions }]);\r\n\r\n return {\r\n showDemo: ShowDemo,\r\n networks: handledNetworksData,\r\n possibleGamePoints: PossibleGamePoints,\r\n possibleMoveTimes: PossibleMoveTimes,\r\n possibleExtraTimes: PossibleExtraTimes,\r\n possibleConventions: PossibleConventions,\r\n possibleConventionsNames,\r\n possibleGameTypes: PossibleGameTypes,\r\n possibleQuickFilters: PossibleQuickFilters,\r\n possibleGameKinds: PossibleGameKinds,\r\n conventionDependencies: ConventionDependencies\r\n };\r\n}\r\n\r\n/**\r\n * collect request body based on filters\r\n * @param {array} conventionsTemplates\r\n * @param {number} currentGameType\r\n * @return {undefined}\r\n */\r\nexport function handleConventionsTemplatesData(conventionsTemplates, currentGameType) {\r\n const length = conventionsTemplates && conventionsTemplates.length;\r\n\r\n if (length < 3) {\r\n for (let i = 0; i < 3 - length; i++) {\r\n conventionsTemplates.push({ Id: \"EmptyTemplate\" + i });\r\n }\r\n }\r\n\r\n let onlyCurrentTypeTemplates;\r\n if (IsMobileLogin) {\r\n if (length > 0) {\r\n onlyCurrentTypeTemplates = conventionsTemplates.filter(\r\n item => item.GameTypeId === currentGameType || !item.GameTypeId\r\n );\r\n }\r\n }\r\n return onlyCurrentTypeTemplates || conventionsTemplates;\r\n}\r\n\r\n/**\r\n * collect request body based on filters\r\n * @param {object} data\r\n * @return {object}\r\n */\r\nexport function handleUnderConstructionData(data) {\r\n const underConstructionData = {\r\n underConstructionSchedule: []\r\n };\r\n const { GameTypeIdles } = data.Model;\r\n if (GameTypeIdles) {\r\n GameTypeIdles.forEach(i => {\r\n underConstructionData.underConstructionSchedule.push(i);\r\n });\r\n }\r\n\r\n return underConstructionData;\r\n}\r\n\r\n/**\r\n * update jackpot data by id\r\n * @param {array} currentData\r\n * @param {array} newData\r\n * @return {array}\r\n */\r\nexport function updateJackpot(currentData, newData) {\r\n const updatedData = [];\r\n\r\n for (let i = 0; i < currentData.length; i++) {\r\n updatedData.push({\r\n ...currentData[i],\r\n ...newData.find(itmInner => itmInner.Id === currentData[i].Id)\r\n });\r\n }\r\n return updatedData;\r\n}\r\n\r\n/**\r\n * replace jackpot item\r\n * @param {array} jackpots\r\n * @param {object} newJackpotItem\r\n * @return {array}\r\n */\r\n\r\nexport function replaceJackpotItem(jackpots, newJackpotItem) {\r\n const jackpotItems = [...jackpots];\r\n let indexOfReplacingItem;\r\n for (let i = 0; i < jackpots.length; i++) {\r\n if (jackpotItems[i].JackpotTemplateId === newJackpotItem.JackpotTemplateId) {\r\n indexOfReplacingItem = i;\r\n break;\r\n }\r\n }\r\n jackpotItems[indexOfReplacingItem] = newJackpotItem;\r\n return jackpotItems;\r\n}\r\n\r\n/**\r\n * collect request body based on filters\r\n * @return {object}\r\n */\r\nexport function getReqBodyFilters(reqBody, filtersData) {\r\n const {\r\n selectedNetworkIds,\r\n selectedGameTypesIds,\r\n selectedScores,\r\n selectedMoveTimes,\r\n selectedExtraTimes,\r\n selectedConventions,\r\n minStake,\r\n maxStake\r\n } = filtersData;\r\n const conventions = {};\r\n\r\n selectedConventions &&\r\n selectedConventions.forEach(item => {\r\n conventions[item] = true;\r\n });\r\n\r\n reqBody.minStake = minStake || \"\";\r\n reqBody.maxStake = maxStake || \"\";\r\n reqBody.conventionsFilter = conventions;\r\n selectedNetworkIds && selectedNetworkIds.length && (reqBody.networks = selectedNetworkIds);\r\n selectedGameTypesIds && selectedGameTypesIds.length && (reqBody.gameTypes = selectedGameTypesIds);\r\n selectedScores && selectedScores && selectedScores.length && (reqBody.gamePoints = selectedScores);\r\n selectedMoveTimes && selectedMoveTimes && selectedMoveTimes.length && (reqBody.moveTimes = selectedMoveTimes);\r\n selectedExtraTimes && selectedExtraTimes && selectedExtraTimes.length && (reqBody.extraTimes = selectedExtraTimes);\r\n\r\n return reqBody;\r\n}\r\n\r\n/**\r\n * add changeDice to game\r\n * @return {undefined}\r\n */\r\nexport function diceChangeForGame(game) {\r\n let gameKindId = Number.isInteger(game.GameKindId) && game.GameKindId > 0 && Number(game.GameKindId),\r\n pathname = window.location.pathname;\r\n if (!gameKindId) {\r\n gameKindId = pathname.slice(pathname.indexOf(\"game/\") + 5, pathname.length);\r\n if (IsMobileLogin && pathname.includes(\"type\")) {\r\n gameKindId = pathname.slice(pathname.indexOf(\"game/\") + 5, pathname.indexOf(\"/type/\"));\r\n }\r\n }\r\n gameKindId = Number(gameKindId);\r\n const { GameDataChangeParameters } = game;\r\n if (GameDataChangeParameters && GameDataChangeParameters.length && GameDataChangeParameters[0].ItemsQuantity) {\r\n if (gameKindId === BELOTE_KIND_ID || gameKindId === NEW_BELOTE_KIND_ID) {\r\n game.Conventions[CHANGE_CARD] = true;\r\n } else if (gameKindId === BACKGAMMON_KIND_ID) {\r\n game.Conventions[CHANGE_DICE + GameDataChangeParameters[0].ItemsQuantity] = true;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * add changeDice to dataTable\r\n * @return {object}\r\n */\r\nexport function addDiceChangeToConventions(data) {\r\n if (data?.GameTables) {\r\n data.GameTables.forEach(item => {\r\n item.forEach(game => {\r\n diceChangeForGame(game);\r\n });\r\n });\r\n }\r\n return data;\r\n}\r\n\r\n/**\r\n * determine if number is valid for specified params\r\n * @param {string} number\r\n * @param {number} maxValue\r\n * @param {number} precision\r\n * @return {boolean}\r\n */\r\nexport function isValidNumber(number, maxValue, precision) {\r\n const { isCoin } = store.getState().appData;\r\n return !(\r\n number.length > 0 &&\r\n (isNaN(number) ||\r\n (number.indexOf(\".\") !== -1 &&\r\n !(Number(precision) > 0 || number.length - 1 - number.indexOf(\".\") > precision) &&\r\n !isCoin) ||\r\n Number(number) > maxValue)\r\n );\r\n}\r\n\r\n/**\r\n * get Game names from appData\r\n * @return {object}\r\n */\r\n\r\nexport function getAllGamesFromReduxStore() {\r\n const { Model } = store.getState().appData;\r\n const gamesObj = {};\r\n if (Model) {\r\n const { PartnersAllGameKinds } = Model;\r\n if (PartnersAllGameKinds) {\r\n PartnersAllGameKinds.forEach(item => {\r\n gamesObj[`id${item.GameKindId}`] = item.Name;\r\n });\r\n }\r\n }\r\n return gamesObj;\r\n}\r\n\r\n/**\r\n * set Game name as meta title and capitalize it\r\n * @return {undefined}\r\n */\r\n\r\nfunction getGameTitleFromPathName(pathName, gameIdIndex) {\r\n const gamesObj = getAllGamesFromReduxStore();\r\n\r\n if (Object.keys(gamesObj).length > 0) {\r\n const splitArr = pathName.split(\"/\");\r\n const splitGameIdIndex = splitArr[gameIdIndex];\r\n const isPasoor = Number(splitGameIdIndex) === PASOOR_KIND_ID;\r\n const isHokm = Number(splitGameIdIndex) === HOKM_KIND_ID;\r\n const isPasoorOrIsHokm = isPasoor || isHokm;\r\n let gameTitle = gamesObj[`id${splitGameIdIndex}`];\r\n\r\n if (PartnerId === TOTO_PARTNER_ID && isPasoorOrIsHokm) {\r\n if (isPasoor) {\r\n return TOTO_PASOOR_CONVERTED_NAME;\r\n } else if (isHokm) {\r\n return TOTO_HOKM_CONVERTED_NAME;\r\n }\r\n } else {\r\n return gameTitle ? gameTitle.charAt(0).toUpperCase() + gameTitle.slice(1) : \"\";\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * set meta Title for each route for mobile\r\n * @return {undefined}\r\n */\r\n\r\nexport function setDocTitleByRoute(pathName) {\r\n let title = \"Skill Games\";\r\n if (META_TITLES[pathName]) {\r\n title = META_TITLES[pathName];\r\n } else if (pathName.includes(PARTIAL_ROUTE_PATHS.MASTERBOARD)) {\r\n title = \"Master Board\";\r\n } else if (pathName.includes(PARTIAL_ROUTE_PATHS.GAME_HALL_GAME)) {\r\n title = getGameTitleFromPathName(pathName, GAME_ID_INDEXES_OF_PATHNAME[PARTIAL_ROUTE_PATHS.GAME_HALL_GAME]);\r\n } else if (pathName.includes(PARTIAL_ROUTE_PATHS.GAME_TYPES)) {\r\n title = getGameTitleFromPathName(pathName, GAME_ID_INDEXES_OF_PATHNAME[PARTIAL_ROUTE_PATHS.GAME_TYPES]);\r\n }\r\n\r\n translateDocumentTitle(title);\r\n}\r\n\r\n/**\r\n * update html lang attribute\r\n * @param lang\r\n */\r\nexport function updateDocumentLanguage(lang) {\r\n document.documentElement.lang = lang;\r\n}\r\n\r\n/**\r\n * get game hall games\r\n * @return {undefined}\r\n */\r\nexport function getGames(gameId, fromRowNumber, pageItemsCount, dataHandler, typeId, filtersData = {}) {\r\n const reqBody = {\r\n gameKindId: gameId,\r\n fromRowNumber,\r\n pageItemsCount\r\n };\r\n const copiedFilters = typeId ? { ...filtersData, selectedGameTypesIds: [Number(typeId)] } : filtersData;\r\n const body = { ...getReqBodyFilters(reqBody, copiedFilters) };\r\n // the under functionality id ofr disabling filters till the response received\r\n store.dispatch(disableFilters());\r\n sendRequest(GET_GAME_TABLES, body).then(data => {\r\n data && dataHandler(addDiceChangeToConventions(data.Model));\r\n store.dispatch(enableFilters());\r\n });\r\n // store.dispatch(actionCreatorToGetGameTables(body, dataHandler));\r\n}\r\n\r\n/**\r\n * handleTournamentData\r\n * @param {object} data\r\n * @return {object}\r\n */\r\nfunction handleTournamentData(data) {\r\n const { Tournaments } = data;\r\n for (let i = 0, len = Tournaments.length; i < len; ++i) {\r\n const currentTour = Tournaments[i];\r\n for (let j = 0, lenJ = currentTour.length; j < lenJ; ++j) {\r\n currentTour[j].startDateTime = new Date().getTime() + currentTour[j].StartDateInMilliseconds;\r\n }\r\n }\r\n return data;\r\n}\r\n\r\n/**\r\n * get game hall games\r\n * @return {undefined}\r\n */\r\nexport function getTournaments(type, fromRowNumber, pageItemsCount, selectedGameKindIds, dataHandler) {\r\n const requestBody = {\r\n type,\r\n fromRowNumber,\r\n pageItemsCount\r\n };\r\n if (selectedGameKindIds && selectedGameKindIds.length) {\r\n requestBody.gameKindsIds = selectedGameKindIds;\r\n }\r\n // YES\r\n store.dispatch(disableFilters());\r\n sendRequest(GET_TOURNAMENTS, requestBody).then(data => {\r\n store.dispatch(enableFilters());\r\n data && dataHandler(handleTournamentData(data.Model));\r\n });\r\n // store.dispatch(actionCreatorToGetTournaments(requestBody, dataHandler, handleTournamentData));\r\n}\r\n\r\n/**\r\n * collect game hall filters data\r\n * @param {object} nextProps\r\n * @param {object} prevState\r\n * @return {undefined}\r\n */\r\nexport function collectGameHallFilters(nextProps, prevState) {\r\n const {\r\n networks,\r\n selectedNetworkIds,\r\n selectedGameTypesIds,\r\n selectedScores,\r\n selectedMoveTimes,\r\n selectedExtraTimes,\r\n selectedConventions,\r\n possibleGameTypes,\r\n possibleGamePoints,\r\n possibleMoveTimes,\r\n possibleExtraTimes,\r\n possibleConventionsNames,\r\n minStake,\r\n maxStake\r\n } = nextProps;\r\n let { gameTypes, scores, moveTimes, extraTimes, conventions } = prevState;\r\n const scoresByType = [];\r\n const moveTimesByType = [];\r\n const extraTimesByType = [];\r\n const conventionsByType = [];\r\n\r\n if (selectedNetworkIds.length) {\r\n const currentNetworkId = selectedNetworkIds[0];\r\n const gameConfigs = networks[currentNetworkId].GameTypeConfigurations;\r\n\r\n gameTypes = gameConfigs.map(item => {\r\n if (selectedGameTypesIds.length) {\r\n if (selectedGameTypesIds.includes(item.GameTypeId)) {\r\n collectFiltersData(scoresByType, moveTimesByType, extraTimesByType, conventionsByType, item);\r\n }\r\n } else {\r\n collectFiltersData(scoresByType, moveTimesByType, extraTimesByType, conventionsByType, item);\r\n }\r\n return item.GameTypeId;\r\n });\r\n\r\n scores = joinArrays(...scoresByType);\r\n moveTimes = joinArrays(...moveTimesByType);\r\n extraTimes = joinArrays(...extraTimesByType);\r\n conventions = joinArrays(...conventionsByType);\r\n } else if (selectedGameTypesIds.length) {\r\n const newGameTypes = [];\r\n\r\n Object.keys(networks).forEach(id => {\r\n newGameTypes.push(\r\n networks[id].GameTypeConfigurations.map(item => {\r\n if (selectedGameTypesIds.includes(item.GameTypeId)) {\r\n collectFiltersData(scoresByType, moveTimesByType, extraTimesByType, conventionsByType, item);\r\n }\r\n return item.GameTypeId;\r\n })\r\n );\r\n });\r\n\r\n gameTypes = joinArrays(...newGameTypes);\r\n scores = joinArrays(...scoresByType);\r\n moveTimes = joinArrays(...moveTimesByType);\r\n extraTimes = joinArrays(...extraTimesByType);\r\n conventions = joinArrays(...conventionsByType);\r\n } else {\r\n gameTypes = possibleGameTypes;\r\n scores = possibleGamePoints;\r\n moveTimes = possibleMoveTimes;\r\n extraTimes = possibleExtraTimes;\r\n conventions = possibleConventionsNames;\r\n }\r\n\r\n return {\r\n networks,\r\n selectedNetworkIds,\r\n gameTypes,\r\n selectedGameTypesIds,\r\n scores,\r\n selectedScores,\r\n moveTimes,\r\n selectedMoveTimes,\r\n extraTimes,\r\n selectedExtraTimes,\r\n conventions,\r\n selectedConventions,\r\n minStake,\r\n maxStake\r\n };\r\n}\r\n\r\nexport function setActiveGamesInterval(cb) {\r\n const intervalId = setInterval(() => {\r\n const { networks } = store.getState().appData.networksData;\r\n networks &&\r\n (() => {\r\n cb();\r\n clearInterval(intervalId);\r\n })();\r\n }, 500);\r\n}\r\n\r\n/**\r\n * reOpen not finished games\r\n * @return {undefined}\r\n */\r\nexport function reOpenNotFinishedGames(notFinishedGames) {\r\n if (notFinishedGames) {\r\n const actions = [];\r\n for (let i = 0, len = notFinishedGames.length; i < len; ++i) {\r\n const {\r\n GameTableId,\r\n GameId,\r\n NetworkId,\r\n GameKindId,\r\n GameTypeId,\r\n GameBet,\r\n GameBetInCoin,\r\n Win,\r\n WinInCoin,\r\n MaxStakeDoubling,\r\n OpponentNickname,\r\n Conventions,\r\n TournamentId,\r\n TournamentName,\r\n CurrentTourOrder,\r\n WithGameDataChange\r\n } = notFinishedGames[i];\r\n let game = null;\r\n let popupId = null;\r\n let popupName = null;\r\n let notificationComponent = null;\r\n if (TournamentId) {\r\n game = { GameTypeId, GameKindId, GameId, TournamentId, CurrentTourOrder, TournamentName };\r\n popupId = GameId;\r\n popupName = POPUP_NAMES.REOPEN_ACTIVE_TOURNAMENT_GAME;\r\n notificationComponent = ;\r\n } else {\r\n game = {\r\n GameTableId,\r\n GameId,\r\n GameKindId,\r\n NetworkId,\r\n GameTypeId,\r\n GameBet,\r\n GameBetInCoin,\r\n Win,\r\n WinInCoin,\r\n OpponentNickname,\r\n MaxStakeDoubling,\r\n Conventions\r\n };\r\n popupId = GameTableId;\r\n popupName = POPUP_NAMES.REOPEN_ACTIVE_GAME;\r\n\r\n if (WithGameDataChange) {\r\n if (GameKindId === BELOTE_KIND_ID) {\r\n Conventions[CHANGE_CARD] = true;\r\n } else if (GameKindId === BACKGAMMON_KIND_ID) {\r\n Conventions[CHANGE_DICE + 1] = true;\r\n }\r\n }\r\n notificationComponent = ;\r\n }\r\n if (IsMobileLogin) {\r\n setActiveGamesInterval(() => {\r\n showNotification(notificationComponent, {\r\n autoClose: GAME_OFFER_DURATION,\r\n id: popupId,\r\n containerId: \"custom-notification\"\r\n });\r\n });\r\n } else {\r\n actions.push(openPopup(popupName, game, popupId));\r\n }\r\n }\r\n if (actions.length) {\r\n setActiveGamesInterval(() => store.dispatch(batchActions(actions)));\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * collect only conventions names from nested array of object\r\n * @param {array} GameTypeConfigurations\r\n * @return {undefined}\r\n */\r\nfunction getConventionsNames(GameTypeConfigurations) {\r\n let possibleConventionsNames;\r\n for (let i = 0, len = GameTypeConfigurations.length; i < len; ++i) {\r\n const currentConfig = GameTypeConfigurations[i];\r\n const Conventions = currentConfig && currentConfig.Conventions;\r\n if (Conventions) {\r\n const conventionsNames = [];\r\n for (let j = 0, length = Conventions.length; j < length; ++j) {\r\n conventionsNames.push(Conventions[j].Convention);\r\n }\r\n currentConfig.ConventionsNames = conventionsNames;\r\n possibleConventionsNames = conventionsNames;\r\n }\r\n }\r\n return possibleConventionsNames;\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} key convention name to determine if is disabled\r\n * @param {object} currentValue the value depending on which to disable\r\n * @param {object} conventionDependencies config\r\n * @param {number} score\r\n * @returns bool\r\n */\r\nexport function isConventionDisabled(key, currentValue, conventionDependencies, score) {\r\n return conventionDependencies.some(cd => {\r\n let excludedScores = null;\r\n if (cd.ExcludeScores && score) {\r\n excludedScores = JSON.parse(cd.ExcludeScores);\r\n }\r\n return (\r\n cd.Convention === key &&\r\n ((cd.LinkedConvention && !currentValue[cd.LinkedConvention] && !cd.IsInverseLink) ||\r\n (excludedScores && excludedScores.includes(score)))\r\n );\r\n });\r\n}\r\n\r\n/**\r\n *\r\n * @param {number} itemsQuantityOptionId\r\n * @returns array\r\n */\r\nexport function getDataChangeConfigOptions(itemsQuantityOptionId) {\r\n let ChangeItemOptions = [{ key: 0, text: t(`${GAME_DATA_CHANGES_ITEMS_QUANTITY_ID}0`) }];\r\n\r\n switch (itemsQuantityOptionId) {\r\n case 1:\r\n ChangeItemOptions.push({ key: 1, text: t(`${GAME_DATA_CHANGES_ITEMS_QUANTITY_ID}1`) });\r\n break;\r\n case 2:\r\n ChangeItemOptions.push({ key: 2, text: t(`${GAME_DATA_CHANGES_ITEMS_QUANTITY_ID}2`) });\r\n break;\r\n case 3:\r\n ChangeItemOptions.push(\r\n { key: 1, text: t(`${GAME_DATA_CHANGES_ITEMS_QUANTITY_ID}1`) },\r\n { key: 2, text: t(`${GAME_DATA_CHANGES_ITEMS_QUANTITY_ID}2`) }\r\n );\r\n break;\r\n }\r\n return ChangeItemOptions;\r\n}\r\n\r\n/**\r\n *\r\n * @param {string} key convention name\r\n * @param {object} currentValue\r\n * @param {object} conventionDependencies\r\n */\r\nexport function getConventionNormalizedValue(key, currentValue, conventionDependencies) {\r\n const linked = conventionDependencies.filter(\r\n cd =>\r\n cd.LinkedConvention === key ||\r\n ((cd.Convention === key ||\r\n conventionDependencies.some(c => c.LinkedConvention === cd.LinkedConvention && c.IsInverseLink)) &&\r\n cd.IsInverseLink)\r\n );\r\n const newVal = { ...currentValue };\r\n if (linked.length) {\r\n linked.forEach(lc => {\r\n if (!lc.IsInverseLink) {\r\n if (!newVal[key] && newVal[lc.Convention]) {\r\n newVal[lc.Convention] = false;\r\n }\r\n } else if (newVal[key]) {\r\n const newKey = key !== lc.Convention ? lc.Convention : lc.LinkedConvention;\r\n if (newVal[newKey]) {\r\n newVal[newKey] = false;\r\n }\r\n }\r\n });\r\n }\r\n return newVal;\r\n}\r\n\r\n/**\r\n * detect if element is in view port\r\n * @return {undefined}\r\n */\r\nexport function collectFiltersData(\r\n allScoresByGameType,\r\n allMoveTimesByGameType,\r\n allExtraTimesByGameType,\r\n allConventionsByGameType,\r\n item\r\n) {\r\n allScoresByGameType.push(item.GamePoints);\r\n allMoveTimesByGameType.push(item.MoveTimes);\r\n allExtraTimesByGameType.push(item.ExtraTimes);\r\n allConventionsByGameType.push(item.ConventionsNames);\r\n}\r\n\r\n/**\r\n * the function created to avoid code repetition\r\n * adds elements to given arrays\r\n * @return {undefined}\r\n */\r\nexport function collectQuickFiltersData(item, gameTypesArray, gameScoresArray, gameConventionsArray) {\r\n if (item) {\r\n gameTypesArray.push(item.GameTypes);\r\n gameScoresArray.push(item.GameScores);\r\n gameConventionsArray.push(item.GameConventions);\r\n }\r\n}\r\n\r\n/**\r\n * add game into corresponding array based on status\r\n * @return {undefined}\r\n */\r\nexport function addGame(game, games) {\r\n const currentArrName = GAME_HALL_GAMES_ARRAYS_NAMES[game.Status];\r\n const currentArr = games[currentArrName];\r\n\r\n return {\r\n ...games,\r\n [currentArrName]: [game, ...currentArr],\r\n gamesTotalCount: games.gamesTotalCount + 1\r\n };\r\n // let { myStartedGames, myNotStartedGames, notStartedGames, startedGames } = games;\r\n // if (notStartedGames) {\r\n // switch (game.Status) {\r\n // case 1:\r\n // myStartedGames.unshift(game);\r\n // break;\r\n // case 2:\r\n // myNotStartedGames.unshift(game);\r\n // break;\r\n // case 3:\r\n // notStartedGames.unshift(game);\r\n // break;\r\n // case 4:\r\n // startedGames.unshift(game);\r\n // break;\r\n // default:\r\n // break;\r\n // }\r\n // }\r\n // return games;\r\n}\r\n\r\n/**\r\n * update game based on corresponding conditions\r\n * @return {undefined}\r\n */\r\nexport function updateGame(changedGame, games) {\r\n let {\r\n GameTableId,\r\n NextStatus,\r\n PrevStatus,\r\n OpponentNickname,\r\n Status,\r\n GameId,\r\n FirstPlayerScore,\r\n SecondPlayerScore,\r\n scoreChange\r\n } = changedGame;\r\n let gamesArrName = null,\r\n gamesArr = null,\r\n secondGamesArrName = null,\r\n secondGamesArr = null;\r\n\r\n if (scoreChange) {\r\n let gameTableIsFound = false;\r\n gamesArrName = GAME_HALL_GAMES_ARRAYS_NAMES[1];\r\n gamesArr = games[gamesArrName];\r\n if (gamesArr && gamesArr.length) {\r\n gamesArr.map(game => {\r\n if (game.GameTableId === GameTableId || game.GameId === GameId) {\r\n game.FirstPlayerScore = FirstPlayerScore;\r\n game.SecondPlayerScore = SecondPlayerScore;\r\n gameTableIsFound = true;\r\n }\r\n });\r\n }\r\n\r\n if (!gameTableIsFound) {\r\n gamesArrName = GAME_HALL_GAMES_ARRAYS_NAMES[4];\r\n gamesArr = games[gamesArrName];\r\n if (gamesArr && gamesArr.length) {\r\n gamesArr.map(game => {\r\n if (game.GameTableId === GameTableId || game.GameId === GameId) {\r\n game.FirstPlayerScore = FirstPlayerScore;\r\n game.SecondPlayerScore = SecondPlayerScore;\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n if (!NextStatus || --NextStatus === --PrevStatus) {\r\n const currentArrIndex = NextStatus || --Status;\r\n gamesArrName = GAME_HALL_GAMES_ARRAYS_NAMES[currentArrIndex + 1];\r\n let tmpArr = games[gamesArrName];\r\n if (tmpArr) {\r\n const updatedGame = enableDisableGame(GameTableId, tmpArr, OpponentNickname);\r\n if (updatedGame) {\r\n let index = tmpArr.findIndex(item => item.GameTableId === updatedGame.GameTableId);\r\n gamesArr = [...tmpArr];\r\n gamesArr.length && gamesArr.splice(index, 1, updatedGame);\r\n }\r\n }\r\n } else {\r\n gamesArrName = GAME_HALL_GAMES_ARRAYS_NAMES[PrevStatus + 1];\r\n secondGamesArrName = GAME_HALL_GAMES_ARRAYS_NAMES[NextStatus + 1];\r\n const updatedArraysObj = moveGame(\r\n GameTableId,\r\n [...games[gamesArrName]],\r\n [...games[secondGamesArrName]],\r\n NextStatus\r\n );\r\n if (updatedArraysObj) {\r\n gamesArr = updatedArraysObj.from;\r\n secondGamesArr = updatedArraysObj.to;\r\n }\r\n }\r\n }\r\n\r\n let updatedGames = {\r\n ...games\r\n };\r\n if (gamesArrName && gamesArr) {\r\n updatedGames = {\r\n ...updatedGames,\r\n [gamesArrName]: [...gamesArr]\r\n };\r\n }\r\n if (secondGamesArrName && secondGamesArr) {\r\n updatedGames = {\r\n ...updatedGames,\r\n [secondGamesArrName]: [...secondGamesArr]\r\n };\r\n }\r\n\r\n return updatedGames;\r\n}\r\n\r\n/**\r\n * enable or disable game\r\n * @return {undefined}\r\n */\r\nexport function enableDisableGame(id, games, opponentNickname) {\r\n for (let i = 0, len = games.length; i < len; ++i) {\r\n const game = Object.assign({}, games[i]);\r\n if (id === game.GameTableId) {\r\n if (opponentNickname) {\r\n game.disabled = true;\r\n game.OpponentNickname = opponentNickname;\r\n } else {\r\n delete game.disabled;\r\n delete game.OpponentNickname;\r\n delete game.OpponentJoinCountdownSpent;\r\n }\r\n return game;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * move game from one array to another\r\n * @return {object}\r\n */\r\nexport function moveGame(id, fromArray, toArray, nextStatus) {\r\n if (fromArray) {\r\n for (let i = 0, len = fromArray.length; i < len; ++i) {\r\n const game = Object.assign({}, fromArray[i]);\r\n if (id === game.GameTableId) {\r\n game.Status = nextStatus + 1;\r\n delete game.disabled;\r\n toArray.unshift(game);\r\n fromArray.splice(i, 1);\r\n return { from: fromArray, to: toArray };\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * removeStringLastDot\r\n * @return {string}\r\n */\r\nexport function removeStringLastDot(str) {\r\n if (str[str.length - 1] === \".\") return str.slice(0, -1);\r\n return str;\r\n}\r\n\r\n/**\r\n * remove game from corresponding array based on game id\r\n * @return {object}\r\n */\r\nexport function removeGame(id, games, startAnimation) {\r\n let breakNow = false,\r\n currentGamesArrName = null,\r\n currentGames = null;\r\n const gamesArray = Object.keys(games);\r\n let elIndex = gamesArray.indexOf(\"gamesTotalCount\");\r\n if (elIndex !== -1) {\r\n gamesArray.splice(elIndex, 1);\r\n }\r\n\r\n for (let i = 0, len = gamesArray.length; i < len; ++i) {\r\n currentGamesArrName = gamesArray[i];\r\n currentGames = games[currentGamesArrName];\r\n if (currentGames) {\r\n for (let i = 0, len = currentGames.length; i < len; ++i) {\r\n const game = currentGames[i];\r\n if (id === game.GameTableId) {\r\n if (startAnimation) {\r\n game.removed = true;\r\n } else {\r\n currentGames.splice(i, 1);\r\n }\r\n breakNow = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (breakNow) {\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n ...games,\r\n [currentGamesArrName]: currentGames ? [...currentGames] : null,\r\n gamesTotalCount: !startAnimation ? games.gamesTotalCount - 1 : games.gamesTotalCount\r\n };\r\n}\r\n\r\n/**\r\n * find necessary game and disable it\r\n * @return {array}\r\n */\r\nexport function findDisabledGames(games) {\r\n return games.map(item => {\r\n if (item.OpponentNickname) {\r\n item.disabled = true;\r\n }\r\n return item;\r\n });\r\n}\r\n\r\n/**\r\n * check if there are some diffs\r\n * @param {array} newData\r\n * @return {bool}\r\n */\r\nexport function isGameHallResultTheSame(newData) {\r\n const { myStartedGames, myNotStartedGames, notStartedGames, startedGames } = store.getState().gameHallData.games;\r\n return (\r\n JSON.stringify([myStartedGames, myNotStartedGames, notStartedGames, startedGames]) === JSON.stringify(newData)\r\n );\r\n}\r\n\r\n/**\r\n * check if there are some diffs\r\n * @param {object} game\r\n * @param {number} gameId\r\n * @param {function} disableGamesUpdater\r\n */\r\nexport function gameClickHandler(game, gameId, disableGamesUpdater) {\r\n const { Status, GameTableId, GameKindId, isTournamentGame } = game;\r\n switch (Status) {\r\n case OPEN_GAME_STATUS:\r\n // in this case game launcher is empty\r\n if (IsMobileLogin) {\r\n openNewGameWindow(GameTableId, GameKindId || gameId, false, false);\r\n }\r\n // NO ASYNC ACTION CREATOR, openGame\r\n return sendRequest(STATUS_INFO[Status].endPoint, getRefreshGameReqBody(GameTableId, !isTournamentGame))\r\n .then(openGameAfterWindowLoaded(GameTableId, openGame(GameTableId, true)))\r\n .finally(disableGamesUpdater);\r\n case CLOSE_GAME_STATUS:\r\n return invoke(STATUS_INFO[Status].endPoint, GameTableId);\r\n case PLAY_GAME_STATUS:\r\n // gameId is given from url, and it is the game kind id\r\n game.GameKindId = gameId;\r\n return store.dispatch(openPopup(POPUP_NAMES.CONFIRM_PARTICIPATION, game));\r\n case VIEW_GAME_STATUS:\r\n if (IsMobileLogin) {\r\n openNewGameWindow(GameTableId, GameKindId || gameId, false, false);\r\n }\r\n // NO ASYNC ACTION CREATOR, openGame\r\n return sendRequest(STATUS_INFO[Status].endPoint, getRefreshGameReqBody(GameTableId, !isTournamentGame))\r\n .then(\r\n openGameAfterWindowLoaded(GameTableId, data => {\r\n if (data) {\r\n openGame(GameTableId, true)(data);\r\n }\r\n })\r\n )\r\n .finally(disableGamesUpdater);\r\n default:\r\n return;\r\n }\r\n}\r\n\r\n/**\r\n * pass game through filtration\r\n * @return {boolean}\r\n */\r\nexport function didPassFiltration(filtersData, NetworkId, GameTypeId, Conventions, GameBet) {\r\n const {\r\n selectedNetworkIds,\r\n selectedGameTypesIds,\r\n selectedScores,\r\n selectedExtraTimes,\r\n selectedMoveTimes,\r\n selectedConventions,\r\n minStake,\r\n maxStake\r\n } = filtersData;\r\n const { GamePoints, MoveTime, ExtraTime } = Conventions;\r\n let isFiltered =\r\n (!selectedNetworkIds.length || selectedNetworkIds.includes(NetworkId)) &&\r\n (!selectedGameTypesIds.length || selectedGameTypesIds.includes(GameTypeId)) &&\r\n (!selectedExtraTimes.length || selectedExtraTimes.includes(ExtraTime)) &&\r\n (!selectedMoveTimes.length || selectedMoveTimes.includes(MoveTime)) &&\r\n (!selectedScores.length || selectedScores.includes(GamePoints)) &&\r\n (!minStake || GameBet >= minStake) &&\r\n (!maxStake || GameBet <= maxStake);\r\n\r\n if (isFiltered) {\r\n isFiltered = !selectedConventions.length;\r\n for (let i = 0, len = selectedConventions.length; i < len; ++i) {\r\n if (Conventions[selectedConventions[i]]) {\r\n isFiltered = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return isFiltered;\r\n}\r\n\r\n/**\r\n * closePopupAndRemoveGameFromLauncher\r\n * @param {number} gameTableId\r\n * @param {number} gameId\r\n * @param {array} startedGamesUrls\r\n * @returns {array}\r\n */\r\nexport function closePopupAndRemoveGameFromLauncher(gameTableId, gameId, startedGamesUrls) {\r\n const actions = [closePopup(gameTableId)];\r\n const { windowsRefs } = window;\r\n windowsRefs && delete windowsRefs[`gameTable${gameTableId}`];\r\n for (let i = 0, len = startedGamesUrls.length; i < len; ++i) {\r\n const game = startedGamesUrls[i];\r\n if (getUrlParam(GAME_ID, game) === gameId.toString()) {\r\n actions.push(removeGameFromLauncher(game));\r\n break;\r\n }\r\n }\r\n return actions;\r\n}\r\n\r\n/**\r\n * getRefreshGameReqBody\r\n * @param {number} id\r\n * @param {boolean} IsGameTable\r\n * @returns {object}\r\n */\r\nexport function getRefreshGameReqBody(id, IsGameTable) {\r\n const { isCoin } = store.getState().appData;\r\n return {\r\n Id: id,\r\n IsCoin: isCoin,\r\n IsGameTable: IsGameTable\r\n };\r\n}\r\n\r\n/**\r\n * openHistoryGame\r\n * @returns {function}\r\n */\r\nexport function openHistoryGame(id, gameKindId) {\r\n if (IsMobileLogin) {\r\n openNewGameWindow(id, gameKindId, true, false);\r\n }\r\n return sendRequest(GAME_HISTORY_SLIDER, { GameId: id }).then(openGameAfterWindowLoaded(id, openGame(id, true)));\r\n}\r\n\r\nexport function openGameAfterWindowLoaded(id, callback) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n\r\n if (IsMobileLogin || startedGamesUrls.length >= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n return data => {\r\n const intervalId = setInterval(() => {\r\n const currentPageInfo = window.pageInfo[id];\r\n if (currentPageInfo && currentPageInfo.loaded) {\r\n callback(data);\r\n clearInterval(intervalId);\r\n }\r\n }, 200);\r\n };\r\n }\r\n\r\n return callback;\r\n}\r\n\r\n/**\r\n * getRefreshGameReqBody\r\n * @param {number} id\r\n * @param {boolean} toggle\r\n * @param {boolean} popupClose\r\n * @param {boolean} setUrl\r\n * @returns {object}\r\n */\r\nexport function openGame(id, toggle, popupClose, setUrl = true) {\r\n return data => {\r\n const { windowsRefs } = window;\r\n if (data && data.Model) {\r\n let { GameId, Url } = data.Model;\r\n const { appData } = store.getState();\r\n const currency = appData.isCoin ? COIN : appData.Model.PlayerCurrencyId;\r\n Url += `${GAME_QUERY_PARAMS_FROM_LOBBY_URL}${GameId || id}¤cyId=${currency}`;\r\n const actions = [];\r\n popupClose && actions.push(closePopup(id));\r\n if (windowsRefs && windowsRefs.hasOwnProperty(`gameTable${id}`) && setUrl) {\r\n setNewWindowGameUrl(id, Url, GameId);\r\n } else {\r\n actions.push(addGameIntoLauncher(Url));\r\n toggle && actions.push(toggleMultiView(true));\r\n }\r\n actions.length && store.dispatch(batchActions(actions));\r\n } else if (windowsRefs && windowsRefs[`gameTable${id}`]) {\r\n windowsRefs[`gameTable${id}`].close();\r\n }\r\n store.dispatch(closePopup(id));\r\n };\r\n}\r\n\r\n/**\r\n * getRefreshGameReqBody\r\n * @param {array} startedGamesUrls\r\n * @param {number} GameId\r\n * @returns {object}\r\n */\r\nexport function doesGameExistInLauncher(startedGamesUrls, GameId) {\r\n for (let i = 0, len = startedGamesUrls.length; i < len; ++i) {\r\n const game = startedGamesUrls[i];\r\n if (getUrlParam(GAME_ID, game) === (GameId && GameId.toString())) {\r\n return true;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * isQuickFiltersEmpty\r\n * @param {array} quickFilters\r\n * @returns {bool}\r\n */\r\nexport function isQuickFiltersEmpty(quickFilters) {\r\n const len = quickFilters.length;\r\n let emptyCount = 0;\r\n for (let i = 0; i < len; ++i) {\r\n if (!quickFilters[i] || !quickFilters[i].length) {\r\n ++emptyCount;\r\n }\r\n }\r\n return emptyCount === len;\r\n}\r\n\r\n/**\r\n * getBrowserSpecificProperties\r\n * @returns {object}\r\n */\r\nexport function getBrowserSpecificProperties() {\r\n let hidden, visibilityChange;\r\n if (typeof document.hidden !== \"undefined\") {\r\n // Opera 12.10 and Firefox 18 and later support\r\n hidden = \"hidden\";\r\n visibilityChange = \"visibilitychange\";\r\n } else if (typeof document.msHidden !== \"undefined\") {\r\n hidden = \"msHidden\";\r\n visibilityChange = \"msvisibilitychange\";\r\n } else if (typeof document.webkitHidden !== \"undefined\") {\r\n hidden = \"webkitHidden\";\r\n visibilityChange = \"webkitvisibilitychange\";\r\n }\r\n return { HIDDEN: hidden, VISIBILITY_CHANGE: visibilityChange };\r\n}\r\n\r\n/**\r\n * removeDuplicatedGames\r\n * @param {array} newGameTables\r\n * @param {array} currentGameTables\r\n * @returns {array}\r\n */\r\nexport function removeDuplicatedGames(newGameTables, currentGameTables) {\r\n let filteredGameTables = [];\r\n for (let i = 0; i < newGameTables.length; ++i) {\r\n const currentGame = newGameTables[i];\r\n if (!currentGameTables.find(i => i.GameTableId === currentGame.GameTableId)) {\r\n filteredGameTables.push(currentGame);\r\n }\r\n }\r\n return filteredGameTables;\r\n}\r\n\r\n/**\r\n * filterGames\r\n * @param {array} newGameTables\r\n * @returns {undefined}\r\n */\r\nexport function filterGames(newGameTables) {\r\n const { myStartedGames, myNotStartedGames, notStartedGames, startedGames } = store.getState().gameHallData.games;\r\n\r\n for (let i = 0; i < newGameTables.length; ++i) {\r\n if (newGameTables[i].length) {\r\n switch (i) {\r\n case MY_STARTED_GAMES:\r\n newGameTables[i] = removeDuplicatedGames(newGameTables[i], myStartedGames);\r\n break;\r\n case MY_NOT_STARTED_GAMES:\r\n newGameTables[i] = removeDuplicatedGames(newGameTables[i], myNotStartedGames);\r\n break;\r\n case NOT_STARTED_GAMES:\r\n newGameTables[i] = removeDuplicatedGames(newGameTables[i], notStartedGames);\r\n break;\r\n case STARTED_GAMES:\r\n newGameTables[i] = removeDuplicatedGames(newGameTables[i], startedGames);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * loadMoreGames\r\n * @param {string} gameId\r\n * @param {string} typeId\r\n * @returns {undefined}\r\n */\r\nexport function loadMoreGameHallGames({ gameId, typeId }) {\r\n const state = store.getState();\r\n const {\r\n gameHallData: { games }\r\n } = state;\r\n\r\n const mergeGames = Model => {\r\n filterGames(Model);\r\n store.dispatch(mergeGameHallGames(Model));\r\n };\r\n\r\n const { myStartedGames, myNotStartedGames, notStartedGames, startedGames, gamesTotalCount } = games;\r\n const allGames = myStartedGames ? myStartedGames.concat(myNotStartedGames, notStartedGames, startedGames) : [];\r\n\r\n allGames.length < gamesTotalCount &&\r\n getGames(gameId, allGames.length + 1, LOADABLE_COUNT, mergeGames, typeId, state[partnerFiltersData]);\r\n}\r\n\r\n/**\r\n * loadMoreGames\r\n * @param {object} Model\r\n * @returns {undefined}\r\n */\r\nexport function setGames(Model) {\r\n if (!isGameHallResultTheSame(Model?.GameTables)) {\r\n store.dispatch(setGameHallGames(Model));\r\n } else {\r\n store.dispatch(setGamesCount(Model.GameTablesTotalCount));\r\n }\r\n}\r\n\r\n/**\r\n * loadMoreTournaments\r\n * @param {string} type\r\n * @returns {undefined}\r\n */\r\nexport function loadMoreTournaments({ type }) {\r\n const {\r\n tournamentHallData: { tournaments },\r\n [partnerFiltersData]: { selectedGameKindIds }\r\n } = store.getState();\r\n\r\n const mergeTournamentsHandler = data => {\r\n store.dispatch(mergeTournaments(data));\r\n };\r\n\r\n const { tournamentsTotalCount, allTournaments } = concatAllTournamentsLists(tournaments);\r\n\r\n allTournaments.length < tournamentsTotalCount &&\r\n getTournaments(\r\n type || 1,\r\n allTournaments.length + 1,\r\n LOADABLE_COUNT,\r\n selectedGameKindIds,\r\n mergeTournamentsHandler\r\n );\r\n}\r\n\r\nfunction concatAllTournamentsLists(tournaments) {\r\n const {\r\n startedTournaments,\r\n finishedTournaments,\r\n tournamentsTotalCount,\r\n notStartedTournaments,\r\n myNotStartedTournaments\r\n } = tournaments;\r\n const allTournaments = myNotStartedTournaments.concat(\r\n startedTournaments,\r\n notStartedTournaments,\r\n finishedTournaments\r\n );\r\n return {\r\n tournamentsTotalCount,\r\n allTournaments\r\n };\r\n}\r\n\r\n/**\r\n * choose tournament info\r\n * @param {number} status\r\n * @param {number} CurrentTourOrder\r\n * @param {number} Rebuy\r\n * @param {boolean} PlayerRegisteredByPayment\r\n * @param {number} OrderCase\r\n * @param {number} StartDateInMilliseconds\r\n * @param {string} type\r\n * @returns {object}\r\n */\r\nexport function getTournamentInfo(\r\n status,\r\n CurrentTourOrder,\r\n Rebuy,\r\n OrderCase,\r\n PlayerRegisteredByPayment,\r\n StartDateInMilliseconds,\r\n type\r\n) {\r\n let currentStatus = \"MISED CASEEEE\",\r\n buttonText = \"MISED CASEEEEE\",\r\n iconName = \"\",\r\n isBtnDisabled = type && type !== SIT_AND_GO_TOURNAMENT_TYPE && StartDateInMilliseconds < GAME_OFFER_DURATION,\r\n btnClassColorName = \"\",\r\n isViewButton = false;\r\n if (status !== TOURNAMENT_PRIVATE_STATUS) {\r\n switch (OrderCase) {\r\n case MY_NOT_STARTED_ORDER_CASE:\r\n currentStatus = t(PlayerRegisteredByPayment ? \"strRegistered\" : \"strRegistration\");\r\n buttonText = t(\"strExit\");\r\n iconName = \"icon-Exit\";\r\n btnClassColorName = \"btn-danger\";\r\n break;\r\n case STARTED_ORDER_CASE:\r\n currentStatus = `${t(\"strTour\")} ${CurrentTourOrder}`;\r\n isBtnDisabled = false;\r\n if (PlayerRegisteredByPayment) {\r\n buttonText = t(\"strExit\");\r\n iconName = \"icon-Exit\";\r\n btnClassColorName = \"btn-danger\";\r\n } else if (status === REBUY_STATUS && !PlayerRegisteredByPayment) {\r\n buttonText = t(\"strRebuy\");\r\n iconName = \"icon-Rebuy\";\r\n btnClassColorName = \"btn-primary\";\r\n } else {\r\n buttonText = t(\"strView\");\r\n iconName = \"icon-View\";\r\n btnClassColorName = \"btn-primary\";\r\n isViewButton = true;\r\n }\r\n break;\r\n case NOT_STARTED_ORDER_CASE:\r\n if (status === SOON_STATUS) {\r\n currentStatus = t(\"strSoon\");\r\n buttonText = t(\"strSoon\");\r\n iconName = \"icon-Soon\";\r\n isBtnDisabled = true;\r\n btnClassColorName = \"btn-primary\";\r\n } else if (REGISTER_STATUS) {\r\n currentStatus = t(\"strRegistration\");\r\n buttonText = t(\"strEnter\");\r\n iconName = \"icon-Enter\";\r\n btnClassColorName = \"btn-success\";\r\n }\r\n break;\r\n case FINISHED_ORDER_CASE:\r\n currentStatus = `${t(\"strFinished\")}`;\r\n btnClassColorName = \"btn-secondary\";\r\n isBtnDisabled = true;\r\n if (status === FINISHED_STATUS) {\r\n buttonText = t(\"strFinished\");\r\n iconName = \"icon-Finished\";\r\n } else if (status === CANCELED_STATUS) {\r\n currentStatus = `${t(\"strCanceled\")}`;\r\n buttonText = t(\"strCanceled\");\r\n iconName = \"icon-Canceled\";\r\n }\r\n break;\r\n }\r\n } else {\r\n currentStatus = t(\"strPrivate\");\r\n buttonText = t(\"strPrivate\");\r\n btnClassColorName = \"btn-primary\";\r\n iconName = \"icon-Private\";\r\n isBtnDisabled = true;\r\n }\r\n\r\n return {\r\n currentStatus,\r\n buttonText,\r\n isBtnDisabled,\r\n btnClassColorName,\r\n iconName,\r\n isViewButton\r\n };\r\n}\r\n\r\nexport function handlerTournamentData(tournament, PlayerCurrencyId, isCoin, type = \"1\") {\r\n const {\r\n Status,\r\n CurrentTourOrder,\r\n Rebuy,\r\n OrderCase,\r\n PlayerRegisteredByPayment,\r\n StartDateInMilliseconds,\r\n Prize,\r\n Fee,\r\n PrizeInCoin,\r\n FeeInCoin,\r\n RebuyInCoin\r\n } = tournament;\r\n\r\n const { buttonText, isBtnDisabled, isViewButton, iconName, btnClassColorName, currentStatus } = getTournamentInfo(\r\n Status,\r\n CurrentTourOrder,\r\n Rebuy,\r\n OrderCase,\r\n PlayerRegisteredByPayment,\r\n StartDateInMilliseconds,\r\n type\r\n );\r\n\r\n const { prize, fee, rebuy, currency, tournamentAmount } = getTournamentCurrencyData(\r\n Prize,\r\n Fee,\r\n Rebuy,\r\n PlayerCurrencyId,\r\n PrizeInCoin,\r\n FeeInCoin,\r\n RebuyInCoin,\r\n isCoin\r\n );\r\n\r\n return {\r\n buttonText,\r\n isBtnDisabled,\r\n isViewButton,\r\n iconName,\r\n btnClassColorName,\r\n currentStatus,\r\n prize,\r\n fee,\r\n rebuy,\r\n currency,\r\n tournamentAmount\r\n };\r\n}\r\n\r\nexport function getTournamentCurrencyData(\r\n Prize,\r\n Fee,\r\n Rebuy,\r\n PlayerCurrencyId,\r\n PrizeInCoin,\r\n FeeInCoin,\r\n RebuyInCoin,\r\n isCoin\r\n) {\r\n let Currency = PlayerCurrencyId;\r\n if (isCoin) {\r\n Prize = PrizeInCoin;\r\n Fee = FeeInCoin;\r\n Rebuy = RebuyInCoin;\r\n Currency = COIN_LONG;\r\n }\r\n const tournamentAmount = Rebuy || Fee;\r\n\r\n return { prize: Prize, fee: Fee, rebuy: Rebuy, currency: Currency, tournamentAmount };\r\n}\r\n\r\n/**\r\n * number format for jackpot Prize (Narek)\r\n * @return {array}\r\n */\r\nexport function getJackpotFriendlyArray(inputNumber) {\r\n inputNumber = numberWithThousandSeparator(inputNumber, \"_\");\r\n\r\n const tempArr = inputNumber.toString().split(\"\"),\r\n resultArray = [];\r\n for (let i = 0, len = tempArr.length; i < len; ++i) {\r\n if (tempArr[i] !== \".\" && tempArr[i] !== \"_\") {\r\n let isFloat = false,\r\n separator = false;\r\n if (tempArr[i + 1] === \".\") {\r\n isFloat = true;\r\n }\r\n if (tempArr[i + 1] === \"_\") {\r\n separator = true;\r\n }\r\n resultArray.push({\r\n val: parseInt(tempArr[i]),\r\n floated: isFloat,\r\n separator: separator\r\n });\r\n }\r\n }\r\n // if (resultArray.length < 10) {\r\n // const newLength = 10 - resultArray.length;\r\n // for (let i = 0; i < newLength; ++i) {\r\n // resultArray.unshift({\r\n // val: 0,\r\n // floated: false\r\n // });\r\n // }\r\n // }\r\n return resultArray;\r\n}\r\n\r\n/**\r\n * show Error message as notification\r\n * @return {undefined}\r\n * @param {string} error\r\n * @param {string} bet\r\n */\r\n\r\nexport function showErrorNotification(error, messageEndPoint = \"\") {\r\n const randomId = Math.random();\r\n showNotification(\r\n ,\r\n {\r\n autoClose: NOTIFICATION_DURATION,\r\n id: randomId,\r\n containerId: \"custom-notification\"\r\n }\r\n );\r\n}\r\n\r\n/**\r\n * removes tournament\r\n * @return {object}\r\n */\r\nexport function removeTournament(data, tournaments, startAnimation) {\r\n let removed = false;\r\n const { finishedTournaments } = tournaments;\r\n\r\n for (let i = 0; i < finishedTournaments.length; ++i) {\r\n const currentTournament = finishedTournaments[i];\r\n if (currentTournament.Id === data.tournamentId) {\r\n if (startAnimation) {\r\n currentTournament.removed = true;\r\n } else {\r\n finishedTournaments.splice(i, 1);\r\n removed = true;\r\n }\r\n break;\r\n }\r\n }\r\n return { removed, tournaments };\r\n}\r\n\r\n/**\r\n * add tournament into corresponding array based on orderCase\r\n * @return {array}\r\n */\r\nexport function addTournament(Tournament, notStartedTournaments) {\r\n Tournament.OrderCase = 3;\r\n Tournament.added = true;\r\n Tournament.startDateTime = new Date().getTime() + Tournament.StartDateInMilliseconds;\r\n let newTournamentsArr = [...notStartedTournaments, Tournament];\r\n if (Tournament.Status !== SOON_STATUS) {\r\n newTournamentsArr = newTournamentsArr.sort((a, b) => {\r\n return a.startDateTime - b.startDateTime;\r\n });\r\n }\r\n return newTournamentsArr;\r\n}\r\n\r\n/**\r\n * update tournament based on corresponding conditions\r\n * @return {object}\r\n */\r\nexport function updateTournament(tournament, tournaments, tournamentInfoId) {\r\n let {\r\n TournamentId,\r\n Rebuy,\r\n RebuyInCoin,\r\n PlayerPaymentSum,\r\n PlayerRegisteredByPayment,\r\n Status,\r\n Rate,\r\n DisplayedPrecision,\r\n TourNumber,\r\n PreviusCase,\r\n NewCase\r\n } = tournament;\r\n const tournamentsArrays = Object.values(tournaments);\r\n const nextArray = tournamentsArrays[NewCase - 1];\r\n const previousArray = tournamentsArrays[PreviusCase - 1];\r\n let found = false;\r\n let tournamentInfo = {};\r\n if (previousArray) {\r\n const findEl = prevArr => {\r\n for (let i = 0; i < prevArr.length; ++i) {\r\n const currentTorunament = prevArr[i];\r\n\r\n if (TournamentId === currentTorunament.Id) {\r\n found = true;\r\n updateCurrentTournamentInfo(\r\n currentTorunament,\r\n PlayerPaymentSum,\r\n Rebuy,\r\n RebuyInCoin,\r\n Rate,\r\n DisplayedPrecision,\r\n Status,\r\n NewCase,\r\n TourNumber,\r\n PlayerRegisteredByPayment\r\n );\r\n\r\n if (nextArray && nextArray !== prevArr && nextArray.push) {\r\n nextArray.push(currentTorunament);\r\n prevArr.splice(i, 1);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n findEl(previousArray);\r\n\r\n if (TournamentId === tournamentInfoId) {\r\n updateCurrentTournamentInfo(\r\n tournamentInfo,\r\n PlayerPaymentSum,\r\n Rebuy,\r\n RebuyInCoin,\r\n Rate,\r\n DisplayedPrecision,\r\n Status,\r\n NewCase,\r\n TourNumber,\r\n PlayerRegisteredByPayment,\r\n true\r\n );\r\n }\r\n if (!found) {\r\n if (\r\n PreviusCase === NOT_STARTED_ORDER_CASE &&\r\n (NewCase === STARTED_ORDER_CASE || NewCase === FINISHED_ORDER_CASE) &&\r\n tournamentsArrays[MY_NOT_STARTED_ORDER_CASE - 1].length\r\n ) {\r\n findEl(tournamentsArrays[MY_NOT_STARTED_ORDER_CASE - 1]);\r\n }\r\n }\r\n }\r\n nextArray.sort &&\r\n nextArray.sort((a, b) => {\r\n return a.startDateTime - b.startDateTime;\r\n });\r\n return { tournaments, tournamentInfo };\r\n}\r\n\r\nfunction updateCurrentTournamentInfo(\r\n currentTorunament,\r\n PlayerPaymentSum,\r\n Rebuy,\r\n RebuyInCoin,\r\n Rate,\r\n DisplayedPrecision,\r\n Status,\r\n NewCase,\r\n TourNumber,\r\n PlayerRegisteredByPayment,\r\n isTournamentInfo\r\n) {\r\n PlayerPaymentSum && (currentTorunament.PlayerPaymentSum = PlayerPaymentSum);\r\n RebuyInCoin && !isTournamentInfo && (currentTorunament.StartDateInMilliseconds = 0);\r\n RebuyInCoin &&\r\n RebuyInCoin > currentTorunament.PlayerPaymentSum &&\r\n (RebuyInCoin -= currentTorunament.PlayerPaymentSum);\r\n currentTorunament.RebuyInCoin = RebuyInCoin;\r\n currentTorunament.Rebuy = Rebuy || (RebuyInCoin && convertCoinToCurrency(RebuyInCoin, Rate, DisplayedPrecision));\r\n\r\n Status && (currentTorunament.Status = Status);\r\n NewCase && (currentTorunament.OrderCase = NewCase);\r\n TourNumber && (currentTorunament.CurrentTourOrder = TourNumber);\r\n PlayerRegisteredByPayment !== undefined &&\r\n (currentTorunament.PlayerRegisteredByPayment = PlayerRegisteredByPayment);\r\n}\r\n\r\n/**\r\n *addOrRemoveTournamentPlayer\r\n * @return {array}\r\n */\r\nexport function addOrRemoveTournamentPlayer(updatedPlayerInfo, allPlayers, Status, currentPlayerId) {\r\n const { InTournament, PlayerId } = updatedPlayerInfo;\r\n if (!InTournament && allPlayers && allPlayers.length) {\r\n let index;\r\n for (let i = 0; i < allPlayers.length; i++) {\r\n if (allPlayers[i].PlayerId === PlayerId) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n allPlayers.splice(index, 1);\r\n } else {\r\n if (!allPlayers) {\r\n allPlayers = [];\r\n }\r\n allPlayers.push(updatedPlayerInfo);\r\n allPlayers = findMePlayerAndSort(allPlayers, Status, currentPlayerId);\r\n }\r\n return allPlayers;\r\n}\r\n\r\n/**\r\n * adds disabled value to upcoming Or Player's Tournaments\r\n */\r\nexport function disableCustomTournamentBtnClick({ id, milliseconds }, tournaments) {\r\n let updatedTounaments;\r\n if (tournaments.length && id) {\r\n updatedTounaments = tournaments.map(item => {\r\n if (item.Id === id) {\r\n return {\r\n ...item,\r\n Disabled: true,\r\n StartDateInMilliseconds: milliseconds\r\n };\r\n }\r\n return item;\r\n });\r\n }\r\n return updatedTounaments || tournaments;\r\n}\r\n\r\n/**\r\n * sends a postmessage to parent window to open login popup\r\n */\r\nexport function postLoginMessage() {\r\n console.log(\"post message to casino to open login popup\");\r\n window.parent.postMessage({ type: \"Login\" }, \"*\");\r\n}\r\n\r\n/**\r\n * get game title based on game kinf and game type\r\n */\r\nexport function getGameTitle(gameTypeId, gameKindId) {\r\n let title = t(GAME_TYPE_TITLE_ID + gameTypeId);\r\n let gameKindTitle = t(GAME_KIND_TITLE_ID + gameKindId);\r\n if (title !== gameKindTitle) {\r\n title = `${gameKindTitle} ${title} `;\r\n }\r\n\r\n return title;\r\n}\r\n\r\n/**\r\n * get id and name\r\n */\r\nexport function getIdAndName(data, name, timers) {\r\n return data.map(i => ({\r\n id: i,\r\n name: name\r\n ? t(name + ID + i)\r\n : timers\r\n ? convertSecondsToMinutes(i, t(\"strMinute\"), t(\"strSecond\"))\r\n : i.toString()\r\n }));\r\n}\r\n\r\n/**\r\n * get inline style based on iframe position\r\n * @param {string} name\r\n * @param {object} value\r\n * @returns {object}\r\n */\r\nexport function getInlineStyle(name, value) {\r\n let frames = document.getElementsByTagName(\"iframe\");\r\n for (let i = 0; i < frames.length; ++i) {\r\n const iframe = frames[i];\r\n if (getUrlParam(\"iframeId\", iframe.src).toString() === value.gameId.toString()) {\r\n const { parentElement } = iframe;\r\n const { x, y, width, height } = getElementsPosition(parentElement);\r\n parentElement.childNodes[1].classList.add(\"disabled\");\r\n return { width: width, height: height, left: x, top: y };\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * get elements positions\r\n * @param {object} element\r\n * @param {string} position\r\n * @returns {object}\r\n */\r\nexport function getElementsPosition(element, position = POSITIONS.TOP_LEFT) {\r\n if (!element) {\r\n return;\r\n }\r\n let x = 0;\r\n let y = 0;\r\n let width, height;\r\n const rect = element.getBoundingClientRect();\r\n switch (position) {\r\n case POSITIONS.TOP_RIGHT:\r\n x = rect.right;\r\n y = rect.top;\r\n break;\r\n case POSITIONS.BOTTOM_RIGHT:\r\n x = rect.right;\r\n y = rect.bottom;\r\n break;\r\n case POSITIONS.CENTER_RIGHT:\r\n x = rect.right;\r\n y = rect.bottom - Number((rect.height / 2).toFixed());\r\n break;\r\n case POSITIONS.BOTTOM_LEFT:\r\n x = rect.left;\r\n y = rect.bottom;\r\n break;\r\n case POSITIONS.CENTER_LEFT:\r\n x = rect.left;\r\n y = rect.bottom - Number((rect.height / 2).toFixed());\r\n break;\r\n case POSITIONS.CENTER:\r\n x = rect.left + rect.width / 2;\r\n y = rect.top + rect.height / 2;\r\n break;\r\n case POSITIONS.TOP_LEFT:\r\n default:\r\n x = rect.left;\r\n y = rect.top;\r\n width = rect.width;\r\n height = rect.height;\r\n break;\r\n }\r\n return { x, y, width, height };\r\n}\r\n\r\n/**\r\n * get identity request body\r\n * @returns {object}\r\n */\r\nexport function getIdentityReqBody(apiIdsObject, refreshToken) {\r\n const { ExternalPartnerID, ApiDomainId } = apiIdsObject;\r\n\r\n let details = {\r\n client_id: 12,\r\n client_secret: \"publickey\",\r\n grant_type: \"skillgames\",\r\n scope: \"skillgames\",\r\n apiid: ExternalPartnerID,\r\n apidomainid: ApiDomainId\r\n };\r\n\r\n if (refreshToken) {\r\n details.refresh_token = refreshToken;\r\n } else {\r\n details.token = token;\r\n }\r\n\r\n let formBody = [];\r\n let detailsArr = Object.keys(details);\r\n for (let i = 0, len = detailsArr.length; i < len; ++i) {\r\n const currentKey = detailsArr[i];\r\n let encodedKey = encodeURIComponent(currentKey);\r\n let encodedValue = encodeURIComponent(details[currentKey]);\r\n formBody.push(encodedKey + \"=\" + encodedValue);\r\n }\r\n\r\n return formBody.join(\"&\");\r\n}\r\n\r\n/**\r\n * accept or reject revanche\r\n * @returns {object}\r\n */\r\nexport const doRevanche = (gameId, agree, cb, isRevanche) => {\r\n const reqBody = {\r\n GameId: gameId,\r\n LocalIP: LOCAL_IP,\r\n IsCoin: store.getState().appData.isCoin,\r\n Agree: agree\r\n };\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(REPLAY_GAME_OFFER, reqBody).then(data => {\r\n if (cb) {\r\n const { Error, Model } = data;\r\n if ((Error && isRevanche) || (Model && !isRevanche)) {\r\n cb();\r\n }\r\n }\r\n });\r\n};\r\n/**\r\n * accept or reject revanche\r\n * @returns {object}\r\n */\r\nexport const openLuckySpin = (gameId, cb) => {\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(TAKE_RISK, { GameId: gameId }).then(data => {\r\n if (data) {\r\n cb(data.Model);\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * open lucky spin popup\r\n * @returns {undefined}\r\n */\r\nexport const openLuckySpinPopup = (gameId, gameTableId, luckySpinType) => () => {\r\n doRevanche(gameId, false);\r\n const luckySpin = luckySpinType ? `${POPUP_NAMES.LUCKY_SPIN}_V${luckySpinType}` : POPUP_NAMES.LUCKY_SPIN;\r\n store.dispatch(batchActions([closePopup(gameTableId), openPopup(luckySpin, { gameId, gameTableId }, gameTableId)]));\r\n};\r\n\r\n/**\r\n * play lucky spin\r\n * @returns {object}\r\n */\r\nexport const playLuckySpin = (gameId, cb) => {\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(PLAY_TAKE_RISK, {\r\n GameId: gameId,\r\n LocalIp: LOCAL_IP\r\n }).then(cb);\r\n};\r\n\r\n/**\r\n * accept or reject revanche\r\n * @returns {object}\r\n */\r\nexport const closeFinishedGameWindow = gameTableId => {\r\n const { windowsRefs } = window;\r\n if (windowsRefs) {\r\n const gameWindow = windowsRefs[`gameTable${gameTableId}`];\r\n gameWindow && gameWindow.close();\r\n delete windowsRefs[`gameTable${gameTableId}`];\r\n }\r\n};\r\n\r\n/**\r\n * sendPostMsgToGameWindow\r\n * @param {number} gameTableId\r\n * @param {object} reqBody\r\n * @param {string} origin\r\n * @return {undefined}\r\n */\r\nexport const sendPostMsgToGameWindow = (gameTableId, reqBody) => {\r\n const { windowsRefs } = window;\r\n if (windowsRefs) {\r\n const gameWindow = windowsRefs[`gameTable${gameTableId}`];\r\n\r\n if (gameWindow) {\r\n gameWindow.postMessage(reqBody);\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * set game url in already opened window\r\n * @param {number} gameTableId\r\n * @param {string} gameUrl\r\n * @param {number} gameId\r\n * @return {undefined}\r\n */\r\nexport const setNewWindowGameUrl = (gameTableId, gameUrl, gameId) => {\r\n sendPostMsgToGameWindow(gameTableId, {\r\n type: \"setGameUrl\",\r\n data: gameUrl,\r\n gameId,\r\n gameTableId\r\n });\r\n};\r\n\r\n/**\r\n * open new game window\r\n * @param {number} GameTableId\r\n * @param {number} gameKindId\r\n * @param {boolean} isHistory\r\n * @param {boolean} isNotWaiting\r\n * @param {boolean} isTournament\r\n * @param {boolean} isDemoGame\r\n * @returns {undefined}\r\n */\r\nexport const openNewGameWindow = (\r\n GameTableId,\r\n gameKindId,\r\n isHistory = false,\r\n isNotWaiting = true,\r\n isTournament = false,\r\n isDemoGame = false\r\n) => {\r\n const { isCoin, Model } = store.getState().appData;\r\n\r\n // the under functionality is for opening new game window\r\n const currency = isCoin ? COIN : Model.PlayerCurrencyId;\r\n const windowsRefs = window.windowsRefs || {};\r\n const pageInfo = window.pageInfo || {};\r\n const IntGameKindId = Number(gameKindId);\r\n\r\n let url = `${\r\n window.location.origin\r\n }/game${GAME_QUERY_PARAM_FOR_NEW_WINDOW}${GameTableId}&isPortrait=${gameKindIdsWithPortraitView.includes(\r\n IntGameKindId\r\n )}&onlyPortrait=${gameKindIdsWithOnlyPortraitView.includes(\r\n IntGameKindId\r\n )}&newFullScreen=${gameKindIdsWithNewFullScreen.includes(IntGameKindId)}¤cyId=${currency}&isAutoJoin=${\r\n Model.loadAutoJoinLobby\r\n }&isNotWaiting=${isNotWaiting}&isTournament=${isTournament}&browserName=${BROWSER_NAME}&isDemoGame=${isDemoGame}&gameKindId=${gameKindId}`;\r\n\r\n !isHistory && (url += GAME_ID_QUERY_PARAM);\r\n let gamewinRef = windowsRefs[`gameTable${GameTableId}`];\r\n\r\n if (gamewinRef) {\r\n gamewinRef.close();\r\n }\r\n windowsRefs[`gameTable${GameTableId}`] = window.open(url, \"_blank\");\r\n pageInfo[GameTableId] = { loaded: false, taskQueue: [], isDemoGame };\r\n window.windowsRefs = windowsRefs;\r\n window.pageInfo = pageInfo;\r\n};\r\n\r\nexport const windowReplaceUrl = (prevGameTableId, gameTableId) => {\r\n const { windowsRefs, pageInfo } = window;\r\n windowsRefs[`gameTable${gameTableId}`] = windowsRefs[`gameTable${prevGameTableId}`];\r\n delete windowsRefs[`gameTable${prevGameTableId}`];\r\n pageInfo[gameTableId] = pageInfo[prevGameTableId];\r\n delete pageInfo[prevGameTableId];\r\n sendPostMsgToGameWindow(gameTableId, {\r\n type: \"setGameTableIdInToUrl\",\r\n gameTableId\r\n });\r\n};\r\n\r\nexport const removeOpenedWindowRef = gameTableId => {\r\n const { windowsRefs, pageInfo } = window;\r\n delete windowsRefs[`gameTable${gameTableId}`];\r\n delete windowsRefs[`gameTable${AUTO_JOIN_DEFAULT_GAME_TABLE_ID}`];\r\n delete pageInfo[gameTableId];\r\n};\r\n\r\n/**\r\n * add event listener to communicate with opened window\r\n * @returns {undefined}\r\n */\r\nexport function addEventListenersOnOpenedGame() {\r\n let eventMethod = window.addEventListener ? \"addEventListener\" : \"attachEvent\",\r\n eventer = window[eventMethod],\r\n messageEvent = eventMethod === \"attachEvent\" ? \"onmessage\" : \"message\";\r\n eventer(messageEvent, function(e) {\r\n const {\r\n appData,\r\n [partnerFiltersData]: { selectedNetworkIds }\r\n } = store.getState();\r\n const { networksData, isCoin, Texts, token } = appData;\r\n\r\n // the under 3 line is for lucky spin amount convert in new game window\r\n const currentNetwork = networksData.networks[selectedNetworkIds[0] || Object.keys(networksData.networks)[0]];\r\n const { Rate, DisplayedPrecision } = (currentNetwork && currentNetwork.CurrencyRateForPlayer) || {};\r\n const { type, gameTableId, gameId, isDemoGame, gameKindId } = e.data;\r\n if (e.origin === window.location.origin) {\r\n switch (type) {\r\n case \"pageLoaded\": {\r\n const id = isNaN(Number(gameTableId)) ? gameId : gameTableId;\r\n const pageInfo = window.pageInfo[id];\r\n pageInfo && (pageInfo.loaded = true);\r\n sendPostMsgToGameWindow(id, {\r\n type: \"setGameWindowData\",\r\n Texts,\r\n APP_URL,\r\n PartnerId,\r\n Rate,\r\n demoGameUrl: pageInfo?.demoGameUrl,\r\n IsCoin: isCoin,\r\n Token: token,\r\n DisplayedPrecision,\r\n isDemoGame: isDemoGame.toLowerCase() === \"true\",\r\n ReplaceGameUrl: process.env.REACT_APP_IS_DYNAMIC_GAME_URL\r\n });\r\n break;\r\n }\r\n case \"removeOpenedWindowRef\":\r\n removeOpenedWindowRef(gameTableId);\r\n break;\r\n case \"repeatDemoGame\":\r\n invoke(PLAY_DEMO_GAME, PartnerId, IsMobileLogin, lang, gameKindId, gameTableId);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function getRealityCheckInfo() {\r\n sendRequest(GET_REALITY_CHECK_INFO).then(data => {\r\n if (data) {\r\n const { RepetitionPeriodInMinutes } = data.Model;\r\n if (RepetitionPeriodInMinutes > 0) {\r\n setTimeout(() => {\r\n store.dispatch(openPopup(POPUP_NAMES.REALITY_CHECK, data.Model));\r\n }, RepetitionPeriodInMinutes * MINUTE_IN_MILISECONDS);\r\n }\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * creates array of stakes\r\n * @returns {array}\r\n */\r\n\r\nexport function createDoubleStakeArr(number) {\r\n let stake = number;\r\n const arr = [];\r\n if (number) {\r\n for (let i = 1; i <= number; i = i * 2) {\r\n if (stake >= 1) {\r\n let currentStakeObj = { key: stake, text: `x${stake}`, isRadioButton: true };\r\n arr.unshift(currentStakeObj);\r\n }\r\n stake = stake / 2;\r\n }\r\n }\r\n return arr;\r\n}\r\n\r\n/**\r\n * getTournamentKingLeaderBoardData\r\n * @param {number} TournamentKingId\r\n * @param {number} FromRowNumber\r\n * @param {number} PageItemsCount\r\n * @param {any} PlayerId\r\n * @param {boolean} initial\r\n * @returns {undefined}\r\n */\r\n\r\nexport function getTournamentKingLeaderBoardData(\r\n TournamentKingId,\r\n initial,\r\n FromRowNumber = 1,\r\n PageItemsCount = INITIAL_COUNT,\r\n PlayerId\r\n) {\r\n const body = {\r\n TournamentKingId,\r\n PlayerId,\r\n FromRowNumber,\r\n PageItemsCount\r\n };\r\n store.dispatch(actionCreatorForTournamentKingLeaderBoardData(body, initial));\r\n}\r\n\r\n/**\r\n * loadMoreTournamentKingLeaderBoardData\r\n * @returns {undefined}\r\n */\r\nexport function loadMoreTournamentKingLeaderBoardData() {\r\n const {\r\n tournamentKingData: { leaderBoardData, selectedTournamentKingId }\r\n } = store.getState();\r\n const { TournamentKingAwards, PlayersTotalCount } = leaderBoardData;\r\n\r\n TournamentKingAwards.length < PlayersTotalCount &&\r\n getTournamentKingLeaderBoardData(\r\n selectedTournamentKingId,\r\n false,\r\n TournamentKingAwards.length + 1,\r\n LOADABLE_COUNT\r\n );\r\n}\r\n\r\nexport const loadMoreAutoJoinGames = () => {\r\n const {\r\n autoJoinData: { fromRowNumber, pageItemsCount, GameTables }\r\n } = store.getState();\r\n const gamesCount = GameTables.reduce((a, b) => a + b.length, 0);\r\n if (gamesCount === fromRowNumber + pageItemsCount - 1) {\r\n store.dispatch(setAutoJoinFromTo(fromRowNumber + pageItemsCount, pageItemsCount));\r\n }\r\n};\r\n\r\n/**\r\n * switch status for tournament king item\r\n * @returns {array}\r\n */\r\n\r\nexport function updateTournamentKingItemStatusAndLeftTime(itemInfo, dataArray) {\r\n const { TournamentKingTemplateStatus, id } = itemInfo;\r\n for (let i = 0; i < dataArray.length; i++) {\r\n if (dataArray[i].Id === id) {\r\n dataArray[i] = calcLeftTimeForTournamentKingItem(TournamentKingTemplateStatus, dataArray[i]);\r\n }\r\n }\r\n return dataArray;\r\n}\r\n\r\n/**\r\n * calculate left time for tournament king item according to status\r\n * @returns {object}\r\n */\r\n\r\nexport function calcLeftTimeForTournamentKingItem(newStatus, item) {\r\n const dateNow = new Date().getTime();\r\n let finishInMs = Date.parse(`${item.FinishDate}`);\r\n finishInMs = parseFloat(`${finishInMs}`);\r\n let startInMs = Date.parse(`${item.StartDate}`);\r\n startInMs = parseFloat(`${startInMs}`);\r\n\r\n item.TournamentKingTemplateStatus = newStatus;\r\n switch (newStatus) {\r\n case T_KING_IN_PROGRESS_STATUS:\r\n item.leftTimeInMillisecondsForCurrentStatus = finishInMs - dateNow;\r\n break;\r\n case T_KING_SOON_STATUS:\r\n item.leftTimeInMillisecondsForCurrentStatus = finishInMs - startInMs - (startInMs - dateNow);\r\n break;\r\n case T_KING_FINISHED_STATUS:\r\n item.leftTimeInMillisecondsForCurrentStatus = 0;\r\n break;\r\n case T_KING_CANCELED_STATUS:\r\n item.leftTimeInMillisecondsForCurrentStatus = QUARTER_HOUR;\r\n break;\r\n }\r\n\r\n return item;\r\n}\r\n\r\n/**\r\n * remove item from tournament king data\r\n * @returns {array}\r\n */\r\nexport function removeTournamentKingItem(id, data) {\r\n for (let i = 0; i < data.length; i++) {\r\n if (id === data[i].Id) {\r\n data.splice(i, 1);\r\n }\r\n }\r\n return data;\r\n}\r\n\r\n/**\r\n * update leaderboard's player points\r\n * @returns {array}\r\n */\r\n\r\nexport function updateTKLeaderBoardsPlayerPoints(playerInfo, leaderBoardData) {\r\n const { PlayerNickName, Point } = playerInfo;\r\n if (leaderBoardData) {\r\n const awards = JSON.parse(JSON.stringify(leaderBoardData.TournamentKingAwards));\r\n if (awards) {\r\n let change;\r\n for (let i = 0; i < awards.length; i++) {\r\n if (awards[i].PlayerNickName === PlayerNickName) {\r\n awards[i].Point = Point;\r\n change = true;\r\n break;\r\n }\r\n }\r\n if (change) {\r\n awards.sort((a, b) => b.Point - a.Point);\r\n }\r\n return awards;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * returns array of game kinds\r\n * @returns {array}\r\n */\r\nexport const createGameKindsArray = gameKinds => {\r\n let gameKindsAndTypes = [];\r\n if (gameKinds) {\r\n const gameKindsArr = Object.keys(gameKinds);\r\n gameKindsAndTypes =\r\n gameKindsArr &&\r\n gameKindsArr.map((gameKind, index) => {\r\n let gameName = t(GAME_KIND_TITLE_ID + gameKind);\r\n if (gameKindsArr.length !== index + 1) {\r\n gameName += `, `;\r\n }\r\n return gameName;\r\n });\r\n }\r\n return gameKindsAndTypes;\r\n};\r\n\r\n/**\r\n * returns array of convnetionKeys\r\n * @returns {array}\r\n */\r\nexport function conventionKeysForPopups(Conventions) {\r\n const conventionKeys = [],\r\n keys = Object.keys(Conventions);\r\n for (let i = 0; i < keys.length; ++i) {\r\n if (\r\n keys[i] !== WITH_RATING &&\r\n typeof Conventions[keys[i]] === \"boolean\" &&\r\n ((keys[i] !== SHOW_TO_GUEST && Conventions[keys[i]]) ||\r\n (!Conventions[keys[i]] && keys[i] === SHOW_TO_GUEST))\r\n ) {\r\n if (keys[i].includes(CHANGE_DICE)) {\r\n keys[i] = CHANGE_DICE;\r\n }\r\n conventionKeys.push(keys[i]);\r\n }\r\n }\r\n return conventionKeys;\r\n}\r\n\r\nexport function addMePlayer(array, index) {\r\n if (typeof index === \"number\") {\r\n const currentPlayer = array.splice(index, 1);\r\n currentPlayer && array.unshift(currentPlayer[0]);\r\n }\r\n return array;\r\n}\r\n\r\n/**\r\n * find playerId in tournament players and add attr \"Me\"\r\n * @returns {array}\r\n */\r\nexport function findMePlayerAndSort(selectedTournamentPlayers, Status, playerId) {\r\n if (selectedTournamentPlayers.length > 0) {\r\n const arr = JSON.parse(JSON.stringify(selectedTournamentPlayers));\r\n let index = null;\r\n\r\n arr.sort((a, b) => b.WinsCount - a.WinInCoin).forEach((el, i) => {\r\n el.order = i + 1;\r\n if (playerId === el.PlayerId) {\r\n index = i;\r\n el.PlayerIsMe = true;\r\n }\r\n });\r\n\r\n if (Status === STARTED_STATUS || Status === REBUY_STATUS) {\r\n const inTheGamePlayers = arr.filter(player => player.InTournament === true);\r\n const finishedPlayers = arr.filter(player => player.InTournament === false);\r\n const jointArr = inTheGamePlayers.concat(finishedPlayers);\r\n\r\n return addMePlayer(jointArr, index);\r\n } else {\r\n return addMePlayer(arr, index);\r\n }\r\n } else {\r\n return [];\r\n }\r\n}\r\n\r\n/**\r\n * update Selected Tournament Button Text And Style\r\n * @returns {array}\r\n */\r\nexport function getBannerImageUrl(gameName) {\r\n const language = new URL(window.location).searchParams.get(\"lang\");\r\n const banners = [];\r\n if (gameName) {\r\n banners.push({ image: `${gameName}Banner`, lang: language });\r\n } else {\r\n const sliderImgs = IsMobileLogin ? mobileSliderData : desktopSliderData;\r\n const sliderData = sliderImgs[language] || sliderImgs[\"en\"];\r\n //eslint-disable-next-line no-unused-vars\r\n for (let key of sliderData) {\r\n banners.push({ image: key, lang: language });\r\n }\r\n }\r\n\r\n return banners;\r\n}\r\n\r\n/**\r\n * update Selected Tournament Button Text And Style\r\n * @returns {object}\r\n */\r\nexport function getTournamentInfoFromAllList(id, tournaments) {\r\n const { allTournaments } = concatAllTournamentsLists(tournaments);\r\n return allTournaments.find(i => i.Id === id);\r\n}\r\n\r\nexport function debounce(func, wait, immediate = true) {\r\n let timeout;\r\n\r\n return function executedFunction() {\r\n const context = this;\r\n const args = arguments;\r\n\r\n const later = function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport function getCurrentPageData() {\r\n store.dispatch(updateCurrentPage());\r\n}\r\n\r\nexport function toggleALLButtonsDisabledState(status) {\r\n store.dispatch(toggleDisableBtnWhileWSReconnecting(status));\r\n}\r\n\r\n/**\r\n * add convention to conventions templates\r\n * @returns {array}\r\n */\r\nexport function addNewConventionTemplate(data, networks) {\r\n const { SelectedEmptyTemplateId, template } = data;\r\n const allNetworks = JSON.parse(JSON.stringify(networks));\r\n const currentNetworkTemplates = allNetworks[template.NetworkId].ConventionsTemplates;\r\n const selectedTemplateIndex = currentNetworkTemplates.findIndex(item => item.Id === SelectedEmptyTemplateId);\r\n currentNetworkTemplates[selectedTemplateIndex] = template; //NetworkId\r\n\r\n return allNetworks;\r\n}\r\n\r\n/**\r\n * add convention to conventions templates\r\n * @returns {array}\r\n */\r\nexport function handleDataStructure(item, action) {\r\n const {\r\n NetworkId,\r\n Id,\r\n Name,\r\n GameTypeId,\r\n Conventions,\r\n BetInCoin,\r\n GameDataChangeParameters,\r\n MaxStakeDoubling\r\n } = item;\r\n const { GamePoints, ExtraTime, MoveTime } = Conventions;\r\n\r\n let ChangeItem, ChangeItemCount;\r\n if (GameDataChangeParameters && GameDataChangeParameters.length > 0 && GameDataChangeParameters[0].ItemsQuantity) {\r\n const { ItemsQuantity, ChangesQuantity } = GameDataChangeParameters[0];\r\n ChangeItem = ItemsQuantity;\r\n ChangeItemCount = ChangesQuantity;\r\n }\r\n const state = store.getState();\r\n const {\r\n networksData: { networks },\r\n isCoin\r\n } = state.appData;\r\n\r\n const { DisplayedPrecision, Rate } = networks && networks[item.NetworkId].CurrencyRateForPlayer;\r\n const template = {\r\n action: action,\r\n Id,\r\n Name,\r\n NetworkId,\r\n GameTypeId,\r\n Bet: isCoin ? BetInCoin : convertCoinToCurrency(BetInCoin, Rate, DisplayedPrecision),\r\n GamePoints,\r\n ExtraTime,\r\n MoveTime,\r\n Conventions,\r\n ChangeItemCount,\r\n ChangeItem,\r\n MaxStakeDoubling\r\n };\r\n return template;\r\n // dispatch(setSelectedConventionTemplate(template));\r\n}\r\n\r\n/**\r\n * remove convention to conventions templates\r\n * @returns {array}\r\n */\r\nexport function removeConventionTemplate(item, networks) {\r\n const { Id, NetworkId } = item;\r\n const allNetworks = JSON.parse(JSON.stringify(networks));\r\n const currentNetworksTemplates = allNetworks[NetworkId].ConventionsTemplates;\r\n const index = currentNetworksTemplates.findIndex(item => Id === item.Id);\r\n currentNetworksTemplates[index] = { Id: \"EmptyTemplate\" + Math.random(1000), action: null };\r\n return allNetworks;\r\n}\r\n\r\n/**\r\n * edit convention to conventions templates\r\n * @returns {array}\r\n */\r\nexport function editConventionsTemplate(template, networks) {\r\n const allNetworks = JSON.parse(JSON.stringify(networks));\r\n const currentNetworkTemplates = allNetworks[template.networkId].ConventionsTemplates;\r\n const index = currentNetworkTemplates.findIndex(item => item.Id === template.conventionsTemplateId);\r\n\r\n currentNetworkTemplates[index] = conventionsTemplateStructureChange(template);\r\n return allNetworks;\r\n}\r\n/**\r\n * change template structure\r\n * @returns {object}\r\n */\r\nexport function conventionsTemplateStructureChange(template) {\r\n const {\r\n betInCoin,\r\n conventionsObj,\r\n gameDataChangeParameters,\r\n gameTypeId,\r\n gameKindId,\r\n conventionsTemplateId,\r\n maxStakeDoubling,\r\n name,\r\n networkId\r\n } = template;\r\n\r\n return {\r\n BetInCoin: betInCoin,\r\n Conventions: conventionsObj,\r\n GameDataChangeParameters: JSON.parse(gameDataChangeParameters),\r\n\r\n GameTypeId: gameTypeId,\r\n GameKindId: gameKindId,\r\n Id: conventionsTemplateId,\r\n MaxStakeDoubling: maxStakeDoubling,\r\n Name: name,\r\n NetworkId: networkId\r\n };\r\n}\r\n\r\n/**\r\n * switch Prize Place for TOurnamentKing\r\n * @returns {string}\r\n */\r\nexport function switchPrizePlace(PrizePlace) {\r\n switch (PrizePlace) {\r\n case 1: {\r\n return \" first-place\";\r\n }\r\n case 2: {\r\n return \" second-place\";\r\n }\r\n case 3: {\r\n return \" third-place\";\r\n }\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport const sliceData = (data, type) => {\r\n let dataToShow = [];\r\n if (data) {\r\n if (type === UPCOMING_TOURNAMENTS) {\r\n dataToShow = data.slice(0, 5);\r\n if (dataToShow.length < 5) {\r\n let length = 5 - dataToShow.length;\r\n\r\n for (let i = 0; i < length; i++) {\r\n dataToShow.push({\r\n Id: \"emptyManukRow\" + i\r\n });\r\n }\r\n }\r\n } else {\r\n dataToShow = data;\r\n }\r\n }\r\n return dataToShow;\r\n};\r\n\r\nexport const sendIframeSizeToCasWeb = height => {\r\n let type = \"skillgames-height-change\";\r\n let data = { type, data: { height } };\r\n\r\n if (!isRGS) {\r\n type = \"rgs-height-change\";\r\n data = { type, value: height };\r\n }\r\n\r\n window.parent.postMessage(data, \"*\");\r\n};\r\n\r\nexport const clearUnJoinTimeOutId = () => {\r\n const unJoinTimeOutId = sessionStorage.getItem(\"unJoinTimeOutId\");\r\n sessionStorage.removeItem(\"unJoinTimeOutId\");\r\n clearTimeout(unJoinTimeOutId);\r\n};\r\n\r\n/*\r\n * Capitalize first letter\r\n * @params {string}\r\n * @return {string}\r\n */\r\nexport const capitalizeFirstLetter = str => {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n};\r\n\r\n/**\r\n * Change favicon for cannonbet and toto partners, TODO: get from cms too\r\n */\r\n\r\nexport const changeFaviconApi = () => {\r\n makeAPIGetRequest(GET_PARTNER_CONFIG, {\r\n appConfigUrlKey: \"TRANSLATIONS_URL\",\r\n query: {\r\n partnerSiteId: PartnerId\r\n }\r\n }).then(data => {\r\n if (data?.faviconUrl) {\r\n const appUrl = getUrlDynamic(\"ICON_URL\");\r\n const href = `${appUrl}${data.faviconUrl}`;\r\n\r\n changeFavIcon(href);\r\n } else {\r\n changeFavIconByPartnerId();\r\n }\r\n });\r\n};\r\n\r\nexport const translateDocumentTitle = title => (document.title = t(title || document.title));\r\n\r\n/**\r\n * Separate host\r\n * @returns {string}\r\n */\r\nexport function separateHost() {\r\n let host = window.location.host.split(\".\");\r\n if (host.length > 2) {\r\n host.shift();\r\n }\r\n host = host.join(\".\");\r\n return host;\r\n}\r\n\r\nexport const getUrlDynamic = key => {\r\n const isDynamicUrl = process.env[`REACT_APP_IS_DYNAMIC_${key}`] === \"true\";\r\n return `${process.env[`REACT_APP_${key}`]}${isDynamicUrl ? separateHost() : \"\"}`;\r\n};\r\n\r\nexport const changeFavIconByPartnerId = () => {\r\n const partnersIconsName = {\r\n ADF1A1C772683CB8651112A304E9F62B: \"totoFavicon\",\r\n abeb9ffaa17c768940d3d544e715fb0f: \"cannonbetFavicon\",\r\n dae6e4a5a713d9a4cd29faa9f17121f8: \"Arianbet\",\r\n c7c5cdc302f2fa082c5c24ad79b4365b: \"Marcbet\",\r\n d443f10e0b169b2f4df0424a0897f4c2: \"Novinbet\",\r\n d95f9c7dcfda891db29e56dde6006999: \"winsport\",\r\n \"1bbbf652231945eb2c011056800d3f78\": \"Irbet365\",\r\n \"501f38b14a7797bb82289b7383796390\": \"Onexfa\",\r\n \"073a32e7d5e6473346037d4c133aa0d6\": \"Takbet\",\r\n \"18a15a4949a1dd266dde5139998c7e98\": \"Betfa\",\r\n \"84dbb94bb63fe0301a42d6d9a01696e0\": \"Irtoto\",\r\n \"4898fdadb198b129075d507ad84b9ed4\": \"Manotobet\",\r\n \"97addeeb31784674b206262ff57c6b0e\": \"cyrusbet\",\r\n \"9750A1CFD7A4068253C86721E1454A80\": \"maxbet\",\r\n F00751F8EB990909336333A7ED1D18D9: \"ibet\",\r\n B389ACDFA6C241CBFB88CC5F85FC3F4A: \"betzan\",\r\n C66179972246FA5B1D2F79DB9129920B: \"bia2bet\",\r\n EFBE1BD8FF61035501DCCC30CF328163: \"parsgoal\",\r\n C66FD5E2EC38E9542A9FA72B085770AC: \"royalbet\",\r\n B9F2A71CCF96DDBAB8F335A49C356DA0: \"betchanel\",\r\n \"8BD0F5B2DEF7BB818361608779C7F33B\": \"kingbet\",\r\n \"7A8B023D5C8E27B7808252CB8B15A421\": \"betcloob\",\r\n \"84F851C7B115F4DB06415800B5777E4C\": \"violetbet\",\r\n \"737CAEAB0E0AB47B00224B05B2800641\": \"igoal90\"\r\n };\r\n const href = favIcons[partnersIconsName[PartnerId]];\r\n href && changeFavIcon(href);\r\n};\r\n\r\nexport const changeFavIcon = href => {\r\n if (!href) {\r\n return;\r\n }\r\n\r\n let link = document.querySelector(\"link[rel~='icon']\");\r\n if (!link) {\r\n link = document.createElement(\"link\");\r\n link.rel = \"icon\";\r\n document.getElementsByTagName(\"head\")[0].appendChild(link);\r\n }\r\n\r\n link.href = href;\r\n};\r\n\r\nexport const mobileHomeButtonAction = () => {\r\n if (PartnerId === TOTO_PARTNER_ID || PartnerId === TOTO_PARTNER_ID_TEST) {\r\n redirectToTotoLobby();\r\n } else if (isRGS && mainDomain) {\r\n window.parent.postMessage(\r\n {\r\n type: \"redirectToHomePage\",\r\n value: mainDomain\r\n },\r\n \"*\"\r\n );\r\n } else {\r\n window.location.href = sessionStorage.getItem(\"openerUrl\");\r\n }\r\n};\r\nexport const homeBtnHandler = cb => () => {\r\n if (PartnerId === TOTO_PARTNER_ID || PartnerId === TOTO_PARTNER_ID_TEST) {\r\n redirectToTotoLobby();\r\n } else if (cb) {\r\n cb();\r\n }\r\n};\r\n\r\nexport const redirectToTotoLobby = () => {\r\n window.parent.postMessage(\r\n {\r\n type: \"rgs-backtohome\",\r\n mainDomain: TOTO_NEW_GAMES_LOBBY_URL\r\n },\r\n \"*\"\r\n );\r\n};\r\n","import {\r\n SET_APP_DATA,\r\n SET_NETWORKS,\r\n SET_IS_COIN,\r\n UPDATE_CURRENT_PAGE,\r\n LOGIN,\r\n UPDATE_JACKPOT_DATA,\r\n SET_CURRENT_GAME_KIND,\r\n SET_BALANCE,\r\n DISABLE_BTN_WHILE_WS_RECONNECTING,\r\n // REMOVE_UNDER_CONSTRUCTION_NETWORK_INFO,\r\n REPLACE_JACKPOT_DATA_ITEM,\r\n SELECT_CONVENTION_TEMPLATE,\r\n ADD_CONVENTIONS_TEMPLATES,\r\n EDIT_CONVENTIONS_TEMPLATE,\r\n DELETE_CONVENTIONS_TEMPLATE,\r\n REMOVE_UNDER_CONSTRUCTION_INFO,\r\n ADD_UNDER_CONSTRUCTION_INFO,\r\n TOGGLE_UNDER_CONSTRUCTION,\r\n ENABLE_FILTERS,\r\n DISABLE_FILTERS\r\n} from \"../actions/types\";\r\nimport {\r\n addNewConventionTemplate,\r\n editConventionsTemplate,\r\n handleNetworksData,\r\n removeConventionTemplate,\r\n replaceJackpotItem,\r\n updateJackpot\r\n} from \"../../helpers/localHelperFunctions\";\r\nimport { currencySelected, PartnerId } from \"../../constants\";\r\n\r\nconst initialState = {\r\n Texts: {},\r\n Model: {\r\n ShowWithCoin: false,\r\n isLobbyV2: false,\r\n JackpotsDataJson: [],\r\n currentGameKind: null,\r\n IsTournamentAllowed: false\r\n },\r\n networksData: {\r\n possibleGamePoints: [],\r\n possibleMoveTimes: [],\r\n possibleExtraTimes: [],\r\n possibleConventions: [],\r\n possibleConventionsNames: [],\r\n possibleGameKinds: [],\r\n networks: {},\r\n conventionsTemplates: []\r\n },\r\n appReady: false,\r\n loggedIn: false,\r\n token: null,\r\n balance: null,\r\n isCoin: false,\r\n appStatusInfo: {\r\n appUpdater: false,\r\n disableBtnWhileWSReconnecting: false\r\n },\r\n underConstructionData: {\r\n underConstructionSchedule: []\r\n },\r\n selectedConventionTemplate: {\r\n action: null,\r\n Id: null,\r\n Name: null\r\n }\r\n};\r\n\r\nexport default function appData(state = initialState, action) {\r\n const { payload, type } = action;\r\n switch (type) {\r\n case LOGIN:\r\n return {\r\n ...state,\r\n loggedIn: true,\r\n token: payload\r\n };\r\n case SET_APP_DATA:\r\n return {\r\n ...state,\r\n ...payload,\r\n isCoin: currencySelected.includes(PartnerId) ? false : payload.Model.ShowWithCoin,\r\n appReady: true\r\n };\r\n case SET_NETWORKS:\r\n return {\r\n ...state,\r\n networksData: handleNetworksData(payload, state.Model.loadAutoJoinLobby)\r\n };\r\n case SET_IS_COIN:\r\n return {\r\n ...state,\r\n isCoin: payload\r\n };\r\n case SET_BALANCE:\r\n return {\r\n ...state,\r\n balance: payload\r\n };\r\n case UPDATE_CURRENT_PAGE: {\r\n const { appStatusInfo } = state;\r\n return {\r\n ...state,\r\n appStatusInfo: {\r\n ...appStatusInfo,\r\n appUpdater: !appStatusInfo.appUpdater,\r\n disableBtnWhileWSReconnecting: false\r\n }\r\n };\r\n }\r\n case DISABLE_BTN_WHILE_WS_RECONNECTING: {\r\n return {\r\n ...state,\r\n appStatusInfo: {\r\n ...state.appStatusInfo,\r\n disableBtnWhileWSReconnecting: payload\r\n }\r\n };\r\n }\r\n case REPLACE_JACKPOT_DATA_ITEM:\r\n return {\r\n ...state,\r\n Model: { ...state.Model, JackpotsDataJson: replaceJackpotItem(state.Model.JackpotsDataJson, payload) }\r\n };\r\n case UPDATE_JACKPOT_DATA:\r\n return {\r\n ...state,\r\n Model: { ...state.Model, JackpotsDataJson: updateJackpot(state.Model.JackpotsDataJson, payload) }\r\n };\r\n case SET_CURRENT_GAME_KIND:\r\n return {\r\n ...state,\r\n Model: { ...state.Model, currentGameKind: payload }\r\n };\r\n case ADD_UNDER_CONSTRUCTION_INFO: {\r\n const { underConstructionData } = state;\r\n const { underConstructionSchedule } = underConstructionData;\r\n let currentSchedule = underConstructionSchedule;\r\n if (!currentSchedule.find(i => i.GameKindId === payload.GameKindId)) {\r\n currentSchedule = [...currentSchedule, payload];\r\n }\r\n\r\n return {\r\n ...state,\r\n underConstructionData: {\r\n ...underConstructionData,\r\n underConstructionSchedule: currentSchedule\r\n }\r\n };\r\n }\r\n case REMOVE_UNDER_CONSTRUCTION_INFO: {\r\n const { underConstructionData } = state;\r\n const newUnderConstSchedule = underConstructionData.underConstructionSchedule.filter(\r\n i => i.GameKindId !== payload.GameKindId\r\n );\r\n return {\r\n ...state,\r\n underConstructionData: {\r\n ...underConstructionData,\r\n underConstructionSchedule: newUnderConstSchedule\r\n }\r\n };\r\n }\r\n case TOGGLE_UNDER_CONSTRUCTION: {\r\n const { underConstructionData } = state;\r\n const newUnderConstSchedule = underConstructionData.underConstructionSchedule.map(i => {\r\n if (i.GameKindId === payload.GameKindId) {\r\n i.IsUnderConstruction = true;\r\n }\r\n return i;\r\n });\r\n\r\n return {\r\n ...state,\r\n underConstructionData: {\r\n ...underConstructionData,\r\n underConstructionSchedule: newUnderConstSchedule\r\n }\r\n };\r\n }\r\n case SELECT_CONVENTION_TEMPLATE: {\r\n return {\r\n ...state,\r\n selectedConventionTemplate: payload\r\n };\r\n }\r\n case ADD_CONVENTIONS_TEMPLATES: {\r\n return {\r\n ...state,\r\n networksData: {\r\n ...state.networksData,\r\n networks: addNewConventionTemplate(payload, state.networksData.networks)\r\n }\r\n };\r\n }\r\n case EDIT_CONVENTIONS_TEMPLATE: {\r\n return {\r\n ...state,\r\n networksData: {\r\n ...state.networksData,\r\n networks: editConventionsTemplate(payload, state.networksData.networks)\r\n }\r\n };\r\n }\r\n case DELETE_CONVENTIONS_TEMPLATE: {\r\n return {\r\n ...state,\r\n networksData: {\r\n ...state.networksData,\r\n networks: removeConventionTemplate(payload, state.networksData.networks)\r\n }\r\n };\r\n }\r\n case ENABLE_FILTERS: {\r\n return { ...state, filtersDisabled: false };\r\n }\r\n case DISABLE_FILTERS: {\r\n return { ...state, filtersDisabled: true };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n MASTER_BOARD_PLAYER_WON_FOR_ROW,\r\n MASTER_BOARD_RANGE_ROWS,\r\n MASTER_BOARD_RANGES,\r\n MASTER_BOARD_SELECTED_RANGE_ID,\r\n MASTER_BOARD_TOTAL_AMOUNT\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n playerWonData: {},\r\n selectedRangeId: null,\r\n ranges: [],\r\n rangeRows: null,\r\n totalAmount: {}\r\n};\r\nexport default function masterBoardData(state = initialState, action) {\r\n switch (action.type) {\r\n case MASTER_BOARD_PLAYER_WON_FOR_ROW:\r\n return {\r\n ...state,\r\n playerWonData: action.payload\r\n };\r\n case MASTER_BOARD_SELECTED_RANGE_ID:\r\n return {\r\n ...state,\r\n selectedRangeId: action.payload\r\n };\r\n case MASTER_BOARD_RANGES:\r\n return {\r\n ...state,\r\n ranges: action.payload,\r\n selectedRangeId: action.payload[0]?.key\r\n };\r\n case MASTER_BOARD_TOTAL_AMOUNT:\r\n return {\r\n ...state,\r\n totalAmount: action.payload\r\n };\r\n case MASTER_BOARD_RANGE_ROWS:\r\n return {\r\n ...state,\r\n rangeRows: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n SET_GAMES,\r\n MERGE_GAMES,\r\n ADD_GAME,\r\n UPDATE_GAME,\r\n REMOVE_GAME,\r\n DISABLE_GAME,\r\n SET_GAMES_COUNT,\r\n RESET_GAMES,\r\n ENABLE_GAME,\r\n SET_DEMO_GAMES\r\n} from \"../actions/types\";\r\nimport { findDisabledGames, removeGame, updateGame, addGame } from \"../../helpers/localHelperFunctions\";\r\nconst initialState = {\r\n games: {\r\n myStartedGames: null,\r\n myNotStartedGames: null,\r\n notStartedGames: null,\r\n startedGames: null,\r\n gamesTotalCount: null\r\n },\r\n disabledGames: []\r\n};\r\n\r\nexport default function gameHallData(state = initialState, action) {\r\n const { payload, startAnimation } = action;\r\n let GameTables = [],\r\n gamesTotalCount = 0;\r\n if (payload) {\r\n GameTables = payload.GameTables || [];\r\n gamesTotalCount = payload.GameTablesTotalCount;\r\n }\r\n switch (action.type) {\r\n case SET_DEMO_GAMES:\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n myStartedGames: [],\r\n myNotStartedGames: [],\r\n notStartedGames:\r\n payload.Games?.map(i => {\r\n i.Status = 3;\r\n return i;\r\n }) || [],\r\n startedGames: []\r\n }\r\n };\r\n case SET_GAMES:\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n myStartedGames: GameTables[0] || [],\r\n myNotStartedGames: findDisabledGames(GameTables[1] || []),\r\n notStartedGames: findDisabledGames(GameTables[2] || []),\r\n startedGames: GameTables[3] || [],\r\n gamesTotalCount\r\n }\r\n };\r\n case MERGE_GAMES:\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n myStartedGames: state.games.myStartedGames.concat(GameTables[0]),\r\n myNotStartedGames: state.games.myNotStartedGames.concat(GameTables[1]),\r\n notStartedGames: state.games.notStartedGames.concat(GameTables[2]),\r\n startedGames: state.games.startedGames.concat(GameTables[3]),\r\n gamesTotalCount\r\n }\r\n };\r\n case ADD_GAME: {\r\n return {\r\n ...state,\r\n games: addGame(payload, state.games)\r\n };\r\n }\r\n case UPDATE_GAME: {\r\n return {\r\n ...state,\r\n games: updateGame(payload, state.games)\r\n };\r\n }\r\n case REMOVE_GAME: {\r\n return {\r\n ...state,\r\n games: removeGame(payload, state.games, startAnimation)\r\n };\r\n }\r\n case DISABLE_GAME: {\r\n return {\r\n ...state,\r\n disabledGames: [...state.disabledGames, payload]\r\n };\r\n }\r\n case ENABLE_GAME: {\r\n return {\r\n ...state,\r\n disabledGames: state.disabledGames.filter(i => i !== payload)\r\n };\r\n }\r\n case SET_GAMES_COUNT: {\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n gamesTotalCount: payload\r\n }\r\n };\r\n }\r\n case RESET_GAMES: {\r\n return {\r\n ...initialState\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n SET_TOURNAMENTS,\r\n MERGE_TOURNAMENTS,\r\n ADD_TOURNAMENT,\r\n UPDATE_TOURNAMENT,\r\n REMOVE_TOURNAMENT,\r\n ADD_TOURNAMENT_GAMES,\r\n SET_TOURNAMENT_GAMES,\r\n REMOVE_TOURNAMENT_GAME,\r\n CHANGE_TOURNAMENT_GAME_SCORE,\r\n TOGGLE_DISABLE_TOURNAMENT,\r\n RESET_ALL_TOURNAMENTS_DATA,\r\n UPDATE_TOURNAMENT_PLAYERS_QUANTITY,\r\n SET_SELECTED_TOURNAMENT_INFO,\r\n UPDATE_TOURNAMENT_INFO_STATUS,\r\n REMOVE_TOURNAMENT_ALL_GAMES,\r\n SET_TOURNAMENT_INFO_PLAYERS,\r\n SET_SELECTED_TOURNAMENT_PRIZES,\r\n UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT,\r\n SET_TOURNAMENT_INFO,\r\n SET_TOURNAMENT_INFO_ID,\r\n RESET_TOURNAMENT_INFO,\r\n SET_SELECTED_TOURNAMENT_GENERAL_INFO,\r\n SET_LOADER_IN_TOURNAMENTS_LIST\r\n} from \"../actions/types\";\r\nimport { addTournament, removeTournament, updateTournament } from \"../../helpers/localHelperFunctions\";\r\n\r\nconst initialState = {\r\n tournaments: {\r\n myNotStartedTournaments: [],\r\n startedTournaments: [],\r\n notStartedTournaments: [],\r\n finishedTournaments: [],\r\n tournamentsTotalCount: 0\r\n },\r\n loaderInTournaments: false,\r\n tournamentInfo: {\r\n Id: null,\r\n noInfo: true,\r\n isSelected: false,\r\n StartDateInMilliseconds: null,\r\n selectedTournamentGeneralInfo: null,\r\n selectedTournamentGames: null,\r\n selectedTournamentPrizes: null,\r\n selectedTournamentPlayers: null\r\n },\r\n disabledTournaments: {}\r\n};\r\n\r\nexport default function tournamentHallData(state = initialState, action) {\r\n const { payload, startAnimation } = action;\r\n let TournamentTables = [],\r\n tournamentsTotalCount = 0;\r\n if (payload) {\r\n TournamentTables = payload.Tournaments;\r\n tournamentsTotalCount = payload.TournamentsTotalCount;\r\n }\r\n switch (action.type) {\r\n case SET_TOURNAMENTS:\r\n return {\r\n ...state,\r\n tournaments: {\r\n ...state.tournaments,\r\n myNotStartedTournaments: TournamentTables[0] || [],\r\n startedTournaments: TournamentTables[1] || [],\r\n notStartedTournaments: TournamentTables[2] || [],\r\n finishedTournaments: TournamentTables[3] || [],\r\n tournamentsTotalCount\r\n },\r\n loaderInTournaments: false\r\n };\r\n case MERGE_TOURNAMENTS:\r\n return {\r\n ...state,\r\n tournaments: {\r\n ...state.tournaments,\r\n myNotStartedTournaments: state.tournaments.myNotStartedTournaments.concat(TournamentTables[0]),\r\n startedTournaments: state.tournaments.startedTournaments.concat(TournamentTables[1]),\r\n notStartedTournaments: state.tournaments.notStartedTournaments.concat(TournamentTables[2]),\r\n finishedTournaments: state.tournaments.finishedTournaments.concat(TournamentTables[3]),\r\n tournamentsTotalCount\r\n }\r\n };\r\n case RESET_ALL_TOURNAMENTS_DATA:\r\n return initialState;\r\n case ADD_TOURNAMENT: {\r\n const notStartedTournaments = addTournament(payload, state.tournaments.notStartedTournaments);\r\n\r\n return {\r\n ...state,\r\n tournaments: {\r\n ...state.tournaments,\r\n notStartedTournaments: [...notStartedTournaments],\r\n tournamentsTotalCount: ++state.tournaments.tournamentsTotalCount\r\n }\r\n };\r\n }\r\n case UPDATE_TOURNAMENT: {\r\n //TODO: remove JSON.stringify from here and from tournament components (memo)\r\n const { tournaments, tournamentInfo } = updateTournament(\r\n payload,\r\n JSON.parse(JSON.stringify(state.tournaments)),\r\n state.tournamentInfo.Id\r\n );\r\n return {\r\n ...state,\r\n tournaments,\r\n tournamentInfo: { ...state.tournamentInfo, ...tournamentInfo }\r\n };\r\n }\r\n case REMOVE_TOURNAMENT: {\r\n const { tournaments, removed } = removeTournament(\r\n payload,\r\n JSON.parse(JSON.stringify(state.tournaments)),\r\n startAnimation\r\n );\r\n let newDisabledTournaments = state.disabledTournaments;\r\n if (newDisabledTournaments.hasOwnProperty(payload.tournamentId)) {\r\n newDisabledTournaments = { ...state.disabledTournaments };\r\n delete newDisabledTournaments[payload.tournamentId];\r\n }\r\n\r\n return {\r\n ...state,\r\n tournaments: {\r\n ...tournaments,\r\n tournamentsTotalCount: removed\r\n ? --tournaments.tournamentsTotalCount\r\n : tournaments.tournamentsTotalCount\r\n },\r\n disabledTournaments: newDisabledTournaments\r\n };\r\n }\r\n case SET_LOADER_IN_TOURNAMENTS_LIST: {\r\n return {\r\n ...state,\r\n loaderInTournaments: true\r\n };\r\n }\r\n case TOGGLE_DISABLE_TOURNAMENT: {\r\n const { disabledTournaments } = state;\r\n const { id, disabled } = payload;\r\n let newDisabledTournaments = { ...disabledTournaments };\r\n if (!disabled) {\r\n delete newDisabledTournaments[id];\r\n } else {\r\n newDisabledTournaments = { ...newDisabledTournaments, [id]: disabled };\r\n }\r\n return {\r\n ...state,\r\n disabledTournaments: newDisabledTournaments\r\n };\r\n }\r\n case SET_TOURNAMENT_INFO: {\r\n return {\r\n ...state,\r\n tournamentInfo: { ...state.tournamentInfo, ...payload }\r\n };\r\n }\r\n case SET_SELECTED_TOURNAMENT_GENERAL_INFO: {\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGeneralInfo: payload\r\n }\r\n };\r\n }\r\n case RESET_TOURNAMENT_INFO: {\r\n return {\r\n ...state,\r\n tournamentInfo: initialState.tournamentInfo\r\n };\r\n }\r\n case SET_TOURNAMENT_INFO_ID:\r\n return {\r\n ...state,\r\n tournamentInfo: { ...initialState.tournamentInfo, Id: payload, isSelected: true }\r\n };\r\n case SET_TOURNAMENT_GAMES: {\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGames: payload\r\n }\r\n };\r\n }\r\n case REMOVE_TOURNAMENT_ALL_GAMES: {\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGames: []\r\n }\r\n };\r\n }\r\n case ADD_TOURNAMENT_GAMES: {\r\n let games = state.tournamentInfo.selectedTournamentGames || [];\r\n\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGames: [...games, ...payload]\r\n }\r\n };\r\n }\r\n case REMOVE_TOURNAMENT_GAME: {\r\n let games = state.tournamentInfo.selectedTournamentGames || [];\r\n\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGames: [...games.filter(g => g.Id !== payload)]\r\n }\r\n };\r\n }\r\n case CHANGE_TOURNAMENT_GAME_SCORE: {\r\n const games = state.tournamentInfo.selectedTournamentGames;\r\n const game = games && games.find(g => (g.Id = payload.GameId));\r\n\r\n if (game) {\r\n game.FirstPlayerScore = payload.FirstPlayerScore;\r\n game.SecondPlayerScore = payload.SecondPlayerScore;\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGames: [...games.filter(g => g.Id !== payload.GameId), game]\r\n }\r\n };\r\n }\r\n return { ...state };\r\n }\r\n case SET_SELECTED_TOURNAMENT_PRIZES:\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentPrizes: payload\r\n }\r\n };\r\n case SET_SELECTED_TOURNAMENT_INFO:\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n ...payload\r\n }\r\n };\r\n case UPDATE_TOURNAMENT_PLAYERS_QUANTITY:\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentGeneralInfo: {\r\n ...state.tournamentInfo.selectedTournamentGeneralInfo,\r\n ParticipantsQuantity: payload\r\n }\r\n }\r\n };\r\n case UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT: {\r\n let currentGamesCount = state.tournamentInfo.CurrentGamesCount || 0;\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n CurrentGamesCount: currentGamesCount + payload\r\n }\r\n };\r\n }\r\n case UPDATE_TOURNAMENT_INFO_STATUS: {\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n Status: payload\r\n }\r\n };\r\n }\r\n case SET_TOURNAMENT_INFO_PLAYERS: {\r\n return {\r\n ...state,\r\n tournamentInfo: {\r\n ...state.tournamentInfo,\r\n selectedTournamentPlayers: payload\r\n }\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n RESET_FILTER,\r\n SET_FILTERS,\r\n RESET_ALL_FILTERS,\r\n RESET_SECONDARY_FILTERS,\r\n KEEP_ONLY_TYPE_IDS,\r\n SET_All_FILTERS\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n selectedNetworkIds: [],\r\n selectedGameTypesIds: [],\r\n selectedScores: [],\r\n selectedGameKindIds: [],\r\n selectedExtraTimes: [],\r\n selectedMoveTimes: [],\r\n selectedConventions: [],\r\n minStake: \"\",\r\n maxStake: \"\",\r\n orderByDate: null\r\n};\r\n\r\nexport default function filtersData(state = initialState, action) {\r\n const { payload, type, name, isPrimitiveType } = action;\r\n switch (type) {\r\n case SET_FILTERS:\r\n return {\r\n ...state,\r\n [name]: isPrimitiveType ? payload : [...payload]\r\n };\r\n case RESET_FILTER: {\r\n return {\r\n ...state,\r\n [name]: isPrimitiveType ? initialState[name] : [...initialState[name]]\r\n };\r\n }\r\n case SET_All_FILTERS:\r\n return {\r\n ...state,\r\n ...payload\r\n };\r\n case RESET_ALL_FILTERS: {\r\n return { ...initialState };\r\n }\r\n case RESET_SECONDARY_FILTERS: {\r\n return { ...initialState, selectedNetworkIds: state.selectedNetworkIds };\r\n }\r\n case KEEP_ONLY_TYPE_IDS: {\r\n return { ...initialState, selectedGameTypesIds: state.selectedGameTypesIds };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n SET_MY_STARTED_GAMES_URLS,\r\n ADD_ACTIVE_GAME_INTO_LAUNCHER,\r\n REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES,\r\n TOGGLE_MULTI_VIEW,\r\n SET_LAUNCHER_GAMES,\r\n MERGE_LAUNCHER_GAMES,\r\n UPDATE_LAUNCHER_GAME,\r\n ADD_LAUNCHER_GAME,\r\n REMOVE_LAUNCHER_GAME,\r\n REPLACE_ACTIVE_GAME_INTO_LAUNCHER,\r\n REMOVE_ALL_LAUNCHER_ACTIVE_GAMES,\r\n ADD_INTO_REQUESTED_GAMES,\r\n REMOVE_FROM_REQUESTED_GAMES,\r\n REMOVE_ALL_LAUNCHER_GAMES\r\n} from \"../actions/types\";\r\nimport { updateGame, removeGame, addGame, findDisabledGames } from \"../../helpers/localHelperFunctions\";\r\n\r\nconst initialState = {\r\n isMultiViewVisible: false,\r\n startedGamesUrls: [],\r\n requestedGames: [],\r\n games: {\r\n myStartedGames: [],\r\n myNotStartedGames: [],\r\n notStartedGames: [],\r\n startedGames: [],\r\n gamesTotalCount: 0\r\n }\r\n};\r\n\r\nexport default function gameLauncherData(state = initialState, action) {\r\n const { payload } = action;\r\n let GameTables = [],\r\n gamesTotalCount = 0;\r\n if (payload) {\r\n GameTables = payload.GameTables;\r\n gamesTotalCount = payload.GameTablesTotalCount;\r\n }\r\n switch (action.type) {\r\n case TOGGLE_MULTI_VIEW:\r\n return {\r\n ...state,\r\n isMultiViewVisible: payload\r\n };\r\n case SET_MY_STARTED_GAMES_URLS:\r\n return {\r\n ...state,\r\n startedGamesUrls: payload\r\n };\r\n case ADD_ACTIVE_GAME_INTO_LAUNCHER: {\r\n let { startedGamesUrls } = state;\r\n if (!startedGamesUrls.includes(payload)) {\r\n startedGamesUrls = [...startedGamesUrls, payload];\r\n }\r\n return {\r\n ...state,\r\n startedGamesUrls\r\n };\r\n }\r\n case REPLACE_ACTIVE_GAME_INTO_LAUNCHER: {\r\n let { startedGamesUrls } = state;\r\n const { oldGameId, gameUrl } = payload;\r\n for (let i = 0, len = startedGamesUrls.length; i < len; ++i) {\r\n if (startedGamesUrls[i].includes(oldGameId)) {\r\n startedGamesUrls[i] = gameUrl;\r\n }\r\n }\r\n\r\n return {\r\n ...state,\r\n startedGamesUrls: [...startedGamesUrls]\r\n };\r\n }\r\n case REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES: {\r\n const startedGamesUrls = state.startedGamesUrls.filter(item => item !== payload);\r\n return {\r\n ...state,\r\n startedGamesUrls,\r\n isMultiViewVisible: !!startedGamesUrls.length\r\n };\r\n }\r\n case SET_LAUNCHER_GAMES:\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n myStartedGames: GameTables[0] || [],\r\n myNotStartedGames: findDisabledGames(GameTables[1] || []),\r\n notStartedGames: findDisabledGames(GameTables[2] || []),\r\n startedGames: GameTables[3] || [],\r\n gamesTotalCount\r\n }\r\n };\r\n case MERGE_LAUNCHER_GAMES:\r\n return {\r\n ...state,\r\n games: {\r\n ...state.games,\r\n myStartedGames: state.games.myStartedGames.concat(GameTables[0]),\r\n myNotStartedGames: state.games.myNotStartedGames.concat(GameTables[1]),\r\n notStartedGames: state.games.notStartedGames.concat(GameTables[2]),\r\n startedGames: state.games.startedGames.concat(GameTables[3]),\r\n gamesTotalCount\r\n }\r\n };\r\n case ADD_LAUNCHER_GAME: {\r\n return {\r\n ...state,\r\n games: addGame(payload, state.games)\r\n };\r\n }\r\n case UPDATE_LAUNCHER_GAME: {\r\n return {\r\n ...state,\r\n games: updateGame(payload, state.games)\r\n };\r\n }\r\n case REMOVE_LAUNCHER_GAME: {\r\n return {\r\n ...state,\r\n games: removeGame(payload, state.games)\r\n };\r\n }\r\n case REMOVE_ALL_LAUNCHER_GAMES: {\r\n return {\r\n ...state,\r\n games: initialState.games\r\n };\r\n }\r\n case REMOVE_ALL_LAUNCHER_ACTIVE_GAMES: {\r\n return {\r\n ...state,\r\n startedGamesUrls: []\r\n };\r\n }\r\n case ADD_INTO_REQUESTED_GAMES: {\r\n const { requestedGames } = state;\r\n if (!requestedGames.includes(payload)) {\r\n requestedGames.push(payload);\r\n }\r\n return {\r\n ...state,\r\n requestedGames: [...requestedGames]\r\n };\r\n }\r\n case REMOVE_FROM_REQUESTED_GAMES: {\r\n const requestedGames = state.requestedGames.filter(item => item !== payload);\r\n return {\r\n ...state,\r\n requestedGames\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ACTIVE_POPUP, CLOSE_POPUP, OPEN_POPUP } from \"../actions/types\";\r\n\r\nconst initialState = {\r\n popups: [],\r\n activePopupKey: null\r\n};\r\n\r\nconst popupState = (state = initialState, action) => {\r\n const { payload, type } = action;\r\n let popupKey = null;\r\n if (payload) {\r\n popupKey = payload.key || (payload.value && typeof payload.value !== \"object\" ? payload.value : payload.name);\r\n }\r\n switch (type) {\r\n case OPEN_POPUP: {\r\n const { popups } = state;\r\n for (let i = 0; i < popups.length; ++i) {\r\n if (popups[i][popupKey]) {\r\n return state;\r\n }\r\n }\r\n return {\r\n ...state,\r\n popups: [...popups, { [popupKey]: payload }]\r\n };\r\n }\r\n case CLOSE_POPUP: {\r\n let popups = [],\r\n { activePopupKey } = state;\r\n if (popupKey) {\r\n popups = state.popups.filter(item => !item[popupKey]);\r\n if (!popups.length) activePopupKey = null;\r\n }\r\n return {\r\n ...state,\r\n popups: [...popups],\r\n activePopupKey\r\n };\r\n }\r\n case ACTIVE_POPUP:\r\n return {\r\n ...state,\r\n activePopupKey: payload\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\nexport default popupState;\r\n","import {\r\n DISABLE__CUSTOM_TOURNAMENT_BUTTON,\r\n SET_CUSTOM_TOURNAMENTS,\r\n SET_CUSTOM_TOURNAMENTS_TYPE,\r\n UPDATE_CUSTOM_TOURNAMENTS\r\n} from \"../actions/types\";\r\nimport { disableCustomTournamentBtnClick } from \"../../helpers/localHelperFunctions\";\r\n\r\nconst initialState = {\r\n tournaments: [],\r\n type: \"upcomingTournaments\",\r\n updated: false\r\n};\r\n\r\nexport default function customTournamentsData(state = initialState, action) {\r\n switch (action.type) {\r\n case SET_CUSTOM_TOURNAMENTS:\r\n return {\r\n ...state,\r\n tournaments: [...action.payload.data],\r\n type: action.payload.type\r\n };\r\n case SET_CUSTOM_TOURNAMENTS_TYPE:\r\n return {\r\n ...state,\r\n type: action.payload\r\n };\r\n case UPDATE_CUSTOM_TOURNAMENTS:\r\n return {\r\n ...state,\r\n updated: action.payload\r\n };\r\n case DISABLE__CUSTOM_TOURNAMENT_BUTTON: {\r\n const data = disableCustomTournamentBtnClick(action.payload, state.tournaments);\r\n return {\r\n ...state,\r\n tournaments: data\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n CANCEL_SELECTED_TOURNAMENT_KING,\r\n MERGE_LEADER_BOARD_DATA,\r\n REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM,\r\n SELECTED_TOURNAMENT_KING_ID,\r\n TOURNAMENT_KING_CURRENT_PLAYER,\r\n TOURNAMENT_KING_DETAILS,\r\n TOURNAMENT_KING_LEADER_BOARD,\r\n TOURNAMENT_KING_TEMPLATES_DATA,\r\n UPDATE_TOURNAMENT_KING_CURRENT_PLAYER,\r\n UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS,\r\n UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM\r\n} from \"../actions/types\";\r\nimport {\r\n removeTournamentKingItem,\r\n updateTKLeaderBoardsPlayerPoints,\r\n updateTournamentKingItemStatusAndLeftTime\r\n} from \"../../helpers/localHelperFunctions\";\r\n\r\nconst initialState = {\r\n templatesData: null,\r\n leaderBoardData: null,\r\n selectedTournamentKingId: null,\r\n currentPlayerData: {},\r\n selectedTournamentIsCanceled: false\r\n};\r\nexport default function tournamentKingData(state = initialState, action) {\r\n switch (action.type) {\r\n case TOURNAMENT_KING_LEADER_BOARD:\r\n return {\r\n ...state,\r\n leaderBoardData: action.payload\r\n };\r\n case UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS: {\r\n const awards = updateTKLeaderBoardsPlayerPoints(action.payload, state.leaderBoardData);\r\n return {\r\n ...state,\r\n leaderBoardData: {\r\n ...state.leaderBoardData,\r\n TournamentKingAwards: awards || []\r\n }\r\n };\r\n }\r\n case SELECTED_TOURNAMENT_KING_ID:\r\n return {\r\n ...state,\r\n selectedTournamentKingId: action.payload\r\n };\r\n case CANCEL_SELECTED_TOURNAMENT_KING:\r\n return {\r\n ...state,\r\n selectedTournamentIsCanceled: true\r\n };\r\n case MERGE_LEADER_BOARD_DATA:\r\n return {\r\n ...state,\r\n leaderBoardData: {\r\n TournamentKingAwards: state.leaderBoardData.TournamentKingAwards.concat(\r\n action.payload.TournamentKingAwards\r\n ),\r\n PlayersTotalCount: action.payload.PlayersTotalCount\r\n }\r\n };\r\n case TOURNAMENT_KING_CURRENT_PLAYER:\r\n return {\r\n ...state,\r\n currentPlayerData: action.payload\r\n };\r\n case TOURNAMENT_KING_DETAILS:\r\n return {\r\n ...state,\r\n tournamentDetails: action.payload\r\n };\r\n case UPDATE_TOURNAMENT_KING_CURRENT_PLAYER:\r\n return {\r\n ...state,\r\n currentPlayerData: {\r\n ...state.currentPlayerData,\r\n Point: action.payload\r\n }\r\n };\r\n case TOURNAMENT_KING_TEMPLATES_DATA:\r\n return {\r\n ...state,\r\n templatesData: action.payload\r\n };\r\n case UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM: {\r\n const templatesData = updateTournamentKingItemStatusAndLeftTime(\r\n action.payload,\r\n JSON.parse(JSON.stringify(state.templatesData))\r\n );\r\n return {\r\n ...state,\r\n templatesData\r\n };\r\n }\r\n case REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM: {\r\n const data = removeTournamentKingItem(action.payload, JSON.parse(JSON.stringify(state.templatesData)));\r\n return {\r\n ...state,\r\n templatesData: data\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {\r\n ADD_AUTO_JOIN_GAME,\r\n REMOVE_AUTO_JOIN_GAME,\r\n SET_AUTO_JOIN_FROM_TO,\r\n SET_AUTO_JOIN_DATA_LOADING,\r\n SET_AUTO_JOIN_TABLES_DATA,\r\n UPDATE_AUTO_JOIN_GAMES,\r\n ADD_MORE_AUTO_JOIN_GAMES,\r\n RESET_FROM_TO_AUTO_JOIN,\r\n SET_AUTO_JOIN_CONNECTION_IS_LOW\r\n} from \"../actions/types\";\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n GameTables: [],\r\n GameTablesTotalCount: null,\r\n fromRowNumber: 1,\r\n pageItemsCount: 500,\r\n connectionIsLow: false\r\n};\r\n\r\nexport default function autoJoinData(state = initialState, action) {\r\n const { payload } = action;\r\n switch (action.type) {\r\n case SET_AUTO_JOIN_TABLES_DATA:\r\n return setAutoJoinTableData(state, payload);\r\n case SET_AUTO_JOIN_FROM_TO:\r\n return setAutoJoinFromTo(state, action.from, action.count);\r\n case SET_AUTO_JOIN_DATA_LOADING:\r\n return setAutoJoinDataLoading(state, payload);\r\n case ADD_AUTO_JOIN_GAME:\r\n return addAutoJoinGame(state, payload);\r\n case UPDATE_AUTO_JOIN_GAMES:\r\n return updateAutoJoinGames(state, payload);\r\n case REMOVE_AUTO_JOIN_GAME:\r\n return removeAutoJoinGame(state, action.gameTableId, action.status, action.startAnimation);\r\n case ADD_MORE_AUTO_JOIN_GAMES:\r\n return addAutoJoinMoreGames(state, payload);\r\n case RESET_FROM_TO_AUTO_JOIN:\r\n return { ...state, fromRowNumber: initialState.fromRowNumber, pageItemsCount: initialState.pageItemsCount };\r\n case SET_AUTO_JOIN_CONNECTION_IS_LOW:\r\n return { ...state, connectionIsLow: payload };\r\n default:\r\n return state;\r\n }\r\n}\r\nconst setAutoJoinTableData = (state, data) => {\r\n return {\r\n ...state,\r\n fromRowNumber: initialState.fromRowNumber,\r\n pageItemsCount: initialState.pageItemsCount,\r\n GameTables: data.GameTables,\r\n GameTablesTotalCount: data.GameTablesTotalCount\r\n };\r\n};\r\n\r\nconst setAutoJoinFromTo = (state, from, count) => {\r\n return {\r\n ...state,\r\n fromRowNumber: from,\r\n pageItemsCount: count\r\n };\r\n};\r\n\r\nconst setAutoJoinDataLoading = (state, bool) => {\r\n return {\r\n ...state,\r\n isLoading: bool\r\n };\r\n};\r\n\r\nconst addAutoJoinGame = (state, data) => {\r\n const gameTables = [...state.GameTables];\r\n data[\"added\"] = true;\r\n if (!gameTables[data.Status - 1].find(i => i.GameTableId === data.GameTableId)) {\r\n gameTables[data.Status - 1].push(data);\r\n }\r\n return {\r\n ...state,\r\n GameTables: gameTables\r\n };\r\n};\r\n\r\nconst updateAutoJoinGames = (state, data) => {\r\n const gameTables = [...state.GameTables];\r\n gameTables[data.StatusBefore - 1] = gameTables[data.StatusBefore - 1].filter(\r\n i => i.GameTableId !== data.GameTableId\r\n );\r\n gameTables[data.Status - 1].push(data);\r\n return {\r\n ...state,\r\n GameTables: gameTables\r\n };\r\n};\r\n\r\nconst removeAutoJoinGame = (state, gameTableId, status, startAnimation) => {\r\n const gameTables = [...state.GameTables];\r\n if (status < 4) {\r\n if (startAnimation) {\r\n const index = gameTables[status - 1].findIndex(i => i.GameTableId === gameTableId);\r\n index !== -1 && (gameTables[status - 1][index][\"removed\"] = true);\r\n } else {\r\n gameTables[status - 1] = gameTables[status - 1].filter(i => i.GameTableId !== gameTableId);\r\n }\r\n }\r\n return {\r\n ...state,\r\n GameTables: gameTables\r\n };\r\n};\r\n\r\nconst addAutoJoinMoreGames = (state, data) => {\r\n const updatedGameTables = state.GameTables.map((games, i) => games.concat(data.GameTables[i]));\r\n return {\r\n ...state,\r\n GameTables: updatedGameTables,\r\n GameTablesTotalCount: data.GameTablesTotalCount\r\n };\r\n};\r\n","import {\r\n CANCEL_RAKE_RACE,\r\n FINISH_RAKE_RACE,\r\n RESET_RAKE_RACE_LEADER_BOARD,\r\n RESET_RAKE_RACE_STATE,\r\n SET_RAKE_RACE_LEADER_BOARD,\r\n SET_RAKE_RACE_LEADER_BOARD_LOADING,\r\n SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA,\r\n SET_RAKE_RACE_TOURNAMENTS,\r\n SET_RAKE_RACE_TOURNAMENTS_DETAILS,\r\n SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID,\r\n START_RAKE_RACE\r\n} from \"../actions/types\";\r\n\r\nimport { RAKE_RACE_CANCELED, RAKE_RACE_FINISHED, RAKE_RACE_IN_PROGRESS } from \"../../constants\";\r\n\r\nconst initialState = {\r\n isLoading: true,\r\n tournaments: [],\r\n tournamentDetails: null,\r\n leaderBoard: {\r\n isLoading: true,\r\n data: []\r\n }\r\n};\r\n\r\nexport default function tournamentsRakeRaceData(state = initialState, action) {\r\n const { payload } = action;\r\n switch (action.type) {\r\n case SET_RAKE_RACE_TOURNAMENTS:\r\n return setRakeRaceTournamentsData(state, payload);\r\n case SET_RAKE_RACE_TOURNAMENTS_DETAILS:\r\n return setRakeRaceTournamentsDetailsData(state, payload);\r\n case SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID:\r\n return setRakeRaceTournamentsDetailsDataById(state, payload);\r\n case RESET_RAKE_RACE_STATE:\r\n return initialState;\r\n case CANCEL_RAKE_RACE:\r\n return cancelRakeRaceTournament(state, payload);\r\n case FINISH_RAKE_RACE:\r\n return finishRakeRaceTournament(state, payload);\r\n case START_RAKE_RACE:\r\n return startRakeRaceTournament(state, payload);\r\n case SET_RAKE_RACE_LEADER_BOARD:\r\n return setRakeRaceLeaderBoardData(state, payload);\r\n case SET_RAKE_RACE_LEADER_BOARD_LOADING:\r\n return setRakeRaceLoaderBoardLoading(state, payload);\r\n case RESET_RAKE_RACE_LEADER_BOARD:\r\n return resetRakeRaceLeaderBoardData(state);\r\n case SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA:\r\n return setRakeRaceLeaderBoardPlayerInfo(state, payload);\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst setRakeRaceTournamentsData = (state, data) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n tournaments: data\r\n };\r\n};\r\n\r\nconst setRakeRaceTournamentsDetailsData = (state, data) => {\r\n return {\r\n ...state,\r\n isLoading: false,\r\n tournamentDetails: data\r\n };\r\n};\r\n\r\nconst setRakeRaceTournamentsDetailsDataById = (state, id) => {\r\n return {\r\n ...state,\r\n tournamentDetails: id && state.tournaments.find(tournament => tournament.Id === id)\r\n };\r\n};\r\n\r\nconst cancelRakeRaceTournament = (state, id) => {\r\n let tournament = state.tournaments.find(tournament => tournament.Id === id);\r\n tournament && (tournament.Status = RAKE_RACE_CANCELED);\r\n return {\r\n ...state,\r\n tournaments: [...state.tournaments]\r\n };\r\n};\r\n\r\nconst startRakeRaceTournament = (state, id) => {\r\n let tournament = state.tournaments.find(tournament => tournament.Id === id);\r\n tournament && (tournament.Status = RAKE_RACE_IN_PROGRESS);\r\n return {\r\n ...state,\r\n tournaments: [...state.tournaments]\r\n };\r\n};\r\n\r\nconst finishRakeRaceTournament = (state, id) => {\r\n let tournament = state.tournaments.find(tournament => tournament.Id === id);\r\n tournament && (tournament.Status = RAKE_RACE_FINISHED);\r\n return {\r\n ...state,\r\n tournaments: [...state.tournaments]\r\n };\r\n};\r\n\r\nconst setRakeRaceLeaderBoardData = (state, data) => {\r\n return {\r\n ...state,\r\n leaderBoard: {\r\n ...state.leaderBoard,\r\n isLoading: false,\r\n data: data || {}\r\n }\r\n };\r\n};\r\n\r\nconst setRakeRaceLoaderBoardLoading = (state, bool) => {\r\n return {\r\n ...state,\r\n leaderBoard: {\r\n ...state.leaderBoard,\r\n isLoading: bool\r\n }\r\n };\r\n};\r\n\r\nconst resetRakeRaceLeaderBoardData = state => {\r\n return {\r\n ...state,\r\n leaderBoard: initialState.leaderBoard\r\n };\r\n};\r\n\r\nconst setRakeRaceLeaderBoardPlayerInfo = (state, data) => {\r\n return {\r\n ...state,\r\n tournamentDetails: {\r\n ...state.tournamentDetails,\r\n CurrentPlayerInTournament: data.CurrentPlayerInTournament\r\n }\r\n };\r\n};\r\n","import appData from \"./appData\";\r\nimport masterBoardData from \"./masterBoardData\";\r\nimport gameHallData from \"./gameHallData\";\r\nimport tournamentHallData from \"./tournamentHallData\";\r\nimport historyData from \"./historyData\";\r\nimport filtersData from \"./filtersData\";\r\nimport gameLauncherData from \"./gameLauncherData\";\r\nimport { combineReducers } from \"redux\";\r\nimport popupState from \"./popupState\";\r\nimport tournamentHistoryData from \"./tournamentHistoryData\";\r\nimport customTournamentsData from \"./customTournamentsData\";\r\nimport tournamentKingData from \"./tournamentKingData\";\r\nimport autoJoinData from \"./autoJoinData\";\r\nimport tournamentRakeRace from \"./tournamentRakeRace\";\r\nimport { reducer as form } from \"redux-form\";\r\n\r\nexport default combineReducers({\r\n appData,\r\n gameHallData,\r\n gameLauncherData,\r\n tournamentHallData,\r\n historyData,\r\n filtersData,\r\n popupState,\r\n tournamentHistoryData,\r\n customTournamentsData,\r\n masterBoardData,\r\n tournamentKingData,\r\n autoJoinData,\r\n tournamentRakeRace,\r\n form\r\n});\r\n","import { SET_GAME_HISTORY } from \"../actions/types\";\r\n\r\nexport default function historyData(state = {}, action) {\r\n switch (action.type) {\r\n case SET_GAME_HISTORY:\r\n return {\r\n ...state,\r\n ...action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { SET_TOURNAMENT_HISTORY } from \"../actions/types\";\r\n\r\nexport default function tournamentHistoryData(state = {}, action) {\r\n switch (action.type) {\r\n case SET_TOURNAMENT_HISTORY:\r\n return {\r\n ...state,\r\n ...action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { composeWithDevTools } from \"redux-devtools-extension\";\r\nimport { enableBatching } from \"redux-batched-actions\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport { persistStore, persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport rootReducer from \"./reducers\";\r\nimport thunk from \"redux-thunk\";\r\n\r\nconst persistConfig = {\r\n key: \"root\",\r\n storage: storage,\r\n whitelist: []\r\n};\r\n\r\nconst pReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nexport const store = createStore(enableBatching(pReducer), composeWithDevTools(applyMiddleware(thunk)));\r\nexport const persistor = persistStore(store);\r\n","import {\r\n SET_APP_DATA,\r\n SET_NETWORKS,\r\n SET_GAME_HISTORY,\r\n SET_GAMES,\r\n SET_FILTERS,\r\n RESET_FILTER,\r\n RESET_ALL_FILTERS,\r\n CLOSE_POPUP,\r\n OPEN_POPUP,\r\n SET_TOURNAMENT_HISTORY,\r\n RESET_SECONDARY_FILTERS,\r\n KEEP_ONLY_TYPE_IDS,\r\n MERGE_GAMES,\r\n ADD_GAME,\r\n UPDATE_GAME,\r\n REMOVE_GAME,\r\n SET_IS_COIN,\r\n TOGGLE_MULTI_VIEW,\r\n MAKE_OWNER_GAME_TABLE_FREE,\r\n SET_TOURNAMENTS,\r\n ADD_ACTIVE_GAME_INTO_LAUNCHER,\r\n SET_LAUNCHER_GAMES,\r\n MERGE_LAUNCHER_GAMES,\r\n REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES,\r\n REMOVE_LAUNCHER_GAME,\r\n UPDATE_LAUNCHER_GAME,\r\n ADD_LAUNCHER_GAME,\r\n ADD_TOURNAMENT,\r\n UPDATE_TOURNAMENT,\r\n REMOVE_TOURNAMENT,\r\n MERGE_TOURNAMENTS,\r\n SET_CUSTOM_TOURNAMENTS,\r\n UPDATE_CUSTOM_TOURNAMENTS,\r\n DISABLE__CUSTOM_TOURNAMENT_BUTTON,\r\n SET_CUSTOM_TOURNAMENTS_TYPE,\r\n UPDATE_CURRENT_PAGE,\r\n REPLACE_ACTIVE_GAME_INTO_LAUNCHER,\r\n ADD_TOURNAMENT_GAMES,\r\n SET_TOURNAMENT_GAMES,\r\n REMOVE_TOURNAMENT_GAME,\r\n CHANGE_TOURNAMENT_GAME_SCORE,\r\n LOGIN,\r\n ACTIVE_POPUP,\r\n REMOVE_ALL_LAUNCHER_ACTIVE_GAMES,\r\n ADD_INTO_REQUESTED_GAMES,\r\n REMOVE_FROM_REQUESTED_GAMES,\r\n MASTER_BOARD_SELECTED_RANGE_ID,\r\n MASTER_BOARD_PLAYER_WON_FOR_ROW,\r\n MASTER_BOARD_RANGES,\r\n MASTER_BOARD_TOTAL_AMOUNT,\r\n TOGGLE_DISABLE_TOURNAMENT,\r\n REMOVE_ALL_LAUNCHER_GAMES,\r\n RESET_ALL_TOURNAMENTS_DATA,\r\n MASTER_BOARD_RANGE_ROWS,\r\n TOURNAMENT_KING_LEADER_BOARD,\r\n SELECTED_TOURNAMENT_KING_ID,\r\n MERGE_LEADER_BOARD_DATA,\r\n TOURNAMENT_KING_CURRENT_PLAYER,\r\n TOURNAMENT_KING_TEMPLATES_DATA,\r\n UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM,\r\n REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM,\r\n UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS,\r\n CANCEL_SELECTED_TOURNAMENT_KING,\r\n SET_AUTO_JOIN_TABLES_DATA,\r\n SET_AUTO_JOIN_FROM_TO,\r\n SET_AUTO_JOIN_DATA_LOADING,\r\n UPDATE_TOURNAMENT_PLAYERS_QUANTITY,\r\n ADD_AUTO_JOIN_GAME,\r\n UPDATE_AUTO_JOIN_GAMES,\r\n REMOVE_AUTO_JOIN_GAME,\r\n ADD_MORE_AUTO_JOIN_GAMES,\r\n UPDATE_TOURNAMENT_INFO_STATUS,\r\n SET_CURRENT_GAME_KIND,\r\n REMOVE_TOURNAMENT_ALL_GAMES,\r\n SET_BALANCE,\r\n SET_AUTO_JOIN_CONNECTION_IS_LOW,\r\n RESET_FROM_TO_AUTO_JOIN,\r\n SET_All_FILTERS,\r\n DISABLE_GAME,\r\n REMOVE_UNDER_CONSTRUCTION_INFO,\r\n DISABLE_BTN_WHILE_WS_RECONNECTING,\r\n SET_TOURNAMENT_INFO_PLAYERS,\r\n UPDATE_JACKPOT_DATA,\r\n SET_SELECTED_TOURNAMENT_PRIZES,\r\n UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT,\r\n SET_TOURNAMENT_INFO,\r\n SET_TOURNAMENT_INFO_ID,\r\n RESET_TOURNAMENT_INFO,\r\n SET_SELECTED_TOURNAMENT_GENERAL_INFO,\r\n SET_LOADER_IN_TOURNAMENTS_LIST,\r\n REPLACE_JACKPOT_DATA_ITEM,\r\n UPDATE_TOURNAMENT_KING_CURRENT_PLAYER,\r\n ADD_UNDER_CONSTRUCTION_INFO,\r\n TOGGLE_UNDER_CONSTRUCTION,\r\n SELECT_CONVENTION_TEMPLATE,\r\n ADD_CONVENTIONS_TEMPLATES,\r\n DELETE_CONVENTIONS_TEMPLATE,\r\n SET_RAKE_RACE_TOURNAMENTS,\r\n SET_RAKE_RACE_TOURNAMENTS_DETAILS,\r\n RESET_RAKE_RACE_STATE,\r\n CANCEL_RAKE_RACE,\r\n FINISH_RAKE_RACE,\r\n START_RAKE_RACE,\r\n SET_RAKE_RACE_LEADER_BOARD,\r\n SET_RAKE_RACE_LEADER_BOARD_LOADING,\r\n RESET_RAKE_RACE_LEADER_BOARD,\r\n SET_GAMES_COUNT,\r\n RESET_GAMES,\r\n SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID,\r\n EDIT_CONVENTIONS_TEMPLATE,\r\n SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA,\r\n TOURNAMENT_KING_DETAILS,\r\n ENABLE_GAME,\r\n ENABLE_FILTERS,\r\n DISABLE_FILTERS,\r\n SET_DEMO_GAMES\r\n} from \"./types\";\r\nimport sendRequest from \"../../connection/api\";\r\nimport {\r\n AUTO_JOIN_DEFAULT_GAME_TABLE_ID,\r\n CARDS_COMBINATION,\r\n CREATE_AND_SAVE_CONVENTION_TEMPLATE,\r\n CREATE_AUTO_JOIN_TABLES,\r\n CREATE_GAME_TABLE,\r\n DELETE_CONVENTION_TEMPLATE_REQUEST,\r\n EDIT_CONVENTION_TEMPLATE,\r\n FILTERS_NAME,\r\n GAME_HISTORY,\r\n GET_AUTO_JOIN_TABLES,\r\n GET_GAME_TABLES,\r\n GET_PARTNER_NETWORKS_LIST,\r\n GET_PLAYER_BALANCE,\r\n GET_TOURNAMENT_KING_DETAILS,\r\n GET_TOURNAMENT_KING_LEADER_BOARD,\r\n GET_TOURNAMENT_KING_TEMPLATES,\r\n GET_TOURNAMENTS,\r\n GET_UPCOMING_TOURNAMENT_FOR_PARTNER,\r\n IDENTITY,\r\n IDENTITY_URL,\r\n IsMobileLogin,\r\n LOCAL_IP,\r\n REFRESH_GAME,\r\n STATUS_INFO,\r\n TOURNAMENT_GAME_HISTORY,\r\n TOURNAMENT_INFO,\r\n TOURNAMENT_INFO_GAMES,\r\n TOURNAMENT_INFO_PLAYERS,\r\n TOURNAMENT_INFO_PRIZE_DISTRIBUTION,\r\n GET_RAKE_RACE_TOURNAMENTS,\r\n GET_RAKE_RACE_LEADER_BOARD,\r\n ERROR_CODE,\r\n NOTIFICATION_DURATION,\r\n FAV_CONV_ACTIONS,\r\n GET_RAKE_RACE_LEADER_BOARD_PLAYER_INFO,\r\n GAME_OFFER_DURATION,\r\n GET_DEMO_GAMES\r\n} from \"../../constants\";\r\nimport { POPUP_NAMES } from \"../../constants/popupNames\";\r\nimport {\r\n addDiceChangeToConventions,\r\n calcLeftTimeForTournamentKingItem,\r\n closeFinishedGameWindow,\r\n conventionsTemplateStructureChange,\r\n findMePlayerAndSort,\r\n getIdentityReqBody,\r\n handleDataStructure,\r\n openGame,\r\n sendPostMsgToGameWindow,\r\n showErrorNotification,\r\n sliceData,\r\n windowReplaceUrl\r\n} from \"../../helpers/localHelperFunctions\";\r\nimport { batchActions } from \"redux-batched-actions\";\r\nimport moment from \"moment\";\r\nimport startSignalR from \"../../connection/socket\";\r\nimport { onCloseHandler, showNotification } from \"livecasino/components/Notification/eventManager\";\r\nimport InfoNotification from \"../../components/NotificationWrapper/Notifications/InfoNotification\";\r\nimport React from \"react\";\r\nimport t from \"../../helpers/translation\";\r\nimport { makeAPIGetRequest } from \"../../connection/api/networkService\";\r\n\r\nexport const login = payload => {\r\n return {\r\n type: LOGIN,\r\n payload\r\n };\r\n};\r\n\r\n// app data actions\r\nexport const setAppData = payload => {\r\n return {\r\n type: SET_APP_DATA,\r\n payload\r\n };\r\n};\r\n\r\nexport const setNetworks = payload => {\r\n return {\r\n type: SET_NETWORKS,\r\n payload\r\n };\r\n};\r\n\r\nexport const setIsCoin = payload => {\r\n return {\r\n type: SET_IS_COIN,\r\n payload\r\n };\r\n};\r\n\r\nexport const setBalance = payload => {\r\n return {\r\n type: SET_BALANCE,\r\n payload\r\n };\r\n};\r\n\r\n// game hall actions\r\nexport const setGameHallGames = payload => {\r\n return {\r\n type: SET_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const setDemoGames = payload => {\r\n return {\r\n type: SET_DEMO_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const resetGameHallGames = payload => {\r\n return {\r\n type: RESET_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const addGameTable = payload => {\r\n return {\r\n type: ADD_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateGameTable = payload => {\r\n return {\r\n type: UPDATE_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeGameTable = (payload, startAnimation) => {\r\n return {\r\n type: REMOVE_GAME,\r\n payload,\r\n startAnimation\r\n };\r\n};\r\n\r\nexport const setGamesCount = (payload = null) => {\r\n return {\r\n type: SET_GAMES_COUNT,\r\n payload\r\n };\r\n};\r\n\r\nexport const mergeGameHallGames = payload => {\r\n return {\r\n type: MERGE_GAMES,\r\n payload\r\n };\r\n};\r\n\r\n// Game launcher actions\r\nexport const setLauncherGames = payload => {\r\n return {\r\n type: SET_LAUNCHER_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const addLauncherGame = payload => {\r\n return {\r\n type: ADD_LAUNCHER_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeLauncherGame = payload => {\r\n return {\r\n type: REMOVE_LAUNCHER_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeAllLauncherGames = () => {\r\n return {\r\n type: REMOVE_ALL_LAUNCHER_GAMES\r\n };\r\n};\r\n\r\nexport const removeAllLauncherActiveGames = () => {\r\n return {\r\n type: REMOVE_ALL_LAUNCHER_ACTIVE_GAMES\r\n };\r\n};\r\n\r\nexport const addIntoRequestedGames = payload => {\r\n return {\r\n type: ADD_INTO_REQUESTED_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeFromRequestedGames = payload => {\r\n return {\r\n type: REMOVE_FROM_REQUESTED_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateLauncherGame = payload => {\r\n return {\r\n type: UPDATE_LAUNCHER_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const mergeLauncherGames = payload => {\r\n return {\r\n type: MERGE_LAUNCHER_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const addGameIntoLauncher = payload => {\r\n return {\r\n type: ADD_ACTIVE_GAME_INTO_LAUNCHER,\r\n payload\r\n };\r\n};\r\n\r\nexport const replaceGameInLauncher = payload => {\r\n return {\r\n type: REPLACE_ACTIVE_GAME_INTO_LAUNCHER,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeGameFromLauncher = payload => {\r\n return {\r\n type: REMOVE_GAME_FROM_LAUNCHER_ACTIVE_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const toggleMultiView = payload => {\r\n return {\r\n type: TOGGLE_MULTI_VIEW,\r\n payload\r\n };\r\n};\r\n\r\nexport const setFilters = (payload, name, isPrimitiveType) => ({\r\n type: SET_FILTERS,\r\n payload,\r\n name,\r\n isPrimitiveType\r\n});\r\n\r\nexport const setAllSelectedFilters = payload => ({\r\n type: SET_All_FILTERS,\r\n payload\r\n});\r\n\r\nexport const resetFilter = (name, isPrimitiveType) => ({\r\n type: RESET_FILTER,\r\n name,\r\n isPrimitiveType\r\n});\r\n\r\nexport const resetAllFilters = () => ({\r\n type: RESET_ALL_FILTERS\r\n});\r\n\r\nexport const enableFilters = () => ({\r\n type: ENABLE_FILTERS\r\n});\r\n\r\nexport const disableFilters = () => ({\r\n type: DISABLE_FILTERS\r\n});\r\n\r\nexport const resetSecondayFilters = () => ({\r\n type: RESET_SECONDARY_FILTERS\r\n});\r\n\r\nexport const keepOnlyTypeIds = () => ({\r\n type: KEEP_ONLY_TYPE_IDS\r\n});\r\n\r\nexport const makeOwnerGameTableFree = payload => ({\r\n type: MAKE_OWNER_GAME_TABLE_FREE,\r\n payload\r\n});\r\n\r\n//History actions\r\nexport const setGameHistory = payload => ({\r\n type: SET_GAME_HISTORY,\r\n payload\r\n});\r\n\r\n//Popups actions\r\nexport const openPopup = (payload, data, key) => ({\r\n type: OPEN_POPUP,\r\n payload: { name: payload, value: data, key }\r\n});\r\n\r\nexport const closePopup = key => ({\r\n type: CLOSE_POPUP,\r\n payload: { key }\r\n});\r\n\r\n// Tournament History action\r\nexport const setTournamentHistory = payload => ({\r\n type: SET_TOURNAMENT_HISTORY,\r\n payload\r\n});\r\n\r\nexport const setTournaments = payload => ({\r\n type: SET_TOURNAMENTS,\r\n payload\r\n});\r\n\r\nexport const setLoaderInTournamentsList = payload => ({\r\n type: SET_LOADER_IN_TOURNAMENTS_LIST,\r\n payload\r\n});\r\n\r\nexport const resetAllTournamentsData = payload => ({\r\n type: RESET_ALL_TOURNAMENTS_DATA,\r\n payload\r\n});\r\n\r\nexport const mergeTournaments = payload => {\r\n return {\r\n type: MERGE_TOURNAMENTS,\r\n payload\r\n };\r\n};\r\n\r\nexport const addTournamentToTable = (payload, startAnimation) => {\r\n return {\r\n type: ADD_TOURNAMENT,\r\n payload,\r\n startAnimation\r\n };\r\n};\r\n\r\nexport const updateTournamentTable = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeTournamentFromTable = (payload, startAnimation) => {\r\n return {\r\n type: REMOVE_TOURNAMENT,\r\n payload,\r\n startAnimation\r\n };\r\n};\r\n\r\nexport const updateTournamentTablesCount = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_ACTIVE_TABLES_COUNT,\r\n payload\r\n };\r\n};\r\n\r\nexport const toggleDisableTournament = (id, disabled) => {\r\n return {\r\n type: TOGGLE_DISABLE_TOURNAMENT,\r\n payload: { id, disabled }\r\n };\r\n};\r\n\r\nexport const setTournamentInfoId = payload => {\r\n return {\r\n type: SET_TOURNAMENT_INFO_ID,\r\n payload\r\n };\r\n};\r\n\r\nexport const resetTournamentInfo = payload => {\r\n return {\r\n type: RESET_TOURNAMENT_INFO,\r\n payload\r\n };\r\n};\r\n\r\nexport const setCustomTournaments = payload => {\r\n return {\r\n type: SET_CUSTOM_TOURNAMENTS,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateCustomTournaments = payload => {\r\n return {\r\n type: UPDATE_CUSTOM_TOURNAMENTS,\r\n payload\r\n };\r\n};\r\n\r\nexport const disableCustomTournamentBtn = payload => {\r\n return {\r\n type: DISABLE__CUSTOM_TOURNAMENT_BUTTON,\r\n payload\r\n };\r\n};\r\n\r\nexport const setCustomTournamentsType = payload => {\r\n return {\r\n type: SET_CUSTOM_TOURNAMENTS_TYPE,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateCurrentPage = () => {\r\n return {\r\n type: UPDATE_CURRENT_PAGE\r\n };\r\n};\r\n\r\nexport const toggleDisableBtnWhileWSReconnecting = payload => {\r\n return {\r\n type: DISABLE_BTN_WHILE_WS_RECONNECTING,\r\n payload\r\n };\r\n};\r\n\r\nexport const activePopup = payload => {\r\n return {\r\n type: ACTIVE_POPUP,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTournamentGames = payload => {\r\n return {\r\n type: SET_TOURNAMENT_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeTournamentAllGames = () => {\r\n return {\r\n type: REMOVE_TOURNAMENT_ALL_GAMES\r\n };\r\n};\r\n\r\nexport const addTournamentGames = payload => {\r\n return {\r\n type: ADD_TOURNAMENT_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeTournamentGame = payload => {\r\n return {\r\n type: REMOVE_TOURNAMENT_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const changeTournamentGameScore = payload => {\r\n return {\r\n type: CHANGE_TOURNAMENT_GAME_SCORE,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTournamentInfo = payload => {\r\n return {\r\n type: SET_TOURNAMENT_INFO,\r\n payload\r\n };\r\n};\r\n\r\nexport const setSelectedTournamentGeneralInfo = payload => {\r\n return {\r\n type: SET_SELECTED_TOURNAMENT_GENERAL_INFO,\r\n payload\r\n };\r\n};\r\n\r\nexport const setSelectedTournamentPrizes = payload => {\r\n return {\r\n type: SET_SELECTED_TOURNAMENT_PRIZES,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateTournamentPlayersQuantity = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_PLAYERS_QUANTITY,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTournamentPlayers = payload => {\r\n return {\r\n type: SET_TOURNAMENT_INFO_PLAYERS,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateTournamentGeneralInfoStatus = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_INFO_STATUS,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateJackpotData = payload => {\r\n return {\r\n type: UPDATE_JACKPOT_DATA,\r\n payload\r\n };\r\n};\r\n\r\nexport const replaceItemInJackpotData = payload => {\r\n return {\r\n type: REPLACE_JACKPOT_DATA_ITEM,\r\n payload\r\n };\r\n};\r\n\r\nexport const setCurrentGameKind = payload => {\r\n return {\r\n type: SET_CURRENT_GAME_KIND,\r\n payload\r\n };\r\n};\r\n\r\nexport const setMBSelectedRangeId = payload => {\r\n return {\r\n type: MASTER_BOARD_SELECTED_RANGE_ID,\r\n payload\r\n };\r\n};\r\n\r\nexport const setMBPlayerWonForRow = payload => {\r\n return {\r\n type: MASTER_BOARD_PLAYER_WON_FOR_ROW,\r\n payload\r\n };\r\n};\r\n\r\nexport const setMBRanges = payload => {\r\n return {\r\n type: MASTER_BOARD_RANGES,\r\n payload\r\n };\r\n};\r\n\r\nexport const setMBTotalAmount = payload => {\r\n return {\r\n type: MASTER_BOARD_TOTAL_AMOUNT,\r\n payload\r\n };\r\n};\r\n\r\nexport const setMBRangeRows = payload => {\r\n return {\r\n type: MASTER_BOARD_RANGE_ROWS,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTournamentKingLeaderBoardData = payload => {\r\n return {\r\n type: TOURNAMENT_KING_LEADER_BOARD,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateTournamentKingsLeaderBoardIPlayerPoint = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_KING_LEADER_BOARD_ITEM_POINTS,\r\n payload\r\n };\r\n};\r\n\r\nexport const setSelectedTournamentKingId = payload => {\r\n return {\r\n type: SELECTED_TOURNAMENT_KING_ID,\r\n payload\r\n };\r\n};\r\n\r\nexport const cancelSelectedTournamentKing = payload => {\r\n return {\r\n type: CANCEL_SELECTED_TOURNAMENT_KING,\r\n payload\r\n };\r\n};\r\n\r\nexport const mergeTKLeaderBoardData = payload => {\r\n return {\r\n type: MERGE_LEADER_BOARD_DATA,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTKCurrentPlayer = payload => {\r\n return {\r\n type: TOURNAMENT_KING_CURRENT_PLAYER,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTKDetails = payload => {\r\n return {\r\n type: TOURNAMENT_KING_DETAILS,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateTKCurrentPlayer = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_KING_CURRENT_PLAYER,\r\n payload\r\n };\r\n};\r\n\r\nexport const setTournamentKingData = payload => {\r\n return {\r\n type: TOURNAMENT_KING_TEMPLATES_DATA,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateTournamentKingDataItem = payload => {\r\n return {\r\n type: UPDATE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeTournamentKingDataItem = payload => {\r\n return {\r\n type: REMOVE_TOURNAMENT_KING_TEMPLATES_DATA_ITEM,\r\n payload\r\n };\r\n};\r\n\r\n//AutoJoin actions\r\n\r\nexport const setAutoJoinTableData = payload => {\r\n return {\r\n type: SET_AUTO_JOIN_TABLES_DATA,\r\n payload\r\n };\r\n};\r\n\r\nexport const setAutoJoinFromTo = (from, count) => {\r\n return {\r\n type: SET_AUTO_JOIN_FROM_TO,\r\n from,\r\n count\r\n };\r\n};\r\n\r\nexport const setAutoJoinDataLoading = payload => {\r\n return {\r\n type: SET_AUTO_JOIN_DATA_LOADING,\r\n payload\r\n };\r\n};\r\n\r\nexport const addAutoJoinGame = payload => {\r\n return {\r\n type: ADD_AUTO_JOIN_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const updateAutoJoinGames = payload => {\r\n return {\r\n type: UPDATE_AUTO_JOIN_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeAutoJoinGame = (gameTableId, status, startAnimation) => {\r\n return {\r\n type: REMOVE_AUTO_JOIN_GAME,\r\n gameTableId,\r\n status,\r\n startAnimation\r\n };\r\n};\r\n\r\nexport const addAutoJoinMoreGames = payload => {\r\n return {\r\n type: ADD_MORE_AUTO_JOIN_GAMES,\r\n payload\r\n };\r\n};\r\n\r\nexport const resetFromToAutoJoin = () => {\r\n return {\r\n type: RESET_FROM_TO_AUTO_JOIN\r\n };\r\n};\r\n\r\nexport const setAutJoinConnectionIsLow = payload => {\r\n return {\r\n type: SET_AUTO_JOIN_CONNECTION_IS_LOW,\r\n payload\r\n };\r\n};\r\n\r\nexport const disableGameHallGame = payload => {\r\n return {\r\n type: DISABLE_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const enableGameHallGame = payload => {\r\n return {\r\n type: ENABLE_GAME,\r\n payload\r\n };\r\n};\r\n\r\nexport const removeUnderConstructionInfo = payload => {\r\n return {\r\n type: REMOVE_UNDER_CONSTRUCTION_INFO,\r\n payload\r\n };\r\n};\r\n\r\nexport const addUnderConstructionInfo = payload => {\r\n return {\r\n type: ADD_UNDER_CONSTRUCTION_INFO,\r\n payload\r\n };\r\n};\r\n\r\nexport const toggleUnderConstruction = payload => {\r\n return {\r\n type: TOGGLE_UNDER_CONSTRUCTION,\r\n payload\r\n };\r\n};\r\n\r\n// CONVENTION TEMPLATES\r\nexport const setSelectedConventionTemplate = payload => {\r\n return {\r\n type: SELECT_CONVENTION_TEMPLATE,\r\n payload\r\n };\r\n};\r\n\r\nexport const addConventionsTemplate = payload => {\r\n return {\r\n type: ADD_CONVENTIONS_TEMPLATES,\r\n payload\r\n };\r\n};\r\n\r\nexport const editCurrentConventionTemplate = payload => {\r\n return {\r\n type: EDIT_CONVENTIONS_TEMPLATE,\r\n payload\r\n };\r\n};\r\n\r\nexport const deleteCurrentConventionTemplate = payload => {\r\n return {\r\n type: DELETE_CONVENTIONS_TEMPLATE,\r\n payload\r\n };\r\n};\r\n\r\nexport const actionCreatorToDeleteCurrentConventionTemplate = payload => {\r\n return dispatch => {\r\n sendRequest(DELETE_CONVENTION_TEMPLATE_REQUEST, {\r\n conventionsTemplateId: payload.Id\r\n }).then(res => {\r\n if (res.Error) {\r\n showErrorNotification(res.Error);\r\n } else {\r\n dispatch(\r\n batchActions([\r\n deleteCurrentConventionTemplate(payload),\r\n setSelectedConventionTemplate({\r\n Id: null,\r\n action: null\r\n })\r\n ])\r\n );\r\n }\r\n });\r\n };\r\n};\r\n\r\nexport function actionCreatorForConfirmPopup(Status, GameTableId, isCoin) {\r\n return dispatch => {\r\n sendRequest(STATUS_INFO[Status].endPoint, {\r\n // async\r\n gameTableId: GameTableId,\r\n isCoin: isCoin,\r\n localIP: LOCAL_IP\r\n }).then(res => {\r\n if (res.Model) {\r\n !IsMobileLogin &&\r\n dispatch(\r\n openPopup(\r\n POPUP_NAMES.WAIT_FOR_OPPONENT,\r\n { GameTableId, OpponentJoinCountdownSpent: GAME_OFFER_DURATION / 1000 },\r\n GameTableId\r\n )\r\n );\r\n } else {\r\n if (IsMobileLogin) {\r\n sendPostMsgToGameWindow(GameTableId, { type: \"gameOfferDeclined\" }, 500);\r\n } else {\r\n dispatch(openPopup(POPUP_NAMES.GAME_OFFER_DECLINED, { GameTableId }, GameTableId));\r\n }\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorForCustomTournaments(type) {\r\n return dispatch => {\r\n sendRequest(type, {}).then(data => {\r\n // async\r\n let { Model } = data;\r\n const finalData = sliceData(Model, type);\r\n\r\n return Model && dispatch(setCustomTournaments({ data: finalData, type: type }));\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorForTournamentKingLeaderBoardData(body, initial) {\r\n return dispatch =>\r\n sendRequest(GET_TOURNAMENT_KING_LEADER_BOARD, body).then(data => {\r\n //async\r\n if (data) {\r\n const { Model } = data;\r\n if (Model) {\r\n let { TournamentKingAwards } = Model;\r\n if (TournamentKingAwards && TournamentKingAwards.length) {\r\n TournamentKingAwards.sort((a, b) => {\r\n return a.PrizePlace - b.PrizePlace;\r\n });\r\n }\r\n if (initial) {\r\n return dispatch(setTournamentKingLeaderBoardData(Model));\r\n } else {\r\n return dispatch(mergeTKLeaderBoardData(Model));\r\n }\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForMasterboardData(gameId) {\r\n return dispatch => {\r\n sendRequest(CARDS_COMBINATION, {\r\n //async\r\n GameKindId: `${gameId}`\r\n }).then(data => {\r\n const CardsCombination = data?.Model?.CardsCombination;\r\n if (CardsCombination && Object.keys(CardsCombination).length) {\r\n const cardsCombinationRows = {};\r\n const playersWonForRow = {};\r\n const totalBonus = {};\r\n const { CardsCombinationBetRanges } = CardsCombination;\r\n const rangeArray = CardsCombinationBetRanges.map(range => {\r\n const {\r\n Id,\r\n From,\r\n FromInCurrency,\r\n To,\r\n ToInCurrency,\r\n Amount,\r\n AmountInCurrency,\r\n PlayerWon,\r\n CardsCombinationCaseRows,\r\n TotalSumAmount,\r\n TotalSumAmountInCurrency\r\n } = range; //CardsCombinationId\r\n cardsCombinationRows[Id] = {\r\n CardsCombinationCaseRows,\r\n Amount,\r\n AmountInCurrency,\r\n TotalSumAmount,\r\n TotalSumAmountInCurrency\r\n };\r\n playersWonForRow[Id] = CardsCombinationCaseRows.map(row => row.PlayerWon);\r\n totalBonus[Id] = {\r\n coin: TotalSumAmount,\r\n currency: TotalSumAmountInCurrency\r\n };\r\n return {\r\n key: Id,\r\n // icon: `icon-${currency}`,\r\n from: From,\r\n to: To,\r\n fromInCurrency: FromInCurrency,\r\n toInCurrency: ToInCurrency,\r\n PlayerWon\r\n };\r\n });\r\n return dispatch(\r\n batchActions([\r\n setMBSelectedRangeId(CardsCombinationBetRanges[0].Id),\r\n setMBRanges(rangeArray),\r\n setMBPlayerWonForRow(playersWonForRow),\r\n setMBTotalAmount(totalBonus),\r\n setMBRangeRows(cardsCombinationRows)\r\n ])\r\n );\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorForTournamentInfoPlayers(tournamentInfoId, Status, playerId) {\r\n return dispatch =>\r\n sendRequest(TOURNAMENT_INFO_PLAYERS, { tournamentId: tournamentInfoId }).then(response => {\r\n //async\r\n if (response) {\r\n const { Model } = response;\r\n const players = findMePlayerAndSort(Model, Status, playerId);\r\n dispatch(setTournamentPlayers(players));\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForTournamentHistory(body) {\r\n return dispatch =>\r\n sendRequest(TOURNAMENT_GAME_HISTORY, body).then(data => {\r\n //async\r\n if (data) {\r\n dispatch(setTournamentHistory(data));\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForTournamentInfoPrizes(tournamentInfoId) {\r\n return dispatch => {\r\n sendRequest(TOURNAMENT_INFO_PRIZE_DISTRIBUTION, { tournamentId: tournamentInfoId }).then(\r\n response => dispatch(setSelectedTournamentPrizes(response.Model || [])) //todo remove ||\r\n );\r\n };\r\n}\r\n\r\nexport function actionCreatorForTournamentGeneralInfo(tournamentInfoId) {\r\n return dispatch => {\r\n sendRequest(TOURNAMENT_INFO, { TournamentId: tournamentInfoId }).then(response => {\r\n if (response) {\r\n const { Model } = response;\r\n if (Model) {\r\n const registrationDateString = Model.RegistrationInMilliseconds\r\n ? moment(moment(Date.now() + Model.RegistrationInMilliseconds).toDate()).format(\"DD-MM-YYYY\")\r\n : \"\";\r\n\r\n dispatch(\r\n setSelectedTournamentGeneralInfo({\r\n ...Model,\r\n registrationDateString\r\n })\r\n );\r\n }\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorForCurrentToken(res, currentToken) {\r\n return dispatch =>\r\n sendRequest(IDENTITY, getIdentityReqBody(res, currentToken), null, IDENTITY_URL, null, true).then(\r\n ({ access_token }) => {\r\n currentToken = access_token;\r\n dispatch(login(currentToken));\r\n }\r\n );\r\n}\r\n\r\nexport function actionCreatorToGetAutoJoinTableData(body) {\r\n return dispatch => {\r\n sendRequest(GET_AUTO_JOIN_TABLES, body).then(data => dispatch(setAutoJoinTableData(data.Model)));\r\n };\r\n}\r\n\r\nexport function actionCreatorToAddMoreAutoJoinGames(body) {\r\n return dispatch => {\r\n sendRequest(GET_AUTO_JOIN_TABLES, body).then(data => dispatch(addAutoJoinMoreGames(data.Model)));\r\n };\r\n}\r\n\r\nexport function actionCreatorForPlayerBalance(body, balance) {\r\n return dispatch => {\r\n sendRequest(GET_PLAYER_BALANCE, body).then(data => {\r\n if (data) {\r\n const { Model } = data;\r\n Model !== balance && dispatch(setBalance(Model));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorToCreateGameTable(body, isLobbyV2) {\r\n return dispatch => {\r\n sendRequest(CREATE_GAME_TABLE, body).then(function() {\r\n if (IsMobileLogin || !isLobbyV2) {\r\n dispatch(closePopup(POPUP_NAMES.CREATE_NEW_GAME));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorToCreateGameTemplate(SelectedEmptyTemplateId, body) {\r\n //isLobbyV2\r\n return dispatch => {\r\n sendRequest(CREATE_AND_SAVE_CONVENTION_TEMPLATE, body).then(function(data) {\r\n const { Error, Model } = data;\r\n if (Error) {\r\n showErrorNotification(Error);\r\n } else {\r\n dispatch(\r\n batchActions([\r\n addConventionsTemplate({ SelectedEmptyTemplateId, template: Model }),\r\n setSelectedConventionTemplate(handleDataStructure(Model, FAV_CONV_ACTIONS.SELECT))\r\n ])\r\n );\r\n }\r\n\r\n // if (IsMobileLogin || !isLobbyV2) {\r\n // dispatch(closePopup(POPUP_NAMES.CREATE_NEW_GAME));\r\n // }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorToEditGameTemplate(body) {\r\n //isLobbyV2, selectedConventionTemplate\r\n return dispatch => {\r\n sendRequest(EDIT_CONVENTION_TEMPLATE, body).then(function(data) {\r\n if (data.Model) {\r\n dispatch(editCurrentConventionTemplate(body));\r\n\r\n const selectedConventionTemplate = handleDataStructure(\r\n conventionsTemplateStructureChange(body),\r\n FAV_CONV_ACTIONS.SELECT\r\n );\r\n\r\n dispatch(setSelectedConventionTemplate(selectedConventionTemplate));\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorForTournamentInfoGames(body, playerId) {\r\n return dispatch =>\r\n sendRequest(TOURNAMENT_INFO_GAMES, body).then(response => {\r\n if (response) {\r\n const { Model } = response;\r\n if (Model) {\r\n let currentUserIndex = null;\r\n for (let i = 0; i <= Model.length; i++) {\r\n if (\r\n Model[i] &&\r\n playerId &&\r\n (playerId === Model[i].FirstPlayerId || playerId === Model[i].SecondPlayerId)\r\n ) {\r\n currentUserIndex = i;\r\n if (playerId === Model[i].FirstPlayerId) {\r\n Model[i].FirstPlayerIsMe = true;\r\n } else if (playerId === Model[i].SecondPlayerId) {\r\n Model[i].SecondPlayerIsMe = true;\r\n }\r\n }\r\n }\r\n if (currentUserIndex) {\r\n const currentUser = Model.splice(currentUserIndex, 1);\r\n currentUser && Model.unshift(currentUser[0]);\r\n }\r\n }\r\n dispatch(setTournamentGames(Model));\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForGameHistory(requestBody, setDataLoaded) {\r\n return dispatch =>\r\n sendRequest(GAME_HISTORY, requestBody).then(data => {\r\n if (data) {\r\n dispatch(setGameHistory(data));\r\n setDataLoaded && setDataLoaded(true);\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorToGetPartnerNetworksList(body, typeId, setIsLoading, setNetworksData) {\r\n return dispatch =>\r\n sendRequest(GET_PARTNER_NETWORKS_LIST, body).then(data => {\r\n if (data && data.Model) {\r\n const actions = [setNetworks(data.Model)];\r\n if (typeId) {\r\n actions.push(setFilters([Number(typeId)], FILTERS_NAME.SELECTED_GAME_TYPES_IDES));\r\n }\r\n dispatch(batchActions(actions));\r\n setIsLoading && setIsLoading(false);\r\n setNetworksData && setNetworksData(true);\r\n }\r\n });\r\n}\r\n\r\nexport function getDemoGames(query, setGamesLoaded) {\r\n return dispatch =>\r\n makeAPIGetRequest(GET_DEMO_GAMES, { query }).then(data => {\r\n if (data) {\r\n data.Games.forEach(i => {\r\n i.isDemoGame = true;\r\n });\r\n dispatch(setDemoGames(data));\r\n setGamesLoaded && setGamesLoaded(true);\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorToGetPartnerNetworksListForAutojoin(token, setIsLoaded) {\r\n return dispatch =>\r\n sendRequest(GET_PARTNER_NETWORKS_LIST, {}).then(data => {\r\n startSignalR(() => console.log(\"start\"), token, []);\r\n if (data) {\r\n dispatch(\r\n batchActions([\r\n setNetworks(data.Model),\r\n setFilters([data.Model.Networks[0].Id], FILTERS_NAME.SELECTED_NETWORK_IDS)\r\n ])\r\n );\r\n setIsLoaded(true);\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorToGetUpcomingTournamentForPartner() {\r\n return dispatch =>\r\n sendRequest(GET_UPCOMING_TOURNAMENT_FOR_PARTNER, null).then(data => {\r\n if (data && data.Model) {\r\n dispatch(setTournamentInfo(data.Model));\r\n } else {\r\n dispatch(setTournamentInfo({ noInfo: true }));\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForTournamentKingTemplates(body, selectTournament) {\r\n return dispatch => {\r\n sendRequest(GET_TOURNAMENT_KING_TEMPLATES, {\r\n body\r\n }).then(response => {\r\n if (response) {\r\n const { Model } = response;\r\n if (Model) {\r\n Model.forEach(item => {\r\n calcLeftTimeForTournamentKingItem(item.TournamentKingTemplateStatus, item);\r\n });\r\n dispatch(setTournamentKingData(Model));\r\n\r\n if (Model.length === 1) {\r\n selectTournament(Model[0].Id);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function actionCreatorToUpdateTournamentTableAndToggleDisableTournament(\r\n endPoint,\r\n reqBody,\r\n tournamentData,\r\n TournamentId\r\n) {\r\n return dispatch =>\r\n sendRequest(endPoint, reqBody).then(data => {\r\n const { Model } = data;\r\n if ((typeof Model === \"object\" && Model.Result) || Model) {\r\n dispatch(\r\n batchActions([\r\n updateTournamentTable({ ...tournamentData, ...data.Model }),\r\n toggleDisableTournament(TournamentId, false)\r\n ])\r\n );\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForAutojoinRefreshGameInMobile(GameTableId, isCoin, handleError, setDisabledButtons) {\r\n return () =>\r\n sendRequest(REFRESH_GAME, {\r\n id: GameTableId,\r\n isCoin,\r\n isGameTable: true\r\n }).then(data => {\r\n if (data.Error) {\r\n closeFinishedGameWindow(AUTO_JOIN_DEFAULT_GAME_TABLE_ID);\r\n handleError(data.Error);\r\n } else {\r\n windowReplaceUrl(AUTO_JOIN_DEFAULT_GAME_TABLE_ID, GameTableId);\r\n setTimeout(() => openGame(GameTableId, false, false)(data), 500);\r\n }\r\n setDisabledButtons(prev => prev.filter(i => i !== GameTableId));\r\n });\r\n}\r\n\r\nexport function actionCreatorGameLauncherForStatusInfo(GameTableId, Status, setWaitingTime, isAutoJoin, isCoin) {\r\n return () =>\r\n sendRequest(isAutoJoin ? CREATE_AUTO_JOIN_TABLES : STATUS_INFO[Status].endPoint, {\r\n gameTableId: GameTableId,\r\n isCoin: isAutoJoin ? isCoin : true,\r\n localIP: LOCAL_IP\r\n }).then(data => {\r\n if (data && data.Model) {\r\n if (isAutoJoin) {\r\n openGame(GameTableId, true, false)(data);\r\n } else {\r\n setWaitingTime();\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForTournamentKingDetails(body) {\r\n return dispatch =>\r\n sendRequest(GET_TOURNAMENT_KING_DETAILS, body).then(response => {\r\n if (response) {\r\n const { Model } = response;\r\n const { TournamentKingCurrentPlayer } = Model;\r\n if (Model) {\r\n if (TournamentKingCurrentPlayer) {\r\n TournamentKingCurrentPlayer.PlayerIsMe = true;\r\n // TournamentKingCurrentPlayer.uniqueClass = switchPrizePlace(\r\n // TournamentKingCurrentPlayer.PrizePlace\r\n // );\r\n }\r\n dispatch(\r\n batchActions([\r\n setTKDetails(Model),\r\n setSelectedTournamentKingId(Model.Id),\r\n setTKCurrentPlayer(TournamentKingCurrentPlayer)\r\n ])\r\n );\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorForUpcomingOrPlayersTournaments(tournamentsType, body = {}, setDisabled, disabled, id) {\r\n return dispatch =>\r\n sendRequest(tournamentsType, body).then(data => {\r\n if (data) {\r\n if (data.Model) {\r\n setDisabled && setDisabled({ ...disabled, [id]: false });\r\n dispatch(\r\n setCustomTournaments({\r\n data: sliceData(data.Model, tournamentsType),\r\n type: tournamentsType\r\n })\r\n );\r\n }\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * actionCreatorToGetGameTables'\r\n * @param {object} body\r\n * @param {function} dataHandler\r\n * @return {function}\r\n */\r\nexport function actionCreatorToGetGameTables(body, dataHandler) {\r\n return () =>\r\n sendRequest(GET_GAME_TABLES, body).then(data => {\r\n data && dataHandler(addDiceChangeToConventions(data.Model));\r\n });\r\n}\r\n\r\n/**\r\n * actionCreatorToGetTournaments'\r\n * @param {object} requestBody\r\n * @param {function} dataHandler\r\n * @param {function} handleTournamentData\r\n * @return {function}\r\n */\r\nexport function actionCreatorToGetTournaments(requestBody, dataHandler, handleTournamentData) {\r\n return () =>\r\n sendRequest(GET_TOURNAMENTS, requestBody).then(data => data && dataHandler(handleTournamentData(data.Model)));\r\n}\r\n\r\n// export function actionCreatorToCreateAutoJoinTables(data, setDisable) {\r\n// return () =>\r\n// sendRequest(CREATE_AUTO_JOIN_TABLES, data).then(data => {\r\n// setDisable(false);\r\n// if (!data.Error) {\r\n// openGame(data.Model.GameTableId, true, false)(data);\r\n// if (!data.Model.GameId) {\r\n// setTimeout(\r\n// () =>\r\n// openPopup(\r\n// POPUP_NAMES.WAIT_FOR_OPPONENT,\r\n// {\r\n// GameTableId: data.Model.GameTableId,\r\n// gameId: data.Model.GameTableId,\r\n// isAutoJoin: true\r\n// },\r\n// data.Model.GameTableId\r\n// ),\r\n// 1000\r\n// );\r\n// }\r\n// } else {\r\n// const id = Math.random();\r\n// showNotification(\r\n// ,\r\n// {\r\n// autoClose: NOTIFICATION_DURATION,\r\n// id: id,\r\n// containerId: \"custom-notification\"\r\n// }\r\n// );\r\n// }\r\n// });\r\n// }\r\n\r\nexport function actionCreatorToCreateAutoJoinTablesForMobile(isCoin, setDisabledButtons, handleError, GameTableId) {\r\n return () =>\r\n sendRequest(CREATE_AUTO_JOIN_TABLES, {\r\n isCoin,\r\n localIp: LOCAL_IP,\r\n gameTableId: GameTableId\r\n }).then(data => {\r\n setDisabledButtons(prev => prev.filter(i => i !== GameTableId));\r\n if (data.Error) {\r\n closeFinishedGameWindow(AUTO_JOIN_DEFAULT_GAME_TABLE_ID);\r\n handleError(data.Error);\r\n } else {\r\n windowReplaceUrl(AUTO_JOIN_DEFAULT_GAME_TABLE_ID, GameTableId);\r\n setTimeout(() => openGame(GameTableId, false, false)(data), 500);\r\n }\r\n });\r\n}\r\n\r\nexport function actionCreatorToRefreshGameForAutojoin(GameTableId, isCoin, handleError, setDisabledButtons) {\r\n return () =>\r\n sendRequest(REFRESH_GAME, {\r\n id: GameTableId,\r\n isCoin,\r\n isGameTable: true\r\n }).then(data => {\r\n if (data.Error) {\r\n handleError(data.Error);\r\n } else {\r\n openGame(GameTableId, true, false)(data);\r\n }\r\n setDisabledButtons(prev => prev.filter(i => i !== GameTableId));\r\n });\r\n}\r\n\r\n//Rake Race actions\r\nconst setRakeRaceTournaments = payload => {\r\n return {\r\n type: SET_RAKE_RACE_TOURNAMENTS,\r\n payload\r\n };\r\n};\r\n\r\nexport const setRakeRaceTournamentsDetails = payload => {\r\n return {\r\n type: SET_RAKE_RACE_TOURNAMENTS_DETAILS,\r\n payload\r\n };\r\n};\r\nexport const setRakeRaceTournamentsDetailsById = payload => {\r\n return {\r\n type: SET_RAKE_RACE_TOURNAMENTS_DETAILS_BY_ID,\r\n payload\r\n };\r\n};\r\n\r\nexport const getRakeRaceTournaments = body => dispatch => {\r\n sendRequest(GET_RAKE_RACE_TOURNAMENTS, body).then(data => {\r\n if (data.Error) {\r\n const randomId = Math.round();\r\n showNotification(\r\n ,\r\n {\r\n autoClose: NOTIFICATION_DURATION,\r\n id: randomId,\r\n containerId: \"custom-notification\"\r\n }\r\n );\r\n } else if (data.Model && data.Model.length === 1) {\r\n dispatch(setRakeRaceTournamentsDetails(data.Model[0]));\r\n } else {\r\n dispatch(setRakeRaceTournaments(data.Model));\r\n }\r\n });\r\n};\r\n\r\nexport const resetRakeRaceState = () => ({\r\n type: RESET_RAKE_RACE_STATE\r\n});\r\n\r\nexport const cancelRakeRace = payload => ({\r\n type: CANCEL_RAKE_RACE,\r\n payload\r\n});\r\nexport const finishRakeRace = payload => ({\r\n type: FINISH_RAKE_RACE,\r\n payload\r\n});\r\nexport const startRakeRace = payload => ({\r\n type: START_RAKE_RACE,\r\n payload\r\n});\r\n\r\nconst setRakeRaceLeaderBoard = payload => {\r\n return {\r\n type: SET_RAKE_RACE_LEADER_BOARD,\r\n payload\r\n };\r\n};\r\n\r\nexport const setRakeRaceLeaderBoardLoading = payload => {\r\n return {\r\n type: SET_RAKE_RACE_LEADER_BOARD_LOADING,\r\n payload\r\n };\r\n};\r\n\r\nexport const getRakeRaceLeaderBoard = body => dispatch => {\r\n sendRequest(GET_RAKE_RACE_LEADER_BOARD, body).then(data => {\r\n if (!data.Error) {\r\n dispatch(setRakeRaceLeaderBoard(data.Model));\r\n }\r\n });\r\n};\r\n\r\nexport const resetRakeRaceLeaderBoard = () => {\r\n return {\r\n type: RESET_RAKE_RACE_LEADER_BOARD\r\n };\r\n};\r\n\r\nconst setRakeRaceLeaderBoardPlayerData = payload => ({\r\n type: SET_RAKE_RACE_LEADER_BOARD_PLAYER_DATA,\r\n payload\r\n});\r\n\r\nexport const getRakeRaceLeaderBoardPlayerInfo = body => dispatch => {\r\n sendRequest(GET_RAKE_RACE_LEADER_BOARD_PLAYER_INFO, body).then(\r\n data => data.Model && dispatch(setRakeRaceLeaderBoardPlayerData(data.Model))\r\n );\r\n};\r\n","import { store } from \"../store\";\r\n\r\nconst defaultTexts = {\r\n DefaultErrorMessage: \"Your bet is not accepted.\",\r\n DuplicateName: \"Duplicated name\",\r\n Fifty: \"50\",\r\n FourAces: \"4 x A\",\r\n FourDames: \"4 x Q\",\r\n FourJacks: \"4 x J\",\r\n FourKings: \"4 x K\",\r\n FourNines: \"4 x 9\",\r\n FourTens: \"4 x 10\",\r\n GameCountIsFilled: \"Your game table limit exceeded.\",\r\n GameDataChangesItemsQuantityid0: \"None\",\r\n GameDataChangesItemsQuantityid1: \"One\",\r\n GameDataChangesItemsQuantityid2: \"Both\",\r\n GameDataChangesItemsQuantityid3: \"One and Both\",\r\n GameKindTitleid1: \"Backgammon\",\r\n GameKindTitleid2: \"21\",\r\n GameKindTitleid3: \"Domino\",\r\n GameKindTitleid4: \"Belote\",\r\n GameKindTitleid5: \"Toto 11\",\r\n GameKindTitleid6: \"Joker\",\r\n GameKindTitleid7: \"Baron\",\r\n GameKindTitleid8: \"Chinga Chung\",\r\n GameKindTitleid9: \"Minesweeper\",\r\n GameKindTitleid10: \"Goal Penalty\",\r\n GameKindTitleid11: \"Backgammon\",\r\n GameKindTitleid12: \"Baron\",\r\n GameKindTitleid13: \"Toto 11\",\r\n GameKindTitleid14: \"Domino\",\r\n GameKindTitleid15: \"Belote\",\r\n GameKindTitleid16: \"Hexagon\",\r\n GameKindTitleidPoker: \"Poker\",\r\n GameTypeTitleid1: \"Short\",\r\n GameTypeTitleid2: \"Hyper\",\r\n GameTypeTitleid3: \"Nack\",\r\n GameTypeTitleid4: \"21\",\r\n GameTypeTitleid5: \"Long\",\r\n GameTypeTitleid6: \"Classic\",\r\n GameTypeTitleid7: \"Fives\",\r\n GameTypeTitleid8: \"Threes\",\r\n GameTypeTitleid9: \"Block\",\r\n GameTypeTitleid10: \"Blitz\",\r\n GameTypeTitleid11: \"Pioneer\",\r\n GameTypeTitleid12: \"Classic\",\r\n GameTypeTitleid13: \"Open\",\r\n GameTypeTitleid14: \"Asian\",\r\n GameTypeTitleid15: \"Toto 11\",\r\n GameTypeTitleid16: \"Classic\",\r\n GameTypeTitleid17: \"Short\",\r\n GameTypeTitleid18: \"Baron\",\r\n GameTypeTitleid19: \"Chinga Chung\",\r\n GameTypeTitleid20: \"Minesweeper\",\r\n GameTypeTitleid21: \"Goal Penalty\",\r\n GameTypeTitleid22: \"Short\",\r\n GameTypeTitleid23: \"Long\",\r\n GameTypeTitleid24: \"Asian\",\r\n GreaterMaxBet: \"Bet amount is greater than allowed amount.\",\r\n Hundred: \"100\",\r\n LowBalance: \"No enough balance.\",\r\n LowBet: \"Bet amount is less than allowed amount.\",\r\n MaxTournamentQuantityExpired: \"Your tournament registration limit exceeded.\",\r\n PlayersCountExpired: \"Tournament is full.\",\r\n RebuyNotAlowed: \"Rebuy not allowed.\",\r\n StakeGameValidation: \"Please choose the game and/or make a stake\",\r\n TemplateNameValidation: \"Name must be 13 characters or less\",\r\n TicketMinBet: \"TicketMinBet\",\r\n Tierce: \"Tierce\",\r\n TourParticipationTypeid1: \"Registered\",\r\n TourParticipationTypeid2: \"Winner\",\r\n TourParticipationTypeid3: \"Skipped\",\r\n TourParticipationTypeid4: \"Rebuy\",\r\n TourParticipationTypeid5: \"Lost in Semifinal\",\r\n TourParticipationTypeid6: \"Sattelite\",\r\n TourParticipationTypeid7: \"Registrated\",\r\n TournamentStatusid1: \"Registered\",\r\n TournamentStatusid2: \"In process\",\r\n TournamentStatusid3: \"Rebuy\",\r\n TournamentStatusid4: \"Registration\",\r\n TournamentStatusid5: \"No Rebuy\",\r\n TournamentStatusid6: \"Soon\",\r\n TournamentStatusid7: \"Private\",\r\n TournamentStatusid8: \"Finished\",\r\n TournamentStatusid9: \"Canceled\",\r\n TournamentTypeTitleid1: \"Standart\",\r\n TournamentTypeTitleid2: \"Sit&Go\",\r\n TournamentTypeTitleid3: \"Spin&Go\",\r\n TournamentVerifyKYC: \"You have to verify your personal details to participate in the Tournament.\",\r\n VerifyKYC: \"Please contact customer support for verification.\",\r\n VerifyMobileNumber: \"Please verify your mobile number.\",\r\n betRangeValidation: \"The bet must be in the range {minbet} - {maxbet}. The bet must be divide by 1000.\",\r\n conventionAll: \"All\",\r\n conventionBeaver: \"With Beaver\",\r\n conventionBlindCard: \"With BlindCard\",\r\n conventionBoy: \"Boy\",\r\n conventionChangeCard: \"Change Card\",\r\n conventionChangeDice: \"Change Dice\",\r\n conventionCube: \"With Cube\",\r\n conventionDoubleScoreForBoy: \"Double Score For Boy\",\r\n conventionDoubleScoreForKaput: \"Double Score For Kaput\",\r\n conventionHiddenCards: \"Hidden Cards\",\r\n conventionIncludeHeapPips: \"Winner Gets All\",\r\n conventionIncognito: \"Incognito\",\r\n conventionJacobyRule: \"With Jacoby rule\",\r\n conventionKoks: \"With Koks\",\r\n conventionMultiplePair: \"Multiple Pair\",\r\n conventionNameIsRequired: \"Name is Required\",\r\n conventionNoBluff: \"Hidden Cards\",\r\n conventionOnlyTierce: \"Only Tierce\",\r\n conventionShowToGuest: \"Private\",\r\n conventionWithQuanshSur: \"Contra Re-Contra\",\r\n conventionWithRating: \"With Rating\",\r\n conventionWithSur: \"With Sur\",\r\n conventionWithoutCombination: \"Without Combination\",\r\n conventionWithoutFourCards: \"Without 4 Cards and 100\",\r\n id1Lose: \"You lose\",\r\n id1Win: \"You win\",\r\n id2Lose: \"Your time is up\",\r\n id2Win: \"Your opponent's time is up\",\r\n id3Lose: \"You surrendered\",\r\n id3Win: \"Your opponent has surrendered\",\r\n id4Lose:\r\n \"The game has been canceled due to technical problems, if you have any questions, please contact customer support\",\r\n id5Lose: \"The game has been canceled\",\r\n strAccept: \"Accept\",\r\n strNewWin: \"New Win\",\r\n strActiveGame: \"Active Game\",\r\n strActiveGame1: \" Active Game\",\r\n strActiveTables: \"Active Tables\",\r\n strAll: \"All\",\r\n strAllNetworks: \"All Networks\",\r\n strAmount: \"Amount\",\r\n strAnd: \"and\",\r\n strApply: \"Apply\",\r\n strAttention: \"Attention, technical works will be carried out on the site\",\r\n strAutoJoin: \"Auto Join\",\r\n strBack: \"Back\",\r\n strBalance: \"Balance\",\r\n strBetRanges: \"Bet Ranges\",\r\n strBetSelection: \"Bet Selection\",\r\n strBiggestWin: \"Biggest win\",\r\n strBusy: \"Busy\",\r\n strBuyin: \"Buy In\",\r\n strCancel: \"Cancel\",\r\n strCancelGame: \"Cancel Game\",\r\n strCanceled: \"Canceled\",\r\n strGameCanceled: \"Game canceled\",\r\n strCardChangePrice: \"Card Price\",\r\n strChangeCards: \"Change card\",\r\n strChooseNetwork: \"Choose a network\",\r\n strClassic: \"Classic\",\r\n strClearSelection: \"Cancel\",\r\n strClose: \"Close\",\r\n strCloseGame: \"Close Game\",\r\n strCloseTable: \"Close Table?\",\r\n strCoin: \"C\",\r\n strCoinLong: \"COIN\",\r\n strConfirm: \"Confirm\",\r\n strConfirmToCloseTheTable: \"Do you want to close the table?\",\r\n strConfirmYourParticipation: \"Confirm your participation\",\r\n strCongratulations: \"Congratulations!\",\r\n strContactSupportCenter: \"For questions please contact to support center\",\r\n strContinue: \"Continue \",\r\n strConventions: \"Conventions\",\r\n strCreate: \"Create\",\r\n strCreateConvention: \"Create Convention\",\r\n strCreateGameTableError: \"Your bet is not accepted\",\r\n strCreateNewGame: \" Create New Game\",\r\n strCurrentScore: \"Current score\",\r\n strDate: \"Date\",\r\n strDay: \"d\",\r\n strDay1: \"D\",\r\n strDays: \"days\",\r\n strDecline: \"Decline\",\r\n strDetails: \"Details\",\r\n strDiceChange: \"Change Dice\",\r\n strDiceChangeNumber: \"Count\",\r\n strDistribution: \"Distribution\",\r\n strDoubleStake: \"Double stake\",\r\n strDownload: \"Download\",\r\n strDuration: \"Duration\",\r\n strEndsIn: \"Ends in\",\r\n strEnter: \"REGISTER\",\r\n strEnterAmount: \"Enter amount\",\r\n strErrorBalanceNotSufficient: \"Amount is not sufficient, make a deposit\",\r\n strErrorCount: \"You exceeded the maximum number of tournaments\",\r\n strErrorDeposit: \"Amount is not sufficient, make a deposit\",\r\n strErrorLogin: \"Please, Log in\",\r\n strErrorMaxBet: \"Maximum stake allowed is\",\r\n strErrorMessageForErrorPage: \"Please reload the page\",\r\n strErrorMinBet: \"Minimum stake allowed is\",\r\n strErrorNetworkTablesLimit: \"Limit of your tables exceeded\",\r\n strErrorRegisterCount: \"No free places in tournament\",\r\n strErrorStake: \"Stake amount must be positive number\",\r\n strErrorVerifyKYC: \"Please send passport/Id Card scan to casino-support@totogaming.am\",\r\n strExchange: \" Exchange\",\r\n strExit: \"Exit\",\r\n strExtraBonus: \"Extra Bonus\",\r\n strFactor: \"Factor\",\r\n strFavoriteConventions: \"Favorite conventions\",\r\n strFiltered: \"Filtered\",\r\n strFilters: \"Filters\",\r\n strFinishDate: \"Finish Date\",\r\n strFinished: \"Finished\",\r\n strFreerollsOnly: \"Freerolls Only\",\r\n strGame: \"Game\",\r\n strGameCancellation: \"Game cancellation\",\r\n strGameConventions: \"Game Conventions\",\r\n strGameID: \"Game ID\",\r\n strGameIsOver: \"The Game is over\",\r\n strGameOffer: \"Game Offer\",\r\n strGameScore: \"Score\",\r\n strGameTime: \"Game Time\",\r\n strGameType: \"Game Type\",\r\n strGames: \"Games\",\r\n strGamesAvailable: \"The games will be available on\",\r\n strGamesHistory: \"Games History\",\r\n strGeneral: \"General\",\r\n strGeneralInformation: \"General information\",\r\n strHall: \"Hall\",\r\n strHands: \"Hand\",\r\n strHistory: \"History\",\r\n strHour: \"H\",\r\n strHours: \"hours\",\r\n strHowToPlay: \"How to play?\",\r\n strHowToPlayIntro: \"How to play?\",\r\n strID: \"ID\",\r\n strIfYouLeaveYouWillLose: \"If you leave the game, you will lose. Are you sure you want to leave?\",\r\n strInGame: \"In the game\",\r\n strInactiveTable: \"Inactive table\",\r\n strInactiveTableMessage: \"Your table No[No] was canceled, because you were inactive\",\r\n strIncognito: \"Incognito\",\r\n strInprocess: \"Inprocess\",\r\n strInputStake: \"Stake\",\r\n strItemChangeNumber: \"Number of Changes\",\r\n strItemChangeType1: \"Dice Change\",\r\n strItemChangeType2: \"Change card\",\r\n strJackpot: \"Jackpot\",\r\n strJoin: \"Join\",\r\n strJoin1: \"Join\",\r\n strKing: \"King\",\r\n strLastWin: \"Last win\",\r\n strLatestResults: \"Top Results\",\r\n strLeaderboard: \"Leaderboard\",\r\n strLeave: \"Leave\",\r\n strLeaveTheGame: \"Leave the game\",\r\n strLogin: \"Login\",\r\n strLogout: \"Logout\",\r\n strLuckySpin: \"Lucky Spin\",\r\n strMaintenance: \"Maintenance\",\r\n strMasterBoard: \"Blotmaster\",\r\n strMasterboardDetails: \"Collect bellow mentioned count of [combinationName] combination and get bonuses\",\r\n strMasterboardDetailsLevel: \"Lvl\",\r\n strMasterboardWin: \"Congratulations, you have won [prize] [currency] money in the Masterboard campaign!\",\r\n strMasterboardWinTitle: \"Blotmaster win\",\r\n strMax: \"Max\",\r\n strMaxStake: \"Max Stake\",\r\n strMaxStakeDoubling: \"Double stake\",\r\n strMe: \"Me\",\r\n strMin: \"Min\",\r\n strMinBet: \"Min bet\",\r\n strMinStake: \"Min Stake\",\r\n strMinimumPoints: \"Min. Points\",\r\n strMinute: \"m\",\r\n strMinutes: \"mins\",\r\n strMoney: \"Money\",\r\n strMyGame: \"My Game\",\r\n strMyTournaments: \"My Tournaments\",\r\n strName: \"Name\",\r\n strNetwork: \"Network\",\r\n strNetworkMaintanance: \"[networkName] Network Maintenance\",\r\n strNetworks: \"Networks\",\r\n strNew: \"New\",\r\n strNewGame: \"New game\",\r\n strNo: \"NO\",\r\n strNoActiveTables: \"No Active Tables\",\r\n strNoGames: \"There are no games\",\r\n strNoGamesWouldYouCreateNewOne: \"Currently there are no games. Would you like to create one?\",\r\n strNoTournaments: \"There are no tournaments\",\r\n strNoTrump: \"No Trump\",\r\n strNotBad: \"Not bad...\",\r\n strNowPlaying: \"Now Playing\",\r\n strOk: \"OK\",\r\n strOne: \"One\",\r\n strOnlyOpenTables: \"Only Open Tables\",\r\n strOnlyTierce: \"Only Tierce\",\r\n strOpen: \"Open\",\r\n strOpponentID: \"Opponent ID\",\r\n strOpponentNickName: \"Opponent [N]\",\r\n strOwnerDeclinedYourRequest: \"We are sorry but table owner did not accept your participation request.\",\r\n strParticipants: \"Participants\",\r\n strPassword: \"Password\",\r\n strPlace: \"Place\",\r\n strPlace_s: \"Place(s)\",\r\n strPlaces: \"Places\",\r\n strPlay: \"Play\",\r\n strPlayDemo: \"Demo play\",\r\n strPlayAgain: \"Play again\",\r\n strPlayNow: \"Play Now\",\r\n strPlayer: \"Player\",\r\n strPlayer1: \"Player 1\",\r\n strPlayer1ID: \"Player 1 ID\",\r\n strPlayer2: \"Player 2\",\r\n strPlayer2ID: \"Player 2 ID\",\r\n strPlayerId: \"Player ID\",\r\n strPlayerIsWaiting: \"Player Is Waiting\",\r\n strPlayers: \"Players\",\r\n strPlayersList: \"Players List\",\r\n strPleaseVerifyKYC: \"Verify KYC\",\r\n strPointCapot: \"2 Points for 'Capot'\",\r\n strPoints: \"Points\",\r\n strPopupCanceledTournament:\r\n \"THE TOURNAMENT WAS CANCELED FOR TECHNICAL REASONS. ACCEPT OUR APOLOGIES. ALL BETS WILL BE REFUNDED WITHIN 24 HOURS. ON ANY QUESTIONS YOU CAN CONTACT THE CUSTOMER SUPPORT CENTER.\",\r\n strPopupGameCancellationText: \"We are sorry but table owner did not accept your participation request.\",\r\n strPopupGameOver: \"Game Over\",\r\n strPopupJackpotInfo: \"Player #[player1] and Player #[player2] have won jackpot\",\r\n strPopupOnlyOneOption: \"You can choose only one of the options\",\r\n strPopupOpponentDeclinedRevanche: \"Your opponent declined revanche offer\",\r\n strPopupOpponentWantToPlay: \"Opponent wants to play\",\r\n strPopupPleaseWaitForNextRound: \"Please, wait till new round starts.\",\r\n strPopupReplayDeclinedText: \"Your opponent declined game offer.\",\r\n strPopupReplayOfferText:\r\n \"Your opponents wants to play again! Do you want to accept the offer and play with the same conditions?\",\r\n strPopupRevancheDeclinedText: \"Your opponent declined revanche offer.\",\r\n strPopupRematchDeclinedText: \"Your opponent declined rematch offer.\",\r\n strPopupRevancheOffer: \"Your opponent wants revanche!\",\r\n strPopupRevancheOfferQuestion: \"Do you agree to play a new game with same conventions?\",\r\n strPopupRevancheOfferText: \"Do you want to accept the offer and play with the same conditions or try Lucky Spin?\",\r\n strPopupSkipTour:\r\n \"You've passed to the [tourOrder] round of the [tournamentId] [tournamentName] tournament in [gameType].\",\r\n strPopupTournamentCanceledText: \"Tournament is cancelled by technical issues. Please contact Support Center.\",\r\n strPopupTournamentGameOverWithVictoryText:\r\n \"You have passed to the {0}rd tour of the {1} {2}. Please wait for the next game.\",\r\n strPopupTournamentTourSkippedText:\r\n \"You have passed to the {0}rd tour of the {1} {2}. Please wait for the next game.\",\r\n strPopupVerifyKYCText: \"Please verify KYC. For questions please contact support center\",\r\n strPopupWaitForJoin: \"Please wait until your opponent join to the game!\",\r\n strPopupWaitingRevancheOrReplayAnswerText: \"Please wait until your opponent will join the game.\",\r\n strPopupWonJackpot: \"Congratulations, you have won jackpot\",\r\n strPopupYouLostGame: \"Unfortunately you lost this game\",\r\n strPopupYouWon: \"Congratulations, you have won\",\r\n strPopupYouWonGame: \"Congratulations, you have won!\",\r\n strPopupYourOpponentWonGame: \"Your opponent has won.\",\r\n strPossibleWin: \"Possible Win\",\r\n strPrice: \"Price\",\r\n strPrivate: \"Private\",\r\n strPrivateGame: \"Private Game\",\r\n strPrize: \"Prize\",\r\n strPrizeAmount: \"Prize Amount\",\r\n strPrizeDistribution: \"Prize Distribution\",\r\n strPrizeFund: \"Prize Fund\",\r\n strPrizeMaxPrize: \"Prize/Max Prize\",\r\n strPrizePlace_s: \"Prize Places\",\r\n strPrizePlaces: \"Prize Places\",\r\n strProduct: \"Game Type\",\r\n strQuantity: \"Quantity\",\r\n strRakeRace: \"Rake Race\",\r\n strRating: \"Rating\",\r\n strRebuy: \"Rebuy\",\r\n strRegistered: \"Registered\",\r\n strRegistrated: \"Registrated\",\r\n strRegistration: \"Registration\",\r\n strRegistrationDate: \"Registration Date\",\r\n strReject: \"Reject\",\r\n strRemaining: \"Remaining\",\r\n strRememberMe: \"Remember me\",\r\n strRepeat: \"Repeat\",\r\n strRepeatGameOfferForLoser:\r\n \"Your opponents wants to play again! Do you want to accept the offer and play with the same conditions?\",\r\n strReset: \"Reset\",\r\n strRevanche: \"Revanche\",\r\n strRevancheOffer: \"Revanche offer\",\r\n strRevancheOrLuckySpinOfferForWinner:\r\n \"Your opponent wants to revanche! Do you want to accept the offer and play with the same conditions?\",\r\n strRematchOrLuckySpinOfferForWinner:\r\n \"Your opponent wants to rematch! Do you want to accept the offer and play with the same conditions?\",\r\n strRules: \"Rules\",\r\n strSameWin: \"Your win stays the same\",\r\n strSattelite: \"Sattelite\",\r\n strSave: \"Save\",\r\n strScore: \"Score\",\r\n strScores: \"Scores\",\r\n strSecond: \"Sec.\",\r\n strSecond1: \"s\",\r\n strSeconds: \"secs\",\r\n strSelectConventions: \"Select conventions\",\r\n strSelectGame: \"Select Game\",\r\n strSelectHandicap: \"Select Handicap\",\r\n strSelectNetwork: \"Select Network\",\r\n strSelected: \"Selected\",\r\n strSettings: \"Settings\",\r\n strSitAndGo: \"Sit & Go\",\r\n strSkillGames: \"Skill Games\",\r\n strSlideToPlay: \"Slide to play\",\r\n strSlideToPlayAltText: \"Please slide this button for Full Screen\",\r\n strSlowConnection: \"Slow Connection\",\r\n strSoClose: \"So close….\",\r\n strSoon: \"Soon\",\r\n strSpin: \"Spin\",\r\n strStake: \"Stake\",\r\n strStakeAmount: \"Stake amount\",\r\n strStakeMaxStake: \"Stake/Max Stake\",\r\n strStakeRange: \"Stake Range\",\r\n strStakes: \"Stakes\",\r\n strStart: \"Start\",\r\n strStartDate: \"Start Date\",\r\n strStarted: \"Started\",\r\n strStarting: \"Starting\",\r\n strStartsIn: \"Start In\",\r\n strStatus: \"Status\",\r\n strStay: \"Stay\",\r\n strStepTime: \"Step Time\",\r\n strTable: \"Table\",\r\n strTables: \"Tables\",\r\n strTakeRiskBetMultiplied: \"Your win will be multiplied by [N]\",\r\n strTakeRiskRandomFactorText: \"Your win will be multiplied by a random multiplier. Do you want to proceed?\",\r\n strTapToFullScreen: \"Tap to Full Screen\",\r\n strTapToFullScreenAltText: \"Please press this button for Full Screen\",\r\n strTechnicalIssues: \"Technical Issues\",\r\n strTicket: \"Ticket\",\r\n strTime: \"Time\",\r\n strTimeLeft: \"Time Left\",\r\n strTimers: \"Timers\",\r\n strTotalBonus: \"All Total Bonuses\",\r\n strTotalWinners: \"Total winners\",\r\n strTour: \"Tour\",\r\n strTournament: \"Tournament\",\r\n strTournamentHall: \"Tournament Hall\",\r\n strTournamentHistory: \"Tournament History\",\r\n strTournamentID: \"Tournament ID\",\r\n strTournamentInformation: \"Tournament information\",\r\n strTournamentIsStarting: \"Tournament is starting\",\r\n strTournamentName: \"Tournament Name\",\r\n strTournamentStart: \"Start Date\",\r\n strTournamentStarted: \"Tournament started\",\r\n strTournamentType: \"Tournament Type\",\r\n strTournamentTypes: \"Tournament Types\",\r\n strTournaments: \"Tournaments\",\r\n strTransferToAccount: \"Transfer to account\",\r\n strTutorials: \"Tutorials\",\r\n strTwo: \"Two\",\r\n strType: \"Type\",\r\n strUnderconstructionInfo: \"The game will be down for maintenance.\",\r\n strUnfortunatelyYouLost: \"Unfortunately you lost\",\r\n strUpcomingTournaments: \" Upcoming Tournaments\",\r\n strUser: \"User\",\r\n strUser1: \" User\",\r\n strUsernameEmailMobile: \"Username/Email/Mobile\",\r\n strVerifyKyc: \"Verify KYC\",\r\n strView: \"View\",\r\n strWait: \"Wait\",\r\n strWaitForOpponent: \"Wait for Opponent\",\r\n strWaiting: \"Waiting\",\r\n strWaitingForInternetConnection: \"Waiting for internet connection\",\r\n strWantToLogOut: \"Do you want to log out?\",\r\n strWeWillBeBackSoon: \"We will be back soon\",\r\n strWin: \"Win\",\r\n strWinner: \"Winner\",\r\n strWins: \"Wins\",\r\n strWithout4Cards: \"Without 4 Cards and 100\",\r\n strWithoutCombinations: \"Without Combinations\",\r\n strYes: \"YES\",\r\n strYouAreLeftTournament: \"You left tournament\",\r\n strYouAreRegistred: \"You are registred!\",\r\n strYouLost: \"You Lost\",\r\n strYouWon: \"You Won\",\r\n strYourOpponentWantsToRepeat: \"Your opponent wants to play again\",\r\n strYourOpponentWantsToRevanche: \"Your opponent wants to revanche!\",\r\n strYourScore: \"Your Score\",\r\n strZeroAvailableGames: \"No available games\",\r\n strPopupPrev: \"Prev\",\r\n strPopupFinish: \"Finish\",\r\n strPopupFinishIntro: \"Finish\",\r\n strPopupNext: \"Next\",\r\n strPopupNextIntro: \"Next\",\r\n strRematchOffer: \"Rematch Offer\",\r\n strOpponentWantPlayAgain: \"Your opponent want to play again with the same conditions.\",\r\n strRematchWait: \"Rematch Wait\",\r\n strRematch: \"Rematch\",\r\n strYouWin: \"You Win\",\r\n strYouLose: \"You Lose\",\r\n strDontShowAgain: \"Don’t show again\",\r\n strHexagonGameName: \"Hexagon\",\r\n strBoards: \"Boards\",\r\n strThemes: \"Themes\",\r\n strTheme1: \"Theme 1\",\r\n strTheme2: \"Theme 2\",\r\n strHexIntroStep1Txt:\r\n \"Hexagon is a board game in which the aim is to cover as much of the board with pieces as possible.\",\r\n strHexIntroStep2Txt:\r\n \"Once a piece has been selected, all available steps for the chosen piece will be displayed. Game\\n\" +\r\n \" pieces can move one or two boxes (jump) in any direction from their position. If the player moves a\\n\" +\r\n \" piece one box, that piece is doubled – it fills the destination box and the original piece remains\\n\" +\r\n \" in its original position.\",\r\n strHexIntroStep3Txt: \"There are 3 types of board that you can choose from the game lobby.\",\r\n strHexIntroStep4Txt: \"You can choose the theme via which you want to play.\"\r\n};\r\n\r\nfunction t() {\r\n let Texts = null;\r\n return key => {\r\n if (!Texts) {\r\n Texts = store.getState().appData.Texts;\r\n }\r\n\r\n return (Texts && Texts[key]) || (defaultTexts && defaultTexts[key]) || key;\r\n };\r\n}\r\n\r\nexport default t();\r\n","import { store } from \"../../store\";\r\nimport {\r\n API_ENDPOINTS,\r\n APP_URL,\r\n IsMobileLogin,\r\n lang,\r\n PartnerId,\r\n UNAUTHORIZED_STATUS_CODE,\r\n VALIDATION_COOKIE_NAME\r\n} from \"../../constants\";\r\nimport { showErrorNotification } from \"../../helpers/localHelperFunctions\";\r\nimport { openPopup } from \"../../store/actions\";\r\nimport { POPUP_NAMES } from \"../../constants/popupNames\";\r\n\r\nexport const getValidationCookie = () => {\r\n return document.cookie\r\n .split(\"; \")\r\n .find(row => row.startsWith(`${VALIDATION_COOKIE_NAME}=`))\r\n ?.split(\"=\")[1];\r\n};\r\n\r\nexport default function sendRequest(endPoint, body, isAutoJoin, identityUrl, identityToken, refreshToken) {\r\n const endPointData = API_ENDPOINTS[endPoint];\r\n const { token } = store.getState().appData;\r\n const headers = {\r\n PartnerSiteId: PartnerId,\r\n lang: lang,\r\n \"Content-Type\": `application/${identityUrl ? \"x-www-form-urlencoded\" : \"json\"}`,\r\n EntryType: IsMobileLogin ? \"mobile\" : \"desktop\",\r\n isAutoJoin: isAutoJoin || false,\r\n [VALIDATION_COOKIE_NAME]: getValidationCookie()\r\n };\r\n if (!refreshToken) {\r\n headers.Authorization = identityToken || token ? `Bearer ${identityToken || token}` : \"\";\r\n }\r\n return fetch(identityUrl || `${APP_URL}/api/App/${endPointData.path}`, {\r\n method: endPointData.method,\r\n body: identityUrl ? body : body ? JSON.stringify(body) : null,\r\n headers\r\n })\r\n .then(data => {\r\n if (IsMobileLogin && data.status === UNAUTHORIZED_STATUS_CODE) {\r\n if (body.gameTableId) {\r\n if (window.windowsRefs && window.windowsRefs[`gameTable${body.gameTableId}`]) {\r\n window.windowsRefs[`gameTable${body.gameTableId}`].close();\r\n }\r\n }\r\n return store.dispatch(openPopup(POPUP_NAMES.UNAUTHORIZED));\r\n }\r\n return data.json();\r\n })\r\n .then(data => {\r\n if (data.Error) {\r\n showErrorNotification(data.Error);\r\n }\r\n return new Promise(resolve => {\r\n resolve(data);\r\n });\r\n })\r\n .catch(err => {\r\n console.error(err);\r\n });\r\n}\r\n","import moment from \"moment\";\r\nimport { detect } from \"detect-browser\";\r\n\r\n/**\r\n * Returns a parameter from Url\r\n * @param {array} paramsArr - The Url params\r\n * @return {object}\r\n */\r\nexport function getUrlParams(paramsArr) {\r\n let urlParams = {};\r\n const url = new URL(window.location.href);\r\n for (let i = 0, len = paramsArr.length; i < len; ++i) {\r\n urlParams[paramsArr[i]] = url.searchParams.get(paramsArr[i]);\r\n }\r\n\r\n return urlParams;\r\n}\r\n\r\n/**\r\n * Detect if device is ios\r\n * @return {boolean}\r\n */\r\nexport const isIOS = () => {\r\n return /iPad|iPhone|iPod/.test(navigator.userAgent);\r\n};\r\n\r\n/**\r\n * Detect browser name\r\n * @return {string}\r\n */\r\nexport const getBrowserName = () => {\r\n const browser = detect();\r\n\r\n return browser.name;\r\n};\r\n\r\n/**\r\n * Detect if browser is safari\r\n * @return {boolean}\r\n */\r\nexport const isSafari = () => {\r\n return navigator.userAgent.indexOf(\"Safari\") !== -1 && navigator.userAgent.indexOf(\"Chrome\") === -1;\r\n};\r\n\r\n/**\r\n * Returns initial playerInfo data from Url\r\n * @return {object}\r\n */\r\nexport function getGameDataFromUrl() {\r\n let { PartnerId, token, lang, IsMobileLogin, homeUrl, isRGS, mainDomain } = getUrlParams([\r\n \"PartnerId\",\r\n \"token\",\r\n \"lang\",\r\n \"IsMobileLogin\",\r\n \"homeUrl\",\r\n \"isRGS\",\r\n \"mainDomain\"\r\n ]);\r\n IsMobileLogin = (IsMobileLogin && IsMobileLogin.toLowerCase()) === \"true\";\r\n isRGS = (isRGS && isRGS.toLowerCase()) === \"true\";\r\n\r\n return { PartnerId, token, lang, IsMobileLogin, homeUrl, isRGS, mainDomain };\r\n}\r\n\r\n/**\r\n * Returns a parameter from Url\r\n * @param {string} param - The Url param\r\n * @param {string} url\r\n * @return {string}\r\n */\r\nexport function getUrlParam(param, url) {\r\n const urlString = url || window.location.href;\r\n const newUrl = new URL(urlString);\r\n return newUrl.searchParams.get(param);\r\n}\r\n\r\n/**\r\n * Returns converted time\r\n * @param {string} seconds - The Url param\r\n * @param {string} minuteLabel - The Url param\r\n * @param {string} secondLabel - The Url param\r\n * @return {string}\r\n */\r\n//TODO: update function for \"LTR\" and \"RTL\" (arrabic language)\r\nexport function convertSecondsToMinutes(seconds, minuteLabel, secondLabel) {\r\n const convertedMinutes = Math.trunc(seconds / 60);\r\n const convertedSeconds = seconds % 60;\r\n const minutePart = convertedMinutes > 0 ? `${convertedMinutes} ${minuteLabel}` : \"\";\r\n const secondPart = convertedSeconds > 0 ? `${convertedSeconds} ${secondLabel}` : \"\";\r\n if (!minutePart && !secondPart) {\r\n return \"\";\r\n }\r\n return `${minutePart} ${secondPart}`;\r\n}\r\n\r\n/**\r\n * Returns merged array with unique values\r\n * @return {array}\r\n */\r\nexport function joinArrays() {\r\n let jointArray = [];\r\n\r\n [...arguments].map(array => {\r\n return (jointArray = [...jointArray, ...array]);\r\n });\r\n return [...new Set([...jointArray])].sort((a, b) => a - b);\r\n}\r\n\r\nexport const fromUtcToLocal = (time, format = \"DD-MM-YY HH:mm:ss\") => {\r\n return moment(moment.utc(time).toDate()).format(format);\r\n};\r\n\r\n/**\r\n * detect if element is in view port\r\n * @return {boolean}\r\n */\r\nexport function isBottomOfPage(el) {\r\n // let winScroll = document.body.scrollTop || document.documentElement.scrollTop;\r\n // let { scrollHeight } = document.documentElement,\r\n // { clientHeight } = document.documentElement;\r\n\r\n const winScroll = el.scrollTop,\r\n scrollHeight = el.scrollHeight,\r\n clientHeight = el.clientHeight;\r\n\r\n const height = scrollHeight - clientHeight;\r\n\r\n if (isIOS()) {\r\n return winScroll / height === 1;\r\n }\r\n return Math.floor(winScroll / height) === 1;\r\n}\r\n\r\n/**\r\n * scroll handler function\r\n * @return {undefined}\r\n */\r\nexport default function handleScroll(el, callback) {\r\n if (isBottomOfPage(el)) {\r\n callback();\r\n }\r\n}\r\n\r\n/**\r\n * pass 1/(network.currencyData.CoinRate) to convert into coin else (network.currencyData.CoinRate)\r\n * @param {number} amount\r\n * @param {number} rate\r\n * @param {number} precision\r\n */\r\nexport function convertCoinToCurrency(amount, rate, precision = 2) {\r\n let resultAmount = amount * rate;\r\n if (!Number.isInteger(resultAmount)) {\r\n resultAmount = parseFloat(resultAmount.toFixed(precision));\r\n }\r\n return resultAmount;\r\n}\r\n\r\n/**\r\n * pass 1/(network.currencyData.CoinRate) to convert into coin else (network.currencyData.CoinRate)\r\n * @param {number} amount\r\n * @param {number} rate\r\n * @param {number} precision\r\n */\r\nexport function convertCurrency(amount, rate, precision = undefined) {\r\n const convertedVal = amount * rate;\r\n return precision !== undefined ? convertedVal.toFixed(precision) : convertedVal;\r\n}\r\n\r\n/**\r\n * Returns user Ip as string\r\n * @return {string}\r\n */\r\nexport function getUserIP(onNewIP) {\r\n // onNewIp - your listener function for new IPs\r\n //compatibility for firefox and chrome\r\n var myPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;\r\n var pc = new myPeerConnection({\r\n iceServers: []\r\n }),\r\n noop = function() {},\r\n localIPs = {},\r\n ipRegex = /([0-9]{1,3}(\\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/g;\r\n // key;\r\n function iterateIP(ip) {\r\n if (!localIPs[ip]) onNewIP(ip);\r\n localIPs[ip] = true;\r\n }\r\n //create a bogus data channel\r\n pc.createDataChannel(\"\");\r\n // create offer and set local description\r\n pc.createOffer()\r\n .then(function(sdp) {\r\n sdp.sdp.split(\"\\n\").forEach(function(line) {\r\n if (line.indexOf(\"candidate\") < 0) return;\r\n line.match(ipRegex).forEach(iterateIP);\r\n });\r\n\r\n pc.setLocalDescription(sdp, noop, noop);\r\n })\r\n .catch(function(reason) {\r\n console.log(reason);\r\n });\r\n //listen for candidate events\r\n pc.onicecandidate = function(ice) {\r\n if (!ice || !ice.candidate || !ice.candidate.candidate || !ice.candidate.candidate.match(ipRegex)) return;\r\n ice.candidate.candidate.match(ipRegex).forEach(iterateIP);\r\n };\r\n}\r\nexport const getLocalIp = () =>\r\n new Promise((resolve, reject) => {\r\n window.RTCPeerConnection =\r\n window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;\r\n\r\n if (typeof window.RTCPeerConnection == \"undefined\") return reject(\"WebRTC not supported by browser\");\r\n\r\n let pc = new RTCPeerConnection();\r\n let ips = [];\r\n\r\n pc.createDataChannel(\"\");\r\n pc.createOffer()\r\n .then(offer => pc.setLocalDescription(offer))\r\n .catch(err => reject(err));\r\n pc.onicecandidate = event => {\r\n if (!event || !event.candidate) {\r\n // All ICE candidates have been sent.\r\n if (ips.length == 0) return reject(\"WebRTC disabled or restricted by browser\");\r\n\r\n return resolve(ips);\r\n }\r\n\r\n let parts = event.candidate.candidate.split(\" \");\r\n let ip = parts[4];\r\n\r\n if (!ips.some(e => e == ip)) ips.push(ip);\r\n };\r\n });\r\n\r\nexport function numberWithThousandSeparator(number, separator = \",\") {\r\n if (number === 0 || Number(number)) {\r\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator);\r\n }\r\n return \" \";\r\n}\r\n\r\n/**\r\n * removes redundant 0s\r\n * @param {string} text\r\n * @returns {string}\r\n */\r\nexport function removeLeadingZeroes(text) {\r\n while (text.length > 1 && text.substring(0, 1) === \"0\" && text.substring(1, 2) !== \".\") {\r\n text = text.substring(1);\r\n }\r\n return text;\r\n}\r\n\r\n/**\r\n * split camel case words\r\n * @param {string} str\r\n * @returns {string}\r\n */\r\nexport function separateCamelCase(str) {\r\n return str.replace(/([a-z])([A-Z])/g, \"$1 $2\");\r\n}\r\n\r\n/**\r\n * remove spaces from string\r\n * @param {string} str\r\n * @returns {string}\r\n */\r\nexport function removeStringSpaces(str) {\r\n return str.toString().replace(/\\s/g, \"\");\r\n}\r\n\r\nexport function getMobileOperatingSystem() {\r\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\r\n\r\n if (/android/i.test(userAgent)) {\r\n return \"Android\";\r\n }\r\n\r\n if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\r\n return \"iOS\";\r\n }\r\n\r\n return undefined;\r\n}\r\n","import React, { memo } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport classNames from \"classnames\";\r\n\r\nfunction Button({\r\n className,\r\n isSimple,\r\n buttonText,\r\n imageTag,\r\n iconName,\r\n iconDirection,\r\n onClick,\r\n style,\r\n disable,\r\n type,\r\n ariaLabel,\r\n dataTooltip,\r\n onTouchStart,\r\n onTouchEnd,\r\n isToggled\r\n}) {\r\n return (\r\n \r\n {iconName && (\r\n \r\n )}\r\n {imageTag && \"\"}\r\n {buttonText && {buttonText}}\r\n \r\n );\r\n}\r\n\r\nButton.propTypes = {\r\n className: PropTypes.string,\r\n isSimple: PropTypes.bool,\r\n buttonText: PropTypes.any,\r\n imageTag: PropTypes.string,\r\n iconName: PropTypes.string,\r\n iconDirection: PropTypes.string,\r\n onClick: PropTypes.any,\r\n style: PropTypes.object,\r\n disable: PropTypes.bool,\r\n type: PropTypes.string,\r\n ariaLabel: PropTypes.string,\r\n dataTooltip: PropTypes.string,\r\n onTouchStart: PropTypes.func,\r\n onTouchEnd: PropTypes.func,\r\n isToggled: PropTypes.bool\r\n};\r\n\r\nButton.defaultProps = {\r\n className: \"\",\r\n isSimple: false,\r\n buttonText: null,\r\n imageTag: \"\",\r\n iconName: \"\",\r\n iconDirection: \"\",\r\n onClick: null,\r\n style: null,\r\n disable: false,\r\n type: \"button\",\r\n ariaLabel: \"\",\r\n dataTooltip: \"\",\r\n onTouchStart: null,\r\n onTouchEnd: null,\r\n isToggled: false\r\n};\r\n\r\nexport default memo(Button);\r\n","export const POPUP_NAMES = {\r\n MAX_STAKE_DOUBLING: \"MAX_STAKE_DOUBLING\",\r\n GAME_OFFER: \"GAME_OFFER\",\r\n GAME_OFFER_DECLINED: \"GAME_OFFER_DECLINED\",\r\n JACKPOT_WIN: \"JACKPOT_WIN\",\r\n JACKPOT_INFO: \"JACKPOT_INFO\",\r\n CHOOSE_NETWORKS: \"CHOOSE_NETWORKS\",\r\n CHOOSE_SCORE: \"CHOOSE_SCORE\",\r\n CHOOSE_STAKE: \"CHOOSE_STAKE\",\r\n CHOOSE_TIMERS: \"CHOOSE_TIMERS\",\r\n CHOOSE_CONVENTIONS: \"CHOOSE_CONVENTIONS\",\r\n CHOOSE_CHANGE_ITEMS: \"CHOOSE_CHANGE_ITEMS\",\r\n SELECT_GAME_KIND: \"SELECT_GAME_KIND\",\r\n SELECT_GAME_TYPE: \"SELECT_GAME_TYPE\",\r\n UNAUTHORIZED: \"UNAUTHORIZED\",\r\n CONFIRM_PARTICIPATION: \"CONFIRM_PARTICIPATION\",\r\n CONFIRM_PARTICIPATION_V3: \"CONFIRM_PARTICIPATION_V3\",\r\n SET_SELECTED_TOURNAMENT_GAME_KIND: \"SET_SELECTED_TOURNAMENT_GAME_KIND\",\r\n WAIT_FOR_OPPONENT: \"WAIT_FOR_OPPONENT\",\r\n SELECT_SCORE: \"SELECT_SCORE\",\r\n CONVENTIONS: \"CONVENTIONS\",\r\n SELECT_TIMERS: \"SELECT_TIMERS\",\r\n REOPEN_ACTIVE_GAME: \"REOPEN_ACTIVE_GAME\",\r\n REOPEN_ACTIVE_TOURNAMENT_GAME: \"REOPEN_ACTIVE_TOURNAMENT_GAME\",\r\n STAKE: \"STAKE\",\r\n WIN: \"WIN\",\r\n GAME_OVER_V1: \"GAME_OVER_V1\",\r\n GAME_OVER_V2: \"GAME_OVER_V2\",\r\n GAME_OVER_V3: \"GAME_OVER_V3\",\r\n LUCKY_SPIN: \"LUCKY_SPIN\",\r\n CREATE_NEW_GAME: \"CREATE_NEW_GAME\",\r\n TOURNAMENT_INFO: \"TOURNAMENT_INFO\",\r\n TOURNAMENT_STARTED: \"TOURNAMENT_STARTED\",\r\n TOURNAMENT_SKIPPED: \"TOURNAMENT_SKIPPED\",\r\n TOURNAMENT_CANCELED: \"TOURNAMENT_CANCELED\",\r\n TOURNAMENT_GAME_INFO: \"TOURNAMENT_GAME_INFO\",\r\n REVANCHE_OFFER_V1: \"REVANCHE_OFFER_V1\",\r\n REVANCHE_OFFER_V2: \"REVANCHE_OFFER_V2\",\r\n REVANCHE_OFFER_V3: \"REVANCHE_OFFER_V3\",\r\n REVANCHE_PLEASE_WAIT_V1: \"REVANCHE_PLEASE_WAIT_V1\",\r\n REVANCHE_PLEASE_WAIT_V2: \"REVANCHE_PLEASE_WAIT_V2\",\r\n REVANCHE_PLEASE_WAIT_V3: \"REVANCHE_PLEASE_WAIT_V3\",\r\n REVANCHE_DECLINED_V1: \"REVANCHE_DECLINED_V1\",\r\n REVANCHE_DECLINED_V2: \"REVANCHE_DECLINED_V2\",\r\n REVANCHE_DECLINED_V3: \"REVANCHE_DECLINED_V3\",\r\n MASTERBOARD_STAKE_RANGE: \"MASTERBOARD_STAKE_RANGE\",\r\n INTERNET_SPEED: \"INTERNET_SPEED\",\r\n COOKIES_INCOGNITO: \"COOKIES_INCOGNITO\",\r\n INACTIVE_TABLE: \"INACTIVE_TABLE\",\r\n CANCEL_GAME_ALBATROSS: \"CANCEL_GAME_ALBATROSS\",\r\n RULES: \"RULES\",\r\n LUCKY_SPIN_V3: \"LUCKY_SPIN_V3\",\r\n HEXAGON_INTRO: \"HEXAGON_INTRODUCTION_V3\",\r\n GAME_OFFER_V3: \"GAME_OFFER_V3\",\r\n GAME_CANCELED_V3: \"GAME_CANCELED_V3\",\r\n REALITY_CHECK: \"REALITY_CHECK\"\r\n};\r\n","import React from \"react\";\r\nimport GSLoader from \"../../../assets/images/GSLoader.gif\";\r\n\r\nexport default function Loader() {\r\n return (\r\n
\r\n \"loader\"\r\n
\r\n );\r\n}\r\n","import startSignalR, { socketListener } from \"./index\";\r\nimport { store } from \"../../store\";\r\n\r\nexport function invoke(type) {\r\n let params = [...arguments];\r\n params.shift();\r\n if (!socketListener.connection.socket) {\r\n startSignalR(() => socketListener.invoke(type, ...params), store.getState().appData.token, undefined, true);\r\n } else {\r\n socketListener.invoke(type, ...params);\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { GAME_KIND_TITLE_ID, REFRESH_GAME } from \"../../../constants\";\r\nimport sendRequest from \"../../../connection/api\";\r\nimport ConventionsBlock from \"../../ConventionsBlock\";\r\nimport Button from \"../../Shared/Button\";\r\nimport {\r\n getRefreshGameReqBody,\r\n openGame,\r\n openGameAfterWindowLoaded,\r\n openNewGameWindow\r\n} from \"../../../helpers/localHelperFunctions\";\r\nimport classNames from \"classnames\";\r\nimport t from \"../../../helpers/translation\";\r\n\r\nconst AutoJoinGameNotification = ({ games, isCoin, gameTableId, onCloseHandler, networks }) => {\r\n const [disablePlayBtn, setDisablePlayBtn] = useState(false);\r\n const game = games.flatMap(i => i).find(i => i.GameTableId === gameTableId);\r\n if (!game) {\r\n return null;\r\n }\r\n const { GameTableId, GameKindId, GameBetInCoin, Conventions, NetworkId } = game;\r\n\r\n const apply = () => {\r\n setDisablePlayBtn(true);\r\n openNewGameWindow(gameTableId, GameKindId);\r\n sendRequest(REFRESH_GAME, getRefreshGameReqBody(gameTableId, true)).then(\r\n openGameAfterWindowLoaded(gameTableId, openGame(gameTableId, true, true))\r\n );\r\n onCloseHandler(GameTableId);\r\n };\r\n\r\n const reject = () => {\r\n onCloseHandler(GameTableId);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t(\"strActiveGame\")}\r\n {t(GAME_KIND_TITLE_ID + GameKindId)}\r\n
\r\n

\r\n {`${t(\"strStake\")}: ${\r\n isCoin ? GameBetInCoin : GameBetInCoin * networks[NetworkId].CurrencyRateForPlayer.Rate\r\n }`}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {Conventions && }\r\n
\r\n );\r\n};\r\n\r\nAutoJoinGameNotification.propTypes = {\r\n games: PropTypes.array.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n gameTableId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onCloseHandler: PropTypes.func.isRequired,\r\n networks: PropTypes.object.isRequired\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n appData: {\r\n isCoin,\r\n networksData: { networks }\r\n },\r\n autoJoinData: { GameTables }\r\n } = state;\r\n\r\n return {\r\n isCoin,\r\n games: GameTables,\r\n networks\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(AutoJoinGameNotification);\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { COIN_LONG } from \"../../../constants\";\r\nimport Button from \"../../Shared/Button\";\r\nimport t from \"../../../helpers/translation\";\r\nimport { numberWithThousandSeparator } from \"../../../helpers/utility\";\r\n\r\nconst JackpotWinNotification = ({ data, isCoin, onCloseHandler }) => {\r\n const { jackpotName, winnerPrizeInCoin, winnerPrize, winnerCurrencyId } = data;\r\n let prize = winnerPrize,\r\n currency = winnerCurrencyId;\r\n if (isCoin) {\r\n prize = winnerPrizeInCoin;\r\n currency = COIN_LONG;\r\n }\r\n\r\n const reject = () => {\r\n onCloseHandler(jackpotName);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t(\"strJackpot\")}{\" \"}\r\n
{t(\"strPopupWonJackpot\")}
\r\n
\r\n {numberWithThousandSeparator(prize)}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nJackpotWinNotification.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n isCoin: state.appData.isCoin\r\n});\r\n\r\nexport default connect(mapStateToProps)(JackpotWinNotification);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport Button from \"../../Shared/Button\";\r\nimport t from \"../../../helpers/translation\";\r\nimport { numberWithThousandSeparator } from \"../../../helpers/utility\";\r\n\r\nconst JackpotInfoNotification = ({ data, onCloseHandler }) => {\r\n const { jackpotName, amount, winnerNick, opponentNick, currency } = data;\r\n\r\n const text = t(\"strPopupJackpotInfo\");\r\n const replacedText = text.replace(`[player1]`, `${winnerNick}`).replace(`[player2]`, `${opponentNick}`);\r\n\r\n const reject = () => {\r\n onCloseHandler(jackpotName);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t(\"strJackpot\")}\r\n
{replacedText}
\r\n
\r\n {numberWithThousandSeparator(amount)}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nJackpotInfoNotification.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired\r\n};\r\n\r\nexport default JackpotInfoNotification;\r\n","import React from \"react\";\r\nimport t from \"../../../helpers/translation\";\r\nimport { COIN_LONG } from \"../../../constants\";\r\nimport Button from \"../../Shared/Button\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MasterboardWinNotification({ amount, amountInCurrency, onCloseHandler, isCoin, PlayerCurrencyId }) {\r\n const text = t(\"strMasterboardWin\");\r\n const replacedText = text\r\n .replace(`[prize]`, `${isCoin ? amount : amountInCurrency}`)\r\n .replace(`[currency]`, `${isCoin ? COIN_LONG : PlayerCurrencyId}`);\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t(\"strMasterboardWinTitle\")}\r\n
\r\n

{replacedText}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const {\r\n Model: { PlayerCurrencyId },\r\n isCoin\r\n } = state.appData;\r\n return {\r\n isCoin,\r\n PlayerCurrencyId\r\n };\r\n};\r\n\r\nMasterboardWinNotification.propTypes = {\r\n amount: PropTypes.number.isRequired,\r\n amountInCurrency: PropTypes.number.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n PlayerCurrencyId: PropTypes.string.isRequired\r\n};\r\n\r\nexport default connect(mapStateToProps)(MasterboardWinNotification);\r\n","import React from \"react\";\r\nimport { store } from \"../../store\";\r\nimport {\r\n addGameIntoLauncher,\r\n addGameTable,\r\n addLauncherGame,\r\n addTournamentToTable,\r\n closePopup,\r\n openPopup,\r\n removeGameTable,\r\n removeLauncherGame,\r\n removeTournamentFromTable,\r\n replaceGameInLauncher,\r\n toggleMultiView,\r\n // updateCustomTournaments,\r\n updateGameTable,\r\n updateLauncherGame,\r\n updateTournamentTable,\r\n addTournamentGames,\r\n removeTournamentGame,\r\n updateJackpotData,\r\n removeFromRequestedGames,\r\n changeTournamentGameScore,\r\n // toggleDisableTournament,\r\n updateTournamentKingDataItem,\r\n updateTournamentKingsLeaderBoardIPlayerPoint,\r\n cancelSelectedTournamentKing,\r\n addAutoJoinGame,\r\n removeAutoJoinGame,\r\n updateAutoJoinGames,\r\n updateTournamentPlayersQuantity,\r\n removeGameFromLauncher,\r\n updateTournamentTablesCount,\r\n resetTournamentInfo,\r\n setTournamentPlayers,\r\n replaceItemInJackpotData,\r\n updateTKCurrentPlayer,\r\n cancelRakeRace,\r\n finishRakeRace,\r\n startRakeRace,\r\n addUnderConstructionInfo,\r\n toggleUnderConstruction,\r\n actionCreatorToGetUpcomingTournamentForPartner,\r\n removeUnderConstructionInfo\r\n} from \"../../store/actions\";\r\nimport { convertCoinToCurrency } from \"../../helpers/utility\";\r\nimport {\r\n addOrRemoveTournamentPlayer,\r\n clearUnJoinTimeOutId,\r\n diceChangeForGame,\r\n didPassFiltration,\r\n sendPostMsgToGameWindow,\r\n setNewWindowGameUrl\r\n} from \"../../helpers/localHelperFunctions\";\r\nimport { POPUP_NAMES } from \"../../constants/popupNames\";\r\nimport { batchActions } from \"redux-batched-actions\";\r\nimport {\r\n CANCELED_GAME_ID,\r\n COIN,\r\n COIN_LONG,\r\n // FINISHED_ORDER_CASE,\r\n GAME_OFFER_DURATION,\r\n GAME_QUERY_PARAMS_FROM_LOBBY_URL,\r\n GAMES_COUNT_IN_GAME_LAUNCHER,\r\n HIDDEN,\r\n INFO_CODE,\r\n IsMobileLogin,\r\n JACKPOT_NOTIFICATION_DURATION,\r\n MY_NOT_STARTED_ORDER_CASE,\r\n NOT_STARTED_ORDER_CASE,\r\n NOTIFICATION_DURATION,\r\n partnerFiltersData,\r\n REMOVE_GAME_ANIMATION_DURATION,\r\n ROUTES,\r\n STARTED_ORDER_CASE,\r\n STARTED_STATUS,\r\n UN_JOIN_OPPONENT_FROM_GAME_TABLE\r\n} from \"../../constants\";\r\nimport { showNotification, onCloseHandler } from \"livecasino/components/Notification\";\r\nimport GameOfferNotification from \"../../components/NotificationWrapper/Notifications/gameOfferNotification\";\r\nimport TournamentStartedNotification from \"../../components/NotificationWrapper/Notifications/tournamentStartedNotification\";\r\nimport AutoJoinGameNotification from \"../../components/NotificationWrapper/Notifications/autoJoinGameNotifocation\";\r\nimport { invoke } from \"./socketRequests\";\r\nimport JackpotWinNotification from \"../../components/NotificationWrapper/Notifications/jackpotWinNotification\";\r\nimport JackpotInfoNotification from \"../../components/NotificationWrapper/Notifications/jackpotInfoNotification\";\r\nimport t from \"../../helpers/translation\";\r\nimport InfoNotification from \"../../components/NotificationWrapper/Notifications/InfoNotification\";\r\nimport MasterboardWinNotification from \"../../components/NotificationWrapper/Notifications/masterboardWinNotification\";\r\n\r\nexport function addGameTableHandler(\r\n GameTableId,\r\n NetworkId,\r\n GameTypeId,\r\n OwnerId,\r\n OwnerNickname,\r\n OwnerRating,\r\n GameBet,\r\n GameBetInCoin,\r\n OwnerCurrencyId,\r\n Conventions,\r\n GameDataChangeParameters,\r\n NetworkPartners,\r\n MaxStakeDoubling,\r\n Win,\r\n WinInCoin,\r\n Status,\r\n OpponentNickname\r\n) {\r\n if (window.location.pathname.includes(ROUTES.GAME_HALL) && !window.location.href.includes(\"demo-games\")) {\r\n const state = store.getState();\r\n const {\r\n appData: {\r\n networksData: { possibleGameTypes, networks },\r\n isCoin\r\n }\r\n } = state;\r\n const { Rate, DisplayedPrecision } = (networks[NetworkId] && networks[NetworkId].CurrencyRateForPlayer) || {}; //Todo Change after Backend implementation for not logged in\r\n Conventions = JSON.parse(Conventions);\r\n\r\n //TODO FUTURE: remove the Status condition if the old version of platform will be removed\r\n if (Status && possibleGameTypes && possibleGameTypes.includes(GameTypeId)) {\r\n if (!isCoin) {\r\n GameBet = convertCoinToCurrency(GameBetInCoin, Rate, DisplayedPrecision);\r\n Win = convertCoinToCurrency(WinInCoin, Rate, DisplayedPrecision);\r\n }\r\n const game = {\r\n GameTableId,\r\n NetworkId,\r\n GameTypeId,\r\n OwnerId,\r\n OwnerNickname,\r\n OwnerRating,\r\n GameBet,\r\n GameBetInCoin,\r\n OwnerCurrencyId,\r\n Conventions,\r\n GameDataChangeParameters:\r\n GameDataChangeParameters && GameDataChangeParameters.length && JSON.parse(GameDataChangeParameters),\r\n NetworkPartners,\r\n MaxStakeDoubling,\r\n Win,\r\n WinInCoin,\r\n Status,\r\n OpponentNickname,\r\n added: true\r\n };\r\n\r\n diceChangeForGame(game);\r\n\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n\r\n const actions = [];\r\n if (isMultiViewVisible) {\r\n actions.push(addLauncherGame(game));\r\n } else if (didPassFiltration(state[partnerFiltersData], NetworkId, GameTypeId, Conventions, GameBet)) {\r\n actions.push(addGameTable(game));\r\n }\r\n store.dispatch(batchActions(actions));\r\n }\r\n }\r\n}\r\n\r\nexport function updateGameTableHandler(\r\n GameId,\r\n GameTableId,\r\n GameTypeId,\r\n Status,\r\n OpponentNickname,\r\n OpponentRating,\r\n PrevStatus,\r\n NextStatus,\r\n Bet,\r\n Win,\r\n MaxStakeDoubling,\r\n Conventions\r\n) {\r\n const {\r\n appData: {\r\n networksData: { possibleGameTypes }\r\n },\r\n gameLauncherData,\r\n popupState: { popups }\r\n } = store.getState();\r\n const { isMultiViewVisible, requestedGames } = gameLauncherData;\r\n\r\n if (possibleGameTypes && possibleGameTypes.includes(GameTypeId) && NextStatus) {\r\n const game = {\r\n GameId,\r\n GameTableId,\r\n GameTypeId,\r\n Status,\r\n OpponentNickname,\r\n OpponentRating,\r\n PrevStatus,\r\n NextStatus,\r\n Bet,\r\n Win,\r\n MaxStakeDoubling,\r\n Conventions\r\n };\r\n const actions = [];\r\n\r\n if (isMultiViewVisible) {\r\n actions.push(updateLauncherGame(game));\r\n if (requestedGames.includes(GameTableId) && ((OpponentNickname && GameId) || !OpponentNickname)) {\r\n actions.push(removeFromRequestedGames(GameTableId));\r\n }\r\n } else {\r\n actions.push(updateGameTable(game));\r\n if (NextStatus === PrevStatus && !OpponentNickname) {\r\n if (popups.find(i => i.hasOwnProperty(GameTableId))) {\r\n actions.push(\r\n closePopup(GameTableId),\r\n openPopup(POPUP_NAMES.GAME_OFFER_DECLINED, { GameTableId }, GameTableId)\r\n );\r\n }\r\n }\r\n }\r\n store.dispatch(batchActions(actions));\r\n }\r\n}\r\n\r\n// TODO: remove oldLobbyParam when the old version of platform will be removed\r\nexport function removeGameTableHandler(gameTableId, oldLobbyParam) {\r\n const actions = [];\r\n if (store.getState().appData.Model.loadAutoJoinLobby) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n const openedFinishedGame = startedGamesUrls.filter(i => i.includes(gameTableId));\r\n\r\n if (openedFinishedGame.length) {\r\n actions.push(\r\n removeGameFromLauncher(openedFinishedGame[0]),\r\n closePopup(gameTableId),\r\n removeAutoJoinGame(gameTableId, arguments[3])\r\n );\r\n } else {\r\n actions.push(removeAutoJoinGame(gameTableId, arguments[3], true));\r\n setTimeout(() => {\r\n store.dispatch(removeAutoJoinGame(gameTableId, arguments[3]));\r\n if (window.windowsRefs) delete window.windowsRefs[`gameTable${gameTableId}`];\r\n if (window.pageInfo) delete window.pageInfo[gameTableId];\r\n }, REMOVE_GAME_ANIMATION_DURATION);\r\n }\r\n store.dispatch(batchActions(actions));\r\n return;\r\n }\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n if (\r\n window.location.pathname.includes(ROUTES.GAME_HALL) ||\r\n (window.location.pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) && isMultiViewVisible)\r\n ) {\r\n if (!oldLobbyParam) {\r\n if (isMultiViewVisible) {\r\n actions.push(\r\n removeFromRequestedGames(gameTableId),\r\n removeLauncherGame(gameTableId),\r\n removeGameTable(gameTableId)\r\n );\r\n } else {\r\n actions.push(removeGameTable(gameTableId, true));\r\n setTimeout(() => {\r\n store.dispatch(removeGameTable(gameTableId));\r\n }, REMOVE_GAME_ANIMATION_DURATION);\r\n }\r\n\r\n store.dispatch(batchActions(actions));\r\n }\r\n }\r\n}\r\n\r\n// TODO: the parameters in comment is for tournament game\r\nexport function gameOverHandler(\r\n finishStatusId,\r\n gameId,\r\n gameTableId,\r\n score,\r\n isWinner,\r\n takeRiskAllowed,\r\n isTournamentGameWinner,\r\n tournamentId,\r\n TournamentName,\r\n tourOrder,\r\n gameTypeId,\r\n masterBoardWinAmount,\r\n masterBoardWinAmountInCurrency,\r\n popupType = 1\r\n) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n\r\n if (!IsMobileLogin && startedGamesUrls.length <= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n let popup;\r\n let popupIdToClose;\r\n if (gameTableId) {\r\n if (finishStatusId === CANCELED_GAME_ID && popupType === 3) {\r\n popup = openPopup(POPUP_NAMES.GAME_CANCELED_V3, { gameTableId, gameId }, gameTableId);\r\n } else {\r\n popup = openPopup(\r\n POPUP_NAMES[`GAME_OVER_V${popupType}`],\r\n { gameTableId, score, isWinner, takeRiskAllowed, gameId, finishStatusId },\r\n gameTableId\r\n );\r\n }\r\n\r\n popupIdToClose = gameTableId;\r\n } else {\r\n // TODO remove the gameTypeId, because it is redundant\r\n const data = {\r\n gameId,\r\n isWinner: isTournamentGameWinner,\r\n tournamentId,\r\n TournamentName,\r\n tourOrder,\r\n gameTypeId\r\n };\r\n popup = openPopup(POPUP_NAMES.TOURNAMENT_GAME_INFO, data, gameId);\r\n popupIdToClose = gameId;\r\n }\r\n if (masterBoardWinAmount) {\r\n showNotification(\r\n onCloseHandler(gameTableId)}\r\n />,\r\n {\r\n autoClose: NOTIFICATION_DURATION,\r\n id: gameTableId,\r\n containerId: \"custom-notification\"\r\n }\r\n );\r\n }\r\n store.dispatch(closePopup(popupIdToClose));\r\n store.dispatch(popup);\r\n }\r\n}\r\n\r\nexport function makeOwnerGameTableBusyHandler(\r\n GameTableId,\r\n GameTypeId,\r\n GameBet,\r\n GameBetInCoin,\r\n Conventions,\r\n OpponentNickname,\r\n OpponentRaiting,\r\n GameDataChangeParameters,\r\n NetworkId,\r\n MaxStakeDoubling,\r\n Win,\r\n WinInCoin,\r\n GameKindId\r\n) {\r\n const game = {\r\n GameTableId,\r\n GameTypeId,\r\n GameKindId,\r\n GameBet,\r\n GameBetInCoin,\r\n GameDataChangeParameters:\r\n GameDataChangeParameters && GameDataChangeParameters.length && JSON.parse(GameDataChangeParameters),\r\n Conventions: JSON.parse(Conventions),\r\n OpponentNickname: OpponentNickname || t(\"strPlayer2\"),\r\n NetworkId,\r\n MaxStakeDoubling,\r\n Win,\r\n WinInCoin,\r\n Status: 2\r\n };\r\n\r\n diceChangeForGame(game);\r\n\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n const unJoinTimeOutId = setTimeout(() => {\r\n invoke(UN_JOIN_OPPONENT_FROM_GAME_TABLE, GameTableId);\r\n if (IsMobileLogin) {\r\n delete game.OpponentNickname;\r\n store.dispatch(updateGameTable(game));\r\n }\r\n }, GAME_OFFER_DURATION);\r\n sessionStorage.setItem(\"unJoinTimeOutId\", JSON.stringify(unJoinTimeOutId));\r\n if (isMultiViewVisible || IsMobileLogin) {\r\n showNotification(, {\r\n autoClose: GAME_OFFER_DURATION,\r\n id: GameTableId,\r\n containerId: \"custom-notification\"\r\n });\r\n store.dispatch(IsMobileLogin ? updateGameTable(game) : updateLauncherGame(game));\r\n } else {\r\n store.dispatch(openPopup(POPUP_NAMES.GAME_OFFER, game, GameTableId));\r\n }\r\n}\r\n\r\nexport function makeOwnerGameTableFreeHandler(GameTableId) {\r\n const actions = [removeFromRequestedGames(GameTableId)];\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n const game = { GameTableId, Status: 2 };\r\n onCloseHandler(GameTableId);\r\n clearUnJoinTimeOutId();\r\n if (isMultiViewVisible) {\r\n actions.push(updateLauncherGame(game));\r\n } else if (IsMobileLogin) {\r\n actions.push(updateGameTable(game));\r\n } else {\r\n actions.push(closePopup(GameTableId));\r\n }\r\n\r\n store.dispatch(batchActions(actions));\r\n}\r\n\r\nexport function startDemoGameHandler({ Url, DemoGameId, GameTableId }) {\r\n const { appData } = store.getState();\r\n const currency = appData.isCoin ? COIN : appData.Model.PlayerCurrencyId;\r\n Url += `${GAME_QUERY_PARAMS_FROM_LOBBY_URL}${DemoGameId}¤cyId=${currency}`;\r\n if (IsMobileLogin) {\r\n setTimeout(() => {\r\n const { networks } = appData.networksData;\r\n const networkId = Object.values(networks)?.[0].Id;\r\n window.pageInfo[networkId] && (window.pageInfo[networkId].demoGameUrl = Url);\r\n sendPostMsgToGameWindow(GameTableId, {\r\n type: \"setDemoGameUrl\",\r\n demoGameUrl: Url\r\n });\r\n }, 200);\r\n } else {\r\n store.dispatch(batchActions([addGameIntoLauncher(Url), toggleMultiView(true)]));\r\n }\r\n}\r\n\r\nexport function demoGameOverHandler(finishStatusId, score, popupType, gameKindId, gameTableId, isWinner, gameId) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n\r\n if (!IsMobileLogin && startedGamesUrls.length <= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n let popup;\r\n let popupIdToClose;\r\n if (gameTableId) {\r\n if (finishStatusId === CANCELED_GAME_ID && popupType === 3) {\r\n popup = openPopup(POPUP_NAMES.GAME_CANCELED_V3, { gameTableId, gameId }, gameTableId);\r\n } else {\r\n popup = openPopup(\r\n POPUP_NAMES[`GAME_OVER_V${popupType}`],\r\n { gameTableId, score, isWinner, gameId, finishStatusId, gameKindId, isDemoGame: true },\r\n gameTableId\r\n );\r\n }\r\n\r\n popupIdToClose = gameTableId;\r\n }\r\n\r\n store.dispatch(closePopup(popupIdToClose));\r\n store.dispatch(popup);\r\n } else {\r\n sendPostMsgToGameWindow(gameTableId, {\r\n type: \"demoGameOver\",\r\n finishStatusId,\r\n score,\r\n popupType,\r\n gameKindId,\r\n gameTableId,\r\n isWinner,\r\n gameId\r\n });\r\n }\r\n}\r\n\r\nexport function startGameHandler(gameUrl, gameId, gameTableId) {\r\n const { gameLauncherData, appData } = store.getState();\r\n const { isMultiViewVisible, requestedGames, startedGamesUrls } = gameLauncherData;\r\n\r\n const { isCoin, Model } = appData;\r\n const isAutojoin = Model.loadAutoJoinLobby;\r\n const gameNetworkId = arguments[10];\r\n const oldGameId =\r\n arguments[9] || (isAutojoin && startedGamesUrls[0] && startedGamesUrls[0].includes(gameTableId) && gameTableId);\r\n const oldGameTableId = arguments[8];\r\n const actions = [closePopup(oldGameTableId || gameTableId)];\r\n const { windowsRefs } = window;\r\n if (IsMobileLogin) {\r\n if (windowsRefs && oldGameTableId) {\r\n windowsRefs[`gameTable${gameTableId}`] = windowsRefs[`gameTable${oldGameTableId}`];\r\n delete windowsRefs[`gameTable${oldGameTableId}`];\r\n }\r\n } else {\r\n actions.push(toggleMultiView(true));\r\n }\r\n const currency = isCoin ? COIN : Model.PlayerCurrencyId;\r\n\r\n gameUrl += `${GAME_QUERY_PARAMS_FROM_LOBBY_URL}${gameId}¤cyId=${currency}`;\r\n\r\n if (windowsRefs && windowsRefs[`gameTable${gameTableId}`] && !windowsRefs[`gameTable${gameTableId}`].closed) {\r\n setNewWindowGameUrl(gameTableId, gameUrl, gameId);\r\n if (requestedGames.includes(gameTableId)) {\r\n actions.push(removeFromRequestedGames(gameTableId));\r\n }\r\n } else if (isAutojoin && (startedGamesUrls.length >= GAMES_COUNT_IN_GAME_LAUNCHER || IsMobileLogin)) {\r\n showNotification(, {\r\n autoClose: GAME_OFFER_DURATION,\r\n id: gameTableId,\r\n containerId: \"custom-notification\"\r\n });\r\n } else if (oldGameId && isMultiViewVisible) {\r\n actions.push(removeFromRequestedGames(gameTableId), replaceGameInLauncher({ oldGameId, gameUrl }));\r\n isAutojoin && actions.push(addAutoJoinGame({ GameTableId: gameTableId, Status: 1, NetworkId: gameNetworkId }));\r\n } else {\r\n actions.push(addGameIntoLauncher(gameUrl));\r\n }\r\n\r\n store.dispatch(batchActions(actions));\r\n}\r\n\r\nexport function addTournamentHandler(data) {\r\n //TODO: the under functionality should be invoked when tournaments would be visible on the current route\r\n const { PartnerIds, Tournament } = data;\r\n const state = store.getState();\r\n const { appData, gameLauncherData } = state;\r\n const {\r\n Model: { PartnerId },\r\n networksData: { networks }\r\n } = appData;\r\n const { Rate, DisplayedPrecision } =\r\n (networks[Tournament.NetworkId] || networks[Object.keys(networks)[0]]).CurrencyRateForPlayer || {};\r\n const { isMultiViewVisible } = gameLauncherData;\r\n const { selectedGameKindIds } = state[partnerFiltersData];\r\n const { pathname } = window.location;\r\n\r\n if (\r\n pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) &&\r\n pathname.includes(Tournament.TournamentTypeId) &&\r\n !isMultiViewVisible &&\r\n (!selectedGameKindIds.length || selectedGameKindIds.includes(Tournament.GameKindId)) &&\r\n PartnerIds.includes(PartnerId)\r\n ) {\r\n Tournament.RebuyInCoin &&\r\n (Tournament.Rebuy = convertCoinToCurrency(Tournament.RebuyInCoin, Rate, DisplayedPrecision));\r\n Tournament.PrizeInCoin &&\r\n (Tournament.Prize = convertCoinToCurrency(Tournament.PrizeInCoin, Rate, DisplayedPrecision));\r\n Tournament.FeeInCoin &&\r\n (Tournament.Fee = convertCoinToCurrency(Tournament.FeeInCoin, Rate, DisplayedPrecision));\r\n store.dispatch(addTournamentToTable(Tournament, true));\r\n }\r\n}\r\n\r\nexport function updateTournamentHandler(data) {\r\n const {\r\n gameLauncherData: { isMultiViewVisible },\r\n appData: {\r\n networksData: { networks }\r\n }\r\n } = store.getState();\r\n const { pathname } = window.location;\r\n\r\n if (pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) && !isMultiViewVisible) {\r\n const { NetworkId, PreviusCase, NewCase } = data;\r\n const { Rate, DisplayedPrecision } =\r\n (networks[NetworkId || 1] && networks[NetworkId || 1].CurrencyRateForPlayer) || {};\r\n data.Rate = Rate;\r\n data.DisplayedPrecision = DisplayedPrecision;\r\n\r\n if (\r\n (PreviusCase === MY_NOT_STARTED_ORDER_CASE || PreviusCase === NOT_STARTED_ORDER_CASE) &&\r\n NewCase === STARTED_ORDER_CASE\r\n ) {\r\n data.PlayerRegisteredByPayment = false;\r\n }\r\n const actions = [updateTournamentTable(data)];\r\n // if (NewCase !== PreviusCase && (NewCase === STARTED_ORDER_CASE || NewCase === FINISHED_ORDER_CASE)) {\r\n // actions.push(toggleDisableTournament(TournamentId, false));\r\n // }\r\n store.dispatch(batchActions(actions));\r\n }\r\n}\r\n\r\nexport function setRebuyAmountForPlayerHandler({ TournamentId, RebuyAmount }) {\r\n const {\r\n gameLauncherData: { isMultiViewVisible }\r\n } = store.getState();\r\n const { pathname } = window.location;\r\n\r\n if (pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) && !isMultiViewVisible) {\r\n const tournamentData = {\r\n TournamentId,\r\n PreviusCase: STARTED_ORDER_CASE,\r\n NewCase: STARTED_ORDER_CASE,\r\n RebuyInCoin: RebuyAmount,\r\n PlayerRegisteredByPayment: false\r\n };\r\n if (!RebuyAmount) {\r\n tournamentData.Status = STARTED_STATUS;\r\n }\r\n store.dispatch(updateTournamentTable(tournamentData));\r\n }\r\n}\r\n\r\nexport function removeTournamentHandler(data) {\r\n const { pathname } = window.location;\r\n const {\r\n gameLauncherData: { isMultiViewVisible },\r\n tournamentHallData: {\r\n tournamentInfo: { Id }\r\n }\r\n } = store.getState();\r\n\r\n if (pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) && !isMultiViewVisible) {\r\n const actions = [removeTournamentFromTable(data, true)];\r\n if (data.tournamentId === Id) {\r\n actions.push(resetTournamentInfo());\r\n store.dispatch(actionCreatorToGetUpcomingTournamentForPartner());\r\n }\r\n store.dispatch(batchActions(actions));\r\n setTimeout(() => {\r\n store.dispatch(removeTournamentFromTable(data));\r\n }, 1500);\r\n }\r\n}\r\n\r\nexport function removeUpcomingTournamentHandler(/*data*/) {\r\n //TODO: write upcoming tournament remove functionality\r\n // const { updated } = store.getState().customTournamentsData;\r\n // store.dispatch(updateCustomTournaments(!updated));\r\n}\r\n\r\nexport function addTournamentGamesHandler(data) {\r\n const {\r\n tournamentHallData: { tournamentInfo },\r\n gameLauncherData: { isMultiViewVisible }\r\n } = store.getState();\r\n const { pathname } = window.location;\r\n\r\n if (\r\n pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) &&\r\n !isMultiViewVisible &&\r\n tournamentInfo &&\r\n data.TournamentId === tournamentInfo.Id\r\n ) {\r\n const { Games } = data;\r\n store.dispatch(batchActions([addTournamentGames(Games), updateTournamentTablesCount(Games && Games.length)]));\r\n }\r\n}\r\n\r\nexport function removeTournamentGameHandler(data) {\r\n const { GameId, TournamentId } = data;\r\n const {\r\n tournamentHallData: { tournamentInfo },\r\n gameLauncherData: { isMultiViewVisible }\r\n } = store.getState();\r\n const { pathname } = window.location;\r\n\r\n if (\r\n pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) &&\r\n !isMultiViewVisible &&\r\n tournamentInfo &&\r\n TournamentId === tournamentInfo.Id\r\n ) {\r\n store.dispatch(batchActions([removeTournamentGame(GameId), updateTournamentTablesCount(-1)]));\r\n }\r\n}\r\n\r\nexport function showTournamentGameNotificationHandler(data) {\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n if (isMultiViewVisible || IsMobileLogin) {\r\n showNotification(, {\r\n autoClose: GAME_OFFER_DURATION,\r\n id: data.GameId,\r\n containerId: \"custom-notification\"\r\n });\r\n } else {\r\n store.dispatch(openPopup(POPUP_NAMES.TOURNAMENT_STARTED, data, data.GameId));\r\n }\r\n}\r\n\r\nexport function openTourSkipPopupHandler(tournamentId, tournamentName, tourOrder) {\r\n const data = { tournamentId, tournamentName, tourOrder };\r\n if (!IsMobileLogin || !document[HIDDEN]) {\r\n store.dispatch(openPopup(POPUP_NAMES.TOURNAMENT_SKIPPED, data, tournamentId));\r\n }\r\n}\r\n\r\nexport function openTournamentCanceledPopupHandler(gameId) {\r\n if (!IsMobileLogin || !document[HIDDEN]) {\r\n store.dispatch(openPopup(POPUP_NAMES.TOURNAMENT_CANCELED, { gameId }, gameId));\r\n }\r\n}\r\n\r\nexport function gameScoreChangeHandler(GameId, GameTableId, FirstPlayerScore, SecondPlayerScore) {\r\n const { tournamentInfo } = store.getState().tournamentHallData;\r\n const { pathname } = window.location;\r\n const gameWithChangedScores = { GameId, GameTableId, FirstPlayerScore, SecondPlayerScore, scoreChange: true };\r\n\r\n if (pathname.includes(ROUTES.GAME_HALL)) {\r\n store.dispatch(updateGameTable(gameWithChangedScores));\r\n }\r\n\r\n if (\r\n pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) &&\r\n tournamentInfo.Id &&\r\n tournamentInfo.selectedTournamentGames &&\r\n tournamentInfo.selectedTournamentGames.some(g => g.Id === GameId)\r\n ) {\r\n store.dispatch(changeTournamentGameScore({ GameId, FirstPlayerScore, SecondPlayerScore }));\r\n }\r\n}\r\n\r\nexport function openRevancheRequestPopupHandler(gameId, gameTableId, isWinner, takeRiskAllowed, popupType = 1) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n\r\n if (!IsMobileLogin && startedGamesUrls.length < GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n store.dispatch(\r\n batchActions([\r\n closePopup(gameTableId),\r\n openPopup(\r\n POPUP_NAMES[`REVANCHE_OFFER_V${popupType}`],\r\n { gameId, gameTableId, isWinner, takeRiskAllowed },\r\n gameTableId\r\n )\r\n ])\r\n );\r\n }\r\n}\r\n\r\nexport function openRevancheDeclinePopupHandler(gameId, gameTableId, popupType = 1) {\r\n const { startedGamesUrls } = store.getState().gameLauncherData;\r\n\r\n if (!IsMobileLogin && startedGamesUrls.length < GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n store.dispatch(closePopup(gameTableId));\r\n store.dispatch(openPopup(POPUP_NAMES[`REVANCHE_DECLINED_V${popupType}`], { gameId, gameTableId }, gameTableId));\r\n }\r\n}\r\n\r\nexport function updateJackpotsDataHandler(networkId, data) {\r\n if (data && data.length) {\r\n const {\r\n appData: {\r\n networksData: { networks },\r\n Model: { JackpotsDataJson: jackpotsData }\r\n }\r\n } = store.getState();\r\n\r\n const resultData = data.map((item, index) => {\r\n const currentNetwork = networks[data[index].NetworkId];\r\n const { Rate, DisplayedPrecision } = (currentNetwork && currentNetwork.CurrencyRateForPlayer) || {};\r\n item.Prize = convertCoinToCurrency(item.PrizeInCoin, Rate, DisplayedPrecision);\r\n for (let i = 0; i < jackpotsData.length; i++) {\r\n if (jackpotsData[i].Id === item.Id) {\r\n item.BiggestWin = jackpotsData[i].BiggestWin;\r\n item.JackpotTemplateId = jackpotsData[i].JackpotTemplateId;\r\n item.LastWin = jackpotsData[i].LastWin;\r\n item.MinBet = jackpotsData[i].MinBet;\r\n item.MinBetInCoin = jackpotsData[i].MinBetInCoin;\r\n item.TotalWinnersCount = jackpotsData[i].TotalWinnersCount;\r\n break;\r\n }\r\n }\r\n return item;\r\n });\r\n store.dispatch(updateJackpotData(resultData));\r\n }\r\n}\r\n\r\nexport function openJackpotWinningPopupForWinnersHandler(\r\n gameId,\r\n jackpotName,\r\n winnerPrizeInCoin,\r\n winnerPrize,\r\n winnerCurrencyId,\r\n newJackpotObj\r\n) {\r\n const data = {\r\n jackpotName,\r\n winnerPrizeInCoin,\r\n winnerPrize,\r\n winnerCurrencyId\r\n };\r\n const { isMultiViewVisible } = store.getState().gameLauncherData;\r\n if (IsMobileLogin || isMultiViewVisible) {\r\n onCloseHandler(jackpotName);\r\n showNotification(, {\r\n autoClose: JACKPOT_NOTIFICATION_DURATION,\r\n id: jackpotName,\r\n containerId: \"custom-notification\"\r\n });\r\n } else {\r\n store.dispatch(openPopup(POPUP_NAMES.JACKPOT_WIN, data, jackpotName));\r\n }\r\n store.dispatch(replaceItemInJackpotData(newJackpotObj));\r\n}\r\n\r\nexport function openJackpotPopupForOthersHandler(\r\n jackpotName,\r\n amountInCoin,\r\n winnerNick,\r\n opponentNick,\r\n unusedParam,\r\n networkId,\r\n newJackpotObj\r\n) {\r\n const {\r\n appData: {\r\n networksData: { networks },\r\n isCoin,\r\n Model: { PlayerCurrencyId }\r\n },\r\n gameLauncherData: { isMultiViewVisible }\r\n } = store.getState();\r\n const { MinBetInCoin, PrizeInCoin, BiggestWin, LastWin } = newJackpotObj;\r\n const { Rate, DisplayedPrecision } = (networks[networkId] && networks[networkId].CurrencyRateForPlayer) || {};\r\n\r\n let amount = amountInCoin;\r\n let currency = COIN_LONG;\r\n\r\n if (!isCoin) {\r\n amount = convertCoinToCurrency(amountInCoin, Rate, DisplayedPrecision);\r\n newJackpotObj.MinBet = convertCoinToCurrency(MinBetInCoin, Rate, DisplayedPrecision);\r\n newJackpotObj.Prize = convertCoinToCurrency(PrizeInCoin, Rate, DisplayedPrecision);\r\n newJackpotObj.BiggestWin.Prize = convertCoinToCurrency(BiggestWin.PrizeInCoin, Rate, DisplayedPrecision);\r\n newJackpotObj.LastWin.Prize = convertCoinToCurrency(LastWin.PrizeInCoin, Rate, DisplayedPrecision);\r\n currency = PlayerCurrencyId;\r\n }\r\n\r\n const data = {\r\n jackpotName,\r\n amount,\r\n winnerNick,\r\n opponentNick,\r\n currency\r\n };\r\n if (IsMobileLogin || isMultiViewVisible) {\r\n onCloseHandler(jackpotName);\r\n showNotification(, {\r\n autoClose: JACKPOT_NOTIFICATION_DURATION,\r\n id: jackpotName,\r\n containerId: \"custom-notification\"\r\n });\r\n } else {\r\n store.dispatch(openPopup(POPUP_NAMES.JACKPOT_INFO, data, jackpotName));\r\n }\r\n\r\n store.dispatch(replaceItemInJackpotData(newJackpotObj));\r\n}\r\n\r\nexport function cancelTournamentKingTemplateHandler(id) {\r\n if (id && window.location.pathname.includes(ROUTES.TOURNAMENT_KING)) {\r\n const { selectedTournamentKingId } = store.getState().tournamentKingData;\r\n const actions = [];\r\n if (selectedTournamentKingId === id) {\r\n actions.push(cancelSelectedTournamentKing());\r\n }\r\n actions.push(updateTournamentKingDataItem(id));\r\n store.dispatch(batchActions(actions));\r\n }\r\n}\r\n\r\nexport function updateTournamentKingPlayersPointsHandler(tournamentObj) {\r\n if (tournamentObj && window.location.pathname.includes(ROUTES.TOURNAMENT_KING)) {\r\n const { PromotionId, PlayerPointsModels } = tournamentObj; // NetworkId,\r\n const { selectedTournamentKingId, currentPlayerData } = store.getState().tournamentKingData;\r\n if (PromotionId === selectedTournamentKingId) {\r\n if (PlayerPointsModels) {\r\n PlayerPointsModels.forEach(item => {\r\n const { Point, PlayerNickName } = item;\r\n if (currentPlayerData.PlayerNickName === PlayerNickName) {\r\n store.dispatch(updateTKCurrentPlayer(Point));\r\n }\r\n store.dispatch(updateTournamentKingsLeaderBoardIPlayerPoint({ Point, PlayerNickName }));\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function addAutoJoinGameHandler(data) {\r\n store.dispatch(addAutoJoinGame(data));\r\n}\r\n\r\nexport function updateAutoJoinTable(data) {\r\n store.dispatch(updateAutoJoinGames(data));\r\n}\r\n\r\nexport function updatePlayersParticipationQuantityHandler(data) {\r\n const { tournamentHallData, appData } = store.getState();\r\n const {\r\n tournamentInfo: { Id, Status, selectedTournamentPlayers }\r\n } = tournamentHallData;\r\n const {\r\n Model: { PlayerId }\r\n } = appData;\r\n const { pathname } = window.location;\r\n if (pathname.includes(ROUTES.TOURNAMENTS_HALL_TYPE) && Id === data.TournamentId) {\r\n const { PlayersQuantity, PlayerInfo } = data; // NetworkId,TournamentId\r\n const updatedPlayersArr = addOrRemoveTournamentPlayer(\r\n PlayerInfo,\r\n JSON.parse(JSON.stringify(selectedTournamentPlayers)),\r\n Status,\r\n PlayerId\r\n );\r\n store.dispatch(\r\n batchActions([updateTournamentPlayersQuantity(PlayersQuantity), setTournamentPlayers(updatedPlayersArr)])\r\n );\r\n }\r\n}\r\n\r\nexport function GameTableClosedByGameOfferRejectHandler(gameTableId) {\r\n let inactiveTableMessage = t(\"strInactiveTableMessage\");\r\n let text = inactiveTableMessage.replace(\"[No]\", gameTableId);\r\n\r\n if (IsMobileLogin) {\r\n onCloseHandler(`rejectedTable${gameTableId}`);\r\n showNotification(\r\n ,\r\n {\r\n autoClose: NOTIFICATION_DURATION,\r\n id: `rejectedTable${gameTableId}`,\r\n containerId: \"custom-notification\"\r\n }\r\n );\r\n } else {\r\n store.dispatch(\r\n openPopup(\r\n POPUP_NAMES.INACTIVE_TABLE,\r\n { gameTableId: `rejectedTable${gameTableId}`, text },\r\n `rejectedTable${gameTableId}`\r\n )\r\n );\r\n }\r\n}\r\n\r\nexport function preventGameTableCreationHandler(data) {\r\n store.dispatch(addUnderConstructionInfo(data));\r\n}\r\n\r\nexport function underConstructionHandler(data) {\r\n store.dispatch(toggleUnderConstruction(data));\r\n}\r\n\r\nexport function endUnderConstructionHandler(data) {\r\n store.dispatch(removeUnderConstructionInfo(data));\r\n}\r\n\r\nexport const cancelRakeRaceTournament = id => {\r\n store.dispatch(cancelRakeRace(id));\r\n};\r\n\r\nexport const finishRakeRaceTournament = id => {\r\n store.dispatch(finishRakeRace(id));\r\n};\r\nexport const startRakeRaceTournament = id => {\r\n store.dispatch(startRakeRace(id));\r\n};\r\n","import { hubConnection } from \"signalr-no-jquery\";\r\nimport { APP_URL, PartnerId, HIDDEN, VISIBILITY_CHANGE } from \"../../constants\";\r\nimport {\r\n addGameTableHandler,\r\n updateGameTableHandler,\r\n removeGameTableHandler,\r\n makeOwnerGameTableBusyHandler,\r\n makeOwnerGameTableFreeHandler,\r\n startGameHandler,\r\n gameOverHandler,\r\n addTournamentHandler,\r\n updateTournamentHandler,\r\n removeTournamentHandler,\r\n openRevancheRequestPopupHandler,\r\n openRevancheDeclinePopupHandler,\r\n addTournamentGamesHandler,\r\n removeTournamentGameHandler,\r\n gameScoreChangeHandler,\r\n showTournamentGameNotificationHandler,\r\n removeUpcomingTournamentHandler,\r\n setRebuyAmountForPlayerHandler,\r\n updateTournamentKingPlayersPointsHandler,\r\n cancelTournamentKingTemplateHandler,\r\n updateAutoJoinTable,\r\n addAutoJoinGameHandler,\r\n updatePlayersParticipationQuantityHandler,\r\n openJackpotWinningPopupForWinnersHandler,\r\n openJackpotPopupForOthersHandler,\r\n updateJackpotsDataHandler,\r\n openTourSkipPopupHandler,\r\n openTournamentCanceledPopupHandler,\r\n GameTableClosedByGameOfferRejectHandler,\r\n cancelRakeRaceTournament,\r\n finishRakeRaceTournament,\r\n startRakeRaceTournament,\r\n preventGameTableCreationHandler,\r\n underConstructionHandler,\r\n endUnderConstructionHandler,\r\n startDemoGameHandler,\r\n demoGameOverHandler\r\n} from \"./dataHandlerFunctions\";\r\nimport { invoke } from \"./socketRequests\";\r\n// import { isIOS } from \"../../helpers/utility\";\r\nimport {\r\n getCurrentPageData,\r\n // setCurrentPageLoaderState,\r\n toggleALLButtonsDisabledState\r\n} from \"../../helpers/localHelperFunctions\";\r\n\r\nexport let socketListener = null;\r\nlet connection;\r\nlet currentDataGroups = null;\r\nlet connected = false;\r\nlet disconnected = false;\r\n\r\nfunction start(connection, callBack) {\r\n connection\r\n .start({ pingInterval: 15000 })\r\n .done(() => {\r\n // console.log(\"Now connected, connection ID = \" + connection.id);\r\n disconnected && getCurrentPageData();\r\n connected = true;\r\n disconnected = false;\r\n callBack && callBack();\r\n })\r\n .fail(function() {\r\n setTimeout(() => start(connection, callBack), 1000);\r\n console.log(\"Could not connect\");\r\n });\r\n}\r\n\r\nconst addSocketListeners = () => {\r\n socketListener.on(\"addGameTable\", addGameTableHandler);\r\n socketListener.on(\"updateGameTable\", updateGameTableHandler);\r\n socketListener.on(\"removeGameTable\", removeGameTableHandler);\r\n socketListener.on(\"makeOwnerGameTableBusy\", makeOwnerGameTableBusyHandler);\r\n socketListener.on(\"makeOwnerGameTableFree\", makeOwnerGameTableFreeHandler);\r\n socketListener.on(\"startGame\", startGameHandler);\r\n socketListener.on(\"gameOver\", gameOverHandler);\r\n socketListener.on(\"addTournament\", addTournamentHandler);\r\n socketListener.on(\"updateTournament\", updateTournamentHandler);\r\n socketListener.on(\"removeTournament\", removeTournamentHandler);\r\n socketListener.on(\"removeUpcomingTournament\", removeUpcomingTournamentHandler);\r\n socketListener.on(\"openRevancheRequestPopup\", openRevancheRequestPopupHandler);\r\n socketListener.on(\"openRevancheDeclinePopup\", openRevancheDeclinePopupHandler);\r\n socketListener.on(\"addTournamentGames\", addTournamentGamesHandler);\r\n socketListener.on(\"removeTournamentGame\", removeTournamentGameHandler);\r\n socketListener.on(\"showTournamentGameNotification\", showTournamentGameNotificationHandler);\r\n socketListener.on(\"openTourSkipPopup\", openTourSkipPopupHandler);\r\n socketListener.on(\"openTournamentCanceledPopup\", openTournamentCanceledPopupHandler);\r\n socketListener.on(\"gameScoreChange\", gameScoreChangeHandler);\r\n socketListener.on(\"updateJackpotsData\", updateJackpotsDataHandler);\r\n socketListener.on(\"openJackpotWinningPopupForWinners\", openJackpotWinningPopupForWinnersHandler);\r\n socketListener.on(\"openJackpotPopupForOthers\", openJackpotPopupForOthersHandler);\r\n socketListener.on(\"setRebuyAmountForPlayer\", setRebuyAmountForPlayerHandler);\r\n socketListener.on(\"CancelTournamentKingTemplate\", cancelTournamentKingTemplateHandler);\r\n socketListener.on(\"UpdateTournamentKingPlayersPoints\", updateTournamentKingPlayersPointsHandler);\r\n socketListener.on(\"updatePlayersParticipationQuantity\", updatePlayersParticipationQuantityHandler);\r\n socketListener.on(\"addAutoJoinTable\", addAutoJoinGameHandler);\r\n socketListener.on(\"updateAutoJoinTable\", updateAutoJoinTable);\r\n socketListener.on(\"GameTableClosedByGameOfferReject\", GameTableClosedByGameOfferRejectHandler);\r\n socketListener.on(\"CancelRakeRaceTournament\", cancelRakeRaceTournament);\r\n socketListener.on(\"FinishRakeRaceTournament\", finishRakeRaceTournament);\r\n socketListener.on(\"StartRakeRaceTournament\", startRakeRaceTournament);\r\n socketListener.on(\"preventGameTableCreation\", preventGameTableCreationHandler);\r\n socketListener.on(\"underConstruction\", underConstructionHandler);\r\n socketListener.on(\"endUnderConstruction\", endUnderConstructionHandler);\r\n socketListener.on(\"StartDemoGame\", startDemoGameHandler);\r\n socketListener.on(\"demoGameOver\", demoGameOverHandler);\r\n};\r\n\r\nconst subscribeToDataGroups = dataGroups => {\r\n const dataToUnsubscribe = currentDataGroups.filter(i => !dataGroups.includes(i));\r\n const dataTosubscribe = dataGroups.filter(i => !currentDataGroups.includes(i));\r\n dataToUnsubscribe.length && invoke(\"UnsubscribeFromDataGroup\", dataToUnsubscribe);\r\n dataTosubscribe.length && invoke(\"SubscribeToDataGroup\", dataTosubscribe);\r\n};\r\n\r\nfunction visibilityChangeHandler() {\r\n if (!document[HIDDEN]) {\r\n console.log(\"visibility change\");\r\n connected = false;\r\n disconnected = true;\r\n if (connection) {\r\n connection.stop();\r\n toggleALLButtonsDisabledState(true);\r\n start(connection);\r\n }\r\n }\r\n}\r\n\r\nconst qs = {};\r\nexport default function startSignalR(callBack, token, dataGroups = currentDataGroups, connectBeforeInvoke) {\r\n if (!currentDataGroups || JSON.stringify(currentDataGroups) !== JSON.stringify(dataGroups) || connectBeforeInvoke) {\r\n dataGroups && (qs.DataGroups = JSON.stringify(dataGroups));\r\n if (!connected) {\r\n token && (qs.accessToken = `Bearer ${token}`);\r\n PartnerId && (qs.PartnerId = PartnerId);\r\n connection = hubConnection(`${APP_URL}`);\r\n connection.qs = qs;\r\n socketListener = connection.createHubProxy(\"GzHub\");\r\n addSocketListeners();\r\n connection.reconnected(() => {\r\n console.log(\"reconnected\");\r\n getCurrentPageData();\r\n });\r\n connection.reconnecting(() => {\r\n console.log(\"reconnecting\");\r\n toggleALLButtonsDisabledState(true);\r\n });\r\n connection.disconnected(() => {\r\n if (!disconnected) {\r\n console.log(\"disconnected\");\r\n connected = false;\r\n disconnected = true;\r\n start(connection, callBack);\r\n }\r\n });\r\n start(connection, callBack);\r\n } else {\r\n dataGroups && subscribeToDataGroups(dataGroups);\r\n callBack && callBack();\r\n }\r\n currentDataGroups = dataGroups;\r\n } else {\r\n callBack && callBack();\r\n }\r\n}\r\n\r\ndocument.addEventListener(VISIBILITY_CHANGE, visibilityChangeHandler, false);\r\n","import { matchPath } from \"react-router-dom\";\r\n\r\nexport default function useRouteParams(path, wholePath) {\r\n const { params } =\r\n matchPath(wholePath || window.location.pathname, {\r\n path: path,\r\n exact: false,\r\n strict: false\r\n }) || {};\r\n\r\n return params || {};\r\n}\r\n","import React, { memo } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { IsMobileLogin, SHOW_TO_GUEST, WITH_RATING } from \"../../constants\";\r\nimport { separateCamelCase } from \"../../helpers/utility\";\r\nimport Tooltip from \"../Tooltip\";\r\nimport t from \"../../helpers/translation\";\r\n\r\nfunction ConventionsBlock({ conventions }) {\r\n return (\r\n
\r\n {Object.keys(conventions).map(item => {\r\n if (item !== WITH_RATING && typeof conventions[item] === \"boolean\") {\r\n return item === SHOW_TO_GUEST\r\n ? !conventions[item] && (\r\n
\r\n \r\n {!IsMobileLogin && (\r\n \r\n {separateCamelCase(t(`convention${item}`, \"ConventionsRes\"))}\r\n \r\n )}\r\n
\r\n )\r\n : conventions[item] && (\r\n
\r\n \r\n {!IsMobileLogin && (\r\n \r\n {separateCamelCase(t(`convention${item}`, \"ConventionsRes\"))}\r\n \r\n )}\r\n
\r\n );\r\n }\r\n })}\r\n
\r\n );\r\n}\r\n\r\nConventionsBlock.propTypes = {\r\n conventions: PropTypes.oneOfType([PropTypes.object, PropTypes.array])\r\n};\r\n\r\nConventionsBlock.defaultProps = {\r\n conventions: {}\r\n};\r\n\r\nexport default memo(ConventionsBlock, (prev, next) => JSON.stringify(prev) === JSON.stringify(next));\r\n","import React from \"react\";\r\nimport Button from \"../../Shared/Button\";\r\nimport classNames from \"classnames\";\r\nimport { ERROR_CODE, INFO_CODE, SUCCESS_CODE } from \"../../../constants\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nexport default function InfoNotification({ data, onCloseHandler }) {\r\n const { id, type, message } = data;\r\n\r\n return (\r\n // for success notification add .success class\r\n // for error or network maintenance add .danger class\r\n \r\n
\r\n
\r\n {/*for success notification add .icon-Success class*/}\r\n {/*for error, network maintenance, and general add .icon-InfoInsideBg class*/}\r\n \r\n

{message}

\r\n
\r\n
\r\n {\r\n onCloseHandler(id);\r\n }}\r\n />\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nInfoNotification.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired\r\n};\r\n","import { APP_URL, IsMobileLogin, lang, PartnerId, VALIDATION_COOKIE_NAME } from \"../../constants\";\r\nimport { getUrlDynamic, showErrorNotification } from \"../../helpers/localHelperFunctions\";\r\nimport { store } from \"../../store\";\r\nimport { getValidationCookie } from \"./index\";\r\n\r\nconst createUrl = (arg, query, appConfigUrlKey) => {\r\n let appUrl = APP_URL;\r\n\r\n if (appConfigUrlKey) {\r\n appUrl = getUrlDynamic(appConfigUrlKey);\r\n }\r\n\r\n let url = `${appUrl}/api/${arg}`;\r\n if (query) {\r\n for (let key in query) {\r\n url = `${url}&${key}=${query[key]}`;\r\n }\r\n url = url.replace(\"&\", \"?\");\r\n }\r\n return url;\r\n};\r\n\r\nconst makeAPIRequest = (url, options = {}) => {\r\n const { token } = store.getState().appData;\r\n const { method, identityUrl, isAutoJoin, body, refreshToken, identityToken, query, appConfigUrlKey } = options;\r\n const requestURL = identityUrl || createUrl(url, query, appConfigUrlKey);\r\n\r\n const fetchOptions = {\r\n method: method || \"GET\",\r\n headers: {\r\n PartnerSiteId: PartnerId,\r\n lang: lang,\r\n \"Content-Type\": `application/${identityUrl ? \"x-www-form-urlencoded\" : \"json\"}`,\r\n EntryType: IsMobileLogin ? \"mobile\" : \"desktop\",\r\n isAutoJoin: isAutoJoin || false,\r\n [VALIDATION_COOKIE_NAME]: getValidationCookie()\r\n }\r\n };\r\n\r\n if (body) fetchOptions.body = identityUrl ? body : JSON.stringify(body);\r\n if (!refreshToken)\r\n fetchOptions.headers.Authorization = identityToken || token ? `Bearer ${identityToken || token}` : \"\";\r\n\r\n return fetch(requestURL, fetchOptions)\r\n .then(data => data.json())\r\n .then(data => {\r\n data.Error && showErrorNotification(data.Error);\r\n return new Promise(resolve => {\r\n resolve(data);\r\n });\r\n })\r\n .catch(err => console.error(err));\r\n};\r\n\r\nexport const makeAPIGetRequest = (url, data) => {\r\n const options = data || {};\r\n options.method = \"GET\";\r\n return makeAPIRequest(url, options);\r\n};\r\n\r\nexport const makeAPIPostRequest = (url, data) => {\r\n const options = data || {};\r\n options.method = \"POST\";\r\n return makeAPIRequest(url, options);\r\n};\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport classNames from \"classnames\";\r\n\r\nfunction Tooltip({ children, hasCaret, tooltipDanger, tooltipSuccess, tooltipBottomRight }) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\nexport default Tooltip;\r\n\r\nTooltip.propTypes = {\r\n children: PropTypes.any,\r\n hasCaret: PropTypes.bool,\r\n tooltipSuccess: PropTypes.bool,\r\n tooltipDanger: PropTypes.bool,\r\n tooltipBottomRight: PropTypes.bool\r\n};\r\n\r\nTooltip.defaultProps = {\r\n children: [],\r\n hasCaret: false,\r\n tooltipSuccess: false,\r\n tooltipDanger: false,\r\n tooltipBottomRight: false\r\n};\r\n","import { COIN, partnerFiltersData } from \"../../constants\";\r\n\r\nexport function getBalanceInfo(state) {\r\n const {\r\n [partnerFiltersData]: { selectedNetworkIds },\r\n appData: {\r\n isCoin,\r\n balance,\r\n networksData,\r\n Model: { PlayerCurrencyId, ShowWithCoin }\r\n }\r\n } = state;\r\n\r\n return {\r\n isCoin,\r\n balance,\r\n ShowWithCoin,\r\n PlayerCurrencyId,\r\n networkId: parseInt(selectedNetworkIds[0] || (networksData && Object.keys(networksData.networks)[0]))\r\n };\r\n}\r\n\r\nexport function getGameHallInfo(state) {\r\n const {\r\n appData: {\r\n isCoin,\r\n balance,\r\n loggedIn,\r\n Model: { isLobbyV2, PlayerCurrencyId, PlayerId, PartnersAllGameKinds, currentGameKind },\r\n networksData: { networks },\r\n appStatusInfo: { disableBtnWhileWSReconnecting }\r\n },\r\n gameHallData: { games, disabledGames }\r\n } = state;\r\n\r\n return {\r\n isCoin,\r\n balance,\r\n loggedIn,\r\n PlayerId,\r\n networks,\r\n ...games,\r\n isLobbyV2,\r\n filtersData: state[partnerFiltersData],\r\n PlayerCurrencyId,\r\n PartnersAllGameKinds,\r\n disableBtnWhileWSReconnecting,\r\n currentGameKind,\r\n disabledGames\r\n };\r\n}\r\n\r\nexport function getGameHallFiltersData(state) {\r\n const {\r\n appData,\r\n [partnerFiltersData]: {\r\n selectedGameTypesIds,\r\n selectedScores,\r\n selectedConventions,\r\n selectedNetworkIds,\r\n selectedMoveTimes,\r\n selectedExtraTimes,\r\n minStake,\r\n maxStake\r\n }\r\n } = state;\r\n const {\r\n networksData: {\r\n networks,\r\n possibleGameTypes,\r\n possibleGamePoints,\r\n possibleMoveTimes,\r\n possibleExtraTimes,\r\n possibleConventionsNames\r\n },\r\n Model: { isLobbyV2 },\r\n filtersDisabled\r\n } = appData;\r\n return {\r\n networks,\r\n isLobbyV2,\r\n filtersDisabled,\r\n possibleGameTypes,\r\n possibleMoveTimes,\r\n possibleGamePoints,\r\n possibleExtraTimes,\r\n possibleConventionsNames,\r\n selectedNetworkIds,\r\n selectedGameTypesIds,\r\n selectedScores,\r\n selectedMoveTimes,\r\n selectedExtraTimes,\r\n selectedConventions,\r\n minStake,\r\n maxStake\r\n };\r\n}\r\n\r\nexport function getLauncherGames(state) {\r\n const {\r\n appData: {\r\n Model: { PartnersAllGameKinds, loadAutoJoinLobby }\r\n },\r\n gameLauncherData: { games },\r\n autoJoinData: { GameTables }\r\n } = state;\r\n const { myStartedGames, myNotStartedGames, notStartedGames, startedGames, gamesTotalCount } = games;\r\n return {\r\n gamesTotalCount,\r\n PartnersAllGameKinds,\r\n games: loadAutoJoinLobby\r\n ? GameTables.flatMap(i => i)\r\n : myStartedGames.concat(myNotStartedGames, notStartedGames, startedGames)\r\n };\r\n}\r\n\r\nexport function getTournamentsHallInfo(state) {\r\n const {\r\n appData: {\r\n isCoin,\r\n loggedIn,\r\n Model: { PlayerCurrencyId, PartnersAllGameKinds },\r\n appStatusInfo: { disableBtnWhileWSReconnecting }\r\n },\r\n tournamentHallData: { tournaments, loaderInTournaments, tournamentInfo, disabledTournaments },\r\n [partnerFiltersData]: { selectedGameKindIds }\r\n } = state;\r\n if (tournaments) {\r\n const {\r\n startedTournaments,\r\n finishedTournaments,\r\n tournamentsTotalCount,\r\n notStartedTournaments,\r\n myNotStartedTournaments\r\n } = tournaments;\r\n return {\r\n tournamentInfoId: tournamentInfo.Id,\r\n isCoin,\r\n loggedIn,\r\n selectedGameKindIds,\r\n PartnersAllGameKinds,\r\n disabledTournaments,\r\n loaderInTournaments,\r\n disableBtnWhileWSReconnecting,\r\n tournamentsTotalCount: tournamentsTotalCount,\r\n PlayerCurrencyId: isCoin ? COIN : PlayerCurrencyId,\r\n tournaments: myNotStartedTournaments.concat(startedTournaments, notStartedTournaments, finishedTournaments)\r\n };\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/offer.92261382.ogg\";","module.exports = __webpack_public_path__ + \"static/media/gameOffer_tournamentStart.7c3d26a7.mp3\";","import React, { useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { GAMES_COUNT_IN_GAME_LAUNCHER, IsMobileLogin, REFRESH_GAME } from \"../../../constants\";\r\nimport sendRequest from \"../../../connection/api\";\r\nimport Button from \"../../Shared/Button\";\r\nimport {\r\n getRefreshGameReqBody,\r\n openGame,\r\n openGameAfterWindowLoaded,\r\n openNewGameWindow\r\n} from \"../../../helpers/localHelperFunctions\";\r\nimport t from \"../../../helpers/translation\";\r\nimport offerSong from \"../../../assets/audio/offer.ogg\";\r\nimport waitingMusic from \"../../../assets/audio/gameOffer_tournamentStart.mp3\";\r\n\r\nconst TournamentStartedNotification = ({ game, startedGamesUrls, onCloseHandler }) => {\r\n const audioElement = useRef({});\r\n const { GameId, /*GameTypeId,*/ TournamentName, GameKindId } = game;\r\n\r\n const play = () => {\r\n audioElement.current.pause();\r\n onCloseHandler(GameId);\r\n if (IsMobileLogin || startedGamesUrls.length >= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n openNewGameWindow(GameId, GameKindId, false, false, true);\r\n }\r\n sendRequest(REFRESH_GAME, getRefreshGameReqBody(GameId, false)).then(\r\n openGameAfterWindowLoaded(GameId, openGame(GameId, false, true))\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t(\"strTournamentIsStarting\")}\r\n
\r\n

\r\n {TournamentName}\r\n {/*{t(TOURNAMENT_TYPE_TITLE_ID + Type)}*/}\r\n {/*{t(GAME_KIND_TITLE_ID + GameKindId)}*/}\r\n

\r\n
\r\n
\r\n onCloseHandler(GameId)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nTournamentStartedNotification.propTypes = {\r\n game: PropTypes.object.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired,\r\n startedGamesUrls: PropTypes.array.isRequired\r\n};\r\n\r\nconst mapStateToProps = state => ({ startedGamesUrls: state.gameLauncherData.startedGamesUrls });\r\n\r\nexport default connect(mapStateToProps)(TournamentStartedNotification);\r\n","module.exports = __webpack_public_path__ + \"static/media/belote.80ae32fc.png\";","module.exports = __webpack_public_path__ + \"static/media/backgammon.b92c611d.png\";","module.exports = __webpack_public_path__ + \"static/media/domino.d674da0e.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/pasoor.ee9db906.png\";","module.exports = __webpack_public_path__ + \"static/media/dominoes.fc018bab.png\";","module.exports = __webpack_public_path__ + \"static/media/hokm.db0f3262.png\";","import React, { memo } from \"react\";\r\nimport { COIN_LONG } from \"../../../constants\";\r\nimport PropTypes from \"prop-types\";\r\nimport classNames from \"classnames\";\r\n\r\nfunction ToggleSwitch(props) {\r\n const {\r\n PlayerCurrencyId,\r\n isCoin,\r\n isBalance,\r\n changeHandler,\r\n checked,\r\n firstNameValue,\r\n SecondNameValue,\r\n names,\r\n label,\r\n uniqueId\r\n } = props;\r\n const smartChecked = isBalance ? isCoin : names ? !props[names[0]].input.value : checked;\r\n\r\n const customChangeHandler = e => {\r\n const { checked } = e.target;\r\n if (names) {\r\n props[names[0]].input.onChange(!checked ? firstNameValue : \"\");\r\n props[names[1]].input.onChange(!checked ? SecondNameValue : \"\");\r\n } else {\r\n changeHandler(checked);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {label &&

{label}

}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nToggleSwitch.propTypes = {\r\n PlayerCurrencyId: PropTypes.string,\r\n label: PropTypes.string,\r\n changeHandler: PropTypes.func,\r\n names: PropTypes.array,\r\n isCoin: PropTypes.bool,\r\n checked: PropTypes.bool,\r\n isBalance: PropTypes.bool,\r\n uniqueId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n firstNameValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n SecondNameValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\r\n};\r\n\r\nToggleSwitch.defaultProps = {\r\n PlayerCurrencyId: \"\",\r\n names: null,\r\n label: null,\r\n uniqueId: null,\r\n firstNameValue: null,\r\n SecondNameValue: null,\r\n changeHandler: null,\r\n isBalance: false,\r\n checked: false,\r\n isCoin: false\r\n};\r\n\r\nexport default memo(ToggleSwitch);\r\n","module.exports = __webpack_public_path__ + \"static/media/21.b82b06da.png\";","module.exports = __webpack_public_path__ + \"static/media/pasoor.4f20abf9.png\";","module.exports = __webpack_public_path__ + \"static/media/pasur.4f20abf9.png\";","module.exports = __webpack_public_path__ + \"static/media/joker.e378fd01.png\";","module.exports = __webpack_public_path__ + \"static/media/chingachoong.ae933a0f.png\";","module.exports = __webpack_public_path__ + \"static/media/minesweeper.ae73cbc5.png\";","module.exports = __webpack_public_path__ + \"static/media/penalty.64d7e69e.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/hexagon.3222083c.png\";","module.exports = __webpack_public_path__ + \"static/media/hexagon-43.a4aa529b.png\";","module.exports = __webpack_public_path__ + \"static/media/hexagon-37.b3c4caaf.png\";","module.exports = __webpack_public_path__ + \"static/media/hexagon-61.cbfc78fb.png\";","module.exports = __webpack_public_path__ + \"static/media/tournament.49971b88.png\";","import React, { useState, useRef } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { invoke } from \"../../../connection/socket/socketRequests\";\r\nimport {\r\n AGREE_FOR_GAME_WITH_OPPONENT,\r\n GAMES_COUNT_IN_GAME_LAUNCHER,\r\n IsMobileLogin,\r\n REFRESH_GAME,\r\n UN_JOIN_OPPONENT_FROM_GAME_TABLE\r\n} from \"../../../constants\";\r\nimport sendRequest from \"../../../connection/api\";\r\nimport ConventionsBlock from \"../../ConventionsBlock\";\r\nimport Button from \"../../Shared/Button\";\r\nimport {\r\n clearUnJoinTimeOutId,\r\n getGameTitle,\r\n getRefreshGameReqBody,\r\n openGame,\r\n openGameAfterWindowLoaded,\r\n openNewGameWindow\r\n} from \"../../../helpers/localHelperFunctions\";\r\nimport t from \"../../../helpers/translation\";\r\nimport offerSong from \"../../../assets/audio/offer.ogg\";\r\nimport waitingMusic from \"../../../assets/audio/gameOffer_tournamentStart.mp3\";\r\nimport { updateGameTable } from \"../../../store/actions\";\r\nimport classNames from \"classnames\";\r\n\r\nconst GameOfferNotification = ({ game, isCoin, startedGamesUrls, dispatch, onCloseHandler, reopenActiveGame }) => {\r\n const audioElement = useRef({});\r\n const [disableBtn, setDisableBtn] = useState(false);\r\n const { GameTableId, GameTypeId, GameKindId, GameBet, OpponentNickname, Conventions } = game;\r\n\r\n const play = () => {\r\n clearUnJoinTimeOutId();\r\n audioElement.current.pause();\r\n setDisableBtn(true);\r\n onCloseHandler(GameTableId);\r\n if (IsMobileLogin || startedGamesUrls.length >= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n openNewGameWindow(GameTableId, GameKindId, false, false);\r\n }\r\n\r\n let reqBody = { GameTableId, IsCoin: isCoin };\r\n let endpoint = AGREE_FOR_GAME_WITH_OPPONENT;\r\n // the under case is for reopen the active games after lobby page reload\r\n if (reopenActiveGame) {\r\n reqBody = getRefreshGameReqBody(GameTableId, true);\r\n endpoint = REFRESH_GAME;\r\n }\r\n sendRequest(endpoint, reqBody).then(openGameAfterWindowLoaded(GameTableId, openGame(GameTableId, false, true)));\r\n };\r\n\r\n const reject = () => {\r\n clearUnJoinTimeOutId();\r\n setDisableBtn(true);\r\n audioElement.current.pause();\r\n setTimeout(() => {\r\n delete game.OpponentNickname;\r\n dispatch(updateGameTable(game));\r\n });\r\n onCloseHandler(GameTableId);\r\n invoke(UN_JOIN_OPPONENT_FROM_GAME_TABLE, GameTableId);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {reopenActiveGame ? t(\"strActiveGame\") : t(\"strGameOffer\")}\r\n {\" \"}\r\n {getGameTitle(GameTypeId, GameKindId)}\r\n
\r\n

\r\n {`${t(\"strUser\")}: ${OpponentNickname}`}\r\n {`${t(\"strStake\")}: ${GameBet}`}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {Conventions && }\r\n
\r\n );\r\n};\r\n\r\nGameOfferNotification.propTypes = {\r\n game: PropTypes.object.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n startedGamesUrls: PropTypes.array.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired,\r\n dispatch: PropTypes.func.isRequired,\r\n reopenActiveGame: PropTypes.bool\r\n};\r\n\r\nGameOfferNotification.defaultProps = {\r\n reopenActiveGame: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n appData: { isCoin },\r\n gameLauncherData: { startedGamesUrls }\r\n } = state;\r\n\r\n return {\r\n isCoin,\r\n startedGamesUrls\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(GameOfferNotification);\r\n","import React, { useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { GAMES_COUNT_IN_GAME_LAUNCHER, IsMobileLogin, REFRESH_GAME } from \"../../../constants\";\r\nimport sendRequest from \"../../../connection/api\";\r\nimport ConventionsBlock from \"../../ConventionsBlock\";\r\nimport Button from \"../../Shared/Button\";\r\nimport {\r\n getGameTitle,\r\n getRefreshGameReqBody,\r\n openGame,\r\n openGameAfterWindowLoaded,\r\n openNewGameWindow\r\n} from \"../../../helpers/localHelperFunctions\";\r\nimport classNames from \"classnames\";\r\nimport t from \"../../../helpers/translation\";\r\n\r\nconst ActiveGameNotification = ({ game, isCoin, startedGamesUrls, onCloseHandler }) => {\r\n const [disablePlayBtn, setDisablePlayBtn] = useState(false);\r\n const { GameTableId, GameKindId, GameTypeId, GameBet, GameBetInCoin, Conventions, OpponentNickname } = game;\r\n\r\n const apply = () => {\r\n setDisablePlayBtn(true);\r\n if (IsMobileLogin || startedGamesUrls.length >= GAMES_COUNT_IN_GAME_LAUNCHER) {\r\n openNewGameWindow(GameTableId, GameKindId, false, false);\r\n }\r\n sendRequest(REFRESH_GAME, getRefreshGameReqBody(GameTableId, true)).then(\r\n openGameAfterWindowLoaded(GameTableId, openGame(GameTableId, true, true))\r\n );\r\n onCloseHandler(GameTableId);\r\n };\r\n\r\n const reject = () => {\r\n onCloseHandler(GameTableId);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {t(\"strActiveGame\")}\r\n {getGameTitle(GameTypeId, GameKindId)}\r\n
\r\n

\r\n {`${t(\"strUser\")}: ${OpponentNickname}`}\r\n {`${t(\"strStake\")}: ${isCoin ? GameBetInCoin : GameBet}`}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {Conventions && }\r\n
\r\n );\r\n};\r\n\r\nActiveGameNotification.propTypes = {\r\n game: PropTypes.object.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n startedGamesUrls: PropTypes.array.isRequired,\r\n onCloseHandler: PropTypes.func.isRequired,\r\n reopenActiveGame: PropTypes.bool\r\n};\r\n\r\nActiveGameNotification.defaultProps = {\r\n reopenActiveGame: false\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n const {\r\n appData: { isCoin },\r\n gameLauncherData: { startedGamesUrls }\r\n } = state;\r\n\r\n return {\r\n isCoin,\r\n startedGamesUrls\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(ActiveGameNotification);\r\n","import React, { useEffect, useCallback, memo } from \"react\";\r\nimport { COIN_LONG, IsMobileLogin } from \"../../../constants\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { getBalanceInfo } from \"../../../store/selectors\";\r\nimport ToggleSwitch from \"../ToggleSwitch\";\r\nimport classNames from \"classnames\";\r\nimport { actionCreatorForPlayerBalance, setIsCoin } from \"../../../store/actions\";\r\nimport t from \"../../../helpers/translation\";\r\nimport { numberWithThousandSeparator } from \"../../../helpers/utility\";\r\n\r\nfunction Balance({ networkId, ShowWithCoin, isCoin, dispatch, PlayerCurrencyId, balance }) {\r\n const changeCurrency = checked => {\r\n dispatch(setIsCoin(checked));\r\n };\r\n\r\n const getBalance = useCallback((networkId, isCoin) => {\r\n const body = { NetworkId: networkId, isCoin };\r\n dispatch(actionCreatorForPlayerBalance(body, balance));\r\n }, []);\r\n\r\n useEffect(() => {\r\n getBalance(networkId, isCoin);\r\n const timeOutId = setInterval(getBalance, 60000, networkId, isCoin);\r\n return () => clearTimeout(timeOutId);\r\n }, [isCoin, networkId]);\r\n\r\n return (\r\n
\r\n

\r\n {!IsMobileLogin && {t(\"strBalance\")}:}\r\n \r\n {numberWithThousandSeparator(balance, \",\")}\r\n {!ShowWithCoin && (\r\n \r\n \r\n \r\n )}\r\n \r\n

\r\n {ShowWithCoin && (\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nBalance.propTypes = {\r\n networkId: PropTypes.number.isRequired,\r\n PlayerCurrencyId: PropTypes.string,\r\n balance: PropTypes.number,\r\n ShowWithCoin: PropTypes.bool.isRequired,\r\n isCoin: PropTypes.bool.isRequired,\r\n dispatch: PropTypes.func.isRequired\r\n};\r\n\r\nBalance.defaultProps = {\r\n PlayerCurrencyId: \"\",\r\n balance: null\r\n};\r\n\r\nfunction mapStateToProps(state) {\r\n return getBalanceInfo(state);\r\n}\r\n\r\nexport default connect(mapStateToProps)(memo(Balance));\r\n","import React, { useEffect } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport t from \"../../../helpers/translation\";\r\nimport { capitalizeFirstLetter } from \"../../../helpers/localHelperFunctions\";\r\nimport Proptypes from \"prop-types\";\r\nimport { GAME_KIND_TITLE_ID, IsMobileLogin } from \"../../../constants\";\r\n\r\nexport default function RulesNav({ games, activeTabId, setActiveTabId }) {\r\n useEffect(() => {\r\n const activeRule = document.getElementById(`rule-nav-${activeTabId}`);\r\n if (IsMobileLogin && activeRule) {\r\n activeRule.scrollIntoView({ inline: \"start\" });\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nRulesNav.propTypes = {\r\n games: Proptypes.array.isRequired,\r\n activeTabId: Proptypes.number.isRequired,\r\n setActiveTabId: Proptypes.func.isRequired\r\n};\r\n","import React, { useEffect, useState, useRef } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { lang } from \"../../../constants\";\r\nimport { separateHost } from \"../../../helpers/localHelperFunctions\";\r\nimport { getUrlParams } from \"../../../helpers/utility\";\r\n\r\nexport default function RulesContent({ activeTabId }) {\r\n const [htmlContent, setHtmlContent] = useState(null);\r\n const rulesContentEl = useRef(null);\r\n const { PartnerId } = getUrlParams([\"PartnerId\"]);\r\n\r\n const isDynamicRulesUrl = process.env.REACT_APP_IS_DYNAMIC_RULES_URL === \"true\";\r\n const rulesUrl = `${process.env.REACT_APP_RULES_URL}${isDynamicRulesUrl ? separateHost() : \"\"}`;\r\n\r\n useEffect(() => {\r\n fetch(`${rulesUrl}/api/rules/getrule?gameId=${activeTabId}&language=${lang}&partnerSiteId=${PartnerId}`, {\r\n method: \"GET\"\r\n })\r\n .then(res => res.text())\r\n .then(htmlData => {\r\n setHtmlContent(htmlData);\r\n if (rulesContentEl.current) {\r\n rulesContentEl.current.scrollTop = 0;\r\n }\r\n });\r\n }, [activeTabId]);\r\n\r\n if (!htmlContent) {\r\n return null;\r\n }\r\n\r\n return
;\r\n}\r\n\r\nRulesContent.propTypes = {\r\n activeTabId: PropTypes.number.isRequired\r\n};\r\n","import React from \"react\";\r\n\r\nexport default function ConnectionIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport classNames from \"classnames\";\r\n\r\nimport ConnectionIcon from \"./ConnectionIcon\";\r\nimport { setAutJoinConnectionIsLow } from \"../../store/actions\";\r\nimport Tooltip from \"../Tooltip\";\r\nimport { IsMobileLogin } from \"../../constants\";\r\n\r\nfunction ConnectionIndicator({ connectionIsLow, setConnectionIsLow, hasTooltip, isToggled, clickHandler }) {\r\n useEffect(() => {\r\n let timerId;\r\n let connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;\r\n if (connection) {\r\n const handleConnectionChange = () => {\r\n setConnectionIsLow(connection.downlink <= 0.4);\r\n };\r\n handleConnectionChange();\r\n connection.addEventListener(\"change\", handleConnectionChange);\r\n } else {\r\n timerId = setInterval(() => {\r\n let imageAddr =\r\n \"https://upload.wikimedia.org/wikipedia/commons/b/b9/Pizigani_1367_Chart_1MB.jpg\" +\r\n \"?n=\" +\r\n Math.random();\r\n let startTime, endTime;\r\n const downloadSize = 10174706;\r\n let download = new Image();\r\n\r\n download.onload = function() {\r\n endTime = new Date().getTime();\r\n showResults();\r\n };\r\n startTime = new Date().getTime();\r\n download.src = imageAddr;\r\n\r\n function showResults() {\r\n const duration = (endTime - startTime) / 1000; //Math.round()\r\n const bitsLoaded = downloadSize * 8;\r\n const speedBps = (bitsLoaded / duration).toFixed(2);\r\n const speedKbps = (speedBps / 1024).toFixed(2);\r\n const speedMbps = (speedKbps / 1024).toFixed(2);\r\n setConnectionIsLow(speedMbps <= 3.5);\r\n }\r\n }, 120000);\r\n }\r\n return () => clearInterval(timerId);\r\n }, []);\r\n return (\r\n \r\n \r\n \r\n \r\n {hasTooltip &&\r\n !IsMobileLogin(\r\n \r\n Internet speed: 26.14 Mbps\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n connectionIsLow: state.autoJoinData.connectionIsLow\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => ({\r\n setConnectionIsLow: bool => dispatch(setAutJoinConnectionIsLow(bool))\r\n});\r\n\r\nConnectionIndicator.propTypes = {\r\n connectionIsLow: PropTypes.bool.isRequired,\r\n setConnectionIsLow: PropTypes.func.isRequired,\r\n hasTooltip: PropTypes.bool,\r\n isToggled: PropTypes.bool,\r\n clickHandler: PropTypes.func\r\n};\r\n\r\nConnectionIndicator.defaultProps = {\r\n hasTooltip: false,\r\n isToggled: false,\r\n clickHandler: null\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConnectionIndicator);\r\n","module.exports = __webpack_public_path__ + \"static/media/en-desktop.48aea7ad.png\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile.cf8edf76.png\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_baron_am.f4ceb334.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_baron_ru.ec5822fc.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_baron_en.d8020d2a.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_blot_am.addfce08.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_blot_ru.5bd8120a.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_blot_en.fda679bd.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_domino_am.efd4559c.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_domino_ru.82a7e7a6.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_domino_en.ea8d2697.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_hexagon_am.833e6682.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_hexagon_ru.a8a7ebf8.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_hexagon_en.4626f542.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_nardi_am.423b0bbb.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_nardi_ru.ccfe4627.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_nardi_en.3c6afeed.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_toto11_am.e977f854.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_toto11_ru.317c84a9.webp\";","module.exports = __webpack_public_path__ + \"static/media/Home_slider_toto11_en.a1eae135.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_baron_am.c26bcfbb.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_baron_ru.a0794b3a.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_baron_en.bdd4010f.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_blot_am.e05b09ed.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_blot_ru.9b417b94.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_blot_en.060aa102.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_domino_am.3afbe3a1.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_domino_ru.5491f299.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_domino_en.9e9a22a0.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_hexagon_am.a00c23d9.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_hexagon_ru.2d7370f9.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_hexagon_en.3a693137.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_nardi_am.2c21166c.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_nardi_ru.727f3ca2.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_nardi_en.0d502488.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_toto11_am.95a49430.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_toto11_ru.04b3d6b6.webp\";","module.exports = __webpack_public_path__ + \"static/media/mobile_toto11_en.bbc06c96.webp\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop.31ee0e4e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop1.a53401f1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop2.e6965603.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile.56b38e9a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile1.be30915c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile2.c426618a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop.0ff25dd1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop1.4def1398.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop2.ca526348.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop3.91fcebd9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop.6de5bf1f.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile.00b78f05.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop.b484e1a1.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile.6747bf76.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-desktop.aa53666a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/en-mobile.2560aba0.png\";","module.exports = __webpack_public_path__ + \"static/media/belote.db0f3262.png\";","module.exports = __webpack_public_path__ + \"static/media/chingachoong.63da258e.png\";","module.exports = __webpack_public_path__ + \"static/media/penalty.80456754.png\";","module.exports = __webpack_public_path__ + \"static/media/backgammon.a1aea7b0.png\";","module.exports = __webpack_public_path__ + \"static/media/backgammonnew.a1aea7b0.png\";","module.exports = __webpack_public_path__ + \"static/media/game21.20173e27.png\";","module.exports = __webpack_public_path__ + \"static/media/joker.2710df70.png\";","module.exports = __webpack_public_path__ + \"static/media/minesweeper.ab891f5c.png\";","module.exports = __webpack_public_path__ + \"static/media/tierce.7c9cbc9f.png\";","module.exports = __webpack_public_path__ + \"static/media/50.e7727ced.png\";","module.exports = __webpack_public_path__ + \"static/media/100.e447a777.png\";","module.exports = __webpack_public_path__ + \"static/media/4x9.ff444c4c.png\";","module.exports = __webpack_public_path__ + \"static/media/4x10.0272fc56.png\";","module.exports = __webpack_public_path__ + \"static/media/4xJ.d14a2a79.png\";","module.exports = __webpack_public_path__ + \"static/media/4xQ.b64091bc.png\";","module.exports = __webpack_public_path__ + \"static/media/4xK.e8369c92.png\";","module.exports = __webpack_public_path__ + \"static/media/4xA.66c9621e.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/maintenance.7be5f2a0.png\";","module.exports = __webpack_public_path__ + \"static/media/step1.8d2b322a.png\";","module.exports = __webpack_public_path__ + \"static/media/step2.db1a8075.png\";","module.exports = __webpack_public_path__ + \"static/media/step3.52cb63ff.png\";","module.exports = __webpack_public_path__ + \"static/media/step4.c4f0026e.png\";","module.exports = __webpack_public_path__ + \"static/media/step5.c1091be2.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/step2.ffbd556d.png\";","module.exports = __webpack_public_path__ + \"static/media/step3.39c4e9d3.png\";","module.exports = __webpack_public_path__ + \"static/media/step4.16f45b90.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/totoFavicon.dfe0b95b.ico\";","module.exports = __webpack_public_path__ + \"static/media/cannonbetFavicon.024a70c2.ico\";","module.exports = __webpack_public_path__ + \"static/media/Arianbet.7cf9f433.ico\";","module.exports = __webpack_public_path__ + \"static/media/Marcbet.c072e10d.ico\";","module.exports = __webpack_public_path__ + \"static/media/Novinbet.59277a37.ico\";","module.exports = __webpack_public_path__ + \"static/media/winsport.fb371353.ico\";","module.exports = __webpack_public_path__ + \"static/media/Irbet365.ec741a60.ico\";","module.exports = __webpack_public_path__ + \"static/media/Onexfa.39fd7ccc.ico\";","module.exports = __webpack_public_path__ + \"static/media/Takbet.b83c1200.ico\";","module.exports = __webpack_public_path__ + \"static/media/Betfa.e723c980.ico\";","module.exports = __webpack_public_path__ + \"static/media/Irtoto.d0e210d9.ico\";","module.exports = __webpack_public_path__ + \"static/media/Manotobet.cc859fa0.ico\";","module.exports = __webpack_public_path__ + \"static/media/cyrusbet.95b4fbc7.ico\";","module.exports = __webpack_public_path__ + \"static/media/maxbet.a202b226.ico\";","module.exports = __webpack_public_path__ + \"static/media/ibet.f0978db5.ico\";","module.exports = __webpack_public_path__ + \"static/media/betzan.14e78f62.ico\";","module.exports = __webpack_public_path__ + \"static/media/bia2bet.1654010a.ico\";","module.exports = __webpack_public_path__ + \"static/media/parsgoal.759a5db4.ico\";","module.exports = __webpack_public_path__ + \"static/media/royalbet.341f1208.ico\";","module.exports = __webpack_public_path__ + \"static/media/betchanel.f6c37bcc.ico\";","module.exports = __webpack_public_path__ + \"static/media/kingbet.a88146b0.ico\";","module.exports = __webpack_public_path__ + \"static/media/betcloob.346add2f.ico\";","module.exports = __webpack_public_path__ + \"static/media/violetbet.6bb2b7cc.ico\";","module.exports = __webpack_public_path__ + \"static/media/igoal90.45887614.ico\";","module.exports = __webpack_public_path__ + \"static/media/i90API.2665b9ac.ico\";","module.exports = __webpack_public_path__ + \"static/media/default-favicon.947e7595.ico\";","module.exports = __webpack_public_path__ + \"static/media/GSLoader.59e89383.gif\";","import sendRequest, { getValidationCookie } from \"./api\";\r\nimport { actionCreatorForCurrentToken, login } from \"../store/actions\";\r\nimport {\r\n GET_EXTERNAL_PARTNER,\r\n IDENTITY,\r\n IDENTITY_URL,\r\n INITIAL_REQUEST,\r\n token,\r\n VALIDATION_URL,\r\n VALIDATION_COOKIE_NAME\r\n} from \"../constants\";\r\nimport { getIdentityReqBody } from \"../helpers/localHelperFunctions\";\r\n\r\nfunction initConnection(launchApp, dispatch) {\r\n const initialRequest = () => {\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(INITIAL_REQUEST, {}).then(launchApp);\r\n };\r\n\r\n if (token) {\r\n const doLogin = access_token => {\r\n if (access_token) {\r\n dispatch(login(access_token));\r\n }\r\n initialRequest();\r\n };\r\n // it is for local prod login\r\n // doLogin(\r\n // \"eyJhbGciOiJSUzI1NiIsImtpZCI6IkFGRUM1QjYyNEM1NzIwREQ4MjMwOTI3RUE3Q0UwNTAzOUQ1MjM3OUYiLCJ0eXAiOiJhdCtqd3QiLCJ4NXQiOiJyLXhiWWt4WElOMkNNSkotcDg0RkE1MVNONTgifQ.eyJuYmYiOjE2MjczODQ2OTcsImV4cCI6MTYyNzQ3MTA5NywiaXNzIjoiaHR0cHM6Ly9pZGVudGl0eS50c3RkaWdpdGFpbi5jb20iLCJhdWQiOiJza2lsbGdhbWVzIiwiY2xpZW50X2lkIjoiMTIiLCJzdWIiOiIzMDA3MDEiLCJhdXRoX3RpbWUiOjE2MjczODQ2OTcsImlkcCI6ImxvY2FsIiwiVXNlcklkIjoiMzAwNzAxIiwiRmlyc3ROYW1lIjoiIiwiTGFzdE5hbWUiOiIiLCJFbWFpbCI6IiIsIkN1cnJlbmN5IjoiVVNEIiwiQmFsYW5jZSI6Ijk5OTQ4Ni44MTI1IiwiQmlydGhkYXRlIjoiMDUvMDUvMTk5NyAwMDowMDowMCIsIlRva2VuIjoiZTVlMWM2MjQ3N2ZmNDI3OWE2OTYwMWFmZmViM2ExMTgiLCJJc2RvY3VtZW50dmVyaWZpZWQiOiJUcnVlIiwiQ29kZSI6IjAiLCJSZXN1bHQiOiIiLCJVbmlxdWVJZCI6IiIsIklzbW9iaWxlbnVtYmVydmVyaWZpZWQiOiJUcnVlIiwic2NvcGUiOlsic2tpbGxnYW1lcyJdLCJhbXIiOlsic2tpbGxnYW1lcyJdfQ.c7qUHYC2xO0uuIBhExAgRQnMM-Jlxsge1fqbCXHEZRbd_P0YmVOUTedJSSimG0ce-BYWTYVDeFcG9aECcbtGN_UW3kVp7evezb45bOSf6iJEhxlUHgmtDdaKqs4O3GSNkzVTygl2wjE2IJEGb8cn7jWZI58iuCBhLTVX3LT8E1ECP0_uyP4HItqu00-WbdhGngK97zVyTuveeSck5OqMT9Kd1mdQt6JY4c73OTFK0jAuylYonZmKJhtxCqoGJ6DI8Yb66mBTEmel-GbA6Mi6PnbqEzbeCEE_bbdBEm5oI2rzXfre3FPMlfGROG7CtGzXFtetSYIjZtEHFlqN5rkd85C1NkpgmMs9Q_rSq_vHYgEgki9T7R9TzwAwkbR1wczv34SrY9wKYih3QNlETyTlRod7sL6iuvKZMIh3QlgPLHVrMe6kdgpU7oZEatgmoBex063y3lSQ9mwd07jGPBEHTh2jqnDddghakeP-eOI5xMz0rbPjdi9GrSCJhJdyfAe2FrwhvBjOiBL-iveRtk1g-ENn1DMWpug9mGATwiBUC1ZciF-nXtV-c3grqntfLKxYaKVvXOl87zRT_UOLL0gyCareUtU2dOrIc1-4aPVBBrfAdYi6WJB91o0w8d0Ofp3C0ggk2On5gAy1JA4ebSaBJzxwBVJxKmdQYB-meM9akjc\"\r\n // );\r\n\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(GET_EXTERNAL_PARTNER, {}).then(res => {\r\n // NO ASYNC ACTION CREATOR, nothing to dispatch\r\n sendRequest(IDENTITY, getIdentityReqBody(res), null, IDENTITY_URL, null, true)\r\n .then(({ access_token }) => {\r\n let currentToken = access_token;\r\n doLogin(currentToken);\r\n\r\n setInterval(() => {\r\n dispatch(actionCreatorForCurrentToken(res, currentToken));\r\n }, 900000);\r\n })\r\n .catch(err => console.error(\"idendity error \", err));\r\n });\r\n } else {\r\n initialRequest();\r\n }\r\n}\r\n\r\nexport const startProject = (launchApp, dispatch) => {\r\n const validateKey = getValidationCookie();\r\n\r\n if (validateKey && validateKey !== \"null\") {\r\n initConnection(launchApp, dispatch);\r\n } else {\r\n fetch(VALIDATION_URL)\r\n .then(res => {\r\n const validateValue = res.headers.get(\"sgsettings\");\r\n\r\n document.cookie = `${VALIDATION_COOKIE_NAME}=${validateValue}; expires=${new Date(\r\n new Date().getTime() + 1000 * 60 * 60 * 24 * 365\r\n )}; SameSite=None; Secure; path=/`;\r\n })\r\n .finally(() => {\r\n initConnection(launchApp, dispatch);\r\n });\r\n }\r\n};\r\n","import React from \"react\";\r\nimport classNames from \"classnames\";\r\nimport { IsMobileLogin } from \"../../constants\";\r\nimport { NotificationContainer } from \"livecasino/components/Notification\";\r\n\r\nexport default function NotificationWrapper() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport t from \"../../../helpers/translation\";\r\nimport PropTypes from \"prop-types\";\r\nimport Button from \"../../../components/Shared/Button\";\r\nimport { homeBtnHandler } from \"../../../helpers/localHelperFunctions\";\r\n\r\nexport default function MaintenanceNavbar({ search, history }) {\r\n return (\r\n <>\r\n {/* TODO: must take casino page */}\r\n \r\n
    \r\n
  • \r\n e.preventDefault()}\r\n to={{ pathname: `/tournaments`, search: search }}\r\n >\r\n {t(\"strSkillGames\")}\r\n \r\n
  • \r\n
\r\n \r\n );\r\n}\r\n\r\nMaintenanceNavbar.propTypes = {\r\n search: PropTypes.string.isRequired,\r\n history: PropTypes.object.isRequired\r\n};\r\n","import React from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport PropTypes from \"prop-types\";\r\nimport t from \"../../../helpers/translation\";\r\nimport Button from \"../../../components/Shared/Button\";\r\nimport { NO_MOBILE_HOME_BUTTON_PARTNER_IDS, PartnerId } from \"../../../constants\";\r\nimport { mobileHomeButtonAction } from \"../../../helpers/localHelperFunctions\";\r\n\r\nfunction MobileTemplate({ search }) {\r\n return (\r\n <>\r\n {/*TODO: Jiro Go casino page*/}\r\n {!NO_MOBILE_HOME_BUTTON_PARTNER_IDS.includes(PartnerId) && (\r\n {\r\n mobileHomeButtonAction();\r\n }}\r\n />\r\n )}\r\n
    \r\n
  • \r\n \r\n {t(\"strGames\")}\r\n \r\n
  • \r\n
\r\n {/*{!loggedIn &&