{"version":3,"file":"static/js/casino-game-single-view-renderer.0d6d0501.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 { 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 window.page?.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', window.page?.title || '');\n twitterTitleMeta?.setAttribute('content', window.page?.title || '');\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 window.partnerConfigs?.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}', window.page?.title || '');\n\n metaDescription = t('casino.metaDescription')\n .replace('{gameDescripiton}', firstGame.data.description || '')\n .replaceAll('{siteNameSeparator}', siteNameSeparator)\n .replaceAll('{siteName}', window.partnerConfigs?.siteName || '')\n .replace('{pageSeoDescription}', window.page?.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}', window.page?.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}', window.page?.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}', window.partnerConfigs?.siteName || '')\n .replace('{pageSeoDescription}', window.page?.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","_window$page","_window$page$seoParam","activeGames","getActiveGames","generateMetaData","useMetaData","ogUrlBase","useRef","initialDocumentTitle","page","seoParams","pageTitle","document","_document$querySelect","current","querySelector","content","_window$page2","_window$page3","ogTitleMeta","twitterTitleMeta","ogDescriptionMeta","descriptionMeta","twitterDescriptionMeta","itemPropDescriptionMeta","ogUrlMeta","canonicalLink","setAttribute","remove","_window$partnerConfig","_ogUrlBase$current","MOCKED_DATA","reactRoute","reactRenderingRoute","pathname","siteNameSeparator","partnerConfigs","siteNameSeparatorInTitles","completeUrl","skipCanonicalAndOgUrl","endsWith","origin","numberOfActiveGames","Object","keys","length","metaTitle","metaDescription","activeGamesArray","values","firstGame","_window$page4","_window$partnerConfig2","_window$page5","replace","provider_title","description","replaceAll","siteName","_window$partnerConfig3","_window$page8","providerTitlesSet","Set","secondGame","_window$page6","_window$page7","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","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","GLOBALS","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":""}