{"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    <CasinoGameViewContainerContext.Provider value={props.value}>\n      {props.children}\n    </CasinoGameViewContainerContext.Provider>\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<SessionDataDetails>({\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    <Modal\n      visible={showLimitModal}\n      closable={false}\n      maskClosable={false}\n      centered={true}\n      maxWidth={390}\n      title={t('casino.casinoActivity')}\n      className=\"x-casinoLimitModal\"\n      image={false}\n      zIndex={ZINDEX_HIGH_1}\n    >\n      <p className=\"x-casinoLimitModal__description\">\n        {t(`casino.continueOrNot`)}\n      </p>\n      <ul className=\"x-casinoLimitModal__activityList\">\n        <li className=\"x-casinoLimitModal__activityList__item\">\n          {t('casino.playedFor')}\n          <span>\n            {limitTime / SECONDS_PER_MINUTE} {t(`account.minute`)}\n          </span>\n        </li>\n        <li className=\"x-casinoLimitModal__activityList__item\">\n          {t('casino.betCount')}\n          <span>{formatAmount(sessionData.CasinoBetTotal)}</span>\n        </li>\n        <li className=\"x-casinoLimitModal__activityList__item\">\n          {t('casino.winCount')}\n          <span>{formatAmount(sessionData.CasinoWinTotal)}</span>\n        </li>\n        <li className=\"x-casinoLimitModal__activityList__item\">\n          {t('casino.sessionResult')}\n          <span>{formatAmount(sessionData.Profitness)}</span>\n        </li>\n      </ul>\n      <ModalButtons direction=\"column\">\n        <Button\n          size=\"large\"\n          type=\"primary\"\n          onClick={() => setShowLimitModal(false)}\n        >\n          {t('casino.continue')}\n        </Button>\n        <Button\n          size=\"large\"\n          type=\"text\"\n          onClick={() => {\n            handleCloseClick();\n            history.push(\n              updateQuery({ accounts: '*', 'balance-history': '*' })\n            );\n          }}\n        >\n          {t(`casino.openBalanceHistory`)}\n        </Button>\n      </ModalButtons>\n    </Modal>\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<IGameViewProps> = ({ game, mode, onModeChange }) => {\n  if (IS_MOBILE_LAYOUT) {\n    return (\n      <Suspense>\n        <GameViewMobileLayout\n          game={game}\n          mode={mode}\n          onModeChange={onModeChange}\n        />\n      </Suspense>\n    );\n  }\n\n  return (\n    <Suspense>\n      <GameViewDesktopLayout\n        game={game}\n        mode={mode}\n        onModeChange={onModeChange}\n      />\n    </Suspense>\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    <Modal\n      visible={open}\n      maskClosable={false}\n      title={t('casino.openSameGameNoticeTitle')}\n      align=\"center\"\n      image={{\n        lib: 'generic',\n        name: 'info',\n        theme: 'colored'\n      }}\n      width={NOTICE_MODAL_WIDTH}\n      centered\n      renderInBody\n      onCancel={closeNoticeModal}\n      closable={false}\n      zIndex={ZINDEX_HIGH_1}\n      preventScrollDisable\n    >\n      <span style={{ color: 'var(--v3-text-color)' }}>\n        {t('casino.openSameGameNoticeDescription')}\n      </span>\n      <ModalButtons>\n        <Button block type=\"primary\" size=\"large\" onClick={closeNoticeModal}>\n          {t('casino.openSameGameNoticeConfirmActionText')}\n        </Button>\n      </ModalButtons>\n    </Modal>\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    <Suspense>\n      <MultiViewSwitcherContent />\n    </Suspense>\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    <Suspense>\n      <MultiviewManagerInternal />\n    </Suspense>\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    <Suspense>\n      <SingleviewManagerInternal />\n    </Suspense>\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    <Portal>\n      <>\n        <MultiviewGamesSameGameNotice\n          open={sameGameNoticeOpen}\n          setOpen={setSameGameNoticeOpen}\n        />\n        <CasinoLimitModal />\n        <CasinoGameViewContainerProvider\n          value={{\n            view: activeView,\n            onViewChange: setActiveView,\n            externalCategory,\n            mainCategory,\n            sameGameNoticeOpen,\n            setSameGameNoticeOpen\n          }}\n        >\n          <div\n            style={{ '--my-var': `${headerHeight}px` } as CSSProperties}\n            id={CasinoDom.MODAL_CONTAINER}\n          >\n            <Modal\n              zIndex={!isMobile() ? ZINDEX_HIGH_3 : ZINDEX_HIGH_5}\n              className={cc([\n                'x-casinoGameViewContainerModal',\n                {\n                  'x-casinoGameViewContainerModal__header--visible':\n                    isHeaderVisible\n                }\n              ])}\n              style={heightStyle}\n              width=\"100%\"\n              maxWidth=\"100%\"\n              hideBorder\n              closable={false}\n              maskClosable={false}\n              wrapClassName={\n                isHeaderVisible ? 'modal__with__fixed__header' : ''\n              }\n              getContainer={`${CasinoDom.MODAL_CONTAINER}`}\n              bodyStyle={heightStyle}\n              maskStyle={maskStyle}\n              visible\n            >\n              <div\n                className={cc([\n                  'x-casinoGameViewContainerModal__container',\n                  {\n                    'x-casinoGameViewContainerModal__container--IOS': IS_IOS\n                  }\n                ])}\n              >\n                <CasinoOpenGameConfigsProvider\n                  value={{ onOpenGame: handleOpenGameMain }}\n                >\n                  <div\n                    className={cc([\n                      'x-casinoGameViewContainerModal__container__item',\n                      {\n                        'x-casinoGameViewContainerModal__container__item--main':\n                          activeView === ECasinoGameView.SINGLE\n                      }\n                    ])}\n                  >\n                    {debouncedSortedActiveGames[0]?.data && (\n                      <GameView\n                        game={debouncedSortedActiveGames[0].data}\n                        mode={\n                          debouncedSortedActiveGames[0].mode ||\n                          searchParamsModeForMobile ||\n                          undefined\n                        }\n                        key={debouncedSortedActiveGames[0].data.id}\n                        onModeChange={mode =>\n                          handleModeChangeMain(\n                            debouncedSortedActiveGames[0].data,\n                            mode\n                          )\n                        }\n                      />\n                    )}\n                  </div>\n                </CasinoOpenGameConfigsProvider>\n                {activeView === ECasinoGameView.MULTI && (\n                  <CasinoOpenGameConfigsProvider\n                    value={{ onOpenGame: handleOpenGameSecondary }}\n                  >\n                    <div className=\"x-casinoGameViewContainerModal__container__item\">\n                      {debouncedSortedActiveGames[1]?.data && (\n                        <GameView\n                          game={debouncedSortedActiveGames[1].data}\n                          mode={debouncedSortedActiveGames[1].mode}\n                          key={debouncedSortedActiveGames[1].data.id}\n                          onModeChange={mode =>\n                            handleModeChangeSecondary(\n                              debouncedSortedActiveGames[1].data,\n                              mode\n                            )\n                          }\n                        />\n                      )}\n                    </div>\n                  </CasinoOpenGameConfigsProvider>\n                )}\n              </div>\n            </Modal>\n            <SingleviewManager />\n            <MultiviewManager />\n          </div>\n          <MultiviewSwitcher />\n        </CasinoGameViewContainerProvider>\n      </>\n    </Portal>\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<string>();\n  const initialDocumentTitle = useRef<string>(\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 = <T>(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 <SingleviewModeChecker />;\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          <SingleviewOuterManager />\n        )}\n      {isMobile() &&\n      routeLength === ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER ? (\n        <QueryRoute\n          excludes={['mode']}\n          render={() => (\n            <Route path={`${pathName}/:category/:gameCategory/:game`}>\n              <Suspense fallback={null}>\n                <CasinoGamePreview />\n              </Suspense>\n            </Route>\n          )}\n        />\n      ) : null}\n\n      {routeLength !== undefined &&\n      routeLength !== ConstantsCasino.ROUTE_LENGTH_WITHOUT_PROVIDER ? (\n        <Route path={`${pathName}/:category?/:gameCategory?/:provider?/:game?`}>\n          <QueryRoute\n            includes={[['mode'], ['multiview']]}\n            render={() => <GameViewContainer />}\n          />\n        </Route>\n      ) : (\n        <QueryRoute\n          includes={[['gameId', 'mode'], ['multiview']]}\n          render={() => <GameViewContainer />}\n        />\n      )}\n\n      {isMobile() && (\n        <QueryRoute\n          includes={['gameId']}\n          excludes={['mode', 'key']}\n          render={() => (\n            <Portal>\n              <CasinoGamePreview />\n            </Portal>\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<NewCasinoGameBackend[]> => {\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":""}