{"version":3,"file":"static/js/casino-game-single-view-renderer.e9883c85.chunk.js","mappings":"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","sources":["newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/constants/dom-variables.ts","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/providers/GameViewContainerProvider.tsx","utils/casino/route.ts","utils/casino/index.ts","newelements/Casino/GameSingleViewRenderer/__partials/constants/route.ts","newelements/Casino/GameSingleViewRenderer/__partials/constants/index.ts","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/CasinoLimitModal/index.tsx","services/casino/casino-session-data.ts","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/GameView/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/MultiviewGamesSameGameNotice/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/MultiviewSwitcher/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/managers/MultiviewManager/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/managers/SingleviewManager/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/hooks/useCsMetaUpdates.ts","newhooks/generic/useValueReference.ts","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/SingleviewModeChecker/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/managers/SingleviewOuterManager/index.tsx","newelements/Casino/GameSingleViewRenderer/index.tsx","newelements/Casino/GameSingleViewRenderer/__partials/hooks/useCsOldRouteChecker.ts","newhooks/generic/useHeaderVisibility.ts","services/casino/casino-fetch-games-by-id.ts","utils/bom-dom-manipulation/platform.ts","utils/constants/casino/casino-constants.ts"],"sourcesContent":["export const CasinoDom = {\n MODAL_CONTAINER: 'casino-game-view-modal-container'\n};\n","import { createContext, ReactElement, ReactNode, useContext } from 'react';\nimport { CUSTOM_CATEGORIES } from 'utils/constants/casino/custom-categories';\nimport { ECasinoGameView } from 'interfaces/casino-data';\n\nexport type GameViewContainerProps = {\n view: ECasinoGameView;\n onViewChange: (view: ECasinoGameView) => void;\n externalCategory?: string;\n mainCategory: string;\n sameGameNoticeOpen: boolean;\n setSameGameNoticeOpen: (value: boolean) => void;\n};\n\nexport type CasinoGameViewContainerProviderProps = {\n children: ReactNode;\n value: GameViewContainerProps;\n};\n\nconst CasinoGameViewContainerContext = createContext<\n CasinoGameViewContainerProviderProps['value']\n>({\n view: ECasinoGameView.SINGLE,\n onViewChange: () => {},\n mainCategory: CUSTOM_CATEGORIES.all.id,\n sameGameNoticeOpen: false,\n setSameGameNoticeOpen: () => {}\n});\n\nexport const CasinoGameViewContainerProvider = (\n props: CasinoGameViewContainerProviderProps\n): ReactElement => {\n return (\n \n {props.children}\n \n );\n};\n\nexport const useCasinoGameViewContainerValues =\n (): CasinoGameViewContainerProviderProps['value'] => {\n return useContext(CasinoGameViewContainerContext);\n };\n","import {\n CASINO_MULTIVIEW,\n CASINO_MULTIVIEW_ENABLED_QUERY_VALUE\n} from 'utils/constants/casino/url-queries';\nimport { getCasinoParams } from 'utils/generic/route-manipulation';\n\nexport const isCasinoSingleViewRoute = (): boolean => {\n const casinoGameParams = getCasinoParams();\n const isInMultiviewMode =\n new URLSearchParams(window.location.search).get(CASINO_MULTIVIEW) ===\n CASINO_MULTIVIEW_ENABLED_QUERY_VALUE;\n\n return !!casinoGameParams.gameExternalId || isInMultiviewMode;\n};\n","import { isCasinoSingleViewRoute } from 'utils/casino/route';\n\nexport const UtilsGlobalCasino = {\n isCasinoSingleViewRoute\n};\n","export const ROUTE_LENGTH_WITHOUT_PROVIDER = 3;\nexport const OLD_ROUTE_DEFAULT_LENGTH = 3;\n","import {\n OLD_ROUTE_DEFAULT_LENGTH,\n ROUTE_LENGTH_WITHOUT_PROVIDER\n} from './route';\n\nexport const ConstantsCasino = {\n ROUTE_LENGTH_WITHOUT_PROVIDER,\n OLD_ROUTE_DEFAULT_LENGTH\n};\n","import { ReactElement, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport SessionStorage from 'utils/bom-dom-manipulation/session-storage';\nimport { ZINDEX_HIGH_1 } from 'utils/constants/app/ui';\nimport {\n MILLISECONDS_IN_SECOND,\n SECONDS_PER_MINUTE\n} from 'utils/constants/dateInfo/time-numbers';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { getCasinoSessionData } from 'services/casino/casino-session-data';\nimport { Modal, ModalButtons } from 'components/Modal';\nimport { updateQuery } from 'components/QueryRoute';\nimport { Button } from 'newcomponents/UI/Button';\nimport { useCasinoSingleGameClose } from 'hooks/casino/useCasinoSingleGameClose';\nimport { useCurrency } from 'hooks/useCurrency';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\nimport './index.less';\n\ntype SessionData = {\n details: SessionDataDetails;\n result: number;\n result_text: null;\n};\n\ntype SessionDataDetails = {\n CasinoBetTotal: number;\n CasinoWinTotal: number;\n Profitness: number;\n SessionDuration: number;\n};\n\nexport const CasinoLimitModal = (): ReactElement => {\n const { t } = useTranslation();\n const { formatAmount } = useCurrency();\n const history = useHistory();\n const { game, mode } = useSearchParams();\n const isLoggedIn = useSelector(getIsLoggedIn);\n const [showLimitModal, setShowLimitModal] = useState(false);\n const [sessionData, setSessionData] = useState({\n CasinoBetTotal: 0,\n CasinoWinTotal: 0,\n Profitness: 0,\n SessionDuration: 0\n });\n\n const { handleCloseClick } = useCasinoSingleGameClose();\n\n const limitTime = useMemo(() => {\n return (\n JSON.parse(\n SessionStorage.getItem(\n storageKeyName('account', 'ACTIVE_TIME_IN_CASINO')\n )\n ) ?? 0\n );\n }, [isLoggedIn]);\n\n useEffect(() => {\n if (mode === 'real') {\n if (limitTime && !showLimitModal) {\n const timeoutId = setTimeout(() => {\n getCasinoSessionData((data: SessionData) => {\n if (data) {\n setSessionData(data.details);\n setShowLimitModal(true);\n }\n });\n }, limitTime * MILLISECONDS_IN_SECOND);\n\n return () => {\n clearTimeout(timeoutId);\n };\n }\n }\n }, [mode, game, showLimitModal, limitTime]);\n\n return (\n \n

\n {t(`casino.continueOrNot`)}\n

\n \n \n setShowLimitModal(false)}\n >\n {t('casino.continue')}\n \n {\n handleCloseClick();\n history.push(\n updateQuery({ accounts: '*', 'balance-history': '*' })\n );\n }}\n >\n {t(`casino.openBalanceHistory`)}\n \n \n \n );\n};\n","import { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { WebsocketEnhanced } from 'interfaces/spring-websocket-interfaces';\nimport { connectingWS } from 'hooks/useSpringConnect';\n\nexport const getCasinoSessionData = (callback: Function): void => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n {\n command: CommandNames.GET_CLIENT_CURRENT_SESSION_SLOT_PL,\n params: {},\n rid: RidGenerator.gForCommand()\n },\n '',\n callback\n );\n });\n};\n","import { FC, Suspense } from 'react';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport { ECasinoGameMode } from 'interfaces/casino-data';\nimport { NewCasinoGame } from 'interfaces/new-casino';\n\nconst { GameViewMobileLayout } = lazy(\n () =>\n import(\n /* webpackChunkName: \"casino-game-view-mobile-layout\" */ './layouts/mobile'\n )\n);\n\nconst { GameViewDesktopLayout } = lazy(\n () =>\n import(\n /* webpackChunkName: \"casino-game-view-desktop-layout\" */ './layouts/desktop'\n )\n);\n\ninterface IGameViewProps {\n game: NewCasinoGame;\n mode: ECasinoGameMode;\n onModeChange: (mode: ECasinoGameMode) => void;\n}\n\nconst IS_MOBILE_LAYOUT = isMobile();\n\nexport const GameView: FC = ({ game, mode, onModeChange }) => {\n if (IS_MOBILE_LAYOUT) {\n return (\n \n \n \n );\n }\n\n return (\n \n \n \n );\n};\n","import { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ZINDEX_HIGH_1 } from 'utils/constants/app/ui';\nimport { Modal, ModalButtons } from 'components/Modal';\nimport { Button } from 'newcomponents/UI/Button';\n\nconst NOTICE_MODAL_WIDTH = 420;\n\ninterface IMultiviewGamesSameGameNoticeProps {\n open: boolean;\n setOpen: (arg: boolean) => void;\n}\n\nexport const MultiviewGamesSameGameNotice: FC<\n IMultiviewGamesSameGameNoticeProps\n> = ({ open, setOpen }) => {\n const { t } = useTranslation();\n\n const closeNoticeModal = useCallback(() => {\n setOpen(false);\n }, []);\n\n return (\n \n \n {t('casino.openSameGameNoticeDescription')}\n \n \n \n \n \n );\n};\n","import { Suspense } from 'react';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\n\nconst { MultiViewSwitcherContent } = lazy(\n () => import(/* webpackChunkName: \"MultiViewSwitcher\" */ './Content')\n);\n\nexport const MultiviewSwitcher = () => {\n if (isMobile() || !SpringConfigs.CASINO_MULTIVIEW_ENABLED) {\n return null;\n }\n\n return (\n \n \n \n );\n};\n","import { Suspense } from 'react';\nimport { lazy } from 'utils/generic/lazy';\nimport { ECasinoGameView } from 'interfaces/casino-data';\nimport { useCasinoGameViewContainerValues } from '../../providers/GameViewContainerProvider';\n\nconst { MultiviewManagerInternal } = lazy(\n () => import(/* webpackChunkName: \"casino-multiview-manager\" */ './manager')\n);\n\nexport const MultiviewManager = () => {\n const { view } = useCasinoGameViewContainerValues();\n\n if (view !== ECasinoGameView.MULTI) {\n return;\n }\n\n return (\n \n \n \n );\n};\n","import { Suspense } from 'react';\nimport { lazy } from 'utils/generic/lazy';\nimport { ECasinoGameView } from 'interfaces/casino-data';\nimport { useCasinoGameViewContainerValues } from '../../providers/GameViewContainerProvider';\n\nconst { SingleviewManagerInternal } = lazy(\n () => import(/* webpackChunkName: \"casino-singleview-manager\" */ './manager')\n);\n\nexport const SingleviewManager = () => {\n const { view } = useCasinoGameViewContainerValues();\n\n if (view !== ECasinoGameView.SINGLE) {\n return;\n }\n\n return (\n \n \n \n );\n};\n","import {\n CSSProperties,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport cc from 'classcat';\nimport { UtilsAccount } from 'utils/account';\nimport { platform } from 'utils/bom-dom-manipulation/platform';\nimport { gameMapper } from 'utils/casino/maps';\nimport { ZINDEX_HIGH_3, ZINDEX_HIGH_5 } from 'utils/constants/app/ui';\nimport { CUSTOM_CATEGORIES } from 'utils/constants/casino/custom-categories';\nimport { CASINO_MULTIVIEW_ENABLED_QUERY_VALUE } from 'utils/constants/casino/url-queries';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n ECasinoGameMode,\n ECasinoGameView,\n ECasinoGameViewOrder,\n ICasinoCachedGames\n} from 'interfaces/casino-data';\nimport { NewCasinoGame } from 'interfaces/new-casino';\nimport { fetchGamesByIds } from 'services/casino/casino-fetch-games-by-id';\nimport { CasinoLimitModal } from './__partials/CasinoLimitModal';\nimport { GameView } from './__partials/GameView';\nimport { MultiviewGamesSameGameNotice } from './__partials/MultiviewGamesSameGameNotice';\nimport { MultiviewSwitcher } from './__partials/MultiviewSwitcher';\nimport { CasinoDom } from './constants/dom-variables';\nimport { MultiviewManager } from './managers/MultiviewManager';\nimport { SingleviewManager } from './managers/SingleviewManager';\nimport { CasinoGameViewContainerProvider } from './providers/GameViewContainerProvider';\nimport { UtilsCasino } from './utils';\nimport { Modal } from 'components/Modal';\nimport { addQuery } from 'components/QueryRoute';\nimport { Portal } from 'components/Shared/Portal';\nimport { useDebouncedValue } from 'hooks/useDebouncedValue';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useHeaderVisibility } from 'newhooks/generic/useHeaderVisibility';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useValueReference } from 'newhooks/generic/useValueReference';\nimport { CasinoOpenGameConfigsProvider } from 'providers/casino/openGameConfigsProvider';\nimport { batchActions } from 'store/actions';\nimport {\n addCachedGame,\n addCachedGameId,\n setCachedGameActive,\n setCachedGameMode,\n setCachedGameOrder\n} from 'store/actions/new-casino';\nimport { getHeaderState } from 'store/selectors/app-data';\nimport { getActiveGames } from 'store/selectors/new-casino';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\nimport { useCsMetaUpdates } from '../hooks/useCsMetaUpdates';\nimport './index.less';\n\nif (isMobile()) {\n import('./mobile.less');\n} else {\n import('./desktop.less');\n}\n\nconst SORTED_GAMES_UPDATE_DEBOUNCE_VALUE = 100;\nconst IS_IOS = !!(platform && /iPhone/.test(platform));\n\nexport const GameViewContainer = () => {\n useCsMetaUpdates();\n useHeaderVisibility();\n\n const history = useHistory();\n const dispatch = useDispatch();\n const user = useSelector(getUser);\n const { params: routeParams } = useSbRouteMatch();\n const searchParams = useSearchParams();\n const [sameGameNoticeOpen, setSameGameNoticeOpen] = useState(false);\n const [activeView, setActiveView] = useState(() => {\n return ECasinoGameView.SINGLE;\n });\n\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const activeViewReference = useValueReference(activeView);\n\n const searchParamsModeForMobile = isMobile() ? searchParams.mode : '';\n\n const headerState = useSelector(getHeaderState);\n const activeGames = useSelector(getActiveGames) as ICasinoCachedGames;\n const { height: headerHeight, isVisible: isHeaderVisible } = headerState;\n const externalCategory = routeParams?.gameCategory;\n const mainCategory = routeParams?.category || CUSTOM_CATEGORIES.all.id;\n const isThereAnyActiveGame = useMemo(\n () => Object.keys(activeGames).length > 0,\n [activeGames]\n );\n\n const sortedActiveGames = useMemo(() => {\n return Object.values(activeGames).sort(\n (gameA, gameB) => gameA.order - gameB.order\n );\n }, [activeGames]);\n\n const [debouncedSortedActiveGames] = useDebouncedValue(\n sortedActiveGames,\n SORTED_GAMES_UPDATE_DEBOUNCE_VALUE\n );\n\n const heightStyle = useMemo(\n () => ({\n height: `calc(100vh - ${headerHeight}px)`\n }),\n [headerHeight]\n );\n\n const maskStyle = useMemo(\n () => ({\n background: 'var(--v3-black-4)',\n height: `calc(100vh - ${headerHeight}px)`,\n marginTop: `${headerHeight}px`\n }),\n [headerHeight]\n );\n\n /** Handlers **/\n\n const handleOpenGame = useCallback(\n (game: NewCasinoGame, mode: ECasinoGameMode, gameIndexToChange: 0 | 1) => {\n UtilsCasino.constructAndRedirectToGameView({\n game,\n mode,\n view: activeViewReference.current,\n selectedCategory: routeParams?.category,\n gameIndexToChange\n });\n },\n [routeParams?.category]\n );\n\n const handleOpenGameMain = useCallback(\n (game: NewCasinoGame, mode: ECasinoGameMode) => {\n if (activeGames[game.extearnal_game_id]) {\n setSameGameNoticeOpen(true);\n\n return;\n }\n\n handleOpenGame(game, mode, 0);\n },\n [handleOpenGame, activeGames]\n );\n\n const handleOpenGameSecondary = useCallback(\n (game: NewCasinoGame, mode: ECasinoGameMode) => {\n if (activeGames[game.extearnal_game_id]) {\n setSameGameNoticeOpen(true);\n\n return;\n }\n\n handleOpenGame(game, mode, 1);\n },\n [handleOpenGame, activeGames]\n );\n\n const handleModeChangeMain = useCallback(\n (game: NewCasinoGame, mode: ECasinoGameMode) => {\n handleOpenGame(game, mode, 0);\n },\n [handleOpenGame]\n );\n\n const handleModeChangeSecondary = useCallback(\n (game: NewCasinoGame, mode: ECasinoGameMode) => {\n handleOpenGame(game, mode, 1);\n },\n [handleOpenGame]\n );\n\n /** Effects **/\n\n // handling game processing in case of single view\n\n useEffect(() => {\n if (activeViewReference.current !== ECasinoGameView.SINGLE) {\n return;\n }\n\n let [, gameExternalId] = (routeParams?.game || '').split('-');\n\n gameExternalId = searchParams?.gameId || gameExternalId;\n\n if (!gameExternalId) {\n return;\n }\n\n const checkAndAddGameInCache = () => {\n const isGameInCache =\n UtilsCasino.checkIsGameAlreadyCached(gameExternalId);\n\n if (isGameInCache) {\n dispatch(setCachedGameActive(gameExternalId));\n\n return;\n }\n\n // preserving the game id in the store\n dispatch(addCachedGameId(gameExternalId));\n fetchGamesByIds(\n [gameExternalId],\n true,\n true,\n !!SpringConfigs.DECENTRALIZED_CASINO_URL\n ).then(games => {\n const game = games[0];\n\n if (game) {\n const hasGameFunMode = !!game.types.funMode;\n\n dispatch(addCachedGame(gameMapper(game)));\n\n if (searchParams.mode !== ECasinoGameMode.REAL && !hasGameFunMode) {\n history.push(addQuery({ mode: ECasinoGameMode.REAL }));\n dispatch(\n setCachedGameMode({\n id: gameExternalId,\n mode: ECasinoGameMode.REAL\n })\n );\n }\n }\n });\n };\n\n checkAndAddGameInCache();\n }, [routeParams?.game, searchParams?.gameId]);\n\n // handling game processing in case of multi view\n useLayoutEffect(() => {\n if (searchParams.multiview !== CASINO_MULTIVIEW_ENABLED_QUERY_VALUE) {\n return;\n }\n\n const gamesInfo = UtilsCasino.extractGameInfoFromSearchParams(searchParams);\n\n if (gamesInfo.length === 0) {\n return;\n }\n\n const checkAndAddGamesInCache = () => {\n const notCachedGameIds = gamesInfo.map(gameInfo => {\n const isGameInCache = UtilsCasino.checkIsGameAlreadyCached(gameInfo.id);\n\n if (isGameInCache) {\n dispatch(\n batchActions(\n setCachedGameActive(gameInfo.id),\n setCachedGameOrder({\n id: gameInfo.id,\n order: gameInfo.order\n }),\n setCachedGameMode({ id: gameInfo.id, mode: gameInfo.mode })\n )\n );\n\n return null;\n }\n\n return {\n id: gameInfo.id,\n order: gameInfo.order,\n mode: gameInfo.mode\n };\n });\n\n const filteredGames = notCachedGameIds.filter(Boolean) as {\n id: string;\n order: ECasinoGameViewOrder;\n mode: ECasinoGameMode;\n }[];\n\n // preserving the game ids in the store\n filteredGames.forEach(({ id, mode }) => {\n dispatch(addCachedGameId(id));\n dispatch(setCachedGameActive(id));\n dispatch(setCachedGameMode({ id, mode }));\n });\n const filteredGameIds = filteredGames.map(game => game.id);\n fetchGamesByIds(\n filteredGameIds,\n true,\n true,\n !!SpringConfigs.DECENTRALIZED_CASINO_URL\n ).then(games => {\n games.forEach(game => {\n dispatch(addCachedGame(gameMapper(game)));\n const filteredGame = filteredGames.find(\n filteredGame => filteredGame.id === game.extearnal_game_id\n );\n\n if (filteredGame) {\n dispatch(\n setCachedGameOrder({\n id: game.extearnal_game_id,\n order: filteredGame.order\n })\n );\n }\n });\n });\n };\n\n const checkAuthorizedToOpen = () => {\n const isRealModePresentInUrl = gamesInfo.some(\n ({ mode }) => mode === ECasinoGameMode.REAL\n );\n\n const isUserLoggedIn = UtilsAccount.checkIsUserLoggedIn();\n\n if (isRealModePresentInUrl && !isUserLoggedIn) {\n UtilsCasino.reconstructAndRedirectToGameView();\n\n return true;\n }\n\n return false;\n };\n\n const shouldAuthorize = checkAuthorizedToOpen();\n\n if (!shouldAuthorize) {\n checkAndAddGamesInCache();\n }\n }, [JSON.stringify(searchParams)]);\n\n useLayoutEffect(() => {\n if (\n searchParams.mode === ECasinoGameMode.REAL &&\n !isLoggedIn &&\n !searchParams.login &&\n !user.pending\n ) {\n UtilsCasino.reconstructAndRedirectToGameView();\n }\n }, [isLoggedIn, user.pending]);\n\n useEffect(() => {\n if (searchParams.multiview !== CASINO_MULTIVIEW_ENABLED_QUERY_VALUE) {\n setActiveView(ECasinoGameView.SINGLE);\n\n return;\n }\n\n setActiveView(ECasinoGameView.MULTI);\n }, [searchParams.multiview]);\n\n if (!isThereAnyActiveGame) {\n return null;\n }\n\n return (\n \n <>\n \n \n \n \n \n \n \n \n {debouncedSortedActiveGames[0]?.data && (\n \n handleModeChangeMain(\n debouncedSortedActiveGames[0].data,\n mode\n )\n }\n />\n )}\n \n \n {activeView === ECasinoGameView.MULTI && (\n \n
\n {debouncedSortedActiveGames[1]?.data && (\n \n handleModeChangeSecondary(\n debouncedSortedActiveGames[1].data,\n mode\n )\n }\n />\n )}\n
\n \n )}\n \n \n \n \n \n \n \n \n
\n );\n};\n","import { useEffect, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { GLOBALS } from 'utils/generic/global-variables';\nimport { reactRenderingRoute } from 'utils/generic/route-manipulation';\nimport { ICasinoCachedGames } from 'interfaces/casino-data';\nimport { useMetaData } from 'hooks/useMetaData';\nimport { getActiveGames } from 'store/selectors/new-casino';\n\nexport const useCsMetaUpdates = (): void => {\n const { t } = useTranslation();\n const activeGames = useSelector(getActiveGames) as ICasinoCachedGames;\n const { generateMetaData } = useMetaData();\n\n const ogUrlBase = useRef();\n const initialDocumentTitle = useRef(\n GLOBALS.currentPage.seoParams?.pageTitle || document.title\n );\n\n useEffect(() => {\n if (!ogUrlBase.current) {\n ogUrlBase.current = (\n document.querySelector('meta[property=\"og:url\"]') as HTMLMetaElement\n )?.content;\n }\n\n return () => {\n const ogTitleMeta = document.querySelector('meta[property=\"og:title\"]');\n const twitterTitleMeta = document.querySelector(\n 'meta[name=\"twitter:title\"]'\n );\n\n const ogDescriptionMeta = document.querySelector(\n 'meta[property=\"og:description\"]'\n );\n\n const descriptionMeta = document.querySelector(\n 'meta[name=\"description\"]'\n );\n\n const twitterDescriptionMeta = document.querySelector(\n 'meta[name=\"twitter:description\"]'\n );\n\n const itemPropDescriptionMeta = document.querySelector(\n 'meta[itemprop=\"description\"]'\n );\n\n const ogUrlMeta = document.querySelector('meta[property=\"og:url\"]');\n const canonicalLink = document.querySelector('link[rel=\"canonical\"]');\n\n document.title = initialDocumentTitle.current;\n ogTitleMeta?.setAttribute('content', GLOBALS.currentPage.title || '');\n twitterTitleMeta?.setAttribute(\n 'content',\n GLOBALS.currentPage.title || ''\n );\n ogUrlMeta?.setAttribute('content', ogUrlBase.current || '');\n canonicalLink?.setAttribute('href', ogUrlBase.current || '');\n ogDescriptionMeta?.remove();\n descriptionMeta?.remove();\n twitterDescriptionMeta?.remove();\n itemPropDescriptionMeta?.remove();\n };\n }, []);\n\n useEffect(() => {\n if (SpringConfigs.MOCKED_DATA) {\n return;\n }\n\n const reactRoute = reactRenderingRoute(window.location.pathname);\n const siteNameSeparator =\n GLOBALS.appConfigs.siteNameSeparatorInTitles || ' - ';\n\n let completeUrl;\n let skipCanonicalAndOgUrl = false;\n\n if (ogUrlBase.current?.endsWith(reactRoute)) {\n completeUrl = ogUrlBase.current;\n skipCanonicalAndOgUrl = true;\n } else {\n completeUrl =\n (ogUrlBase.current || window.location.origin) +\n reactRenderingRoute(window.location.pathname);\n }\n\n const numberOfActiveGames = Object.keys(activeGames).length;\n let metaTitle = '';\n let metaDescription = '';\n const activeGamesArray = Object.values(activeGames);\n const firstGame = activeGamesArray[0];\n\n if (numberOfActiveGames === 0) {\n return;\n }\n\n if (numberOfActiveGames === 1) {\n metaTitle = t('casino.metaTitle')\n .replace('{gameName}', firstGame.data.name || '')\n .replace('{providerName}', firstGame.data.provider_title || '')\n .replace('{siteNameSeparator}', siteNameSeparator)\n .replace('{pageTitle}', GLOBALS.currentPage.title || '');\n\n metaDescription = t('casino.metaDescription')\n .replace('{gameDescripiton}', firstGame.data.description || '')\n .replaceAll('{siteNameSeparator}', siteNameSeparator)\n .replaceAll('{siteName}', GLOBALS.appConfigs.siteName || '')\n .replace('{pageSeoDescription}', GLOBALS.currentPage.title || '');\n } else {\n const providerTitlesSet = new Set();\n const secondGame = activeGamesArray[1];\n Object.values(activeGames).forEach(activeGame =>\n providerTitlesSet.add(activeGame.data.provider_title)\n );\n\n if (providerTitlesSet.size === 1) {\n metaTitle = t('casino.metaTitleMultiviewSameProvider')\n .replace('{gameNameMain}', firstGame.data.name)\n .replace('{gameNameSecondary}', secondGame.data.name)\n .replace('{providerNameMain}', firstGame.data.provider_title)\n .replace('{siteNameSeparator}', siteNameSeparator)\n .replace('{pageTitle}', GLOBALS.currentPage.title || '');\n } else {\n metaTitle = t('casino.metaTitleMultiview')\n .replace('{gameNameMain}', firstGame.data.name)\n .replace('{gameNameSecondary}', secondGame.data.name)\n .replace('{providerNameMain}', firstGame.data.provider_title)\n .replace('{providerNameSecondary}', secondGame.data.provider_title)\n .replace('{siteNameSeparator}', siteNameSeparator)\n .replace('{pageTitle}', GLOBALS.currentPage.title || '');\n }\n\n metaDescription = t('casino.metaDescriptionMultiview')\n .replace('{gameDescriptionMain}', firstGame.data.description || '')\n .replace(\n '{gameDescriptionSecondary}',\n secondGame.data.description || ''\n )\n .replaceAll('{siteNameSeparator}', siteNameSeparator)\n .replaceAll('{siteName}', GLOBALS.appConfigs.siteName || '')\n .replace('{pageSeoDescription}', GLOBALS.currentPage.title || '');\n }\n\n if (document.title === metaTitle) {\n return;\n }\n\n generateMetaData(\n metaTitle,\n metaDescription,\n completeUrl,\n skipCanonicalAndOgUrl\n );\n }, [activeGames]);\n};\n","import { useEffect, useRef } from 'react';\n\nexport const useValueReference = (value: T): { current: T } => {\n const ref = useRef(value);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref;\n};\n","import { useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { IS_CASINO_FUN_MODE_DISABLED } from 'utils/constants/casino/casino-constants';\nimport { getCasinoParams } from 'utils/generic/route-manipulation';\nimport { ECasinoGameMode } from 'interfaces/casino-data';\nimport { addQuery } from 'components/QueryRoute';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { setCachedGameMode } from 'store/actions/new-casino';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\nimport { ConstantsCasino } from '../../../constants';\nimport { UtilsCasino } from '../../utils';\n\nexport const SingleviewModeChecker = () => {\n const history = useHistory();\n const dispatch = useDispatch();\n const { mode } = useSearchParams();\n const user = useSelector(getUser);\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const routeLength = useMemo(\n () => UtilsCasino.getRouteLength(),\n [history.location?.search, history.location?.pathname]\n );\n\n useLayoutEffect(() => {\n const { gameExternalId } = getCasinoParams();\n\n const changeModeToReal = () => {\n history.push(\n addQuery({\n mode: ECasinoGameMode.REAL\n })\n );\n dispatch(\n setCachedGameMode({\n id: gameExternalId,\n mode: ECasinoGameMode.REAL\n })\n );\n };\n\n if (\n IS_CASINO_FUN_MODE_DISABLED &&\n !isLoggedIn &&\n !user.pending &&\n mode !== ECasinoGameMode.REAL\n ) {\n UtilsCasino.reconstructAndRedirectToGameView(() => {\n changeModeToReal();\n });\n } else if (\n routeLength !== undefined &&\n routeLength > ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER\n ) {\n if (!mode) {\n const finalMode = IS_CASINO_FUN_MODE_DISABLED\n ? ECasinoGameMode.REAL\n : ECasinoGameMode.FUN;\n\n history.push(\n addQuery({\n mode: finalMode\n })\n );\n dispatch(\n setCachedGameMode({\n id: gameExternalId,\n mode: finalMode\n })\n );\n\n return;\n }\n\n if (mode !== ECasinoGameMode.REAL && IS_CASINO_FUN_MODE_DISABLED) {\n changeModeToReal();\n }\n }\n }, [isLoggedIn, user.pending, mode, routeLength]);\n\n return null;\n};\n","import { CASINO_MULTIVIEW_ENABLED_QUERY_VALUE } from 'utils/constants/casino/url-queries';\nimport { SingleviewModeChecker } from 'newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/__partials/SingleviewModeChecker';\nimport { useSearchParams } from 'hooks/useSearchParams';\n\nexport const SingleviewOuterManager = () => {\n const { multiview } = useSearchParams();\n\n if (multiview === CASINO_MULTIVIEW_ENABLED_QUERY_VALUE) {\n return null;\n }\n\n return ;\n};\n","import { memo, ReactNode, Suspense, useMemo } from 'react';\nimport { useLocation } from 'react-router';\nimport { Route } from 'react-router-dom';\nimport { UtilsGlobalCasino } from 'utils/casino';\nimport { GLOBALS } from 'utils/generic/global-variables';\nimport { lazy as lazyImport } from 'utils/generic/lazy';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { ConstantsCasino } from './__partials/constants';\nimport { GameViewContainer } from './__partials/GameViewContainer';\nimport { UtilsCasino } from './__partials/GameViewContainer/utils';\nimport { useCsOldRouteChecker } from './__partials/hooks/useCsOldRouteChecker';\nimport { SingleviewOuterManager } from 'newelements/Casino/GameSingleViewRenderer/__partials/GameViewContainer/managers/SingleviewOuterManager';\nimport { QueryRoute } from 'components/QueryRoute';\nimport { Portal } from 'components/Shared/Portal';\n\nconst { CasinoGamePreview } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"casino-game-preview\" */ 'components/CasinoItemPreview/CasinoGamePreview'\n )\n);\n\nexport const CasinoGameSingleViewRenderer = memo((): ReactNode => {\n useCsOldRouteChecker();\n const location = useLocation();\n const isCasinoSingleViewRoute = UtilsGlobalCasino.isCasinoSingleViewRoute();\n\n const pathName = mountPoint(window.getPathname(), false, true) as string;\n const routeLength = useMemo(\n () => UtilsCasino.getRouteLength(),\n [location.search, location.pathname]\n );\n\n /** RETURN IF THE PAGE NEEDS TO RELOAD FOR SESSION VISIBILITY **/\n\n if (GLOBALS.casino.blockCasinoGamePopupOpening) {\n return null;\n }\n\n return (\n <>\n {isCasinoSingleViewRoute &&\n routeLength !== ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER && (\n \n )}\n {isMobile() &&\n routeLength === ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER ? (\n (\n \n \n \n \n \n )}\n />\n ) : null}\n\n {routeLength !== undefined &&\n routeLength !== ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER ? (\n \n }\n />\n \n ) : (\n }\n />\n )}\n\n {isMobile() && (\n (\n \n \n \n )}\n />\n )}\n \n );\n});\n","import { useEffect, useMemo } from 'react';\nimport qs from 'qs';\nimport { CUSTOM_CATEGORIES } from 'utils/constants/casino/custom-categories';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { ConstantsCasino } from '../constants';\nimport { UtilsCasino } from '../GameViewContainer/utils';\n\nexport const useCsOldRouteChecker = () => {\n const { history } = useCustomHistory();\n\n const routeLength = useMemo(\n () => UtilsCasino.getRouteLength(),\n [history.location?.search, history.location?.pathname]\n );\n\n /** redirect to casino new url if user navigated with old game structured link **/\n useEffect(() => {\n const searchObject = {\n ...qs.parse(window.location.search, {\n ignoreQueryPrefix: true\n })\n };\n\n const path = window.getPathname();\n\n if (\n !searchObject.preview &&\n path.includes(`/${SpringConfigs.CASINO_MOUNT_PATH}/`) &&\n !path.includes(`/${CUSTOM_CATEGORIES.all.id}/`) &&\n routeLength\n ) {\n const pathFromMountPoint = path.split(\n `/${SpringConfigs.CASINO_MOUNT_PATH}/`\n )[1];\n\n const segmentsLength = pathFromMountPoint.split('/').length;\n\n const OLD_ROUTE_LENGTH =\n routeLength === ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER - 1\n ? 2\n : ConstantsCasino.OLD_ROUTE_DEFAULT_LENGTH;\n\n if (\n (isMobile() &&\n routeLength === ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER - 1 &&\n segmentsLength === OLD_ROUTE_LENGTH) ||\n (routeLength !== ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER - 1 &&\n segmentsLength === OLD_ROUTE_LENGTH)\n ) {\n const position = path.indexOf(pathFromMountPoint);\n const res = [\n path.slice(0, position),\n `${CUSTOM_CATEGORIES.all.id}/`,\n path.slice(position)\n ].join('');\n\n history.push({\n pathname: res,\n search: qs.stringify(\n qs.parse(window.location.search, { ignoreQueryPrefix: true })\n )\n });\n }\n }\n }, [routeLength]);\n};\n","import { useEffect, useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { timeoutDuration } from 'utils/constants/dateInfo/time-numbers';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport {\n getHeader,\n getHeaderHeight,\n makeHeaderFixed,\n removeFixedHeader\n} from 'utils/helpers/fixed-header';\nimport { isMobile } from 'utils/is-mobile';\nimport { ICasinoCachedGames } from 'interfaces/casino-data';\nimport { setHeaderState } from 'store/actions/app-data';\nimport { getHeaderState } from 'store/selectors/app-data';\nimport { getBetslipOpen, getQuickBetEnabled } from 'store/selectors/betslip';\nimport { getActiveGames } from 'store/selectors/new-casino';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\n\nexport const useHeaderVisibility = (): void => {\n const dispatch = useDispatch();\n const user = useSelector(getUser);\n const isLoggedIn = useSelector(getIsLoggedIn);\n const isQuickBetEnabled = useSelector(getQuickBetEnabled);\n const isBetslipOpened = useSelector(getBetslipOpen);\n const activeGames = useSelector(getActiveGames) as ICasinoCachedGames;\n const { isVisible, height: headerHeight } = useSelector(getHeaderState);\n\n const isHeaderVisibleForCasino =\n SpringConfigs.IS_HEADER_VISIBLE_IN_CASINO &&\n isLoggedIn &&\n Object.keys(activeGames).length > 0;\n\n const isHeaderVisibleForBetslip = useMemo(\n () => isMobile() && isLoggedIn && isBetslipOpened && !isQuickBetEnabled,\n [isLoggedIn, isBetslipOpened, isQuickBetEnabled]\n );\n\n const removeHeader = () => {\n if (getHeader()) {\n removeFixedHeader();\n\n setTimeout(() => {\n dispatch(setHeaderState({ isVisible: false, height: 0 }));\n }, timeoutDuration.DURATION_100);\n }\n };\n\n useLayoutEffect(() => {\n if (getHeader()) {\n if (\n (isHeaderVisibleForCasino || isHeaderVisibleForBetslip) &&\n !isVisible\n ) {\n makeHeaderFixed();\n\n const updateHeaderHeight = () => {\n const height = getHeaderHeight();\n\n if (headerHeight !== height) {\n dispatch(setHeaderState({ height }));\n }\n };\n\n updateHeaderHeight();\n getHeader().addEventListener('resize', updateHeaderHeight);\n\n dispatch(setHeaderState({ isVisible: true }));\n }\n\n if (!isHeaderVisibleForCasino && !isHeaderVisibleForBetslip) {\n removeHeader();\n }\n }\n }, [user, isHeaderVisibleForBetslip, isHeaderVisibleForCasino]);\n\n useEffect(() => {\n return removeHeader;\n }, []);\n};\n","import axios from 'axios';\nimport { casinoLangPrefix } from 'utils/constants/app/general';\nimport { CasinoCommandNames } from 'utils/constants/casino/casino-command-names';\nimport { SUCCESS_STATUS_CODE } from 'utils/constants/swarm/backend-status-codes';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { showToastError } from 'utils/generic/show-toast-error';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n DecentralizedCasinoGamesFetchingParams,\n ENewCasinoGamesFetchingParamsKey,\n NewCasinoGameBackend,\n NewCasinoGamesFetchingParams\n} from 'interfaces/new-casino';\n\nexport const fetchGamesByIds = (\n ids: string[],\n showErrorMessage = true,\n useExternalId = false,\n decentralized = false\n): Promise => {\n let _params:\n | DecentralizedCasinoGamesFetchingParams\n | NewCasinoGamesFetchingParams;\n\n if (decentralized) {\n _params = {\n partnerId: SpringConfigs.DECENTRALIZED_CASINO_PARTNER_ID,\n gameId: ids[0]\n };\n } else {\n _params = {\n partner_id: SpringConfigs.PARTNER_ID,\n is_mobile: Number(isMobile()),\n lang: casinoLangPrefix,\n by_key: ENewCasinoGamesFetchingParamsKey.Id,\n use_webp: Number(SpringConfigs.IS_WEBP_SUPPORTED),\n country: SpringConfigs.CURRENT_COUNTRY_CODE\n };\n\n if (useExternalId && ids?.length) {\n _params.external_id = ids;\n } else {\n if (ids?.length === 1) {\n _params.id = ids[0];\n } else if (ids?.length > 1) {\n _params.external_id = ids;\n } else {\n return new Promise(resolve => resolve([]));\n }\n }\n }\n\n const url = SpringConfigs?.DECENTRALIZED_CASINO_URL\n ? `${SpringConfigs.DECENTRALIZED_CASINO_URL}${CasinoCommandNames['GET_DECENTRALIZED_GAME']}`\n : `${SpringConfigs.CASINO_URL}/${CasinoCommandNames['GET_GAMES']}`;\n\n return axios\n .get<{\n games: NewCasinoGameBackend[];\n status: string;\n }>(url, {\n params: _params\n })\n .then((response: any) => {\n if (\n response.status === SUCCESS_STATUS_CODE &&\n response.data &&\n (response.data.status === 'ok' || decentralized)\n ) {\n return decentralized\n ? [\n {\n extearnal_game_id: response.data.externalGameId,\n types: {\n realMode: 0,\n funMode: 0\n },\n icon_1: response.data.icon1,\n icon_2: response.data.icon2,\n icon_3: response.data.icon3,\n provider: 'ALL',\n provider_badge: null,\n provider_title: 'ALL',\n show_as_provider: 'ALL',\n cats: response.data.categories,\n ...response.data\n }\n ]\n : Object.values(response.data.games);\n } else {\n if (showErrorMessage) {\n showToastError(response.statusText);\n }\n\n return [];\n }\n })\n .catch(error => {\n if (showErrorMessage) {\n showToastError(error.toString());\n }\n\n return [];\n });\n};\n","// noinspection JSDeprecatedSymbols\n\n// ATTENTION: Remove navigator?.platform and leave only navigator?.userAgentData?.platform when it's supported by all browsers\nexport const platform =\n navigator?.userAgentData?.platform || navigator?.platform || 'unknown';\n","import SpringConfigs from 'utils/constants/swarm/spring-configs';\n\nexport const IS_CASINO_FUN_MODE_DISABLED =\n !SpringConfigs.CASINO_FUN_MODE ||\n SpringConfigs.CASINO_DISABLE_FUN_MODE_FOR_NOT_AUTHORIZED_USERS;\n"],"names":["CasinoDom","MODAL_CONTAINER","CasinoGameViewContainerContext","createContext","view","ECasinoGameView","SINGLE","onViewChange","mainCategory","CUSTOM_CATEGORIES","all","id","sameGameNoticeOpen","setSameGameNoticeOpen","CasinoGameViewContainerProvider","props","_jsx","Provider","value","children","useCasinoGameViewContainerValues","useContext","UtilsGlobalCasino","isCasinoSingleViewRoute","casinoGameParams","getCasinoParams","isInMultiviewMode","URLSearchParams","window","location","search","get","CASINO_MULTIVIEW","CASINO_MULTIVIEW_ENABLED_QUERY_VALUE","gameExternalId","ConstantsCasino","CasinoLimitModal","t","useTranslation","formatAmount","useCurrency","history","useHistory","game","mode","useSearchParams","isLoggedIn","useSelector","getIsLoggedIn","showLimitModal","setShowLimitModal","useState","sessionData","setSessionData","CasinoBetTotal","CasinoWinTotal","Profitness","SessionDuration","handleCloseClick","useCasinoSingleGameClose","limitTime","useMemo","_JSON$parse","JSON","parse","SessionStorage","getItem","storageKeyName","useEffect","timeoutId","setTimeout","callback","data","details","connectingWS","then","socket","sendCommand","command","CommandNames","GET_CLIENT_CURRENT_SESSION_SLOT_PL","params","rid","RidGenerator","gForCommand","MILLISECONDS_IN_SECOND","clearTimeout","_jsxs","Modal","visible","closable","maskClosable","centered","maxWidth","title","className","image","zIndex","ZINDEX_HIGH_1","SECONDS_PER_MINUTE","ModalButtons","direction","Button","size","type","onClick","push","updateQuery","accounts","GameViewMobileLayout","lazy","GameViewDesktopLayout","IS_MOBILE_LAYOUT","isMobile","GameView","_ref","onModeChange","Suspense","MultiviewGamesSameGameNotice","open","setOpen","closeNoticeModal","useCallback","align","lib","name","theme","width","renderInBody","onCancel","preventScrollDisable","style","color","block","MultiViewSwitcherContent","MultiviewSwitcher","SpringConfigs","CASINO_MULTIVIEW_ENABLED","MultiviewManagerInternal","MultiviewManager","MULTI","SingleviewManagerInternal","SingleviewManager","IS_IOS","platform","test","GameViewContainer","_debouncedSortedActiv","_debouncedSortedActiv2","useCsMetaUpdates","_GLOBALS$currentPage$","activeGames","getActiveGames","generateMetaData","useMetaData","ogUrlBase","useRef","initialDocumentTitle","GLOBALS","currentPage","seoParams","pageTitle","document","_document$querySelect","current","querySelector","content","ogTitleMeta","twitterTitleMeta","ogDescriptionMeta","descriptionMeta","twitterDescriptionMeta","itemPropDescriptionMeta","ogUrlMeta","canonicalLink","setAttribute","remove","_ogUrlBase$current","MOCKED_DATA","reactRoute","reactRenderingRoute","pathname","siteNameSeparator","appConfigs","siteNameSeparatorInTitles","completeUrl","skipCanonicalAndOgUrl","endsWith","origin","numberOfActiveGames","Object","keys","length","metaTitle","metaDescription","activeGamesArray","values","firstGame","replace","provider_title","description","replaceAll","siteName","providerTitlesSet","Set","secondGame","forEach","activeGame","add","useHeaderVisibility","dispatch","useDispatch","user","getUser","routeParams","useSbRouteMatch","searchParams","activeView","setActiveView","activeViewReference","ref","useValueReference","searchParamsModeForMobile","headerState","getHeaderState","height","headerHeight","isVisible","isHeaderVisible","externalCategory","gameCategory","category","isThereAnyActiveGame","sortedActiveGames","sort","gameA","gameB","order","debouncedSortedActiveGames","useDebouncedValue","heightStyle","maskStyle","background","marginTop","handleOpenGame","gameIndexToChange","UtilsCasino","constructAndRedirectToGameView","selectedCategory","handleOpenGameMain","extearnal_game_id","handleOpenGameSecondary","handleModeChangeMain","handleModeChangeSecondary","split","gameId","checkIsGameAlreadyCached","setCachedGameActive","addCachedGameId","fetchGamesByIds","DECENTRALIZED_CASINO_URL","games","hasGameFunMode","types","funMode","addCachedGame","gameMapper","ECasinoGameMode","REAL","addQuery","setCachedGameMode","useLayoutEffect","multiview","gamesInfo","extractGameInfoFromSearchParams","checkAuthorizedToOpen","isRealModePresentInUrl","some","_ref2","isUserLoggedIn","UtilsAccount","checkIsUserLoggedIn","reconstructAndRedirectToGameView","checkAndAddGamesInCache","filteredGames","map","gameInfo","batchActions","setCachedGameOrder","filter","Boolean","filteredGameIds","filteredGame","find","stringify","login","pending","Portal","_Fragment","ZINDEX_HIGH_5","ZINDEX_HIGH_3","cc","hideBorder","wrapClassName","getContainer","bodyStyle","CasinoOpenGameConfigsProvider","onOpenGame","undefined","SingleviewModeChecker","_history$location","_history$location2","routeLength","getRouteLength","changeModeToReal","IS_CASINO_FUN_MODE_DISABLED","finalMode","FUN","SingleviewOuterManager","CasinoGamePreview","lazyImport","CasinoGameSingleViewRenderer","memo","useCsOldRouteChecker","useCustomHistory","searchObject","qs","ignoreQueryPrefix","path","getPathname","preview","includes","CASINO_MOUNT_PATH","pathFromMountPoint","segmentsLength","OLD_ROUTE_LENGTH","position","indexOf","res","slice","join","useLocation","pathName","mountPoint","casino","blockCasinoGamePopupOpening","QueryRoute","excludes","render","Route","fallback","isQuickBetEnabled","getQuickBetEnabled","isBetslipOpened","getBetslipOpen","isHeaderVisibleForCasino","IS_HEADER_VISIBLE_IN_CASINO","isHeaderVisibleForBetslip","removeHeader","getHeader","removeFixedHeader","setHeaderState","timeoutDuration","DURATION_100","makeHeaderFixed","updateHeaderHeight","getHeaderHeight","addEventListener","ids","_params","showErrorMessage","arguments","useExternalId","decentralized","partnerId","DECENTRALIZED_CASINO_PARTNER_ID","partner_id","PARTNER_ID","is_mobile","Number","lang","casinoLangPrefix","by_key","ENewCasinoGamesFetchingParamsKey","Id","use_webp","IS_WEBP_SUPPORTED","country","CURRENT_COUNTRY_CODE","external_id","Promise","resolve","url","CasinoCommandNames","CASINO_URL","axios","response","status","SUCCESS_STATUS_CODE","externalGameId","realMode","icon_1","icon1","icon_2","icon2","icon_3","icon3","provider","provider_badge","show_as_provider","cats","categories","showToastError","statusText","catch","error","toString","_navigator","navigator","_navigator$userAgentD","userAgentData","_navigator2","CASINO_FUN_MODE","CASINO_DISABLE_FUN_MODE_FOR_NOT_AUTHORIZED_USERS"],"sourceRoot":""}