{"version":3,"file":"static/js/51749.a672cace.chunk.js","mappings":"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","sources":["components/GameDetails/TextInfo/index.tsx","components/Generic/__partials/BetBuilderModalGeneric/actions.ts","components/ImageOverlay/index.tsx","components/MarketsCount/style.ts","components/MarketsCount/index.tsx","components/MarketsList/EmptyMarketsView.tsx","components/MarketsList/Skeleton.tsx","components/MarketsList/LVision/index.tsx","utils/constants/markets/index.ts","components/MarketsList/partials/Header.tsx","utils/constants/sportsbook/closed-markets-list.ts","components/MarketCollapse/style.ts","components/MarketCollapse/index.tsx","components/MarketsList/partials/MarketInfoTooltip.tsx","utils/sportsbook/create-odd-type.ts","components/MatchCardBase/index.tsx","components/MatchCardBaseGroup/index.tsx","components/MarketsList/style.ts","components/MarketsList/partials/MarketRow.tsx","components/MarketsList/partials/MarketsGroupItems.tsx","components/MarketsList/partials/MarketsGroupItemsNoLazy.tsx","components/MarketsList/RocketBet/index.tsx","components/BetsMenu/style.ts","components/BetsMenu/components/MarketsSearch.tsx","components/BetsMenu/index.tsx","components/EmptyResultBoxes/EmptyFavorites/EmptyFavoritesSkeleton.tsx","components/MarketsList/index.tsx","utils/sportsbook/fav-market-group.ts","utils/generic/array-move.ts","utils/collection-manipulation/expand-css-shorthand.util.ts","components/MatchCardInline/DesktopESportMatchCardLine/index.tsx","components/MatchCardInline/index.tsx","components/MatchHeader/Prematch/index.tsx","components/MatchInfoCard/index.tsx","components/MultipleSelections/MultipleSceleton/DesktopMultipleCardsSkeleton.tsx","components/PickerButton/index.tsx","components/Pill/index.tsx","components/Shared/Favorites/__partials/FavoriteCompetition.tsx","components/Shared/Favorites/__partials/FavoriteEvents.tsx","components/SportsbookListViews/style.ts","components/SportsbookListViews/Competition.tsx","components/Shared/Favorites/Favorite.tsx","components/Shared/Favorites/FavoriteSkeletonHeader.tsx","components/Shared/Favorites/FavoritesSkeleton.tsx","utils/sportsbook/get-usa-ordered-markets.ts","components/Shared/MatchCardInlineUSA/__partials/DetailedTeamsInfo/index.tsx","components/Shared/MatchCardInlineUSA/__partials/Odd/index.tsx","hooks/betslip/useHandleOddSelect.ts","components/Shared/MatchCardInlineUSA/index.tsx","components/Shared/MatchCardInlineUSA/__partials/utils/getEmptyMarketsForNotClassicView.ts","components/Shared/MobileSkeleton/HeaderPickerSkeleton.tsx","components/Shared/SportTournament/index.tsx","components/Shared/TimeFilter/Skeleton/index.tsx","components/Shared/TimeFilter/index.tsx","components/SportsbookCompetitionViewCollapse/__partials/MarketFilter.tsx","utils/constants/sportsbook/easy-access-sections.ts","components/StandaloneGamesCount/index.tsx","components/NavSection/index.tsx","components/SportsbookEasyAccessNavigation/index.tsx","elements/SportsbookLeftSideBar/FavoriteSideBarSearchSection.tsx","elements/SportsbookLeftSideBar/TopLeagueCompactMenuItemWithWrapper.tsx","elements/SportsbookLeftSideBar/style.ts","newcomponents/Shared/sportsbook/VerticalSportsList/SportItem.tsx","newcomponents/Shared/sportsbook/VerticalSportsList/index.tsx","elements/SportsbookLeftSideBar/index.tsx","elements/SportsbookLeftSideBar/partials/FavoriteSideBarSection/index.tsx","elements/SportsbookLeftSideBar/partials/TopLeagueCompactMenuItem/Skeleton.tsx","elements/SportsbookLeftSideBar/partials/TopLeagueCompactMenuItem/index.tsx","elements/Statscore/style.ts","elements/Statscore/index.tsx","hooks/betslip/useCalculateBetslipFixedSwitchersHeight.ts","hooks/sportsbook/useMatchInfoHide.ts","utils/constants/sportsbook/images.ts","hooks/sportsbook/useSportImage.ts","hooks/useDebounce.ts","interfaces/market-statistic.ts","newcomponents/Shared/DesktopRight/index.tsx","newcomponents/Shared/GameTime/index.tsx","newcomponents/Shared/generic/HooryAI/HooryAICard/HooryAiCardLazyWrapper.tsx","newcomponents/Shared/generic/HooryAI/HooryAICompact/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedMarketsFilter/index.tsx","newcomponents/Shared/sportsbook/AdvancedMain/AdvancedGameCardsWithMarketsFilters/AdvancedGameCardsWithMarketsFilters.tsx","newhooks/sportsbook/favorites/useFetchFavoriteData.ts","newcomponents/Shared/sportsbook/Favorite/FetchFavoriteData.ts","newhooks/sportsbook/favorites/useFetchFavoriteMatchIds.ts","newcomponents/Shared/sportsbook/Favorite/FetchFavoriteMatchIds.ts","newcomponents/Shared/sportsbook/FavoriteTeam/Skeleton/index.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamSingleView/index.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsBody/FavoriteTeamBodySkeleton.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsBody/FavoriteTeamBodyTitlteSkeleton.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/GamesListFilterByCompetitions/index.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsBody/index.tsx","newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsHeader/index.tsx","newcomponents/Shared/sportsbook/GameFilteredByLeagues/GamesFilteredByLeagues.tsx","newcomponents/Shared/sportsbook/MarketStatistics/Templates/Results/skeleton.tsx","newcomponents/Shared/sportsbook/MarketStatistics/templatesMapping.ts","newcomponents/Shared/sportsbook/MarketStatistics/Templates/GoalScored/skeleton.tsx","newcomponents/Shared/sportsbook/MarketStatistics/Templates/Empty/skeleton.tsx","newcomponents/Shared/sportsbook/MarketStatistics/Templates/LastFiveMatchesAvg/skeleton.tsx","newcomponents/Shared/sportsbook/MarketStatistics/Templates/LastFiveMeetings/skeleton.tsx","newcomponents/Shared/sportsbook/MarketWarning/index.tsx","newcomponents/Shared/sportsbook/MarketsList/Skeleton.tsx","newcomponents/Shared/sportsbook/Multiples/MultipleCardHaeder/Skeleton.tsx","newcomponents/Shared/sportsbook/NavigationCollapseWrapper/RegionLevelNavigation.tsx","newcomponents/Shared/sportsbook/NavigationCollapseWrapper/hooks/useCompetitionClick.ts","newcomponents/Shared/sportsbook/NavigationCollapseWrapper/SportLevelNavigation.tsx","newcomponents/Shared/sportsbook/NavigationCollapseWrapper/index.tsx","newcomponents/Shared/sportsbook/NotificationIcon/content.tsx","hooks/sportsbook/useSportsNotifications.ts","newcomponents/Shared/sportsbook/NotificationIcon/index.tsx","newcomponents/Shared/sportsbook/OlympicCompetitionCompactLayout/Skeleton.tsx","newcomponents/Shared/sportsbook/OlympicCompetitionCompactLayout/index.tsx","newcomponents/Shared/sportsbook/SportsbookGameList/index.tsx","newcomponents/Shared/sportsbook/TopLeagueCompactLayout/index.tsx","components/UI/Skeletons/SportRegionGameListSkeleton/index.tsx","newcomponents/Shared/sportsbook/TopMatchesCompactMenuItem/Skeleton.tsx","newcomponents/Shared/sportsbook/TopMatchesCompactLayout/index.tsx","newcomponents/Shared/sportsbook/TopMatchesCompactLayout/skeleton.tsx","newcomponents/Shared/sportsbook/TopMatchesCompactMenuItem/index.tsx","newcomponents/Shared/sportsbook/TopMatchesSportList/index.tsx","newcomponents/Shared/sportsbook/VideoCamIcon/index.tsx","newcomponents/UI/Divider/index.tsx","newcomponents/UI/Input/index.tsx","newcomponents/UI/LivePrematchTabsSkeleton/index.tsx","newcomponents/UI/Menu/index.tsx","newcomponents/UI/Menu/layouts/fill/skeleton/index.tsx","newcomponents/UI/SwiperSlider/index.tsx","newelements/Events/__partials/ConfigsProvider/index.tsx","newelements/SearchElement/Skeleton.tsx","newelements/SearchElement/index.tsx","newelements/SearchElement/partials/components/SearchBar/Skeleton.tsx","newelements/SearchElement/partials/types.ts","newelements/Sportsbook/Esport/Mobile/__partials/Sports/__partials/SportTitle/Skeleton.tsx","newelements/Sportsbook/__partials/CategoriesNavigation/index.tsx","newelements/Sportsbook/__partials/SportsHeader/TimeFilterWrapper.tsx","newelements/Sportsbook/__partials/SportsHeader/index.tsx","newelements/Sportsbook/__partials/SportsNavigation/index.tsx","newelements/Sportsbook/helpers/index.tsx","newelements/Sportsbook/layouts/__partials/BoostedOdds/CompetitionItemCollapse/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/AdvancedLeftMenu/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/EventsRow.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/ExpandedMarkets.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/index.tsx","newcomponents/Shared/sportsbook/LiveIndicator/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedSportsContent/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList/Skeleton.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList/LiveCompetitionsCollapse.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/index.tsx","newelements/Sportsbook/layouts/advanced/Desktop/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout/AdvancedRangeFilter/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsDesktop.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedMarketsFilter/Skeleton.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/mock.ts","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/Skeleton.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedShowAllEventsUnderlined/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/CompetitionsFilters.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/GamesListFilteredByTime.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/FilteredByTimeWrapper.tsx","newelements/Sportsbook/layouts/advanced/constants/coupon-time-ranges.ts","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCouponsLayout/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedSportsMenu/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/LoadMoreButton.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedGameCardsWithLoadMoreWrapper.tsx","newelements/Sportsbook/layouts/advanced/helpers/getGameWhereByLayoutType.ts","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/index.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/SportFilters.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainSportsMenu.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/GeneralEventsView.tsx","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/index.tsx","newelements/Sportsbook/layouts/advanced/constants/elements-ids.ts","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/useAdvancedMarkets.ts","newelements/Sportsbook/layouts/advanced/__partials/AdvancedMatchCardInLineWrapper/index.tsx","newelements/Sportsbook/layouts/advanced/constants/skeleton-counts.ts","newelements/Sportsbook/layouts/advanced/helpers/useGetAdvancedSportsMainData.ts","newelements/Sportsbook/layouts/advanced/hooks/useAdvancedInitialRedirection.ts","newelements/Sportsbook/layouts/advanced/hooks/useGetMarketsCounts.ts","newelements/Sportsbook/layouts/advanced/hooks/useRedirectToAdvancedRoute.ts","newelements/Sportsbook/layouts/classic/DesktopSportsbookClassic.tsx","newelements/Sportsbook/layouts/classic/FirstColumnContent.tsx","elements/DesktopGameList/style.ts","elements/DesktopGameList/DesktopGameListSkeleton.tsx","elements/DesktopSingleGameView/DesktopSingleGameViewSkeleton.tsx","newelements/Sportsbook/layouts/classic/GamesByCompetitionsCollapse/CompetitionCollapse.tsx","newelements/Sportsbook/layouts/classic/GamesByCompetitionsCollapse/index.tsx","newelements/Sportsbook/layouts/classic/SecondColumnContent.tsx","newhooks/sportsbook/favorites/sharedHelpers.ts","newhooks/sportsbook/matchStreaming/useGetAvailableModes.ts","newhooks/sportsbook/useOpenBetBuilder.ts","services/casino/casino-tournaments.ts","store/selectors/events.ts","store/selectors/game-data.ts","store/selectors/racing-data.ts","store/selectors/spec-elems.ts","utils/casino/jackpot.ts","utils/constants/app/app-routes.ts","utils/constants/sportsbook/favorite-data-fields.ts","utils/constants/sportsbook/favorite-team.ts","utils/constants/sportsbook/notificationSupportSports.ts","utils/constants/sportsbook/pistol-and-archery-shootings.ts","utils/constants/sportsbook/private-competitions.ts","utils/constants/sportsbook/scroll-target-ids.ts","utils/constants/sportsbook/tabs-paths.tsx","utils/date-manipulation/get-tournament-time.ts","utils/generic/checkIsElementScrollable.ts","utils/generic/tour-settings.ts","utils/sportsbook/filterSportDataByGameStartTsRange.ts","utils/constants/sportsbook/period-names.ts","utils/sportsbook/game-current-state.ts","utils/sportsbook/hide-private-competitions.ts","utils/sportsbook/route.structure.ts"],"sourcesContent":["import { ReactElement } from 'react';\nimport styled from 'styled-components';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport './index.less';\n\nconst Container = styled.span`\n display: flex;\n align-items: center;\n padding: 10px;\n margin-top: 4px;\n color: var(--v3-text-color);\n background: var(--v3-black-0);\n ${!isMobile() &&\n `\n border-radius: 4px;\n `}\n`;\n\ntype Props = {\n textInfo: string;\n style?: any;\n};\n\nexport const TextInfo = ({\n textInfo,\n style = {}\n}: Props): ReactElement | null => {\n return textInfo ? (\n \n \n {textInfo}\n \n ) : null;\n};\n","import { fireEvent } from 'utils/generic/event-bus';\nimport { TBetBuilderModalProps } from 'newcomponents/Shared/sportsbook/BetBuilderModal/types';\n\nexport enum EBetBuilderModalActions {\n OPEN_BET_BUILDER_MODAL = 'OPEN_BET_BUILDER_MODAL',\n CLOSE_BET_BUILDER_MODAL = 'CLOSE_BET_BUILDER_MODAL',\n UPDATE_BET_BUILDER_MODAL_PROPS = 'UPDATE_BET_BUILDER_MODAL_PROPS'\n}\n\nexport const BetBuilderModalActions = {\n open(payload: TBetBuilderModalProps) {\n fireEvent({ key: EBetBuilderModalActions.OPEN_BET_BUILDER_MODAL, payload });\n },\n\n updateProps(payload: TBetBuilderModalProps) {\n fireEvent({\n key: EBetBuilderModalActions.UPDATE_BET_BUILDER_MODAL_PROPS,\n payload\n });\n },\n\n close() {\n fireEvent({ key: EBetBuilderModalActions.CLOSE_BET_BUILDER_MODAL });\n }\n};\n","import { ReactElement } from 'react';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport './index.less';\n\nexport const ImageOverlay = ({\n condition,\n children\n}: {\n condition?: boolean;\n children: ReactElement;\n}): ReactElement => {\n return (\n <>\n {condition &&
}\n
{children}
}\n >\n {children}\n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div<{ size: 'default' | 'large' }>`\n color: var(--v3-text-color);\n justify-content: center;\n align-items: center;\n border-radius: 6px;\n padding-left: 4px;\n font-size: 12px;\n line-height: 16px;\n display: flex;\n height: 28px;\n direction: ltr;\n ${props =>\n props.size === 'large' &&\n `\n height: 44px;\n min-width: 44px;\n `}\n`;\n","import React, { ReactElement, ReactNode } from 'react';\nimport { Wrapper } from './style';\n\ntype Props = {\n children: ReactNode;\n size?: 'default' | 'large';\n onClick?: (event: React.MouseEvent) => void;\n};\n\nexport const MarketsCount = ({\n children,\n size,\n onClick\n}: Props): ReactElement => {\n return (\n \n {children}\n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { MarketWarning } from 'newcomponents/Shared/sportsbook/MarketWarning';\nimport { NoDataIconWrapper } from 'newcomponents/UI/NoDataIconWrapper';\n\nexport const EmptyMarketsView = () => {\n const { t } = useTranslation();\n\n return (\n
\n \n
{t('sportsbook.noMarkets')}
\n \n
\n );\n};\n","import { ReactElement } from 'react';\nimport { ColSizes, ROW_GUTTER } from 'utils/constants/app/ui';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { ESPORTS_ADDITIONAL_DATA } from 'utils/helpers/moba-games-statistics-options';\nimport { isMobile } from 'utils/is-mobile';\nimport { isActiveStreamTabMode } from 'utils/sportsbook/live-games-helper';\nimport { ADDITIONAL_STATISTICS_LAYOUTS } from 'components/GameDetails/AdditionalStatistics';\nimport { GameHeaderSkeleton } from 'newcomponents/Shared/sportsbook/GameHeader/GameHeaderSkeleton';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport './index.less';\n\ntype TMarketsListSkeleton = {\n banner?: boolean;\n withMatchTracker?: boolean;\n showHeaderSkeleton?: boolean;\n hideNavigationSkeleton?: boolean;\n hideMatchTrackerButton?: boolean;\n isLive?: boolean;\n};\n\nconst MARKETS_LIST_SKELETON_LENGTH_3 = 3;\nconst MARKETS_LIST_SKELETON_LENGTH_9 = 9;\nconst MARKETS_LIST_SKELETON_LENGTH_10 = 10;\n\nexport const MarketsListSkeleton = ({\n banner,\n withMatchTracker,\n showHeaderSkeleton,\n hideNavigationSkeleton,\n hideMatchTrackerButton,\n isLive\n}: TMarketsListSkeleton): ReactElement => {\n const {\n params: { sport }\n } = useSbRouteMatch();\n\n const AdditionalLayoutSkeleton =\n ADDITIONAL_STATISTICS_LAYOUTS[sport]?.skeleton;\n\n const hasAdditionalStatistics =\n Object.keys(ESPORTS_ADDITIONAL_DATA).includes(sport) && isLive;\n\n return (\n <>\n {banner && (\n <>\n {!hideNavigationSkeleton && (\n
\n \n
\n )}\n
\n \n \n \n
\n {isMobile() && isActiveStreamTabMode() && withMatchTracker\n ? null\n : isMobile() &&\n !hideMatchTrackerButton && (\n
\n \n
\n )}\n\n {hasAdditionalStatistics ? (\n \n ) : null}\n \n )}\n {showHeaderSkeleton && (\n <>\n \n\n
\n \n \n \n
\n \n )}\n\n
\n {createArray(MARKETS_LIST_SKELETON_LENGTH_10).map(index => (\n \n ))}\n
\n {createArray(MARKETS_LIST_SKELETON_LENGTH_3).map(index => (\n \n \n \n \n \n \n \n \n \n \n {createArray(MARKETS_LIST_SKELETON_LENGTH_9).map(key => (\n \n \n \n ))}\n \n
\n ))}\n \n );\n};\n","import { ComponentProps, Suspense } from 'react';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport './index.less';\n\nconst { LVisionComponent } = lazy(\n () => import(/* webpackChunkName: \"lvision\" */ './Component')\n);\n\ntype Props = ComponentProps & {\n pageType: ESportsbookPageTypes;\n isAllCollapsed: boolean | undefined;\n};\n\nexport const LVision = (props: Props) => {\n return SpringConfigs.LVISION &&\n SpringConfigs.LVISION_API_KEY &&\n props.pageType !== ESportsbookPageTypes.esport ? (\n \n \n \n ) : null;\n};\n","import i18n from 'i18next';\nimport {\n EMarketStatisticsTemplate,\n IMarketStatisticsType\n} from 'interfaces/market-statistic';\n\nexport const Markets_Tooltips: Record = {\n MatchResult: i18n.t('marketsTooltips.MatchResult'),\n P1XP2: i18n.t('marketsTooltips.MatchResult'),\n '1X12X2': i18n.t('marketsTooltips.DoubleChance'),\n DrawNoBet: i18n.t('marketsTooltips.DrawNoBet'),\n HalfTimeResult: i18n.t('marketsTooltips.HalfTimeResult'),\n SecondHalfResult: i18n.t('marketsTooltips.SecondHalfResult'),\n HalfTimeFullTime: i18n.t('marketsTooltips.HalfTimeFullTime'),\n '2ndHalfTotalOver/Under': i18n.t('marketsTooltips.SecondHalfEvenOddTotal'),\n CorrectScore: i18n.t('marketsTooltips.CorrectScore'),\n OverUnder: i18n.t('marketsTooltips.OverUnder'),\n OverUnder2: i18n.t('marketsTooltips.OverUnder'),\n HalfTimeOverUnder: i18n.t('marketsTooltips.HalfTimeOverUnder'),\n BothTeamsToScore: i18n.t('marketsTooltips.BothTeamsToScore'),\n YellowCardsOverUnder: i18n.t('marketsTooltips.yellowCardsOverUnder'),\n MatchYellowCardLastTeam: i18n.t('marketsTooltips.matchYellowCardLastTeam'),\n Team1YellowCardsOverUnder: i18n.t(\n 'marketsTooltips.Team1YellowCardsOverUnder'\n ),\n Team2YellowCardsOverUnder: i18n.t(\n 'marketsTooltips.Team2YellowCardsOverUnder'\n ),\n '1stHalfYellowCardsOver/Under': i18n.t(\n 'marketsTooltips.1stHalfYellowCardsOverUnder'\n ),\n 'YellowCards:1stHalfTeam1Total': i18n.t(\n 'marketsTooltips.YellowCards1stHalfTeam1Total'\n ),\n YellowCards1stHalfTeam2Total: i18n.t(\n 'marketsTooltips.YellowCards1stHalfTeam2Total'\n ),\n '2ndHalfYellowCardsOver/Under': i18n.t(\n 'marketsTooltips.2ndHalfYellowCardsOverUnder'\n ),\n 'YellowCards:2ndHalfTeam1Total': i18n.t(\n 'marketsTooltips.1stHalfYellowCardsOverUnder'\n ),\n 'YellowCards:2ndHalfTeam2Total': i18n.t(\n 'marketsTooltips.YellowCards2ndHalfTeam2Total'\n ),\n HalfWithTheMostYellowCards: i18n.t(\n 'marketsTooltips.HalfWithTheMostYellowCards'\n )\n};\n\n// this tooltips are not listen to Spring Configs MARKETS_TOOLTIPS parameter\nexport const EXTERNAL_MARKET_TOOLTIPS: Record = {\n 'MatchWinner(RetirementInsured)': i18n.t(\n 'marketsTooltips.MatchWinnerRetirementInsured'\n )\n};\n\nexport const AVAILABLE_MARKET_STATISTICS: Record<\n string,\n IMarketStatisticsType\n> = {\n P1XP2: {\n statisticsMarketType: 'GetStatsForMatch',\n marketTypeDetalis: 'P1XP2',\n template: EMarketStatisticsTemplate.LastFiveMeetings,\n title: i18n.t('sportsbook.lastFiveMeetingResultsHtFt'),\n type: 'FT',\n emptyHeight: '90'\n },\n CorrectScore: {\n statisticsMarketType: 'GetStatsForMatch',\n marketTypeDetalis: 'CorrectScore',\n template: EMarketStatisticsTemplate.LastFiveMeetings,\n title: i18n.t('sportsbook.lastFiveMeetingResultsFt'),\n emptyHeight: '90'\n },\n HalfTimeResult: {\n statisticsMarketType: 'GetStatsForMatch',\n marketTypeDetalis: 'HalfTimeResult',\n template: EMarketStatisticsTemplate.LastFiveMeetings,\n title: i18n.t('sportsbook.lastFiveMeetingResultsHt'),\n type: 'HT',\n emptyHeight: '90'\n },\n HalfTimeFullTime: {\n statisticsMarketType: 'GetHalfTimeFullTimePerformance',\n marketTypeDetalis: 'HalfTimeFullTime',\n template: EMarketStatisticsTemplate.LastFiveMatchesAvg,\n title: i18n.t('sportsbook.wdlListByTeam'),\n emptyHeight: '138'\n },\n '1stHalfBothTeamsToScore': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: '1stHalfBothTeamsToScore',\n marketCallType: '3',\n marketDataKey_individual: 'FirstHalfGoals',\n marketDataKey_H2H: 'BothTeamsFirstHalfGoals',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasThereGoalFh'),\n type: 'BothTeamsFirstHalfGoals',\n emptyHeight: '128'\n },\n BothTeamsToScore: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'BothTeamsToScore',\n marketCallType: '1',\n marketDataKey_individual: 'BothTeamsFullTimeGoals',\n marketDataKey_H2H: '',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasThereGoalFt'),\n type: 'BothTeamsFullTimeGoals',\n emptyHeight: '128'\n },\n '2ndHalfBothTeamsToScore': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: '2ndHalfBothTeamsToScore',\n marketCallType: '3',\n marketDataKey_individual: 'SecondHalfGoals',\n marketDataKey_H2H: 'BothTeamsSecondHalfGoals',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasThereGoalSh'),\n type: 'SecondHalfGoals',\n emptyHeight: '128'\n },\n '1stHalf-2ndHalfBothToScore': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: '1stHalf-2ndHalfBothToScore',\n marketCallType: '3',\n marketDataKey_individual: 'FullTimeGoals',\n marketDataKey_H2H: 'BothTeamsFullTimeGoals',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasThereGoalInMatch'),\n type: 'BothTeamsFullTimeGoals',\n emptyHeight: '128'\n },\n 'Team1ScoreYes/no': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'Team1ScoreYes/no',\n marketCallType: '2',\n marketDataKey_H2H: 'FullTimeGoals',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasTeamScoringGoalsMatch'),\n emptyHeight: '128'\n },\n 'Team2ScoreYes/No': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'Team2ScoreYes/No',\n marketCallType: '2',\n marketDataKey_H2H: 'FullTimeGoals',\n template: EMarketStatisticsTemplate.Results,\n title: i18n.t('sportsbook.wasTeamScoringGoalsMatch'),\n emptyHeight: '128'\n },\n Team1TotalGoalsExact: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'Team1TotalGoalsExact',\n marketCallType: '3',\n marketDataKey_individual: 'FullTimeGoalsAvg',\n marketDataKey_H2H: 'FullTimeScoredGoalsAvg',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageFullTimeGoals'),\n emptyHeight: '138'\n },\n Team1OverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'Team1OverUnder',\n marketCallType: '1',\n marketDataKey_individual: 'FullTimeGoalsAvg',\n marketDataKey_H2H: '',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageFullTimeGoals'),\n emptyHeight: '138'\n },\n Team2OverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'Team1OverUnder',\n marketCallType: '1',\n marketDataKey_individual: 'FullTimeGoalsAvg',\n marketDataKey_H2H: '',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageFullTimeGoals'),\n emptyHeight: '138'\n },\n SecondHalfHomeTeamTotalGoalsOverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'SecondHalfHomeTeamTotalGoalsOverUnder',\n marketCallType: '1',\n marketDataKey_individual: 'SecondHalfGoalsAvg',\n marketDataKey_H2H: '',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageSecondHalfGoals'),\n emptyHeight: '138'\n },\n SecondHalfAwayTeamTotalGoalsOverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'SecondHalfAwayTeamTotalGoalsOverUnder',\n marketCallType: '1',\n marketDataKey_individual: 'SecondHalfGoalsAvg',\n marketDataKey_H2H: '',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageSecondHalfGoals'),\n emptyHeight: '138'\n },\n OverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'OverUnder',\n marketCallType: '2',\n marketDataKey_H2H: 'FullTimeGoalsAvg',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageFullTimeGoals'),\n emptyHeight: '138'\n },\n '2ndHalfTotalOver/Under_': {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: '2ndHalfTotalOver/Under',\n marketCallType: '2',\n marketDataKey_H2H: 'SecondHalfGoalsAvg',\n template: EMarketStatisticsTemplate.GoalScored,\n title: '',\n emptyHeight: '138'\n },\n HalfTimeOverUnder: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'HalfTimeOverUnder',\n marketCallType: '2',\n marketDataKey_H2H: 'FirstHalfScoredGoalsAvg',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageFirstHalfGoalsScored'),\n emptyHeight: '138'\n },\n SecondHalfAwayTeamTotalGoalsInterval: {\n statisticsMarketType: 'GetScoredGoalsStatistics',\n marketTypeDetalis: 'SecondHalfAwayTeamTotalGoalsInterval',\n marketCallType: '2',\n marketDataKey_H2H: 'SecondHalfScoredGoalsAvg',\n template: EMarketStatisticsTemplate.GoalScored,\n title: i18n.t('sportsbook.averageSecondHalfGoals'),\n emptyHeight: '138'\n }\n};\n","import { FC } from 'react';\nimport styled from 'styled-components';\n\ntype TProps = {\n marketType: string;\n team1: string;\n team2: string;\n name?: string;\n};\n\nconst Header = styled.div`\n background-color: var(--v3-black-0);\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n`;\n\nconst MarketName = styled.div`\n flex: 1;\n color: var(--v3-primary-6);\n letter-spacing: 0.42px;\n line-height: 16px;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n padding: 4px 2px;\n &:first-child {\n padding-left: 8px;\n }\n &:last-child {\n padding-right: 8px;\n }\n`;\n\nexport const HeaderComp: FC = ({ marketType, team1, team2, name }) => {\n return marketType.toLowerCase().includes('handicap') ? (\n
\n {team1}\n {!!name && {name}}\n {team2}\n
\n ) : null;\n};\n","export const CLOSED_MARKETS: {\n exacts: Record;\n parts: string[];\n regExps: RegExp[];\n} = {\n exacts: {\n MatchRaceTo: true,\n OutcomeAndTotal: true,\n HalfTimeFullTime: true,\n OutcomeOrTotal: true,\n OutcomeOrScore: true,\n Total3: true,\n TeamToScore: true,\n SetTotalGames: true,\n GameWinner: true,\n MatchWinningMargin: true,\n QuarterWinningMargin: true,\n SetWinningMargin: true,\n FirstHalfVsSecondHalfHandicap: true,\n PlayerToScore2OrMore: true,\n PlayerScoresBothHalves: true,\n ToScoreInFirst10Mins: true,\n CornersRaceTo: true,\n ChanceMix: true,\n DoubleChanceCombo: true,\n PlayerGetsCard: true,\n ToBeSentOff: true,\n EachTeamToScoreUnder: true,\n '1stSet-Match': true,\n 'Hat-trick': true,\n 'HalfTime/FullTimeScore': true\n },\n parts: [\n 'OutcomeAndTotal',\n 'Goalscorer',\n 'CorrectScore',\n 'GameWinningMarginTeam',\n 'HalfTime/FullTimeScore',\n 'HalfTime/Full-timeandTotalGoals'\n ],\n regExps: [/^(GamePoint)\\d(Winner)$/, /^(RaceTo)\\d(Games)$/]\n};\n","import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const New = styled.span`\n height: 12px;\n font-size: 7px;\n background-color: var(--v3-error-color);\n color: var(--v3-black-0);\n padding: 1px 6px;\n border-radius: 4px;\n letter-spacing: 0.1px;\n line-height: 10px;\n`;\n\nexport const TitleContainer = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n gap: 3px;\n font-size: 12px;\n font-weight: 600;\n line-height: 16px;\n overflow: hidden;\n letter-spacing: 0.1px;\n text-overflow: ellipsis;\n color: var(--v3-text-color);\n`;\n\nexport const EachWayContainer = styled.span`\n font-size: 12px;\n color: var(--v3-text-color);\n user-select: none;\n`;\n\nexport const Extra = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nexport const Header = styled.div<{ $isActive?: boolean }>`\n background-color: var(--v3-black-0);\n display: flex;\n align-items: center;\n flex-direction: row;\n padding: 12px 8px;\n position: relative;\n cursor: pointer;\n border-radius: 6px;\n line-height: 16px;\n height: 40px;\n ${props =>\n props.$isActive\n ? `\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n &:after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: 0;\n }\n `\n : isMobile()\n ? `\n border-radius: 6px;\n margin-bottom: 4px;\n `\n : `\n margin-bottom: 4px;\n `}\n ${isMobile() &&\n `\n border-top-right-radius: 6px;\n border-top-left-radius: 6px;\n `};\n`;\n\nexport const Body = styled.div`\n background-color: var(--v3-black-0);\n padding-top: 4px;\n &:nth-last-child(1) {\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n ${isMobile()\n ? `\n margin-bottom: 4px;\n border-bottom-right-radius: 6px;\n border-bottom-left-radius: 6px;\n `\n : `\n margin-bottom: 2px;\n `}\n`;\n","import { ReactElement, ReactNode, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { CLOSED_MARKETS } from 'utils/constants/sportsbook/closed-markets-list';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { ADD_MARKET_CARDS } from 'utils/constants/tour';\nimport { TOUR_ACTIVE_CLASS } from 'utils/generic/tour-settings';\nimport { isMobile } from 'utils/is-mobile';\nimport { Market } from 'interfaces/sportsbook-data-levels';\nimport {\n Body,\n EachWayContainer,\n Extra,\n Header,\n New,\n TitleContainer\n} from './style';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { EventAction } from 'components/EventAction';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { getEachWayPartnerTerms } from 'store/selectors/racing-data';\nimport './index.less';\n\ntype PanelProps = {\n title: string;\n children: any;\n groupKey: string;\n image?: any;\n icon?: any;\n extra?: any;\n extraMarketInfo?: ReactNode;\n market?: Market[];\n Index?: number;\n extraFavourite?: ReactElement;\n notCompact?: boolean;\n toggleCompact?: (notCompact: boolean) => void;\n allCollapsed?: boolean;\n isFavorite?: boolean;\n};\n\nconst getIsActive = ({\n groupKey,\n allCollapsed,\n notCompact,\n Index\n}: {\n groupKey: string;\n allCollapsed: boolean | undefined;\n notCompact: boolean | undefined;\n Index: number | undefined;\n}) => {\n const { exacts, parts, regExps } = CLOSED_MARKETS;\n\n if (notCompact !== undefined) {\n return notCompact;\n }\n\n if (allCollapsed !== undefined) {\n return !allCollapsed;\n }\n\n if (!+SpringConfigs.SPORT_MARKET_IS_COMPACT) {\n return true;\n }\n\n if (+SpringConfigs.SPORT_MARKET_IS_COMPACT) {\n return (Index || 0) < +SpringConfigs.SPORT_MARKET_IS_COMPACT;\n }\n\n if (exacts[groupKey]) {\n return false;\n }\n\n for (const part of parts) {\n if (groupKey && groupKey.includes(part)) {\n return false;\n }\n }\n\n for (const regExp of regExps) {\n if (regExp.test(groupKey)) {\n return false;\n }\n }\n\n return false;\n};\n\nexport const MarketCollapse = (props: PanelProps): ReactElement => {\n const [active, setActive] = useState(\n getIsActive({\n groupKey: props.groupKey,\n allCollapsed: props.allCollapsed,\n notCompact: props.notCompact,\n Index: props.Index\n })\n );\n\n const [isNew, setIsNew] = useState(false);\n const { t } = useTranslation();\n const manualEachWayTerms = useSelector(getEachWayPartnerTerms);\n\n useEffect(() => {\n setActive(\n getIsActive({\n groupKey: props.groupKey,\n allCollapsed: props.allCollapsed,\n notCompact: props.notCompact,\n Index: props.Index\n })\n );\n }, [props?.Index, props.allCollapsed, props.groupKey, props.notCompact]);\n\n useEffect(() => {\n (props.market || []).forEach(element => {\n if (element.is_new) {\n setIsNew(true);\n }\n });\n }, [props.market]);\n\n const eachWay = useMemo(() => {\n const market = props.market?.length ? props.market[0] : null;\n const eachWay: {\n allowed: boolean;\n K: number;\n place: number;\n } = {\n allowed: false,\n K: 0,\n place: 0\n };\n\n if (market) {\n const eachWayData = manualEachWayTerms[String(market.id)]\n ? {\n allowed: manualEachWayTerms[String(market.id)],\n K: manualEachWayTerms[String(market.id)].ManualEachWayK,\n place: manualEachWayTerms[String(market.id)].ManualEachWayPlace\n }\n : {\n allowed: market.extra_info,\n K: market.extra_info?.EachWayK,\n place: market.extra_info?.EachWayPlace\n };\n\n eachWay.allowed = !!(\n eachWayData.allowed &&\n eachWayData.K &&\n eachWayData.place\n );\n\n if (eachWay.allowed) {\n eachWay.K = eachWayData.K || 0;\n eachWay.place = eachWayData.place || 0;\n }\n }\n\n return eachWay;\n }, [props.market, manualEachWayTerms]);\n\n const hasEarlyPayout = !!props?.market?.[0]?.has_early_payout;\n\n return (\n (\n \n {children}\n \n )}\n >\n {\n setActive(!active);\n\n props.toggleCompact && props.toggleCompact(!active);\n }}\n className={cc([\n 'market-collapse',\n {\n marketCollapse__earlyPayout: hasEarlyPayout,\n 'marketCollapse__earlyPayout--active': hasEarlyPayout && active,\n marketCollapse__favorite:\n SpringConfigs.USER_PERSONALIZATION_ENABLED && props.isFavorite,\n 'marketCollapse__favorite--active':\n SpringConfigs.USER_PERSONALIZATION_ENABLED &&\n props.isFavorite &&\n active\n }\n ])}\n >\n \n \n {props.title}\n \n {props.extraMarketInfo ? props.extraMarketInfo : null}\n {isNew && {t('account.new')}}\n \n {eachWay.allowed && (\n \n {t('sportsbook.eachWayInfo', {\n K: eachWay.K,\n place: eachWay.place\n })}\n \n )}\n {\n event.stopPropagation();\n }}\n className=\"marketCollapse__tooltip-inner\"\n >\n {props.extra}\n \n {props.extraFavourite}\n \n }\n />\n \n {active && (\n \n {props.children}\n \n )}\n \n );\n};\n","import { SyntheticEvent } from 'react';\nimport { Tooltip } from 'antd';\nimport { TooltipPlacement } from 'antd/lib/tooltip';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n EXTERNAL_MARKET_TOOLTIPS,\n Markets_Tooltips\n} from 'utils/constants/markets';\nimport { isMobile } from 'utils/is-mobile';\nimport { GlobalIcon } from 'components/GlobalIcon';\n\ntype TMarketInfoTooltipProps = {\n placement: TooltipPlacement;\n marketType: string;\n};\n\nexport const MarketInfoTooltip = ({\n placement,\n marketType\n}: TMarketInfoTooltipProps) => {\n return (\n
\n {\n return triggerNode.parentElement || document.body;\n }}\n placement={isMobile() ? 'bottom' : placement}\n >\n e.stopPropagation()}\n />\n \n
\n );\n};\n","import { Event } from 'interfaces/sportsbook-data-levels';\n\nexport const createOddType = (\n event: Event,\n { team1, team2 }: { team1: string; team2: string },\n groupName = ''\n): string => {\n const mapObj: Record = {\n w1: team1,\n w2: team2,\n p1: team1,\n p2: team2,\n team1: team1,\n team2: team2\n };\n\n const name = event?.name?.replace(\n /w1|w2|p1|p2|team1|team2/gi,\n (matched: string) => mapObj[matched?.toLowerCase()]\n );\n\n let title = `${name}${event.base ? ` (${event.base})` : ''}`;\n\n if (groupName?.toLowerCase().includes('handicap')) {\n title = `(${event.base ? event.base : '0'})`;\n }\n\n return title;\n};\n","import { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { addBetSlipEvent } from 'utils/betslip/betslip';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { createOddType } from 'utils/sportsbook/create-odd-type';\nimport {\n IScoreOptions,\n orderOptions\n} from 'utils/sportsbook/order-correct-score-market';\nimport { Event, GameInfo, Market } from 'interfaces/sportsbook-data-levels';\nimport { Odds } from 'components/Odds';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useOddChange } from 'hooks/useOddChange';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useSportName } from 'providers/SportDataProvider';\nimport { updateEventAndGameIds } from 'store/actions';\nimport {\n getEditBet,\n getEventIds,\n getQuickBetEnabled\n} from 'store/selectors/betslip';\nimport { getSportIdByAlias } from 'store/selectors/new-sportsbook';\nimport { GlobalIcon } from '../GlobalIcon';\nimport './index.less';\n\ntype Props = {\n market: Market;\n setEvent?: Function;\n teamsInfo: {\n team1: string;\n team2: string;\n startAt: number;\n };\n isUsaSinglePage: boolean;\n oddFormat: number;\n sportName?: string;\n competitionName?: string;\n gameInfo?: GameInfo & {\n type: number;\n };\n currentSport?: string;\n sport?: string;\n gameId?: number;\n isBlocked?: number;\n};\n\nconst MARKETS_ROW_COUNT = 8;\nconst MARKETS_SHOW_LINES = 2;\n\nexport const MatchCardBase: FC = ({\n market,\n teamsInfo,\n sportName,\n competitionName,\n gameInfo,\n isBlocked,\n currentSport,\n gameId: _gameId,\n sport: _sport,\n isUsaSinglePage,\n oddFormat\n}) => {\n const dispatch = useDispatch();\n const configs = useSportsbookConfigs();\n\n const [showAllEvents, setShowAllEvents] = useState(false);\n const selectedEventIds = useSelector(getEventIds).map(id => `${id}`);\n const sportData = useSportName();\n const quickBetEnabled = useSelector(getQuickBetEnabled);\n const { t } = useTranslation();\n const editBet = useSelector(getEditBet);\n\n const currentSportId = useSelector(\n getSportIdByAlias((_sport || currentSport) as string, configs.type)\n );\n\n // ATTENTION: POSSIBLE REFACTOR\n const {\n params: { sport = _sport || '', game }\n } = useSbRouteMatch();\n\n const gameId = _gameId || game;\n\n const orderedEvents = useMemo(() => {\n const events: Event[] = Object.values(market.event || {});\n\n if (events.length === 0) {\n return [];\n }\n\n const maxDisplayColumn: number | undefined = Math.max(\n ...events.map(event => event.display_column || 0)\n );\n\n if (maxDisplayColumn === 0) {\n return events.sort((a, b) => a.order - b.order);\n }\n\n const eventGroupsNew: Event[][] = Array.from(\n { length: (maxDisplayColumn || 0) + 1 },\n () => []\n );\n\n for (let i = 0, len = eventGroupsNew.length; i < len; i++) {\n eventGroupsNew[i] = events\n .filter(event => event.display_column === (i === 0 ? undefined : i))\n .sort((a, b) => a.order - b.order);\n }\n\n const orderedEvents: Event[] = [];\n\n const maxLength = Math.max(...eventGroupsNew.map(group => group.length));\n\n for (let i = 0; i < maxLength; i++) {\n eventGroupsNew.forEach(eventGroup => {\n eventGroup.length &&\n orderedEvents.push((eventGroup as Event[]).shift() as Event);\n });\n }\n\n return orderedEvents;\n }, [market.event]);\n\n const isCorrectScore = market.market_type?.includes('CorrectScore');\n\n const options = useMemo(() => {\n return orderedEvents.map((event: Event) => ({\n value: event.id && event.id.toString(),\n coeficient: event.price,\n handicap: createOddType(event, teamsInfo, market.market_type)\n })) as IScoreOptions;\n }, [orderedEvents, teamsInfo, market.market_type]);\n\n const events = useMemo(() => {\n const result = isCorrectScore ? orderOptions(options) : options;\n\n const eventsCount = showAllEvents\n ? result.length\n : MARKETS_SHOW_LINES * (market.col_count || 0);\n\n if (\n result.length <= (market.col_count || 0) * MARKETS_ROW_COUNT &&\n result.length > eventsCount &&\n (isCorrectScore\n ? result.length <= MARKETS_ROW_COUNT * MARKETS_SHOW_LINES\n : true)\n ) {\n return result;\n }\n\n return result.slice(0, eventsCount);\n }, [market.col_count, showAllEvents, isCorrectScore, options]);\n\n const showToggleEventsButton = useMemo(() => {\n const result = isCorrectScore ? orderOptions(options) : options;\n\n return (\n (isCorrectScore ? MARKETS_SHOW_LINES : market.col_count || 0) *\n MARKETS_ROW_COUNT <\n result.length\n );\n }, [market.col_count, options, isCorrectScore]);\n\n const marketType = market.market_type || market.type;\n\n const addToBetSlip = (eventId: string | number) => {\n const event = orderedEvents.find(\n (event: Event) => event.id === Number(eventId)\n );\n\n let sportIndex = sport;\n\n if (!isNaN(Number(sport)) && sportName) {\n sportIndex = sportName.split(' ').join('');\n }\n\n let addedFromInlineCard = false;\n\n if (editBet?.active) {\n addedFromInlineCard = true;\n }\n\n addBetSlipEvent(\n {\n sport_id: currentSportId,\n gameId: Number(gameId),\n marketType: marketType || '',\n market: market,\n eventId: Number(eventId),\n eventBase: event?.base,\n team1: teamsInfo.team1,\n team2: teamsInfo.team2 || '',\n coeficient: event?.price,\n event_name: event?.name || '',\n game_start_date: teamsInfo.startAt,\n sport_index: (sportIndex as string) || currentSport,\n sport_name: sportData || sportName || '',\n sport_alias: '',\n competition_name: competitionName || '',\n current_game_state: gameInfo?.current_game_state || '',\n current_game_time: gameInfo?.current_game_time || '',\n isLive: gameInfo?.type === 1,\n region_name: '',\n market_name: market?.name || '',\n game_name: `${teamsInfo.team1} ${\n teamsInfo.team2 ? ` - ${teamsInfo.team2}` : ''\n }`,\n game_info: gameInfo,\n express_id: market.prematch_express_id || market.express_id,\n ewAllowed: event?.ew_allowed,\n type_1: event?.type_1\n },\n addedFromInlineCard\n );\n };\n\n const { oddChangeHandler, popover, hidePopover } = useOddChange(\n () => {},\n addToBetSlip,\n selectedEventIds\n );\n\n useEffect(() => {\n if (quickBetEnabled && selectedEventIds.length) {\n dispatch(updateEventAndGameIds([]));\n }\n }, [quickBetEnabled]);\n\n return (\n <>\n \n \n \n\n {showToggleEventsButton && (\n setShowAllEvents(prev => !prev)}\n >\n \n {t(\n `sportsbook.${\n showAllEvents ? 'showLessSelections' : 'showMoreSelections'\n }`\n )}\n \n \n \n )}\n \n );\n};\n","import { ReactElement } from 'react';\nimport { useSelector } from 'react-redux';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Event, GameInfo, Market } from 'interfaces/sportsbook-data-levels';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { getOddFormat } from 'store/selectors/betslip';\nimport { MatchCardBase } from '../MatchCardBase';\n\ntype Props = {\n groupedMarkets: Market[];\n teamsInfo: {\n team1: string;\n team2: string;\n startAt: number;\n };\n gameInfo?: GameInfo & {\n type: number;\n };\n sportName: string;\n competitionName: string;\n currentSport?: string;\n sport?: string;\n gameId?: number;\n isBlocked?: number;\n};\n\nexport const MatchCardBaseGroup = ({\n groupedMarkets,\n teamsInfo,\n sportName,\n competitionName,\n gameInfo,\n currentSport,\n sport,\n gameId,\n isBlocked\n}: Props): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const oddFormat = useSelector(getOddFormat);\n\n const isUsaSinglePage =\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN && gameId;\n\n return (\n <>\n {groupedMarkets.map((market: Market) => {\n const marketCopy: Market & { event: Record } = {\n ...market,\n event: {}\n };\n\n const eventList = Object.values(market.event || {});\n\n if (eventList.length) {\n eventList.forEach((event: Event) => {\n marketCopy.event[event.id] = { ...event };\n });\n }\n\n return (\n \n );\n })}\n \n );\n};\n","import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const MarketsWrapper = styled.div<{ isTheatreMode?: boolean }>`\n flex: 1;\n display: flex;\n flex-direction: row;\n ${props => !props.isTheatreMode && !isMobile() && 'overflow: auto;'}\n ${isMobile()\n ? `\n margin: 4px 4px 0\n `\n : `\n margin-top: 2px;\n `}\n`;\n\nexport const MarketColumn = styled.div<{\n fullWidth: boolean;\n columnIndex: number;\n}>`\n overflow: auto;\n flex: 1;\n width: ${props => (props.fullWidth ? '100%' : '50%')};\n ${props => (props.columnIndex == 1 ? 'margin-left: 4px' : '')}\n ${isMobile() &&\n `\n border-radius: 4px;\n `}\n`;\n\nexport const CombinCount = styled.div`\n font-size: 12px;\n font-weight: 600;\n color: var(--v3-black-45);\n`;\n","import {\n ReactElement,\n Suspense,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { Tooltip } from 'antd';\nimport { TooltipPlacement } from 'antd/lib/tooltip';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n AVAILABLE_MARKET_STATISTICS,\n EXTERNAL_MARKET_TOOLTIPS,\n Markets_Tooltips\n} from 'utils/constants/markets';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy as lazyImport } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport { TEvent } from 'interfaces/sportsbook';\nimport { Game, Market as TMarket } from 'interfaces/sportsbook-data-levels';\nimport { HeaderComp } from './Header';\nimport { EventAction } from 'components/EventAction';\nimport { FavoriteButtonMarket } from 'components/FavoriteButton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { MarketCollapse } from 'components/MarketCollapse';\nimport { MarketInfoTooltip } from 'components/MarketsList/partials/MarketInfoTooltip';\nimport { MatchCardBaseGroup } from 'components/MatchCardBaseGroup';\nimport { templatesProps } from 'newcomponents/Shared/sportsbook/MarketStatistics/templatesMapping';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { getFavoriteActiveStateById } from 'store/selectors/fav-data';\nimport { CombinCount } from '../style';\nimport './index.less';\n\nif (SpringConfigs.DIRECTION === 'rtl') {\n import('./rtl.less');\n}\n\nconst { MarketStatistics } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"market-statistic\" */ 'newcomponents/Shared/sportsbook/MarketStatistics'\n )\n);\n\ntype TMarketRowProps = {\n group: any;\n Index: number;\n sport?: string;\n gameId?: number;\n currentSport?: string;\n toggleCompact?: (notCompact: boolean) => void;\n isAllCollapsed?: boolean;\n marketLength: number;\n game: Game;\n competitionName: string;\n sportName: string;\n};\n\nconst HEADER_COMP_REQUIRED_COL_COUNT = 3;\n\nexport const MarketRow = ({\n group,\n game,\n Index,\n currentSport,\n sport,\n gameId,\n toggleCompact,\n isAllCollapsed,\n marketLength,\n competitionName,\n sportName\n}: TMarketRowProps): ReactElement => {\n const { t } = useTranslation();\n\n const favGroupName = `${group?.markets?.[0]?.type || ''}-${\n group?.markets?.[0]?.name || ''\n }`;\n\n const isFavorite = useSelector(\n getFavoriteActiveStateById(favGroupName, 'markets')\n );\n\n const handlePosition: TooltipPlacement =\n Index === marketLength - 1\n ? `top${SpringConfigs.IS_RTL ? 'Left' : 'Right'}`\n : `bottom${SpringConfigs.IS_RTL ? 'Left' : 'Right'}`;\n\n const hasMarketToolTipBySetting =\n !!SpringConfigs?.MARKETS_TOOLTIPS &&\n group.markets[0].type in Markets_Tooltips;\n\n const hasExternalToolTip = group.markets[0].type in EXTERNAL_MARKET_TOOLTIPS;\n\n const hasMarketToolTip = hasMarketToolTipBySetting || hasExternalToolTip;\n\n const hasEarlyPayout = (group.markets as TMarket[])?.some(\n ({ has_early_payout }) => !!has_early_payout\n );\n\n const TemplateComponent = useMemo(() => {\n const marketType = group.markets[0].type;\n const availavleMarketType = AVAILABLE_MARKET_STATISTICS[marketType];\n const _template = templatesProps[availavleMarketType?.template];\n\n return _template;\n }, []);\n\n const [showMarketStat, setShowMarketStat] = useState(false);\n const showMarketStatIcon =\n Object.keys(AVAILABLE_MARKET_STATISTICS).includes(group.markets[0].type) &&\n SpringConfigs.STATISTICS_SWITCHER &&\n game.is_stat_available;\n\n const handleStatistic = useCallback(() => {\n if (!showMarketStat) {\n toggleCompact?.(true);\n }\n\n setShowMarketStat(prev => !prev);\n }, []);\n\n useEffect(() => {\n if (!group.notCompact) {\n setShowMarketStat(false);\n }\n }, [group.notCompact]);\n\n return (\n \n }\n >\n \n \n ) : null\n }\n extra={\n <>\n {showMarketStatIcon && (\n \n )}\n {hasEarlyPayout && (\n {\n return triggerNode.parentElement || document.body;\n }}\n placement={handlePosition}\n arrowPointAtCenter\n >\n
\n \n }\n onClick={(e: SyntheticEvent) => e.stopPropagation()}\n />\n
\n \n )}\n\n {group.cashout && (\n {\n return triggerNode.parentElement || document.body;\n }}\n placement={handlePosition}\n >\n \n }\n onClick={(e: SyntheticEvent) => e.stopPropagation()}\n />\n \n )}\n {group.expressId !== undefined && (\n
\n {\n return triggerNode.parentElement || document.body;\n }}\n placement={handlePosition}\n >\n e.stopPropagation()}\n />\n {group.expressId}\n \n
\n )}\n \n }\n extraFavourite={\n \n }\n >\n event.type_1 === 'Tie'\n )?.name) ||\n ''\n }\n marketType={group.marketType}\n />\n {showMarketStat && (\n }>\n \n \n )}\n \n \n );\n};\n","import {\n memo,\n ReactElement,\n useCallback,\n useEffect,\n useRef,\n useState\n} from 'react';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { isMobile } from 'utils/is-mobile';\nimport { Game, MarketGroupItem } from 'interfaces/sportsbook-data-levels';\nimport { MarketRow } from './MarketRow';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useScrollToTop } from 'hooks/useScrollToTop';\nimport './index.less';\n\ntype TMarketsGroupItemsProps = {\n data: Array;\n menu: string;\n game: Game;\n competitionName: string;\n sportName: string;\n targetId?: string;\n currentSport?: string;\n sport?: string;\n gameId?: number;\n isAllCollapsed?: boolean;\n lazyScrollSettings?: {\n initialCount: number;\n loadMoreCount: number;\n };\n};\n\nconst INITIAL_COUNT = 15;\nconst LOAD_MORE_COUNT = 15;\nconst LAZY_LOAD_THRESHOLD_FIXED_SCROLL = 0.3;\nconst LAZY_LOAD_THRESHOLD_NOT_FIXED_SCROLL = 0.6;\n\nexport const MarketsGroupItems = memo(\n ({\n data,\n currentSport,\n sport,\n gameId,\n isAllCollapsed,\n lazyScrollSettings = {\n initialCount: INITIAL_COUNT,\n loadMoreCount: LOAD_MORE_COUNT\n },\n targetId,\n menu,\n game,\n competitionName,\n sportName\n }: TMarketsGroupItemsProps): ReactElement => {\n useScrollToTop(targetId, [menu]);\n\n const configs = useSportsbookConfigs();\n\n const changedMarkets = useRef>({});\n const [marketGroups, setMarketGroups] = useState(\n data.slice(0, lazyScrollSettings.initialCount)\n );\n\n const isMoreDataAvailable = marketGroups.length < data.length;\n\n const loadMore = useCallback(() => {\n setMarketGroups(prevMarkets =>\n data.slice(0, prevMarkets.length + lazyScrollSettings.loadMoreCount)\n );\n }, [data, lazyScrollSettings.loadMoreCount]);\n\n useEffect(() => {\n Object.keys(changedMarkets.current)?.forEach(group => {\n const getMarketGroup: MarketGroupItem | undefined = data.find(\n updateGroup => updateGroup.type === group\n );\n\n if (getMarketGroup) {\n getMarketGroup.notCompact = changedMarkets.current[group];\n }\n });\n\n if (data.length <= marketGroups.length) {\n setMarketGroups(data.slice(0, marketGroups.length));\n } else {\n setMarketGroups(data.slice(0, lazyScrollSettings.initialCount));\n }\n }, [data]);\n\n const toggleCompact = (key: string, active: boolean) => {\n const group: MarketGroupItem | undefined = marketGroups.find(\n group => group.type === key\n );\n\n if (group) {\n changedMarkets.current = {\n ...changedMarkets.current,\n [group.type]: active\n };\n\n group.notCompact = active;\n\n setMarketGroups([...marketGroups]);\n }\n };\n\n return (\n \n {marketGroups.map((group, index) => (\n toggleCompact(group.type, notCompact)}\n isAllCollapsed={isAllCollapsed}\n competitionName={competitionName}\n sportName={sportName}\n game={game}\n />\n ))}\n \n );\n }\n);\n","import { ReactElement, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { isMobile } from 'utils/is-mobile';\nimport { Game, MarketGroupItem } from 'interfaces/sportsbook-data-levels';\nimport { MarketRow } from './MarketRow';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport './index.less';\n\ntype TMarketsGroupItemsProps = {\n data: Array;\n game: Game;\n competitionName: string;\n sportName: string;\n menu: string;\n currentSport?: string;\n sport?: string;\n gameId?: number;\n isAllCollapsed?: boolean;\n handleShowMoreClick?: () => void;\n};\n\nconst INITIAL_COUNT = 3;\n\nexport const MarketsGroupItemsNoLazy = ({\n data,\n currentSport,\n sport,\n gameId,\n isAllCollapsed,\n handleShowMoreClick,\n game,\n competitionName,\n sportName\n}: TMarketsGroupItemsProps): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const changedMarketsRef = useRef>({});\n const [marketGroups, setMarketGroups] = useState(\n data.slice(0, INITIAL_COUNT)\n );\n\n const { t } = useTranslation();\n\n useEffect(() => {\n Object.keys(changedMarketsRef.current)?.forEach(group => {\n const getMarketGroup: MarketGroupItem | undefined = data.find(\n updateGroup => updateGroup.type === group\n );\n\n if (getMarketGroup) {\n getMarketGroup.notCompact = changedMarketsRef.current[group];\n }\n });\n\n if (configs.fixedScroll && !isMobile()) {\n setMarketGroups(data);\n } else if (data.length <= marketGroups.length) {\n setMarketGroups(data.slice(0, marketGroups.length));\n } else {\n setMarketGroups(data.slice(0, INITIAL_COUNT));\n }\n }, [data]);\n\n const toggleCompact = (key: string, active: boolean) => {\n const group: MarketGroupItem | undefined = marketGroups.find(\n group => group.type === key\n );\n\n if (group) {\n changedMarketsRef.current = {\n ...changedMarketsRef.current,\n [group.type]: active\n };\n\n group.notCompact = active;\n\n setMarketGroups([...marketGroups]);\n }\n };\n\n return (\n <>\n {marketGroups.map((group, index) => (\n toggleCompact(group.type, notCompact)}\n marketLength={marketGroups.length}\n competitionName={competitionName}\n sportName={sportName}\n game={game}\n />\n ))}\n
\n \n {t('sportsbook.showMoreMarkets')}\n
\n \n \n );\n};\n","import { ComponentProps } from 'react';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport './index.less';\nimport '../index.less';\n\ntype Props = ComponentProps & {\n pageType: ESportsbookPageTypes;\n isAllCollapsed: boolean | undefined;\n};\n\nconst { RocketBetComponent } = lazy(\n () => import(/* webpackChunkName: \"rocketbet\" */ './Component')\n);\n\nexport const RocketBet = (props: Props) => {\n return SpringConfigs.ROCKET_BET &&\n props.pageType !== ESportsbookPageTypes.esport ? (\n \n ) : null;\n};\n","import styled from 'styled-components';\nimport { isMobile } from 'utils/is-mobile';\n\nexport const Wrapper = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n background-color: var(--v3-black-0);\n ${isMobile()\n ? `\n margin-top: 4px;\n `\n : `\n border-radius: 6px;\n overflow: auto;\n margin-bottom: 4px;\n `}\n`;\n\nexport const New = styled.span`\n height: 12px;\n font-size: 7px;\n background-color: #ff6262;\n color: #fff;\n padding: 1px 6px;\n border-radius: 4px;\n letter-spacing: 0.1px;\n line-height: 10px;\n margin-left: 4px;\n margin-top: -6px;\n`;\n\nexport const Menu = styled.div`\n overflow: auto;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n overflow-y: hidden;\n padding-left: 6px;\n`;\n\nexport const FavoritesCount = styled.span`\n font-size: 14px;\n font-weight: 600;\n margin-left: 6px;\n line-height: 0.85;\n`;\n","import { FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { InputRef } from 'antd';\nimport cc from 'classcat';\nimport { DEBOUNCE_DELAY } from 'utils/constants/app/magic-numbers-app';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Input } from 'newcomponents/UI/Input';\nimport { useDebounce } from 'hooks/useDebounce';\n\ntype TMarketsSearchProps = {\n setSearchValue: (value: string | null) => void;\n};\n\nconst SEARCH_CHANGE_ANIMATION_DELAY = 100;\n\nexport const MarketsSearch: FC = ({ setSearchValue }) => {\n const { t } = useTranslation();\n const inputRef = useRef(null);\n const [search, setSearch] = useState(null);\n const [debounceSearchOpen, setDebounceSearchOpen] = useState(false);\n const [isMarketsSearchOpened, setIsMarketsSearchOpened] = useState(false);\n\n useEffect(() => {\n if (isMarketsSearchOpened) {\n setDebounceSearchOpen(true);\n setSearchValue('');\n } else {\n setTimeout(() => {\n setDebounceSearchOpen(false);\n }, SEARCH_CHANGE_ANIMATION_DELAY);\n setSearch(null);\n setSearchValue(null);\n }\n }, [isMarketsSearchOpened]);\n\n useEffect(() => {\n if (debounceSearchOpen && inputRef.current) {\n inputRef.current?.focus();\n }\n }, [debounceSearchOpen]);\n\n useDebounce(\n () => {\n setSearchValue(search);\n },\n DEBOUNCE_DELAY._300,\n [search]\n );\n\n return (\n <>\n setIsMarketsSearchOpened(open => !open)}\n >\n \n \n\n {debounceSearchOpen && (\n setIsMarketsSearchOpened(open => !open)}\n >\n \n\n
\n setSearch(e.target.value)}\n value={search ?? ''}\n onClick={e => e.stopPropagation()}\n bordered={false}\n placeholder={t('sportsbook.searchMarketsPlaceholder')}\n />\n
\n \n )}\n \n );\n};\n","import {\n Dispatch,\n ReactElement,\n SetStateAction,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { AFTER_SIGN_IN_ACTION_TYPES } from 'services/afterSignIn';\nimport { FavoritesCount, Menu, New, Wrapper } from './style';\nimport { MarketsSearch } from 'components/BetsMenu/components/MarketsSearch';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { DEFAULT_SELECTED_MENU } from 'components/MarketsList';\nimport { useOpenBetBuilder } from 'newhooks/sportsbook/useOpenBetBuilder';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\nimport './index.less';\n\nif (SpringConfigs.DIRECTION === 'rtl') {\n import('./rtl.less');\n}\n\ntype Prop = {\n marketGroups: {\n [key: string]: {\n name: string;\n isNew: boolean;\n };\n };\n onChange: Function;\n activeMenu: string;\n favCount: number;\n hideAll?: boolean;\n isLive?: boolean;\n regionAlias?: string;\n game: {\n team1_name: string;\n team2_name: string;\n sportcast_id: number;\n id: number;\n };\n hasBoostedEvents?: boolean | null;\n isAllCollapsed?: boolean;\n setIsAllCollapsed: Dispatch>;\n sportId: number;\n setSearchValue: (value: string | null) => void;\n searchValue: string | null;\n};\n\nexport const BetsMenu = ({\n hasBoostedEvents,\n marketGroups,\n hideAll,\n activeMenu = 'all',\n onChange,\n isLive,\n favCount,\n game,\n regionAlias,\n isAllCollapsed,\n setIsAllCollapsed,\n sportId,\n setSearchValue,\n searchValue\n}: Prop): ReactElement => {\n const handleActiveMenuChange = (menu: string) => {\n onChange(menu);\n };\n\n const { t } = useTranslation();\n\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const menuItems = useMemo(\n () => Object.keys(marketGroups).filter(market => market !== 'undefined'),\n [marketGroups]\n );\n\n const betBuilderProps = {\n sportId,\n fixtureId: game.sportcast_id,\n gameTitle: `${game.team1_name} - ${game.team2_name}`,\n afterSignInActonName: `handleActiveMenuChange_${game.id}_${AFTER_SIGN_IN_ACTION_TYPES.TOGGLE_BET_BUILDER_MODAL}`\n };\n\n const { openBetBuilder } = useOpenBetBuilder(\n betBuilderProps,\n isMobile() ? null : () => handleActiveMenuChange(ENotRealSports.betBuilder)\n );\n\n useEffect(() => {\n if (!isLoggedIn && activeMenu === ENotRealSports.betBuilder) {\n handleActiveMenuChange(DEFAULT_SELECTED_MENU);\n }\n }, [isLoggedIn]);\n\n const BoostedOddsMenuItem = useCallback(() => {\n if (hasBoostedEvents) {\n return (\n handleActiveMenuChange(ENotRealSports.boostedOdds)}\n >\n \n {t('sportsbook.boostedOdds')}\n \n );\n } else {\n return null;\n }\n }, [hasBoostedEvents, activeMenu, handleActiveMenuChange]);\n\n return (\n \n \n \n {!SpringConfigs.USER_PERSONALIZATION_ENABLED ? (\n handleActiveMenuChange('favourites')}\n >\n \n {!!favCount && (\n {favCount}\n )}\n \n ) : null}\n {SpringConfigs.BET_BUILDER_SWITCHER &&\n game &&\n game.sportcast_id &&\n !isLive ? (\n SpringConfigs.HIDE_BET_BUILDER && regionAlias === 'Cyprus' ? null : (\n openBetBuilder(e)}\n >\n {t('sportsbook.betBuilder')}\n \n )\n ) : null}\n {!hideAll && (\n handleActiveMenuChange('all')}\n >\n {t('betslip.all')}\n \n )}\n \n {menuItems.map((key: string) => (\n handleActiveMenuChange(key)}\n >\n {marketGroups[key].name}\n {marketGroups[key].isNew && {t('account.new')}}\n \n ))}\n \n setIsAllCollapsed(prev => !prev)}\n >\n \n \n \n );\n};\n","import { Skeleton } from 'newcomponents/UI/Skeleton';\n\nexport const EmptyFavoritesSkeleton = () => {\n return ;\n};\n","import {\n ReactElement,\n Suspense,\n useCallback,\n useEffect,\n useMemo,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { MAIN_MARKETS_TYPE } from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { arrayMove } from 'utils/generic/array-move';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n filterFavGroups,\n getFavGroupsCount\n} from 'utils/sportsbook/fav-market-group';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport {\n Game,\n Market,\n MarketGroup,\n MarketGroupItem\n} from 'interfaces/sportsbook-data-levels';\nimport { LVision } from './LVision';\nimport { MarketsGroupItems } from './partials/MarketsGroupItems';\nimport { MarketsGroupItemsNoLazy } from './partials/MarketsGroupItemsNoLazy';\nimport { RocketBet } from './RocketBet';\nimport { MarketsListSkeleton } from './Skeleton';\nimport { MarketColumn, MarketsWrapper } from './style';\nimport { BetsMenu } from 'components/BetsMenu';\nimport { EmptyFavoritesSkeleton } from 'components/EmptyResultBoxes/EmptyFavorites/EmptyFavoritesSkeleton';\nimport { FavoriteButtonMarket } from 'components/FavoriteButton';\nimport { TextInfo } from 'components/GameDetails/TextInfo';\nimport { EmptyMarketsView } from 'components/MarketsList/EmptyMarketsView';\nimport 'components/MarketsList/index.less';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { GameUsaSkeleton } from 'newcomponents/Shared/sportsbook/MarketsList/Skeleton';\nimport { MarketWarning } from 'newcomponents/Shared/sportsbook/MarketWarning';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { EBoostType } from 'store/reducers/sport-data';\nimport {\n getFavoriteActiveStateById,\n getFavoriteMarketGroupNames\n} from 'store/selectors/fav-data';\nimport { getSportIdByAlias } from 'store/selectors/new-sportsbook';\nimport { getBoostedOdds } from 'store/selectors/sport-data';\n\nconst { BetBuilderContent } = lazy(\n () =>\n import(\n /* webpackChunkName: \"BetBuilderContent\" */ 'newcomponents/Shared/sportsbook/BetBuilderModal/components/BetBuilderContent'\n )\n);\n\nconst { EventCollapse } = lazy(\n () =>\n import(\n /* webpackChunkName: \"event-collapse-view\" */ 'components/EventCollapse'\n )\n);\n\nconst { EmptyFavorites } = lazy(\n () =>\n import(\n /* webpackChunkName: \"empty-favorites-view\" */ 'components/EmptyResultBoxes/EmptyFavorites'\n )\n);\n\nconst { MatchCardInlineUSA } = lazy(\n () =>\n import(\n /* webpackChunkName: \"events-item-view-usa\" */ 'components/Shared/MatchCardInlineUSA'\n )\n);\n\nexport const DEFAULT_SELECTED_MENU = 'all';\n\nexport interface Props {\n markets: Market[];\n game: Game;\n sportName: string;\n competitionName: string;\n isTwoColumn?: boolean;\n isTheatreMode?: boolean;\n isLive?: boolean;\n loading?: boolean;\n hideAll?: boolean;\n defaultGroupId?: string;\n currentSport?: string;\n regionAlias?: string;\n sport?: string;\n gameId?: number;\n compactView?: boolean;\n handleShowMoreClick?: () => void;\n targetId?: string;\n setTargetIdAsMarketColumnId?: boolean;\n competitionId?: number;\n isMultiview?: boolean;\n lazyScrollSettings?: {\n initialCount: number;\n loadMoreCount: number;\n };\n esport?: boolean;\n}\n\nconst MARKETS_SEARCH_LETTERS_COUNT = 3;\n\nexport const MarketList = (props: Props): ReactElement => {\n const configs = useSportsbookConfigs();\n const { t } = useTranslation();\n const { game = props.gameId } = useSearchParams();\n\n const favoriteMarkets = useSelector(getFavoriteMarketGroupNames);\n const boostedOdds = useSelector(getBoostedOdds);\n const currentSportId = useSelector(\n getSportIdByAlias(\n (props.sport || props.currentSport) as string,\n configs.type\n )\n );\n\n const isMainMarketFavorited = useSelector(\n getFavoriteActiveStateById(MAIN_MARKETS_TYPE, 'markets')\n );\n\n const [filteredMarkets, setFilteredMarkets] = useState(\n props.markets\n );\n\n const [marketsFilterSearchValue, setMarketsFilterSearchValue] = useState<\n string | null\n >(null);\n\n const [menu, setMenu] = useState(\n props.defaultGroupId || DEFAULT_SELECTED_MENU\n );\n\n const [isAllCollapsed, setIsAllCollapsed] = useState();\n const [mainMarketsExpanded, setMainMarketsExpanded] = useState(true);\n\n const favGroups = getFavGroupsCount(props.markets);\n\n const isOutright = props.game.show_type === 'OUTRIGHT';\n const shouldShowMainMarkets =\n +configs.spbLayoutType === 1 ||\n (+configs.spbLayoutType === 1 &&\n props.game.show_type !== 'OUTRIGHT' &&\n (menu === DEFAULT_SELECTED_MENU ||\n (menu === ENotRealSports.favourites && isMainMarketFavorited)));\n\n const hasBoostedEvents =\n !!props.gameId &&\n boostedOdds?.[props.gameId] &&\n (Object.values(boostedOdds[props.gameId]).some(\n ({ type }) => type === EBoostType.ALL\n ) ||\n Object.values(boostedOdds[props.gameId]).some(\n ({ type }) =>\n type === (props.isLive ? EBoostType.LIVE : EBoostType.PREMATCH)\n ));\n\n const onChangeMenu = useCallback(\n (selectedMarket: string) => {\n let filteredArray: Market[] = [];\n\n if (!props.hideAll && selectedMarket === 'all') {\n filteredArray = props.markets;\n } else if (selectedMarket === ENotRealSports.favourites) {\n filteredArray = filterFavGroups(props.markets);\n } else if (selectedMarket === ENotRealSports.boostedOdds) {\n if (boostedOdds && props.gameId) {\n const boostedEvents = boostedOdds[props.gameId];\n\n filteredArray = props.markets.filter((market: Market) => {\n return Object.keys(market.event || {}).some(\n event => !!boostedEvents[event]\n );\n });\n }\n } else if (selectedMarket === ENotRealSports.betBuilder) {\n filteredArray = props.markets;\n } else {\n filteredArray = props.markets.filter(\n (market: Market) => (market.group_id || 'Other') === +selectedMarket\n );\n }\n\n setFilteredMarkets(filteredArray);\n },\n [props.markets, favoriteMarkets]\n );\n\n useEffect(() => {\n if (marketsFilterSearchValue !== null) {\n const selectedMenu = menu;\n setMenu(DEFAULT_SELECTED_MENU);\n\n return () => {\n setMenu(selectedMenu);\n };\n }\n }, [marketsFilterSearchValue !== null]);\n\n useEffect(() => {\n if (props.defaultGroupId && menu !== props.defaultGroupId) {\n setMenu(props.defaultGroupId);\n }\n }, [game, props.defaultGroupId]);\n\n useEffect(() => {\n if (\n menu !== props.defaultGroupId &&\n menu !== ENotRealSports.favourites &&\n menu !== ENotRealSports.boostedOdds &&\n menu !== ENotRealSports.betBuilder &&\n menu !== DEFAULT_SELECTED_MENU &&\n !props.markets.some(el => String(el.group_id) === menu)\n ) {\n if (props.defaultGroupId && props.defaultGroupId !== menu) {\n setMenu(props.defaultGroupId || DEFAULT_SELECTED_MENU);\n }\n\n return;\n }\n\n onChangeMenu(menu);\n }, [props.markets, onChangeMenu, menu, favoriteMarkets]);\n\n const groups = useMemo(() => {\n let groupsData: MarketGroup = {};\n\n const marketsToDisplay =\n marketsFilterSearchValue === null ||\n marketsFilterSearchValue.length < MARKETS_SEARCH_LETTERS_COUNT\n ? filteredMarkets\n : structuredClone(props.markets).filter(m => {\n const marketName = m.name\n .replace(/\\b(\\w*team 1\\w*)\\b/gi, props.game.team1_name)\n .replace(/\\b(\\w*team 2\\w*)\\b/gi, props.game.team2_name);\n\n return marketName\n .toLowerCase()\n .includes(marketsFilterSearchValue.toLowerCase().trim());\n });\n\n marketsToDisplay.forEach((market: Market) => {\n const key = `${market.type}-${market.name}`;\n\n if (key in groupsData) {\n groupsData[key].markets.push(market);\n } else {\n groupsData[key] = {\n name: market.name,\n id: market.group_id,\n key: key + market.order,\n type: key,\n colCount: market.col_count,\n markets: [market],\n expressId: market.prematch_express_id || market.express_id,\n cashout: Boolean(market.cashout),\n groupName: market.group_name,\n marketType: market.market_type || ''\n };\n }\n });\n\n if (SpringConfigs.USER_PERSONALIZATION_ENABLED && favoriteMarkets.length) {\n const orderedKeysArray: string[] = [];\n let groupsKeysArray = Object.keys(groupsData);\n favoriteMarkets.forEach(market => {\n if (groupsKeysArray.includes(market)) {\n orderedKeysArray.push(market);\n }\n });\n\n orderedKeysArray.length &&\n orderedKeysArray.forEach((item, index) => {\n groupsKeysArray = arrayMove(\n groupsKeysArray,\n groupsKeysArray.indexOf(item),\n index\n );\n });\n\n groupsData = groupsKeysArray.reduce((obj: MarketGroup, key) => {\n obj[key] = groupsData[key];\n\n return obj;\n }, {});\n }\n\n return groupsData;\n }, [filteredMarkets, favoriteMarkets, marketsFilterSearchValue]);\n\n const groupItems = useMemo(() => {\n let result;\n const objectValues = Object.values(groups);\n\n if (props.isTwoColumn) {\n const firstColumn = [];\n const secondColumn = [];\n\n for (let i = 0; i < objectValues.length; i++) {\n i % 2 === 0\n ? firstColumn.push(objectValues[i])\n : secondColumn.push(objectValues[i]);\n }\n\n result = [firstColumn, secondColumn];\n } else {\n result = [objectValues];\n }\n\n return result;\n }, [groups]);\n\n const marketGroups = useMemo(() => {\n return props.markets.reduce(\n (result, current) => ({\n ...result,\n [String(current.group_id)]: {\n name: current.group_name,\n isNew: current.is_new\n }\n }),\n {}\n );\n }, [props.markets]);\n\n const loadingCondition =\n !!filteredMarkets.length &&\n !groupItems[0].length &&\n marketsFilterSearchValue === null;\n\n const showEmptyPage =\n (!groupItems[0]?.length && menu !== ENotRealSports.favourites) ||\n (menu === ENotRealSports.favourites &&\n !isMainMarketFavorited &&\n !groupItems[0]?.length);\n\n const filteredGroups = useMemo(() => {\n if (\n !groupItems[0]?.length &&\n menu === ENotRealSports.favourites &&\n isMainMarketFavorited\n ) {\n return [MAIN_MARKETS_TYPE];\n }\n\n return groupItems;\n }, [groupItems, menu, isMainMarketFavorited]);\n\n return loadingCondition ? (\n \n ) : (\n <>\n setMenu(selectedMarket)}\n activeMenu={menu}\n favCount={favGroups}\n hideAll={props.hideAll}\n isLive={props.isLive}\n regionAlias={props.regionAlias}\n setSearchValue={setMarketsFilterSearchValue}\n searchValue={marketsFilterSearchValue}\n game={{\n team1_name: `${props.game.team1_name}`.toString(),\n team2_name: `${props.game.team2_name}`.toString(),\n sportcast_id: parseInt((props.game.sportcast_id || 0).toString()),\n id: props.game.id\n }}\n />\n\n {!props.isTwoColumn && !props.isLive && (\n \n )}\n {menu === ENotRealSports.betBuilder ? (\n
\n \n \n \n
\n ) : (\n \n {(groupItems[0]?.length > 0 ||\n (menu === ENotRealSports.favourites && isMainMarketFavorited)) &&\n filteredGroups.map((groupItem, index) => (\n \n \n \n {shouldShowMainMarkets && !isOutright && (\n }>\n \n \n \n {t('sportsbook.mainMarkets')}\n \n \n }\n defaultActive={mainMarketsExpanded}\n >\n \n }\n >\n \n \n \n \n )}\n {props.compactView ? (\n \n ) : typeof groupItem !== 'string' ? (\n \n ) : null}\n {props.esport && }\n \n ))}\n\n {showEmptyPage &&\n !props.loading &&\n (props.isMultiview ? (\n \n ) : (\n
\n }>\n \n \n {props.esport && }\n
\n ))}\n \n )}\n \n );\n};\n","import { MAIN_MARKETS_TYPE } from 'utils/constants/sportsbook/data-fields';\nimport { Market } from 'interfaces/sportsbook-data-levels';\nimport store from 'store';\n\nexport const filterFavGroups = (markets: Market[]): Market[] => {\n const IDs = store.getState().favData?.markets || [];\n\n const objIDs: Record = {};\n\n for (const id of IDs) {\n objIDs[id] = true;\n }\n\n return markets.filter(\n (market: Market): boolean => !!objIDs[`${market.type}-${market.name}`]\n );\n};\n\nexport const getFavGroupsCount = (markets: Market[]): number => {\n const IDs = store.getState().favData?.markets || [];\n const isMainMarketFavorite = IDs.includes(MAIN_MARKETS_TYPE);\n\n const objIDs: Record = {};\n const count = [];\n\n for (const id of IDs) {\n objIDs[id] = true;\n }\n\n for (const market of markets) {\n const name = `${market.type}-${market.name}`;\n\n if (objIDs[name]) {\n count.push(name);\n }\n }\n\n return new Set(count).size + +isMainMarketFavorite;\n};\n","export const arrayMove = (arr: any[], old_index: number, new_index: number) => {\n if (new_index >= arr.length) {\n let k = new_index - arr.length + 1;\n\n while (k--) {\n arr.push(undefined);\n }\n }\n\n arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\n\n return arr;\n};\n","import { CSSProperties } from 'react';\n\nconst SHORTHAND_MAPPINGS: Record = {\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n inset: ['top', 'right', 'bottom', 'left'],\n borderWidth: [\n 'borderTopWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'borderLeftWidth'\n ],\n borderStyle: [\n 'borderTopStyle',\n 'borderRightStyle',\n 'borderBottomStyle',\n 'borderLeftStyle'\n ],\n borderColor: [\n 'borderTopColor',\n 'borderRightColor',\n 'borderBottomColor',\n 'borderLeftColor'\n ],\n gap: ['rowGap', 'columnGap'],\n flex: ['flexGrow', 'flexShrink', 'flexBasis'],\n border: ['borderWidth', 'borderStyle', 'borderColor'],\n outline: ['outlineWidth', 'outlineStyle', 'outlineColor']\n};\n\n/* eslint-disable no-magic-numbers */\nexport const expandCssShorthand = (styles: CSSProperties): CSSProperties => {\n const expandedStyles: Record = {};\n\n Object.entries(styles).forEach(([key, value]) => {\n if (typeof value !== 'string' && typeof value !== 'number') {\n expandedStyles[key] = value;\n\n return;\n }\n\n const parts = typeof value === 'string' ? value.split(/\\s+/) : [value];\n\n if (SHORTHAND_MAPPINGS[key]) {\n const mappings = SHORTHAND_MAPPINGS[key];\n let expandedValues: (string | number)[];\n\n switch (parts.length) {\n case 1:\n expandedValues = Array(4).fill(parts[0]);\n break;\n case 2:\n expandedValues = [parts[0], parts[1], parts[0], parts[1]];\n break;\n case 3:\n expandedValues = [parts[0], parts[1], parts[2], parts[1]];\n break;\n case 4:\n expandedValues = parts;\n break;\n default:\n expandedValues = Array(4).fill(parts[0]); // Fallback\n }\n\n mappings.forEach((prop, index) => {\n expandedStyles[prop] = expandedValues[index];\n });\n } else {\n expandedStyles[key] = value;\n }\n });\n\n return expandedStyles as CSSProperties;\n};\n","import { FC, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Dropdown, Menu } from 'antd';\nimport SkeletonButton from 'antd/lib/skeleton/Button';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport { expandCssShorthand } from 'utils/collection-manipulation/expand-css-shorthand.util';\nimport {\n ColSizes,\n EContainerIconSize,\n EIconSize\n} from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport { TPopover } from 'interfaces/betslip';\nimport { Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { EsportPageType } from 'newelements/Sportsbook/Esport/helpers/getGameTypeByPageType';\nimport { FavoriteButtonGame } from 'components/FavoriteButton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { MarketsCount } from 'components/MarketsCount';\nimport { Odds } from 'components/Odds';\nimport { PickerButton } from 'components/PickerButton';\nimport { TeamCaption } from 'components/TeamCaption';\nimport { GameTime } from 'newcomponents/Shared/GameTime';\nimport { MatchStatistic } from 'newcomponents/Shared/sportsbook/MatchStatistic';\nimport { NotificationIcon } from 'newcomponents/Shared/sportsbook/NotificationIcon';\nimport { VideoCamIcon } from 'newcomponents/Shared/sportsbook/VideoCamIcon';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getOddFormat } from 'store/selectors/betslip';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype Props = {\n game: Game;\n currentSport: string;\n isLive: boolean;\n isOutRight: boolean;\n events: Array<{\n value: string;\n coeficient: number;\n handicap?: string;\n }>;\n onClick: (event: React.MouseEvent) => void;\n oddChangeHandler: Function;\n selectedOdd: string[];\n setMarketGroupID: Function;\n marketGroupID: number | null;\n hideWrapper?: boolean;\n popover: TPopover;\n hidePopover: () => void;\n competitionName?: string;\n regionAlias?: string;\n};\n\nexport const DesktopESportMatchCardLine: FC = ({\n game,\n onClick,\n isLive,\n currentSport,\n isOutRight,\n events,\n oddChangeHandler,\n selectedOdd,\n setMarketGroupID,\n marketGroupID,\n hideWrapper,\n popover,\n hidePopover,\n competitionName,\n regionAlias\n}) => {\n const {\n params: { sport }\n } = useSbRouteMatch();\n\n const oddFormat = useSelector(getOddFormat);\n\n const { type } = useSearchParams() as { type: EsportPageType };\n\n const markets = useMemo(\n () =>\n Object.values(game.market || {})\n .sort((a, b) => a.group_id - b.group_id)\n .reduce((result: Market[], market) => {\n const isGroupExist = !!result.find(\n ({ group_id }) => group_id === market.group_id\n );\n\n if (!isGroupExist) {\n result.push(market);\n }\n\n return result;\n }, []),\n [game.market]\n );\n\n const marketName = useMemo(() => {\n const group = markets.find(market => market.group_id === marketGroupID);\n\n return group?.group_name;\n }, [marketGroupID]);\n\n const menuItems =\n markets.length > 1 && markets.every(item => !!item.group_name)\n ? markets.map(({ group_id, group_name }) => ({\n key: group_id,\n label: group_name\n }))\n : false;\n\n const isPrematchEsportsAll = type === 'prematch' && sport === 'AllESports';\n\n return (\n \n \n \n {isPrematchEsportsAll ? (\n \n \n \n {competitionName}\n \n \n ) : (\n <>\n \n \n \n {`${\n game.text_info || ''\n } ${game.info?.add_info || ''}`}\n \n )}\n \n \n {isPrematchEsportsAll && (\n \n {dayjs.unix(game.start_ts).format(\n dateFormat({\n date: SpringConfigs.DT.shortDate,\n time: SpringConfigs.DT.time,\n dateTimeSeparator: ' | '\n })\n )}\n \n )}\n {menuItems && (\n {\n menuItem?.domEvent?.stopPropagation();\n setMarketGroupID(+menuItem.key);\n }}\n />\n }\n trigger={['hover']}\n >\n {marketName ? (\n {marketName}\n ) : (\n \n )}\n \n )}\n \n \n \n \n \n \n \n \n
\n \n {isLive && (\n
\n {game?.info?.score1}\n
\n )}\n
\n {!isOutRight && (\n
\n \n {isLive && (\n
\n {game?.info?.score2}\n
\n )}\n
\n )}\n \n \n
\n \n {game.hasVideoStream ? (\n \n ) : SpringConfigs.PUSH_NOTIFICATIONS_ENABLED ? (\n \n ) : null}\n\n \n
\n
\n {SpringConfigs.PUSH_NOTIFICATIONS_ENABLED &&\n game.hasVideoStream ? (\n \n ) : null}\n {SpringConfigs.STATISTICS_SWITCHER &&\n game.is_stat_available && (\n
\n
\n \n
\n
\n )}\n
\n \n \n
\n \n
\n \n \n {!isOutRight && (\n
\n {events?.length ? (\n \n ) : (\n \n )}\n +{game.markets_count}\n
\n )}\n \n
\n \n );\n};\n","import React, {\n Dispatch,\n FC,\n memo,\n ReactElement,\n SetStateAction,\n Suspense,\n SyntheticEvent,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport copy from 'copy-to-clipboard';\nimport dayjs from 'dayjs';\nimport { addBetSlipEvent } from 'utils/betslip/betslip';\nimport { arrayFindBy } from 'utils/collection-manipulation/array-find-by';\nimport {\n sortByOrder,\n sortMarketsByMainOrder\n} from 'utils/collection-manipulation/array-sort-by';\nimport { EContainerIconSize, EIconSize } from 'utils/constants/app/ui';\nimport { timeoutDuration } from 'utils/constants/dateInfo/time-numbers';\nimport { WINNER_MARKETS } from 'utils/constants/sportsbook/grouped-market-names';\nimport {\n ArcheryH2HSportAlias,\n CompoundArcherySportAlias,\n NotRealSportsForDifFormats\n} from 'utils/constants/sportsbook/sport-list';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { ADD_GAME_CARDS } from 'utils/constants/tour';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n getEsportCurrentMapName,\n getGameCurrentState\n} from 'utils/sportsbook/game-current-state';\nimport { hidePrivateCompetitions } from 'utils/sportsbook/hide-private-competitions';\nimport { shouldShowLiveTime } from 'utils/sportsbook/live-games-helper';\nimport { SportType } from 'utils/sportsbook/sport-data';\nimport { BetSlipEventObj } from 'interfaces/bet-data';\nimport { Event, Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { AFTER_SIGN_IN_ACTION_TYPES } from 'services/afterSignIn';\nimport { DesktopESportMatchCardLine } from './DesktopESportMatchCardLine';\nimport { Container, Header, Team, Title, Wrapper } from './style';\nimport { EsportPageType } from 'newelements/Sportsbook/Esport/helpers/getGameTypeByPageType';\nimport { EventAction } from 'components/EventAction';\nimport { FavoriteButtonGame } from 'components/FavoriteButton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { ImageOverlay } from 'components/ImageOverlay';\nimport { MarketsCount } from 'components/MarketsCount';\nimport { Odds } from 'components/Odds';\nimport { Pill } from 'components/Pill';\nimport { TeamCaption } from 'components/TeamCaption';\nimport { MatchStatistic } from 'newcomponents/Shared/sportsbook/MatchStatistic';\nimport { NotificationIcon } from 'newcomponents/Shared/sportsbook/NotificationIcon';\nimport { VideoCamIcon } from 'newcomponents/Shared/sportsbook/VideoCamIcon';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useGameScrollIntoView } from 'hooks/useGameScrollIntoView';\nimport { useOddChange } from 'hooks/useOddChange';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useOpenBetBuilder } from 'newhooks/sportsbook/useOpenBetBuilder';\nimport { useSportName } from 'providers/SportDataProvider';\nimport { getEventIds, getOddFormat } from 'store/selectors/betslip';\nimport { getBetslip } from 'store/selectors/spec-elems';\nimport { getMarketType, getScrollToGameId } from 'store/selectors/sport-data';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\nimport './index.less';\n\nconst { CustomDataPicker } = lazy(\n () =>\n import(\n /* webpackChunkName: \"custom-data-picker\" */ 'components/CustomDataPicker'\n )\n);\n\nexport type TMatchCardInlineProps = {\n game: Game;\n sportId?: number;\n currentSport: string;\n competitionName: string;\n sportName?: string;\n regionName?: string;\n onClick: (event?: React.MouseEvent) => void;\n configs?: {\n category: 'sport' | 'esport';\n };\n selectedGames?: boolean;\n bgImg?: string;\n calendar?: boolean;\n hideWrapper?: boolean;\n longDate?: boolean;\n noNeedScroll?: boolean;\n showSportIcon?: boolean;\n hideCompetitionLogo?: boolean;\n isActive?: boolean;\n isLive?: boolean;\n competitionId?: number;\n regionAlias?: string;\n showExpandedMarkets?: boolean;\n setShowExpandedMarkets?: Dispatch>;\n};\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nexport const MatchCardInline: FC = memo(props => {\n const isLoggedIn = useSelector(getIsLoggedIn);\n const scrollToGameId = useSelector(getScrollToGameId);\n const betslipPresent = useSelector(getBetslip);\n const oddFormat = useSelector(getOddFormat);\n const marketType = useSelector(getMarketType);\n const eventIds = useSelector(getEventIds);\n\n const scrollToRef = useRef(null);\n\n const { t } = useTranslation();\n const handleScroll = useGameScrollIntoView();\n const sportData = useSportName();\n const { params } = useSbRouteMatch();\n const { region } = params;\n const { type } = useSearchParams() as { type: EsportPageType };\n\n const [selected, setSelected] = useState([]);\n const [notMainMarket, setNotMainMarket] = useState(false);\n const [clicked, setClicked] = useState(false);\n const [marketGroupID, setMarketGroupID] = useState(null);\n\n const isPrematchEsportsAll =\n type === 'prematch' && params.sport === 'AllESports';\n\n const gameNumber = SpringConfigs.GAME_NUMBER;\n\n const {\n game: gameObj = {} as Game,\n onClick,\n currentSport,\n regionName,\n sportName,\n competitionName,\n selectedGames,\n bgImg,\n configs = { category: 'sport' },\n calendar,\n hideWrapper,\n longDate,\n noNeedScroll,\n competitionId,\n sportId,\n regionAlias\n } = props;\n\n const game = useMemo(\n () =>\n isLoggedIn ? gameObj : hidePrivateCompetitions(gameObj, competitionId),\n [gameObj, competitionId, isLoggedIn]\n );\n\n const isActive = useMemo(\n () => String(params.game) === String(game?.id) || props.isActive,\n [params.game, game?.id, props.isActive]\n );\n\n const markets = useMemo(\n () =>\n Object.values(game.market || {})\n .sort((a, b) => a.group_id - b.group_id)\n .reduce((result: Market[], market) => {\n const isGroupExist = !!result.find(\n ({ group_id }) => group_id === market.group_id\n );\n\n if (!isGroupExist) {\n result.push(market);\n }\n\n return result;\n }, []),\n [game]\n );\n\n const [marketName, setMarketName] = useState(markets[0]?.group_name);\n\n const isLive = game.type ? game.type === 1 : props.isLive;\n const isOutRight = game.show_type === 'OUTRIGHT';\n const longFormatChecker = NotRealSportsForDifFormats.includes(\n params.category\n );\n\n const showBetBuilder =\n !isLive &&\n !calendar &&\n game.sportcast_id &&\n SpringConfigs.BET_BUILDER_SWITCHER;\n\n const betBuilderProps = {\n sportId,\n fixtureId: game.sportcast_id,\n gameTitle: `${game.team1_name} - ${game.team2_name}`,\n afterSignInActonName: `MatchCardInline_${game.id}_${AFTER_SIGN_IN_ACTION_TYPES.TOGGLE_BET_BUILDER_MODAL}`\n };\n\n const { openBetBuilder } = useOpenBetBuilder(betBuilderProps);\n\n const isGamesWithArcheryNewData = [\n ArcheryH2HSportAlias,\n CompoundArcherySportAlias\n ].includes(currentSport);\n\n const shouldScrollIntoView = useMemo(\n () =>\n !noNeedScroll &&\n (configs.category !== SportType.ESPORT || !isMobile()) &&\n game?.id &&\n scrollToGameId?.id === game?.id?.toString(),\n [game?.id, scrollToGameId?.id]\n );\n\n const iconSize =\n configs.category === SportType.ESPORT\n ? EContainerIconSize.MIDDLE\n : EContainerIconSize.SMALL;\n\n const filteredMarkets = useMemo(() => {\n return markets.map(val => {\n return {\n label: val.group_name,\n value: val.group_id\n };\n });\n }, [markets]);\n\n const selectedGroupName = useMemo(() => {\n return filteredMarkets.find(\n marketItem => marketItem.value === marketGroupID\n );\n }, [marketGroupID, filteredMarkets]);\n\n const startTime = useMemo(() => {\n return longDate || longFormatChecker\n ? dayjs.unix(game.start_ts).format(\n dateFormat({\n date: SpringConfigs.DT.shortDate,\n time: SpringConfigs.DT.time,\n dateTimeSeparator: ' | '\n })\n )\n : dayjs.unix(game.start_ts).format(SpringConfigs.DT.time);\n }, [game.start_ts, longDate, longFormatChecker]);\n\n const isSportIconVisible = !!(\n props.showSportIcon &&\n (currentSport || game.sport_alias)\n );\n\n useEffect(() => {\n let timeout: ReturnType | undefined;\n\n if (clicked) {\n timeout = setTimeout(() => {\n setClicked(false);\n }, timeoutDuration.DURATION_800);\n }\n\n return () => {\n timeout && clearTimeout(timeout);\n };\n }, [clicked]);\n\n useEffect(() => {\n if (marketGroupID === null && markets.length > 0) {\n setMarketGroupID(markets[0]?.group_id);\n }\n\n if (marketGroupID !== null && markets.length === 0) {\n setMarketGroupID(null);\n }\n\n if (\n marketGroupID !== null &&\n markets.length > 0 &&\n !markets.some(market => market.group_id === marketGroupID)\n ) {\n setMarketGroupID(markets[0]?.group_id);\n }\n }, [markets]);\n\n const sortedMarkets: Market[] = useMemo(() => {\n if (game.market) {\n const mainMarkets = sortByOrder(Object.values(game.market))?.filter(\n elem =>\n WINNER_MARKETS.includes(elem?.type as string) ||\n configs.category === SportType.ESPORT\n );\n\n if (!mainMarkets.length) {\n setNotMainMarket(true);\n\n return sortMarketsByMainOrder(Object.values(game.market));\n }\n\n setNotMainMarket(false);\n\n return mainMarkets;\n }\n\n return [];\n }, [game.market, marketType?.value]);\n\n const addToBetSlip = (eventId: string | number) => {\n const market =\n sortedMarkets.find(market => market?.event?.[eventId]) ||\n sortedMarkets[0];\n\n const event = market?.event?.[eventId];\n\n addBetSlipEvent(\n {\n sport_id: sportId,\n marketType: market?.type || '',\n market: market,\n gameId: Number(game.id),\n eventId: Number(eventId),\n eventBase: event?.base,\n team1: game.team1_name,\n team2: game.team2_name || '',\n coeficient: event?.price,\n event_name: event?.name || '',\n game_start_date: game.start_ts,\n sport_index: (currentSport as string) || game?.sport_alias,\n sport_name: sportData || sportName || '',\n competition_name: competitionName || '',\n current_game_state: game.info?.current_game_state || '',\n current_game_time: game.info?.current_game_time || '',\n isLive,\n region_name: regionName as string,\n market_name: market?.name || '',\n game_name: `${game.team1_name} ${\n game.team2_name ? ` - ${game.team2_name}` : ''\n }`,\n game_info: game.info,\n express_id: market?.prematch_express_id || market?.express_id,\n type_1: event?.type_1\n } as BetSlipEventObj,\n true\n );\n };\n\n const { oddChangeHandler, popover, hidePopover } = useOddChange(\n setSelected,\n addToBetSlip,\n selected\n );\n\n const events = useMemo(() => {\n if (game.market && Object.keys(game.market).length) {\n const response = [];\n let eventsData: Record | undefined = {};\n\n if (isLive && isMobile() && !marketGroupID) {\n eventsData = sortedMarkets[0]?.event;\n } else if (marketType?.value && isMobile()) {\n eventsData = Object.values(sortedMarkets)[0].event;\n } else {\n eventsData = (\n arrayFindBy(\n sortedMarkets,\n 'group_id',\n marketGroupID as number,\n false\n ) || sortedMarkets[0]\n )?.event;\n }\n\n for (const eventId in eventsData) {\n const event = eventsData[eventId];\n\n if (event) {\n response.push({\n value: eventId,\n coeficient: event.price,\n order: event.order,\n name: event.name,\n base: event.base ?? false,\n type1: event.type_1 ? event.type_1 : false,\n marketType: marketType?.value\n });\n }\n }\n\n return response.sort((a, b) => a.order - b.order);\n }\n\n return [];\n }, [game?.market, marketType?.value, marketGroupID, sortedMarkets]);\n\n useLayoutEffect(() => {\n if (eventIds?.length && events?.length) {\n setSelected([]);\n events.forEach(i => {\n if (\n eventIds.findIndex((id: number) => Number(id) === Number(i.value)) >=\n 0\n ) {\n setSelected(prevSelected => [...prevSelected, i.value]);\n }\n });\n } else {\n setSelected([]);\n }\n }, [eventIds, events]);\n\n const gameCurrentState = useMemo(\n () =>\n game.info?.additional_data && !isGamesWithArcheryNewData\n ? getEsportCurrentMapName(game.info.additional_data, game.sport_alias)\n : getGameCurrentState(game.info || {}, currentSport),\n [\n game.info?.current_game_time,\n game.info?.current_game_state,\n game.info?.additional_data\n ]\n );\n\n useEffect(() => {\n setMarketName(selectedGroupName?.label || markets[0]?.group_name);\n }, [selectedGroupName, markets]);\n\n useEffect(() => {\n shouldScrollIntoView &&\n scrollToRef.current &&\n handleScroll(\n scrollToRef.current,\n 'game',\n scrollToGameId?.top,\n undefined,\n { block: 'center' }\n );\n }, [shouldScrollIntoView]);\n\n const handleChangeOdds = (\n eventId: string,\n price: string,\n sp?: boolean | undefined,\n prevSp?: boolean | undefined\n ) => {\n if (\n !betslipPresent &&\n !SpringConfigs.IS_BETSLIP_FLOATING_ENABLED &&\n !isMobile()\n ) {\n onClick();\n }\n\n oddChangeHandler(eventId, Number(price), sp, prevSp);\n };\n\n const getSelectMarkets = (): ReactElement | null => {\n return configs.category === SportType.ESPORT &&\n markets.length &&\n markets.every(item => !!item.group_name) ? (\n \n }\n >\n \n \n ) : null;\n };\n\n return configs.category === SportType.ESPORT && !isMobile() ? (\n \n ) : (\n \n \n <>\n \n {isSportIconVisible && (\n \n )}\n {selectedGames ? (\n <>\n \n \n {!!isLive && (\n \n )}\n {shouldShowLiveTime(!!isLive, currentSport) &&\n gameCurrentState}\n {!isLive && startTime}\n \n \n ) : isMobile() && isPrematchEsportsAll ? (\n <>\n {getSelectMarkets()}\n {\n \n {startTime}\n \n }\n \n ) : (\n {\n if (props.setShowExpandedMarkets) {\n props.setShowExpandedMarkets(prev => !prev);\n } else {\n onClick();\n }\n }}\n >\n {isLive && (\n \n )}\n \n {calendar && (\n \n \n {regionName}, {competitionName}\n \n )}\n {shouldShowLiveTime(!!isLive, currentSport) &&\n gameCurrentState}\n \n {!isLive && !calendar && startTime}\n {!!gameNumber && game.game_number ? (\n {\n event.stopPropagation();\n copy(`${game.game_number}`);\n setClicked(true);\n }}\n >\n {t('account.gameNumberId')} {game.game_number}\n \n ) : null}\n {clicked && (\n \n )}\n \n \n \n )}\n \n {showBetBuilder &&\n (SpringConfigs.HIDE_BET_BUILDER &&\n region === 'Cyprus' ? null : (\n \n openBetBuilder(e)}\n />\n }\n />\n \n ))}\n {!(isMobile() && isPrematchEsportsAll) && getSelectMarkets()}\n {calendar && (\n \n {startTime}\n {game.hasVideoStream && (\n \n )}\n\n {SpringConfigs.PUSH_NOTIFICATIONS_ENABLED &&\n !selectedGames && (\n \n )}\n \n )}\n {game.hasVideoStream && !calendar && (\n \n )}\n {SpringConfigs.STATISTICS_SWITCHER && game.is_stat_available && (\n \n )}\n\n {!calendar &&\n SpringConfigs.PUSH_NOTIFICATIONS_ENABLED &&\n !selectedGames ? (\n \n ) : null}\n {!selectedGames && !calendar && (\n \n )}\n {!selectedGames && (\n +{game.markets_count}\n )}\n {props.setShowExpandedMarkets && (\n props.setShowExpandedMarkets?.(prev => !prev)}\n color=\"var(--v3-black-45)\"\n lib=\"generic\"\n name=\"caretDownSmall\"\n theme=\"default\"\n size={EIconSize._20}\n className={cc([\n {\n arrowIconExpanded: props.showExpandedMarkets\n }\n ])}\n />\n )}\n \n \n \n \n \n {isLive && game?.info?.score1 && (\n \n {isGamesWithArcheryNewData\n ? game.info?.additional_data?.matchPointsTotalScore?.team1\n : game?.info?.score1}\n \n )}\n \n {!isOutRight && game.team2_id && (\n \n \n {isLive && game?.info?.score2 && (\n \n {isGamesWithArcheryNewData\n ? game.info?.additional_data?.matchPointsTotalScore?.team2\n : game?.info?.score2}\n \n )}\n \n )}\n {!isOutRight && (\n \n {events?.length ? (\n handleChangeOdds(eventId, price, sp, prevSp)}\n isLive={isLive}\n options={events}\n whiteText={!!bgImg}\n showHandicaps={notMainMarket}\n popover={popover}\n hidePopover={hidePopover}\n oddFormat={oddFormat}\n />\n ) : (\n ''\n )}\n \n )}\n {isLive && !selectedGames && game.text_info && (\n
{game.text_info}
\n )}\n \n \n
\n \n );\n});\n","import { ReactElement } from 'react';\nimport dayjs from 'dayjs';\nimport { MILLISECONDS_IN_SECOND } from 'utils/constants/dateInfo/time-numbers';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport {\n Avatar,\n CompetitionName,\n Content,\n Flag,\n Header,\n MatchDetails,\n SportImageOverlay,\n StartDay,\n StartTime,\n StyledImg,\n TeamFlag,\n TeamName\n} from './style';\nimport { MatchHeaderSkeleton } from 'components/MatchHeader/Prematch/MatchHeaderSkelton';\nimport { TeamLogo } from 'components/TeamLogo';\nimport { useSportImage } from 'hooks/sportsbook/useSportImage';\nimport { TGameDataWithMoreInfo } from 'store/reducers/new-sportsbook';\nimport './index.less';\n\ntype Props = {\n gameData: TGameDataWithMoreInfo;\n};\n\nexport function MatchHeader({ gameData }: Props): ReactElement | null {\n const { competitionName, game, sportAlias } = gameData;\n const { team1_name, team2_name, start_ts, team1_id, team2_id } = game;\n\n const ts = (start_ts as number) * MILLISECONDS_IN_SECOND;\n const sportImageSrc = useSportImage(sportAlias);\n\n if (!gameData) {\n return ;\n }\n\n return Object.keys(game).length ? (\n
\n \n \n \n \n \n \n {String(team1_name).substr(0, 2).toUpperCase()}\n \n \n {team1_name}\n \n\n \n {competitionName}\n \n {dayjs(ts).format(\n dateFormat({\n date: SpringConfigs.DT.longDate.replace(' YYYY', ''),\n includeWeekday: true\n })\n )}\n \n {dayjs(ts).format(SpringConfigs.DT.time)}\n \n {team2_id && (\n \n \n \n {String(team2_name).substr(0, 2).toUpperCase()}\n \n \n {team2_name}\n \n )}\n \n
\n ) : null;\n}\n","import {\n Dispatch,\n FC,\n SetStateAction,\n Suspense,\n useMemo,\n useState\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { EventData, Swipeable } from 'react-swipeable';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { EMatchStreamingViewModes } from 'interfaces/match-streaming';\nimport { GameInfo, GameOnly } from 'interfaces/sportsbook-data-levels';\nimport { MatchInfoCardSkeleton } from './skeleton';\nimport { useMatchInfoHide } from 'hooks/sportsbook/useMatchInfoHide';\nimport { useSportImage } from 'hooks/sportsbook/useSportImage';\nimport { useGetAvailableModes } from 'newhooks/sportsbook/matchStreaming/useGetAvailableModes';\nimport { setMatchStreamingViewMode } from 'store/actions/match-streaming';\nimport {\n getMatchStreamingGameData,\n getMatchStreamingType\n} from 'store/selectors/match-streaming';\nimport './index.less';\n\nconst { MatchCardDefault } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-layout-default\" */ './__partials/MatchCardLayouts/MatchCardDefault'\n )\n);\n\nconst { MatchCardPistolArchery } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-layout-pistol-archery\" */ './__partials/MatchCardLayouts/MatchCardPistolArchery'\n )\n);\n\nconst { MatchCardPistolH2H } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-layout-pistol-h2h\" */ './__partials/MatchCardLayouts/MatchCardPistolH2H'\n )\n);\n\nconst { MatchCardArcheryH2HCompoundArchery } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-layout-archery-h2h-compound-archery\" */ './__partials/MatchCardLayouts/MatchCardArcheryH2HCompoundArchery'\n )\n);\n\nconst { MatchCardBasketballShots } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-layout-basketball-shots\" */ './__partials/MatchCardLayouts/MatchCardBasketballShots'\n )\n);\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nexport type TMatchInfoHideGame = Pick<\n GameOnly,\n | 'text_info'\n | 'info'\n | 'add_info_name'\n | 'tv_info'\n | 'start_ts'\n | 'team1_name'\n | 'team2_name'\n | 'stats'\n | 'team1_id'\n | 'team2_id'\n | 'id'\n | 'is_stat_available'\n | 'type'\n | 'markets_count'\n | 'is_started'\n | 'match_length'\n | 'is_blocked'\n> & {\n info?: GameInfo;\n live_events?: Array<{\n event_type: any;\n team: 'team1' | 'team2';\n add_info: null | string;\n event_value?: number;\n }>;\n};\n\nexport type TMatchInfoCardProps = {\n sportAlias: string;\n regionAlias?: string;\n competitionName?: string;\n loading?: boolean;\n regionName?: string;\n game?: TMatchInfoHideGame;\n setOpenTimeLine?: (arg: (prev: boolean) => boolean) => void;\n openTimeLine?: boolean;\n};\n\nconst LAYOUTS: Record<\n string,\n FC<\n TMatchInfoCardProps & {\n sportImageSrc: string;\n setSelectedSet: Dispatch>;\n selectedSet: number;\n }\n >\n> = {\n default: MatchCardDefault,\n PistolShooting: MatchCardPistolArchery,\n PistolHead2Head: MatchCardPistolH2H,\n ArcheryH2H: MatchCardArcheryH2HCompoundArchery,\n CompoundArchery: MatchCardArcheryH2HCompoundArchery,\n Archery: MatchCardPistolArchery,\n BasketballShots: MatchCardBasketballShots\n};\n\nexport const MatchInfoCard: FC = ({\n sportAlias,\n regionAlias,\n competitionName,\n loading,\n game: gameObj,\n regionName,\n openTimeLine,\n setOpenTimeLine\n}) => {\n const dispatch = useDispatch();\n\n const history = useHistory();\n const matchStreamingGameData = useSelector(getMatchStreamingGameData);\n const matchStreamingType = useSelector(getMatchStreamingType);\n const sportImageSrc = useSportImage(sportAlias);\n const game = useMatchInfoHide({ game: gameObj });\n const availableModes = useGetAvailableModes();\n\n const [selectedSet, setSelectedSet] = useState(0);\n\n const MatchCard = useMemo(() => {\n return LAYOUTS[sportAlias] || LAYOUTS.default;\n }, [sportAlias]);\n\n const onSwiped = (data: EventData) => {\n if (data.dir === 'Down' && availableModes.length) {\n dispatch(setMatchStreamingViewMode(EMatchStreamingViewModes.minimized));\n\n history.push(\n `${mountPoint(window.location.pathname)}/${\n matchStreamingGameData?.sport\n }`\n );\n }\n };\n\n return (\n \n }>\n \n \n \n );\n};\n","import { ReactElement } from 'react';\nimport { ICON_SIZE } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { MultipleSelectionsCardHeaderSkeleton } from 'newcomponents/Shared/sportsbook/Multiples/MultipleCardHaeder/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nconst iconSize = isMobile() ? ICON_SIZE.MOBILE_24 : ICON_SIZE.DESKTOP_32;\nconst SKELTETON_COUNT = 3;\n\ntype TDesktopMultipleCardsSkeletonProps = {\n className?: string;\n};\n\nexport const DesktopMultipleCardsSkeleton = ({\n className = ''\n}: TDesktopMultipleCardsSkeletonProps): ReactElement => {\n return (\n \n {createArray(SKELTETON_COUNT).map((_, index) => (\n \n \n {createArray(SKELTETON_COUNT).map((_, index) => (\n
\n
\n \n \n
\n
\n \n \n
\n
\n ))}\n
\n \n \n
\n \n ))}\n \n );\n};\n","import React, { ReactElement } from 'react';\nimport cc from 'classcat';\nimport styled from 'styled-components';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport './index.less';\n\nconst Select = styled.div`\n border-radius: 6px;\n background-color: var(--v3-black-6);\n line-height: 32px;\n height: 32px;\n color: var(--v3-text-color);\n padding: 0 24px 0 8px;\n display: inline-block;\n position: relative;\n font-weight: 400;\n font-size: 12px;\n cursor: pointer;\n white-space: nowrap;\n`;\n\ntype Props = {\n children: React.ReactNode;\n onClick?: (event: React.MouseEvent) => void;\n expanded?: boolean;\n};\n\nexport const PickerButton = ({ expanded, ...props }: Props): ReactElement => {\n return (\n \n );\n};\n","import { ReactElement } from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.span<{ size?: string }>`\n background-color: var(--v3-black-6);\n color: var(--v3-text-color);\n justify-content: center;\n display: inline-flex;\n align-items: center;\n font-size: 12px;\n ${props => {\n switch (props.size) {\n case 'md':\n return `\n height: 24px;\n padding: 0 8px;\n min-width: 24px;\n line-height: 24px;\n border-radius: 4px;\n `;\n case 'sm':\n default:\n return `\n height: 16px;\n padding: 2px 6px;\n min-width: 24px;\n min-height: 20px;\n line-height: 16px;\n border-radius: 4px;\n `;\n }\n }}\n`;\n\nconst Icon = styled.span`\n margin-right: 4px;\n`;\n\ntype Props = {\n children: any;\n icon?: any;\n size?: 'sm' | 'md';\n};\n\nexport const Pill = (props: Props): ReactElement => {\n return (\n \n {props.icon ? (\n <>\n {props.icon}\n {props.children}\n \n ) : (\n props.children\n )}\n \n );\n};\n","import { Dispatch, ReactElement, SetStateAction } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getMountPath, shouldRedirect } from 'utils/generic/route-manipulation';\nimport { handleRedirectToSportsBook } from 'utils/sportsbook/handleRedirectToSportsBook';\nimport {\n Competition,\n FavoriteCompetitionInfo\n} from 'interfaces/sportsbook-data-levels';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { CompetitionNameWithTooltip } from 'components/Shared/CompetitionNameWithTooltip';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n batchActions,\n setClickFromFavorites,\n setTournamentSportIds\n} from 'store/actions';\nimport {\n setGamesByCompetitions,\n setSelectedCompetitions\n} from 'store/actions/new-sportsbook';\nimport { getTournamentSportIds } from 'store/selectors/sport-data';\n\ntype Props = {\n competitionsCount: number;\n setCollapsedCount: Dispatch>;\n collapsedCount: number;\n competitions: FavoriteCompetitionInfo[];\n};\n\nexport const FavoriteCompetition = ({\n competitionsCount,\n setCollapsedCount,\n collapsedCount,\n competitions\n}: Props): ReactElement => {\n const { t } = useTranslation();\n const history = useHistory();\n const dispatch = useDispatch();\n const { path, params } = useSbRouteMatch();\n\n const tournamentSportIds = useSelector(getTournamentSportIds);\n\n const handleClick = (competition: FavoriteCompetitionInfo) => {\n if (params.competition === String(competition.id)) {\n return;\n }\n\n const redirectPath = `${getMountPath(path)}/${competition.sportAlias}/${\n competition.regionAlias\n }/${competition.id}`;\n\n dispatch(setClickFromFavorites(true));\n\n if (!shouldRedirect(SpringConfigs.PAGE_URLS.prematch)) {\n if (tournamentSportIds?.length) {\n dispatch(setTournamentSportIds(null));\n }\n\n history.push(redirectPath);\n } else {\n handleRedirectToSportsBook(\n 'prematch',\n competition.regionAlias,\n competition.id,\n undefined,\n competition.sportAlias\n );\n }\n\n dispatch(\n batchActions(\n setGamesByCompetitions(null),\n setSelectedCompetitions({\n data: [competition.id],\n key: competition.sportAlias\n })\n )\n );\n };\n\n return (\n \n <>\n {competitions.map(comp => {\n return (\n handleClick(comp)}\n IconBeforeText={\n <>\n \n \n \n }\n IconAfterText={\n \n }\n />\n );\n })}\n \n \n );\n};\n","import { Dispatch, ReactElement, SetStateAction } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styled from 'styled-components';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport { Sport as SportType } from 'interfaces/sportsbook-data-levels';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { SportDataProvider } from 'providers/SportDataProvider';\n\nconst SportHeader = styled.div`\n background-color: var(--v3-black-0);\n border-bottom: 1px solid var(--v3-black-6);\n align-items: center;\n padding: 0 12px;\n display: flex;\n height: 40px;\n`;\n\nconst Title = styled.span`\n font-size: ${isMobile() ? '12px' : '14px'};\n font-weight: 600;\n color: var(--v3-text-color);\n`;\n\nconst IconWrapper = styled.span`\n margin-right: 8px;\n color: var(--v3-primary-5);\n`;\n\ntype Props = {\n type: 'live' | 'prematch';\n gamesCount: number;\n collapsedCount: number;\n favoriteMatches: Record;\n setCollapsedCount: Dispatch>;\n competitionElements: (sport: SportType) => ReactElement[];\n};\n\nexport const FavoriteEvents = ({\n type,\n gamesCount,\n collapsedCount,\n favoriteMatches,\n setCollapsedCount,\n competitionElements\n}: Props): ReactElement => {\n const { t } = useTranslation();\n\n return (\n \n <>\n {Object.values(favoriteMatches).map(sport => {\n return (\n
\n \n \n \n \n {sport.name}\n \n \n {competitionElements(sport)}\n \n
\n );\n })}\n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const Wrapper = styled.div`\n height: 40px;\n display: flex;\n padding: 0 4px 0 20px;\n text-align: left;\n align-items: center;\n border-bottom: 1px solid var(--v3-black-4);\n background: var(--v3-black-0);\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const Name = styled.div<{ padding?: boolean }>`\n flex: 1;\n line-height: 1;\n font-size: 12px;\n font-weight: 300;\n letter-spacing: 0.48px;\n color: var(--v3-text-color);\n ${props =>\n props.padding &&\n ` padding-left: 8px;\n `}\n`;\n\nexport const SpinWrapper = styled.div`\n padding: 24px;\n text-align: center;\n`;\n","import {\n CSSProperties,\n RefObject,\n Suspense,\n SyntheticEvent,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { getMountPath, mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n Competition as CompetitionType,\n Game as GameType,\n Region\n} from 'interfaces/sportsbook-data-levels';\nimport { Name, SpinWrapper, Wrapper } from './style';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Loading } from 'components/Loading';\nimport { UrlWrapper } from 'components/Shared/UrlWrapper';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useGameScrollIntoView } from 'hooks/useGameScrollIntoView';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setScrollToCompetitionId, setTimeFilterData } from 'store/actions';\nimport {\n getCashedSport,\n getScrollToCompetitionId,\n getTimeFiltersData\n} from 'store/selectors/sport-data';\nimport './index.less';\n\nconst { Game } = lazy(\n () => import(/* webpackChunkName: \"sportsbook-live-game-card\" */ './LiveGame')\n);\n\ntype Props = {\n isDetailed: boolean;\n regionName: string;\n regionAlias: string;\n currentSport: string;\n sportAlias?: string;\n competitions: any;\n setListType?: Function;\n regionId?: number;\n regions?: Record | undefined;\n clickHandler?: Function;\n setCollapsedCount?: (arg: (num: number) => number) => void;\n count?: number;\n favorite?: boolean;\n fromSportsList?: boolean;\n isLive?: boolean;\n openFromSideBarPopup?: boolean;\n sportType?: number;\n};\n\nconst USA_LAYOUT_HEIGHT = 85;\nconst TEAM2_ID_HEIGHT = 113;\nconst DEFAULT_HEIGHT = 64;\n\nexport const Competition = ({\n isDetailed,\n regionName,\n regionAlias,\n currentSport,\n sportAlias,\n competitions,\n setListType,\n clickHandler,\n setCollapsedCount,\n regions,\n count,\n favorite,\n fromSportsList,\n isLive,\n openFromSideBarPopup,\n sportType\n}: Props) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const configs = useSportsbookConfigs();\n const { path } = useSbRouteMatch();\n const scrollToCompetitionId = useSelector(getScrollToCompetitionId);\n const cashedSport = useSelector(getCashedSport);\n const timeStamp = useSelector(getTimeFiltersData);\n\n const [USALayout] = useState(\n (SpringConfigs.IS_AMERICAN_LAYOUT || +configs.spbLayoutType === 1) &&\n isMobile()\n );\n\n const routeParams = useSbRouteMatch(\n `${mountPoint(window.getPathname())}/:sport?/:region?/:competition?/:game?`\n );\n\n const scrollToRef = useRef();\n const handleScroll = useGameScrollIntoView();\n\n const competitionsData = useMemo(() => {\n if (currentSport === 'outright') {\n return sortByOrder(Object.values(regions || {}))\n .map(region =>\n Object.values(region.competition || {}).map(comp => ({\n ...comp,\n region: region.alias\n }))\n )\n .flat()\n .filter(competition =>\n !USALayout || !isDetailed\n ? true\n : !!Object.keys(competition.game || {}).length\n );\n }\n\n return (\n sortByOrder(\n competitions instanceof Object ? Object.values(competitions) : [],\n currentSport === 'topLeague' ? 'favorite_order' : undefined\n ) as CompetitionType[]\n ).filter(competition =>\n !USALayout || !isDetailed\n ? true\n : !!Object.keys(competition.game || {}).length\n );\n }, [competitions, cashedSport, currentSport, regions]);\n\n const shouldScrollIntoView = useMemo(() => {\n return scrollToCompetitionId && !!competitions[scrollToCompetitionId?.id];\n }, [scrollToCompetitionId, competitionsData]);\n\n const handleOnWrapperClick = (\n e: SyntheticEvent,\n isNotRealSport: boolean,\n competition: CompetitionType\n ) => {\n dispatch(\n setScrollToCompetitionId({\n id: competition?.id?.toString(),\n top: e.currentTarget.getBoundingClientRect().top\n })\n );\n window.scrollTo(0, 0);\n\n if (openFromSideBarPopup && clickHandler) {\n const pathname = `${getMountPath(\n routeParams?.path?.replace(\n /:sport\\?.*$/,\n isNotRealSport ? `${currentSport}/${sportAlias}` : sportAlias || ''\n ) || ''\n )}/${isNotRealSport ? competition.region : regionAlias}/${\n competition.id\n }`;\n\n if (!document.querySelector('.prematch__type-page')) {\n clickHandler(\n `/${SpringConfigs.SPORTSBOOK_MOUNT_PATH}${\n isNotRealSport\n ? `/${currentSport}/${sportAlias}`\n : `/${sportAlias}` || ''\n }${pathname}`,\n sportAlias\n );\n } else {\n history.push(pathname);\n }\n } else {\n const redirectPath = `${getMountPath(path)}/${currentSport}${\n isNotRealSport ? `/${sportAlias}` : ''\n }/${isNotRealSport ? competition.region : regionAlias}/${competition.id}`;\n\n if (timeStamp && Object.keys(timeStamp).length) {\n dispatch(\n setTimeFilterData({\n option: 'All',\n date: false,\n count: 0,\n name: 'All Events'\n })\n );\n }\n\n typeof clickHandler === 'function'\n ? clickHandler(\n `/${SpringConfigs.SPORTSBOOK_MOUNT_PATH}${redirectPath}`,\n sportAlias\n )\n : history.push(redirectPath);\n }\n };\n\n useEffect(() => {\n shouldScrollIntoView &&\n scrollToRef.current &&\n handleScroll(scrollToRef.current, undefined, scrollToCompetitionId?.top);\n }, [shouldScrollIntoView]);\n\n if (!competitionsData) {\n return (\n \n \n \n );\n }\n\n if (isDetailed) {\n return (\n <>\n {competitionsData.map((competition, index) => (\n \n }\n >\n )\n ).reduce(\n (acc, game) =>\n acc +\n (USALayout\n ? USA_LAYOUT_HEIGHT\n : game.team2_id\n ? TEAM2_ID_HEIGHT\n : DEFAULT_HEIGHT),\n 0\n )}px`\n } as CSSProperties\n }\n >\n {\n \n }\n >\n \n \n }\n \n \n ))}\n \n );\n }\n\n return (\n <>\n {competitionsData.map((competition, index) => {\n const isNotRealSport = NOT_REAL_SPORTS.includes(currentSport);\n\n return (\n \n \n handleOnWrapperClick(e, isNotRealSport, competition)\n }\n {...(isMobile() &&\n scrollToCompetitionId?.id === competition?.id?.toString() && {\n ref: scrollToRef as RefObject\n })}\n >\n {fromSportsList && (\n \n )}\n {isNotRealSport ? (\n \n ) : (\n \n )}\n \n {competition.name}\n \n {isNotRealSport && !fromSportsList && (\n \n )}\n \n \n );\n })}\n \n );\n};\n","import React, {\n Dispatch,\n memo,\n ReactElement,\n SetStateAction,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useState\n} from 'react';\nimport { useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Sport as SportType } from 'interfaces/sportsbook-data-levels';\nimport { FavoriteCompetition } from './__partials/FavoriteCompetition';\nimport { FavoriteEvents } from './__partials/FavoriteEvents';\nimport { FavoriteSkeletonHeader } from './FavoriteSkeletonHeader';\nimport { Competition } from 'components/SportsbookListViews/Competition';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { FetchFavoriteData } from 'newcomponents/Shared/sportsbook/Favorite/FetchFavoriteData';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n getFavoriteCompetitions,\n getFavoriteDataLoading,\n getFavoriteMatches,\n getFavoriteMatchIds\n} from 'store/selectors/fav-data';\nimport {\n getIsLoggedIn,\n getPersonalisedDataLoaded,\n getUser\n} from 'store/selectors/user-data';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype Props = {\n setLoading?: Dispatch>;\n};\n\nconst COMPETITION_SKELETON_COUNTS = {\n mobile: 5,\n desktop: 1\n};\n\nconst skeletonsCount =\n COMPETITION_SKELETON_COUNTS[isMobile() ? 'mobile' : 'desktop'];\n\nexport const Favorite = memo(({ setLoading }: Props): ReactElement => {\n const [collapsedCount, setCollapsedCount] = useState(1);\n\n const user = useSelector(getUser);\n const isLoading = useSelector(getFavoriteDataLoading);\n const favoriteMatches = useSelector(getFavoriteMatches);\n const competitions = useSelector(getFavoriteCompetitions);\n const favoriteMatchIds = useSelector(getFavoriteMatchIds);\n const personalisedDataLoaded = useSelector(getPersonalisedDataLoaded);\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const competitionsCount = competitions.length;\n const liveGamesCount = favoriteMatchIds.liveSports.length;\n const premGamesCount = favoriteMatchIds.prematchSports.length;\n\n const { params } = useSbRouteMatch();\n const configs = useSportsbookConfigs();\n\n useLayoutEffect(() => {\n setLoading?.(false);\n }, []);\n\n useEffect(() => {\n if (!liveGamesCount && !premGamesCount && competitionsCount) {\n setLoading?.(false);\n }\n }, [liveGamesCount, premGamesCount, competitionsCount]);\n\n const competitionElements = useCallback((sport: SportType) => {\n const competitions = [];\n const { region, alias, type } = sport;\n\n for (const reg of Object.values(region || {})) {\n competitions.push(\n \n );\n }\n\n return competitions;\n }, []);\n\n const regionsData = useMemo(() => {\n return ['live', 'prematch', 'competition'].map(type => {\n if (\n (liveGamesCount && type === 'live') ||\n (type === 'prematch' && premGamesCount)\n ) {\n return (\n \n );\n }\n\n if (type === 'competition' && competitionsCount) {\n return (\n \n );\n }\n });\n }, [\n params,\n competitions,\n liveGamesCount,\n premGamesCount,\n competitionsCount,\n favoriteMatches.liveSports,\n favoriteMatches.prematchSports\n ]);\n\n const personalizationBasedLoading =\n SpringConfigs.USER_PERSONALIZATION_ENABLED &&\n (user.pending || !personalisedDataLoaded);\n\n return (\n
\n {SpringConfigs.USER_PERSONALIZATION_ENABLED ? (\n isLoggedIn && personalisedDataLoaded ? (\n \n ) : null\n ) : (\n \n )}\n {isLoading || personalizationBasedLoading ? (\n
\n \n \n
\n ) : (\n regionsData\n )}\n
\n );\n});\n","import { ReactElement } from 'react';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const FavoriteSkeletonHeader = ({\n hideFirstSeperator = true\n}: {\n hideFirstSeperator?: boolean;\n}): ReactElement => {\n return (\n
\n {hideFirstSeperator && (\n
\n
\n \n \n
\n\n \n
\n )}\n
\n \n \n
\n
\n
\n \n\n \n
\n \n
\n
\n );\n};\n","import { ReactElement } from 'react';\nimport { isMobile } from 'utils/is-mobile';\nimport { FavoriteSkeletonHeader } from 'components/Shared/Favorites/FavoriteSkeletonHeader';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\n\nconst COMPETITION_SKELETON_COUNTS = {\n mobile: 5,\n desktop: 1\n};\n\nconst skeletonsCount =\n COMPETITION_SKELETON_COUNTS[isMobile() ? 'mobile' : 'desktop'];\n\nexport const FavoritesSkeleton = (): ReactElement => {\n return (\n <>\n \n \n \n );\n};\n","import { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { Market } from 'interfaces/sportsbook-data-levels';\n\n// for usa sports we need to show first markets witch includes overtime\nconst OVERTIME_MARKETS_POSTFIX = '(IncludingOvertime)';\n\nexport const getOrderedMarketsForUsaSports = (\n markets: Market[],\n marketTypes: string[]\n) => {\n const orderedMarkets = [];\n\n orderedMarkets.push(\n ...sortByOrder(\n markets.filter(i =>\n marketTypes.some(\n marketType => `${marketType}${OVERTIME_MARKETS_POSTFIX}` === i.type\n )\n ),\n 'main_order'\n )\n );\n\n if (!orderedMarkets.length) {\n orderedMarkets.push(\n ...sortByOrder(\n markets.filter(i =>\n marketTypes.some(marketType => marketType === i.type)\n ),\n 'main_order'\n )\n );\n }\n\n return orderedMarkets;\n};\n\nexport const findWinnerMarkersForUsaSports = (\n markets: Market[],\n marketTypes: string[]\n) => {\n const foundedMarket = markets.find(i =>\n marketTypes.some(\n marketType => `${marketType}${OVERTIME_MARKETS_POSTFIX}` === i.type\n )\n );\n\n if (foundedMarket) {\n return foundedMarket;\n }\n\n return markets.find(i => marketTypes.includes(i.type));\n};\n\nexport const checkIsMarketInGroupWithOvertime = (\n marketTypes: string[],\n type: string\n): boolean =>\n marketTypes.some(marketType =>\n [marketType, `${marketType}${OVERTIME_MARKETS_POSTFIX}`].includes(type)\n );\n","import { ReactElement, Suspense, SyntheticEvent, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport {\n EContainerIconSize,\n EIconSize,\n SkeletonAvatarSize\n} from 'utils/constants/app/ui';\nimport { MATCH_TRACKER_AVAILABLE_SPORTS } from 'utils/constants/sportsbook/match-tracker-sports';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { Game, IGameStats } from 'interfaces/sportsbook-data-levels';\nimport { AFTER_SIGN_IN_ACTION_TYPES } from 'services/afterSignIn';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { EventAction } from 'components/EventAction';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { TeamLogo } from 'components/TeamLogo';\nimport { MatchStatistic } from 'newcomponents/Shared/sportsbook/MatchStatistic';\nimport { NotificationIcon } from 'newcomponents/Shared/sportsbook/NotificationIcon';\nimport { VideoCamIcon } from 'newcomponents/Shared/sportsbook/VideoCamIcon';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useOpenBetBuilder } from 'newhooks/sportsbook/useOpenBetBuilder';\nimport { getSportIdByAlias } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nconst teamLogoSizeProps: { size: 'sm' | 'md'; sizeByPixels: number } = {\n size: isMobile() ? 'sm' : 'md',\n sizeByPixels: isMobile()\n ? SkeletonAvatarSize.SIZE_20\n : SkeletonAvatarSize.SIZE_24\n};\n\nexport const DetailedTeamsInfo = ({\n game,\n showScores,\n sportAlias\n}: {\n game: Game;\n showScores?: boolean;\n sportAlias: string;\n}): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const matchTrackerAvailable =\n Boolean(game.video_id) ||\n Boolean(game.video_id2) ||\n MATCH_TRACKER_AVAILABLE_SPORTS.includes(sportAlias);\n\n const currentSportId = useSelector(\n getSportIdByAlias(sportAlias, configs.type)\n );\n\n const betBuilderProps = {\n sportId: currentSportId,\n gameTitle: `${game.team1_name} - ${game.team2_name}`,\n fixtureId: game.sportcast_id,\n afterSignInActonName: `DetailedTeamsInfo_${game.id}_${AFTER_SIGN_IN_ACTION_TYPES.TOGGLE_BET_BUILDER_MODAL}`\n };\n\n const { openBetBuilder } = useOpenBetBuilder(betBuilderProps);\n\n const iconsConditions = {\n firstColumn: {\n betBuilder: !!game.sportcast_id && SpringConfigs.BET_BUILDER_SWITCHER,\n videoStream: game.hasVideoStream,\n matchTracker: matchTrackerAvailable\n },\n secondColumn: {\n statistics: SpringConfigs.STATISTICS_SWITCHER && game.is_stat_available,\n notification: SpringConfigs.PUSH_NOTIFICATIONS_ENABLED\n }\n };\n\n const firstColumnAvailable = Object.values(iconsConditions.firstColumn).some(\n el => el\n );\n\n const secondColumnAvailable = Object.values(\n iconsConditions.secondColumn\n ).some(el => el);\n\n const additionalScores = useMemo(() => {\n if (\n sportAlias === 'Cricket' &&\n game.stats &&\n game.info?.current_game_state\n ) {\n const currentSetScoreKey = `score_${game.info.current_game_state}`;\n\n return game.stats[currentSetScoreKey as keyof IGameStats];\n }\n }, [game.stats, game.info?.current_game_state, sportAlias]);\n\n return (\n
\n
\n \n \n \n \n {String(game.team1_name).substr(0, 2).toUpperCase()}\n \n \n \n {game.team1_name}\n \n \n {showScores && (\n \n {additionalScores?.team1_value || game.info?.score1}\n \n )}\n
\n {!!game.team2_name && (\n \n \n \n \n {String(game.team2_name).substr(0, 2).toUpperCase()}\n \n \n \n {game.team2_name}\n \n \n {showScores && (\n \n {additionalScores?.team2_value || game.info?.score2}\n \n )}\n
\n )}\n \n \n {firstColumnAvailable && (\n
\n {iconsConditions.firstColumn.betBuilder && (\n \n }\n onClick={(e: SyntheticEvent) => {\n e.stopPropagation();\n openBetBuilder(e);\n }}\n />\n )}\n {iconsConditions.firstColumn.videoStream && (\n \n )}\n {matchTrackerAvailable && (\n \n }\n />\n )}\n
\n )}\n {secondColumnAvailable && (\n (\n
{children}
\n )}\n >\n <>\n {iconsConditions.secondColumn.statistics && (\n \n )}\n {iconsConditions.secondColumn.notification && (\n \n \n \n }\n >\n \n \n )}\n \n \n )}\n \n \n );\n};\n","import {\n memo,\n ReactElement,\n RefObject,\n SyntheticEvent,\n useId,\n useMemo\n} from 'react';\nimport { useSelector } from 'react-redux';\nimport { Popover } from 'antd';\nimport cc from 'classcat';\nimport { convert } from 'utils/betslip/odd-formats-helper';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { fireEvent } from 'utils/generic/event-bus';\nimport { isMobile } from 'utils/is-mobile';\nimport { calculateBoostedOdds } from 'utils/sportsbook/calculate-boosted-odds';\nimport { getIndicatorPosition } from 'utils/sportsbook/get-inidcator-position';\nimport { Event, Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { ERecaptchaEventBusActionTypes } from 'components/Recaptcha/types';\nimport { ConfirmationPopover } from 'components/Shared/ConfirmationPopover/ConfirmationPopover';\nimport { OddIndicator } from 'newcomponents/Shared/sportsbook/OddIndicator';\nimport { useHandleOddSelect } from 'hooks/betslip/useHandleOddSelect';\nimport { useOddChange } from 'hooks/useOddChange';\nimport { usePrevious } from 'hooks/usePrevious';\nimport { useEventbus } from 'newhooks/generic/useEventbus';\nimport { useOddButtonPosition } from 'newhooks/sportsbook/useOddButtonPosition';\nimport { EBoostType } from 'store/reducers/sport-data';\nimport { getRecaptchaEnabled } from 'store/selectors/app-data';\nimport {\n getEventIds,\n getOddFormat,\n getQuickBetEnabled,\n getShouldShowQuickBetInfoPopover\n} from 'store/selectors/betslip';\nimport { getBoostedOdds } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TProps = {\n game: Game;\n event: Event;\n market: Market;\n sportId: number;\n isLive: boolean;\n competitionName: string;\n sportAlias?: string;\n isUsa?: boolean;\n dataTestId?: string;\n};\n\nexport const Odd = memo(\n ({\n game,\n event,\n market,\n sportId,\n sportAlias,\n competitionName,\n isLive,\n isUsa,\n dataTestId\n }: TProps): ReactElement => {\n const uniqueId = useId();\n\n const isQuickBetEnabled = useSelector(getQuickBetEnabled);\n const shouldShowQuickBetInfoPopover = useSelector(\n getShouldShowQuickBetInfoPopover\n );\n\n const oddFormat = useSelector(getOddFormat);\n const boostedOdds = useSelector(getBoostedOdds);\n const { handleOddSelect } = useHandleOddSelect(sportId);\n const selectedEventIds = useSelector(getEventIds);\n const recaptchaEnabled = useSelector(getRecaptchaEnabled);\n const prevPrice = usePrevious(event.price);\n\n const itemSelected = useMemo(\n () => selectedEventIds.includes(Number(event.id)),\n [selectedEventIds, event.id]\n );\n\n const addToBetSlip = () => {\n handleOddSelect(\n undefined,\n game,\n event,\n competitionName,\n [market],\n sportAlias || '',\n isUsa ?? false\n );\n };\n\n const { oddChangeHandler, popover, hidePopover } = useOddChange(\n () => {},\n addToBetSlip,\n selectedEventIds.map(id => `${id}`)\n );\n\n const { buttonRef, getButtonPosition } = useOddButtonPosition();\n const hasBoostedOdd =\n game.id &&\n boostedOdds?.[game.id]?.[event.id] &&\n (boostedOdds?.[game.id]?.[event.id].type === EBoostType.ALL ||\n boostedOdds?.[game.id]?.[event.id].type ===\n (isLive ? EBoostType.LIVE : EBoostType.PREMATCH));\n\n const indicatorValue = useMemo(() => {\n return getIndicatorPosition(prevPrice, event.price);\n }, [event.price, prevPrice]);\n\n const onChangeHandlerRecaptchaWrapper = (e: SyntheticEvent) => {\n e.stopPropagation();\n\n if (event.price) {\n if (\n isQuickBetEnabled &&\n !shouldShowQuickBetInfoPopover &&\n recaptchaEnabled\n ) {\n fireEvent({\n key: ERecaptchaEventBusActionTypes.Validate,\n payload: uniqueId\n });\n\n return;\n }\n\n oddChangeHandler(`${event.id}`, event.price);\n }\n };\n\n useEventbus(\n {\n [ERecaptchaEventBusActionTypes.Verified]: ({\n payload\n }: {\n payload: string;\n }) => {\n if (payload === uniqueId) {\n oddChangeHandler(`${event.id}`, event.price);\n }\n }\n },\n [oddChangeHandler]\n );\n\n return (\n (\n }\n placement={getButtonPosition()}\n trigger=\"click\"\n visible={Boolean(popover?.id && `${popover?.id}` === `${event.id}`)}\n onVisibleChange={(visible: boolean) => !visible && hidePopover()}\n overlayClassName={cc([\n 'quick-bet-confirmation-popover',\n {\n 'quick-bet-confirmation-popover-right':\n isMobile() && getButtonPosition() === 'topRight',\n 'quick-bet-confirmation-popover-hide':\n popover?.validateRecaptcha\n }\n ])}\n destroyTooltipOnHide\n >\n {children}\n \n )}\n >\n }\n className={cc([\n 'x-odd__wrapper',\n `x-odd__wrapper--${indicatorValue}`,\n {\n 'x-odd__wrapper--checked': itemSelected,\n 'x-odd__wrapper--withBase': !!event.base,\n 'x-odd__wrapper--mobile': isMobile()\n }\n ])}\n onClick={onChangeHandlerRecaptchaWrapper}\n {...(dataTestId && { 'data-testId': dataTestId })}\n >\n {event.base && (\n
\n {(['Over', 'Under'].includes(event.type) ||\n ['Over', 'Under'].includes(event.type_1)) &&\n `${event.type?.[0] || event.type_1?.[0]}/`}\n {event.base}\n
\n )}\n \n {event.price ? (\n game.is_blocked ? (\n \n ) : (\n
\n {hasBoostedOdd ? (\n \n \n \n {convert(event.price, oddFormat)}\n {+SpringConfigs.PREVIOUS_BOOSTED_ODDS ? (\n \n {convert(\n calculateBoostedOdds(event.price),\n oddFormat\n )}\n \n ) : null}\n
\n \n ) : (\n convert(event.price, oddFormat)\n )}\n \n )\n ) : (\n '-'\n )}\n {!!prevPrice && (\n \n )}\n \n \n \n );\n }\n);\n","import { MouseEvent, useCallback, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { addBetSlipEvent, removeBetSlipEvent } from 'utils/betslip/betslip';\nimport {\n Event as EventType,\n GameOnly,\n TPossibleMarkets\n} from 'interfaces/sportsbook-data-levels';\nimport { getSubscriptions } from 'store/selectors/betslip';\n\n// type TPossibleMarkets = MarketOnly | Market;\n\ntype THandler = (\n e: MouseEvent | undefined,\n game: GameOnly,\n event: EventType,\n competitionName: string,\n markets: Record | TPossibleMarkets[],\n sportAlias: string,\n isUsa?: boolean\n) => void;\n\nexport const useHandleOddSelect = (\n sportId: number\n): { handleOddSelect: THandler } => {\n // TODO can be changed to useSelector(getEventIds)\n const subscriptions = useSelector(getSubscriptions);\n const selectedEventIds = useMemo(\n () =>\n subscriptions.map(subscription => {\n return subscription.eventId;\n }),\n [subscriptions]\n );\n\n const handleOddSelect = useCallback(\n (\n e: MouseEvent | undefined,\n game: GameOnly,\n event: EventType,\n competitionName: string,\n markets: Record | TPossibleMarkets[],\n sportAlias: string,\n isUsa?: boolean\n ) => {\n e?.stopPropagation();\n\n if (game.is_blocked) {\n return;\n }\n\n const market = Object.values(markets)[0];\n\n if (!selectedEventIds.includes(event.id)) {\n const betSlipObject = {\n sport_id: sportId,\n sport_index: sportAlias as string | undefined,\n sport_alias: sportAlias as string,\n competition_name: competitionName,\n current_game_state: game.info?.current_game_state || '',\n current_game_time: game.info?.current_game_time,\n isLive: !!game.is_live,\n region_name: game.region_alias as string,\n game_start_date: game.start_ts,\n market_name: market.name,\n marketType: market.type || '',\n gameId: game.id,\n eventId: event.id,\n event_name: event.name,\n coeficient: event.price,\n eventBase: event.base,\n team1: game.team1_name,\n team2: game.team2_name,\n isSuspended: false,\n game_name:\n game.team2_name && game.team2_name.length\n ? `${game.team1_name}-${game.team2_name}`\n : game.team1_name,\n game_state: game.info?.current_game_state || '',\n type: game.type,\n game_info: game.info,\n express_id: market.express_id,\n type_1: event.type_1,\n isUsa: isUsa\n };\n\n addBetSlipEvent(betSlipObject, false, true);\n } else {\n removeBetSlipEvent(event.id);\n }\n },\n [selectedEventIds]\n );\n\n return {\n handleOddSelect\n };\n};\n","import {\n MouseEvent,\n ReactElement,\n SyntheticEvent,\n useCallback,\n useEffect,\n useMemo,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EContainerIconSize, EIconSize } from 'utils/constants/app/ui';\nimport {\n HANDICAPS,\n OVER_UNDERS,\n WINNER_MARKETS\n} from 'utils/constants/sportsbook/grouped-market-names';\nimport { NotRealSportsForDifFormats } from 'utils/constants/sportsbook/sport-list';\nimport {\n TWO_WAY_OUTCOME_SPORTS,\n USA_SPEC_SPORTS\n} from 'utils/constants/sportsbook/usa-specific-sports';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { ADD_GAME_CARDS } from 'utils/constants/tour';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n checkIsMarketInGroupWithOvertime,\n findWinnerMarkersForUsaSports,\n getOrderedMarketsForUsaSports\n} from 'utils/sportsbook/get-usa-ordered-markets';\nimport { handleRedirectToSportsBook } from 'utils/sportsbook/handleRedirectToSportsBook';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Event, Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { AFTER_SIGN_IN_ACTION_TYPES } from 'services/afterSignIn';\nimport { DetailedTeamsInfo } from './__partials/DetailedTeamsInfo';\nimport { Odd } from './__partials/Odd';\nimport { getEmptyMarketsForNotClassicView } from './__partials/utils/getEmptyMarketsForNotClassicView';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { FavoriteButtonGame } from 'components/FavoriteButton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { TeamLogo } from 'components/TeamLogo';\nimport { GameTime } from 'newcomponents/Shared/GameTime';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useOpenBetBuilder } from 'newhooks/sportsbook/useOpenBetBuilder';\nimport { getSportIdByAlias } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TMatchCardInlineUSAProps = {\n game: Game & { regionAlias?: string };\n competitionName: string;\n sportAlias?: string;\n eventType?: string;\n comp?: {\n id?: number;\n };\n showGameTime?: boolean;\n includeRedirect?: boolean;\n externalRedirect?: (\n e: MouseEvent | SyntheticEvent,\n gameId: number,\n gameType: number\n ) => void;\n eventsElement?: boolean;\n withMoreWagesWrapper?: boolean;\n withTeamLogo?: boolean;\n showMarketName?: boolean;\n matchStartTimeInFooter?: boolean;\n isLive?: boolean;\n detailedTeamsInfo?: boolean;\n setMarketNames?: (arg: string[]) => void;\n showFavoriteButton?: boolean;\n showBBIcon?: boolean;\n regionAlias?: string;\n isLast?: boolean;\n};\n\nconst matchCardInlineUSADefaultProps = {\n game: {},\n competitionName: '',\n showGameTime: true,\n includeRedirect: true\n} as TMatchCardInlineUSAProps;\n\nexport const MatchCardInlineUSA = ({\n game,\n competitionName,\n sportAlias,\n eventType,\n comp,\n regionAlias,\n showGameTime,\n includeRedirect,\n externalRedirect,\n withMoreWagesWrapper,\n showMarketName = true,\n matchStartTimeInFooter,\n isLive,\n detailedTeamsInfo,\n setMarketNames,\n showFavoriteButton,\n showBBIcon,\n isLast\n}: TMatchCardInlineUSAProps = matchCardInlineUSADefaultProps): ReactElement => {\n const { t } = useTranslation();\n const configs = useSportsbookConfigs();\n const { params } = useSbRouteMatch();\n\n const [isClassic, setIsClassic] = useState(\n USA_SPEC_SPORTS.includes(sportAlias || '')\n );\n\n const [isClassicColumn, setIsClassicColumn] = useState(\n TWO_WAY_OUTCOME_SPORTS.includes(sportAlias || '')\n );\n\n const currentSportId = useSelector(\n getSportIdByAlias(sportAlias as string, configs.type)\n );\n\n const betBuilderProps = {\n sportId: currentSportId,\n fixtureId: game.sportcast_id,\n gameTitle: `${game.team1_name} - ${game.team2_name}`,\n afterSignInActonName: `MatchCardInlineUSA_${game.id}_${AFTER_SIGN_IN_ACTION_TYPES.TOGGLE_BET_BUILDER_MODAL}`\n };\n\n const { openBetBuilder } = useOpenBetBuilder(betBuilderProps);\n\n const isLiveMatch = isLive || eventType === 'liveEvents' || game.type === 1;\n\n const handleRedirect = useCallback(\n (\n region: string,\n competitionId: number | undefined,\n gameId: number,\n e: SyntheticEvent\n ) => {\n externalRedirect\n ? externalRedirect(e, gameId, game.type)\n : handleRedirectToSportsBook(\n eventType as string,\n region,\n competitionId,\n gameId,\n sportAlias\n );\n },\n [sportAlias, externalRedirect, game.type]\n );\n\n const isOutRight = game.show_type === 'OUTRIGHT';\n\n const winnerMarket = useMemo(() => {\n const marketsArr = Object.values(game.market || {}).filter(el => !!el);\n\n const winner =\n marketsArr.find(market => WINNER_MARKETS.includes(market.type)) ||\n getEmptyMarketsForNotClassicView(\n TWO_WAY_OUTCOME_SPORTS.includes(sportAlias || '')\n );\n\n return winner as Market;\n }, [game.market, sportAlias]);\n\n const markets = useMemo(() => {\n const markets = Object.values(game.market || {});\n const orderedArray = [];\n const handicaps = getOrderedMarketsForUsaSports(markets, HANDICAPS);\n\n orderedArray.push(\n handicaps[0] || {\n id: -1,\n type: 'Handicap',\n event: {\n '-1': {\n id: -1\n },\n '-2': {\n id: -2\n }\n }\n }\n );\n\n const overUnders = getOrderedMarketsForUsaSports(markets, OVER_UNDERS);\n\n orderedArray.push(\n overUnders[0] || {\n id: -1,\n type: 'OverUnder',\n event: {\n '-1': {\n id: -1\n },\n '-2': {\n id: -2\n }\n }\n }\n );\n\n const winner = findWinnerMarkersForUsaSports(markets, [\n 'P1P2',\n 'W1W2',\n 'MatchWinner'\n ]);\n\n orderedArray.push(\n winner || {\n id: -1,\n type: 'MatchWinner',\n event: {\n '-1': {\n id: -1\n },\n '-2': {\n id: -2\n }\n }\n }\n );\n\n return orderedArray as Market[];\n }, [game]);\n\n useEffect(() => {\n setIsClassic(USA_SPEC_SPORTS.includes(sportAlias || ''));\n setIsClassicColumn(TWO_WAY_OUTCOME_SPORTS.includes(sportAlias || ''));\n }, [sportAlias]);\n\n const getSportsbookMarket = (marketItem: Market | Event) => {\n if (checkIsMarketInGroupWithOvertime(HANDICAPS, marketItem?.type)) {\n if (sportAlias === 'Baseball') {\n return 'runLine';\n } else {\n return 'marketSpread';\n }\n } else if (\n checkIsMarketInGroupWithOvertime(OVER_UNDERS, marketItem?.type)\n ) {\n return 'marketTotal';\n }\n\n return 'marketMoney';\n };\n\n const marketNames = useMemo(() => {\n if (game.show_type === 'OUTRIGHT') {\n return [];\n }\n\n const marketTypes = isClassic\n ? markets\n : sortByOrder(Object.values(winnerMarket?.event || {}));\n\n const _marketNames = marketTypes.map((marketItem, index) => {\n if (isClassic) {\n return t(`sportsbook.${getSportsbookMarket(marketItem)}`);\n } else {\n return !isClassicColumn\n ? index === 0\n ? '1'\n : marketTypes.length > 2\n ? index === 2\n ? '2'\n : 'X'\n : '2'\n : marketItem.name;\n }\n });\n\n return _marketNames;\n }, [isClassic, markets, winnerMarket, isClassicColumn, game.show_type]);\n\n useEffect(() => {\n if (marketNames) {\n setMarketNames?.(marketNames);\n }\n }, [marketNames]);\n\n const isSportsbook =\n configs.spbLayoutType === ESportsbookLayoutTypes.AMERICAN;\n\n const longFormatChecker = NotRealSportsForDifFormats.includes(\n params.category\n );\n\n return (\n (\n \n handleRedirect(\n game.region_alias || regionAlias || '',\n comp?.id,\n game.id,\n e\n )\n }\n >\n {children}\n \n \n {matchStartTimeInFooter && (\n \n )}\n \n {game.text_info || ''}\n \n \n \n {t('sportsbook.moreWages')}{' '}\n {!!game.markets_count && `[+${game.markets_count}]`}\n \n \n \n )}\n >\n \n handleRedirect(\n game.region_alias || regionAlias || '',\n comp?.id,\n game.id,\n e\n )\n })}\n >\n \n {showGameTime && (\n
\n {showFavoriteButton && isMobile() && (\n
\n \n
\n )}\n \n
\n )}\n {detailedTeamsInfo ? (\n \n ) : (\n
\n \n
\n \n {isSportsbook ? (\n \n \n {String(game.team1_name)\n .substring(0, 2)\n .toUpperCase()}\n \n \n ) : null}\n \n {game.team1_name}\n \n
\n
\n {game.info?.score1 && !isOutRight ? game.info.score1 : ''}\n
\n
\n {!!game.team2_name && (\n
\n
\n {isSportsbook ? (\n \n \n {String(game.team2_name)\n .substring(0, 2)\n .toUpperCase()}\n \n \n ) : null}\n \n {game.team2_name}\n \n
\n
\n {game.info?.score2 && !isOutRight ? game.info.score2 : ''}\n
\n
\n )}\n \n {showBBIcon &&\n game.sportcast_id &&\n SpringConfigs.BET_BUILDER_SWITCHER && (\n \n openBetBuilder(e)}\n />\n \n )}\n \n )}\n \n \n \n {isOutRight\n ? null\n : isClassic\n ? markets.map((marketItem, index) => (\n \n {showMarketName && (\n
\n {t(`sportsbook.${getSportsbookMarket(marketItem)}`)}\n
\n )}\n {sortByOrder(Object.values(marketItem?.event || {})).map(\n (eventItem, index) => (\n \n )\n )}\n \n ))\n : sortByOrder(Object.values(winnerMarket?.event || {})).map(\n (event, index, array) => (\n \n {!isClassicColumn && showMarketName ? (\n
\n {index === 0\n ? '1'\n : array.length > 2\n ? index === 2\n ? '2'\n : 'X'\n : '2'}\n
\n ) : isMobile() && detailedTeamsInfo ? (\n
\n ) : null}\n \n
\n )\n )}\n \n\n {showFavoriteButton && !isMobile() && (\n \n \n \n )}\n \n \n \n );\n};\n","export const getEmptyMarketsForNotClassicView = (twoWay?: boolean) => {\n const EMPTY_MARKETS: {\n id: number;\n type: string;\n name: string;\n order: number;\n group_id: number;\n group_name: string;\n event: Record<\n string,\n {\n id: number;\n type: string;\n type_1: string;\n price: number;\n name: string;\n order: number;\n }\n >;\n } = {\n id: -1,\n type: 'P1XP2',\n name: 'P1XP2',\n order: 0,\n group_id: 0,\n group_name: 'Winner',\n event: {\n '-1': {\n id: -1,\n type: 'W1',\n type_1: 'W1',\n price: 0,\n name: 'W1',\n order: 0\n },\n '-2': {\n id: -2,\n type: 'X',\n type_1: 'X',\n price: 0,\n name: 'X',\n order: 1\n },\n '-3': {\n id: -3,\n type: 'W2',\n type_1: 'W2',\n price: 0,\n name: 'W2',\n order: 2\n }\n }\n };\n\n if (twoWay) {\n delete EMPTY_MARKETS.event['-2'];\n }\n\n return EMPTY_MARKETS;\n};\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype Props = {\n competition?: boolean;\n isLive?: boolean;\n noTitle?: boolean;\n withMarketFilter?: boolean;\n withPadding?: boolean;\n};\n\nexport const HeaderPickerSkeleton = (props: Props): ReactElement => {\n return (\n <>\n \n {!props.noTitle ? (\n
\n \n
\n ) : null}\n {!props.isLive && (\n
\n {props.competition || props.withMarketFilter ? (\n \n ) : (\n \n )}\n
\n )}\n \n {props.competition && isMobile() && (\n \n \n \n \n \n )}\n \n );\n};\n","import { ReactElement, SyntheticEvent, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport cc from 'classcat';\nimport { EIconSize, ICON_SIZE } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getTime } from 'utils/date-manipulation/get-tournament-time';\nimport { getMountPath, mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { ETournamentProductTypeIds } from 'interfaces/casino-data';\nimport { ISportTournament } from 'interfaces/sport-tournaments';\nimport { TTabDataKey } from 'interfaces/sportsbook';\nimport { getTournaments } from 'services/casino/casino-tournaments';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Loading } from 'components/Loading';\nimport { addQuery } from 'components/QueryRoute';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useCurrency } from 'hooks/useCurrency';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setTournamentSportIds } from 'store/actions';\nimport {\n getSportsbookSelectedSport,\n getSportsData\n} from 'store/selectors/new-sportsbook';\nimport { getTournamentSportIds } from 'store/selectors/sport-data';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nexport const SportTournament = (): ReactElement => {\n const sportsbookConfigs = useSportsbookConfigs();\n\n const [isOpen, setIsOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n const [sportTournaments, setSportTournaments] = useState<\n null | ISportTournament[]\n >(null);\n\n const [selectedTournament, setSelectedTournament] =\n useState(null);\n\n const sports = useSelector(getSportsData)?.[sportsbookConfigs.type];\n const selectedSport = useSelector(getSportsbookSelectedSport);\n const tournamentSportIds = useSelector(getTournamentSportIds);\n\n const history = useHistory();\n const dispatch = useDispatch();\n\n const { t } = useTranslation();\n const { path } = useSbRouteMatch();\n const { currency } = useCurrency();\n\n const handleSelectTournament = (tournament?: ISportTournament) => {\n if (tournament?.SportRuleList?.SelectedSportItems) {\n const ids: number[] = [];\n\n tournament.SportRuleList.SelectedSportItems.map(sport => {\n ids.push(sport.Id);\n });\n\n dispatch(setTournamentSportIds(ids));\n setSelectedTournament(tournament);\n\n if (!ids.includes(selectedSport?.id as number)) {\n const currentSport = sports?.find(({ id }) => ids.includes(Number(id)));\n\n history.push(\n `${mountPoint(window.getPathname())}/${currentSport?.alias}`\n );\n }\n }\n };\n\n const handleResetSelectedTournament = () => {\n dispatch(setTournamentSportIds(null));\n setSelectedTournament(null);\n };\n\n const handleRedirect = (event: SyntheticEvent) => {\n const redirectUrl = `${getMountPath(path)}/${\n TTabDataKey.TOURNAMENTS\n }/?tournamentId=${selectedTournament?.Id}`;\n\n event.preventDefault();\n event.stopPropagation();\n history.push(\n isMobile()\n ? addQuery({ tournamentId: selectedTournament?.Id.toString() })\n : redirectUrl\n );\n };\n\n useEffect(() => {\n if (isOpen) {\n getTournaments(\n {\n product_type_id: ETournamentProductTypeIds.SPORT\n },\n (data: { result?: Array }) => {\n if (data?.result) {\n setSportTournaments(data.result);\n setIsLoading(false);\n }\n }\n );\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (selectedTournament && !tournamentSportIds?.length) {\n handleResetSelectedTournament();\n }\n }, [selectedTournament, tournamentSportIds?.length]);\n\n return (\n \n \n {t('pages.tournaments')}\n \n }\n noMargin={isMobile()}\n icon={\n \n }\n onChange={(value: boolean) => {\n setIsOpen(value);\n }}\n defaultActive={false}\n headerClassName={isMobile() ? 'sport__tournament--mobile__header' : ''}\n key=\"1-sport-tournament\"\n size=\"middle\"\n >\n
\n {isLoading ? (\n
\n \n
\n ) : sportTournaments ? (\n \n {selectedTournament ? (\n
\n
\n \n {selectedTournament.Name}\n \n \n {t('sportsbook.reset')}\n \n \n
\n
\n {t('casino.buyInFee')}: \n \n {' '}\n {currency}{' '}\n {selectedTournament?.RegistrationAmount?.toString()}\n \n
\n
\n {getTime(selectedTournament.StartDate, '.')} -{' '}\n {getTime(selectedTournament.EndDate, '.')}\n
\n
\n \n {currency} {selectedTournament.PrizeFund}\n \n \n {t('sportsbook.seeDetails')}\n \n
\n
\n ) : sportTournaments.length ? (\n sportTournaments.map((item, index) => (\n handleSelectTournament(item)}\n >\n {item.Name}\n
\n ))\n ) : (\n
\n {t('emptyMessages.noTournamentGame')}\n
\n )}\n \n ) : (\n
\n {t('emptyMessages.noTournamentGame')}\n
\n )}\n \n \n \n );\n};\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TProps = {\n noTitle?: boolean;\n showTimeFilter?: boolean;\n withCount?: boolean;\n};\n\nexport const TimeFilterSkeleton = ({\n noTitle,\n showTimeFilter = true,\n withCount\n}: TProps): ReactElement => {\n return (\n \n {!noTitle && (\n \n )}\n {withCount && (\n \n )}\n\n {showTimeFilter && (\n \n )}\n \n );\n};\n","import { FC, ReactElement, ReactNode, useEffect, useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\nimport dayjs from 'dayjs';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport { TimeFilterSkeleton } from './Skeleton';\nimport { SportTitleSkeleton } from 'newelements/Sportsbook/Esport/Mobile/__partials/Sports/__partials/SportTitle/Skeleton';\nimport { HeaderPickerSkeleton } from 'components/Shared/MobileSkeleton/HeaderPickerSkeleton';\nimport { Viewport } from 'components/Viewport';\nimport { setTimeFilterData } from 'store/actions';\n\nconst { TimeFiltersMobile } = lazy(\n () => import(/* webpackChunkName: \"timefilter-mobile\" */ './Mobile')\n);\n\nconst { TimeFilterDesktop } = lazy(\n () => import(/* webpackChunkName: \"timefilter-desktop\" */ './Desktop')\n);\n\ntype TTimeFilterProps = {\n title?: string | ReactElement | ReactNode;\n isCalendar?: boolean;\n withoutDays?: boolean;\n noTitle?: boolean;\n resetTimeFilterMode?: number[];\n isDisabled?: boolean;\n skeleton?: {\n withCount?: boolean;\n useAlternative?: boolean;\n };\n showSortButton?: boolean;\n};\n\nexport const TimeFilter: FC = ({\n title,\n isCalendar,\n withoutDays,\n noTitle,\n resetTimeFilterMode,\n isDisabled,\n skeleton,\n showSortButton\n}) => {\n const dispatch = useDispatch();\n const dateOptions = useMemo(() => {\n // eslint-disable-next-line no-magic-numbers\n const days = isCalendar ? [0, 1, 2, 3, 4, 5, 6] : [1, 2, 3, 4, 5, 6, 7];\n\n return days.map(value => {\n const date = new Date();\n date.setDate(date.getDate() + value);\n\n return {\n value: dayjs(date.valueOf()).format(SpringConfigs.DT.shortDate),\n count: value,\n name: dayjs(date.valueOf()).format(SpringConfigs.DT.shortDate)\n };\n });\n }, [isCalendar]);\n\n useEffect(() => {\n return () => {\n if (\n SpringConfigs.PAGE_URLS.esport &&\n window.location.href.includes(SpringConfigs.PAGE_URLS.esport)\n ) {\n dispatch(\n setTimeFilterData({\n option: 'All',\n date: false,\n count: 0,\n name: 'All Events'\n })\n );\n }\n };\n }, []);\n\n return (\n \n \n \n \n ) : (\n \n )\n }\n innerProps={{\n title,\n isDisabled,\n dateOptions,\n showSortButton,\n ...(isMobile()\n ? {\n resetTimeFilterMode\n }\n : {\n withoutDays,\n noTitle\n })\n }}\n />\n );\n};\n","import { ReactElement, useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Dropdown, Menu } from 'antd';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { TMarketType } from 'interfaces/sportsbook';\nimport { PickerButton } from 'components/PickerButton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useMarketTypes } from 'newhooks/sportsbook/useMarketTypes';\nimport { setMarketType } from 'store/actions';\nimport { getMarketType } from 'store/selectors/sport-data';\nimport './index.less';\n\nexport const MarketsFilter = (): ReactElement | null => {\n const dispatch = useDispatch();\n const marketType = useSelector(getMarketType);\n\n const { params } = useSbRouteMatch();\n\n const { marketTypes, currentMarketType } = useMarketTypes();\n\n const setCurrentMarketType = useCallback(\n (menuItemKey: string) => {\n if (!menuItemKey || !marketTypes) {\n return;\n }\n\n const market = marketTypes.find(\n market => market.value === menuItemKey\n ) as TMarketType;\n\n if (JSON.stringify(currentMarketType) !== JSON.stringify(market)) {\n dispatch(setMarketType({ ...marketType, [params.sport]: market }));\n }\n },\n [marketType, currentMarketType, params.sport]\n );\n\n const menuItems = (marketTypes || []).map(({ value, label }) => {\n return { key: value, label: label };\n });\n\n if (marketTypes === null) {\n return null;\n }\n\n return !marketTypes ? (\n
\n \n
\n ) : (\n {\n return (triggerNode.parentNode as HTMLElement) || document.body;\n }}\n overlay={\n setCurrentMarketType(menuItem.key)}\n />\n }\n >\n \n {marketTypes.find(({ value }) => value === currentMarketType?.value)\n ?.label || ''}\n \n \n );\n};\n","import i18n from 'i18next';\nimport {\n GREYHOUNDS_RACING,\n HORSE_RACING\n} from 'utils/constants/sportsbook/racing-sport';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { CountSetter, NavSectionItem } from 'interfaces/generic';\nimport {\n getESportsGamesCount,\n getRacingGamesCount,\n getSportsbookGamesCount\n} from 'services/sportsbook';\n\nexport const EasyAccessSections: NavSectionItem[] = [\n {\n id: 1,\n title: i18n.t('pages.home'),\n pageType: 'home',\n iconInfo: {\n lib: 'generic',\n name: 'tenniscourt',\n theme: 'colored'\n }\n },\n {\n id: 2,\n title: i18n.t('pages.liveMatches'),\n pageType: 'live',\n iconInfo: {\n lib: 'generic',\n name: 'livestreaming',\n theme: 'colored'\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getSportsbookGamesCount(true, countSetter);\n }\n },\n {\n id: 3,\n title: i18n.t('pages.preMatch'),\n pageType: 'prematch',\n iconInfo: {\n lib: 'generic',\n name: 'upcoming',\n theme: 'colored'\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getSportsbookGamesCount(false, countSetter);\n }\n },\n {\n id: 4,\n title: i18n.t('pages.favorites'),\n iconInfo: {\n lib: 'generic',\n name: 'medal',\n theme: 'colored'\n }\n }\n];\n\nexport const ESportEasyAccessSections: NavSectionItem[] = [\n {\n id: 1,\n title: i18n.t('pages.allGames'),\n pageType: 'all',\n iconInfo: {\n lib: 'generic',\n name: 'allesports',\n theme: `${SpringConfigs.SPORT_ICON_STYLE}`\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getESportsGamesCount(true, countSetter, 'AllESports', true);\n },\n queryStringObject: {\n type: 'all'\n }\n },\n {\n id: 2,\n title: i18n.t('pages.liveMatches'),\n pageType: 'live',\n iconInfo: {\n lib: 'generic',\n name: 'livestreaming',\n theme: `${SpringConfigs.SPORT_ICON_STYLE}`\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getESportsGamesCount(true, countSetter, 'AllESports');\n },\n queryStringObject: { type: 'live' }\n },\n {\n id: 3,\n title: i18n.t('pages.preMatch'),\n pageType: 'prematch',\n iconInfo: {\n lib: 'generic',\n name: 'upcoming',\n theme: `${SpringConfigs.SPORT_ICON_STYLE}`\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getESportsGamesCount(false, countSetter, 'AllESports');\n },\n queryStringObject: { type: 'prematch' }\n }\n];\n\nexport const RacingEasyAccessSections: NavSectionItem[] = [\n {\n id: 31,\n title: i18n.t('pages.horseRacing'),\n pageType: 'racing',\n iconInfo: {\n lib: 'sports',\n name: HORSE_RACING.alias\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getRacingGamesCount([HORSE_RACING.id], countSetter);\n },\n queryStringObject: { type: HORSE_RACING.alias }\n },\n {\n id: 184,\n title: i18n.t('pages.greyhounds'),\n pageType: 'racing',\n iconInfo: {\n lib: 'sports',\n name: GREYHOUNDS_RACING.alias\n },\n countGetter: (countSetter: CountSetter): string | null => {\n return getRacingGamesCount([GREYHOUNDS_RACING.id], countSetter);\n },\n queryStringObject: { type: GREYHOUNDS_RACING.alias }\n }\n];\n","import { FC, useEffect, useState } from 'react';\nimport { PageType } from 'interfaces/generic';\nimport { unsubscribeCommand } from 'services/get-data-level';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useMounted } from 'hooks/useMounted';\n\ntype Props = {\n countGetter: Function;\n currentSport?: string;\n pageType?: PageType;\n category?: string;\n};\n\nexport const StandaloneGamesCount: FC = ({\n countGetter,\n currentSport,\n pageType,\n category\n}) => {\n const [count, setCount] = useState(null);\n const [rid, setRid] = useState(null);\n const [loading, setLoading] = useState(true);\n const { mounted } = useMounted();\n\n useEffect(() => {\n count !== null && setLoading(false);\n }, [count]);\n\n useEffect(() => {\n if (!rid || currentSport) {\n if (\n category === 'esport' &&\n count !== null &&\n (pageType === 'live' || pageType === 'prematch')\n ) {\n return;\n }\n\n setCount(null);\n setLoading(true);\n const returnedRid = countGetter((data: number | null) => {\n if (!mounted.current) {\n return;\n }\n\n setCount(data);\n }, currentSport);\n\n if (!rid) {\n setRid(returnedRid);\n }\n }\n\n return () => {\n rid && unsubscribeCommand(rid);\n };\n }, [rid, currentSport]);\n\n return loading ? (\n \n ) : (\n {count}\n );\n};\n","import { FC } from 'react';\nimport {\n RouteComponentProps,\n useHistory,\n useLocation,\n withRouter\n} from 'react-router-dom';\nimport cc from 'classcat';\nimport qs from 'qs';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n getMountPath,\n mountPoint,\n sbPathFromObj\n} from 'utils/generic/route-manipulation';\nimport { NavSectionItem, PageType } from 'interfaces/generic';\nimport { ERacingPageTypes } from 'interfaces/racing';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { StandaloneGamesCount } from 'components/StandaloneGamesCount';\nimport { WhiteTooltip } from 'components/WhiteTooltip';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport './index.less';\n\ntype Props = RouteComponentProps & {\n title: string;\n items: NavSectionItem[];\n routes: Record;\n pageType: PageType;\n category?: string;\n externalOnClick?: () => void;\n tooltipOnParent?: boolean;\n};\n\nconst _NavSection: FC = ({\n title,\n items,\n pageType: type,\n routes,\n category,\n externalOnClick,\n tooltipOnParent\n}) => {\n const history = useHistory();\n const location = useLocation();\n const queries = useSearchParams();\n const { path, params } = useSbRouteMatch();\n const configs = useSportsbookConfigs();\n\n return (\n
\n
\n {title}\n
\n
\n {items.map(\n ({\n id,\n title,\n pageType,\n countGetter,\n queryStringObject,\n iconInfo: { lib, name, theme }\n }) => (\n {\n if (queryStringObject?.type === queries.type) {\n return;\n }\n\n externalOnClick?.();\n\n if (pageType === 'racing') {\n history.push(\n `${mountPoint(location.pathname)}/${\n ERacingPageTypes.UPCOMING\n }/${id}`\n );\n\n return;\n }\n\n if (queryStringObject) {\n const sbObj: Partial<{\n sport: string;\n competition: string;\n region: string;\n game: string;\n }> = {};\n\n if (configs.category === 'esport') {\n sbObj.sport = 'AllESports';\n sbObj.region = 'all';\n sbObj.competition = 'all';\n } else {\n if (params.sport) {\n sbObj.sport = params.sport;\n }\n\n if (params.competition) {\n sbObj.competition = params.competition;\n }\n\n if (params.region) {\n sbObj.region = params.region;\n }\n }\n\n history.push({\n pathname: `${getMountPath(path)}${sbPathFromObj(sbObj)}`,\n search: qs.stringify(queryStringObject)\n });\n\n return;\n }\n\n pageType !== queries.type &&\n history.push(routes[pageType as PageType]);\n }}\n >\n
\n \n \n
{title}
\n
\n
\n {countGetter && (\n
\n \n
\n )}\n
\n )\n )}\n
\n \n );\n};\n\nexport const NavSection: ReturnType | any = withRouter(\n _NavSection as any\n);\n","import { FC } from 'react';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport i18n from 'i18next';\nimport { AppRoutes } from 'utils/constants/app/app-routes';\nimport {\n EasyAccessSections,\n ESportEasyAccessSections,\n RacingEasyAccessSections\n} from 'utils/constants/sportsbook/easy-access-sections';\nimport { PageType } from 'interfaces/generic';\nimport { SearchElement } from 'newelements/SearchElement';\nimport { NavSection } from 'components/NavSection';\nimport './index.less';\n\ntype Props = RouteComponentProps & {\n configs: {\n pageType: PageType;\n outterRoutes?: Record;\n category: string;\n };\n title?: string;\n externalOnClick?: () => void;\n tooltipOnParent?: boolean;\n};\n\nconst _SportsbookEasyAccessNavigation: FC = ({\n configs: { pageType, outterRoutes, category },\n title = category === 'racing'\n ? i18n.t('pages.racing')\n : i18n.t('sportsbook.easyAccess'),\n externalOnClick,\n tooltipOnParent\n}) => {\n return (\n
\n {category === 'sport' && (\n
\n \n
\n )}\n \n
\n );\n};\n\nexport const SportsbookEasyAccessNavigation:\n | ReturnType\n | any = withRouter(_SportsbookEasyAccessNavigation as any);\n","import { ReactElement, Suspense } from 'react';\nimport { useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { FavoriteSideBarSection } from './partials/FavoriteSideBarSection';\nimport { SearchElement } from 'newelements/SearchElement';\nimport {\n ESearchElementSearchType,\n TSearchActions\n} from 'newelements/SearchElement/partials/types';\nimport { SportTournament } from 'components/Shared/SportTournament';\nimport { FetchFavoriteMatchIds } from 'newcomponents/Shared/sportsbook/Favorite/FetchFavoriteMatchIds';\nimport { FavoriteTeamSkeleton } from 'newcomponents/Shared/sportsbook/FavoriteTeam/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport {\n getIsLoggedIn,\n getPersonalisedDataLoaded\n} from 'store/selectors/user-data';\n\nconst { Homework } = lazy(\n () =>\n import(/* webpackChunkName: \"homework\" */ 'newelements/Generics/homework')\n);\n\nconst { FavoriteTeam } = lazy(\n () =>\n import(\n /* webpackChunkName: \"my-favorite-team\" */ 'newcomponents/Shared/sportsbook/FavoriteTeam'\n )\n);\n\ntype TFavoriteSideBarSearchSectionProps = {\n showFavoriteTeam?: boolean;\n favoriteTeamCallback?: (id: string) => void;\n searchCallback?: (params: TSearchActions) => void;\n};\n\nexport const FavoriteSideBarSearchSection = ({\n searchCallback,\n showFavoriteTeam\n}: TFavoriteSideBarSearchSectionProps): ReactElement => {\n const config = useSportsbookConfigs();\n const personalisedDataLoaded = useSelector(getPersonalisedDataLoaded);\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n return (\n <>\n {SpringConfigs.USER_PERSONALIZATION_ENABLED ? (\n isLoggedIn && personalisedDataLoaded ? (\n \n ) : null\n ) : (\n \n )}\n\n \n\n {SpringConfigs.SPORT_TOURNAMENTS && +config.spbLayoutType === 0 && (\n
\n \n
\n )}\n\n {showFavoriteTeam && (\n \n }>\n \n \n \n )}\n\n {SpringConfigs.HOMEWORK_ENABLED ? (\n \n \n \n ) : null}\n\n
\n {\n searchCallback(params);\n }\n : undefined\n }\n configs={{\n searchType: ESearchElementSearchType.SPORT\n }}\n />\n
\n \n );\n};\n","import { TopLeagueCompactMenuItem } from './partials/TopLeagueCompactMenuItem';\nimport './index.less';\n\nexport const TopLeagueCompactMenuItemWithWrapper = () => {\n return (\n
\n \n
\n );\n};\n","import styled from 'styled-components';\n\nexport const SportsbookNavigationsBlock = styled.div<{ heightAuto?: boolean }>`\n height: ${props => (props.heightAuto ? 'auto' : 'unset')};\n display: flex;\n flex-direction: column;\n padding-top: 4px;\n\n .prematchNavigationWrapper {\n background-color: var(--v3-black-0);\n border-radius: 6px;\n overflow: hidden;\n\n .sportsHeader-titleWrapper {\n border-bottom: 1px solid var(--v3-black-6);\n border-top: none;\n height: 56px;\n font-size: 18px;\n }\n .navigationCollapseWrapper {\n padding: 8px;\n }\n }\n`;\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype TSportItemProps = {\n sport: Sport;\n isActive: boolean;\n onClick: (arg: Sport) => void;\n};\n\nexport const SportItem = ({\n sport,\n isActive,\n onClick\n}: TSportItemProps): ReactElement => {\n return (\n onClick(sport)}\n >\n \n \n {sport.name}\n \n \n \n );\n};\n\nexport const SportItemSkeleton = (): ReactElement => {\n return (\n <>\n {Array.from({ length: 5 }, (v, i) => i).map(key => (\n
\n \n \n \n \n \n
\n ))}\n \n );\n};\n","import { ReactElement, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n gameSportcastId,\n gameSportcastIdWhere,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { SPORTSBOOK_ROUTE_WITH_CATEGORY } from 'utils/sportsbook/route.structure';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand } from 'services/get-data-level';\nimport { unsubscribeCommand } from 'services/get-swarm-data';\nimport { SportItem, SportItemSkeleton } from './SportItem';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setGameInfo } from 'store/actions/game-data';\nimport { setShowNoItemWrapper } from 'store/actions/new-sportsbook';\nimport { getPrematchBoostedOddsIds } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TVerticalSportsListProps = {\n sportCategory: ENotRealSports;\n isTopMatches?: boolean;\n handleRedirect?: (url: string) => void;\n};\n\nexport const VerticalSportsList = ({\n sportCategory\n}: TVerticalSportsListProps): ReactElement => {\n const configs = useSportsbookConfigs();\n const boostedGameIDs = useSelector(getPrematchBoostedOddsIds);\n\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const history = useHistory();\n const routeParams = useSbRouteMatch(SPORTSBOOK_ROUTE_WITH_CATEGORY);\n\n const sportInRoute = routeParams?.params.sport;\n\n const [sportsData, setSportsData] = useState(\n null\n );\n\n useEffect(() => {\n let shouldUnsubscribe = false;\n\n if (sportCategory === ENotRealSports.boostedOdds && !boostedGameIDs) {\n return;\n }\n\n shouldUnsubscribe = true;\n const where: Record = {\n game: {\n type: {\n '@in': [0, 2]\n },\n id: {\n '@in': boostedGameIDs\n }\n }\n };\n\n if (configs.sportType) {\n where.sport = {\n type: {\n '@in': getLivePreMatchSportTypes(configs.sportType)\n }\n };\n }\n\n const what: {\n [key: string]: Array;\n } = {\n sport: sports.sport\n };\n\n if (sportCategory === ENotRealSports.betBuilder) {\n delete where.game.id;\n\n where.game.sportcast_id = gameSportcastIdWhere;\n what.game = gameSportcastId;\n }\n\n const Rid = RidGenerator.gForSubscribe('VerticalSportsList');\n\n setSportsData([]);\n executeCommand(\n Rid,\n what,\n where,\n (resp: { sport: Record }) => {\n if (mounted.current && resp.sport && Object.keys(resp.sport).length) {\n const orderedSports = sortByOrder(Object.values(resp.sport));\n setSportsData(orderedSports);\n } else {\n dispatch(setShowNoItemWrapper({ competitions: true, game: true }));\n setSportsData(undefined);\n }\n }\n );\n\n return () => {\n if (shouldUnsubscribe) {\n unsubscribeCommand(Rid);\n }\n };\n }, [boostedGameIDs, sportCategory]);\n\n useEffect(() => {\n if (sportsData && !sportInRoute) {\n handleSportSelect(sportsData[0]);\n }\n }, [sportsData, sportInRoute]);\n\n const handleSportSelect = (sport: Sport) => {\n if (sport?.alias === sportInRoute) {\n return;\n }\n\n if (routeParams) {\n const path = `${getMountPath(routeParams.path)}/${sportCategory}/${\n sport.alias\n }`;\n\n dispatch(setGameInfo(null));\n history.push(path);\n }\n };\n\n if (sportsData === undefined) {\n return (\n \n );\n }\n\n return (\n
\n {sportsData?.length ? (\n sportsData?.map(sport => (\n \n ))\n ) : (\n \n )}\n
\n );\n};\n","import { ReactElement, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\nimport { FAVORITE_TEAM_SPORT } from 'utils/constants/sportsbook/favorite-team';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { PageType } from 'interfaces/generic';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport {\n EOlympicLayoutType,\n ETopLeagueLayoutType,\n ETopMatchesLayoutType\n} from 'interfaces/sportsbook-configs';\nimport { FavoriteSideBarSearchSection } from './FavoriteSideBarSearchSection';\nimport { SportsbookNavigationsBlock } from './style';\nimport { TopLeagueCompactMenuItemWithWrapper } from './TopLeagueCompactMenuItemWithWrapper';\nimport { CategoriesNavigation } from 'newelements/Sportsbook/__partials/CategoriesNavigation';\nimport { SportsHeader } from 'newelements/Sportsbook/__partials/SportsHeader';\nimport { SportsNavigation } from 'newelements/Sportsbook/__partials/SportsNavigation';\nimport { TPrematchCategoryTypes } from 'newelements/Sportsbook/helpers';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { SportsbookEasyAccessNavigation } from 'components/SportsbookEasyAccessNavigation';\nimport { OlympicCompetitionCompactLayout } from 'newcomponents/Shared/sportsbook/OlympicCompetitionCompactLayout';\nimport { TopMatchesCompactMenuItem } from 'newcomponents/Shared/sportsbook/TopMatchesCompactMenuItem';\nimport { VerticalSportsList } from 'newcomponents/Shared/sportsbook/VerticalSportsList';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getSportsData } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\ntype TSportsbookLeftSideBarProps = {\n configs: {\n pageType: PageType;\n easyAccessAvailable: boolean;\n routes?: Record;\n onlyCounts?: boolean;\n category?: string | boolean;\n showCompetitionsList?: boolean;\n favoriteTeam?: boolean;\n sportType?: string;\n };\n} & RouteComponentProps;\n\nconst sportsbookLeftSideBarDefaultProps = {\n configs: {\n pageType: 'blank',\n easyAccessAvailable: false,\n onlyCounts: false,\n category: false,\n showCompetitionsList: false,\n favoriteTeam: false,\n sportType: '',\n routes: undefined\n }\n} as TSportsbookLeftSideBarProps;\n\nconst _SportsbookLeftSideBar = ({\n configs\n}: TSportsbookLeftSideBarProps = sportsbookLeftSideBarDefaultProps): ReactElement => {\n const pageConfig = useSportsbookConfigs();\n const routeParams = useSbRouteMatch();\n const sportsData = useSelector(getSportsData);\n const { t } = useTranslation();\n\n const isBoostedOdds =\n routeParams.params?.category === ENotRealSports.boostedOdds ||\n routeParams.params?.sport === ENotRealSports.boostedOdds;\n\n const showTopLeague =\n configs.pageType !== 'live' &&\n SpringConfigs.TOP_LEAGUES_LAYOUT === ETopLeagueLayoutType.compact &&\n SpringConfigs.TOP_LEAGUES;\n\n const showTopMatches =\n configs.pageType !== 'live' &&\n SpringConfigs.TOP_MATCHES_LAYOUT === ETopMatchesLayoutType.compact &&\n SpringConfigs.TOP_MATCHES;\n\n const showOlympicCompetition =\n configs.pageType !== 'live' &&\n SpringConfigs.OLYMPIC_COMPETITION_LAYOUT === EOlympicLayoutType.compact &&\n SpringConfigs.OLYMPIC_COMPETITION;\n\n const NavigationBlock = useMemo(() => {\n if (configs.onlyCounts) {\n return null;\n }\n\n if (isBoostedOdds) {\n return (\n \n );\n }\n\n if (configs.pageType === 'prematch' || configs.showCompetitionsList) {\n const sportAlias =\n routeParams.params?.category || routeParams.params?.sport;\n\n const isNotRealSport = NOT_REAL_SPORTS.includes(sportAlias);\n const isFavTeam = sportAlias === ENotRealSports.team;\n\n if (isFavTeam) {\n return ;\n } else if (isNotRealSport) {\n return (\n \n );\n } else {\n return ;\n }\n } else {\n return (\n \n );\n }\n }, [\n isBoostedOdds,\n configs,\n routeParams.params?.sport,\n routeParams.params?.category\n ]);\n\n const isEmptySportData = sportsData === undefined;\n\n return (\n <>\n \n\n {showTopLeague ? : null}\n\n {showTopMatches ? (\n
\n \n
\n ) : null}\n\n {showOlympicCompetition ? (\n
\n \n
\n ) : null}\n\n {isEmptySportData ? null : (\n \n {configs.easyAccessAvailable && (\n \n )}\n {\n return (\n
\n \n {children}\n
\n );\n }}\n >\n {NavigationBlock}\n \n
\n )}\n \n );\n};\n\nexport const SportsbookLeftSideBar: ReturnType | any =\n withRouter(_SportsbookLeftSideBar as any);\n","import { SyntheticEvent } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { YOUR_PREFERENCES } from 'utils/constants/tour';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Favorite } from 'components/Shared/Favorites/Favorite';\nimport { clearAllFavorite } from 'store/actions';\nimport {\n getCollaspsedFavoriteBar,\n getFavoriteEntitiesCount,\n getFavoriteMatchIdsLoading\n} from 'store/selectors/fav-data';\n\ntype TFavoriteSideBarSectionProps = {\n favoriteHighlight?: boolean;\n classNames?: { [key: string]: boolean };\n};\n\nexport const FavoriteSideBarSection = ({\n classNames,\n favoriteHighlight = true\n}: TFavoriteSideBarSectionProps) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const isFavoriteMatchIdsLoading = useSelector(getFavoriteMatchIdsLoading);\n const count = useSelector(getFavoriteEntitiesCount).sportsWithCompetitions;\n\n const collaspsedFavoriteBar = useSelector(getCollaspsedFavoriteBar);\n\n const leftSidebarFavDefaultActive =\n SpringConfigs.USER_PERSONALIZATION_ENABLED && !!count;\n\n const clearAllFavorites = (e: SyntheticEvent) => {\n e.stopPropagation();\n dispatch(clearAllFavorite('sports'));\n dispatch(clearAllFavorite('competitions'));\n };\n\n return (\n \n \n }\n extra={\n count ? (\n \n {t('sportsbook.clearAll')}\n \n ) : (\n ''\n )\n }\n size=\"middle\"\n >\n {count ? (\n \n ) : (\n
\n \n {t('sportsbook.clickToAddFavorite')}\n \n
\n )}\n \n \n );\n};\n","import React, { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { ETopLeagueLayoutType } from 'interfaces/sportsbook-configs';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { RegionSkeleton } from 'components/UI/Skeletons/RegionSkeleton';\nimport './index.less';\n\nexport const TopLeagueCompactMenuSkeleton = (): ReactElement => {\n const { t } = useTranslation();\n\n if (\n (isMobile() || SpringConfigs.TOP_LEAGUES_DEFAULT_OPEN) &&\n SpringConfigs.TOP_LEAGUES_LAYOUT === ETopLeagueLayoutType.compact\n ) {\n return (\n
\n \n
\n );\n }\n\n return (\n \n }\n wrapperClassName=\"sportsList__sport\"\n headerClassName=\"sportsList__sport__header topLeague__header\"\n >\n {null}\n \n );\n};\n","import React, { FC, Suspense, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n competitions,\n regions,\n sports,\n topLeaguesWhere\n} from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { addRegionNameToCompetition } from 'utils/sportsbook/add-region-name-to-competition';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Region as RegionType, Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { TopLeagueCompactMenuSkeleton } from './Skeleton';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport {\n TopLeagueCompactLayout,\n TSportDataWithCompetitions\n} from 'newcomponents/Shared/sportsbook/TopLeagueCompactLayout';\nimport { TopLeagueCompactLayoutSkeleton } from 'newcomponents/Shared/sportsbook/TopLeagueCompactLayout/skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport {\n setNavigationWrapperHeightChanged,\n setSwarmResponse\n} from 'store/actions/new-sportsbook';\nimport { getSwarmResponse } from 'store/selectors/new-sportsbook';\n\ntype TProps = {\n fromSportsList?: boolean;\n showCollapse?: boolean;\n sportIconSize?: number;\n regionIconSize?: number;\n externalDataSource?: Record;\n addGameStartTsInRequest?: boolean;\n};\n\nexport const TopLeagueCompactMenuItem: FC = ({\n fromSportsList = false,\n showCollapse = !isMobile(),\n sportIconSize,\n regionIconSize,\n externalDataSource,\n addGameStartTsInRequest\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const { sportType, fixedScroll } = useSportsbookConfigs();\n\n const internalDataSource =\n useSelector(getSwarmResponse)?.[ENotRealSports.topLeague];\n\n const data = externalDataSource || internalDataSource;\n\n const sportData = useMemo(() => {\n if (data) {\n return addRegionNameToCompetition(\n { sport: JSON.parse(JSON.stringify(data)) },\n false\n ) as TSportDataWithCompetitions;\n }\n }, [data]);\n\n const getData = (rid: string) => {\n const where = sportType\n ? {\n ...topLeaguesWhere,\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n }\n : topLeaguesWhere;\n\n const relations: Record = {\n ...sports,\n ...regions,\n competition: [...competitions.competition, 'favorite_order']\n };\n\n if (addGameStartTsInRequest) {\n relations.game = ['start_ts'];\n }\n\n executeCommand(\n rid,\n relations,\n where,\n (data: {\n sport: Record;\n region: Record;\n }) => {\n dispatch(setSwarmResponse({ [ENotRealSports.topLeague]: data.sport }));\n },\n true,\n (data: { sport: Record }) => {\n dispatch(setSwarmResponse({ [ENotRealSports.topLeague]: data.sport }));\n }\n );\n };\n\n useEffect(() => {\n const rId = RidGenerator.gForSubscribe('TOP_LEAGUE_COMPACT');\n\n getData(rId);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, []);\n\n const onToggle = (active: boolean) => {\n if (!active && !isMobile() && !fixedScroll) {\n dispatch(setNavigationWrapperHeightChanged());\n }\n };\n\n if (!sportData) {\n return ;\n }\n\n const isDefaultOpen =\n SpringConfigs.TOP_LEAGUES_DEFAULT_OPEN ||\n SpringConfigs.SPORT_MENU_DEFAULT_SELECTED === 'topLeagues';\n\n return (\n (\n \n }\n wrapperClassName=\"sportsList__sport topLeague__wrapper\"\n headerClassName=\"sportsList__sport__header topLeague__header\"\n defaultActive={isDefaultOpen}\n >\n {children}\n \n )}\n >\n }>\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const StatscoreWrapper = styled.div`\n width: 100%;\n display: flex;\n min-height: 200px;\n align-items: center;\n justify-content: center;\n`;\n\nexport const StatscoreWrapperContainer = styled.div`\n width: 100%;\n min-height: 200px;\n`;\n\nexport const BrowserNotSupportedStyled = styled.div`\n height: 200px;\n`;\n","import { ReactElement, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport {\n BrowserNotSupportedStyled,\n StatscoreWrapper,\n StatscoreWrapperContainer\n} from './style';\nimport { getGameInfo } from 'store/selectors/game-data';\n\ntype Props = {\n configs?: {\n statscoreDataConfig: string;\n };\n closeMatchTracker?: () => void;\n};\n\nexport const Statscore = (props: Props): ReactElement | null => {\n const { t } = useTranslation();\n const state = useSelector(getGameInfo);\n\n const statscoreRef = useRef(null);\n const [widget, setWidget] = useState(null);\n const [browserNotSupported, setBrowserNotSupported] = useState(false);\n\n const { statscoreDataConfig = '' } = props.configs || {};\n\n const runStatscoreTracker = function () {\n if (state.game.id && statscoreRef?.current) {\n if (widget) {\n widget.destroy();\n }\n\n window.STATSCOREWidgets.onLoadCallbacks = [];\n\n window.STATSCOREWidgets.onLoad((error: { type: String }) => {\n props.closeMatchTracker && props.closeMatchTracker();\n\n if (error?.type === 'BrowserNotSupported') {\n setBrowserNotSupported(true);\n } else {\n state.game.id &&\n setWidget(\n new window.STATSCOREWidgets.WidgetGroup(\n statscoreRef.current,\n statscoreDataConfig,\n {\n eventId: `m:${state.game.id}`,\n language: 'en'\n },\n {}\n )\n );\n }\n });\n }\n };\n\n useEffect(() => {\n if (statscoreDataConfig?.length && state.game.id) {\n if (!window.STATSCOREWidgets) {\n (function () {\n const d = 'STATSCOREWidgetsEmbederScript';\n\n if (!window.document.getElementById(d)) {\n (window.STATSCOREWidgets = {}),\n (window.STATSCOREWidgets.onLoadCallbacks = []),\n (window.STATSCOREWidgets.onLoad = function (d: any) {\n window.STATSCOREWidgets.onLoadCallbacks.push(d);\n });\n const n = window.document.createElement('script');\n (n.src = 'https://wgt-s3-cdn.statscore.com/bundle/Embeder.js'),\n (n.async = !0),\n (n.id = d),\n n.addEventListener('error', function (d) {\n for (\n let n = 0;\n n < window.STATSCOREWidgets.onLoadCallbacks.length;\n n++\n ) {\n window.STATSCOREWidgets.onLoadCallbacks[n](d);\n }\n }),\n (n.onload = () => {\n runStatscoreTracker();\n }),\n window.document.body.appendChild(n);\n }\n })();\n } else {\n runStatscoreTracker();\n }\n }\n }, [state.game.id]);\n\n return !statscoreDataConfig?.length ? null : (\n \n {browserNotSupported ? (\n \n {t('sportsbook.browserIsNotSupported')}\n \n ) : (\n \n )}\n \n );\n};\n","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n BETS_TOTAL_ODDS_HEIGHT,\n BOTTOM_NAVIGATION_ELEMENT_DEFAULT_HEIGHT,\n EDIT_BET_ELEMENT_SWITCHER_HEIGHT,\n QUICK_BET_ELEMENT_DEFAULT_HEIGHT\n} from 'utils/constants/app/BottomNavigationDefaultData';\nimport { BETSLIP_AREA_ID } from 'newelements/_Betslip/utils/constants/shared';\nimport {\n getBetsTotalOdds,\n getEditBet,\n getQuickBetEnabled,\n getQuickBetStake\n} from 'store/selectors/betslip';\n\nexport const useCalculateBetslipFixedSwitchersHeight = (): number => {\n const isQuickBetEnabled = useSelector(getQuickBetEnabled);\n const { active: isEditBetActive } = useSelector(getEditBet) || {};\n const quickBetStake = useSelector(getQuickBetStake);\n const betsTotalOdds = useSelector(getBetsTotalOdds);\n\n return useMemo(() => {\n let height = BOTTOM_NAVIGATION_ELEMENT_DEFAULT_HEIGHT;\n const betslipTotalOdds = document.getElementById('betslipTotalOdds');\n const betslipArea = document.getElementById(BETSLIP_AREA_ID);\n\n if (isQuickBetEnabled && quickBetStake) {\n height += betslipArea?.clientHeight || QUICK_BET_ELEMENT_DEFAULT_HEIGHT;\n }\n\n if (isEditBetActive) {\n height += betslipArea?.clientHeight || EDIT_BET_ELEMENT_SWITCHER_HEIGHT;\n }\n\n if (betsTotalOdds) {\n height += betslipTotalOdds?.clientHeight || BETS_TOTAL_ODDS_HEIGHT;\n }\n\n return height;\n }, [isQuickBetEnabled, isEditBetActive, quickBetStake, betsTotalOdds]);\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PRIVATE_COMPETITIONS } from 'utils/constants/sportsbook/private-competitions';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { streamTabOnclick } from 'utils/sportsbook/live-games-helper';\nimport { IGameStats } from 'interfaces/sportsbook-data-levels';\nimport { TMatchInfoHideGame } from 'components/MatchInfoCard';\nimport { usePrevious } from 'hooks/usePrevious';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n setDisableMatchStreamingStreamType,\n setIsMatchStreamingPreviewUnavailable,\n setMatchStreamingStreamType\n} from 'store/actions/match-streaming';\nimport {\n getDisableMatchStreamingType,\n getMatchStreamingType\n} from 'store/selectors/match-streaming';\nimport { getIsLoggedIn } from 'store/selectors/user-data';\n\ntype Props = {\n game?: TMatchInfoHideGame;\n};\n\nexport const useMatchInfoHide = ({\n game\n}: Props): Props['game'] | undefined => {\n const { t } = useTranslation();\n const { params } = useSbRouteMatch();\n const dispatch = useDispatch();\n const isLoggedIn = useSelector(getIsLoggedIn);\n const previousGameId = usePrevious(params.game);\n const [alteredGame, setAlteredGame] = useState();\n\n const disableMatchStreamingType = useSelector(getDisableMatchStreamingType);\n const disableMatchStreamingTypeRef = useRef(disableMatchStreamingType);\n\n const matchStreamingType = useSelector(getMatchStreamingType);\n const matchStreamingTypeRef = useRef(matchStreamingType);\n\n const getPreviousView = () => {\n if (disableMatchStreamingTypeRef.current.disable) {\n dispatch(\n setDisableMatchStreamingStreamType({\n disable: false,\n previous: 0\n })\n );\n streamTabOnclick(disableMatchStreamingTypeRef.current.previous);\n dispatch(\n setMatchStreamingStreamType(\n disableMatchStreamingTypeRef.current.previous\n )\n );\n }\n };\n\n useEffect(() => {\n disableMatchStreamingTypeRef.current = disableMatchStreamingType;\n }, [disableMatchStreamingType]);\n\n useEffect(() => {\n matchStreamingTypeRef.current = matchStreamingType;\n }, [matchStreamingType]);\n\n useEffect(() => {\n if (\n !params.game ||\n previousGameId === params.game ||\n !Object.keys(game || {}).length ||\n isLoggedIn\n ) {\n setAlteredGame(game);\n dispatch(setIsMatchStreamingPreviewUnavailable(false));\n\n getPreviousView();\n\n return;\n }\n\n const privateCompetitionIds =\n PRIVATE_COMPETITIONS[SpringConfigs.JURISDICTION];\n\n if (\n privateCompetitionIds &&\n privateCompetitionIds.includes(Number(params.competition))\n ) {\n const gameCopy = JSON.parse(JSON.stringify(game)) as Props['game'];\n\n if (gameCopy) {\n gameCopy.text_info = t('sportsbook.signInStatistics');\n game?.stats &&\n Object.keys(game.stats).forEach((stat: string) => {\n gameCopy.stats[stat as keyof IGameStats] = {\n team1_value: '-',\n team2_value: '-',\n add_info: null,\n attack: {\n ...(gameCopy.stats[stat as keyof IGameStats]?.attack || {}),\n team1_value: '-',\n team2_value: '-'\n },\n dangerous_attack: {\n ...(gameCopy.stats[stat as keyof IGameStats]\n ?.dangerous_attack || {}),\n team1_value: '-',\n team2_value: '-'\n },\n foul: {\n ...(gameCopy.stats[stat as keyof IGameStats]?.foul || {}),\n team1_value: '-',\n team2_value: '-'\n },\n aces: {\n ...(gameCopy.stats[stat as keyof IGameStats]?.aces || {}),\n team1_value: '-',\n team2_value: '-'\n },\n double_fault: {\n ...(gameCopy.stats[stat as keyof IGameStats]?.double_fault ||\n {}),\n team1_value: '-',\n team2_value: '-'\n }\n };\n });\n\n if (gameCopy.info) {\n gameCopy.info.pass_team = 'none';\n gameCopy.info.score1 = '-';\n gameCopy.info.score2 = '-';\n gameCopy.info.current_game_state = '';\n }\n\n setAlteredGame(gameCopy);\n dispatch(setIsMatchStreamingPreviewUnavailable(true));\n\n !disableMatchStreamingTypeRef.current.disable &&\n dispatch(\n setDisableMatchStreamingStreamType({\n disable: true,\n previous: matchStreamingTypeRef.current\n })\n );\n\n streamTabOnclick(0);\n dispatch(setMatchStreamingStreamType(0));\n }\n } else {\n dispatch(setIsMatchStreamingPreviewUnavailable(false));\n setAlteredGame(game);\n\n getPreviousView();\n }\n }, [params, game, isLoggedIn]);\n\n return alteredGame;\n};\n","export const AVAILABLE_SPORT_IMAGES = [\n 'americanfootball',\n 'australianfootball',\n 'badminton',\n 'baseball',\n 'basketball',\n 'beachfootball',\n 'beachhandball',\n 'beachvolleyball',\n 'boxing',\n 'cricket',\n 'curling',\n 'default',\n 'futsal',\n 'handball',\n 'bandy',\n 'icehockey',\n 'mma',\n 'snooker',\n 'soccer',\n 'tabletennis',\n 'tennis',\n 'volleyball',\n 'waterpolo',\n 'pistolshooting',\n 'pistolhead2head',\n 'archeryh2h',\n 'compoundarchery',\n 'archery',\n 'basketballshots'\n];\n","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { AVAILABLE_SPORT_IMAGES } from 'utils/constants/sportsbook/images';\nimport SpringConfigs, {\n srcEnvVariable\n} from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { getSportsConfigsData } from 'store/selectors/app-data';\n\nexport const useSportImage = (sportAlias?: string): string => {\n const sportsConfigsData = useSelector(getSportsConfigsData);\n\n return useMemo(() => {\n const sportAliasLowerCased = sportAlias?.toLowerCase();\n const deviceType = isMobile() ? 'mobile' : 'desktop';\n const imageName = AVAILABLE_SPORT_IMAGES.includes(\n sportAliasLowerCased || ''\n )\n ? sportAliasLowerCased\n : 'default';\n\n const sportConfigImg =\n sportAliasLowerCased &&\n sportsConfigsData[sportAliasLowerCased.concat('Image')];\n\n if (SpringConfigs.USER_FILES_URL && sportAlias && sportConfigImg) {\n return `${SpringConfigs.USER_FILES_URL}/media/${sportConfigImg}`;\n }\n\n return `${process.env[srcEnvVariable]}/images/sports-${deviceType}/${imageName}.webp`;\n }, [sportAlias]);\n};\n","import { useEffect, useState } from 'react';\n\nexport const useDebounce = (\n effect: Function,\n delay: number,\n deps: Array\n) => {\n const [isDebouncing, setIsDebouncing] = useState(false);\n\n useEffect(() => {\n setIsDebouncing(true);\n const handler = setTimeout(() => {\n effect();\n setIsDebouncing(false);\n }, delay);\n\n return () => clearTimeout(handler);\n }, [...deps, delay]);\n\n return { isDebouncing };\n};\n","export enum EMarketStatisticsTemplate {\n GoalScored = 'GoalScored',\n Empty = 'Empty',\n LastFiveMatchesAvg = 'LastFiveMatchesAvg',\n LastFiveMeetings = 'LastFiveMeetings',\n Results = 'Results'\n}\nexport interface IMarketStatisticsType {\n statisticsMarketType?: string;\n marketTypeDetalis?: string;\n template: EMarketStatisticsTemplate;\n title?: string;\n marketCallType?: string;\n type?: string;\n marketDataKey_individual?: string;\n marketDataKey_H2H?: string;\n emptyHeight?: string;\n}\n\nexport type TMarketStatisticGame = {\n team1_id: number;\n team2_id: number;\n team1_name: string;\n team2_name: string;\n};\n\nexport type THalfTimeFullTimePerformance = {\n HalfTimeFullTimePerformanceList: {\n EntityId: number;\n HalfTimeFullTimeWDLList: { HalfTime: number; FullTime: string }[];\n }[];\n};\n\nexport interface IGetStatsForMatch {\n StatsForMatch: {\n MatchDetails: {\n MatchDate: string;\n MatchListItem: {\n TypeAbbreviation: string;\n HomeTeamId: number;\n AwayTeamId: number;\n HomeScore: number;\n AwayScore: number;\n }[];\n };\n }[];\n\n WDLResult: {\n Abbreviation: string;\n HomeWinCount: number;\n AwayWinCount: number;\n DrawCount: number;\n }[];\n\n WDLList: {\n EntityId: number;\n MatchResult: string[];\n }[];\n}\nexport type TScoredGoals = {\n EntityId: number;\n FirstHalfGoals: string[];\n SecondHalfGoals: string[];\n FullTimeGoals: string[];\n BothTeamsFirstHalfGoals: string[];\n BothTeamsSecondHalfGoals: string[];\n BothTeamsFullTimeGoals: string[];\n FullTimeGoalsAvg: number;\n FirstHalfGoalsAvg: number;\n SecondHalfGoalsAvg: number;\n FullTimeScoredGoalsAvg: number;\n FirstHalfScoredGoalsAvg: number;\n SecondHalfScoredGoalsAvg: number;\n};\n\nexport type TGetScoredGoalsStatistics = {\n IsH2H: boolean;\n ScoredGoals: TScoredGoals[];\n};\n","import {\n ReactElement,\n Suspense,\n useEffect,\n useLayoutEffect,\n useRef\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { JACKPOT_SPORTSBOOK_ID } from 'utils/casino/jackpot';\nimport { JACKPOT_TITLE_SIZE_DIFFERENCE } from 'utils/constants/app/magic-numbers-app';\nimport {\n IS_SEPARATED_ESPORT_WIDGETS,\n IS_SEPARATED_WIDGETS,\n SEPARATED_WIDGETS_ROUTE\n} from 'utils/constants/sportsbook/generic';\nimport { OVERVIEW_TAB_PATH } from 'utils/constants/sportsbook/tabs-paths';\nimport { lazy } from 'utils/generic/lazy';\nimport { Betslip } from 'newelements/_Betslip';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setIsMatchStreamingTheatreModeAvailable } from 'store/actions/match-streaming';\nimport { getGameInfo } from 'store/selectors/game-data';\nimport './index.less';\n\ntype Props = {\n isEsport?: boolean;\n isLive?: boolean;\n racing?: boolean;\n configs?: {\n type: 'live' | 'prematch';\n };\n isOverview?: boolean;\n};\n\nconst { Jackpot } = lazy(\n () => import(/* webpackChunkName: \"jackpot\" */ 'newelements/Jackpot')\n);\n\nconst { MatchStreamingWidget } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-streaming-widget\" */ 'newelements/Sportsbook/Widgets/MatchStreamingWidget'\n )\n);\n\nconst OVERVIEW_DETECT_TOP_HEIGHT = 75;\n\nexport const DesktopRight = (props: Props): ReactElement => {\n const skipImportEffect = useRef(false);\n\n const {\n params: { sport, game }\n } = useSbRouteMatch(SEPARATED_WIDGETS_ROUTE);\n\n const dispatch = useDispatch();\n const state = useSelector(getGameInfo);\n const sportsBookConfigs = useSportsbookConfigs();\n\n const jackpotTitleFontSize = sportsBookConfigs?.jackpotFontSize\n ? (\n sportsBookConfigs.jackpotFontSize - JACKPOT_TITLE_SIZE_DIFFERENCE\n ).toString()\n : '18';\n\n const jackpotDetailsFontSize = sportsBookConfigs?.jackpotFontSize\n ? sportsBookConfigs.jackpotFontSize\n : '24';\n\n const overviewPath = location.pathname.includes(OVERVIEW_TAB_PATH);\n\n const showMatchStreamingContent =\n props.racing || props.isLive || props.isEsport || state.game.type === 1;\n\n const isMatchStreamingAvailable =\n !overviewPath && showMatchStreamingContent && !IS_SEPARATED_WIDGETS;\n\n useEffect(() => {\n if (\n !skipImportEffect.current &&\n (props.isLive || state?.game?.type === 1)\n ) {\n skipImportEffect.current = true;\n }\n }, [state]);\n\n useLayoutEffect(() => {\n const isEsportSeparatedWidgetMatchStreaming =\n IS_SEPARATED_ESPORT_WIDGETS && game;\n\n const isEsport =\n (props.isEsport && !IS_SEPARATED_ESPORT_WIDGETS) ||\n isEsportSeparatedWidgetMatchStreaming;\n\n if (props.isEsport || isEsport) {\n dispatch(setIsMatchStreamingTheatreModeAvailable(true));\n }\n }, [\n sport,\n props.racing,\n props.isEsport,\n ...(IS_SEPARATED_WIDGETS ? [game] : [])\n ]);\n\n return (\n <>\n {!!sportsBookConfigs.jackpotForSportsbook && (\n
\n \n \n \n
\n )}\n\n {isMatchStreamingAvailable ? (\n \n \n \n ) : null}\n\n \n \n );\n};\n","import { ReactElement, useMemo } from 'react';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport { isRtl } from 'utils/constants/app/rtl';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport {\n getEsportCurrentMapName,\n getGameCurrentState\n} from 'utils/sportsbook/game-current-state';\nimport { shouldShowLiveTime } from 'utils/sportsbook/live-games-helper';\nimport { Game } from 'interfaces/sportsbook-data-levels';\nimport './index.less';\n\ntype Props = {\n game: Game;\n isLive: boolean;\n timeOnly?: boolean;\n reverse?: boolean;\n currentSport?: string;\n dir?: 'row' | 'col';\n format?: string;\n useGameMapName?: boolean;\n noWrap?: boolean;\n};\n\nexport const GameTime = ({\n isLive,\n game,\n currentSport,\n timeOnly,\n reverse,\n dir,\n format,\n useGameMapName = false,\n noWrap = false\n}: Props): ReactElement => {\n const gameCurrentState = useMemo(() => {\n return useGameMapName && game.info?.additional_data\n ? getEsportCurrentMapName(game.info.additional_data, game.sport_alias)\n : getGameCurrentState(game.info || {}, currentSport);\n }, [game?.id, game?.info]);\n\n const dateTime = useMemo(() => {\n let dtFormat = `${SpringConfigs.DT.time}${\n timeOnly\n ? ''\n : ` | ${dateFormat({\n date: format || SpringConfigs.DT.longDate,\n includeWeekday: true\n })}`\n }`;\n\n if (reverse) {\n dtFormat = dtFormat.split(' | ').reverse().join(' | ');\n }\n\n return dayjs.unix(game.start_ts).format(dtFormat);\n }, [game.start_ts]);\n\n return (\n \n {isLive && (\n <>\n \n {shouldShowLiveTime(isLive, currentSport) && gameCurrentState}\n \n )}\n {!isLive && (\n \n {dateTime}\n \n )}\n \n );\n};\n","import { Suspense } from 'react';\nimport cc from 'classcat';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\n// eslint-disable-next-line import/order\nimport './lazyWrapperStyles.less';\n\nconst { HooryAICard } = lazy(\n () =>\n import(\n /* webpackChunkName: \"hoory-ai-compact\" */ 'newcomponents/Shared/generic/HooryAI/HooryAICard'\n )\n);\n\nconst skeletonStyles = isMobile()\n ? {\n width: '100%',\n height: '146px',\n borderRadius: '10px'\n }\n : {\n width: '100%',\n height: '172px',\n borderRadius: '10px'\n };\n\nexport const HooryAiCardLazyWrapper = () => {\n return SpringConfigs.HOORY_ENABLED &&\n SpringConfigs.HOORY_ENABLED_SPORTSBOOK_BETSLIP ? (\n \n \n \n }\n >\n \n \n \n \n ) : null;\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';\nimport './wrapperStyles.less';\n\nconst { HooryAICompactComponent } = lazy(\n () => import(/* webpackChunkName: \"hoory-ai-compact\" */ './Component')\n);\n\nexport const HooryAICompact = () => {\n const isHooryEnabled =\n SpringConfigs.HOORY_ENABLED &&\n SpringConfigs.HOORY_ENABLED_SPORTSBOOK_BETSLIP;\n\n return isHooryEnabled ? (\n \n }\n >\n \n \n \n \n ) : null;\n};\n","import { Suspense } from 'react';\nimport { lazy } from 'utils/generic/lazy';\nimport { MenuItem } from 'interfaces/generic';\nimport {\n TAdvancedSelectedMarkets,\n TMarketType,\n TSelectedMarketTypeNames\n} from 'interfaces/sportsbook';\nimport { AdvancedMarketsFilterSkeleton } from './Skeleton';\nimport './index.less';\n\nconst { AdvancedMarketsFilterContent } = lazy(\n () =>\n import(\n /* webpackChunkName: \"advanced-markets-filter-content\" */ './Content'\n )\n);\n\ntype TAdvancedMarketsFilterProps = {\n marketTypes: TMarketType[] | null;\n selectedMarketsReduxKey: string;\n selectedMarkets?: TAdvancedSelectedMarkets;\n selectedMarketTypeNames?: TSelectedMarketTypeNames;\n selectedSport?: MenuItem | null | undefined;\n addSportSectionInHeader?: boolean;\n doNotShowMarkerFiltersRow?: boolean;\n};\n\nexport const AdvancedMarketsFilter = ({\n marketTypes,\n selectedMarkets,\n selectedMarketsReduxKey,\n selectedMarketTypeNames,\n selectedSport,\n addSportSectionInHeader,\n doNotShowMarkerFiltersRow\n}: TAdvancedMarketsFilterProps) => {\n return marketTypes && selectedMarkets && selectedMarketsReduxKey ? (\n \n }\n >\n \n \n ) : (\n \n );\n};\n","import {\n Dispatch,\n SetStateAction,\n Suspense,\n useLayoutEffect,\n useMemo\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport {\n advancedEventsLayoutRelations,\n events,\n markets\n} from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { MenuItem } from 'interfaces/generic';\nimport {\n EAdvancedEventsLayouts,\n TGameMainInfoType,\n TGameMarketsInfoType\n} from 'interfaces/sportsbook';\nimport { Game } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { AdvancedMarketsFilter } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedMarketsFilter';\nimport { EGroupGamesBy } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsDesktop';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport { ADVANCED_LEFT_MENU_DATA_REDUX_KEY } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/AdvancedLeftMenu';\nimport { AdvancedMatchCardSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton';\nimport { EmptyMatches } from 'components/EmptyResultBoxes/EmptyMatches';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport type { TRequestWhere } from 'newcomponents/Shared/sportsbook/FavoriteTeam/partials/GamesListFilterByCompetitions';\nimport { useMounted } from 'hooks/useMounted';\nimport {\n setAdvancedGamesMainInfo,\n setAdvancedGamesMarketsInfo,\n setAdvancedSelectedMarkets\n} from 'store/actions/new-sportsbook';\nimport { advancedSelectedMarketsInitialState } from 'store/reducers/new-sportsbook';\nimport { TStreamData } from 'store/reducers/sport-data';\nimport {\n getAdvancedGamesMainInfo,\n getAdvancedGamesMarketsInfo,\n getAdvancedSelectedMarkets,\n getSwarmResponse\n} from 'store/selectors/new-sportsbook';\nimport { getMarketTypes } from 'store/selectors/sport-data';\n\nconst { AdvancedMatchCardsDesktop } = lazy(\n () =>\n import(\n /* webpackChunkName: \"advanced-match-card-desktop\" */ 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsDesktop'\n )\n);\n\nconst { AdvancedMatchCardsMobile } = lazy(\n () =>\n import(\n /* webpackChunkName: \"advanced-match-card-mobile\" */ 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsMobile'\n )\n);\n\nexport type TAdvancedGameCardsWithMarketsFiltersProps = {\n gameIds: number[] | null;\n selectedSport: MenuItem | null | undefined;\n layoutType: EAdvancedEventsLayouts;\n selectedEventIds: string[];\n streamData: Array<[TStreamData]> | null;\n marketsCountsReduxKey?: string;\n skeletonCount?: number;\n setLoadMoreBtnLoading?: Dispatch>;\n groupGamesBy?: EGroupGamesBy;\n LoadMoreButton?: JSX.Element | null;\n addSportSectionInHeader?: boolean;\n showEmptyView?: boolean;\n};\n\nexport const AdvancedGameCardsWithMarketsFilters = ({\n gameIds,\n selectedSport,\n layoutType,\n selectedEventIds,\n streamData,\n skeletonCount = ADVANCED_SKELETON_COUNTS._3,\n setLoadMoreBtnLoading,\n marketsCountsReduxKey,\n groupGamesBy,\n LoadMoreButton,\n addSportSectionInHeader,\n showEmptyView\n}: TAdvancedGameCardsWithMarketsFiltersProps) => {\n const { mounted } = useMounted();\n const dispatch = useDispatch();\n\n const selectedMarketsReduxKey = selectedSport?.alias\n ? `${layoutType}-${selectedSport.alias}`\n : '';\n\n const advancedLeftSideBarSportsData =\n useSelector(getSwarmResponse)?.[ADVANCED_LEFT_MENU_DATA_REDUX_KEY];\n\n const gamesInfo = useSelector(getAdvancedGamesMainInfo)?.[layoutType];\n const gamesMarketsInfo = useSelector(getAdvancedGamesMarketsInfo)?.[\n layoutType\n ];\n\n let selectedMarkets = useSelector(getAdvancedSelectedMarkets)?.[\n selectedMarketsReduxKey\n ];\n\n if (SpringConfigs.MOCKED_DATA) {\n selectedMarkets = {\n first: 'P1XP2',\n second: 'P1XP2',\n third: 'P1XP2'\n };\n }\n\n const marketTypesBySport =\n useSelector(getMarketTypes)[selectedSport?.alias || ''];\n\n const gamesGeneralInfo = useMemo(() => {\n const someGameIdsInfoPresent =\n !!gamesInfo && gameIds?.some(id => !!gamesInfo[id]);\n\n if (\n advancedLeftSideBarSportsData &&\n someGameIdsInfoPresent &&\n selectedSport\n ) {\n const gamesObj: Record = {};\n\n const getCurrentRegionObj = (regionAlias: string) => {\n if (advancedLeftSideBarSportsData[selectedSport.id]?.region) {\n return Object.values(\n advancedLeftSideBarSportsData[selectedSport.id].region || {}\n ).find(region => region.alias === regionAlias);\n }\n\n return null;\n };\n\n Object.values(gamesInfo).forEach(game => {\n const currentRegion =\n game.region_alias && getCurrentRegionObj(game.region_alias);\n\n if (currentRegion && currentRegion.competition) {\n const currentCompetition =\n game['_parent_id'] && currentRegion.competition[game['_parent_id']];\n\n if (currentCompetition) {\n const gameWithInfo: TGameMainInfoType = {\n ...game,\n sport_alias: selectedSport.alias,\n sportName: selectedSport.name,\n sportId: Number(selectedSport.id),\n regionAlias: currentRegion.alias,\n regionName: currentRegion.name,\n competitionName: currentCompetition.name,\n competitionId: currentCompetition.id\n };\n\n gamesObj[game.id] = gameWithInfo;\n }\n }\n });\n\n return gamesObj;\n }\n\n return null;\n }, [\n advancedLeftSideBarSportsData,\n gamesInfo,\n selectedSport,\n JSON.stringify(gameIds)\n ]);\n\n const selectedMarketTypeNames = useMemo(() => {\n if (marketTypesBySport && selectedMarkets) {\n return {\n first: marketTypesBySport.find(\n market => market.value === selectedMarkets.first\n )?.selectionTypesNames,\n second: marketTypesBySport.find(\n market => market.value === selectedMarkets.second\n )?.selectionTypesNames,\n third: marketTypesBySport.find(\n market => market.value === selectedMarkets.third\n )?.selectionTypesNames\n };\n }\n }, [selectedMarkets, marketTypesBySport]);\n\n useLayoutEffect(() => {\n if (selectedMarketsReduxKey && !selectedMarkets) {\n dispatch(\n setAdvancedSelectedMarkets({\n data: advancedSelectedMarketsInitialState,\n key: selectedMarketsReduxKey\n })\n );\n }\n }, [selectedMarketsReduxKey]);\n\n useLayoutEffect(() => {\n if (\n (!selectedSport?.alias || !gameIds?.length) &&\n !SpringConfigs.MOCKED_DATA\n ) {\n return;\n }\n\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_${layoutType.toUpperCase()}_GAMES`\n );\n\n const what = {\n game: advancedEventsLayoutRelations.game\n };\n\n const where: TRequestWhere = {\n ...(gameIds && { game: { id: { '@in': gameIds } } })\n };\n\n if (selectedSport?.alias) {\n where.sport = { alias: selectedSport?.alias };\n }\n\n const onResponse = (data: { game: Record }) => {\n if (data && data.game && mounted.current) {\n dispatch(\n setAdvancedGamesMainInfo({ data: data.game, key: layoutType })\n );\n\n setLoadMoreBtnLoading?.(false);\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, [selectedSport?.alias, JSON.stringify(gameIds)]);\n\n useLayoutEffect(() => {\n if (\n !selectedMarkets ||\n selectedMarkets === advancedSelectedMarketsInitialState ||\n !gameIds?.length\n ) {\n return;\n }\n\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_${layoutType.toUpperCase()}_GAMES_MARKETS`\n );\n\n const what = {\n game: [['id']],\n market: markets.market,\n event: events.event\n };\n\n const selectedMarketsValues =\n Object.values(selectedMarkets).filter(Boolean);\n\n const where: TRequestWhere = {\n game: { id: { '@in': gameIds } },\n ...(selectedMarketsValues.length && {\n market: { type: { '@in': [...Object.values(selectedMarkets)] } }\n })\n };\n\n if (selectedSport?.alias) {\n where.sport = { alias: selectedSport?.alias };\n }\n\n const onResponse = (data: {\n game: Record;\n }) => {\n if (data && data.game && mounted.current) {\n dispatch(\n setAdvancedGamesMarketsInfo({ data: data.game, key: layoutType })\n );\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, [selectedMarkets, JSON.stringify(gameIds)]);\n\n return (\n <>\n \n\n {showEmptyView ? (\n \n ) : isMobile() ? (\n \n (\n \n ))}\n >\n \n {LoadMoreButton}\n \n \n ) : (\n (\n \n ))}\n >\n \n {LoadMoreButton}\n \n )}\n \n );\n};\n","import { Dispatch, SetStateAction, useLayoutEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n competitions,\n events,\n gameList,\n markets,\n marketsEuropean,\n regions,\n sports\n} from 'utils/constants/sportsbook/favorite-data-fields';\nimport { fireEvent } from 'utils/generic/event-bus';\nimport { modifyFavoritesResponse } from 'utils/sportsbook/favorites/fav-sorter';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport {\n TFavoriteDataResponse,\n TMarketCountResponse\n} from 'interfaces/sportsbook';\nimport { executeCommand, unsubscribeAllCommand } from 'services/get-data-level';\nimport {\n EFavoriteActions,\n FAVORITE_HOOKS_CACHE,\n getFavoriteSubscribeWhere\n} from 'newhooks/sportsbook/favorites/sharedHelpers';\nimport {\n setFavoriteDataLoading,\n setFavoritesMarketsCount,\n setFavoriteSportsData,\n setMarketsCounts\n} from 'store/actions';\nimport {\n getFavoriteMatches,\n getFavoriteMatchIds\n} from 'store/selectors/fav-data';\n\ntype TUseFetchFavoriteDataProps = {\n additionalMarkets?: boolean;\n setLoading?: Dispatch>;\n};\n\nconst FAVORITE_MATCHES_RELATIONS = {\n sport: [...sports.sport, 'type'],\n ...competitions,\n ...gameList,\n ...regions,\n ...events\n};\n\nconst MARKET_COUNT_RELATIONS = {\n market: '@count',\n game: ['id']\n};\n\nconst FAVORITE_DATA_CALL_PREFIX = 'FAVORITE_DATA_';\nconst FAVORITE_MARKETS_COUNT_CALL_PREFIX = 'FAVORITE_MARKETS_COUNT_';\n\nexport const useFetchFavoriteData = (\n options?: TUseFetchFavoriteDataProps\n): void => {\n const dispatch = useDispatch();\n\n const hookId = useRef(RidGenerator.gCustom());\n const favoriteMatches = useSelector(getFavoriteMatches).all;\n const favoriteMatchIds = useSelector(getFavoriteMatchIds).all;\n\n const { setLoading, additionalMarkets } = options || {};\n\n const unsubscribe = () => {\n if (\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData &&\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchMarkets\n ) {\n unsubscribeAllCommand([\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData,\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchMarkets\n ]);\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData = null;\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchMarkets = null;\n fireEvent({ key: EFavoriteActions.dataSubscriptionUnmount });\n }\n };\n\n useLayoutEffect(() => {\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchData.push(hookId.current);\n\n return () => {\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchData.splice(\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchData.indexOf(hookId.current),\n 1\n );\n };\n }, []);\n\n useLayoutEffect(() => {\n const isCurrentHookSubscribed =\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData ===\n `${FAVORITE_DATA_CALL_PREFIX}${hookId.current}`;\n\n const isSubscribedHookUnmounted =\n !isCurrentHookSubscribed &&\n !FAVORITE_HOOKS_CACHE.mountedHookIds.fetchData.some(\n hookId =>\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData !==\n `${FAVORITE_DATA_CALL_PREFIX}${hookId}`\n );\n\n if (\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData?.includes(\n hookId.current\n ) ||\n isSubscribedHookUnmounted\n ) {\n unsubscribe();\n }\n }, [favoriteMatchIds.length]);\n\n useLayoutEffect(() => {\n if (!FAVORITE_HOOKS_CACHE.withAdditionalMarkets && additionalMarkets) {\n unsubscribe();\n }\n\n return () => {\n if (!FAVORITE_HOOKS_CACHE.mountedHookIds.fetchData.length) {\n unsubscribe();\n }\n };\n }, []);\n\n useLayoutEffect(() => {\n if (FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData !== null) {\n return;\n }\n\n if (favoriteMatchIds.length) {\n if (!Object.values(favoriteMatches).length) {\n dispatch(setFavoriteDataLoading(true));\n }\n\n FAVORITE_HOOKS_CACHE.withAdditionalMarkets = !!additionalMarkets;\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData = `${FAVORITE_DATA_CALL_PREFIX}${hookId.current}`;\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchMarkets = `${FAVORITE_MARKETS_COUNT_CALL_PREFIX}${hookId.current}`;\n\n const getMarketsCountPromise = new Promise(\n resolve =>\n executeCommand(\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchMarkets as string,\n MARKET_COUNT_RELATIONS,\n getFavoriteSubscribeWhere(favoriteMatchIds),\n resolve,\n true,\n (data: TMarketCountResponse) => {\n if (data.game) {\n dispatch(setFavoritesMarketsCount(data.game));\n }\n }\n )\n );\n\n const what = {\n ...FAVORITE_MATCHES_RELATIONS,\n ...(additionalMarkets ? marketsEuropean : markets)\n };\n\n const getFavoriteMatchesPromise = new Promise(\n resolve => {\n executeCommand(\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData as string,\n what,\n getFavoriteSubscribeWhere(\n favoriteMatchIds,\n additionalMarkets ? 'european' : 'basic'\n ),\n resolve,\n true,\n (data: TFavoriteDataResponse) => {\n dispatch(\n setFavoriteSportsData(\n modifyFavoritesResponse(data?.sport || {})\n )\n );\n }\n );\n }\n );\n\n Promise.all([getMarketsCountPromise, getFavoriteMatchesPromise])\n .then(([{ game }, { sport }]) => {\n dispatch(setMarketsCounts(game));\n dispatch(setFavoriteSportsData(modifyFavoritesResponse(sport || {})));\n })\n .finally(() => {\n setLoading?.(false);\n dispatch(setFavoriteDataLoading(false));\n });\n } else {\n setLoading?.(false);\n }\n }, [favoriteMatchIds.length]);\n};\n","import { Dispatch, SetStateAction } from 'react';\nimport { useFetchFavoriteData } from 'newhooks/sportsbook/favorites/useFetchFavoriteData';\n\ntype TUseFetchFavoriteDataProps = {\n additionalMarkets?: boolean;\n setLoading?: Dispatch>;\n};\n\nexport const FetchFavoriteData = (\n options?: TUseFetchFavoriteDataProps\n): null => {\n useFetchFavoriteData(options);\n\n return null;\n};\n","import { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { modifyFavoritesResponse } from 'utils/sportsbook/favorites/fav-sorter';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { TFavoriteDataResponse } from 'interfaces/sportsbook';\nimport { executeCommand } from 'services/get-data-level';\nimport { unsubscribeCommand } from 'services/get-swarm-data';\nimport { useEventbus } from 'newhooks/generic/useEventbus';\nimport {\n EFavoriteActions,\n FAVORITE_HOOKS_CACHE,\n getFavoriteSubscribeWhere\n} from 'newhooks/sportsbook/favorites/sharedHelpers';\nimport { setFavoriteIdsLoading, setFavoriteSportsData } from 'store/actions';\nimport {\n getFavoriteDataLoading,\n getFavoriteMatches,\n getFavoriteMatchIds\n} from 'store/selectors/fav-data';\n\nconst FAVORITE_MATCHES_RELATIONS = {\n sport: ['id', 'type'],\n game: ['id', 'type'],\n competition: ['id'],\n region: ['id']\n};\n\nexport const useFetchFavoriteMatchIds = () => {\n const dispatch = useDispatch();\n\n useEventbus({\n [EFavoriteActions.dataSubscriptionUnmount]: () => {\n setShouldCall(true);\n }\n });\n\n const hookId = useRef(RidGenerator.gCustom('FAVORITE_MATCH_IDS_'));\n\n const [shouldCall, setShouldCall] = useState(false);\n\n const favoriteMatches = useSelector(getFavoriteMatches).all;\n const favoriteMatchIds = useSelector(getFavoriteMatchIds).all;\n const favoriteDataLoading = useSelector(getFavoriteDataLoading);\n\n useLayoutEffect(() => {\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchIds.push(hookId.current);\n\n return () => {\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchIds.splice(\n FAVORITE_HOOKS_CACHE.mountedHookIds.fetchIds.indexOf(hookId.current),\n 1\n );\n };\n }, []);\n\n useLayoutEffect(() => {\n if (\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds &&\n (FAVORITE_HOOKS_CACHE.mountedHookIds.fetchIds.length === 1 ||\n hookId.current === FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds)\n ) {\n unsubscribeCommand(FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds);\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds = null;\n }\n }, [favoriteMatchIds.length]);\n\n useLayoutEffect(() => {\n let shouldCall = true;\n\n if (\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds ||\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData ||\n favoriteDataLoading\n ) {\n shouldCall = false;\n }\n\n setShouldCall(shouldCall);\n }, [favoriteDataLoading]);\n\n useEffect(() => {\n if (\n shouldCall &&\n (FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds ||\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData)\n ) {\n return setShouldCall(false);\n }\n\n if (favoriteMatchIds.length && shouldCall) {\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds = hookId.current;\n\n const onResponse = ({ sport }: TFavoriteDataResponse) => {\n if (\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData === null &&\n favoriteMatchIds\n ) {\n dispatch(\n setFavoriteSportsData(modifyFavoritesResponse(sport || {}, true))\n );\n }\n\n dispatch(setFavoriteIdsLoading(false));\n };\n\n executeCommand(\n hookId.current,\n FAVORITE_MATCHES_RELATIONS,\n getFavoriteSubscribeWhere(favoriteMatchIds),\n onResponse,\n true,\n onResponse\n );\n }\n }, [favoriteMatchIds.length, shouldCall]);\n\n useLayoutEffect(() => {\n if (FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchData) {\n if (FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds) {\n unsubscribeCommand(FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds);\n FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds = null;\n }\n } else if (!FAVORITE_HOOKS_CACHE.subscribedHookIds.fetchIds) {\n setShouldCall(true);\n }\n }, [favoriteDataLoading, favoriteMatches]);\n};\n","import { useFetchFavoriteMatchIds } from 'newhooks/sportsbook/favorites/useFetchFavoriteMatchIds';\n\nexport const FetchFavoriteMatchIds = () => {\n useFetchFavoriteMatchIds();\n\n return null;\n};\n","import { memo, ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const FavoriteTeamSkeleton = memo((): ReactElement => {\n const { t } = useTranslation();\n\n return (\n \n \n {!isMobile() && {t('sportsbook.myFavoriteTeam')}}\n \n );\n});\n","import { FC } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport cc from 'classcat';\nimport { isRtl } from 'utils/constants/app/rtl';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { TTeam } from 'interfaces/sportsbook-data-levels';\nimport { TeamLogo } from 'components/TeamLogo';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { resetMarketTypes } from 'store/actions';\nimport { resetAdvancedSportsForMarketsTypes } from 'store/actions/new-sportsbook';\nimport './index.less';\n\nif (isRtl) {\n import('./rtl.less');\n}\n\nexport const FavoriteTeamSingleView: FC<\n TTeam & { withWidth?: boolean; activeStyles?: { withoutBorder?: boolean } }\n> = ({ teamId, teamName, sport, withWidth, activeStyles }) => {\n const location = useLocation();\n const { push, history } = useCustomHistory();\n const dispatch = useDispatch();\n const routeMatch = useSbRouteMatch(\n `${mountPoint(location.pathname)}/team/:sport/:teamId?`\n );\n\n const isActive = routeMatch.params.teamId === `${teamId}`;\n\n const handleRedirect = () => {\n const redirectUrl = `${mountPoint(location.pathname)}/${\n ENotRealSports.team\n }/${sport.alias}/${teamId}`;\n\n if (\n location.pathname.includes(\n `${mountPoint(location.pathname)}/${ENotRealSports.team}`\n )\n ) {\n history.push(redirectUrl);\n } else {\n push(redirectUrl);\n }\n\n dispatch(resetAdvancedSportsForMarketsTypes());\n dispatch(resetMarketTypes());\n };\n\n return (\n \n
\n \n \n {teamName.substring(0, 2).toUpperCase()}\n \n \n
\n \n \n {teamName}\n \n
\n {sport.name}\n
\n \n \n );\n};\n","import { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { AdvancedMarketsFilterSkeleton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedMarketsFilter/Skeleton';\nimport { AdvancedGamesFilteredByCompetitionsSkeleton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/Skeleton';\nimport { AdvancedMatchCardSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport './index.less';\n\nconst SKELETON_COUNT = 3;\n\nexport const FavoriteTeamBodySkeleton = () => {\n const { spbLayoutType } = useSportsbookConfigs();\n\n if (isMobile()) {\n return (\n <>\n \n
\n \n
\n
\n \n
\n \n\n {spbLayoutType === ESportsbookLayoutTypes.AMERICAN ? (\n <>\n
\n \n
\n \n \n ) : (\n \n )}\n \n );\n }\n\n return (\n
\n \n\n {createArray(SKELETON_COUNT).map((_, index) => (\n \n ))}\n
\n );\n};\n","import { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const FavoriteTeamBodyTitleSkeleton = () => {\n return (\n <>\n \n \n \n );\n};\n","import { useLayoutEffect, useState } from 'react';\nimport {\n competitions,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { MenuItem } from 'interfaces/generic';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { GamesFilteredByLeagues } from 'newcomponents/Shared/sportsbook/GameFilteredByLeagues/GamesFilteredByLeagues';\nimport { useMounted } from 'hooks/useMounted';\n\ntype TGamesListFilterByCompetitions = {\n gameIds: number[];\n currentSport?: MenuItem | null | undefined;\n};\n\nexport type TRequestWhere = {\n game?: {\n id: {\n '@in': number[];\n };\n };\n sport?: {\n alias?: string;\n };\n};\n\nexport const GamesListFilterByCompetitions = ({\n gameIds,\n currentSport\n}: TGamesListFilterByCompetitions) => {\n const [sportsData, setSportsData] = useState | null>(\n null\n );\n\n const { mounted } = useMounted();\n\n const getSportsData = (rId: string, where: Record) => {\n const what = {\n sport: sports.sport,\n region: regions.region,\n competition: competitions.competition,\n game: ['id', 'type', 'start_ts']\n };\n\n const onResponse = (data: { sport: Record }) => {\n if (data && data.sport && mounted.current) {\n setSportsData(data.sport);\n }\n };\n\n void executeCommand(rId, what, where, onResponse, true, onResponse);\n };\n\n useLayoutEffect(() => {\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_GAMES_BY_COMPETITIONS_FAV_`\n );\n\n const where: TRequestWhere = {\n game: { id: { '@in': gameIds } }\n };\n\n if (currentSport?.alias) {\n where.sport = { alias: currentSport?.alias };\n }\n\n getSportsData(rId, where);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, [gameIds, currentSport?.alias]);\n\n return ;\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n CommandNames,\n CommandSource\n} from 'utils/constants/swarm/swarm-command-names';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport { TTeam } from 'interfaces/sportsbook-data-levels';\nimport { betCommand } from 'services/bet-slip';\nimport { FavoriteTeamBodySkeleton } from './FavoriteTeamBodySkeleton';\nimport { FavoriteTeamBodyTitleSkeleton } from './FavoriteTeamBodyTitlteSkeleton';\nimport { useAdvancedMarkets } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/useAdvancedMarkets';\nimport { useGetAdvancedSportsMainData } from 'newelements/Sportsbook/layouts/advanced/helpers/useGetAdvancedSportsMainData';\nimport { EmptyMatches } from 'components/EmptyResultBoxes/EmptyMatches';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { AdvancedGameCardsWithMarketsFilters } from 'newcomponents/Shared/sportsbook/AdvancedMain/AdvancedGameCardsWithMarketsFilters/AdvancedGameCardsWithMarketsFilters';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setAdvancedSportsForMarketsTypes } from 'store/actions/new-sportsbook';\nimport { getEventIds } from 'store/selectors/betslip';\nimport { getFavoriteSportTeams } from 'store/selectors/fav-data';\nimport { getAdvancedSportsForMarketsTypes } from 'store/selectors/new-sportsbook';\nimport { getStreamData } from 'store/selectors/sport-data';\nimport { GamesListFilterByCompetitions } from '../GamesListFilterByCompetitions';\nimport './index.less';\n\ntype RootObject = {\n game: {\n [key: string]: {\n id: number;\n };\n };\n};\n\nexport const FavoriteTeamsBody = () => {\n useAdvancedMarkets(true);\n useGetAdvancedSportsMainData();\n const location = useLocation();\n const [gameIds, setGameIds] = useState(null);\n const favoriteTeams: TTeam[] = useSelector(getFavoriteSportTeams);\n const selectedEventIds = useSelector(getEventIds).map(String);\n const dispatch = useDispatch();\n const streamData = useSelector(getStreamData);\n const sportAliases = useSelector(getAdvancedSportsForMarketsTypes);\n const routeMatch = useSbRouteMatch(\n `${mountPoint(location.pathname)}/team/:sport/:teamId?`\n );\n\n const selectedTeam = favoriteTeams.find(\n team => team.teamId === Number(routeMatch.params.teamId)\n );\n\n const teamIds = favoriteTeams.map(team => team.teamId);\n const availableSports = favoriteTeams.reduce(\n (acc: TTeam['sport'][], team) => {\n if (\n acc.find(sport => {\n return sport.id === team.sport.id;\n })\n ) {\n return acc;\n }\n\n acc.push(team.sport);\n\n return acc;\n },\n [] as TTeam['sport'][]\n );\n\n // 'where' is typed as 'any' to allow for flexible query structures,\n // accommodating various conditions without enforcing a specific type.\n const fetchFavoriteGameIds = (rid: string, where: any) => {\n setGameIds(null);\n void betCommand(\n {\n command: CommandNames.GET,\n params: {\n source: CommandSource.BETTING,\n subscribe: true,\n what: {\n game: [['id']]\n },\n where: where\n },\n rid\n },\n rid,\n (data: RootObject) => {\n setGameIds(Object.keys(data.game).map(elem => Number(elem)));\n },\n (data: RootObject) => {\n setGameIds(prevState => {\n const newGameIds = Object.keys(data.game).map(elem => Number(elem));\n\n if (!prevState) {\n return newGameIds;\n }\n\n return newGameIds.reduce((acc, newGameId) => {\n if (acc.includes(newGameId)) {\n return acc.filter(id => id !== newGameId);\n } else {\n return [...acc, newGameId];\n }\n }, prevState);\n });\n },\n null\n );\n };\n\n useEffect(() => {\n if (!teamIds.length) {\n return;\n }\n\n if (routeMatch.params.sport === 'all') {\n const rid = RidGenerator.gForSubscribe('FAVORITE_TEAMS_GAMES_ALL_');\n const where = {\n game: {\n '@or': [\n {\n team1_id: {\n '@in': teamIds\n }\n },\n {\n team2_id: {\n '@in': teamIds\n }\n }\n ]\n }\n };\n\n fetchFavoriteGameIds(rid, where);\n } else if (routeMatch.params.teamId) {\n const rid = RidGenerator.gForSubscribe('FAVORITE_TEAMS_GAMES_');\n const where = {\n game: {\n '@or': [\n { team1_id: Number(routeMatch.params.teamId) },\n { team2_id: Number(routeMatch.params.teamId) }\n ]\n }\n };\n\n fetchFavoriteGameIds(rid, where);\n }\n }, [routeMatch.params.teamId, routeMatch.params.sport, teamIds.join('-')]);\n\n useEffect(() => {\n if (selectedTeam) {\n dispatch(setAdvancedSportsForMarketsTypes(selectedTeam.sport.alias));\n } else {\n availableSports.forEach(sport =>\n dispatch(setAdvancedSportsForMarketsTypes(sport.alias))\n );\n }\n }, [selectedTeam?.sport, JSON.stringify(availableSports)]);\n\n if (!gameIds || !availableSports.length) {\n return ;\n }\n\n return (\n
\n {selectedTeam?.sport ? (\n isMobile() ? (\n <>\n \n {sportAliases[0] === selectedTeam.sport.alias ? (\n <>\n
\n \n
\n
\n {selectedTeam.sport.name}\n
\n \n ) : (\n \n )}\n
\n {!gameIds?.length ? (\n \n ) : (\n \n )}\n \n ) : (\n \n )\n ) : (\n availableSports.map((sport, index) =>\n isMobile() ? (\n <>\n
\n {sportAliases.length > 1 &&\n sportAliases.includes(sport.alias) ? (\n <>\n
\n \n
\n
\n {sport.name}\n
\n \n ) : (\n \n )}\n
\n \n \n ) : (\n \n )\n )\n )}\n \n );\n};\n","import { useLayoutEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport cc from 'classcat';\nimport { isRtl } from 'utils/constants/app/rtl';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { FAVORITE_TEAMS_ALL_ROUT } from 'utils/constants/sportsbook/favorite-team';\nimport { fireEvent } from 'utils/generic/event-bus';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { TTeam } from 'interfaces/sportsbook-data-levels';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Button } from 'newcomponents/UI/Button';\nimport { SwiperSlider } from 'newcomponents/UI/SwiperSlider';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { resetMarketTypes } from 'store/actions';\nimport { setSportsbookSelectedSport } from 'store/actions/new-sportsbook';\nimport { getFavoriteSportTeams } from 'store/selectors/fav-data';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\nimport { FavoriteTeamSingleView } from '../FavoriteTeamSingleView';\nimport './index.less';\n\nif (isRtl) {\n import('./rtl.less');\n}\n\nexport const FavoriteTeamsHeader = () => {\n const favoriteTeams: TTeam[] = useSelector(getFavoriteSportTeams);\n const { t } = useTranslation();\n const { goBack, push } = useCustomHistory();\n const isLoggedIn = useSelector(getIsLoggedIn);\n const user = useSelector(getUser);\n const dispatch = useDispatch();\n\n const history = useHistory();\n const location = useLocation();\n\n const handleRedirect = () => {\n const redirectUrl = `${mountPoint(location.pathname)}/${\n ENotRealSports.team\n }/${FAVORITE_TEAMS_ALL_ROUT}`;\n\n if (\n location.pathname.includes(\n `${mountPoint(location.pathname)}/${ENotRealSports.team}`\n )\n ) {\n history.push(redirectUrl);\n } else {\n push(redirectUrl);\n }\n };\n\n const routeMatch = useSbRouteMatch(\n `${mountPoint(location.pathname)}/${ENotRealSports.team}/:sport`\n );\n\n const isActive = routeMatch.params.sport === FAVORITE_TEAMS_ALL_ROUT;\n\n useLayoutEffect(() => {\n if (!isLoggedIn && !user.pending) {\n goBack(mountPoint(location.pathname, false));\n }\n }, [isLoggedIn, user.pending]);\n\n return (\n \n
\n
\n {\n goBack(mountPoint(location.pathname, false));\n dispatch(setSportsbookSelectedSport(null));\n dispatch(resetMarketTypes());\n }}\n >\n \n
\n
\n {t('sportsbook.myTeams')}\n
\n
\n
\n {\n fireEvent({\n key: 'openFavoriteTeamPopup'\n });\n }}\n >\n \n
\n {t('sportsbook.edit')}\n
\n \n
\n \n
\n \n {t('sportsbook.all')}\n
,\n ...favoriteTeams.map(team => {\n return (\n \n \n \n );\n })\n ]}\n />\n \n \n );\n};\n","import { useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { isMobile } from 'utils/is-mobile';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { EGroupGamesBy } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsDesktop';\nimport { AdvancedGamesFilteredByCompetitionsSkeleton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/Skeleton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { AdvancedGameCardsWithMarketsFilters } from 'newcomponents/Shared/sportsbook/AdvancedMain/AdvancedGameCardsWithMarketsFilters/AdvancedGameCardsWithMarketsFilters';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { setAdvancedSportsForMarketsTypes } from 'store/actions/new-sportsbook';\nimport { getEventIds } from 'store/selectors/betslip';\nimport { getStreamData } from 'store/selectors/sport-data';\n\ntype TAdvancedCompetitionInfo = {\n sportName: string;\n sportAlias: string;\n sportId: number;\n regionAlias: string;\n regionName: string;\n compName: string;\n compId: number;\n};\n\ntype TGameIdsByType = Record;\n\ntype TFilteredSportsDataType = [TAdvancedCompetitionInfo, TGameIdsByType];\n\ntype TGamesFilteredByLeaguesProps = {\n sportsData: Record | null;\n};\n\nexport const GamesFilteredByLeagues = ({\n sportsData\n}: TGamesFilteredByLeaguesProps) => {\n const dispatch = useDispatch();\n\n const { coupon } = useSearchParams();\n const { spbLayoutType: layoutType } = useSportsbookConfigs();\n\n const selectedEventIds = useSelector(getEventIds).map(String);\n const streamData = useSelector(getStreamData);\n\n const groupedGamesData = useMemo(() => {\n if (sportsData && Object.values(sportsData).filter(item => item)?.length) {\n const resultObj = new Map();\n const sportAliasesSet = new Set();\n\n sortByOrder(Object.values(sportsData)).forEach(sport => {\n sportAliasesSet.add(sport.alias);\n sport.region &&\n sortByOrder(Object.values(sport.region)).forEach(region => {\n region.competition &&\n sortByOrder(Object.values(region.competition)).forEach(comp => {\n if (comp.game && Object.keys(comp.game).length) {\n const gameInfo = {\n sportName: sport.name,\n sportAlias: sport.alias,\n sportId: sport.id,\n regionAlias: region.alias,\n regionName: region.name,\n compName: comp.name,\n compId: comp.id\n };\n\n const games = sortByOrder(\n Object.values(comp.game),\n 'start_ts'\n );\n\n const prematchGames = games\n .filter(({ type }) => type !== 1)\n .map(game => game.id);\n\n const gamesByType: {\n [EAdvancedEventsLayouts.upcoming]?: number[];\n [EAdvancedEventsLayouts.live]?: number[];\n } = {};\n\n if (prematchGames.length) {\n gamesByType[EAdvancedEventsLayouts.upcoming] =\n prematchGames;\n }\n\n if (!coupon) {\n gamesByType[EAdvancedEventsLayouts.live] = games\n .filter(({ type }) => type === 1)\n .map(game => game.id);\n }\n\n resultObj.set(gameInfo, gamesByType);\n }\n });\n });\n });\n\n const resArr = [];\n\n for (const keyValue of resultObj.entries()) {\n resArr.push(keyValue);\n }\n\n return {\n filteredSportsData: resArr as unknown as TFilteredSportsDataType[],\n sportAliasesSet\n };\n }\n\n return null;\n }, [sportsData, coupon]);\n\n useLayoutEffect(() => {\n if (groupedGamesData?.sportAliasesSet) {\n groupedGamesData.sportAliasesSet.forEach(sport => {\n dispatch(setAdvancedSportsForMarketsTypes(sport));\n });\n }\n }, [Array.from(groupedGamesData?.sportAliasesSet.values() || []).toString()]);\n\n useLayoutEffect(() => {\n if (isMobile()) {\n window.scrollTo(0, 0);\n }\n }, []);\n\n return groupedGamesData ? (\n groupedGamesData.filteredSportsData.map(\n ([compInfo, gamesByType], index) => {\n return (\n !!Object.keys(gamesByType).length && (\n \n \n {!isMobile() && compInfo.sportName}\n {!isMobile() && ' | '}\n {compInfo.regionName}\n {' | '}\n {compInfo.compName}\n \n }\n >\n {Object.entries(gamesByType).map(([layoutType, gameIds]) => {\n return (\n !!gameIds.length && (\n \n )\n );\n })}\n \n )\n );\n }\n )\n ) : !sportsData ? (\n layoutType === ESportsbookLayoutTypes.AMERICAN ? (\n <>\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n \n \n ) : (\n \n )\n ) : null;\n};\n","import { createArray } from 'utils/helpers/create-fake-array';\nimport { Divider } from 'newcomponents/UI/Divider';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nconst RESULTS_TEMPLATE_COUNT = 5;\n\nexport const ResultsSkeleton = () => {\n return (\n <>\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n {createArray(RESULTS_TEMPLATE_COUNT).map((item, i) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n \n
\n
\n \n
\n
\n {createArray(RESULTS_TEMPLATE_COUNT).map((item, i) => {\n return (\n
\n \n
\n );\n })}\n
\n
\n
\n
\n
\n
\n \n
\n \n );\n};\n","import { lazy as lazyImport } from 'utils/generic/lazy';\nimport { EMarketStatisticsTemplate } from 'interfaces/market-statistic';\nimport { EmptySkeleton } from './Templates/Empty/skeleton';\nimport { GoalScoredSkeleton } from './Templates/GoalScored/skeleton';\nimport { LastFiveMatchesAvgSkeleton } from './Templates/LastFiveMatchesAvg/skeleton';\nimport { LastFiveMeetingsSkeleton } from './Templates/LastFiveMeetings/skeleton';\nimport { ResultsSkeleton } from './Templates/Results/skeleton';\n\nconst { Results } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"market-statistic-results\" */ './Templates/Results'\n )\n);\n\nconst { GoalScored } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"market-statistic-goal-scored\" */ './Templates/GoalScored'\n )\n);\n\nconst { LastFiveMeetings } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"market-statistic-last-five-meetings\" */ './Templates/LastFiveMeetings'\n )\n);\n\nconst { LastFiveMatchesAvg } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"market-statistic-last-five-avg\" */ './Templates/LastFiveMatchesAvg'\n )\n);\n\nconst { Empty } = lazyImport(\n () =>\n import(/* webpackChunkName: \"market-statistic-empty\" */ './Templates/Empty')\n);\n\nexport const templatesProps = {\n [EMarketStatisticsTemplate.GoalScored]: {\n view: GoalScored,\n skeleton: GoalScoredSkeleton\n },\n [EMarketStatisticsTemplate.Empty]: {\n view: Empty,\n skeleton: EmptySkeleton\n },\n [EMarketStatisticsTemplate.LastFiveMatchesAvg]: {\n view: LastFiveMatchesAvg,\n skeleton: LastFiveMatchesAvgSkeleton\n },\n [EMarketStatisticsTemplate.LastFiveMeetings]: {\n view: LastFiveMeetings,\n skeleton: LastFiveMeetingsSkeleton\n },\n [EMarketStatisticsTemplate.Results]: {\n view: Results,\n skeleton: ResultsSkeleton\n }\n};\n","import { Divider } from 'newcomponents/UI/Divider';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const GoalScoredSkeleton = () => {\n const SkeletonElement = (\n \n );\n\n return (\n <>\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n {SkeletonElement}\n
\n
\n {SkeletonElement}\n
\n
\n {SkeletonElement}\n
\n
\n \n
\n
\n {SkeletonElement}\n
\n
\n {SkeletonElement}\n
\n
\n {SkeletonElement}\n
\n
\n
\n
\n
\n
\n \n
\n \n );\n};\n","import { Skeleton } from 'newcomponents/UI/Skeleton';\n\nexport const EmptySkeleton = () => {\n return (\n <>\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n \n );\n};\n","import { createArray } from 'utils/helpers/create-fake-array';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nconst LAST_FIVE_MATCHES_AVG_COUNT = 3;\n\nexport const LastFiveMatchesAvgSkeleton = () => {\n return (\n <>\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n {createArray(LAST_FIVE_MATCHES_AVG_COUNT).map(item => {\n return (\n
\n \n \n
\n );\n })}\n
\n
\n
\n
\n
\n \n
\n \n );\n};\n","import { Divider } from 'newcomponents/UI/Divider';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const LastFiveMeetingsSkeleton = () => {\n return (\n <>\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n );\n};\n","import { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nexport const MarketWarning = (): ReactElement => {\n const { t } = useTranslation();\n\n return
{t('sportsbook.timeDisplay')}
;\n};\n","import { ReactElement } from 'react';\nimport { useSelector } from 'react-redux';\nimport { EEventsTypes } from 'interfaces/events';\nimport { useEventsConfigs } from 'newelements/Events/__partials/ConfigsProvider';\nimport 'newelements/Events/__partials/GameUsa/index.less';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport {\n getSelectedEventsType,\n getSelectedSport\n} from 'store/selectors/events';\n\ntype TGameUsaSkeletonProps = {\n hideMoreWages?: boolean;\n};\n\nexport const GameUsaSkeleton = ({\n hideMoreWages\n}: TGameUsaSkeletonProps): ReactElement => {\n const configs = useEventsConfigs();\n\n const selectedEventsType = useSelector(getSelectedEventsType)[\n configs?.moduleId || ''\n ] as EEventsTypes;\n\n const selectedSport =\n useSelector(getSelectedSport)[configs?.moduleId || '']?.[\n selectedEventsType\n ];\n\n return (\n
\n
\n \n \n
\n\n \n
\n );\n};\n","import { FC } from 'react';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const MultipleSelectionsCardHeaderSkeleton: FC<{\n hideExpireDate?: boolean;\n}> = ({ hideExpireDate = false }) => {\n return (\n
\n
\n \n \n \n {!hideExpireDate ? (\n \n ) : null}\n
\n
\n \n
\n
\n );\n};\n","import { forwardRef, ReactElement, Ref, useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ETopLeagueLayoutType } from 'interfaces/sportsbook-configs';\nimport { Region } from 'interfaces/sportsbook-data-levels';\nimport { useCompetitionClick } from './hooks/useCompetitionClick';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { CompetitionNameWithTooltip } from 'components/Shared/CompetitionNameWithTooltip';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useScrollToTop } from 'hooks/useScrollToTop';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setCompetitionMetaData } from 'store/actions';\nimport { setNavigationWrapperHeightChanged } from 'store/actions/new-sportsbook';\nimport { getRegionsSortingOption } from 'store/selectors/new-sportsbook';\nimport {\n getClickFromFavorites,\n getScrollToCompetitionId\n} from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TRegionLevelNavigationProps = {\n navItemsToRender: Region[];\n sportAlias: string;\n itemsSliceCount?: number;\n};\n\nexport const RegionLevelNavigation = forwardRef(\n (\n {\n navItemsToRender,\n sportAlias,\n itemsSliceCount\n }: TRegionLevelNavigationProps,\n scrollToRef: Ref\n ): ReactElement => {\n const dispatch = useDispatch();\n const { params } = useSbRouteMatch();\n const competitionClickHandler = useCompetitionClick();\n const configs = useSportsbookConfigs();\n const regionsSortingOption = useSelector(getRegionsSortingOption);\n\n useScrollToTop('prematch-left-sidebar-wrapper', [params?.sport]);\n\n const scrollToCompetitionId = useSelector(getScrollToCompetitionId);\n const clickFromFavorites = useSelector(getClickFromFavorites);\n const routeCompetitionInData = navItemsToRender.find(\n region => region.alias === params.region\n )?.competition?.[params.competition];\n\n useEffect(() => {\n if (params.category === ENotRealSports.team) {\n return;\n }\n\n const shouldNotSelectFirstCompetition =\n !params.sport &&\n SpringConfigs.TOP_LEAGUES &&\n SpringConfigs.TOP_LEAGUES_LAYOUT === ETopLeagueLayoutType.compact &&\n SpringConfigs.SPORT_MENU_DEFAULT_SELECTED === 'topLeagues';\n\n if (shouldNotSelectFirstCompetition || clickFromFavorites) {\n return;\n }\n\n if (\n navItemsToRender.length &&\n !isMobile() &&\n ((!params.category && !params.region && !params.competition) ||\n !routeCompetitionInData)\n ) {\n const firstCompetition = sortByOrder(\n Object.values(navItemsToRender[0]?.competition || {})\n )[0];\n\n if (firstCompetition) {\n competitionClickHandler({\n sportAlias: sportAlias,\n regionAlias: navItemsToRender[0].alias,\n compId: firstCompetition.id\n });\n }\n }\n }, [params, navItemsToRender, clickFromFavorites]);\n\n useEffect(() => {\n if (routeCompetitionInData && routeCompetitionInData.name) {\n dispatch(setCompetitionMetaData({ name: routeCompetitionInData.name }));\n }\n }, [routeCompetitionInData?.name]);\n\n const getDefaultActive = (index: number, region: Region) => {\n const isCurrentRegionInRoute =\n !!params.region && params.region === region.alias;\n\n return (\n ((!Number(SpringConfigs.SPORT_COMPETITION_IS_COMPACT) || !isMobile()) &&\n index === 0 &&\n !params.region) ||\n (!!scrollToCompetitionId &&\n !!region.competition?.[scrollToCompetitionId?.id]) ||\n isCurrentRegionInRoute\n );\n };\n\n const onToggle = (active: boolean) => {\n if (!active && !isMobile() && !configs.fixedScroll) {\n dispatch(setNavigationWrapperHeightChanged());\n }\n };\n\n const orderedData = useMemo(() => {\n if (regionsSortingOption.key && navItemsToRender) {\n return sortByOrder(\n navItemsToRender,\n regionsSortingOption.key,\n regionsSortingOption.type\n );\n }\n\n return navItemsToRender;\n }, [navItemsToRender, regionsSortingOption.key, regionsSortingOption.type]);\n\n const ViewCollapse = useMemo(\n () => (isMobile() ? EventCollapse : NavigationCollapse),\n []\n );\n\n return (\n \n {orderedData\n .slice(0, itemsSliceCount || navItemsToRender.length)\n .map((region, index) => (\n \n }\n defaultActive={getDefaultActive(index, region)}\n dataTestId=\"region\"\n onChange={onToggle}\n >\n <>\n {sortByOrder(Object.values(region.competition || {})).map(\n comp => (\n \n competitionClickHandler({\n sportAlias: sportAlias,\n regionAlias: region.alias,\n compId: comp.id,\n e\n })\n }\n competitionUrl={competitionClickHandler({\n sportAlias: sportAlias,\n regionAlias: region.alias,\n compId: comp.id,\n returnURLOnly: true\n })}\n IconBeforeText={\n \n }\n {...(isMobile() &&\n scrollToCompetitionId?.id === comp.id.toString() && {\n ref: scrollToRef\n })}\n />\n )\n )}\n \n \n ))}\n \n );\n }\n);\n","import { SyntheticEvent, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setScrollToCompetitionId } from 'store/actions';\n\ntype TCompetitionClickHandler = {\n ({\n sportAlias,\n regionAlias,\n compId,\n e,\n returnURLOnly,\n skipCategory,\n forcePushUrl\n }: {\n sportAlias: string;\n regionAlias: string;\n compId: number;\n e?: SyntheticEvent;\n returnURLOnly?: boolean;\n skipCategory?: boolean;\n forcePushUrl?: boolean;\n }): string;\n};\n\nexport const useCompetitionClick = (\n category?: string\n): TCompetitionClickHandler => {\n const { path, params } = useSbRouteMatch();\n const dispatch = useDispatch();\n const history = useHistory();\n\n const competitionClickHandler: TCompetitionClickHandler = useCallback(\n ({\n sportAlias,\n regionAlias,\n compId,\n e,\n returnURLOnly,\n skipCategory,\n forcePushUrl\n }) => {\n if (\n SpringConfigs.MOCKED_DATA ||\n (String(compId) === params?.competition &&\n !returnURLOnly &&\n !forcePushUrl)\n ) {\n return '';\n }\n\n const newPath = `${getMountPath(path)}${\n category && !skipCategory ? `/${category}` : ''\n }/${sportAlias}/${regionAlias}/${compId}${history.location.search}`;\n\n if (returnURLOnly) {\n return newPath;\n }\n\n history.push(newPath);\n\n if (isMobile()) {\n dispatch(\n setScrollToCompetitionId({\n id: compId.toString(),\n top: e?.currentTarget.getBoundingClientRect().top || 0\n })\n );\n\n window.scrollTo(0, 0);\n }\n\n return '';\n },\n [path, category, params?.competition]\n );\n\n return competitionClickHandler;\n};\n","import { forwardRef, ReactElement, Ref, useEffect, useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { ADD_COMPETITIONS } from 'utils/constants/tour';\nimport { isMobile } from 'utils/is-mobile';\nimport { addRegionNameToCompetition } from 'utils/sportsbook/add-region-name-to-competition';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport {\n ESportsbookLayoutTypes,\n ETopMatchesLayoutType\n} from 'interfaces/sportsbook-configs';\nimport {\n Competition,\n Game,\n Region,\n Sport\n} from 'interfaces/sportsbook-data-levels';\nimport { useCompetitionClick } from './hooks/useCompetitionClick';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { CompetitionNameWithTooltip } from 'components/Shared/CompetitionNameWithTooltip';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useScrollToTop } from 'hooks/useScrollToTop';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getSportsSortingOption } from 'store/selectors/new-sportsbook';\nimport { getScrollToCompetitionId } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TSportLevelNavigationProps = {\n navItemsToRender: Sport[];\n category: string;\n};\n\nexport const SportLevelNavigation = forwardRef(\n (\n { navItemsToRender, category }: TSportLevelNavigationProps,\n scrollToRef: Ref\n ): ReactElement => {\n const { params } = useSbRouteMatch();\n const scrollToCompetitionId = useSelector(getScrollToCompetitionId);\n const sportsSortingOption = useSelector(getSportsSortingOption);\n\n const competitionClickHandler = useCompetitionClick(category);\n const configs = useSportsbookConfigs();\n\n useScrollToTop('prematch-left-sidebar-wrapper', [params?.category]);\n\n const getIsDefaultActive = (sport: Sport, index: number) => {\n return (\n (!Number(SpringConfigs?.SPORT_COMPETITION_IS_COMPACT) &&\n index === 0 &&\n !params.sport &&\n !scrollToCompetitionId) ||\n (!!scrollToCompetitionId &&\n !!sport?.competition?.[scrollToCompetitionId.id]) ||\n params.sport === sport.alias\n );\n };\n\n const createIconAfterText = (\n compId: number,\n compName: string,\n regionAlias: string,\n sportAlias: string\n ) => {\n if (isMobile()) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n };\n\n const createIconBeforeText = (\n compId: number,\n compName: string,\n regionAlias: string,\n sportAlias: string\n ) => {\n if (isMobile()) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n };\n\n useEffect(() => {\n const isTopMatches = params.category === ENotRealSports.topMatches;\n\n const shouldDisableFirstCompetitionSelect =\n isTopMatches &&\n SpringConfigs.TOP_MATCHES_LAYOUT === ETopMatchesLayoutType.compact &&\n configs.spbLayoutType === ESportsbookLayoutTypes.CLASSIC;\n\n if (\n !shouldDisableFirstCompetitionSelect &&\n params.category !== ENotRealSports.multiples &&\n navItemsToRender.length &&\n !isMobile()\n ) {\n const isTopLeague = params.category === ENotRealSports.topLeague;\n\n if (isTopLeague && orderedData?.length) {\n if (!params.region && !params.competition) {\n const competition = sortByOrder(\n Object.values(orderedData[0].competition || {}),\n 'favorite_order'\n )[0];\n\n if (competition) {\n competitionClickHandler({\n sportAlias: orderedData[0].alias,\n regionAlias: String(competition.region),\n compId: competition.id\n });\n }\n }\n } else {\n const sportDataByRouteAlias = (navItemsToRender.length &&\n params.sport &&\n navItemsToRender?.find(\n sport => sport.alias === params.sport\n )) as Sport;\n\n const regionDataByRouteAlias = (sportDataByRouteAlias?.region &&\n params.region &&\n Object.values(sportDataByRouteAlias.region).find(\n reg => reg.alias === params.region\n )) as Region;\n\n const competitionDataByRouteAlias =\n regionDataByRouteAlias?.competition &&\n Object.values(regionDataByRouteAlias.competition).find(\n comp => +comp.id === +params.competition\n );\n\n const firstRegion = sortByOrder(\n Object.values(navItemsToRender[0].region || {})\n )[0];\n\n const firstCompetition = sortByOrder(\n Object.values(firstRegion?.competition || {}),\n isTopLeague ? 'favorite_order' : undefined\n )[0];\n\n const shouldRedirectToFirst =\n (firstCompetition &&\n !sportDataByRouteAlias &&\n !regionDataByRouteAlias &&\n !competitionDataByRouteAlias) ||\n !sportDataByRouteAlias ||\n !regionDataByRouteAlias ||\n !competitionDataByRouteAlias;\n\n if (shouldRedirectToFirst) {\n competitionClickHandler({\n sportAlias: navItemsToRender[0].alias,\n regionAlias: firstRegion.alias,\n compId: firstCompetition.id,\n forcePushUrl:\n !sportDataByRouteAlias ||\n !regionDataByRouteAlias ||\n !competitionDataByRouteAlias\n });\n }\n }\n }\n }, [params, navItemsToRender]);\n\n const ViewCollapse = useMemo(\n () => (isMobile() ? EventCollapse : NavigationCollapse),\n []\n );\n\n const orderedData = useMemo(() => {\n const orderedCompetitions = addRegionNameToCompetition(\n {\n sport: navItemsToRender.reduce(\n (acc, sport) => ({ ...acc, [sport.id]: { ...sport } }),\n {}\n )\n },\n category !== ENotRealSports.topLeague\n );\n\n if (sportsSortingOption.key && orderedCompetitions) {\n return sortByOrder(\n Object.values(orderedCompetitions),\n sportsSortingOption.key,\n sportsSortingOption.type\n );\n }\n\n return orderedCompetitions && Object.values(orderedCompetitions);\n }, [\n category,\n navItemsToRender,\n sportsSortingOption.key,\n sportsSortingOption.type\n ]);\n\n return (\n \n {orderedData?.map((sport, index) => (\n \n }\n defaultActive={getIsDefaultActive(sport, index)}\n >\n <>\n {(category === ENotRealSports.topLeague\n ? sortByOrder(\n Object.values(sport.competition || {}),\n 'favorite_order'\n )\n : sortByOrder(Object.values(sport.region || {})).reduce(\n (result: Competition[], region) => {\n sortByOrder(\n Object.values(region.competition || {})\n ).forEach(competition => {\n result.push({\n ...competition,\n regionId: region.id,\n region: region.alias\n });\n });\n\n return result;\n },\n []\n )\n ).map((comp, index) => (\n {\n competitionClickHandler({\n sportAlias: sport.alias,\n regionAlias: comp.region || '',\n compId: comp.id,\n e: e,\n skipCategory: category === ENotRealSports.multiples\n });\n }}\n competitionUrl={competitionClickHandler({\n sportAlias: sport.alias,\n regionAlias: comp.region || '',\n compId: comp.id,\n returnURLOnly: true\n })}\n IconAfterText={createIconAfterText(\n comp.id,\n comp.name,\n comp.region || '',\n sport.alias\n )}\n IconBeforeText={createIconBeforeText(\n comp.id,\n comp.name,\n comp.region || '',\n sport.alias\n )}\n {...(isMobile() &&\n scrollToCompetitionId?.id === comp.id.toString() && {\n ref: scrollToRef\n })}\n />\n ))}\n \n \n ))}\n \n );\n }\n);\n","import {\n memo,\n ReactElement,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { checkIsElementScrollable } from 'utils/generic/checkIsElementScrollable';\nimport { isMobile } from 'utils/is-mobile';\nimport { Region, Sport } from 'interfaces/sportsbook-data-levels';\nimport { RegionLevelNavigation } from './RegionLevelNavigation';\nimport { SportLevelNavigation } from './SportLevelNavigation';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useGameScrollIntoView } from 'hooks/useGameScrollIntoView';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n getNavigationWrapperHeightChanged,\n getUserSportOrder\n} from 'store/selectors/new-sportsbook';\nimport { getScrollToCompetitionId } from 'store/selectors/sport-data';\nimport './index.less';\n\ninterface NavigationCollapse {\n levelAlias: string;\n}\n\ninterface NavigationCollapseRegionLevel extends NavigationCollapse {\n regionLevel: boolean;\n navigationData: Region[];\n sportLevel?: boolean;\n}\n\ninterface NavigationCollapseSportLevel extends NavigationCollapse {\n sportLevel: boolean;\n navigationData: Sport[];\n regionLevel?: boolean;\n}\n\n// This component requires one of regionLevel | sportLevel props\ntype TNavigationCollapseWrapperProps =\n | NavigationCollapseRegionLevel\n | NavigationCollapseSportLevel;\n\nconst INITIAL_COUNT = 15;\nconst LOAD_MORE_COUNT = 15;\nconst THRESHOLD_COUNT = 5;\n\nexport const NavigationCollapseWrapper = memo(\n ({\n navigationData,\n levelAlias,\n regionLevel,\n sportLevel\n }: TNavigationCollapseWrapperProps): ReactElement => {\n const { params } = useSbRouteMatch();\n const configs = useSportsbookConfigs();\n\n const trigger = useSelector(getNavigationWrapperHeightChanged);\n const scrollToCompetitionId = useSelector(getScrollToCompetitionId);\n const userSportOrder = useSelector(getUserSportOrder);\n const prevSelectedRegionIndex = useMemo(() => {\n if (regionLevel) {\n return navigationData.findIndex(\n region =>\n (scrollToCompetitionId?.id &&\n region?.competition?.[scrollToCompetitionId.id]) ||\n params.region === region.alias\n );\n }\n\n if (sportLevel) {\n return (navigationData as Sport[]).findIndex(sport =>\n Object.values(sport.region || {}).find(\n region =>\n scrollToCompetitionId?.id &&\n !!region.competition?.[scrollToCompetitionId.id]\n )\n );\n }\n\n return -1;\n }, [\n regionLevel,\n sportLevel,\n navigationData,\n scrollToCompetitionId,\n params\n ]);\n\n const initialCount =\n SpringConfigs.RENDER_COMPETITIONS_IN_DOM || configs.fixedScroll\n ? navigationData.length\n : prevSelectedRegionIndex < INITIAL_COUNT\n ? INITIAL_COUNT\n : prevSelectedRegionIndex + THRESHOLD_COUNT;\n\n const [itemsSliceCount, setItemsSliceCount] = useState(initialCount);\n\n useLayoutEffect(() => {\n if (\n !checkIsElementScrollable('#prematch-left-sidebar-wrapper') &&\n !isMobile() &&\n !configs.fixedScroll\n ) {\n setItemsSliceCount(navigationData.length);\n }\n }, [trigger]);\n\n const orderedSportData = useMemo(() => {\n return navigationData && sportLevel\n ? navigationData?.slice(0, itemsSliceCount)\n : navigationData;\n }, [userSportOrder, navigationData, itemsSliceCount]);\n\n const scrollToRef = useRef(null);\n\n const handleScroll = useGameScrollIntoView();\n\n const isMoreDataAvailable = itemsSliceCount < navigationData.length;\n\n const loadMore = () => {\n setItemsSliceCount(prevCount => prevCount + LOAD_MORE_COUNT);\n };\n\n useLayoutEffect(() => {\n if (\n prevSelectedRegionIndex &&\n prevSelectedRegionIndex !== -1 &&\n scrollToRef.current\n ) {\n handleScroll(\n scrollToRef.current,\n 'competition',\n scrollToCompetitionId?.top,\n true\n );\n }\n }, [prevSelectedRegionIndex]);\n\n const generateContent = () => {\n if (regionLevel) {\n return (\n \n );\n }\n\n if (sportLevel) {\n return (\n \n );\n }\n };\n\n return (\n \n {generateContent()}\n \n );\n }\n);\n","import { ReactElement, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { TNotificationIconProps } from './index';\nimport { Container } from 'components/EventAction/style';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { useSportsNotifications } from 'hooks/sportsbook/useSportsNotifications';\nimport { getUserNotifications } from 'store/selectors/sport-data';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\nimport './index.less';\n\nexport const NotificationIconContent = ({\n game,\n size,\n iconContainerSize\n}: TNotificationIconProps): ReactElement => {\n const user = useSelector(getUser);\n const isLoggedIn = useSelector(getIsLoggedIn);\n\n const [notificationLoading, setNotificationLoading] = useState(false);\n\n const userSportNotifications = useSelector(getUserNotifications);\n\n const shouldSubscribeForNotifications =\n !userSportNotifications[game.id]?.events[0]?.is_subscribed;\n\n const { handleNotificationClick } = useSportsNotifications({\n notificationLoading,\n setNotificationLoading,\n game,\n shouldSubscribeForNotifications,\n userSportNotifications,\n userPending: !!user.pending,\n isLoggedIn\n });\n\n return (\n \n \n \n );\n};\n","import { SyntheticEvent, useCallback } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { openSlider } from 'utils/sportsbook/api-post-message-sender';\nimport { ResponseGeneric } from 'interfaces/generic';\nimport { UserNotifications } from 'interfaces/notifications';\nimport { AFTER_SIGN_IN_ACTION_TYPES, AfterSignIn } from 'services/afterSignIn';\nimport { setGamesNotifications } from 'services/sportsbook/notifications';\nimport { addQuery, saveCurrentLocation } from 'components/QueryRoute';\nimport { setUserNotifications } from 'store/actions/sport-data';\n\ntype Props = {\n notificationLoading: boolean;\n setNotificationLoading: (arg: boolean) => void;\n game: { id: number; start_ts: number };\n userSportNotifications: UserNotifications;\n shouldSubscribeForNotifications: boolean;\n userPending: boolean;\n isLoggedIn: boolean;\n};\n\nexport const useSportsNotifications = ({\n notificationLoading,\n setNotificationLoading,\n game,\n userSportNotifications,\n shouldSubscribeForNotifications,\n userPending,\n isLoggedIn\n}: Props): { handleNotificationClick: (e: SyntheticEvent) => void } => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n const updateGamesNotifications = useCallback(() => {\n return new Promise(resolve => {\n setNotificationLoading(true);\n setGamesNotifications(\n { id: game.id, game_start_ts: game.start_ts },\n shouldSubscribeForNotifications,\n (resp: ResponseGeneric) => {\n if (resp.details.code === 0) {\n dispatch(\n setUserNotifications({\n [game.id]: {\n events: [\n {\n event_name: 'MatchFinished',\n is_subscribed: shouldSubscribeForNotifications\n }\n ]\n }\n })\n );\n setNotificationLoading(false);\n }\n\n resolve(true);\n },\n () => {\n setNotificationLoading(false);\n resolve(true);\n }\n );\n });\n }, [\n userSportNotifications,\n game.id,\n game.start_ts,\n shouldSubscribeForNotifications\n ]);\n\n const handleNotificationClick = useCallback(\n async (e: SyntheticEvent) => {\n e.stopPropagation();\n\n if (notificationLoading) {\n return;\n }\n\n if (!userPending) {\n if (isLoggedIn) {\n await updateGamesNotifications();\n } else {\n if (SpringConfigs.IFRAME_SPORTSBOOK) {\n openSlider('login');\n } else {\n saveCurrentLocation();\n history.push(addQuery({ accounts: '*', login: '*' }));\n const afterSignIn = new AfterSignIn();\n afterSignIn.appendAction(\n AFTER_SIGN_IN_ACTION_TYPES.SUBSCRIBE_FOR_NOTIFICATION,\n updateGamesNotifications\n );\n }\n }\n }\n },\n [\n userPending,\n isLoggedIn,\n shouldSubscribeForNotifications,\n notificationLoading\n ]\n );\n\n return {\n handleNotificationClick\n };\n};\n","import { ReactElement } from 'react';\nimport { EContainerIconSize, EIconSize } from 'utils/constants/app/ui';\nimport { NOTIFICATION_SUPPORTING_SPORTS } from 'utils/constants/sportsbook/notificationSupportSports';\nimport { NotificationIconContent } from './content';\nimport './index.less';\n\nexport type TNotificationIconProps = {\n game: { id: number; start_ts: number };\n currentSport: string;\n size?: EIconSize._16 | EIconSize._20;\n iconContainerSize?:\n | EContainerIconSize.SMALL\n | EContainerIconSize.MIDDLE\n | EContainerIconSize.LARGE\n | 0;\n};\n\nexport const NotificationIcon = ({\n currentSport,\n game,\n size,\n iconContainerSize\n}: TNotificationIconProps): ReactElement | null => {\n return NOTIFICATION_SUPPORTING_SPORTS.includes(currentSport) ? (\n \n ) : null;\n};\n","import { FC } from 'react';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype TOlympicSkeletonProps = {\n hideFirstIcon?: boolean;\n};\n\nconst OLYMPIC_MOBILE_COUNT = 20;\nconst OLYMPIC_DESKTOP_COUNT = 10;\n\nexport const OlympicSkeleton: FC = ({\n hideFirstIcon\n}) => {\n return (\n
\n
\n {createArray(\n isMobile() ? OLYMPIC_MOBILE_COUNT : OLYMPIC_DESKTOP_COUNT\n ).map((_, i) => {\n return (\n
\n
\n
\n {!hideFirstIcon ? (\n \n ) : null}\n\n \n \n
\n \n
\n
\n );\n })}\n
\n
\n );\n};\n","import React, { FC, Suspense, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n competitions,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { addRegionNameToCompetition } from 'utils/sportsbook/add-region-name-to-competition';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Region as RegionType, Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { OlympicSkeleton } from './Skeleton';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport {\n TopLeagueCompactLayout,\n TSportDataWithCompetitions\n} from 'newcomponents/Shared/sportsbook/TopLeagueCompactLayout';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport {\n setNavigationWrapperHeightChanged,\n setSwarmResponse\n} from 'store/actions/new-sportsbook';\nimport { getSwarmResponse } from 'store/selectors/new-sportsbook';\n\ntype TOlympicCompetitionCompactLayoutProps = {\n fromSportsList?: boolean;\n showCollapse?: boolean;\n sportIconSize?: number;\n regionIconSize?: number;\n externalDataSource?: Record;\n addGameStartTsInRequest?: boolean;\n openFromSideBarPopup?: boolean;\n};\n\nexport const OlympicCompetitionCompactLayout: FC<\n TOlympicCompetitionCompactLayoutProps\n> = ({\n fromSportsList = false,\n showCollapse = !isMobile(),\n sportIconSize,\n regionIconSize,\n externalDataSource,\n addGameStartTsInRequest,\n openFromSideBarPopup\n}) => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const { fixedScroll } = useSportsbookConfigs();\n\n const internalDataSource =\n useSelector(getSwarmResponse)?.[ENotRealSports.olympicCompetition];\n\n const data = externalDataSource || internalDataSource;\n\n const sportData = useMemo(() => {\n if (data) {\n return addRegionNameToCompetition(\n { sport: { ...data } },\n false\n ) as TSportDataWithCompetitions;\n }\n }, [data]);\n\n const getData = (rid: string) => {\n const where = {\n competition: { info: { is_olympic: true } },\n game: {\n '@or': [\n {\n type: { '@in': [0, 2] }\n },\n {\n visible_in_prematch: 1,\n type: 1\n }\n ]\n },\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(undefined)\n }\n }\n };\n\n const relations: Record = {\n ...sports,\n ...regions,\n competition: [...competitions.competition]\n };\n\n if (addGameStartTsInRequest) {\n relations.game = ['start_ts'];\n }\n\n executeCommand(\n rid,\n relations,\n where,\n (data: {\n sport: Record;\n region: Record;\n }) => {\n dispatch(\n setSwarmResponse({ [ENotRealSports.olympicCompetition]: data.sport })\n );\n },\n true,\n (data: { sport: Record }) => {\n dispatch(\n setSwarmResponse({ [ENotRealSports.olympicCompetition]: data.sport })\n );\n }\n );\n };\n\n useEffect(() => {\n if (!SpringConfigs.MOCKED_DATA) {\n const rId = RidGenerator.gForSubscribe('OLYMPIC_COMPETITION_COMPACT');\n\n getData(rId);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }\n }, []);\n\n const onToggle = (active: boolean) => {\n if (!active && !isMobile() && !fixedScroll) {\n dispatch(setNavigationWrapperHeightChanged());\n }\n };\n\n if (!sportData) {\n if (fromSportsList) {\n return ;\n }\n\n return;\n }\n\n return (\n (\n \n }\n wrapperClassName=\"sportsList__sport olympicCompetition__wrapper\"\n headerClassName=\"sportsList__sport__header olympicCompetition__header\"\n >\n {children}\n \n )}\n >\n \n \n \n \n );\n};\n","import {\n memo,\n MouseEvent,\n ReactElement,\n useCallback,\n useMemo,\n useState\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ELayoutTypes, EPageTypes, TGamesGroups } from 'interfaces/sportsbook';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport { INFINITE_SCROLL_ID } from 'newelements/Sportsbook/layouts/classic/DesktopSportsbookClassic';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { MatchCardInline } from 'components/MatchCardInline';\nimport { MatchCardInlineUSA } from 'components/Shared/MatchCardInlineUSA';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { UrlWrapper } from 'components/Shared/UrlWrapper';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useScrollToTop } from 'hooks/useScrollToTop';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getMarketsCount } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TProps = {\n layoutType: ELayoutTypes;\n pageType: EPageTypes;\n groups: TGamesGroups | null;\n handleMatchClick: (event: MouseEvent, id: number) => void;\n isAllCollapsed?: boolean;\n};\n\nconst INITIAL_COUNT = 15;\nconst LOAD_MORE_COUNT = 4;\nexport const ORIGINAL_MARKET_COUNT = 17;\n\nexport const SportsbookGameList = memo(\n ({\n layoutType,\n pageType,\n groups,\n handleMatchClick,\n isAllCollapsed\n }: TProps): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const [groupsCount, setGroupsCount] = useState(INITIAL_COUNT);\n\n const { t } = useTranslation();\n const { path, params } = useSbRouteMatch();\n\n const isLive = pageType === EPageTypes.live;\n const isPrematch = pageType === EPageTypes.prematch;\n\n const getterParam = `${\n isPrematch ? params.competition : params.sport\n }_${pageType}`;\n\n const marketsCount = useSelector(getMarketsCount)[getterParam] || null;\n\n const isFavoriteTeam = params.category === ENotRealSports.team;\n const activeGameId = isFavoriteTeam ? params.competition : '';\n const isMobileTodayEvents =\n isMobile() && params.category === ENotRealSports.todayEvents;\n\n const scrollTarget = useMemo(() => {\n if (isMobile()) {\n return '';\n } else {\n if (configs.pageType === ESportsbookPageTypes.prematch) {\n return INFINITE_SCROLL_ID;\n } else {\n return 'prematch-left-sidebar-wrapper';\n }\n }\n }, []);\n\n useScrollToTop(\n scrollTarget,\n isLive ? [params.sport] : [params.sport, params.competition]\n );\n\n const data = useMemo(() => {\n if (!groups) {\n return null;\n }\n\n if (isAllCollapsed || configs.fixedScroll) {\n return groups;\n }\n\n return groups.slice(0, groupsCount);\n }, [groups, groupsCount, isAllCollapsed]);\n\n const isMoreDataAvailable = useMemo(() => {\n if (!groups || !data) {\n return false;\n }\n\n return data.length < groups.length;\n }, [data, groups]);\n\n const loadMore = useCallback(() => {\n setGroupsCount(prev => prev + LOAD_MORE_COUNT);\n }, [groups]);\n\n if (!data) {\n return (\n \n );\n }\n\n if (!data.length) {\n return (\n \n );\n }\n\n return (\n \n {data.map(({ name, details, games }) => (\n \n {isLive && (\n \n )}\n {name}\n \n }\n defaultActive={!isAllCollapsed}\n >\n
\n {(isMobileTodayEvents\n ? sortByOrder(games, 'start_ts')\n : games\n ).map(game => {\n const originalMarketsCount = SpringConfigs.MOCKED_DATA\n ? ORIGINAL_MARKET_COUNT\n : marketsCount?.[game.id];\n\n return (\n \n {layoutType === ELayoutTypes.usa ? (\n \n handleMatchClick(e as MouseEvent, game.id)\n }\n withMoreWagesWrapper={true}\n regionAlias={details.region.alias}\n showBBIcon\n showFavoriteButton\n isLive={isLive}\n detailedTeamsInfo\n />\n ) : (\n \n handleMatchClick(e as MouseEvent, game.id)\n }\n competitionId={details.competition.id}\n isLive={isLive}\n isActive={activeGameId === String(game.id)}\n />\n )}\n \n );\n })}\n
\n \n ))}\n \n );\n }\n);\n","import { FC, useCallback, useLayoutEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport LS from 'utils/bom-dom-manipulation/local-storage';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { IS_SEPARATED_WIDGETS } from 'utils/constants/sportsbook/generic';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport {\n getMountPath,\n mountPoint,\n sbPathFromObj\n} from 'utils/generic/route-manipulation';\nimport { storageKeyName } from 'utils/generic/storage-key-name';\nimport { isMobile } from 'utils/is-mobile';\nimport { handleRedirectToSportsBook } from 'utils/sportsbook/handleRedirectToSportsBook';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { CompetitionNameWithTooltip } from 'components/Shared/CompetitionNameWithTooltip';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n batchActions,\n setTimeFilterData,\n setTournamentSportIds\n} from 'store/actions';\nimport {\n setGamesByCompetitions,\n setSelectedCompetitions,\n setSportRegionCompData,\n setSportsbookSelectedSport\n} from 'store/actions/new-sportsbook';\nimport {\n getSelectedCompetitions,\n getSportsbookSelectedSport\n} from 'store/selectors/new-sportsbook';\nimport {\n getTimeFiltersData,\n getTournamentSportIds\n} from 'store/selectors/sport-data';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TProps = {\n sportData: TSportDataWithCompetitions;\n fromSportsList?: boolean;\n openFromSideBarPopup?: boolean;\n sportIconSize?: number;\n regionIconSize?: number;\n};\n\ntype TCompetitionInfo = {\n favorite_order: number;\n id: number;\n name: string;\n order: number;\n region: string;\n regionId: number;\n};\n\nexport type TSportDataWithCompetitions = {\n [k: string]: {\n id: number;\n type: number;\n name: string;\n alias: string;\n order: number;\n competition: {\n [k: string]: TCompetitionInfo;\n };\n };\n};\n\nexport const TopLeagueCompactLayout: FC = ({\n sportData,\n fromSportsList = false,\n openFromSideBarPopup,\n sportIconSize,\n regionIconSize\n}) => {\n const selectedSport = useSelector(getSportsbookSelectedSport);\n const configs = useSportsbookConfigs();\n const tournamentSportIds = useSelector(getTournamentSportIds);\n const timeStamp = useSelector(getTimeFiltersData);\n\n const { t } = useTranslation();\n const { history, push } = useCustomHistory();\n const dispatch = useDispatch();\n const { path, params } = useSbRouteMatch();\n const currentSportAlias = selectedSport?.alias || params?.sport;\n const routeParams = useSbRouteMatch(\n `${mountPoint(window.getPathname())}/:sport?/:region?/:competition?/:game?`\n );\n\n const selectedCompetitions = useSelector(getSelectedCompetitions)?.[\n currentSportAlias\n ];\n\n useLayoutEffect(() => {\n if (configs.spbLayoutType === ESportsbookLayoutTypes.ADVANCED) {\n return;\n }\n\n const selectedSportToUpdate = Object.values(sportData).find(\n sport => sport.alias === currentSportAlias\n );\n\n if (\n selectedSportToUpdate &&\n selectedSportToUpdate?.alias !== selectedSport?.alias\n ) {\n dispatch(setSportsbookSelectedSport(selectedSport));\n }\n }, [sportData, params.sport]);\n\n const handleClick = useCallback(\n (sportAlias: string, compId: number, region: string) => {\n if (timeStamp && Object.keys(timeStamp).length) {\n dispatch(\n setTimeFilterData({\n option: 'All',\n date: false,\n count: undefined,\n name: t('sportsbook.allEvents')\n })\n );\n }\n\n if (configs.spbLayoutType === ESportsbookLayoutTypes.ADVANCED) {\n const newPath = `${mountPoint(window.getPathname())}?compIds=${compId}`;\n push(newPath);\n\n return;\n }\n\n const currentSportId = Object.values(sportData).find(\n sport => sport.alias === sportAlias\n )?.id;\n\n const isSameCompetitionForEU =\n selectedCompetitions?.length === 1 &&\n selectedCompetitions[0] === compId;\n\n const isSameRouteForClassicAndUSA =\n !selectedCompetitions && +params?.competition === +compId;\n\n if (isSameCompetitionForEU || isSameRouteForClassicAndUSA) {\n return;\n }\n\n if (!tournamentSportIds?.includes(currentSportId || null)) {\n dispatch(setTournamentSportIds(null));\n }\n\n dispatch(\n batchActions(\n setSportRegionCompData(null, true),\n setGamesByCompetitions(null),\n setSelectedCompetitions({\n data: null,\n key: currentSportAlias\n })\n )\n );\n LS.setItem(storageKeyName('sportsbook', 'EU_SPORT_ALIAS'), sportAlias);\n\n if (openFromSideBarPopup) {\n if (!document.querySelector('.prematch__type-page')) {\n handleRedirectToSportsBook(\n 'prematch',\n region,\n compId,\n undefined,\n sportAlias\n );\n } else {\n const pathname = getMountPath(\n routeParams?.path?.replace(/:sport\\?.*$/, sportAlias) || ''\n );\n\n history.push(`${pathname}/${region}/${compId}`);\n }\n } else {\n if (!fromSportsList) {\n const pathToRedirect = IS_SEPARATED_WIDGETS ? routeParams.path : path;\n\n let pathname = `${mountPoint(\n pathToRedirect\n )}/${sportAlias}/${region}/${compId}`;\n\n if (isMobile()) {\n pathname = `${mountPoint(path)}/${\n ENotRealSports.topLeague\n }/${sportAlias}/${region}/${compId}`;\n }\n\n history.push({ pathname });\n } else {\n handleRedirectToSportsBook(\n 'prematch',\n region,\n compId,\n undefined,\n sportAlias\n );\n }\n }\n },\n [\n path,\n history,\n params?.sport,\n params?.competition,\n selectedSport?.alias,\n selectedCompetitions,\n tournamentSportIds,\n timeStamp\n ]\n );\n\n const data = useMemo(() => {\n return Object.values(sportData || {})\n .map(sport =>\n Object.values(sport?.competition || {}).map(competition => {\n return {\n ...competition,\n favorite_order: competition.favorite_order ?? Infinity,\n sportAlias: sport.alias\n };\n })\n )\n .flat();\n }, [sportData]);\n\n useLayoutEffect(() => {\n const shouldSelectFirstCompetition =\n !fromSportsList &&\n !isMobile() &&\n !routeParams.params.sport &&\n SpringConfigs.SPORT_MENU_DEFAULT_SELECTED === 'topLeagues' &&\n configs.spbLayoutType !== ESportsbookLayoutTypes.ADVANCED;\n\n const hasTopLeagueData = !!data.length;\n\n if (shouldSelectFirstCompetition) {\n if (hasTopLeagueData) {\n const { sportAlias, region, id } = data[0];\n handleClick(sportAlias, id, region);\n } else {\n history.push(`${mountPoint(path)}/${ENotRealSports.topLeague}`);\n }\n }\n }, [data, routeParams.params.sport]);\n\n if (!Object.keys(sportData).length) {\n return (\n \n );\n }\n\n return (\n
\n
\n {sortByOrder(data, 'favorite_order').map(competition => (\n
\n {\n handleClick(\n competition.sportAlias,\n competition.id,\n competition.region\n );\n }}\n competitionUrl={`${SpringConfigs.PAGE_URLS.prematch}/${\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n }${sbPathFromObj({\n sport: competition.sportAlias,\n competition: `${competition.id}`,\n region: competition.region\n })}`}\n competitionItem={competition}\n active={\n competition.id === +params.competition ||\n selectedCompetitions?.includes(competition.id)\n }\n IconBeforeText={\n <>\n \n \n \n }\n IconAfterText={\n \n }\n />\n
\n ))}\n
\n
\n );\n};\n","import { ReactElement } from 'react';\nimport { COMPETITION_SKELETON_DEFAULT_LENGTH } from 'utils/constants/app/magic-numbers-app';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype TProps = {\n count?: number;\n includeCollapse?: boolean;\n hideMargin?: boolean;\n className?: string;\n};\n\nexport const SportRegionGameListSkeleton = ({\n count,\n includeCollapse,\n hideMargin,\n className\n}: TProps): ReactElement => {\n const length = count ? count : COMPETITION_SKELETON_DEFAULT_LENGTH;\n\n return (\n (\n \n }\n >\n {children || <> }\n \n )}\n >\n (\n \n }\n >\n {children || <> }\n \n )}\n >\n
\n {createArray(length).map(key => (\n \n ))}\n
\n \n \n );\n};\n","import { ReactElement } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { ETopMatchesLayoutType } from 'interfaces/sportsbook-configs';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { SportRegionGameListSkeleton } from 'components/UI/Skeletons/SportRegionGameListSkeleton';\nimport './index.less';\n\nexport const TopMatchesCompactMenuSkeleton = (): ReactElement => {\n const { t } = useTranslation();\n\n if (\n isMobile() ||\n SpringConfigs.TOP_MATCHES_LAYOUT === ETopMatchesLayoutType.compact\n ) {\n return (\n
\n \n
\n );\n }\n\n return (\n \n }\n wrapperClassName=\"sportsList__sport\"\n headerClassName=\"sportsList__sport__header topMatches__header\"\n />\n );\n};\n","import { FC, SyntheticEvent, useCallback, useLayoutEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { CompetitionItemCollapse } from 'newelements/Sportsbook/layouts/__partials/BoostedOdds/CompetitionItemCollapse';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { TopMatchesCompactMenuSkeleton } from 'newcomponents/Shared/sportsbook/TopMatchesCompactMenuItem/Skeleton';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setSportsbookSelectedSport } from 'store/actions/new-sportsbook';\nimport { getSportsbookSelectedSport } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TProps = {\n sportData: Record;\n fromSportsList?: boolean;\n openFromSideBarPopup?: boolean;\n};\n\nexport const TopMatchesCompactLayout: FC = ({ sportData }) => {\n const selectedSport = useSelector(getSportsbookSelectedSport);\n\n const dispatch = useDispatch();\n const history = useHistory();\n const { t } = useTranslation();\n const { path, params } = useSbRouteMatch();\n const currentSportAlias = selectedSport?.alias || params?.sport;\n\n useLayoutEffect(() => {\n const selectedSportToUpdate = Object.values(sportData).find(\n sport => sport.alias === currentSportAlias\n );\n\n if (\n selectedSportToUpdate &&\n selectedSportToUpdate?.alias !== selectedSport?.alias\n ) {\n dispatch(setSportsbookSelectedSport(selectedSport));\n }\n }, [sportData, currentSportAlias]);\n\n const handleMatchCardClick = useCallback(\n (\n _e: SyntheticEvent,\n _region: string,\n _competitionId: number,\n gameId: number\n ) => {\n history.push(\n `${getMountPath(path)}/${ENotRealSports.topMatches}/${gameId}`\n );\n },\n [path]\n );\n\n if (!sportData) {\n return ;\n }\n\n if (Object.keys(sportData).length === 0) {\n return (\n \n );\n }\n\n return (\n
\n
\n {sortByOrder(Object.values(sportData)).map(\n (sport: Sport, sportIndex) => (\n \n \n {sport.name}\n \n }\n >\n <>\n {sortByOrder(Object.values(sport.region || {})).map(\n (region, regIndex) =>\n sortByOrder(Object.values(region.competition || {})).map(\n (comp, compIndex) => (\n \n )\n )\n )}\n \n \n )\n )}\n
\n
\n );\n};\n","import { FC } from 'react';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype TProps = {\n hideFirstIcon?: boolean;\n};\n\nconst TOP_MATCHES_MOBILE_COUNT = 20;\nconst TOP_MATCHES_COUNT = 10;\n\nexport const TopMatchesCompactLayoutSkeleton: FC = ({\n hideFirstIcon\n}) => {\n return (\n
\n
\n {createArray(\n isMobile() ? TOP_MATCHES_MOBILE_COUNT : TOP_MATCHES_COUNT\n ).map((_, i) => {\n return (\n
\n
\n
\n {!hideFirstIcon ? (\n \n ) : null}\n\n \n \n
\n \n
\n
\n );\n })}\n
\n
\n );\n};\n","import { FC, Suspense, useEffect, useLayoutEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n competitions,\n events,\n gameList,\n markets,\n regions,\n sports,\n topMatchesWhere\n} from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport, SportOnly } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { TopMatchesCompactMenuSkeleton } from './Skeleton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { TopMatchesCompactLayout } from 'newcomponents/Shared/sportsbook/TopMatchesCompactLayout';\nimport { TopMatchesCompactLayoutSkeleton } from 'newcomponents/Shared/sportsbook/TopMatchesCompactLayout/skeleton';\nimport { TopMatchesSportList } from 'newcomponents/Shared/sportsbook/TopMatchesSportList';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n setNavigationWrapperHeightChanged,\n setSwarmResponse\n} from 'store/actions/new-sportsbook';\nimport { getSwarmResponse } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\ntype TProps = {\n fromSportsList?: boolean;\n};\n\nexport const TopMatchesCompactMenuItem: FC = ({\n fromSportsList = false\n}) => {\n const dispatch = useDispatch();\n const data = useSelector(getSwarmResponse)?.[ENotRealSports.topMatches];\n const history = useHistory();\n const { t } = useTranslation();\n const { params } = useSbRouteMatch();\n\n const { sportType, fixedScroll } = useSportsbookConfigs();\n\n const isTopMatches = params?.category === ENotRealSports.topMatches;\n\n useLayoutEffect(() => {\n const shouldSelectFirstCompetition =\n !isMobile() &&\n ((SpringConfigs.SPORT_MENU_DEFAULT_SELECTED ===\n ENotRealSports.topMatches &&\n !params.sport) ||\n params.category === ENotRealSports.topMatches);\n\n const hasTopLeagueData = data && !!Object.values(data).length;\n\n if (shouldSelectFirstCompetition) {\n if (hasTopLeagueData) {\n const { alias } = Object.values(data)[0];\n\n if (alias !== params.sport) {\n history.push(\n `${mountPoint(window.location.pathname)}/${\n ENotRealSports.topMatches\n }/${alias}`\n );\n }\n } else {\n history.push(\n `${mountPoint(window.location.pathname)}/${ENotRealSports.topMatches}`\n );\n }\n }\n }, [Object.values(data || {})[0]?.alias]);\n\n useEffect(() => {\n const rId = RidGenerator.gForSubscribe('TOP_MATCHES_COMPACT');\n\n const getData = (rid: string) => {\n const where = sportType\n ? {\n ...topMatchesWhere,\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n }\n : topMatchesWhere;\n\n const relations = isMobile()\n ? {\n ...sports,\n ...regions,\n competition: [...competitions.competition, 'favorite_order'],\n market: markets.market,\n event: events.event,\n game: gameList.game\n }\n : {\n ...sports,\n ...regions,\n competition: [...competitions.competition, 'favorite_order']\n };\n\n executeCommand(\n rid,\n relations,\n where,\n (data: { sport: Record }) => {\n dispatch(\n setSwarmResponse({ [ENotRealSports.topMatches]: data.sport })\n );\n },\n true,\n (data: { sport: Record }) => {\n dispatch(\n setSwarmResponse({ [ENotRealSports.topMatches]: data.sport })\n );\n }\n );\n };\n\n getData(rId);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, []);\n\n const onToggle = (active: boolean) => {\n if (!active && !isMobile() && !fixedScroll) {\n dispatch(setNavigationWrapperHeightChanged());\n }\n };\n\n if (isMobile()) {\n if (!data) {\n return ;\n }\n\n return (\n }>\n \n \n );\n }\n\n return (\n \n }\n wrapperClassName=\"sportsList__sport topMatches__wrapper\"\n headerClassName=\"sportsList__sport__header topMatches__header\"\n defaultActive={\n SpringConfigs.SPORT_MENU_DEFAULT_SELECTED ===\n ENotRealSports.topMatches || isTopMatches\n }\n >\n \n \n );\n};\n","import { ReactElement, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { competitions, sports } from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { SPORTSBOOK_ROUTE_WITH_CATEGORY } from 'utils/sportsbook/route.structure';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand } from 'services/get-data-level';\nimport { unsubscribeCommand } from 'services/get-swarm-data';\nimport { SportItem, SportItemSkeleton } from './SportItem';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setTournamentSportIds } from 'store/actions';\nimport { setGameInfo } from 'store/actions/game-data';\nimport { getTournamentSportIds } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TTopMatchesSportListProps = {\n handleRedirect?: (url: string) => void;\n};\n\nexport const TopMatchesSportList = ({\n handleRedirect\n}: TTopMatchesSportListProps): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const { t } = useTranslation();\n const { mounted } = useMounted();\n\n const dispatch = useDispatch();\n const history = useHistory();\n const routeParams = useSbRouteMatch(SPORTSBOOK_ROUTE_WITH_CATEGORY);\n const tournamentSportIds = useSelector(getTournamentSportIds);\n\n const sportInRoute = routeParams?.params.sport;\n\n const [sportsData, setSportsData] = useState(\n null\n );\n\n useEffect(() => {\n const where: Record = {\n game: {\n promoted: true,\n type: {\n '@in': [0, 2]\n }\n }\n };\n\n if (configs.sportType) {\n where.sport = {\n type: {\n '@in': getLivePreMatchSportTypes(configs.sportType)\n }\n };\n }\n\n const what: {\n [key: string]: Array;\n } = {\n sport: sports.sport,\n competition: [...competitions.competition, 'favorite_order'],\n region: ['alias']\n };\n\n const Rid = RidGenerator.gForSubscribe('TopMatchesSportsList');\n\n setSportsData([]);\n executeCommand(\n Rid,\n what,\n where,\n (resp: { sport: Record }) => {\n if (mounted.current && resp.sport && Object.keys(resp.sport).length) {\n const orderedSports = sortByOrder(Object.values(resp.sport));\n setSportsData(orderedSports);\n } else {\n setSportsData(undefined);\n }\n }\n );\n\n return () => {\n unsubscribeCommand(Rid);\n };\n }, []);\n\n const handleSportSelect = (sport: Sport) => {\n if (\n sport?.alias === sportInRoute &&\n routeParams.params?.category === ENotRealSports.topMatches\n ) {\n return;\n }\n\n const regions = Object.values(sport?.region || {})?.[0];\n const competiton = Object.values(regions.competition || {})?.[0]?.id;\n\n const redirectUrl = `${mountPoint(routeParams.path)}/${\n ENotRealSports.topMatches\n }${\n isMobile()\n ? ''\n : `/${sport.alias}${regions ? `/${regions.alias}` : ''}${\n competiton ? `/${competiton}` : ''\n }`\n }`;\n\n const isInPrematch = document.querySelector('.prematch__type-page');\n\n if (!tournamentSportIds?.includes(sport.id || null)) {\n dispatch(setTournamentSportIds(null));\n }\n\n if (handleRedirect && !isInPrematch) {\n const redirectUrlBasePath = redirectUrl.split('/')[1];\n const basePath = SpringConfigs.PAGE_URLS.prematch.replace(\n `${window.location.origin}/`,\n ''\n );\n\n if (redirectUrlBasePath !== basePath) {\n const [, filteredUrl] = redirectUrl.split(\n SpringConfigs.SPORTSBOOK_MOUNT_PATH\n );\n\n handleRedirect(`/${SpringConfigs.SPORTSBOOK_MOUNT_PATH + filteredUrl}`);\n\n return;\n }\n }\n\n if (routeParams) {\n dispatch(setGameInfo(null));\n history.push(redirectUrl);\n }\n };\n\n if (sportsData === undefined) {\n return (\n \n );\n }\n\n return (\n
\n {sportsData?.length ? (\n sportsData?.map(sport => (\n \n ))\n ) : (\n \n )}\n
\n );\n};\n","import React, { ReactElement } from 'react';\nimport { EContainerIconSize, EIconSize } from 'utils/constants/app/ui';\nimport { EventAction } from 'components/EventAction';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport './index.less';\n\ntype TVideoCamIconProps = {\n size?: EIconSize._14 | EIconSize._16 | EIconSize._20;\n iconContainerSize?:\n | EContainerIconSize.SMALL\n | EContainerIconSize.MIDDLE\n | EContainerIconSize.LARGE\n | 0;\n className?: string;\n marginDirection?: 'left' | 'right' | null;\n};\n\nexport const VideoCamIcon = ({\n size,\n iconContainerSize,\n className,\n marginDirection = 'left'\n}: TVideoCamIconProps): ReactElement => {\n return (\n \n }\n />\n );\n};\n","import { memo, ReactNode } from 'react';\nimport cc from 'classcat';\nimport './index.less';\n\nexport type TDividerProps = {\n children?: ReactNode;\n className?: string;\n distance?: number;\n type?: string;\n orientation?: string;\n};\n\nexport const Divider = memo(\n ({\n children,\n className = '',\n distance = 0,\n orientation = 'center',\n type = 'horizontal',\n ...props\n }: TDividerProps) => {\n const style = {\n margin: type !== 'vertical' ? `${distance}px 0` : `0 ${distance}px`\n };\n\n return (\n \n {children && {children}}\n \n );\n }\n);\n","import { ForwardedRef, forwardRef, ReactElement } from 'react';\nimport { Input as AntInput, InputProps as AntInputProps, InputRef } from 'antd';\nimport cc from 'classcat';\nimport { createTestId } from 'utils/helpers/create-test-id';\nimport './index.less';\n\nexport type InputProps = AntInputProps & {\n label?: string;\n};\n\nexport const Input = forwardRef(\n (\n { label, className, ...props }: InputProps,\n ref: ForwardedRef\n ): ReactElement => {\n return (\n
\n {!!label &&
{label}
}\n \n
\n );\n }\n);\n","import cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\n\ntype TLivePrematchTabsSkeletonProps = {\n fullWidth?: boolean;\n activeItem: number | string;\n className?: string;\n};\n\nexport const LivePrematchTabsSkeleton = ({\n fullWidth,\n className,\n activeItem\n}: TLivePrematchTabsSkeletonProps) => {\n return (\n \n
\n \n \n
\n \n \n \n \n \n );\n};\n","import { createContext, memo, ReactElement, Suspense } from 'react';\nimport { lazy } from 'utils/generic/lazy';\nimport { MenuItem } from 'interfaces/generic';\nimport { IMenuGroupWithSports } from 'interfaces/sportsbook-data-levels';\nimport { MenuFillSkeleton } from './layouts/fill/skeleton';\nimport { MenuUnderlineSkeleton } from './layouts/underline/skeleton';\n\nexport type TMenuProps = {\n layout: 'underline' | 'fill';\n items: MenuItem[] | null;\n sportsMenuItems?: (JSX.Element | JSX.Element[])[];\n groupItems?: IMenuGroupWithSports[] | null;\n selectedItem: MenuItem | null | undefined;\n onSelectItem: (arg0: MenuItem | IMenuGroupWithSports) => void;\n toggleGroupState?: (group: IMenuGroupWithSports) => void;\n FavMenuItem?: ReactElement | null;\n scrollAllToLeft?: boolean;\n orderIsLoading?: boolean;\n applyFavorite?: boolean;\n};\n\nconst { MenuUnderline } = lazy(() => import('./layouts/underline'));\nconst { MenuFill } = lazy(() => import('./layouts/fill'));\n\nconst LAYOUTS = {\n underline: {\n view: MenuUnderline,\n skeleton: MenuUnderlineSkeleton\n },\n fill: {\n view: MenuFill,\n skeleton: MenuFillSkeleton\n }\n};\n\nexport const MenuContext = createContext>({\n items: [],\n groupItems: [],\n selectedItem: null,\n sportsMenuItems: [],\n onSelectItem: () => {},\n toggleGroupState: () => {}\n});\n\nexport const Menu = memo(\n ({\n FavMenuItem,\n layout,\n items,\n groupItems = null,\n selectedItem,\n onSelectItem,\n orderIsLoading,\n toggleGroupState,\n sportsMenuItems\n }: TMenuProps): ReactElement => {\n const Layout = LAYOUTS[layout];\n\n return (\n \n {(items?.length || groupItems?.length) && !orderIsLoading ? (\n }>\n \n \n ) : (\n \n )}\n \n );\n }\n);\n","import { ReactElement } from 'react';\nimport cc from 'classcat';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\nconst MENU_FILL_SKELETON = 15;\n\ntype TMenuFillSkeletonProps = {\n withMenuWrapper?: boolean;\n};\n\nexport const MenuFillSkeleton = ({\n withMenuWrapper = true\n}: TMenuFillSkeletonProps): ReactElement => {\n return (\n {\n return (\n \n {children}\n \n );\n }}\n >\n
\n {createArray(MENU_FILL_SKELETON).map(key => (\n \n \n
\n ))}\n \n \n );\n};\n","import {\n CSSProperties,\n Fragment,\n ReactElement,\n ReactNode,\n SyntheticEvent,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport cc from 'classcat';\nimport SwiperCore, { Autoplay, Grid, Navigation, Pagination } from 'swiper';\nimport 'swiper/css';\nimport 'swiper/css/grid';\nimport { Swiper, SwiperRef, SwiperSlide } from 'swiper/react';\nimport 'theme/swiper.css';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { timeoutDuration } from 'utils/constants/dateInfo/time-numbers';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Portal } from 'components/Shared/Portal';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TSwiperSliderProps = {\n delay?: number;\n autoplay?: boolean;\n activeSlide: number;\n bodyArrows?: boolean;\n headerTitle?: string | ReactNode;\n headerArrows?: boolean;\n slideClassName?: string;\n showIndicators?: boolean;\n sliderClassName?: string;\n disableSwiping?: boolean;\n drawableTabs: ReactNode[];\n arrowsPortalId?: string | null;\n sliderWrapperClassName?: string;\n interactiveIndicators?: boolean;\n indicatorsCustomClassName?: string;\n slidesPerView?: number | 'auto' | undefined;\n loop?: boolean;\n style?: CSSProperties;\n spaceBetween?: number;\n rows?: number;\n fetchOnProgress?: {\n point: number;\n callback: () => void;\n };\n alwaysShowArrows?: boolean;\n slideOnHover?: boolean;\n notToWatchIsEnd?: boolean;\n};\n\nSwiperCore.use([Navigation, Autoplay, Pagination]);\n\nconst SWIPER_AUTOPLAY_DELAY = 1000;\nconst UNIQUE_CLASS_STRINGIFY_RADIX = 36;\nconst UNIQUE_CLASS_CUT_START_POINT = 7;\nconst getSliderSelectorClassName = (id: string | null) =>\n id ? `SLIDER_SELECTOR_${id}` : null;\n\nconst getSlideSelectorClassName = (id: string | null) =>\n id ? `SLIDE_SELECTOR_${id}` : '';\n\nexport const SwiperSlider = ({\n delay,\n autoplay,\n bodyArrows,\n headerTitle,\n activeSlide,\n headerArrows,\n drawableTabs,\n slidesPerView,\n showIndicators,\n slideClassName = '',\n sliderClassName = '',\n arrowsPortalId = null,\n disableSwiping = false,\n interactiveIndicators = false,\n indicatorsCustomClassName = '',\n loop = false,\n sliderWrapperClassName = '',\n style,\n spaceBetween,\n rows = 1,\n fetchOnProgress,\n alwaysShowArrows,\n slideOnHover = false,\n notToWatchIsEnd = false\n}: TSwiperSliderProps) => {\n const [isEnd, setIsEnd] = useState(false);\n const sliderRef = useRef(null);\n const [activeIndex, setActiveIndex] = useState(0);\n const containerRef = useRef(null);\n const bodyArrowRef = useRef(null);\n const [isArrowsNeeded, setIsArrowsNeeded] = useState(true);\n const [isSlidesRendered, setIsSlidesRendered] = useState(false);\n\n const sliderId = useRef(RidGenerator.gCustom());\n const intervalRef = useRef(null);\n\n useLayoutEffect(() => {\n const items =\n containerRef.current?.querySelector('.swiper-wrapper')?.childNodes;\n\n if (items) {\n const changeSize = () => {\n const containerWidth = containerRef.current?.clientWidth || 0;\n\n let visibleItemsCount = 0;\n let totalWidth = 0;\n\n for (let i = 0; i < items.length; i++) {\n const itemWidth = (items[i] as HTMLElement)?.offsetWidth;\n\n if (totalWidth + itemWidth > containerWidth) {\n break;\n }\n\n visibleItemsCount++;\n totalWidth += itemWidth;\n }\n\n setIsArrowsNeeded(drawableTabs.length > visibleItemsCount);\n };\n\n changeSize();\n window.addEventListener('resize', changeSize);\n\n return () => {\n window.removeEventListener('resize', changeSize);\n };\n }\n }, [drawableTabs.length]);\n\n useEffect(() => {\n if (sliderRef.current?.swiper && activeSlide) {\n sliderRef.current.swiper.slideTo(activeSlide, 0);\n setActiveIndex(activeSlide);\n }\n }, [activeSlide]);\n\n const paginationUniqueClass = useMemo(() => {\n return `swiper-pagination-${(Math.random() + 1)\n .toString(UNIQUE_CLASS_STRINGIFY_RADIX)\n .substring(UNIQUE_CLASS_CUT_START_POINT)}`;\n }, []);\n\n const handlePrevClick = (e: SyntheticEvent) => {\n e.stopPropagation();\n\n if (sliderRef.current?.swiper) {\n sliderRef.current.swiper.slidePrev();\n }\n };\n\n const handleNextClick = (e: SyntheticEvent) => {\n e.stopPropagation();\n\n if (sliderRef.current?.swiper) {\n sliderRef.current.swiper.slideNext();\n\n if (!notToWatchIsEnd) {\n setIsEnd(sliderRef.current.swiper.isEnd);\n }\n }\n };\n\n const handleSwiperInit = useCallback((swiper: SwiperCore) => {\n if (!notToWatchIsEnd) {\n setIsEnd(swiper.isEnd);\n }\n }, []);\n\n useEffect(() => {\n setIsSlidesRendered(true);\n\n return () => {\n setIsSlidesRendered(false);\n\n sliderRef.current?.swiper?.updateSlides();\n };\n }, [drawableTabs]);\n\n const slides = useMemo(() => {\n if (!drawableTabs || !drawableTabs.length) {\n return [];\n }\n\n const shouldDuplicateSlidesCount =\n isSlidesRendered && slidesPerView === 'auto' && autoplay;\n\n if (!shouldDuplicateSlidesCount) {\n return drawableTabs;\n }\n\n const slide = document.querySelector(\n `.${getSlideSelectorClassName(sliderId.current)}`\n );\n\n const slider = document.querySelector(\n `.${getSliderSelectorClassName(sliderId.current)}`\n );\n\n if (slide && slider) {\n const slideWidth = slide.getClientRects()[0]?.width;\n const sliderWidth = slider.getClientRects()[0]?.width;\n\n const slidePeerView = Math.floor(sliderWidth / slideWidth);\n\n if (\n ((autoplay || loop) &&\n slidesPerView === 'auto' &&\n drawableTabs.length > slidePeerView) ||\n (drawableTabs.length > slidePeerView &&\n drawableTabs.length < slidePeerView * 2)\n ) {\n return [...drawableTabs, ...drawableTabs].map((node, index) => (\n {node}\n ));\n }\n }\n\n return drawableTabs;\n }, [\n autoplay,\n drawableTabs,\n slidesPerView,\n isSlidesRendered,\n sliderId.current\n ]);\n\n const handleSlideChange = useCallback((swiper: SwiperCore) => {\n if (!notToWatchIsEnd) {\n setIsEnd(swiper.isEnd);\n }\n\n setActiveIndex(swiper.activeIndex);\n }, []);\n\n const ArrowsWrapper = useCallback(\n ({ children }: { children: ReactElement }) =>\n arrowsPortalId ? (\n {children}\n ) : (\n children\n ),\n [arrowsPortalId]\n );\n\n const handleHoverPrev = (e: SyntheticEvent) => {\n handlePrevClick(e);\n intervalRef.current = setInterval(() => {\n handlePrevClick(e);\n }, timeoutDuration.DURATION_1000);\n };\n\n const handleHoverNext = (e: SyntheticEvent) => {\n handleNextClick(e);\n intervalRef.current = setInterval(() => {\n handleNextClick(e);\n }, timeoutDuration.DURATION_1000);\n };\n\n const handleMouseLeave = () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n\n const isLeftArrowDisabled = autoplay || loop ? false : activeIndex === 0;\n const isRightArrowDisabled =\n autoplay || loop ? false : sliderRef?.current?.swiper?.isEnd || isEnd;\n\n return (\n {\n if (\n !SpringConfigs?.CAROUSEL_ARROWS &&\n bodyArrowRef.current &&\n !alwaysShowArrows\n ) {\n bodyArrowRef.current.style.display = 'block';\n }\n }}\n onMouseOut={() => {\n if (\n !SpringConfigs?.CAROUSEL_ARROWS &&\n bodyArrowRef.current &&\n !alwaysShowArrows\n ) {\n bodyArrowRef.current.style.display = 'none';\n }\n }}\n >\n {headerArrows ? (\n
\n

{headerTitle}

\n {(alwaysShowArrows || isArrowsNeeded) && (\n
\n \n \n \n\n \n \n \n
\n )}\n
\n ) : null}\n\n
\n {bodyArrows && (alwaysShowArrows || isArrowsNeeded) && (\n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n )}\n\n {\n if (\n fetchOnProgress?.point &&\n +val.progress.toFixed(2) > fetchOnProgress.point\n ) {\n fetchOnProgress?.callback();\n }\n }}\n >\n {slides?.map((item, index) => {\n return (\n \n
{item}
\n \n );\n })}\n \n \n {showIndicators && (\n \n )}\n \n );\n};\n","import { createContext, ReactElement, useContext } from 'react';\nimport { TEventsConfigs } from 'interfaces/events';\n\ntype TEventsConfigsWithComponentId = TEventsConfigs & { componentId: string };\n\nexport type TEventsConfigsContext = TEventsConfigsWithComponentId | null;\n\ntype TConfigsProviderProps = {\n configs: TEventsConfigsWithComponentId;\n children: ReactElement | ReactElement[];\n};\n\nconst EventsConfigsContext = createContext(null);\n\nexport const EventsConfigsProvider = ({\n configs,\n children\n}: TConfigsProviderProps): ReactElement => {\n return (\n \n {children}\n \n );\n};\n\nexport const useEventsConfigs = (): TEventsConfigsContext => {\n return useContext(EventsConfigsContext);\n};\n","import { FC } from 'react';\nimport { SearchBarSkeleton } from 'newelements/SearchElement/partials/components/SearchBar/Skeleton';\nimport './index.less';\n\nexport const SearchElementSkeleton: FC = () => {\n return (\n
\n \n
\n );\n};\n","import { ComponentProps, FC, Suspense, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { lazy } from 'utils/generic/lazy';\nimport { SearchElementSkeleton } from 'newelements/SearchElement/Skeleton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Popup } from 'components/Popup';\nimport { useCalculateBetslipFixedSwitchersHeight } from 'hooks/betslip/useCalculateBetslipFixedSwitchersHeight';\nimport { isMobile } from '../../utils/is-mobile';\n\nconst { SearchElementComponent } = lazy(\n () =>\n import(\n /* webpackChunkName: \"search-element-internal-lazy-component\" */ './Component'\n )\n);\n\nexport const SearchElement: FC<\n ComponentProps\n> = props => {\n const { t } = useTranslation();\n const [openPopup, setOpenPopup] = useState(false);\n const bottomNavigationHeight = useCalculateBetslipFixedSwitchersHeight();\n\n return props.configs?.searchLayout && isMobile() ? (\n <>\n
\n {\n setOpenPopup(true);\n }}\n />\n
\n {openPopup && (\n \n
\n
{t('account.search')}
\n {\n setOpenPopup(false);\n }}\n >\n {t('account.close')}\n \n
\n }>\n \n \n \n )}\n \n ) : (\n }>\n \n \n );\n};\n","import { FC } from 'react';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const SearchBarSkeleton: FC = () => {\n return (\n
\n \n \n \n \n
\n );\n};\n","import { NewCasinoGameBackend } from 'interfaces/new-casino';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\n\nexport type TSportsGames = Sport[];\nexport type TSportsGamesState = TSportsGames | null;\n\nexport type TSportsGamesResponse = {\n data: { sport: Record | null };\n};\n\nexport type TCasinoGamesResponse = [string, NewCasinoGameBackend][];\n\nexport enum ESearchElementSearchType {\n ALL = 'all',\n SPORT = 'sport',\n CASINO = 'casino',\n ESPORT = 'esport',\n RACING = 'racing'\n}\n\nexport type TSearchActions = {\n name?: string;\n gameId: number;\n region?: string;\n eSport?: boolean;\n gameDate: number;\n sportType: string;\n team1_name: string;\n team2_name: string;\n gamesStatus: string;\n competitionId?: number;\n sportTypeAlias: string;\n competitionName: string;\n};\n\nexport type TSearchSelectedSport = {\n alias: string;\n name: string;\n type: number;\n id?: number | string;\n} | null;\n\nexport enum ESearchElementEventBusActionTypes {\n CLOSE = 'searchElementClose',\n RESET = 'searchElementReset'\n}\n","import { ReactElement } from 'react';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const TitleSkeleton = (\n \n);\n\nexport const CountSkeleton = (\n \n);\n\nexport const SportTitleSkeleton = (): ReactElement => {\n return (\n
\n
\n {TitleSkeleton}\n
\n
\n );\n};\n","import { ReactElement, Suspense, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n competitions,\n gameSportcastId,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy as lazyImport } from 'utils/generic/lazy';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport {\n createGetSportDataWhereObj,\n TPrematchCategoryTypes\n} from 'newelements/Sportsbook/helpers';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { RegionSkeleton } from 'components/UI/Skeletons/RegionSkeleton';\nimport { NavigationCollapseWrapper } from 'newcomponents/Shared/sportsbook/NavigationCollapseWrapper';\nimport { useGetUserSportOrder } from 'hooks/sportsbook/useGetUserSportOrder';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport {\n setShowNoItemWrapper,\n setSwarmResponse\n} from 'store/actions/new-sportsbook';\nimport {\n getSwarmResponse,\n getUserSportOrder\n} from 'store/selectors/new-sportsbook';\nimport {\n getBoostedOddsIds,\n getMultipleSelectionsCompIds,\n getTimeFiltersData\n} from 'store/selectors/sport-data';\n\nconst { CouponLevelNavigation } = lazyImport(\n () =>\n import(\n /* webpackChunkName: \"coupon-level-navigation\" */ 'newcomponents/Shared/sportsbook/NavigationCollapseWrapper/CouponLevelNavigation'\n )\n);\n\nexport const CategoriesNavigation = ({\n category\n}: {\n category: TPrematchCategoryTypes;\n}): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const { t } = useTranslation();\n\n const timeStamp = useSelector(getTimeFiltersData);\n const categoryData = useSelector(getSwarmResponse)?.[category];\n const multipleSelectionsIds = useSelector(getMultipleSelectionsCompIds);\n const boostedOddsIds = useSelector(getBoostedOddsIds);\n const { orderSports, orderIsLoading } = useGetUserSportOrder();\n const userSportOrder = useSelector(getUserSportOrder);\n\n useEffect(() => {\n let shouldUnsubscribe = false;\n\n if (!category) {\n return;\n }\n\n if (category === ENotRealSports.boostedOdds && !boostedOddsIds) {\n return;\n } else if (\n category === ENotRealSports.multiples &&\n !multipleSelectionsIds\n ) {\n return;\n }\n\n if (\n category === ENotRealSports.multiples &&\n multipleSelectionsIds?.size === 0\n ) {\n dispatch(setSwarmResponse({ [category]: {} }));\n }\n\n shouldUnsubscribe = true;\n\n const rid = RidGenerator.gForSubscribe(`Prematch_${category}`);\n\n const where = createGetSportDataWhereObj(\n '',\n category,\n configs.sportType,\n Array.from(multipleSelectionsIds || []),\n boostedOddsIds\n );\n\n const relations: Record = {\n ...regions,\n ...competitions,\n ...sports\n };\n\n if (category === ENotRealSports.topLeague) {\n relations.competition.push('favorite_order');\n } else if (category === ENotRealSports.betBuilder) {\n relations.game = gameSportcastId;\n }\n\n if (\n (category || SpringConfigs.MOCKED_DATA) &&\n category !== ENotRealSports.coupon\n ) {\n const handleResponseSportsData = (data: {\n sport: Record;\n }) => {\n if (mounted.current && data.sport) {\n dispatch(setSwarmResponse({ [category]: data.sport }));\n }\n\n if (!Object.keys(data.sport).length) {\n dispatch(\n setShowNoItemWrapper({\n game: true,\n competitions: true,\n regions: true\n })\n );\n }\n };\n\n executeCommand(\n rid,\n relations,\n where,\n handleResponseSportsData,\n true,\n handleResponseSportsData\n );\n }\n\n return () => {\n if (shouldUnsubscribe) {\n unsubscribeCommand(rid);\n }\n };\n }, [category, boostedOddsIds, multipleSelectionsIds, timeStamp]);\n\n const orderedData = useMemo(() => {\n return categoryData && sortByOrder(Object.values(categoryData));\n }, [categoryData]);\n\n useEffect(() => {\n if (\n (category === ENotRealSports.topLeague ||\n category === ENotRealSports.topMatches ||\n category === ENotRealSports.olympicCompetition) &&\n categoryData &&\n !Object.values(categoryData).length\n ) {\n dispatch(setShowNoItemWrapper({ competitions: true, game: true }));\n }\n }, [categoryData, category]);\n\n const orderedSportData = useMemo(() => {\n return orderedData\n ? orderSports(JSON.parse(JSON.stringify(orderedData)))\n : orderedData;\n }, [userSportOrder, orderedData]);\n\n if (orderedSportData && Object.keys(orderedSportData).length === 0) {\n if (ENotRealSports.multiples) {\n return (\n \n );\n }\n\n return ;\n }\n\n if (orderedData && !orderIsLoading) {\n return (\n \n );\n }\n\n if (category === ENotRealSports.coupon) {\n return (\n }>\n \n \n );\n }\n\n return ;\n};\n","import { ReactElement, ReactNode } from 'react';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport { TimeFilter } from 'components/Shared/TimeFilter';\nimport { TimeFilterSkeleton } from 'components/Shared/TimeFilter/Skeleton';\n\ntype TProps = {\n title: ReactNode;\n isLoading?: boolean;\n sport?: string;\n showSortButton?: boolean;\n};\n\nexport const TimeFilterWrapper = ({\n title,\n isLoading,\n sport,\n showSortButton\n}: TProps): ReactElement => {\n return (\n
\n {isLoading ? (\n \n ) : (\n \n )}\n
\n );\n};\n","import { ReactElement, SyntheticEvent, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { NOT_REAL_SPORTS } from 'utils/constants/sportsbook/sportsbook-data-hierarchy';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { TimeFilterWrapper } from './TimeFilterWrapper';\nimport { SportsFavoriteButton } from 'newcomponents/UI/Menu/components/FavoriteButton';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsFavoriteClickHandler } from 'hooks/favorite/useSportsFavoriteClickHandler';\nimport { clearAllFavorite } from 'store/actions';\nimport { getFavoriteEntitiesCount } from 'store/selectors/fav-data';\nimport { getSportsbookSelectedSport } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nif (SpringConfigs.IS_RTL) {\n import('./rtl.less');\n}\n\ntype TSportsHeaderProps = {\n sportAlias: string;\n externalTitle?: string;\n showTimeFilter?: boolean;\n showFavoriteButton?: boolean;\n};\n\nexport const SportsHeader = ({\n sportAlias,\n externalTitle,\n showFavoriteButton,\n showTimeFilter = true\n}: TSportsHeaderProps): ReactElement => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const selectedSport = useSelector(getSportsbookSelectedSport);\n const sportsFavoriteClickHandler = useSportsFavoriteClickHandler();\n const favoritesCount = useSelector(\n getFavoriteEntitiesCount\n ).sportsWithCompetitions;\n\n const showClearAllButton = !!(\n (sportAlias === 'favorite' || sportAlias === 'favourites') &&\n favoritesCount\n );\n\n const shouldShowTimeFilter =\n showTimeFilter && !NOT_REAL_SPORTS.includes(sportAlias);\n\n const isLoading = !externalTitle && !selectedSport;\n\n const clearAllFavorites = (e: SyntheticEvent) => {\n e.stopPropagation();\n dispatch(clearAllFavorite('sports'));\n dispatch(clearAllFavorite('competitions'));\n };\n\n const title = useMemo(() => {\n if (externalTitle) {\n return externalTitle;\n }\n\n if (selectedSport) {\n const gameCount = isMobile()\n ? selectedSport.game || selectedSport.gameCount\n : 0;\n\n return `${selectedSport?.name} ${gameCount ? `(${gameCount})` : ''} `;\n }\n }, [selectedSport, externalTitle]);\n\n if (shouldShowTimeFilter) {\n return (\n \n );\n }\n\n return (\n
\n
\n \n {selectedSport && showFavoriteButton && (\n \n )}\n {title || (\n \n )}\n \n {showClearAllButton && (\n \n {t('sportsbook.clearAll')}\n \n )}\n
\n
\n );\n};\n","import { ReactElement, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { competitions, regions } from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport { Region } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { RegionSkeleton } from 'components/UI/Skeletons/RegionSkeleton';\nimport { NavigationCollapseWrapper } from 'newcomponents/Shared/sportsbook/NavigationCollapseWrapper';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport {\n setRegionCompData,\n setShowNoItemWrapper\n} from 'store/actions/new-sportsbook';\nimport { getRegionCompData } from 'store/selectors/new-sportsbook';\nimport { getTimeFiltersData } from 'store/selectors/sport-data';\n\nexport const SportsNavigation = ({\n sportAlias\n}: {\n sportAlias: string;\n}): ReactElement => {\n const configs = useSportsbookConfigs();\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const { t } = useTranslation();\n\n const timeStamp = useSelector(getTimeFiltersData);\n const regionCompData = useSelector(getRegionCompData)?.[sportAlias];\n\n useEffect(() => {\n let shouldUnsubscribe = false;\n\n if (!sportAlias && !SpringConfigs.MOCKED_DATA) {\n return;\n }\n\n dispatch(\n setShowNoItemWrapper({\n game: false,\n competitions: false,\n regions: false\n })\n );\n\n shouldUnsubscribe = true;\n const rid = RidGenerator.gForSubscribe(`Prematch_${sportAlias}`);\n\n const where: Record = {\n sport: {\n alias: sportAlias,\n type: {\n '@in': getLivePreMatchSportTypes(configs.sportType)\n }\n },\n game: {\n ...(configs.pageType === ESportsbookPageTypes.live\n ? { type: 1 }\n : {\n '@or': [\n { type: { '@in': [0, 2] } },\n {\n visible_in_prematch: 1\n }\n ]\n })\n }\n };\n\n const relations: Record = {\n ...regions,\n ...competitions\n };\n\n const hasTimeStamp = timeStamp && Object.keys(timeStamp).length > 0;\n\n if (hasTimeStamp) {\n where.game.start_ts = timeStamp;\n }\n\n if (sportAlias || SpringConfigs.MOCKED_DATA) {\n executeCommand(\n rid,\n relations,\n where,\n (data: { region: Record }) => {\n if (mounted.current && data.region) {\n if (\n isMobile() &&\n hasTimeStamp &&\n !Object.keys(data.region).length\n ) {\n return;\n }\n\n if (!Object.keys(data.region).length) {\n dispatch(\n setShowNoItemWrapper({\n game: true,\n competitions: true,\n regions: true\n })\n );\n }\n\n dispatch(setRegionCompData({ [sportAlias]: data.region }));\n }\n },\n true,\n (data: { region: Record }) => {\n if (mounted.current && data.region) {\n if (hasTimeStamp && !Object.keys(data.region).length) {\n return;\n }\n\n dispatch(setRegionCompData({ [sportAlias]: data.region }));\n }\n }\n );\n }\n\n return () => {\n if (shouldUnsubscribe) {\n unsubscribeCommand(rid);\n }\n };\n }, [sportAlias, timeStamp]);\n\n const orderedData = useMemo(() => {\n return regionCompData && sortByOrder(Object.values(regionCompData));\n }, [regionCompData]);\n\n if (!orderedData) {\n return ;\n }\n\n if (!Object.keys(orderedData || {}).length) {\n return ;\n }\n\n return (\n \n );\n};\n","import {\n createTodayEventsWhere,\n gameSportcastIdWhere,\n topLeaguesWhere,\n topMatchesWhere\n} from 'utils/constants/sportsbook/data-fields';\nimport { FAVORITE_TEAM_SPORT } from 'utils/constants/sportsbook/favorite-team';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\n\nexport type TPrematchCategoryTypes =\n | 'topLeague'\n | 'outright'\n | 'multiples'\n | 'todayEvents'\n | 'team'\n | 'boostedOdds'\n | 'betBuilder'\n | 'coupon'\n | 'topMatches'\n | 'olympicCompetition';\n\ntype TQueryType = {\n sportAlias: string;\n boostedGameIDs?: number[] | null | undefined;\n};\n\n/*eslint no-magic-numbers:*/\nexport const createGetSportDataWhereObj = (\n sportAlias: string,\n category?: TPrematchCategoryTypes,\n sportTypes?: string,\n multipleSelectionsCompIds?: number[],\n boostedGameIDs?: number[] | null\n): Record => {\n const queries: {\n [key: string]: ({ sportAlias }: TQueryType) => any;\n } = {\n [ENotRealSports.topLeague]: ({ sportAlias }: TQueryType) => {\n return {\n ...topLeaguesWhere,\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n },\n ...(sportAlias && { alias: sportAlias })\n }\n };\n },\n [ENotRealSports.olympicCompetition]: () => {\n return {\n game: {\n '@or': [\n {\n type: { '@in': [0, 2] }\n },\n {\n visible_in_prematch: 1,\n type: 1\n }\n ]\n },\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n }\n },\n competition: { info: { is_olympic: true } }\n };\n },\n [ENotRealSports.outright]: ({ sportAlias }: TQueryType) => {\n return {\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n },\n ...(sportAlias && { alias: sportAlias })\n },\n game: {\n '@or': [\n { type: { '@in': [0, 2] } },\n { visible_in_prematch: 1, type: 1 }\n ],\n show_type: 'OUTRIGHT'\n }\n };\n },\n [ENotRealSports.todayEvents]: ({ sportAlias }: TQueryType) => {\n return {\n ...createTodayEventsWhere(),\n sport: {\n ...(sportAlias && { alias: sportAlias }),\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n }\n }\n };\n },\n [ENotRealSports.topMatches]: ({ sportAlias }: TQueryType) => {\n return {\n ...topMatchesWhere,\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n },\n ...(sportAlias && { alias: sportAlias })\n }\n };\n },\n [ENotRealSports.betBuilder]: ({ sportAlias }: TQueryType) => {\n return {\n game: {\n '@or': [\n {\n type: { '@in': [0, 2] }\n },\n {\n visible_in_prematch: 1,\n type: 1\n }\n ],\n sportcast_id: gameSportcastIdWhere\n },\n sport: {\n ...(sportAlias && { alias: sportAlias }),\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n }\n }\n };\n },\n [ENotRealSports.boostedOdds]: ({\n sportAlias,\n boostedGameIDs\n }: TQueryType) => {\n return {\n game: {\n type: {\n '@in': [0, 2]\n },\n id: {\n '@in': boostedGameIDs\n }\n },\n ...(sportAlias && {\n sport: {\n alias: sportAlias\n }\n })\n };\n },\n [ENotRealSports.multiples]: () => {\n return {\n competition: {\n id: { '@in': multipleSelectionsCompIds }\n }\n };\n },\n [ENotRealSports.team]: ({ sportAlias }: TQueryType) => {\n return {\n game: {\n '@or': [\n {\n team1_id: +(sportAlias || -1)\n },\n {\n team2_id: +(sportAlias || -1)\n }\n ]\n },\n sport: {\n alias: FAVORITE_TEAM_SPORT\n }\n };\n },\n default: ({ sportAlias }: TQueryType) => {\n return {\n game: {\n '@or': [\n {\n type: { '@in': [0, 2] }\n },\n {\n visible_in_prematch: 1,\n type: 1\n }\n ]\n },\n sport: {\n ...(sportAlias && { alias: sportAlias }),\n type: {\n '@in': getLivePreMatchSportTypes(sportTypes)\n }\n }\n };\n }\n };\n\n if (!category || (category && !queries[category])) {\n return queries.default({ sportAlias, boostedGameIDs });\n }\n\n return queries[category]({ sportAlias, boostedGameIDs });\n};\n\nexport const createGetGamesWhereObj = (\n sportAlias: string,\n selectedCompetitions: number[],\n favoriteTeamId: string,\n boostedGameIDs?: number[],\n isBetBuilder?: boolean,\n isTopMatches?: boolean\n): Record => {\n const markets = {\n market: {\n '@or': [\n {\n type: {\n '@in': [\n 'P1P2',\n 'P1XP2',\n 'MatchResult',\n 'MatchWinner',\n '1X12X2',\n 'BothTeamsToScore',\n 'DrawNoBet',\n 'EvenOddTotal',\n 'MatchOddEvenTotal',\n 'MatchTotal',\n 'TotalGamesOver/Under',\n 'TotalofSets',\n 'CorrectScore',\n 'HalfTimeFullTime',\n 'BoutBetting',\n 'Handicap',\n 'TotalGoalsOver/Under',\n 'TotalRounds',\n 'Over/Under',\n 'Handicap(NoDraw)',\n 'TotalPointsOver/Under',\n 'TriesHandicap',\n 'GamesHandicap',\n 'GamesTotal',\n 'MapsHandicap',\n 'MapsTotal',\n 'MatchTotal2',\n 'MatchTotal2Asian',\n 'MatchHandicap2',\n 'MatchHandicap2Asian'\n ]\n }\n },\n {\n type: 'AsianHandicap',\n main_order: {\n '@in': [1, 2, 3, 4]\n }\n },\n {\n type: 'AsianHandicapAsian',\n main_order: {\n '@in': [1, 2, 3, 4]\n }\n },\n {\n type: 'MatchHandicap',\n main_order: {\n '@in': [1, 2, 3, 4]\n }\n },\n {\n type: 'OverUnder',\n main_order: {\n '@in': [1, 2, 3, 4]\n }\n },\n {\n type: 'OverUnderAsian',\n main_order: {\n '@in': [1, 2, 3, 4]\n }\n },\n {\n type: 'OverUnder',\n base: {\n '@in': [2.5]\n }\n },\n {\n type: 'OverUnderAsian',\n base: {\n '@in': [2.5]\n }\n },\n {\n display_key: 'OUTRIGHT'\n },\n {\n type: 'Winner'\n },\n {\n type: 'TrapWinner'\n },\n {\n display_key: {\n '@in': [\n 'WINNER',\n 'HANDICAP',\n 'TOTALS',\n 'DOUBLE CHANCE',\n 'BOTHTEAMTOSCORE'\n ]\n }\n }\n ]\n }\n };\n\n if (favoriteTeamId) {\n return {\n ...markets,\n game: {\n '@or': [\n {\n team1_id: +favoriteTeamId\n },\n {\n team2_id: +favoriteTeamId\n }\n ]\n },\n sport: {\n alias: FAVORITE_TEAM_SPORT\n },\n competition: {\n id: {\n '@in': selectedCompetitions\n }\n }\n };\n }\n\n const where: {\n [key: string]: any;\n } = {\n sport: {\n alias: sportAlias\n },\n competition: {\n id: {\n '@in': selectedCompetitions\n }\n },\n ...markets,\n game: {}\n };\n\n if (boostedGameIDs?.length) {\n where.game = {\n type: {\n '@in': [0, 2]\n },\n id: {\n '@in': boostedGameIDs\n }\n };\n } else {\n where.game = {\n '@or': [\n {\n type: {\n '@in': [0, 2]\n }\n },\n {\n visible_in_prematch: 1,\n type: 1\n }\n ]\n };\n }\n\n if (isBetBuilder) {\n where.game.sportcast_id = gameSportcastIdWhere;\n }\n\n if (isTopMatches) {\n where.game.promoted = true;\n }\n\n return where;\n};\n","import { ReactElement, Suspense, SyntheticEvent } from 'react';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { Competition } from 'interfaces/sportsbook-data-levels';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\n\nconst { MatchCardInline } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-in-line\" */ 'components/MatchCardInline'\n )\n);\n\nconst { MatchCardInlineUSA } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-in-line-usa\" */ 'components/Shared/MatchCardInlineUSA'\n )\n);\n\ntype TCompetitionItemCollapseProps = {\n comp: Competition;\n regionAlias: string;\n sportInfo: {\n name: string;\n alias: string;\n };\n handleMatchCardClick: (\n e: SyntheticEvent,\n region: string,\n competitionId: number,\n gameId: number\n ) => void;\n isFirstCompetition: boolean;\n isBoostedOdd?: boolean;\n};\n\nexport const CompetitionItemCollapse = ({\n comp,\n regionAlias,\n sportInfo,\n handleMatchCardClick,\n isFirstCompetition,\n isBoostedOdd\n}: TCompetitionItemCollapseProps): ReactElement => {\n const configs = useSportsbookConfigs();\n\n const collapseDefaultActive =\n !Number(SpringConfigs.SPORT_COMPETITION_IS_COMPACT) && isFirstCompetition;\n\n return (\n \n \n {comp.name}\n \n }\n >\n
\n {sortByOrder(Object.values(comp.game || {}), 'start_ts').map(game =>\n SpringConfigs.IS_AMERICAN_LAYOUT || +configs.spbLayoutType === 1 ? (\n } key={game.id}>\n \n handleMatchCardClick(e, regionAlias, comp.id, game.id)\n }\n includeRedirect={false}\n withMoreWagesWrapper\n showFavoriteButton\n showBBIcon\n detailedTeamsInfo\n />\n \n ) : (\n }\n key={game.id}\n >\n \n handleMatchCardClick(\n e as SyntheticEvent,\n regionAlias,\n comp.id,\n game.id\n )\n }\n />\n \n )\n )}\n
\n \n );\n};\n","import { ReactElement, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { filterSportDataByGameStartTsRange } from 'utils/sportsbook/filterSportDataByGameStartTsRange';\nimport { AdvancedSportsContent } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedSportsContent';\nimport { ADVANCED_LEFT_MENU_SHOW_EVENTS_BUTTON_ID } from 'newelements/Sportsbook/layouts/advanced/Desktop/index';\nimport { useGetAdvancedSportsMainData } from 'newelements/Sportsbook/layouts/advanced/helpers/useGetAdvancedSportsMainData';\nimport { RegionSkeleton } from 'components/UI/Skeletons/RegionSkeleton';\nimport { useGetUserSportOrder } from 'hooks/sportsbook/useGetUserSportOrder';\nimport { setAdvancedTempCompetitionIds } from 'store/actions/new-sportsbook';\nimport {\n getAdvancedSelectedRangeFilter,\n getAdvancedTempCompetitionIds,\n getSportsbookSelectedSport,\n getSwarmResponse\n} from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nexport const ADVANCED_LEFT_MENU_DATA_REDUX_KEY = 'advancedAllSports';\n\nexport const AdvancedLeftMenu = (): ReactElement => {\n const { t } = useTranslation();\n const dispatch = useDispatch();\n\n const mainSportsMenuSelectedSport = useSelector(getSportsbookSelectedSport);\n const selectedCompetitionIds = useSelector(getAdvancedTempCompetitionIds);\n const selectedRange = useSelector(getAdvancedSelectedRangeFilter);\n const sportsData =\n useSelector(getSwarmResponse)?.[ADVANCED_LEFT_MENU_DATA_REDUX_KEY];\n\n const { orderSports } = useGetUserSportOrder();\n\n useGetAdvancedSportsMainData();\n\n const orderedSports = useMemo(() => {\n if (sportsData) {\n let filteredData = sportsData;\n\n if (mainSportsMenuSelectedSport?.id && selectedRange?.ranges) {\n const selectedSportData = sportsData[mainSportsMenuSelectedSport.id];\n const currentSportFilteredData = filterSportDataByGameStartTsRange(\n { [mainSportsMenuSelectedSport.id]: selectedSportData },\n selectedRange.ranges\n );\n\n filteredData = {\n ...filteredData,\n ...currentSportFilteredData\n };\n }\n\n const sportsOrderedData = sortByOrder(Object.values(filteredData));\n\n return orderSports(sportsOrderedData);\n }\n\n return null;\n }, [\n sportsData,\n orderSports,\n mainSportsMenuSelectedSport?.id,\n selectedRange?.ranges\n ]);\n\n const onClearAllClick = () => {\n dispatch(setAdvancedTempCompetitionIds([]));\n };\n\n return (\n
\n
\n {t('sportsbook.advancedMenu')}\n {selectedCompetitionIds.length ? (\n \n {t('sportsbook.clearAll')}\n \n ) : null}\n
\n {orderedSports ? (\n \n ) : (\n \n )}\n
\n );\n};\n","import { ReactElement, useMemo } from 'react';\nimport { addBetSlipEvent } from 'utils/betslip/betslip';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { BetSlipEventObj } from 'interfaces/bet-data';\nimport { GameInfo, Market } from 'interfaces/sportsbook-data-levels';\nimport { Odds } from 'components/Odds';\nimport { useOddChange } from 'hooks/useOddChange';\n\ntype TEventsRowProps = {\n market: Market;\n selectedEventIds: string[];\n gameInfo: {\n gameId: number;\n team1_name: string;\n team2_name: string;\n start_ts: number;\n sportAlias: string;\n sportName: string;\n competitionName: string;\n regionName: string;\n info: GameInfo;\n sportId?: number;\n };\n isBlocked: number;\n isLive: boolean;\n oddFormat: number;\n eventsCount?: number;\n};\n\nexport const ADVANCED_EVENTS_DEFAULT_COUNT = 3;\n\nexport const EventsRow = ({\n market,\n selectedEventIds,\n gameInfo,\n isBlocked,\n isLive,\n eventsCount,\n oddFormat\n}: TEventsRowProps): ReactElement => {\n const addToBetSlip = (eventId: string | number) => {\n const event = market?.event?.[eventId];\n\n addBetSlipEvent(\n {\n sport_id: gameInfo.sportId,\n marketType: market?.type || '',\n market: market,\n gameId: gameInfo.gameId,\n eventId: Number(eventId),\n eventBase: event?.base,\n team1: gameInfo.team1_name,\n team2: gameInfo.team2_name || '',\n coeficient: event?.price,\n event_name: event?.name || '',\n game_start_date: gameInfo.start_ts,\n sport_index: gameInfo.sportAlias,\n sport_name: gameInfo.sportName,\n competition_name: gameInfo.competitionName,\n current_game_state: gameInfo.info.current_game_state,\n current_game_time: gameInfo.info.current_game_time,\n isLive,\n region_name: gameInfo.regionName,\n market_name: market?.name || '',\n game_name: `${gameInfo.team1_name} ${\n gameInfo.team2_name ? ` - ${gameInfo.team2_name}` : ''\n }`,\n game_info: gameInfo.info,\n express_id: market?.prematch_express_id || market?.express_id\n } as BetSlipEventObj,\n true\n );\n };\n\n const { oddChangeHandler, popover, hidePopover } = useOddChange(\n () => {},\n addToBetSlip,\n selectedEventIds\n );\n\n const events = useMemo(() => {\n const marketEvents = sortByOrder(Object.values(market?.event || {}));\n\n if (!marketEvents.length) {\n return createArray(eventsCount ?? ADVANCED_EVENTS_DEFAULT_COUNT).map(\n item => ({\n id: item,\n name: '',\n coeficient: Infinity,\n type: '',\n type_1: '',\n is_blocked: 0,\n value: String(item)\n })\n );\n }\n\n return marketEvents.map(event => ({\n value: String(event.id),\n coeficient: event.price,\n order: event.order,\n name: event.name,\n base: event.base ?? false,\n type1: event.type_1 ? event.type_1 : false,\n marketType: market.market_type\n }));\n }, [market]);\n\n return (\n
\n oddChangeHandler(eventId, Number(price), sp, prevSp)}\n isLive={isLive}\n options={events}\n popover={popover}\n hidePopover={hidePopover}\n oddFormat={oddFormat}\n />\n
\n );\n};\n","import { ReactElement, useLayoutEffect, useState } from 'react';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { events, markets } from 'utils/constants/sportsbook/data-fields';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { TGameMainInfoType } from 'interfaces/sportsbook';\nimport { Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { MarketList } from 'components/MarketsList';\nimport { EmptyMarketsView } from 'components/MarketsList/EmptyMarketsView';\nimport { MarketsListOnlySkeleton } from 'components/MarketsList/MarketsListOnlySkeleton';\nimport { useMounted } from 'hooks/useMounted';\n\ntype TExpandedMarketsProps = {\n game: TGameMainInfoType;\n isLive: boolean;\n handleShowMoreClick: () => void;\n};\n\nconst EVENTS_SKELETON_COUNT = 3;\n\nexport const ExpandedMarkets = ({\n game,\n isLive,\n handleShowMoreClick\n}: TExpandedMarketsProps): ReactElement => {\n const [marketsData, setMarketsData] = useState(null);\n const { mounted } = useMounted();\n\n useLayoutEffect(() => {\n if (game.id) {\n const rId = RidGenerator.gForSubscribe(`GET_GAME_MARKETS`);\n\n const what = {\n market: markets.market,\n event: events.event\n };\n\n const where = {\n game: { id: game.id }\n };\n\n const onResponse = (data: { market: Record }) => {\n if (data && data.market && mounted.current) {\n setMarketsData(sortByOrder(Object.values(data.market)));\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }\n }, [game.id]);\n\n return (\n
\n {marketsData ? (\n marketsData.length === 0 ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n
\n );\n};\n","import cc from 'classcat';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { ADVANCED_EVENTS_DEFAULT_COUNT } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/EventsRow';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\nexport const AdvancedMatchCardSkeleton = ({ isLive }: { isLive?: boolean }) => {\n return (\n
\n
\n \n\n \n \n \n \n
\n
\n \n \n
\n
\n \n \n
\n {isLive && (\n
\n \n
\n )}\n
\n
\n
\n \n \n
\n {isLive && (\n
\n \n
\n )}\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n \n
\n {createArray(ADVANCED_EVENTS_DEFAULT_COUNT).map(item => (\n
\n {createArray(ADVANCED_EVENTS_DEFAULT_COUNT).map(odd => (\n \n ))}\n
\n ))}\n
\n
\n \n
\n \n \n );\n};\n","import { ReactElement, SyntheticEvent, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { sortMarketsByMainOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { GAME_TYPE_LIVE } from 'utils/constants/sportsbook/generic';\nimport {\n ADVANCED_CONTAINER_SIZE,\n FAVORITE_BUTTON_CONTAINER_ICON_SIZE\n} from 'utils/constants/sportsbook/magic-numbers';\nimport { MATCH_TRACKER_AVAILABLE_SPORTS } from 'utils/constants/sportsbook/match-tracker-sports';\nimport { NOTIFICATION_SUPPORTING_SPORTS } from 'utils/constants/sportsbook/notificationSupportSports';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { ADD_GAME_CARDS } from 'utils/constants/tour';\nimport { GLOBALS } from 'utils/generic/global-variables';\nimport {\n mountPoint,\n sbRedirect,\n shouldRedirect\n} from 'utils/generic/route-manipulation';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport {\n TAdvancedSelectedMarkets,\n TGameMainInfoType,\n TGameMarketsInfoType,\n TSelectedMarketTypeNames\n} from 'interfaces/sportsbook';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Game, Market } from 'interfaces/sportsbook-data-levels';\nimport { AFTER_SIGN_IN_ACTION_TYPES } from 'services/afterSignIn';\nimport { EventsRow } from './EventsRow';\nimport { ExpandedMarkets } from './ExpandedMarkets';\nimport { EventAction } from 'components/EventAction';\nimport { FavoriteButtonGame } from 'components/FavoriteButton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { saveCurrentLocation } from 'components/QueryRoute';\nimport { TeamLogo } from 'components/TeamLogo';\nimport { GameTime } from 'newcomponents/Shared/GameTime';\nimport { MatchStatistic } from 'newcomponents/Shared/sportsbook/MatchStatistic';\nimport { NotificationIcon } from 'newcomponents/Shared/sportsbook/NotificationIcon';\nimport { VideoCamIcon } from 'newcomponents/Shared/sportsbook/VideoCamIcon';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useOpenBetBuilder } from 'newhooks/sportsbook/useOpenBetBuilder';\nimport { resetMarketTypes } from 'store/actions';\nimport { getOddFormat } from 'store/selectors/betslip';\nimport './index.less';\n\nconst MAPPING: Record = {\n 0: 'first',\n 1: 'second',\n 2: 'third'\n};\n\ntype TAdvancedMatchCardProps = {\n gameGeneralInfo: TGameMainInfoType;\n selectedMarkets: TAdvancedSelectedMarkets;\n selectedEventIds: string[];\n isLiveStreamingAvailable?: boolean;\n gameMarketsInfo?: TGameMarketsInfoType;\n showSportName?: boolean;\n selectedMarketTypeNames?: TSelectedMarketTypeNames;\n};\n\nexport const AdvancedMatchCard = ({\n isLiveStreamingAvailable = true,\n gameGeneralInfo,\n gameMarketsInfo,\n selectedMarkets,\n selectedEventIds,\n showSportName,\n selectedMarketTypeNames\n}: TAdvancedMatchCardProps): ReactElement => {\n const { push } = useCustomHistory();\n const configs = useSportsbookConfigs();\n const dispatch = useDispatch();\n const { isExact } = useSbRouteMatch(\n `${mountPoint(location.pathname)}/team/:sport/:teamId?`\n );\n\n const oddFormat = useSelector(getOddFormat);\n\n const [expandedMarkets, setExpandedMarkets] = useState(false);\n\n const isLive = gameGeneralInfo.type === GAME_TYPE_LIVE;\n const sportAlias = gameGeneralInfo.sport_alias || '';\n\n const matchTrackerAvailable =\n Boolean(gameGeneralInfo.video_id) ||\n Boolean(gameGeneralInfo.video_id2) ||\n (gameGeneralInfo.sport_alias &&\n MATCH_TRACKER_AVAILABLE_SPORTS.includes(sportAlias));\n\n const availableIcons = {\n videoCam: !!isLiveStreamingAvailable,\n matchTracker: matchTrackerAvailable,\n notification:\n SpringConfigs.PUSH_NOTIFICATIONS_ENABLED &&\n NOTIFICATION_SUPPORTING_SPORTS.includes(sportAlias),\n statistics:\n SpringConfigs.STATISTICS_SWITCHER && gameGeneralInfo.is_stat_available\n };\n\n const selectedMarketsToShow: Record = useMemo(() => {\n return Object.entries(selectedMarkets).reduce(\n (acc: Record, [key, value]) => {\n acc[key] = gameMarketsInfo\n ? sortMarketsByMainOrder(Object.values(gameMarketsInfo)).find(\n market => market?.type === value\n ) || ({} as Market)\n : ({} as Market);\n\n return acc;\n },\n {}\n );\n }, [gameMarketsInfo, selectedMarkets]);\n\n const handleMatchCardClick = () => {\n if (isExact) {\n GLOBALS.sportsBook.redirectedFromFavorite = true;\n }\n\n if (configs.spbLayoutType === ESportsbookLayoutTypes.ADVANCED) {\n const redirectPath = `${mountPoint(window.getPathname())}/${sportAlias}/${\n gameGeneralInfo.regionAlias\n }/${gameGeneralInfo.competitionId}/${gameGeneralInfo.id}?${\n isLive ? `gameType=${GAME_TYPE_LIVE}` : ''\n }`;\n\n push(redirectPath);\n\n return;\n }\n\n if (\n shouldRedirect(\n isLive ? SpringConfigs.PAGE_URLS.live : SpringConfigs.PAGE_URLS.prematch\n )\n ) {\n const redirectPath = `${\n isLive ? SpringConfigs.PAGE_URLS.live : SpringConfigs.PAGE_URLS.prematch\n }/${SpringConfigs.SPORTSBOOK_MOUNT_PATH}/${sportAlias}/${\n gameGeneralInfo.regionAlias\n }/${gameGeneralInfo.competitionId}/${gameGeneralInfo.id}`.replace(\n /^\\//,\n ''\n );\n\n sbRedirect(redirectPath, false, true);\n } else {\n if (window.getPathname().includes(`/${ENotRealSports.team}`)) {\n saveCurrentLocation('mobileSportsbookGames');\n }\n\n const redirectPath = `${mountPoint(window.getPathname())}/${sportAlias}/${\n gameGeneralInfo.regionAlias\n }/${gameGeneralInfo.competitionId}/${gameGeneralInfo.id}`;\n\n push(redirectPath);\n dispatch(resetMarketTypes());\n }\n };\n\n const sportId = gameGeneralInfo.sportId;\n\n const betBuilderProps = {\n sportId,\n fixtureId: gameGeneralInfo.sportcast_id,\n gameTitle: `${gameGeneralInfo.team1_name} - ${gameGeneralInfo.team2_name}`,\n afterSignInActonName: `MatchCardInline_${gameGeneralInfo.id}_${AFTER_SIGN_IN_ACTION_TYPES.TOGGLE_BET_BUILDER_MODAL}`\n };\n\n const { openBetBuilder } = useOpenBetBuilder(betBuilderProps);\n\n const showBetBuilder =\n !isLive &&\n gameGeneralInfo.sportcast_id &&\n SpringConfigs.BET_BUILDER_SWITCHER;\n\n const isOutright =\n gameGeneralInfo?.show_type === ENotRealSports.outright.toUpperCase();\n\n return (\n <>\n \n
\n \n \n \n \n {showSportName ? `${gameGeneralInfo.sportName} ` : ''}\n {gameGeneralInfo.regionName} : {gameGeneralInfo.competitionName}\n \n
\n
\n \n \n
\n
\n \n \n {String(gameGeneralInfo.team1_name)\n .substr(0, 2)\n .toUpperCase()}\n \n \n \n {gameGeneralInfo.team1_name}\n \n
\n {isLive && (\n
\n {gameGeneralInfo.info.score1}\n
\n )}\n
\n {gameGeneralInfo.team2_name && (\n
\n
\n \n \n {String(gameGeneralInfo.team2_name)\n .substr(0, 2)\n .toUpperCase()}\n \n \n \n {gameGeneralInfo.team2_name}\n \n
\n {isLive && (\n
\n {gameGeneralInfo.info.score2}\n
\n )}\n
\n )}\n
\n \n
\n {availableIcons.videoCam && (\n \n )}\n {availableIcons.matchTracker && (\n \n }\n />\n )}\n {showBetBuilder &&\n (SpringConfigs.HIDE_BET_BUILDER &&\n gameGeneralInfo.regionAlias === 'Cyprus' ? null : (\n openBetBuilder(e)}\n />\n }\n />\n ))}\n
\n
\n {availableIcons.notification && (\n \n )}\n\n {availableIcons.statistics && (\n \n )}\n
\n \n \n
\n {!isOutright &&\n Object.entries(selectedMarketsToShow).map(\n ([rowKey, market], index) => (\n \n )\n )}\n
\n setExpandedMarkets(prev => !prev)}\n >\n \n \n \n \n {expandedMarkets && gameGeneralInfo && (\n \n )}\n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport './index.less';\n\nexport const LiveIndicator = () => {\n const { t } = useTranslation();\n\n return
{t('sportsbook.live')}
;\n};\n","import { memo, ReactElement, useLayoutEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport { Competition, Region, Sport } from 'interfaces/sportsbook-data-levels';\nimport { AdvancedShowAllEventsUnderlined } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedShowAllEventsUnderlined';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { Portal } from 'components/Shared/Portal';\nimport { CompetitionFavoriteMatchesCountIndicator } from 'newcomponents/Shared/sportsbook/CompetitionFavoriteMatchesCountIndicator';\nimport { CompetitionsFavorite } from 'newcomponents/Shared/sportsbook/CompetitionsFavorite';\nimport { LiveIndicator } from 'newcomponents/Shared/sportsbook/LiveIndicator';\nimport { Button } from 'newcomponents/UI/Button';\nimport { Checkbox } from 'newcomponents/UI/Checkbox';\nimport { useCalculateBetslipFixedSwitchersHeight } from 'hooks/betslip/useCalculateBetslipFixedSwitchersHeight';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { setAdvancedTempCompetitionIds } from 'store/actions/new-sportsbook';\nimport { getAdvancedTempCompetitionIds } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nexport enum EShowEventsButtonLayout {\n BUTTON,\n UNDERLINE\n}\n\ntype TAdvancedLeftMenuProps = {\n sportsData: Sport[];\n portalRootId: string;\n showEventsButtonType?: EShowEventsButtonLayout;\n showSportCollapse?: boolean;\n showAllEventsExtraClassname?: string;\n};\n\nexport const AdvancedSportsContent = ({\n sportsData,\n showSportCollapse,\n portalRootId,\n showEventsButtonType = EShowEventsButtonLayout.BUTTON,\n showAllEventsExtraClassname\n}: TAdvancedLeftMenuProps): ReactElement => {\n const dispatch = useDispatch();\n const { push } = useCustomHistory();\n const { t } = useTranslation();\n\n const selectedCompetitionIds = useSelector(getAdvancedTempCompetitionIds);\n\n const { compIds: idsInQuery } = useSearchParams();\n const bottomNavSwitchersHeight = useCalculateBetslipFixedSwitchersHeight();\n\n useLayoutEffect(() => {\n if (idsInQuery && !selectedCompetitionIds.length) {\n dispatch(setAdvancedTempCompetitionIds(idsInQuery.split(',')));\n }\n\n if (isMobile()) {\n return () => {\n dispatch(setAdvancedTempCompetitionIds([]));\n };\n }\n }, []);\n\n const onShowEventsCLick = () => {\n const idsToSetInQuery = selectedCompetitionIds.join(',');\n\n if (idsToSetInQuery !== idsInQuery) {\n const redirectPath = `${mountPoint(\n window.getPathname()\n )}?compIds=${idsToSetInQuery}`;\n\n push(redirectPath);\n }\n };\n\n return (\n
\n {sportsData.map(sportData => (\n \n ))}\n {selectedCompetitionIds.length ? (\n \n {showEventsButtonType === EShowEventsButtonLayout.BUTTON ? (\n \n \n
\n ) : (\n \n )}\n \n ) : null}\n \n );\n};\n\ntype TSportCollapseProps = {\n sportData: Sport;\n selectedCompetitionIds: string[];\n showSportCollapse?: boolean;\n};\n\nconst SportCollapse = memo(\n ({\n sportData,\n selectedCompetitionIds,\n showSportCollapse = true\n }: TSportCollapseProps): ReactElement => {\n const liveGameIdsByRegions = useMemo(() => {\n const result: Record = {};\n\n sportData?.region &&\n Object.values(sportData.region).forEach(region => {\n region?.competition &&\n Object.values(region.competition).forEach(comp => {\n comp?.game &&\n Object.values(comp.game).forEach(game => {\n if (game?.type === 1) {\n result[region.alias] = [\n ...(result[region.alias] || []),\n comp.id\n ];\n }\n });\n });\n });\n\n return result;\n }, [sportData.region]);\n\n const sportHasLiveGames = !!Object.values(liveGameIdsByRegions).length;\n\n return (\n (\n \n }\n {...(sportHasLiveGames && { extraRight: })}\n dataTestId={`${sportData.name.toLowerCase()}`}\n >\n {children}\n \n )}\n >\n
\n {sportData.region &&\n sortByOrder(Object.values(sportData.region)).map(region =>\n region?.competition && Object.keys(region?.competition).length ? (\n \n ) : null\n )}\n
\n \n );\n }\n);\n\ntype TRegionCollapseProps = {\n regionData: Region;\n sportAlias: string;\n compIdsWithLiveGame: number[];\n selectedCompetitionIds: string[];\n};\n\nconst RegionCollapse = memo(\n ({\n regionData,\n sportAlias,\n selectedCompetitionIds,\n compIdsWithLiveGame\n }: TRegionCollapseProps): ReactElement | null => {\n const dispatch = useDispatch();\n const allCompIds =\n regionData.competition && Object.keys(regionData.competition);\n\n const isAllSelected = allCompIds?.every(id =>\n selectedCompetitionIds?.includes(id)\n );\n\n return allCompIds?.length ? (\n \n }\n extraLeft={\n {\n e.stopPropagation();\n let newCompIds = new Set(selectedCompetitionIds);\n\n if (isAllSelected) {\n allCompIds?.forEach(id => newCompIds.delete(id));\n } else {\n newCompIds = new Set([...newCompIds, ...allCompIds]);\n }\n\n dispatch(setAdvancedTempCompetitionIds(Array.from(newCompIds)));\n }}\n />\n }\n {...(!!compIdsWithLiveGame?.length && {\n extraRight: \n })}\n >\n
\n {regionData.competition &&\n sortByOrder(Object.values(regionData.competition)).map(comp => (\n \n ))}\n
\n \n ) : null;\n }\n);\n\ntype TCompetitionRowProps = {\n comp: Competition;\n sportAlias: string;\n regionAlias: string;\n compIdsWithLiveGame: number[];\n selectedCompetitionIds: string[];\n};\n\nconst CompetitionRow = ({\n comp,\n selectedCompetitionIds,\n sportAlias,\n regionAlias,\n compIdsWithLiveGame\n}: TCompetitionRowProps) => {\n const dispatch = useDispatch();\n\n return (\n {\n const newCompIds = new Set(selectedCompetitionIds);\n\n if (newCompIds.has(String(comp.id))) {\n newCompIds.delete(String(comp.id));\n } else {\n newCompIds.add(String(comp.id));\n }\n\n dispatch(\n setAdvancedTempCompetitionIds(Array.from(Array.from(newCompIds)))\n );\n }}\n data-testid=\"competition\"\n >\n \n \n {comp.name}\n {compIdsWithLiveGame?.includes(comp.id) ? : null}\n \n \n );\n};\n","import { createArray } from 'utils/helpers/create-fake-array';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\n\nexport const AdvancedLiveGamesListSkeleton = () => {\n return (\n
\n {createArray(ADVANCED_SKELETON_COUNTS._4).map(item => (\n \n }\n title={}\n >\n \n \n ))}\n
\n );\n};\n\nexport const LiveCompetitionsCollapseSkeleton = () => {\n return (\n \n }\n title={}\n >\n {createArray(ADVANCED_SKELETON_COUNTS._4).map(item => (\n \n ))}\n \n );\n};\n","import { useLayoutEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport {\n competitions,\n events,\n gameList,\n markets,\n regions\n} from 'utils/constants/sportsbook/data-fields';\nimport { GAME_TYPE_LIVE } from 'utils/constants/sportsbook/generic';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { Region } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand } from 'services/get-data-level';\nimport { LiveCompetitionsCollapseSkeleton } from './Skeleton';\nimport { AdvancedMatchCardInLineWrapper } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMatchCardInLineWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { useMounted } from 'hooks/useMounted';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setAdvancedLiveGames } from 'store/actions/new-sportsbook';\nimport { getAdvancedLiveGames } from 'store/selectors/new-sportsbook';\n\ntype TLiveCompetitionsCollapseProps = {\n sportAlias: string;\n};\n\nexport const LiveCompetitionsCollapse = ({\n sportAlias\n}: TLiveCompetitionsCollapseProps) => {\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const { params } = useSbRouteMatch();\n const { push } = useCustomHistory();\n\n const liveGamesData = useSelector(getAdvancedLiveGames)?.[sportAlias];\n\n const handleMatchCardClick = ({\n sportAlias,\n regionAlias,\n compId,\n gameId\n }: {\n sportAlias: string;\n regionAlias: string;\n compId: number;\n gameId: number;\n }) => {\n const redirectPath = `${mountPoint(\n window.getPathname()\n )}/${sportAlias}/${regionAlias}/${compId}/${gameId}${\n window.location.search\n }`;\n\n push(redirectPath);\n };\n\n useLayoutEffect(() => {\n const rId = RidGenerator.gForSubscribe(`ADVANCED_GET_LIVE_GAMES`);\n\n const what = {\n ...regions,\n ...competitions,\n ...gameList,\n ...markets,\n ...events\n };\n\n const where = {\n game: { type: GAME_TYPE_LIVE },\n sport: { alias: sportAlias },\n market: {\n display_key: {\n '@in': ['WINNER']\n },\n display_sub_key: {\n '@in': ['MATCH']\n }\n }\n };\n\n const onResponse = (data: { region: Record }) => {\n if (data && data.region && mounted.current) {\n dispatch(setAdvancedLiveGames({ [sportAlias]: data.region }));\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n }, [sportAlias]);\n\n return liveGamesData ? (\n sortByOrder(Object.values(liveGamesData)).map(\n (region, regionIndex) =>\n region.competition &&\n sortByOrder(Object.values(region.competition)).map(comp => (\n \n }\n title={`${region.name} - ${comp.name}`}\n >\n {comp.game &&\n sortByOrder(Object.values(comp.game), 'start_ts').map(game => (\n \n handleMatchCardClick({\n sportAlias,\n regionAlias: region.alias,\n compId: comp.id,\n gameId: game.id\n })\n }\n longDate\n />\n ))}\n \n ))\n )\n ) : (\n \n );\n};\n","import { useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { sports } from 'utils/constants/sportsbook/data-fields';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand } from 'services/get-data-level';\nimport { LiveCompetitionsCollapse } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList/LiveCompetitionsCollapse';\nimport { AdvancedLiveGamesListSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList/Skeleton';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { useGetUserSportOrder } from 'hooks/sportsbook/useGetUserSportOrder';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setAdvancedLiveSports } from 'store/actions/new-sportsbook';\nimport { getAdvancedLiveSports } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nexport const AdvancedLiveGamesList = () => {\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const { params } = useSbRouteMatch();\n\n const liveSportsData = useSelector(getAdvancedLiveSports);\n\n const { orderSports } = useGetUserSportOrder();\n\n const orderedSports = useMemo(() => {\n if (liveSportsData) {\n return orderSports(sortByOrder(Object.values(liveSportsData)));\n }\n\n return liveSportsData;\n }, [liveSportsData, orderSports]);\n\n useLayoutEffect(() => {\n const rId = RidGenerator.gForSubscribe(`ADVANCED_GET_LIVE_SPORTS`);\n\n const what = {\n ...sports,\n game: '@count'\n };\n\n const where = {\n game: { type: 1 }\n };\n\n const onResponse = (data: { sport: Record }) => {\n if (data && data.sport && mounted.current) {\n dispatch(setAdvancedLiveSports(data.sport));\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n }, []);\n\n return orderedSports ? (\n
\n {orderedSports.map(sport => (\n \n }\n title={sport.name}\n >\n \n \n ))}\n
\n ) : (\n \n );\n};\n","import { Route } from 'react-router-dom';\nimport { GAME_TYPE_LIVE } from 'utils/constants/sportsbook/generic';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { routePathWithMockedDataCheck } from 'utils/helpers';\nimport {\n EOlympicLayoutType,\n ETopLeagueLayoutType\n} from 'interfaces/sportsbook-configs';\nimport { FavoriteSideBarSearchSection } from 'elements/SportsbookLeftSideBar/FavoriteSideBarSearchSection';\nimport { TopLeagueCompactMenuItemWithWrapper } from 'elements/SportsbookLeftSideBar/TopLeagueCompactMenuItemWithWrapper';\nimport { AdvancedLeftMenu } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/AdvancedLeftMenu';\nimport { AdvancedLiveGamesList } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLiveGamesList';\nimport { OlympicCompetitionCompactLayout } from 'newcomponents/Shared/sportsbook/OlympicCompetitionCompactLayout';\nimport { useSearchParams } from 'hooks/useSearchParams';\n\nexport const AdvancedLeftSideBar = () => {\n const { gameType } = useSearchParams();\n\n const isLiveSingleGameView = Number(gameType) === GAME_TYPE_LIVE;\n\n const showTopLeague =\n SpringConfigs.TOP_LEAGUES_LAYOUT === ETopLeagueLayoutType.compact &&\n SpringConfigs.TOP_LEAGUES;\n\n const showOlympic =\n SpringConfigs.OLYMPIC_COMPETITION_LAYOUT === EOlympicLayoutType.compact &&\n SpringConfigs.OLYMPIC_COMPETITION;\n\n return (\n {\n const { sport, region, competition, game } = routeParams.match.params;\n const isLiveGameSingleView =\n sport && region && competition && game && isLiveSingleGameView;\n\n return (\n <>\n \n {isLiveGameSingleView ? (\n \n ) : (\n <>\n {showTopLeague ? : null}\n {showOlympic ? : null}\n \n \n )}\n \n );\n }}\n />\n );\n};\n","import { Route } from 'react-router-dom';\nimport cc from 'classcat';\nimport {\n DESKTOP_RIGHT_WRAPPER_Z_INDEX,\n GAME_TYPE_LIVE\n} from 'utils/constants/sportsbook/generic';\nimport { TARGET_IDS_BY_LAYOUT } from 'utils/constants/sportsbook/scroll-target-ids';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { routePathWithMockedDataCheck } from 'utils/helpers';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { AdvancedLeftSideBar } from './__partials/AdvancedLeftSideBar';\nimport { AdvancedMainContent } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent';\nimport { ADVANCED_SPORT_BY_COMPETITIONS_LAYOUT_SHOW_EVENTS_BUTTON_ID } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout';\nimport { useAdvancedInitialRedirection } from 'newelements/Sportsbook/layouts/advanced/hooks/useAdvancedInitialRedirection';\nimport { useRedirectToAdvancedRoute } from 'newelements/Sportsbook/layouts/advanced/hooks/useRedirectToAdvancedRoute';\nimport { DesktopRight } from 'newcomponents/Shared/DesktopRight';\nimport { HooryAiCardLazyWrapper } from 'newcomponents/Shared/generic/HooryAI/HooryAICard/HooryAiCardLazyWrapper';\nimport { HooryAICompact } from 'newcomponents/Shared/generic/HooryAI/HooryAICompact';\nimport { Col } from 'newcomponents/UI/Col';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport './index.less';\n\nexport const ADVANCED_LEFT_MENU_SHOW_EVENTS_BUTTON_ID =\n 'advancedLeftMenuShowEventsButton';\n\nexport const DesktopSportsbookAdvanced = () => {\n useRedirectToAdvancedRoute();\n useAdvancedInitialRedirection();\n\n const configs = useSportsbookConfigs();\n const { gameType } = useSearchParams();\n\n return (\n <>\n \n
\n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n \n \n \n \n );\n};\n","import { useLayoutEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport i18n from 'i18next';\nimport {\n durationHours,\n TimesToAdd\n} from 'utils/constants/dateInfo/time-numbers';\nimport { TAdvancedSelectedRangeFilter } from 'interfaces/sportsbook';\nimport {\n setAdvancedSelectedRangeFilter,\n setAdvancedTempCompetitionIds\n} from 'store/actions/new-sportsbook';\nimport './index.less';\n\nconst RANGE_FILTER_VALUES: TAdvancedSelectedRangeFilter[] = [\n {\n title: i18n.t('sportsbook.all')\n },\n {\n title: i18n.t('sportsbook.next3hour'),\n ranges: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().add(durationHours.THREE_HOURS, 'hour').unix()\n }\n },\n {\n title: i18n.t('sportsbook.next6hour'),\n ranges: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().add(durationHours.SIX_HOURS, 'hour').unix()\n }\n },\n {\n title: i18n.t('sportsbook.next24hour'),\n ranges: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().add(TimesToAdd.AFTER_1_DAYS, 'day').unix()\n }\n },\n {\n title: i18n.t('sportsbook.next3days'),\n ranges: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().add(TimesToAdd.AFTER_3_DAYS, 'day').endOf('day').unix()\n }\n },\n {\n title: i18n.t('sportsbook.today'),\n ranges: {\n '@gt': dayjs().unix(),\n '@lt': dayjs().endOf('day').unix()\n }\n },\n {\n title: i18n.t('sportsbook.tomorrow'),\n ranges: {\n '@gt': dayjs().endOf('day').unix(),\n '@lt': dayjs().endOf('day').add(TimesToAdd.AFTER_1_DAYS, 'day').unix()\n }\n },\n {\n title: dayjs().add(TimesToAdd.AFTER_2_DAYS, 'day').format('ddd'),\n ranges: {\n '@gt': dayjs().add(TimesToAdd.AFTER_2_DAYS, 'day').startOf('day').unix(),\n '@lt': dayjs().add(TimesToAdd.AFTER_2_DAYS, 'day').endOf('day').unix()\n }\n }\n];\n\ntype TAdvancedRangeFilterProps = {\n selectedRange: TAdvancedSelectedRangeFilter | null;\n};\n\nexport const AdvancedRangeFilter = ({\n selectedRange\n}: TAdvancedRangeFilterProps) => {\n const dispatch = useDispatch();\n\n useLayoutEffect(() => {\n if (!selectedRange) {\n dispatch(setAdvancedSelectedRangeFilter(RANGE_FILTER_VALUES[0]));\n }\n }, []);\n\n const handleSelectRange = (selectedRange: TAdvancedSelectedRangeFilter) => {\n dispatch(setAdvancedSelectedRangeFilter(selectedRange));\n dispatch(setAdvancedTempCompetitionIds([]));\n };\n\n return (\n
\n {RANGE_FILTER_VALUES.map(range => (\n handleSelectRange(range)}\n >\n {range.title}\n
\n ))}\n
\n );\n};\n","import { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { filterSportDataByGameStartTsRange } from 'utils/sportsbook/filterSportDataByGameStartTsRange';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { TopLeagueCompactMenuItem } from 'elements/SportsbookLeftSideBar/partials/TopLeagueCompactMenuItem';\nimport { AdvancedRangeFilter } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout/AdvancedRangeFilter';\nimport { ADVANCED_LEFT_MENU_DATA_REDUX_KEY } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/AdvancedLeftMenu';\nimport {\n AdvancedSportsContent,\n EShowEventsButtonLayout\n} from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedSportsContent';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { RegionSkeleton } from 'components/UI/Skeletons/RegionSkeleton';\nimport {\n getAdvancedSelectedRangeFilter,\n getSportsbookSelectedSport,\n getSwarmResponse\n} from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nexport const ADVANCED_SPORT_BY_COMPETITIONS_LAYOUT_SHOW_EVENTS_BUTTON_ID =\n 'advancedSportByCompetitionsShowEvents';\n\nexport const AdvancedCompetitionsBySportLayout = () => {\n const { t } = useTranslation();\n\n const mainSportsMenuSelectedSport = useSelector(getSportsbookSelectedSport);\n\n const sportsData =\n useSelector(getSwarmResponse)?.[ADVANCED_LEFT_MENU_DATA_REDUX_KEY];\n\n const selectedRange = useSelector(getAdvancedSelectedRangeFilter);\n const topLeaguesData =\n useSelector(getSwarmResponse)?.[ENotRealSports.topLeague];\n\n const filteredSportData: Sport | undefined = useMemo(() => {\n const dataBySport =\n mainSportsMenuSelectedSport?.id &&\n sportsData?.[mainSportsMenuSelectedSport?.id];\n\n if (dataBySport) {\n if (!selectedRange?.ranges) {\n return dataBySport;\n } else {\n const ranges = selectedRange.ranges;\n const filteredData = filterSportDataByGameStartTsRange(\n { [mainSportsMenuSelectedSport.id]: dataBySport },\n ranges\n );\n\n if (filteredData && Object.keys(filteredData).length === 0) {\n return {} as Sport;\n }\n\n return filteredData[mainSportsMenuSelectedSport.id];\n }\n }\n }, [mainSportsMenuSelectedSport?.id, sportsData, selectedRange]);\n\n const topLeaguesFilteredData = useMemo(() => {\n if (topLeaguesData) {\n let filteredData = { ...topLeaguesData };\n\n if (selectedRange?.ranges) {\n filteredData = filterSportDataByGameStartTsRange(\n topLeaguesData,\n selectedRange?.ranges\n );\n }\n\n return filteredData;\n }\n }, [topLeaguesData, selectedRange?.ranges]);\n\n const noCompetitionsAvailable =\n filteredSportData && Object.keys(filteredSportData).length === 0;\n\n return (\n \n \n\n {topLeaguesFilteredData &&\n Object.keys(topLeaguesFilteredData).length === 0 ? null : (\n
\n \n \n \n
\n )}\n\n \n \n {filteredSportData ? (\n noCompetitionsAvailable ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n \n \n );\n};\n","import { useMemo } from 'react';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport {\n TAdvancedSelectedMarkets,\n TGameMainInfoType,\n TSelectedMarketTypeNames\n} from 'interfaces/sportsbook';\nimport { Market } from 'interfaces/sportsbook-data-levels';\nimport { gamesGeneralInfoMocked } from './mock';\nimport { AdvancedMatchCard } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard';\nimport { AdvancedMatchCardSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton';\nimport { ConditionalWrapper } from 'components/ConditionalWrapper';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { TStreamData } from 'store/reducers/sport-data';\n\nexport enum EGroupGamesBy {\n day,\n league\n}\n\nexport type TAdvancedMatchCardsViewsProps = {\n gameIds: number[] | null;\n skeletonCount: number;\n isLive: boolean;\n gamesGeneralInfo: Record | null;\n gamesMarketsInfo?:\n | Record | undefined }>\n | undefined;\n selectedMarkets?: TAdvancedSelectedMarkets;\n selectedMarketTypeNames?: TSelectedMarketTypeNames;\n selectedEventIds: string[];\n streamData: Array<[TStreamData]> | null;\n marketsCountsReduxKey?: string;\n groupGamesBy?: EGroupGamesBy;\n};\n\nconst GAME_RELATED_INFO_SEPARATOR = '$%&';\n\nexport const AdvancedMatchCardsDesktop = ({\n gameIds,\n gamesGeneralInfo,\n gamesMarketsInfo,\n selectedMarkets,\n selectedMarketTypeNames,\n skeletonCount,\n isLive,\n selectedEventIds,\n streamData,\n groupGamesBy\n}: TAdvancedMatchCardsViewsProps) => {\n const gamesGroupedByKey = useMemo(() => {\n if (gameIds && gamesGeneralInfo && gamesMarketsInfo && selectedMarkets) {\n const result: Record = {};\n\n gameIds?.forEach(gameId => {\n if (gamesGeneralInfo[gameId]) {\n const gameGeneralInfo = gamesGeneralInfo[gameId];\n\n const groupKey =\n groupGamesBy === EGroupGamesBy.league\n ? `${gameGeneralInfo.regionAlias}${GAME_RELATED_INFO_SEPARATOR}${gameGeneralInfo.regionName}${GAME_RELATED_INFO_SEPARATOR}${gameGeneralInfo.competitionName}`\n : '';\n\n if (groupKey) {\n result[groupKey] = [...(result[groupKey] || []), gameId];\n } else {\n result.all = [...(result.all || []), gameId];\n }\n }\n });\n\n return result;\n }\n\n return null;\n }, [gameIds, gamesGeneralInfo, gamesMarketsInfo, selectedMarkets]);\n\n const createTitleContent = (groupKey: string) => {\n const groupInfoValues = groupKey.split(GAME_RELATED_INFO_SEPARATOR);\n\n return (\n \n \n {groupInfoValues[1]} : {groupInfoValues[2]}\n \n );\n };\n\n if (SpringConfigs.MOCKED_DATA) {\n return (\n \n );\n }\n\n return gamesGroupedByKey &&\n gamesGeneralInfo &&\n gamesMarketsInfo &&\n selectedMarkets\n ? Object.entries(gamesGroupedByKey).map(([groupKey, gameIds]) => (\n (\n \n {children}\n \n )}\n >\n <>\n {gameIds.map(\n gameId =>\n !!gamesGeneralInfo[gameId] && (\n \n )\n )}\n \n \n ))\n : createArray(skeletonCount).map(key => (\n \n ));\n};\n","import { EIconSize } from 'utils/constants/app/ui';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype AdvancedMarketsFilterSkeletonProps = {\n addSportSectionInHeader?: boolean;\n};\n\nexport const AdvancedMarketsFilterSkeleton = ({\n addSportSectionInHeader\n}: AdvancedMarketsFilterSkeletonProps) => {\n return isMobile() ? (\n
\n \n
\n ) : (\n <>\n
\n {addSportSectionInHeader ? (\n
\n \n \n
\n ) : (\n
\n )}\n\n
\n {createArray(ADVANCED_SKELETON_COUNTS._3).map(key => (\n \n \n
\n ))}\n
\n \n
\n
\n
\n {createArray(ADVANCED_SKELETON_COUNTS._3).map(key => (\n \n {createArray(ADVANCED_SKELETON_COUNTS._3)?.map(key => (\n \n ))}\n
\n ))}\n
\n \n \n );\n};\n","export const gamesGeneralInfoMocked = {\n 26422400: {\n id: 26422400,\n team1_id: 907380,\n team2_id: 794937,\n team1_name: 'Manchester City (Thomas)',\n team2_name: 'Bayern Munich (Stephan)',\n info: {\n current_game_state: 'finished',\n current_game_time: '90',\n add_minutes: '0',\n stoppage_firsthalf: '02:00',\n stoppage_secondhalf: '05:00',\n score1: '1',\n score2: '4',\n pass_team: 'none',\n shirt1_color: '000000',\n shirt2_color: '000000',\n short1_color: '000000',\n short2_color: '000000',\n field: 0,\n add_info: '',\n horse_xml: {\n Status: null,\n RacingId: 0,\n HorceCXml: null,\n HorceBXml: null\n },\n virtual: '',\n periods_values: { 1: [1] },\n period_points_home_d: [1],\n period_points_away_d: [1],\n period_points_home: [1],\n period_points_away: [1],\n home_total: 0,\n away_total: 0\n },\n stats: {\n team1_value: '',\n team2_value: '',\n add_info: null\n },\n start_ts: 1737693000,\n type: 2,\n is_blocked: 0,\n text_info: '1 : 4, (0:1), (1:3); FT',\n game_number: 106272,\n sport_alias: 'CyberFootball',\n is_live: 0,\n is_stat_available: true,\n _parent_id: 18272809,\n region_alias: 'Europe',\n sportName: 'E-Football',\n sportId: 71,\n regionAlias: 'Europe',\n regionName: 'Europe',\n competitionName: 'Champions league',\n competitionId: 18272809,\n tv_type: null,\n video_id: null,\n video_id2: null,\n is_feed_available: false,\n sportcast_id: 452454245,\n show_type: ''\n }\n};\n\nexport const gameForMobile = {\n id: 26422400,\n type: 2,\n start_ts: 1737693000,\n region_alias: 'Europe',\n sportName: 'E-Football',\n game_number: 106272,\n sport_alias: 'CyberFootball',\n is_live: 0,\n is_stat_available: true,\n is_started: 0,\n is_blocked: 0,\n events_count: null,\n team1_id: 907380,\n team2_id: 794937,\n team1_name: 'Manchester City (Thomas)',\n team2_name: 'Bayern Munich (Stephan)',\n text_info: '1 : 4, (0:1), (1:3); FT',\n sportcast_id: 0,\n stats: {\n team1_value: '',\n team2_value: '',\n add_info: null\n },\n live_events: [\n {\n event_type: '',\n team: 'team2',\n add_info: null,\n event_value: undefined\n }\n ],\n is_feed_available: false,\n last_event: '',\n express_min_len: null,\n exclude_ids: null,\n tv_type: null,\n video_id: null,\n video_id2: null,\n promoted: '',\n descr: 'comp_country',\n visible_in_prematch: 0,\n show_type: '',\n shirt1_color: '000000',\n shirt2_color: '000000',\n competitionName: 'Champions league',\n match_length: '',\n info: {\n current_game_state: 'finished',\n current_game_time: '90',\n add_minutes: '0',\n stoppage_firsthalf: '02:00',\n stoppage_secondhalf: '05:00',\n score1: '1',\n score2: '4',\n pass_team: 'none',\n shirt1_color: '000000',\n shirt2_color: '000000',\n short1_color: '000000',\n short2_color: '000000',\n field: 0,\n add_info: '',\n horse_xml: {\n Status: null,\n RacingId: 0,\n HorceCXml: null,\n HorceBXml: null\n },\n virtual: '',\n periods_values: { 1: [1] },\n period_points_home_d: [1],\n period_points_away_d: [1],\n period_points_home: [1],\n period_points_away: [1],\n home_total: 0,\n away_total: 0\n }\n};\n","import { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport { AdvancedMarketsFilterSkeleton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedMarketsFilter/Skeleton';\nimport { AdvancedMatchCardSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\n\nconst SKELETON_COUNT = 10;\n\ntype TAdvancedGamesFilteredByCompetitionsSkeletonProps = {\n showMarketFilterSkeleton?: boolean;\n};\n\nexport const AdvancedGamesFilteredByCompetitionsSkeleton = ({\n showMarketFilterSkeleton = false\n}: TAdvancedGamesFilteredByCompetitionsSkeletonProps) => {\n return (\n \n \n \n \n }\n >\n {showMarketFilterSkeleton && }\n\n {createArray(SKELETON_COUNT).map(key =>\n isMobile() ? (\n \n ) : (\n \n )\n )}\n \n );\n};\n\nexport const AdvancedGamesFilteredByTimeSkeleton = () => {\n return (\n \n }\n >\n {createArray(SKELETON_COUNT).map(key =>\n isMobile() ? (\n \n ) : (\n \n )\n )}\n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport { isMobile } from 'utils/is-mobile';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport './index.less';\n\ntype TAdvancedShowAllEventsUnderlinedProps = {\n onClick: () => void;\n showSkeleton?: boolean;\n className?: string;\n bottomNavSwitchersHeight?: number;\n};\n\nexport const AdvancedShowAllEventsUnderlined = ({\n onClick,\n showSkeleton,\n className,\n bottomNavSwitchersHeight\n}: TAdvancedShowAllEventsUnderlinedProps) => {\n const { t } = useTranslation();\n\n return (\n \n \n \n {showSkeleton ? (\n \n ) : (\n t('sportsbook.showAllEvents')\n )}\n \n {!showSkeleton && (\n \n )}\n \n \n );\n};\n","import { useLayoutEffect } from 'react';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { addQuery } from 'components/QueryRoute';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport './index.less';\n\ntype TAdvancedFiltersProps = {\n queryKey: string;\n filterItems: {\n key: string;\n title: string;\n }[];\n className?: string;\n};\n\nexport const AdvancedFilters = ({\n queryKey,\n filterItems,\n className\n}: TAdvancedFiltersProps) => {\n const { history, push } = useCustomHistory();\n const { [queryKey]: queryValue } = useSearchParams();\n\n const handleFilterClick = (\n value: (typeof filterItems)[0]['key'],\n replace?: boolean\n ) => {\n if (replace) {\n history.replace(addQuery({ [queryKey]: value }));\n } else {\n push(addQuery({ [queryKey]: value }));\n }\n };\n\n useLayoutEffect(() => {\n if (!queryValue) {\n handleFilterClick(filterItems[0].key, true);\n }\n }, [queryValue]);\n\n return (\n \n {filterItems.map(item => (\n handleFilterClick(item.key)}\n className={cc([\n 'advancedFilters__item',\n {\n 'advancedFilters__item--active': queryValue === item.key,\n 'advancedFilters__item--mobile': isMobile()\n }\n ])}\n key={item.key}\n >\n {item.title}\n \n ))}\n \n );\n};\n","import i18n from 'i18next';\nimport { AdvancedFilters } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/index';\n\nexport enum EAdvancedCompetitionsFilters {\n LEAGUE = '0',\n TIME = '1'\n}\n\nconst FILTER_ITEMS = [\n {\n key: EAdvancedCompetitionsFilters.LEAGUE,\n title: i18n.t('sportsbook.byLeague')\n },\n {\n key: EAdvancedCompetitionsFilters.TIME,\n title: i18n.t('sportsbook.byTime')\n }\n];\n\nconst COMPETITIONS_FILTERS_QUERY_KEY = 'filterBy';\n\nexport const CompetitionsFilters = () => {\n return (\n \n );\n};\n","import { useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n advancedEventsLayoutRelations,\n events,\n markets\n} from 'utils/constants/sportsbook/data-fields';\nimport { lazy } from 'utils/generic/lazy';\nimport { createArray } from 'utils/helpers/create-fake-array';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport {\n TAdvancedSelectedMarkets,\n TGameMainInfoType,\n TGameMarketsInfoType\n} from 'interfaces/sportsbook';\nimport { Game } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { TPartialGameWithInfoType } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/FilteredByTimeWrapper';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport { AdvancedMatchCardSkeleton } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/Skeleton';\nimport { useGetMarketsCounts } from 'newelements/Sportsbook/layouts/advanced/hooks/useGetMarketsCounts';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { useMounted } from 'hooks/useMounted';\nimport {\n setAdvancedGamesMainInfo,\n setAdvancedGamesMarketsInfo\n} from 'store/actions/new-sportsbook';\nimport {\n getAdvancedGamesMainInfo,\n getAdvancedGamesMarketsInfo\n} from 'store/selectors/new-sportsbook';\nimport { getStreamData } from 'store/selectors/sport-data';\n\nconst { MobileMatchCardWrapper } = lazy(\n () =>\n import(\n /* webpackChunkName: \"advanced-match-card-mobile\" */ './MobileMatchCardWrapper'\n )\n);\n\nconst { AdvancedMatchCard } = lazy(\n () =>\n import(\n /* webpackChunkName: \"advanced-match-card-desktop\" */ 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard'\n )\n);\n\nconst DEFAULT_MARKETS = {\n first: 'MatchWinner',\n second: 'P1P2',\n third: 'MatchHandicap2'\n};\n\nconst MARKETS_BY_SPORTS: Record = {\n Soccer: {\n first: 'P1XP2',\n second: '1X12X2',\n third: 'DrawNoBet'\n },\n Basketball: {\n first: 'P1P2',\n second: 'MatchHandicap',\n third: 'MatchTotal'\n },\n Tennis: {\n first: 'P1P2',\n second: 'Handicap',\n third: 'TotalGamesOver/Under'\n },\n Volleyball: {\n first: 'P1P2',\n second: 'PointHandicap',\n third: 'TotalPointsOver/Under'\n },\n IceHockey: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'MatchHandicap2'\n },\n TableTennis: {\n first: 'P1P2',\n second: 'MatchPointHandicap',\n third: 'MatchTotalPointsOverUnder'\n },\n Handball: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'MatchHandicap2'\n },\n Cricket: {\n first: 'P1P2',\n second: 'P1XP2',\n third: '1X12X2'\n },\n Archery: {\n first: 'MatchPointsTotal2Way',\n second: 'MatchPointsEvenOdd',\n third: 'RoundPointsTotal2Way'\n },\n AmericanFootball: {\n first: 'P1P2',\n second: 'MatchHandicap',\n third: 'MatchTotal'\n },\n AustralianFootball: {\n first: 'P1P2',\n second: 'Handicap',\n third: 'TotalPointsOver/Under'\n },\n PistolShooting: {\n first: 'MatchPointCommonTotalOverUnder2Way',\n second: 'RoundPointCommonTotalOverUnder2Way',\n third: 'MatchPointEvenOdd'\n },\n Baseball: {\n first: 'P1P2',\n second: 'RunLine',\n third: 'TotalRunsOver/Under'\n },\n Darts: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'HandicapLegs'\n },\n Floorball: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'Handicap'\n },\n Boxing: {\n first: 'P1P2',\n second: 'TotalRounds',\n third: 'WillFightGoTheDistance'\n },\n BallHockey: {\n first: 'P1XP2',\n second: 'P1XP2',\n third: '1X12X2'\n },\n GaelicFootball: {\n first: 'MatchWinner',\n second: 'MatchResult',\n third: 'MatchHandicap'\n },\n Futsal: {\n first: 'P1XP2',\n second: 'Handicap',\n third: 'TotalGoalsOver/Under'\n },\n Mma: {\n first: 'P1P2',\n second: 'MatchResult',\n third: 'TotalRounds'\n },\n Hurling: {\n first: 'MatchWinner',\n second: 'P1XP2',\n third: 'MatchHandicap'\n },\n RugbyLeague: {\n first: 'MatchWinner',\n second: 'P1XP2',\n third: 'Handicap(NoDraw)'\n },\n Chess: {\n first: 'P1P2',\n second: 'MatchResult',\n third: '1X12X2'\n },\n Badminton: {\n first: 'P1P2',\n second: 'MatchPointsHandicap',\n third: 'GamesHandicap'\n },\n Rowing: {\n first: 'MatchResult'\n },\n Snooker: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'Handicap'\n },\n CyberFootball: {\n first: 'P1XP2',\n second: '1X12X2',\n third: 'Handicap'\n },\n X1Football: {\n first: 'MatchWinner'\n },\n Speedway: {\n first: 'MatchWinner',\n second: 'P1XP2',\n third: 'AsianHandicap'\n },\n Halo: {\n first: 'MatchWinner',\n second: 'MapsHandicap',\n third: 'MapsTotal'\n },\n Softball: {\n first: 'P1P2',\n second: 'RunLine',\n third: 'TotalRunsOver/Under'\n },\n RugbyUnion: {\n first: 'P1XP2',\n second: 'Handicap(NoDraw)',\n third: 'TotalPointsOver/Under'\n },\n Lacross: {\n first: 'MatchResult',\n second: 'Handicap',\n third: 'MatchTotal'\n },\n Squash: {\n first: 'MatchResult',\n second: 'PointsHandicap',\n third: 'GamesHandicap'\n },\n WaterPolo: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'Handicap'\n },\n CounterStrike: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'MapsHandicap'\n },\n Dota2: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'GamesHandicap'\n },\n CallOfDuty: {\n first: 'P1P2',\n second: 'GamesHandicap',\n third: 'GamesTotal'\n },\n KingOfGlory: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'GamesHandicap'\n },\n LeagueOfLegends: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'GamesHandicap'\n },\n StarCraft2: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'GamesHandicap'\n },\n CrossFire: {\n first: 'MatchWinner',\n second: 'MatchResult',\n third: 'MapsHandicap'\n },\n MobileLegends: {\n first: 'P1P2',\n second: 'P1XP2',\n third: 'GamesHandicap'\n },\n EBasketball: {\n first: 'P1P2',\n second: 'MatchHandicap',\n third: 'MatchTotal'\n },\n WarcraftIII: {\n first: 'P1P2',\n second: 'GamesHandicap'\n }\n};\n\ntype TGamesListFilteredByTimeProps = {\n gamesArr: TPartialGameWithInfoType[];\n selectedEventIds: string[];\n reduxKey: string;\n};\n\nconst GAMES_BY_TIME_MARKETS_COUNTS_KEY = 'gamesByTimeKey';\n\nexport const GamesListFilteredByTime = ({\n gamesArr,\n selectedEventIds,\n reduxKey\n}: TGamesListFilteredByTimeProps) => {\n const { mounted } = useMounted();\n const dispatch = useDispatch();\n\n const streamData = useSelector(getStreamData);\n\n const gamesMainData = useSelector(getAdvancedGamesMainInfo)?.[reduxKey];\n\n const gamesMarketsData = useSelector(getAdvancedGamesMarketsInfo)?.[reduxKey];\n\n const { gameIds, sportAliases } = useMemo(() => {\n return gamesArr.reduce(\n (acc: { gameIds: number[]; sportAliases: string[] }, game) => {\n return {\n gameIds: [...acc.gameIds, game.id],\n sportAliases: [...acc.sportAliases, game.sport_alias || '']\n };\n },\n { gameIds: [], sportAliases: [] }\n );\n }, [gamesArr]);\n\n const { marketsCounts } = useGetMarketsCounts({\n gameIds,\n reduxKey: GAMES_BY_TIME_MARKETS_COUNTS_KEY + reduxKey\n });\n\n const { gamesGeneralInfo, gamesMarketsInfo } = useMemo(() => {\n if (gamesArr.length && gamesMainData && gamesMarketsData) {\n const _gamesGeneralInfo: Record = {};\n const _gamesMarketsInfo: Record = {};\n\n gamesArr.forEach(game => {\n const gameInfoInResponse = gamesMainData[game.id];\n\n if (gameInfoInResponse) {\n const gameGeneralInfo: TGameMainInfoType = {\n ...game,\n team1_id: gameInfoInResponse.team1_id,\n team2_id: gameInfoInResponse.team2_id,\n team1_name: gameInfoInResponse.team1_name,\n team2_name: gameInfoInResponse.team2_name,\n info: gameInfoInResponse.info,\n stats: gameInfoInResponse.stats,\n is_blocked: gameInfoInResponse.is_blocked,\n tv_type: gameInfoInResponse.tv_type,\n video_id: gameInfoInResponse.video_id,\n video_id2: gameInfoInResponse.video_id2,\n is_feed_available: gameInfoInResponse.is_feed_available,\n text_info: gameInfoInResponse.text_info,\n is_live: gameInfoInResponse.is_live,\n is_stat_available: gameInfoInResponse.is_stat_available,\n sportcast_id: gameInfoInResponse.sportcast_id,\n show_type: gameInfoInResponse.show_type\n };\n\n _gamesGeneralInfo[game.id] = gameGeneralInfo;\n _gamesMarketsInfo[game.id] = gamesMarketsData[game.id]?.market;\n }\n });\n\n return {\n gamesGeneralInfo: _gamesGeneralInfo,\n gamesMarketsInfo: _gamesMarketsInfo\n };\n }\n\n return {};\n }, [gamesArr, gamesMainData, gamesMarketsData]);\n\n useLayoutEffect(() => {\n if (gameIds.length) {\n const marketTypesBySportAliases = new Set(\n sportAliases\n .map(sport =>\n Object.values(MARKETS_BY_SPORTS[sport] || DEFAULT_MARKETS)\n )\n .flat()\n );\n\n const rIdForGameInfo = RidGenerator.gForSubscribe(\n `ADVANCED_GET_GAMES_MAIN_INFO_BY_TIME`\n );\n\n const whatForGameInfo = {\n game: advancedEventsLayoutRelations.game\n };\n\n const whereForGameInfo = {\n game: { id: { '@in': gameIds } }\n };\n\n const onResponseForGameInfo = (data: { game: Record }) => {\n if (data && data.game && mounted.current) {\n dispatch(\n setAdvancedGamesMainInfo({\n data: data.game,\n key: reduxKey\n })\n );\n }\n };\n\n executeCommand(\n rIdForGameInfo,\n whatForGameInfo,\n whereForGameInfo,\n onResponseForGameInfo,\n true,\n onResponseForGameInfo\n );\n\n const rIdForMarkets = RidGenerator.gForSubscribe(\n `ADVANCED_GET_GAMES_MARKETS_BY_TIME`\n );\n\n const whatForMarkets = {\n game: [['id']],\n market: markets.market,\n event: events.event\n };\n\n const whereForMarkets = {\n game: { id: { '@in': gameIds } },\n market: {\n type: { '@in': Array.from(marketTypesBySportAliases) }\n }\n };\n\n const onResponseForMarkets = (data: {\n game: Record;\n }) => {\n if (data && data.game && mounted.current) {\n dispatch(\n setAdvancedGamesMarketsInfo({\n data: data.game,\n key: reduxKey\n })\n );\n }\n };\n\n executeCommand(\n rIdForMarkets,\n whatForMarkets,\n whereForMarkets,\n onResponseForMarkets,\n true,\n onResponseForMarkets\n );\n\n return () => {\n unsubscribeCommand(rIdForGameInfo);\n unsubscribeCommand(rIdForMarkets);\n };\n }\n }, [gameIds.toString()]);\n\n const isDataReadyToShow =\n gamesArr &&\n gamesGeneralInfo &&\n Object.keys(gamesGeneralInfo).length &&\n gamesMarketsInfo &&\n marketsCounts;\n\n return isDataReadyToShow\n ? sortByOrder(gamesArr, 'start_ts').map(({ id, sport_alias }) => {\n const gameGeneralInfo = gamesGeneralInfo[id];\n const gameMarketsInfo = gamesMarketsInfo[id];\n\n if (gameGeneralInfo) {\n return isMobile() ? (\n \n ) : (\n \n );\n }\n })\n : createArray(ADVANCED_SKELETON_COUNTS._5).map(key =>\n isMobile() ? (\n \n ) : (\n \n )\n );\n};\n","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport { GAME_TYPE_LIVE } from 'utils/constants/sportsbook/generic';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport { Game, Sport } from 'interfaces/sportsbook-data-levels';\nimport { GamesListFilteredByTime } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/GamesListFilteredByTime';\nimport { AdvancedGamesFilteredByTimeSkeleton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/Skeleton';\nimport { NavigationCollapse } from 'components/NavigationCollapse';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { getEventIds } from 'store/selectors/betslip';\n\nexport type TPartialGameWithInfoType = Pick<\n Game,\n | 'id'\n | 'type'\n | 'start_ts'\n | 'sport_alias'\n | 'sportName'\n | 'sportId'\n | 'regionAlias'\n | 'regionName'\n | 'competitionName'\n | 'competitionId'\n>;\n\ntype TGamesFilteredByTimeProps = {\n sportsData: Record> | null;\n};\n\nexport const FilteredByTimeWrapper = ({\n sportsData\n}: TGamesFilteredByTimeProps) => {\n const selectedEventIds = useSelector(getEventIds).map(String);\n const { coupon } = useSearchParams();\n\n const groupedGamesData = useMemo(() => {\n if (sportsData) {\n const resultObj: Record = {};\n Object.values(sportsData).forEach(sport => {\n sport.region &&\n Object.values(sport.region).forEach(region => {\n region.competition &&\n Object.values(region.competition).forEach(comp => {\n comp.game &&\n Object.values(comp.game).forEach(game => {\n if ((coupon && game.type !== GAME_TYPE_LIVE) || !coupon) {\n const dayFromStartTs = dayjs\n .unix(game.start_ts)\n .startOf('day')\n .unix();\n\n const gameWithInfo: TPartialGameWithInfoType = {\n ...game,\n sport_alias: sport.alias,\n sportName: sport.name,\n sportId: Number(sport.id),\n regionAlias: region.alias,\n regionName: region.name,\n competitionName: comp.name,\n competitionId: comp.id\n };\n\n resultObj[dayFromStartTs] = [\n ...(resultObj[dayFromStartTs] || []),\n gameWithInfo\n ];\n }\n });\n });\n });\n });\n\n return resultObj;\n }\n\n return null;\n }, [sportsData, coupon]);\n\n return groupedGamesData ? (\n Object.entries(groupedGamesData).map(([startTs, gamesArr], index) => {\n return (\n \n \n \n );\n })\n ) : (\n \n );\n};\n","import dayjs from 'dayjs';\nimport { PickEnum } from 'utils/helpers/typsecript';\nimport { EAdvancedCouponsLayouts } from 'interfaces/sportsbook';\n\nexport type TFilteredCouponLayoutsForRanges = PickEnum<\n EAdvancedCouponsLayouts,\n EAdvancedCouponsLayouts.todayMatches | EAdvancedCouponsLayouts.tomorrowMatches\n>;\n\nexport const TIME_RANGES_BY_COUPON_LAYOUT: Record<\n TFilteredCouponLayoutsForRanges,\n { '@gte': number; '@lte': number }\n> = {\n [EAdvancedCouponsLayouts.todayMatches]: {\n '@gte': dayjs().startOf('day').unix(),\n '@lte': dayjs().endOf('day').unix()\n },\n [EAdvancedCouponsLayouts.tomorrowMatches]: {\n '@gte': dayjs().endOf('day').unix(),\n '@lte': dayjs().endOf('day').add(1, 'day').unix()\n }\n};\n","import { useLayoutEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport cc from 'classcat';\nimport {\n competitions,\n PREMATCH_GAME_TYPE_FOR_SWARM,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport {\n CompetitionsFilters,\n EAdvancedCompetitionsFilters\n} from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/CompetitionsFilters';\nimport { FilteredByTimeWrapper } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions/FilteredByTimeWrapper';\nimport {\n AdvancedHeaderBreadcrumb,\n TBreadcrumbItemType\n} from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedHeaderBreadcrumb';\nimport {\n TFilteredCouponLayoutsForRanges,\n TIME_RANGES_BY_COUPON_LAYOUT\n} from 'newelements/Sportsbook/layouts/advanced/constants/coupon-time-ranges';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { GamesFilteredByLeagues } from 'newcomponents/Shared/sportsbook/GameFilteredByLeagues/GamesFilteredByLeagues';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport {\n getAdvancedSelectedRangeFilter,\n getSportsbookSelectedSport\n} from 'store/selectors/new-sportsbook';\nimport './index.less';\n\ntype TRequestWhere = {\n competition: { id: { '@in': number[] } };\n game: {\n type: { '@in': number[] };\n start_ts?: { '@gt': number; '@lt': number };\n };\n};\n\nexport const AdvancedGamesByCompetitions = () => {\n const history = useHistory();\n const { mounted } = useMounted();\n const { t } = useTranslation();\n const {\n compIds,\n filterBy,\n coupon: selectedCouponInQuery\n }: {\n compIds?: string;\n filterBy?: EAdvancedCompetitionsFilters;\n coupon?: TFilteredCouponLayoutsForRanges;\n } = useSearchParams();\n\n const mainSportsMenuSelectedSport = useSelector(getSportsbookSelectedSport);\n const selectedTimeRange = useSelector(getAdvancedSelectedRangeFilter);\n\n const [sportsData, setSportsData] = useState | null>(\n null\n );\n\n const breadcrumbItems: TBreadcrumbItemType[] = useMemo(() => {\n if (compIds && filterBy) {\n return [\n {\n id: 1,\n title: t('sportsbook.competitions'),\n active: true\n }\n ];\n }\n\n if (selectedCouponInQuery) {\n return [\n {\n id: 1,\n title: t(`sportsbook.${selectedCouponInQuery}`),\n active: true\n },\n {\n id: 2,\n title: `${mainSportsMenuSelectedSport?.name}` || (\n \n ),\n onClick: () => {\n if (mainSportsMenuSelectedSport?.alias) {\n const redirectPath = `${mountPoint(window.getPathname())}/${\n mainSportsMenuSelectedSport?.alias\n }`;\n\n history.push(redirectPath);\n }\n }\n }\n ];\n }\n\n return [];\n }, [\n !!compIds,\n !!filterBy,\n !!selectedCouponInQuery,\n mainSportsMenuSelectedSport?.name\n ]);\n\n const getSportsData = (rId: string, where: Record) => {\n const what = {\n sport: sports.sport,\n region: regions.region,\n competition: competitions.competition,\n game: ['id', 'type', 'start_ts']\n };\n\n const onResponse = (data: { sport: Record }) => {\n if (data && data.sport && mounted.current) {\n setSportsData(data.sport);\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n };\n\n useLayoutEffect(() => {\n if (compIds && !selectedCouponInQuery) {\n const idsArray = compIds.split(',').map(Number);\n\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_GAMES_BY_COMPETITIONS`\n );\n\n const where: TRequestWhere = {\n competition: { id: { '@in': idsArray } },\n game: { type: { '@in': [0, 1, 2] } }\n };\n\n if (selectedTimeRange?.ranges) {\n where.game.start_ts = selectedTimeRange.ranges;\n }\n\n getSportsData(rId, where);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }\n }, [compIds, selectedTimeRange]);\n\n useLayoutEffect(() => {\n if (!compIds && selectedCouponInQuery && mainSportsMenuSelectedSport) {\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_COUPON_GAMES_BY_SPORT`\n );\n\n const ranges = TIME_RANGES_BY_COUPON_LAYOUT[selectedCouponInQuery];\n\n const where = {\n sport: { alias: mainSportsMenuSelectedSport.alias },\n game: {\n start_ts: ranges,\n ...PREMATCH_GAME_TYPE_FOR_SWARM\n }\n };\n\n getSportsData(rId, where);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }\n }, [mainSportsMenuSelectedSport?.alias]);\n\n const noGamesAvailable = sportsData && Object.keys(sportsData).length === 0;\n\n return (\n <>\n \n \n \n {noGamesAvailable ? (\n \n ) : filterBy === EAdvancedCompetitionsFilters.LEAGUE ? (\n \n ) : (\n \n )}\n \n \n );\n};\n","import { useTranslation } from 'react-i18next';\nimport cc from 'classcat';\nimport { ICON_SIZE } from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n EAdvancedCouponsLayouts,\n EAdvancedEventsLayouts\n} from 'interfaces/sportsbook';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { updateQuery } from 'components/QueryRoute';\nimport { useCustomHistory } from 'newhooks/generic/useCustomHistory';\nimport './index.less';\n\nexport const AdvancedCouponsLayout = () => {\n const { t } = useTranslation();\n const { push } = useCustomHistory();\n\n const handleLayoutClick = (layout: EAdvancedCouponsLayouts) => {\n if (layout === EAdvancedCouponsLayouts.upcomingMatches) {\n push(updateQuery({ layoutType: EAdvancedEventsLayouts.upcoming }));\n\n return;\n }\n\n push(updateQuery({ coupon: layout }));\n };\n\n return (\n
\n \n {t('sportsbook.coupons')}\n
\n \n {Object.values(EAdvancedCouponsLayouts).map(layout => (\n handleLayoutClick(layout)}\n >\n \n \n \n \n {t(`sportsbook.${layout}`)}\n \n \n ))}\n \n \n );\n};\n","import { useCallback, useEffect, useLayoutEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n PREMATCH_GAME_TYPE_FOR_SWARM,\n sports as SPORTS_WHAT\n} from 'utils/constants/sportsbook/data-fields';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { MenuItem } from 'interfaces/generic';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedSportsMenu/index.less';\nimport { Menu } from 'newcomponents/UI/Menu';\nimport { useGetUserSportOrder } from 'hooks/sportsbook/useGetUserSportOrder';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { setAdvancedEventsLayoutSports } from 'store/actions/new-sportsbook';\nimport { getAdvancedEventsLayoutSports } from 'store/selectors/new-sportsbook';\n\nconst getWhere = (\n layoutType: EAdvancedEventsLayouts,\n sportType: string | undefined\n) => {\n const whereObj = {\n [EAdvancedEventsLayouts.live]: {\n game: { type: 1 },\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n },\n [EAdvancedEventsLayouts.upcoming]: {\n game: PREMATCH_GAME_TYPE_FOR_SWARM,\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n },\n [EAdvancedEventsLayouts.popular]: {\n game: { type: { '@in': [0, 1, 2] }, promoted: true },\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n }\n };\n\n return whereObj[layoutType];\n};\n\ntype TAdvancedSportsMenuProps = {\n layoutType: EAdvancedEventsLayouts;\n selectedSport: MenuItem | null | undefined;\n setSelectedSport: (selectedSport: MenuItem | null) => void;\n};\n\nexport const AdvancedSportsMenu = ({\n layoutType,\n selectedSport,\n setSelectedSport\n}: TAdvancedSportsMenuProps) => {\n const sports = useSelector(getAdvancedEventsLayoutSports)?.[layoutType];\n\n const { mounted } = useMounted();\n const configs = useSportsbookConfigs();\n const dispatch = useDispatch();\n\n const { orderSports } = useGetUserSportOrder();\n\n const orderedSports = useMemo(() => {\n if (sports) {\n if (sports.length) {\n return orderSports(sports);\n } else {\n return [];\n }\n }\n\n return null;\n }, [sports, orderSports]);\n\n const onSelectItem = useCallback(\n (sport: MenuItem) => {\n if (sport && sport.alias !== selectedSport?.alias) {\n setSelectedSport(sport);\n }\n },\n [selectedSport?.alias]\n );\n\n useLayoutEffect(() => {\n if (!selectedSport && orderedSports) {\n if (orderedSports.length) {\n setSelectedSport(orderedSports[0] as MenuItem);\n } else {\n setSelectedSport(null);\n }\n }\n }, [selectedSport, orderedSports]);\n\n useEffect(() => {\n const rid = RidGenerator.gForSubscribe(\n `ADVANCED_SPORTS_${layoutType.toUpperCase()}`\n );\n\n const onResponse = (data: { sport: Sport }) => {\n if (data && data.sport && mounted.current) {\n dispatch(\n setAdvancedEventsLayoutSports({\n data: sortByOrder(Object.values(data.sport)),\n key: layoutType\n })\n );\n }\n };\n\n const what = {\n sport: SPORTS_WHAT.sport,\n game: [['id']]\n };\n\n executeCommand(\n rid,\n what,\n getWhere(layoutType, configs.sportType),\n onResponse,\n true,\n onResponse\n );\n\n return () => {\n unsubscribeCommand(rid);\n };\n }, []);\n\n return (\n
\n \n
\n );\n};\n","import { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport cc from 'classcat';\nimport { isMobile } from 'utils/is-mobile';\nimport { Button } from 'newcomponents/UI/Button';\n\ntype TLoadMoreButtonProps = {\n onClick: () => void;\n loadMoreBtnLoading: boolean;\n};\n\nexport const LoadMoreButton = memo(\n ({ onClick, loadMoreBtnLoading }: TLoadMoreButtonProps) => {\n const { t } = useTranslation();\n\n return (\n \n \n {t('sportsbook.loadMore')}\n \n \n );\n }\n);\n","import { useCallback, useState } from 'react';\nimport { LoadMoreButton } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/LoadMoreButton';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport {\n AdvancedGameCardsWithMarketsFilters,\n TAdvancedGameCardsWithMarketsFiltersProps\n} from 'newcomponents/Shared/sportsbook/AdvancedMain/AdvancedGameCardsWithMarketsFilters/AdvancedGameCardsWithMarketsFilters';\n\nconst INITIAL_COUNT = 30;\nconst LOAD_MORE_COUNT = 50;\n\nexport const AdvancedGameCardsWithLoadMoreWrapper = ({\n gameIds,\n selectedSport,\n layoutType,\n selectedEventIds,\n streamData,\n skeletonCount = ADVANCED_SKELETON_COUNTS._3\n}: TAdvancedGameCardsWithMarketsFiltersProps) => {\n const [itemsSliceCount, setItemsSliceCount] = useState(INITIAL_COUNT);\n const [loadMoreBtnLoading, setLoadMoreBtnLoading] = useState(false);\n\n const loadMore = useCallback(() => {\n setLoadMoreBtnLoading(true);\n setItemsSliceCount(prevCount => prevCount + LOAD_MORE_COUNT);\n }, []);\n\n const isMoreDataAvailable = gameIds\n ? itemsSliceCount < gameIds.length\n : false;\n\n return (\n \n ) : null\n }\n />\n );\n};\n","import { PREMATCH_GAME_TYPE_FOR_SWARM } from 'utils/constants/sportsbook/data-fields';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\n\nexport const getGameWhereByLayoutType = ({\n layoutType\n}: {\n layoutType: EAdvancedEventsLayouts;\n}) => {\n const gameWhereObjByType = {\n live: { type: 1 },\n upcoming: PREMATCH_GAME_TYPE_FOR_SWARM,\n popular: {\n type: { '@in': [0, 1, 2] },\n promoted: true\n }\n };\n\n return gameWhereObjByType[layoutType];\n};\n","import { useCallback, useLayoutEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport cc from 'classcat';\nimport dayjs from 'dayjs';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { MenuItem } from 'interfaces/generic';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport { Region } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { AdvancedSportsMenu } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/__partials/AdvancedSportsMenu';\nimport { AdvancedGameCardsWithLoadMoreWrapper } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedGameCardsWithLoadMoreWrapper';\nimport { EGroupGamesBy } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout/AdvancedMatchCardsDesktop';\nimport { AdvancedShowAllEventsUnderlined } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedShowAllEventsUnderlined';\nimport { ADVANCED_SKELETON_COUNTS } from 'newelements/Sportsbook/layouts/advanced/constants/skeleton-counts';\nimport { getGameWhereByLayoutType } from 'newelements/Sportsbook/layouts/advanced/helpers/getGameWhereByLayoutType';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { AdvancedGameCardsWithMarketsFilters } from 'newcomponents/Shared/sportsbook/AdvancedMain/AdvancedGameCardsWithMarketsFilters/AdvancedGameCardsWithMarketsFilters';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n setAdvancedEventsLayoutGameIds,\n setAdvancedSportsForMarketsTypes,\n setSportsData as setMainSportMenuData,\n setSportsbookSelectedSport\n} from 'store/actions/new-sportsbook';\nimport { getEventIds } from 'store/selectors/betslip';\nimport {\n getAdvancedEventsLayoutGameIds,\n getSportsbookSelectedSport\n} from 'store/selectors/new-sportsbook';\nimport { getStreamData } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TAdvancedEventsLayoutProps = {\n layoutType: EAdvancedEventsLayouts;\n};\n\nconst GAMES_INITIAL_SHOW_COUNT = 3;\n\nexport const AdvancedEventsLayout = ({\n layoutType\n}: TAdvancedEventsLayoutProps) => {\n const configs = useSportsbookConfigs();\n\n const { t } = useTranslation();\n const dispatch = useDispatch();\n const { mounted } = useMounted();\n const history = useHistory();\n const { layoutType: selectedLayoutInQuery } = useSearchParams();\n const routeParams = useSbRouteMatch(\n `${mountPoint(\n window.getPathname()\n )}${`/:sport?/:region?/:competition?/:game?`}`\n );\n\n const sportInRoute = routeParams?.params?.sport;\n\n const selectedEventIds = useSelector(getEventIds).map(String);\n const streamData = useSelector(getStreamData);\n const gameIds = useSelector(getAdvancedEventsLayoutGameIds)[layoutType] || {};\n const mainSportsMenuSelectedSport = useSelector(getSportsbookSelectedSport);\n\n const [internalSelectedSport, setInternalSelectedSport] = useState<\n MenuItem | null | undefined\n >();\n\n const selectedSport = mainSportsMenuSelectedSport || internalSelectedSport;\n\n const noGamesAvailableForSelectedSport =\n !!selectedSport?.alias && gameIds[selectedSport.alias]?.length === 0;\n\n const noOverallData = internalSelectedSport === null;\n\n const isShowAllOrSportSelected =\n !!selectedLayoutInQuery || (!!sportInRoute && !routeParams?.params?.game);\n\n const gameIdsToShow =\n selectedSport?.alias && gameIds[selectedSport.alias]\n ? gameIds[selectedSport.alias]?.slice(\n 0,\n isShowAllOrSportSelected ? undefined : GAMES_INITIAL_SHOW_COUNT\n )\n : null;\n\n const shouldShowAllEventsButton =\n selectedSport &&\n gameIds[selectedSport.alias]?.length > GAMES_INITIAL_SHOW_COUNT &&\n !noGamesAvailableForSelectedSport &&\n !isShowAllOrSportSelected;\n\n const onSelectedSportChange = useCallback(\n (selectedSport: MenuItem | null) => {\n setInternalSelectedSport(selectedSport);\n\n if (selectedSport) {\n dispatch(setAdvancedSportsForMarketsTypes(selectedSport.alias));\n }\n },\n []\n );\n\n const onShowAllClick = () => {\n if (selectedSport) {\n const redirectPath = `${mountPoint(window.getPathname())}/${\n selectedSport.alias\n }?layoutType=${layoutType}`;\n\n history.push(redirectPath);\n dispatch(setSportsbookSelectedSport(selectedSport));\n dispatch(\n setMainSportMenuData({\n [configs.type]: null\n })\n );\n }\n };\n\n const showTitle =\n (selectedSport && gameIds[selectedSport.alias]?.length) ||\n selectedSport === null;\n\n useLayoutEffect(() => {\n if (!selectedSport?.alias) {\n return;\n }\n\n const rId = RidGenerator.gForSubscribe(\n `ADVANCED_GET_${layoutType.toUpperCase()}_${selectedSport.alias}_GAME_IDS`\n );\n\n const what = {\n competition: ['order'],\n region: ['order'],\n game: ['id', 'start_ts']\n };\n\n if (layoutType === EAdvancedEventsLayouts.popular) {\n what.game = [...what.game, 'favorite_order'];\n }\n\n const where = {\n sport: { alias: selectedSport.alias },\n game: getGameWhereByLayoutType({ layoutType })\n };\n\n const onResponse = (data: { region: Record }) => {\n if (data && data.region && mounted.current) {\n const gamesArr: { id: number; start_ts: number }[] = [];\n sortByOrder(Object.values(data.region)).forEach(region => {\n region.competition &&\n sortByOrder(Object.values(region.competition)).forEach(comp => {\n comp.game &&\n sortByOrder(Object.values(comp.game), 'start_ts').forEach(\n game => {\n gamesArr.push(game);\n }\n );\n });\n });\n\n const sortedAndFilteredGameIds = (\n layoutType === EAdvancedEventsLayouts.popular\n ? sortByOrder(gamesArr, 'favorite_order')\n : layoutType === EAdvancedEventsLayouts.upcoming\n ? sortByOrder(gamesArr, 'start_ts')\n : gamesArr\n )\n .filter(game =>\n SpringConfigs.MOCKED_DATA\n ? true\n : !!game.start_ts && game.start_ts > dayjs().startOf('day').unix()\n )\n .map(game => game.id);\n\n dispatch(\n setAdvancedEventsLayoutGameIds({\n data: {\n [selectedSport.alias]: sortedAndFilteredGameIds\n },\n key: layoutType\n })\n );\n }\n };\n\n executeCommand(rId, what, where, onResponse, true, onResponse);\n\n return () => {\n unsubscribeCommand(rId);\n };\n }, [selectedSport?.alias]);\n\n if (!!mainSportsMenuSelectedSport && noGamesAvailableForSelectedSport) {\n return null;\n }\n\n return (\n \n
\n \n {showTitle ? (\n <>\n {layoutType === EAdvancedEventsLayouts.live && (\n \n )}\n {t(`sportsbook.${EAdvancedEventsLayouts[layoutType]}`)}\n \n ) : (\n \n )}\n \n {shouldShowAllEventsButton && isMobile() && (\n \n {t('sportsbook.seeAll')}\n \n )}\n
\n {!isShowAllOrSportSelected && !noOverallData && (\n \n )}\n {noGamesAvailableForSelectedSport || noOverallData ? (\n \n ) : isShowAllOrSportSelected &&\n layoutType === EAdvancedEventsLayouts.upcoming ? (\n \n ) : (\n \n )}\n {((shouldShowAllEventsButton && !isMobile()) || gameIdsToShow === null) &&\n !noOverallData && (\n \n )}\n \n );\n};\n","import i18n from 'i18next';\nimport { AdvancedFilters } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/index';\n\nexport enum EAdvancedSportFilters {\n NOW_NEXT = '0',\n COMPETITIONS = '1',\n COUPONS = '2'\n}\n\nconst FILTER_ITEMS = [\n {\n key: EAdvancedSportFilters.NOW_NEXT,\n title: i18n.t('sportsbook.nowAndNext')\n },\n {\n key: EAdvancedSportFilters.COMPETITIONS,\n title: i18n.t('sportsbook.competitions')\n },\n {\n key: EAdvancedSportFilters.COUPONS,\n title: i18n.t('sportsbook.coupons')\n }\n];\n\nconst SPORT_FILTERS_QUERY_KEY = 'viewBy';\n\nexport const SportFilters = () => {\n return (\n \n );\n};\n","import { Suspense, useMemo } from 'react';\nimport { PREMATCH_GAME_TYPE_FOR_SWARM } from 'utils/constants/sportsbook/data-fields';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { isMobile } from 'utils/is-mobile';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport {\n TFilteredCouponLayoutsForRanges,\n TIME_RANGES_BY_COUPON_LAYOUT\n} from 'newelements/Sportsbook/layouts/advanced/constants/coupon-time-ranges';\nimport { getGameWhereByLayoutType } from 'newelements/Sportsbook/layouts/advanced/helpers/getGameWhereByLayoutType';\nimport { MenuUnderlineSkeleton } from 'newcomponents/UI/Menu/layouts/underline/skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\n\nconst { SportsbookSportsMenu } = lazy(\n () =>\n import(\n /* webpackChunkName: \"sportsbook-sports-menu\" */ 'newelements/Sportsbook/__partials/SportsbookSportsMenu'\n )\n);\n\nconst { SportsMenuWithFavorite } = lazy(\n () =>\n import(\n /* webpackChunkName: \"sportsbook-sports-menu-with-favorite\" */ 'newelements/Sportsbook/__partials/SportsbookSportsMenu/SportsMenuWithFavorite'\n )\n);\n\nexport const AdvancedMainSportsMenu = () => {\n const {\n layoutType: selectedLayoutInQuery,\n coupon: selectedCouponInQuery\n }: {\n layoutType?: EAdvancedEventsLayouts;\n coupon?: TFilteredCouponLayoutsForRanges;\n } = useSearchParams();\n\n const configs = useSportsbookConfigs();\n\n const whereParams = useMemo(() => {\n if (SpringConfigs.MOCKED_DATA) {\n return null;\n }\n\n if (selectedLayoutInQuery) {\n return {\n game: getGameWhereByLayoutType({ layoutType: selectedLayoutInQuery })\n };\n }\n\n if (selectedCouponInQuery) {\n const ranges = TIME_RANGES_BY_COUPON_LAYOUT[selectedCouponInQuery];\n\n return {\n game: {\n start_ts: ranges,\n ...PREMATCH_GAME_TYPE_FOR_SWARM\n }\n };\n }\n\n return {\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(configs.sportType)\n }\n }\n };\n }, [selectedLayoutInQuery, selectedCouponInQuery]);\n\n return (\n }>\n {isMobile() ? (\n \n ) : (\n \n )}\n \n );\n};\n","import { Suspense, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { lazy } from 'utils/generic/lazy';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n EAdvancedCouponsLayouts,\n EAdvancedEventsLayouts\n} from 'interfaces/sportsbook';\nimport { SportsHeader } from '../../../../../__partials/SportsHeader';\nimport { TopLeagueCompactMenuItem } from 'elements/SportsbookLeftSideBar/partials/TopLeagueCompactMenuItem';\nimport { AdvancedCompetitionsBySportLayout } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCompetitionsBySportLayout';\nimport { AdvancedCouponsLayout } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedCouponsLayout';\nimport { AdvancedEventsLayout } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedEventsLayout';\nimport {\n EAdvancedSportFilters,\n SportFilters\n} from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedFilters/SportFilters';\nimport { AdvancedGamesByCompetitions } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions';\nimport {\n AdvancedHeaderBreadcrumb,\n TBreadcrumbItemType\n} from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedHeaderBreadcrumb';\nimport { AdvancedMainSportsMenu } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainSportsMenu';\nimport { EmptyMatches } from 'components/EmptyResultBoxes/EmptyMatches';\nimport { FavoritesSkeleton } from 'components/Shared/Favorites/FavoritesSkeleton';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { Skeleton } from 'newcomponents/UI/Skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useContentHeight } from 'hooks/useContentHeight';\nimport { useSearchParams } from 'hooks/useSearchParams';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getFavoriteEntitiesCount } from 'store/selectors/fav-data';\nimport {\n getSportsbookSelectedSport,\n getSportsData\n} from 'store/selectors/new-sportsbook';\n\nconst { Favorite } = lazy(\n () =>\n import(\n /* webpackChunkName: \"sportsbook-favorites\" */ 'components/Shared/Favorites/Favorite'\n )\n);\n\nconst translationKeysByView = {\n [EAdvancedSportFilters.NOW_NEXT]: 'nowAndNext',\n [EAdvancedSportFilters.COMPETITIONS]: 'competitions',\n [EAdvancedSportFilters.COUPONS]: 'coupons'\n};\n\nexport const GeneralEventsView = () => {\n const { t } = useTranslation();\n const contentHeight = useContentHeight(false);\n const configs = useSportsbookConfigs();\n\n const {\n layoutType: selectedLayoutInQuery,\n viewBy: selectedSportViewByFilterInQuery,\n coupon: selectedCouponInQuery\n }: {\n layoutType?: EAdvancedEventsLayouts;\n viewBy?: EAdvancedSportFilters;\n coupon?: EAdvancedCouponsLayouts;\n } = useSearchParams();\n\n const routeParams = useSbRouteMatch(\n `${mountPoint(\n window.getPathname()\n )}${`/:sport?/:region?/:competition?/:game?`}`\n );\n\n const sportsData = useSelector(getSportsData)?.[configs.type];\n const mainSportsMenuSelectedSport = useSelector(getSportsbookSelectedSport);\n const favoritesCount = useSelector(\n getFavoriteEntitiesCount\n ).sportsWithCompetitions;\n\n const sportInRoute = routeParams?.params?.sport;\n\n const isMainSportSelected = !!sportInRoute && !selectedLayoutInQuery;\n\n const breadcrumbItems: TBreadcrumbItemType[] = useMemo(() => {\n if (isMainSportSelected && mainSportsMenuSelectedSport?.name) {\n return [\n {\n id: 1,\n title: `${mainSportsMenuSelectedSport.name} - ${t(\n `sportsbook.${\n translationKeysByView[\n selectedSportViewByFilterInQuery ||\n EAdvancedSportFilters.NOW_NEXT\n ]\n }`\n )}`,\n active: true\n }\n ];\n }\n\n if (selectedLayoutInQuery && mainSportsMenuSelectedSport) {\n return [\n {\n id: 2,\n title: `${mainSportsMenuSelectedSport.name}`,\n active: true\n }\n ];\n }\n\n return [\n {\n id: 1,\n title: (\n \n ),\n active: true\n }\n ];\n }, [\n isMainSportSelected,\n mainSportsMenuSelectedSport?.name,\n selectedSportViewByFilterInQuery\n ]);\n\n const generateContent = () => {\n if (isMainSportSelected) {\n if (\n selectedSportViewByFilterInQuery === EAdvancedSportFilters.COMPETITIONS\n ) {\n return ;\n }\n\n if (selectedSportViewByFilterInQuery === EAdvancedSportFilters.COUPONS) {\n return ;\n }\n\n if (selectedCouponInQuery) {\n return ;\n }\n }\n\n return (\n <>\n {!selectedLayoutInQuery && isMobile() && !isMainSportSelected && (\n
\n \n
\n )}\n {[\n EAdvancedEventsLayouts.live,\n EAdvancedEventsLayouts.popular,\n EAdvancedEventsLayouts.upcoming\n ].map(layout => {\n if (selectedLayoutInQuery) {\n if (selectedLayoutInQuery === layout) {\n return ;\n }\n\n return null;\n }\n\n if (\n sportInRoute &&\n layout === EAdvancedEventsLayouts.popular &&\n !routeParams.params.game\n ) {\n return null;\n }\n\n return ;\n })}\n \n );\n };\n\n const shouldShowMainBreadcrumb =\n (isMainSportSelected || !!selectedLayoutInQuery) && !selectedCouponInQuery;\n\n if (sportsData === undefined) {\n return (\n \n \n \n );\n }\n\n return (\n <>\n \n {isMobile() && sportInRoute === 'favorite' && (\n \n )}\n {isMobile() && sportInRoute === 'favorite' ? (\n favoritesCount ? (\n }>\n \n \n ) : (\n \n )\n ) : (\n <>\n {shouldShowMainBreadcrumb && (\n \n )}\n {isMainSportSelected && !selectedCouponInQuery && }\n {generateContent()}\n \n )}\n \n );\n};\n","import { useSelector } from 'react-redux';\nimport { Route } from 'react-router-dom';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { routePathWithMockedDataCheck } from 'utils/helpers';\nimport { isMobile } from 'utils/is-mobile';\nimport { SingleGameView } from 'newelements/Sportsbook/__partials/SingleGameView';\nimport { AdvancedGamesByCompetitions } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/AdvancedGamesByCompetitions';\nimport { GeneralEventsView } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/__partials/GeneralEventsView';\nimport { useAdvancedMarkets } from 'newelements/Sportsbook/layouts/advanced/__partials/AdvancedMainContent/useAdvancedMarkets';\nimport {\n DESKTOP_MAIN_CONTENT_ID,\n MOBILE_MAIN_CONTENT_ID\n} from 'newelements/Sportsbook/layouts/advanced/constants/elements-ids';\nimport { QueryRoute } from 'components/QueryRoute';\nimport { HooryAiCardLazyWrapper } from 'newcomponents/Shared/generic/HooryAI/HooryAICard/HooryAiCardLazyWrapper';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { getSportsData } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nexport const AdvancedMainContent = () => {\n const configs = useSportsbookConfigs();\n\n useAdvancedMarkets();\n\n const sportsData = useSelector(getSportsData)?.[configs.type];\n\n const isNoLiveGamesAvailable = sportsData === undefined;\n\n return (\n \n {\n const { sport, region, competition, game } = routeParams.match.params;\n\n if (sport && region && competition && game && !isMobile()) {\n return ;\n } else {\n return (\n <>\n {isMobile() && }\n }\n />\n }\n />\n \n );\n }\n }}\n />\n \n );\n};\n","export const MOBILE_MAIN_CONTENT_ID = 'advancedMainContentWrapperMobile';\nexport const DESKTOP_MAIN_CONTENT_ID = 'advancedMainContentWrapper';\n","import { useLayoutEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CommandNames } from 'utils/constants/swarm/swarm-command-names';\nimport { TMarketType, TMarketTypeResponse } from 'interfaces/sportsbook';\nimport { swarmCommand } from 'services/get-swarm-data';\nimport { setMarketType, setMarketTypes } from 'store/actions';\nimport { getAdvancedSportsForMarketsTypes } from 'store/selectors/new-sportsbook';\n\nconst SENT_REQUESTS_BY_SPORT_ALIAS: Record = {};\n\nexport const useAdvancedMarkets = (doNotUseCache?: boolean) => {\n const dispatch = useDispatch();\n const sportAliases = useSelector(getAdvancedSportsForMarketsTypes);\n\n useLayoutEffect(() => {\n const promiseMarketsSwarmRequest: Promise>[] =\n [];\n\n if (sportAliases.length) {\n sportAliases.forEach(sportAlias => {\n if (\n sportAlias &&\n (doNotUseCache || !SENT_REQUESTS_BY_SPORT_ALIAS[sportAlias])\n ) {\n SENT_REQUESTS_BY_SPORT_ALIAS[sportAlias] = true;\n\n promiseMarketsSwarmRequest.push(\n new Promise(resolve => {\n swarmCommand(\n CommandNames.GET_MARKET_TYPE,\n { sport_alias: sportAlias },\n (data: TMarketTypeResponse) => {\n if (!data.details) {\n return;\n }\n\n const markets = data.details\n .sort((a, b) => a.Order - b.Order)\n .map(\n ({\n MarketTypeName,\n BasaltKind,\n SelectionTypesNames\n }) => ({\n label: MarketTypeName.replace(\n /\\{sw\\}|\\{pw\\}|\\{s\\}/g,\n ''\n ),\n value: BasaltKind,\n selectionTypesNames: SelectionTypesNames\n })\n );\n\n resolve({ [sportAlias]: markets });\n }\n );\n })\n );\n }\n });\n\n if (promiseMarketsSwarmRequest.length) {\n Promise.all(promiseMarketsSwarmRequest).then(marketsData => {\n let markets: { [key: string]: TMarketType[] } = {};\n marketsData.forEach(data => {\n markets = { ...data, ...markets };\n });\n\n const sportAlias = Object.keys(markets).sort()[0];\n\n if (doNotUseCache) {\n dispatch(setMarketTypes(markets));\n dispatch(setMarketType({ [sportAlias]: markets[sportAlias][0] }));\n } else {\n dispatch(setMarketTypes(marketsData[0]));\n dispatch(setMarketType({ [sportAlias]: markets[sportAlias][0] }));\n }\n });\n }\n }\n }, [sportAliases.length]);\n};\n","import React, { Suspense, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { GLOBALS } from 'utils/generic/global-variables';\nimport { lazy } from 'utils/generic/lazy';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ESportsbookLayoutTypes } from 'interfaces/sportsbook-configs';\nimport { Game } from 'interfaces/sportsbook-data-levels';\nimport { ExpandedMarkets } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedMatchCard/ExpandedMarkets';\nimport { TMatchCardInlineProps } from 'components/MatchCardInline';\nimport { MatchCardInlineSkeleton } from 'components/MatchCardInline/Skeleton';\nimport { saveCurrentLocation } from 'components/QueryRoute';\nimport { MatchCardInlineUSASkeleton } from 'components/Shared/MatchCardInlineUSA/__partials/Skeleton';\nimport { ORIGINAL_MARKET_COUNT } from 'newcomponents/Shared/sportsbook/SportsbookGameList';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { getMarketsCount } from 'store/selectors/new-sportsbook';\nimport './index.less';\n\nconst { MatchCardInlineUSA } = lazy(\n () =>\n import(\n /* webpackChunkName: \"events-item-view-usa\" */ 'components/Shared/MatchCardInlineUSA'\n )\n);\n\nconst { MatchCardInline } = lazy(\n () =>\n import(\n /* webpackChunkName: \"match-card-in-line\" */ 'components/MatchCardInline'\n )\n);\n\ntype TAdvancedMatchCardInLineWrapperProps = {\n handleMatchCardClick: ({\n sportAlias,\n regionAlias,\n competitionId,\n gameId\n }: {\n sportAlias: string;\n regionAlias: string;\n competitionId: number;\n gameId: number;\n }) => void;\n};\n\nexport const AdvancedMatchCardInLineWrapper = ({\n game,\n handleMatchCardClick,\n isLive\n}: Omit &\n TAdvancedMatchCardInLineWrapperProps) => {\n const [showExpandedMarkets, setShowExpandedMarkets] = useState(false);\n\n const configs = useSportsbookConfigs();\n const { spbLayoutType: layoutType } = configs;\n const { params } = useSbRouteMatch();\n const getterParam = `${!isLive ? params.competition : params.sport}_${\n configs.pageType\n }`;\n\n const marketsCount = useSelector(getMarketsCount)[getterParam] || null;\n\n const { isExact } = useSbRouteMatch(\n `${mountPoint(location.pathname)}/team/:sport/:teamId?`\n );\n\n const handleMatchCardClickWrapper = () => {\n if (isExact) {\n GLOBALS.sportsBook.redirectedFromFavorite = true;\n }\n\n if (window.getPathname().includes(`/${ENotRealSports.team}`)) {\n saveCurrentLocation('mobileSportsbookGames');\n }\n\n handleMatchCardClick({\n sportAlias: game.sport_alias || '',\n regionAlias: game.regionAlias || '',\n competitionId: game.competitionId || 0,\n gameId: game.id\n });\n };\n\n const originalMarketsCount = SpringConfigs.MOCKED_DATA\n ? ORIGINAL_MARKET_COUNT\n : marketsCount?.[game.id];\n\n return (\n \n {layoutType === ESportsbookLayoutTypes.AMERICAN ? (\n }>\n \n \n ) : (\n }>\n \n \n )}\n\n {showExpandedMarkets && game && (\n \n )}\n \n );\n};\n","export const ADVANCED_SKELETON_COUNTS = { _3: 3, _4: 4, _5: 5, _15: 15 };\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport {\n competitions,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { ADVANCED_LEFT_MENU_DATA_REDUX_KEY } from 'newelements/Sportsbook/layouts/advanced/Desktop/__partials/AdvancedLeftSideBar/AdvancedLeftMenu';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { setSwarmResponse } from 'store/actions/new-sportsbook';\n\nexport const useGetAdvancedSportsMainData = () => {\n const { sportType } = useSportsbookConfigs();\n\n const { mounted } = useMounted();\n const dispatch = useDispatch();\n\n useEffect(() => {\n const rid = RidGenerator.gForSubscribe('ADVANCED_LEFT_MENU');\n\n const what = {\n sport: sports.sport,\n competition: competitions.competition,\n region: regions.region,\n game: ['type', 'start_ts']\n };\n\n const where = {\n ...(sportType\n ? {\n sport: {\n type: {\n '@in': getLivePreMatchSportTypes(sportType)\n }\n }\n }\n : {}),\n game: { type: { '@in': [0, 1, 2] } }\n };\n\n const onResponse = (resp: { sport: Record }) => {\n if (resp && resp.sport && mounted.current) {\n dispatch(\n setSwarmResponse({ [ADVANCED_LEFT_MENU_DATA_REDUX_KEY]: resp.sport })\n );\n }\n };\n\n const onDataNotFoundOrError = () => {\n dispatch(setSwarmResponse({ [ADVANCED_LEFT_MENU_DATA_REDUX_KEY]: {} }));\n };\n\n executeCommand(\n rid,\n what,\n where,\n onResponse,\n true,\n onResponse,\n onDataNotFoundOrError\n );\n\n return () => {\n unsubscribeCommand(rid);\n };\n }, []);\n};\n","import { useLayoutEffect, useRef } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { EAdvancedEventsLayouts } from 'interfaces/sportsbook';\nimport { addQuery } from 'components/QueryRoute';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSearchParams } from 'hooks/useSearchParams';\n\nexport const useAdvancedInitialRedirection = () => {\n const history = useHistory();\n const isInitialMountRef = useRef(true);\n const configs = useSportsbookConfigs();\n\n const { layoutType, coupon, filterBy, viewBy } = useSearchParams();\n\n useLayoutEffect(() => {\n if (\n !SpringConfigs.MOCKED_DATA &&\n isInitialMountRef.current &&\n configs.type === 'live' &&\n !layoutType &&\n !coupon &&\n !filterBy &&\n !viewBy\n ) {\n isInitialMountRef.current = false;\n\n history.push(addQuery({ layoutType: EAdvancedEventsLayouts.live }));\n }\n }, [layoutType]);\n};\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { TMarketCountResponse } from 'interfaces/sportsbook';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { setMarketsCount } from 'store/actions/new-sportsbook';\nimport { getMarketsCount } from 'store/selectors/new-sportsbook';\n\ntype TUseGetMarketsCountsProps = {\n gameIds: number[] | null;\n reduxKey: string;\n};\n\ntype TUseGetMarketsCountsReturnValue = {\n marketsCounts: Record;\n};\n\nexport const useGetMarketsCounts = ({\n gameIds,\n reduxKey\n}: TUseGetMarketsCountsProps): TUseGetMarketsCountsReturnValue => {\n const dispatch = useDispatch();\n\n const marketsCounts = useSelector(getMarketsCount)[reduxKey];\n\n useEffect(() => {\n if (SpringConfigs.MOCKED_DATA) {\n return;\n }\n\n if (gameIds?.length) {\n const marketsCountRid = RidGenerator.gForSubscribe('marketsCountRid');\n\n const what = {\n market: '@count',\n game: ['id']\n };\n\n const where = {\n game: {\n id: {\n '@in': gameIds\n }\n }\n };\n\n const updateMarketsCount = (resp: TMarketCountResponse) => {\n if (resp?.game) {\n const markets = Object.values(resp.game).reduce(\n (result: Record, { id, market }) => {\n result[id] = market;\n\n return result;\n },\n {}\n );\n\n dispatch(setMarketsCount({ [reduxKey]: markets }));\n }\n };\n\n executeCommand(\n marketsCountRid,\n what,\n where,\n updateMarketsCount,\n true,\n updateMarketsCount\n );\n\n return () => {\n if (gameIds?.length) {\n unsubscribeCommand(marketsCountRid);\n }\n };\n }\n }, [gameIds?.join('')]);\n\n return {\n marketsCounts: SpringConfigs.MOCKED_DATA ? {} : marketsCounts\n };\n};\n","import { useLayoutEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { EAdvancedCouponsLayouts } from 'interfaces/sportsbook';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useSbSportsbookRouteMatch } from 'newhooks/sportsbook/useSbSportsbookRouteMatch';\n\nconst SOCCER_ALIAS = 'Soccer';\n\nexport const useRedirectToAdvancedRoute = () => {\n const history = useHistory();\n\n const generatedUrl = useSbSportsbookRouteMatch(\n '/:sport?/:region?/:competition?/:game?'\n );\n\n const routeParams = useSbRouteMatch(generatedUrl);\n\n useLayoutEffect(() => {\n if (routeParams) {\n const { params, path } = routeParams;\n\n if (params.category && params.category === ENotRealSports.todayEvents) {\n // as we don't know which sport to select, we decided to redirect to Soccer\n const newRoute = `${getMountPath(path)}/${SOCCER_ALIAS}ss?coupon=${\n EAdvancedCouponsLayouts.todayMatches\n }`;\n\n history.push(newRoute);\n\n return;\n }\n\n if (params.sport && params.region && params.competition && !params.game) {\n const newRoute = `${getMountPath(path)}?compIds=${params.competition}`;\n\n history.push(newRoute);\n }\n }\n }, [routeParams?.params]);\n};\n","import { ReactElement, Suspense, useLayoutEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RouteComponentProps } from 'react-router';\nimport { Route, withRouter } from 'react-router-dom';\nimport cc from 'classcat';\nimport { ColSizes } from 'utils/constants/app/ui';\nimport { DESKTOP_RIGHT_WRAPPER_Z_INDEX } from 'utils/constants/sportsbook/generic';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { mountPoint } from 'utils/generic/route-manipulation';\nimport { routePathWithMockedDataCheck } from 'utils/helpers';\nimport { isMobile } from 'utils/is-mobile';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { ESportsbookPageTypes } from 'interfaces/sportsbook-configs';\nimport { FirstColumnContent } from './FirstColumnContent';\nimport { SecondColumnContent } from './SecondColumnContent';\nimport { Statscore } from 'elements/Statscore';\nimport { NoItem } from 'components/Shared/NoItem';\nimport { DesktopRight } from 'newcomponents/Shared/DesktopRight';\nimport { HooryAiCardLazyWrapper } from 'newcomponents/Shared/generic/HooryAI/HooryAICard/HooryAiCardLazyWrapper';\nimport { HooryAICompact } from 'newcomponents/Shared/generic/HooryAI/HooryAICompact';\nimport { Col } from 'newcomponents/UI/Col';\nimport { LivePrematchTabsSkeleton } from 'newcomponents/UI/LivePrematchTabsSkeleton';\nimport { MenuUnderlineSkeleton } from 'newcomponents/UI/Menu/layouts/underline/skeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { useSbSportsbookRouteMatch } from 'newhooks/sportsbook/useSbSportsbookRouteMatch';\nimport { setShowNoItemWrapper } from 'store/actions/new-sportsbook';\nimport {\n getShowNoItemWrapper,\n getSportsData\n} from 'store/selectors/new-sportsbook';\nimport '../../index.less';\nimport './index.less';\n\nconst { LivePrematchTabs } = lazy(\n () =>\n import(\n /* webpackChunkName: \"live-prematch-tabs\" */ 'components/LivePrematchSwitcher/livePrematchTabs'\n )\n);\n\nconst { SportsbookSportsMenu } = lazy(\n () =>\n import(\n /* webpackChunkName: \"sportsbook-sports-menu\" */ 'newelements/Sportsbook/__partials/SportsbookSportsMenu'\n )\n);\n\nconst { DesktopPrematchSportsMenu } = lazy(\n () =>\n import(\n /* webpackChunkName: \"sports-menu-prematch-desktop\" */ 'newelements/Sportsbook/__partials/SportsbookSportsMenu/DesktopPrematchSportsMenu'\n )\n);\n\nexport type TDesktopSportsbookProps = RouteComponentProps & {\n configs: {\n fixedScroll: boolean;\n fit: 'cover' | 'contain';\n type: 'live' | 'prematch';\n category: 'sport' | 'esport';\n spbLayoutType?: number;\n sportType: string;\n favoriteTeam?: boolean;\n };\n};\n\nexport const INFINITE_SCROLL_ID = 'InfiniteScrollId';\n\nconst _DesktopSportsbookClassic = ({\n location\n}: TDesktopSportsbookProps): ReactElement => {\n const dispatch = useDispatch();\n const configs = useSportsbookConfigs();\n const isLive = configs.pageType === ESportsbookPageTypes.live;\n\n const generatedSbPath = useSbSportsbookRouteMatch(\n '/:sport?/:region?/:competition?/:game?'\n );\n\n const routeParams = useSbRouteMatch(\n `${mountPoint(location.pathname)}/:sport?/:region?/:competition?`\n );\n\n const { t } = useTranslation();\n\n const sportsData = useSelector(getSportsData)?.[configs.type];\n\n const showNoItemWrapper = useSelector(getShowNoItemWrapper);\n\n const isCoupon = routeParams?.params?.sport === ENotRealSports.coupon;\n const showSideBar =\n SpringConfigs.LEFT_SIDE_BAR &&\n (SpringConfigs.LEFT_SIDE_BAR_SPORTS || SpringConfigs.LEFT_SIDE_BAR_CASINO);\n\n useLayoutEffect(() => {\n dispatch(\n setShowNoItemWrapper({\n game: false,\n competitions: false,\n regions: false\n })\n );\n }, [location.pathname]);\n\n const NoItemContainer =\n showNoItemWrapper.competitions && showNoItemWrapper.game;\n\n const isEmptySportData = sportsData === undefined;\n\n return (\n \n \n \n \n {SpringConfigs.LIVE_PREMATCH_SWITCHER && (\n \n }\n >\n \n \n )}\n\n \n \n \n {!isMobile() && }\n\n \n ) : null\n }\n >\n {isEmptySportData ? null : isLive ? (\n \n ) : (\n \n )}\n \n\n {NoItemContainer || isEmptySportData ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n );\n};\n\nexport const DesktopSportsbookClassic: ReturnType | any =\n withRouter(_DesktopSportsbookClassic);\n","import { ReactElement } from 'react';\nimport { EPageTypes } from 'interfaces/sportsbook';\nimport {\n ESportsbookPageTypes,\n TSportsbookConfigs\n} from 'interfaces/sportsbook-configs';\nimport { SportsbookLeftSideBar } from 'elements/SportsbookLeftSideBar';\nimport { FavoriteSideBarSearchSection } from 'elements/SportsbookLeftSideBar/FavoriteSideBarSearchSection';\nimport { SportsbookGameListWrapper } from 'newcomponents/Shared/sportsbook/SportsbookGameListWrapper';\n\ntype TFirstColumnContentProps = {\n isLive: boolean;\n configs: TSportsbookConfigs;\n};\n\nexport const FirstColumnContent = ({\n isLive,\n configs\n}: TFirstColumnContentProps): ReactElement => {\n if (isLive) {\n return (\n <>\n \n \n \n );\n }\n\n return (\n \n );\n};\n","import styled from 'styled-components';\n\nexport const DropdownStyled = styled.div`\n display: flex;\n align-items: center;\n color: var(--v3-text-color);\n justify-content: space-between;\n background: var(--v3-black-1);\n padding: 8px 10px;\n margin-bottom: 4px;\n min-height: 40px;\n & > div {\n margin: 0 0 0 5px;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n`;\n","import { ReactElement } from 'react';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { DropdownStyled } from './style';\nimport { MarketsFilter } from 'components/SportsbookCompetitionViewCollapse/__partials/MarketFilter';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { SportsbookGameListHeaderSkeleton } from 'newcomponents/Shared/sportsbook/SportsbookGameListHeaderSkeleton';\n\nexport const DesktopGameListSkeleton = ({\n isLive,\n category\n}: {\n category?: string | ENotRealSports;\n isLive: boolean;\n}): ReactElement => {\n return (\n <>\n \n \n \n \n \n \n );\n};\n","import { ReactElement } from 'react';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n ESportsbookPageTypes,\n TSportsbookConfigs\n} from 'interfaces/sportsbook-configs';\nimport { MarketsListSkeleton } from 'components/MarketsList/Skeleton';\nimport { MatchHeader } from 'components/MatchHeader/Prematch';\nimport { MatchInfoCard } from 'components/MatchInfoCard';\nimport { TGameDataWithMoreInfo } from 'store/reducers/new-sportsbook';\n\ntype TProps = {\n configs: TSportsbookConfigs;\n};\n\nexport const DesktopSingleGameViewSkeleton = ({\n configs\n}: TProps): ReactElement => {\n const isLive = configs.pageType === ESportsbookPageTypes.live;\n const isESport = configs.pageType === ESportsbookPageTypes.esport;\n\n return (\n \n {SpringConfigs.MOCKED_DATA ? (\n \n ) : (\n <>\n {!isLive && !isMobile() && !isESport && (\n \n )}\n {isLive && !isMobile() && !isESport && (\n <>\n {/* @ts-ignore */}\n \n \n )}\n \n \n )}\n \n );\n};\n","import { ReactElement, useEffect, useState } from 'react';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport { EIconSize } from 'utils/constants/app/ui';\nimport { Game } from 'interfaces/sportsbook-data-levels';\nimport { EventCollapse } from 'components/EventCollapse';\nimport { GlobalIcon } from 'components/GlobalIcon';\nimport { MatchCardInline } from 'components/MatchCardInline';\nimport './index.less';\n\ntype TCompetitionCollapseProps = {\n onClick: (\n sportAlias: string,\n regionAlias: string,\n compId: number,\n gameId: number\n ) => void;\n compId: number;\n regionAlias: string;\n compName: string;\n isActive: boolean;\n games: Record;\n sportAlias: string;\n sportName: string;\n activeGameId: string;\n isFirstCompetition?: boolean;\n selectedCompetition?: string;\n comp?: { id: number; game?: Record; name: string };\n};\n\nexport const CompetitionCollapse = ({\n onClick,\n compId,\n regionAlias,\n compName,\n isActive,\n games,\n sportAlias,\n sportName,\n isFirstCompetition,\n selectedCompetition,\n activeGameId,\n comp\n}: TCompetitionCollapseProps): ReactElement => {\n const collapseDefaultActive =\n (isFirstCompetition && !selectedCompetition) || isActive;\n\n const [isOpen, setIsOpen] = useState(collapseDefaultActive);\n\n useEffect(() => {\n const selectedCompNoGameId =\n selectedCompetition && comp?.id === +selectedCompetition && !activeGameId;\n\n const firstSelectedGame = selectedCompNoGameId ? comp?.game || {} : games;\n\n if ((isFirstCompetition && !selectedCompetition) || selectedCompNoGameId) {\n const firstGame = sortByOrder(\n Object.values(firstSelectedGame),\n 'start_ts'\n )?.[0];\n\n if (firstGame) {\n onClick(sportAlias, regionAlias, compId, firstGame.id);\n }\n }\n }, [isFirstCompetition, selectedCompetition, games]);\n\n return (\n \n \n {compName}\n \n }\n defaultActive={isOpen || collapseDefaultActive}\n >\n <>\n {sortByOrder(Object.values(games), 'start_ts').map(game => (\n {\n setIsOpen(true);\n onClick(sportAlias, regionAlias, compId, game.id);\n }}\n longDate\n />\n ))}\n \n \n );\n};\n","import { ReactElement, useCallback, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useHistory } from 'react-router-dom';\nimport { sortByOrder } from 'utils/collection-manipulation/array-sort-by';\nimport {\n competitions,\n gameSportcastId,\n gameSportcastIdWhere,\n regions,\n sports\n} from 'utils/constants/sportsbook/data-fields';\nimport { getMountPath } from 'utils/generic/route-manipulation';\nimport { SPORTSBOOK_ROUTE_WITH_CATEGORY } from 'utils/sportsbook/route.structure';\nimport { getLivePreMatchSportTypes } from 'utils/sportsbook/sport-data';\nimport RidGenerator from 'utils/swarm/rid-generator';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { Sport } from 'interfaces/sportsbook-data-levels';\nimport { executeCommand, unsubscribeCommand } from 'services/get-data-level';\nimport { CompetitionCollapse } from './CompetitionCollapse';\nimport { CompetitionSkeleton } from 'components/UI/Skeletons/CompetitionSkeleton';\nimport { useSportsbookConfigs } from 'hooks/sportsbook/useSportsbookConfigs';\nimport { useMounted } from 'hooks/useMounted';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport { setSportRegionCompData } from 'store/actions/new-sportsbook';\nimport {\n getShowNoItemWrapper,\n getSportRegionCompData\n} from 'store/selectors/new-sportsbook';\nimport { getPrematchBoostedOddsIds } from 'store/selectors/sport-data';\nimport './index.less';\n\ntype TBoostedOddsLayoutProps = {\n sportCategory: ENotRealSports;\n};\n\nexport const GamesByCompetitionsCollapse = ({\n sportCategory\n}: TBoostedOddsLayoutProps): ReactElement | null => {\n const configs = useSportsbookConfigs();\n\n const dispatch = useDispatch();\n const history = useHistory();\n const { mounted } = useMounted();\n const routeParams = useSbRouteMatch(SPORTSBOOK_ROUTE_WITH_CATEGORY);\n\n const sportAlias = routeParams?.params.sport || '';\n const reduxKey = `${sportCategory}_${sportAlias}`;\n\n const boostedGameIDs = useSelector(getPrematchBoostedOddsIds);\n const showNoItemWrapper = useSelector(getShowNoItemWrapper);\n const gamesData = useSelector(getSportRegionCompData)?.[reduxKey];\n\n useEffect(() => {\n let shouldUnsubscribe = false;\n\n if (!sportAlias) {\n return;\n }\n\n if (sportCategory === ENotRealSports.boostedOdds && !boostedGameIDs) {\n return;\n }\n\n shouldUnsubscribe = true;\n const where: Record = {\n game: {\n type: {\n '@in': [0, 2]\n },\n id: {\n '@in': boostedGameIDs\n }\n },\n sport: {\n alias: sportAlias\n },\n market: {\n '@or': [\n {\n display_key: { '@in': ['HANDICAP', 'TOTALS'] },\n display_sub_key: 'MATCH',\n main_order: 1\n },\n { display_key: 'WINNER', display_sub_key: 'MATCH' },\n { display_key: 'OUTRIGHT' }\n ]\n }\n };\n\n if (configs.sportType) {\n where.sport = {\n ...where.sport,\n type: {\n '@in': getLivePreMatchSportTypes(configs.sportType)\n }\n };\n }\n\n const what = {\n region: regions.region,\n competition: competitions.competition,\n sport: sports.sport,\n game: [\n 'id',\n 'team1_name',\n 'team2_name',\n 'team1_id',\n 'team2_id',\n 'order',\n 'start_ts',\n 'markets_count',\n 'is_blocked',\n 'show_type',\n 'sportcast_id',\n 'sport_id',\n 'is_stat_available'\n ],\n market: [\n 'name',\n 'order',\n 'type',\n 'id',\n 'base',\n 'express_id',\n 'col_count',\n 'main_order'\n ],\n event: ['name', 'id', 'price', 'base', 'order', 'type_1']\n };\n\n if (sportCategory === ENotRealSports.betBuilder) {\n delete where.game.id;\n\n where.game.sportcast_id = gameSportcastIdWhere;\n\n if (!what.game.includes(gameSportcastId[0])) {\n what.game.push(gameSportcastId[0]);\n }\n }\n\n if (sportCategory === ENotRealSports.topMatches) {\n delete where.game.id;\n\n where.game.promoted = true;\n }\n\n const Rid = RidGenerator.gForSubscribe(`${sportCategory}_GAMES`);\n\n executeCommand(\n Rid,\n what,\n where,\n (resp: { sport: Record }) => {\n if (mounted.current && resp.sport && Object.keys(resp.sport).length) {\n dispatch(\n setSportRegionCompData({\n [reduxKey]: resp.sport[Object.keys(resp.sport)[0]] || null\n })\n );\n }\n }\n );\n\n return () => {\n if (shouldUnsubscribe) {\n unsubscribeCommand(Rid);\n }\n };\n }, [boostedGameIDs, sportCategory, sportAlias]);\n\n const handleMatchCardClick = useCallback(\n (\n sportAlias: string,\n regionAlias: string,\n compId: number,\n gameId: number\n ) => {\n if (routeParams?.path) {\n const newPath = `${getMountPath(\n routeParams?.path\n )}/${sportCategory}/${sportAlias}/${regionAlias}/${compId}/${gameId}`;\n\n history.push(newPath);\n }\n },\n [routeParams?.path, sportCategory]\n );\n\n if (showNoItemWrapper?.competitions) {\n return null;\n }\n\n return gamesData && sportAlias ? (\n
\n {sortByOrder(Object.values(gamesData.region || {})).map(\n (region, regIndex) =>\n sortByOrder(Object.values(region.competition || {})).map(\n (comp, compIndex) => (\n \n )\n )\n )}\n
\n ) : (\n \n );\n};\n","import { ReactElement, Suspense } from 'react';\nimport { useSelector } from 'react-redux';\nimport cc from 'classcat';\nimport { ColSizes, ROW_GUTTER } from 'utils/constants/app/ui';\nimport { SPORTSBOOK_WIDGETS_IDS } from 'utils/constants/sportsbook/sportsbook-widgets-ids';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { lazy } from 'utils/generic/lazy';\nimport { ESPORTS_ADDITIONAL_DATA } from 'utils/helpers/moba-games-statistics-options';\nimport { ENotRealSports } from 'interfaces/not-real-sports';\nimport { EPageTypes } from 'interfaces/sportsbook';\nimport {\n ESportsbookPageTypes,\n TSportsbookConfigs\n} from 'interfaces/sportsbook-configs';\nimport { DesktopGameListSkeleton } from 'elements/DesktopGameList/DesktopGameListSkeleton';\nimport { DesktopSingleGameViewSkeleton } from 'elements/DesktopSingleGameView/DesktopSingleGameViewSkeleton';\nimport { SingleGameView } from 'newelements/Sportsbook/__partials/SingleGameView';\nimport { SingleGameViewSkeleton } from 'newelements/Sportsbook/__partials/SingleGameView/SingleGameViewSkeleton';\nimport { INFINITE_SCROLL_ID } from 'newelements/Sportsbook/layouts/classic/DesktopSportsbookClassic';\nimport { GamesByCompetitionsCollapse } from 'newelements/Sportsbook/layouts/classic/GamesByCompetitionsCollapse';\nimport { SportsbookWidgetsHeightWrapper } from 'newelements/Sportsbook/Widgets/helpers/SportsbookWidgetsHeightWrapper';\nimport { DesktopMultipleCardsSkeleton } from 'components/MultipleSelections/MultipleSceleton/DesktopMultipleCardsSkeleton';\nimport { FavoriteTeamsBody } from 'newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsBody';\nimport { FavoriteTeamsHeader } from 'newcomponents/Shared/sportsbook/FavoriteTeam/partials/FavoriteTeamsHeader';\nimport { SportsbookGameListWrapper } from 'newcomponents/Shared/sportsbook/SportsbookGameListWrapper';\nimport { GameListWrapperSkeleton } from 'newcomponents/Shared/sportsbook/SportsbookGameListWrapper/skeleton';\nimport { Col } from 'newcomponents/UI/Col';\nimport { Row } from 'newcomponents/UI/Row';\nimport { getShowNoItemWrapper } from 'store/selectors/new-sportsbook';\nimport { getCoupons } from 'store/selectors/sport-data';\n\nconst { SportsbookMultiples } = lazy(\n () =>\n import(\n /* webpackChunkName: \"multiple-cards-desktop\" */ 'newelements/Sportsbook/__partials/SportsbookMultiples'\n )\n);\n\nconst { CouponGameListWrapper } = lazy(\n () =>\n import(\n /* webpackChunkName: \"couponGame-list-wrapper\" */ 'newcomponents/Shared/sportsbook/CouponGameListWrapper'\n )\n);\n\ntype TSecondColumnContentProps = {\n category?: ENotRealSports | string;\n isLive: boolean;\n configs: TSportsbookConfigs;\n paramsSport: string;\n isSeparatedWidget?: boolean;\n};\n\nexport const SecondColumnContent = ({\n category,\n isLive,\n configs,\n paramsSport,\n isSeparatedWidget\n}: TSecondColumnContentProps): ReactElement => {\n const showNoItemWrapper = useSelector(getShowNoItemWrapper);\n const coupons = useSelector(getCoupons);\n\n const isTopMatches = paramsSport === ENotRealSports.topMatches;\n\n const hasAdditionalStatistics =\n Object.keys(ESPORTS_ADDITIONAL_DATA).includes(paramsSport) && isLive;\n\n const isMultiples = paramsSport === ENotRealSports.multiples;\n\n if (isMultiples) {\n return (\n \n }\n >\n \n \n );\n }\n\n const isFavTeam = paramsSport === ENotRealSports.team;\n const isBoosted = paramsSport === ENotRealSports.boostedOdds;\n\n const isCoupon = paramsSport === ENotRealSports.coupon;\n\n return (\n \n {isFavTeam ? (\n \n \n \n \n ) : (\n <>\n {!isLive && (\n \n \n {isBoosted || isTopMatches ? (\n \n ) : (\n \n }\n >\n {isCoupon ? (\n }\n >\n \n \n ) : (\n \n )}\n \n )}\n \n \n )}\n \n \n }\n >\n {isCoupon && !coupons.games ? (\n \n ) : (\n \n )}\n \n \n \n \n )}\n \n );\n};\n","import {\n marketWhereEuropean,\n marketWhereGameList\n} from 'utils/constants/sportsbook/favorite-data-fields';\n\nexport const getFavoriteSubscribeWhere = (\n gameIDs: number[],\n markets?: 'basic' | 'european'\n): Record => ({\n game: {\n id: { '@in': gameIDs }\n },\n ...(markets === 'basic'\n ? marketWhereGameList\n : markets === 'european'\n ? marketWhereEuropean\n : {})\n});\n\n// in this variable we store ids of mounted useFetchFavoritesData hooks to track and avoid duplicated calls\nexport const FAVORITE_HOOKS_CACHE: {\n mountedHookIds: Record<'fetchData' | 'fetchIds', string[]>;\n subscribedHookIds: Record<\n 'fetchData' | 'fetchIds' | 'fetchMarkets',\n string | null\n >;\n withAdditionalMarkets: boolean;\n} = {\n subscribedHookIds: {\n fetchIds: null,\n fetchData: null,\n fetchMarkets: null\n },\n mountedHookIds: {\n fetchIds: [],\n fetchData: []\n },\n withAdditionalMarkets: false\n};\n\nexport enum EFavoriteActions {\n dataSubscriptionUnmount = 'favorite_dataSubscriptionUnmount'\n}\n","import { useMemo } from 'react';\nimport { useSelector } from 'react-redux';\nimport { SEPARATED_WIDGETS_ROUTE } from 'utils/constants/sportsbook/generic';\nimport { MATCH_TRACKER_AVAILABLE_SPORTS } from 'utils/constants/sportsbook/match-tracker-sports';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { EMatchStreamingTypes } from 'interfaces/match-streaming';\nimport { useSbRouteMatch } from 'newhooks/generic/useSbRouteMatch';\nimport {\n getIsMatchStreamingChannelsAvailable,\n getIsTheatreMode,\n getMatchStreamingGameData,\n getMatchStreamingLiveStreamInfo\n} from 'store/selectors/match-streaming';\nimport { getStreamData } from 'store/selectors/sport-data';\n\nexport const useGetAvailableModes = (): EMatchStreamingTypes[] => {\n const {\n params: { game: gameId }\n } = useSbRouteMatch(SEPARATED_WIDGETS_ROUTE);\n\n const streamData = useSelector(getStreamData);\n const isTheatreMode = useSelector(getIsTheatreMode);\n const liveStreamInfo = useSelector(getMatchStreamingLiveStreamInfo);\n const { game, sport } = useSelector(getMatchStreamingGameData) || {};\n const isChannelsAvailable = useSelector(getIsMatchStreamingChannelsAvailable);\n\n const isEventHasMatchTracker = useMemo(\n () =>\n sport &&\n MATCH_TRACKER_AVAILABLE_SPORTS.includes(game?.sport_alias || sport),\n [sport, game?.sport_alias]\n );\n\n const isMatchStreamingHasVideo = useMemo(() => {\n return !!streamData?.[Number(game?.id || gameId)]?.[0];\n }, [gameId, streamData, game?.id]);\n\n return useMemo(() => {\n const modes = [];\n\n if (gameId) {\n if (\n isMatchStreamingHasVideo ||\n liveStreamInfo?.hasLiveStream ||\n isChannelsAvailable\n ) {\n modes.push(EMatchStreamingTypes.VIDEO);\n }\n\n if (isEventHasMatchTracker) {\n modes.push(EMatchStreamingTypes.MATCH);\n }\n }\n\n if (SpringConfigs.MOCKED_DATA) {\n modes.push(EMatchStreamingTypes.MATCH);\n }\n\n return modes;\n }, [\n game?.id,\n isTheatreMode,\n isChannelsAvailable,\n isEventHasMatchTracker,\n isMatchStreamingHasVideo,\n liveStreamInfo?.hasLiveStream\n ]);\n};\n","import {\n SyntheticEvent,\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 SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { openSlider } from 'utils/sportsbook/api-post-message-sender';\nimport { BetBuilderModalActions } from 'components/Generic/__partials/BetBuilderModalGeneric/actions';\nimport { addQuery, saveCurrentLocation } from 'components/QueryRoute';\nimport { TBetBuilderModalProps } from 'newcomponents/Shared/sportsbook/BetBuilderModal/types';\nimport { usePrevious } from 'hooks/usePrevious';\nimport { setAfterSignInActions } from 'store/actions';\nimport { getAfterSignInActions } from 'store/selectors/app-data';\nimport { getIsLoggedIn, getUser } from 'store/selectors/user-data';\n\ntype TUseOpenBetBuilder = (\n params: Pick & {\n afterSignInActonName: string;\n },\n openCallback?: null | (() => void)\n) => TUseOpenBetBuilderReturnType;\n\ntype TUseOpenBetBuilderReturnType = {\n betBuilderModalVisible: boolean;\n openBetBuilder: Function;\n toggleBetBuilderModal: (value: boolean) => void;\n};\n\nexport const useOpenBetBuilder: TUseOpenBetBuilder = (params, openCallback) => {\n const history = useHistory();\n const dispatch = useDispatch();\n const user = useSelector(getUser);\n const isLoggedIn = useSelector(getIsLoggedIn);\n const afterSignInActions = useSelector(getAfterSignInActions);\n const [betBuilderModalVisible, _toggleBetBuilderModal] =\n useState(false);\n\n const [openAfterRefresh, setOpenAfterRefresh] = useState(false);\n const isPrevOpened = usePrevious(betBuilderModalVisible);\n\n const toggleBetBuilderModal = (open: boolean) => {\n if (openCallback) {\n if (open) {\n openCallback();\n }\n } else {\n _toggleBetBuilderModal(open);\n }\n };\n\n useEffect(() => {\n if (\n afterSignInActions.openBetBuilderAction === params.afterSignInActonName &&\n isLoggedIn &&\n !window.mustRefreshForSessionVisibility &&\n window.refreshWhenLoggedIn &&\n !openAfterRefresh\n ) {\n toggleBetBuilderModal(true);\n const afterSignInActionsCopy = Object.assign({}, afterSignInActions);\n delete afterSignInActionsCopy.openBetBuilderAction;\n dispatch(setAfterSignInActions(afterSignInActionsCopy));\n }\n }, [isLoggedIn, openAfterRefresh, afterSignInActions.openBetBuilderAction]);\n\n useEffect(() => {\n if (\n afterSignInActions.openBetBuilderAction === params.afterSignInActonName &&\n isLoggedIn &&\n !window.refreshWhenLoggedIn &&\n openAfterRefresh\n ) {\n setOpenAfterRefresh(false);\n toggleBetBuilderModal(true);\n const afterSignInActionsCopy = Object.assign({}, afterSignInActions);\n delete afterSignInActionsCopy.openBetBuilderAction;\n dispatch(setAfterSignInActions(afterSignInActionsCopy));\n }\n }, [isLoggedIn, openAfterRefresh, afterSignInActions.openBetBuilderAction]);\n\n const openBetBuilder = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n\n if (!user.pending) {\n if (isLoggedIn) {\n toggleBetBuilderModal(true);\n } else {\n if (SpringConfigs.IFRAME_SPORTSBOOK) {\n openSlider('login');\n } else {\n saveCurrentLocation();\n\n history.push(addQuery({ accounts: '*', login: '*' }));\n\n setOpenAfterRefresh(true);\n dispatch(\n setAfterSignInActions({\n ...afterSignInActions,\n openBetBuilderAction: params.afterSignInActonName\n })\n );\n }\n }\n }\n },\n [\n history,\n isLoggedIn,\n toggleBetBuilderModal,\n user.pending,\n afterSignInActions\n ]\n );\n\n const betBuilderModalParams = useMemo(() => {\n return {\n ...params,\n toggleBetBuilderModal,\n betBuilderModalVisible\n };\n }, [betBuilderModalVisible, JSON.stringify(params)]);\n\n useLayoutEffect(() => {\n if (betBuilderModalParams.betBuilderModalVisible) {\n BetBuilderModalActions.updateProps(betBuilderModalParams);\n }\n }, [betBuilderModalParams]);\n\n useEffect(() => {\n if (!betBuilderModalVisible && isPrevOpened) {\n BetBuilderModalActions.close();\n } else if (!isPrevOpened && betBuilderModalVisible) {\n BetBuilderModalActions.open(betBuilderModalParams);\n }\n }, [betBuilderModalVisible, isPrevOpened]);\n\n return {\n betBuilderModalVisible,\n openBetBuilder,\n toggleBetBuilderModal\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 getTournaments = (\n params: object,\n callback: Function,\n errorCallback: Function | null = null\n): void => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n {\n command: CommandNames.GET_TOURNAMENT_LIST,\n params,\n rid: RidGenerator.gForCommand()\n },\n '',\n callback,\n null,\n errorCallback\n );\n });\n};\n\nexport const getTournament = (id: number, callback: Function): void => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n {\n command: CommandNames.GET_TOURNAMENT,\n params: {\n tournament_id: id\n },\n rid: RidGenerator.gForCommand()\n },\n '',\n callback\n );\n });\n};\n\nexport const getTournamentStats = (id: number, callback: Function): void => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n {\n command: CommandNames.GET_TOURNAMENT_STATS,\n params: {\n tournament_id: id\n },\n rid: RidGenerator.gForCommand()\n },\n '',\n callback\n );\n });\n};\n\nexport const joinTournament = (\n tournamentId: number,\n callback: Function,\n errorCallback?: () => void\n): void => {\n connectingWS.then((socket: WebsocketEnhanced) => {\n socket.sendCommand(\n {\n command: CommandNames.JOIN_TO_TOURNAMENT,\n params: {\n tournament_id: tournamentId\n },\n rid: RidGenerator.gForCommand()\n },\n '',\n callback,\n null,\n errorCallback\n );\n });\n};\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getEventsSelector = getSelectorRoot('events');\n\nexport const getEvents = getEventsSelector('events');\nexport const getSports = getEventsSelector('sports');\nexport const getSelectedSport = getEventsSelector('selectedSport');\nexport const getSelectedEventsType = getEventsSelector('selectedEventsType');\nexport const getTimeFilter = getEventsSelector('timeFilter');\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getGameData = getSelectorRoot('gameData');\n\nexport const getGameInfo = getGameData('gameData');\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getRaceData = getSelectorRoot('raceData');\n\nexport const getUpcomingData = getRaceData('upcomingData');\nexport const getHorseGamesAdditionalData = getRaceData(\n 'horseGamesAdditionalData'\n);\nexport const getCompetitionData = getRaceData('competitionData');\nexport const getGame = getRaceData('gameData');\nexport const getStoredGameIds = getRaceData('storedGameIds');\nexport const getEachWayPartnerTerms = getRaceData('eachWayTerms');\nexport const getDateAndSportFilterActiveTab = getRaceData(\n 'dateAndSportFilterActiveTab'\n);\nexport const getIsCompetitionsLoading = getRaceData('isCompetitionsLoading');\nexport const getIsUpcomingRacesLoading = getRaceData('isUpcomingRacesLoading');\nexport const getGameFromActiveTab = getRaceData('gameFromActiveTab');\nexport const getIsCheckGameStartTs = getRaceData('isCheckGameStartTs');\nexport const getIsCheckCompetition = getRaceData('isCheckCompetition');\nexport const getResultsTimeFilterActiveTab = getRaceData(\n 'resultsTimeFilterActiveTab'\n);\nexport const getResultsCompetitionData = getRaceData('resultsCompetitionData');\nexport const getIsResultsCompetitionDataLoading = getRaceData(\n 'isResultsCompetitionDataLoading'\n);\nexport const geTRacingResultsGameData = getRaceData('resultsSingleGameData');\n","import { getSelectorRoot } from 'utils/selectors';\n\nconst getSpecElems = getSelectorRoot('specElems');\n\nexport const getBetslip = getSpecElems('betslip');\n","import {\n FONT_SIZE_INCREMENT_VALUE_4,\n FONT_SIZE_INCREMENT_VALUE_8,\n MAX_FONT_SIZE\n} from 'utils/constants/app/ui';\nimport { isMobile } from 'utils/is-mobile';\nimport {\n TJackpotFontSizeOptions,\n TJackpotPool,\n TJackpotSize\n} from 'interfaces/jackpot';\n\nconst DEFAULT_JACKPOT_SIZES = {\n main: {\n mobile: {\n name: 12,\n amount: 32\n },\n desktop: {\n name: 24,\n amount: 56\n }\n },\n pool: {\n mobile: {\n name: 12,\n amount: 18\n },\n desktop: {\n name: 12,\n amount: 18\n }\n }\n};\n\nconst getJackpotDefaultFontSize = ({\n type,\n element\n}: TJackpotFontSizeOptions): number => {\n const view = isMobile() ? 'mobile' : 'desktop';\n\n return DEFAULT_JACKPOT_SIZES[type][view][element];\n};\n\nconst getJackpotElementLineHeight = (fontSize: number): number => {\n if (fontSize < MAX_FONT_SIZE) {\n return fontSize + FONT_SIZE_INCREMENT_VALUE_8;\n }\n\n return fontSize + FONT_SIZE_INCREMENT_VALUE_4;\n};\n\nexport const getJackpotElementSize = ({\n type,\n element,\n value\n}: TJackpotFontSizeOptions & { value?: string | number }): TJackpotSize => {\n const font = Number(value || getJackpotDefaultFontSize({ type, element }));\n\n return {\n font,\n line: getJackpotElementLineHeight(font)\n };\n};\n\nconst reducer = (result: number, cur: TJackpotPool) => {\n return result + cur.CollectedAmount;\n};\n\nexport const getTotalAmount = (poolList: TJackpotPool[]): number => {\n return poolList.reduce(reducer, 0);\n};\n\nexport const JACKPOT_SPORTSBOOK_ID = 'jackpot-sportsbook';\nexport const JACKPOT_CALENDAR_ID = 'jackpot-sportsbook-calendar';\nexport const JACKPOT_MULTIVIEW_ID = 'jackpot-multiview';\nexport const jackpotModuleIds = [\n JACKPOT_SPORTSBOOK_ID,\n JACKPOT_CALENDAR_ID,\n JACKPOT_MULTIVIEW_ID\n];\n","export const AppRoutes: Record = {\n home: '',\n live: 'desktop-sportsbook-live',\n prematch: 'desktop-sportsbook-prematch',\n virtualSports: 'virtual-sport',\n eLive: 'e-live',\n ePrematch: 'e-prematch',\n casinoGames: 'casino',\n casinoTournaments: 'tournaments',\n racing: 'racing'\n};\n\nexport const ReservedRoutes: Record = {\n addToBetslip: '/add-to-betslip',\n deposit: '/account/deposit'\n};\n","// Changing this file can affect sportsbook favorites functionality\n\nexport const events = {\n event: [\n 'name',\n 'id',\n 'price',\n 'base',\n 'order',\n 'type_1',\n 'extra_info',\n 'display_column'\n ]\n};\n\nexport const markets = {\n market: [\n 'name',\n 'order',\n 'type',\n 'id',\n 'base',\n 'express_id',\n 'col_count',\n 'express_id',\n 'group_id',\n 'group_name',\n 'cashout',\n 'display_key'\n ]\n};\n\nexport const marketsEuropean = {\n market: [\n 'id',\n 'name',\n 'type',\n 'order',\n 'main_order',\n 'cashout',\n 'col_count',\n 'display_key',\n 'display_sub_key',\n 'market_type',\n 'name_template',\n 'point_sequence',\n 'sequence',\n 'extra_info',\n 'express_id'\n ]\n};\n\nexport const sports = {\n sport: ['name', 'alias', 'id']\n};\n\nexport const regions = {\n region: ['name', 'alias', 'order', 'id']\n};\n\nexport const competitions = {\n competition: ['name', 'order', 'id']\n};\n\nexport const gameList = {\n game: [\n [\n 'id',\n 'type',\n 'team1_name',\n 'team2_name',\n 'team1_id',\n 'team2_id',\n 'order',\n 'start_ts',\n 'markets_count',\n 'is_blocked',\n 'info',\n 'tv_type',\n 'exclude_ids',\n 'show_type',\n 'text_info',\n 'add_info_name',\n 'tv_info',\n 'is_stat_available',\n 'video_id',\n 'video_id2',\n 'video_id3',\n 'sportcast_id',\n 'match_length',\n 'live_events'\n ]\n ]\n};\n\nexport const marketWhereGameList = {\n market: {\n display_key: 'WINNER',\n display_sub_key: 'MATCH'\n }\n};\n\nexport const marketWhereEuropean = {\n market: {\n display_key: {\n '@in': ['WINNER', 'HANDICAP', 'TOTALS']\n },\n display_sub_key: {\n '@in': ['MATCH', 'PERIOD']\n }\n }\n};\n","export const FAVORITE_TEAM_SPORT = 'Soccer';\nexport const FAVORITE_TEAMS_ALL_ROUT = 'all';\nexport const FAVORITE_TEAM_SPORT_ID = 1;\n","export const NOTIFICATION_SUPPORTING_SPORTS: string[] = [\n 'Soccer',\n 'Basketball',\n 'Tennis',\n 'TableTennis',\n 'Volleyball',\n 'Baseball',\n 'IceHockey',\n 'LeagueOfLegends',\n 'Dota2',\n 'CyberFootball',\n 'CounterStrike'\n];\n","const COMPOUND_INDIVIDUAL_SHOOTS_NUMBER = 6;\nconst COMPOUND_MIXED_TEAM_SHOOTS_NUMBER = 5;\nconst COMPOUND_TEAM_SHOOTS_NUMBER = 5;\nconst ARCHERY_H2H_SHOOTS_NUMBER = 6;\nconst RECURVE_MIXED_TEAM_SHOOTS_NUMBER = 5;\nconst RECURVE_TEAM_SHOOTS_NUMBER = 5;\n\nexport const PISTOL_H2H_SHOOT_OFF_SET_NUMBER = 2;\nexport const ARCHERY_H2H_SHOOT_OFF_SET_NUMBER = 6;\nexport const COMPOUND_ARCHERY_SHOOT_OFF_SET_BY_TYPE = {\n 0: COMPOUND_INDIVIDUAL_SHOOTS_NUMBER,\n 1: COMPOUND_MIXED_TEAM_SHOOTS_NUMBER,\n 2: COMPOUND_TEAM_SHOOTS_NUMBER\n};\nexport const ARCHERY_H2H_SHOOT_OFF_SET_BY_TYPE = {\n 0: ARCHERY_H2H_SHOOTS_NUMBER,\n 1: RECURVE_MIXED_TEAM_SHOOTS_NUMBER,\n 2: RECURVE_TEAM_SHOOTS_NUMBER\n};\nexport const PISTOL_SHOOTING_SETS_COUNT = 3;\nexport const ARCHERY_SHOOTING_SETS_COUNT = 6;\nexport const PISTOL_SHOOTING_SHOOTS_COUNT = 10;\nexport const ARCHERY_SHOOTING_SHOOTS_COUNT = 6;\nexport const H2H_COMPOUND_ARCHERY_SHOOTS_COUNT = 3;\nexport const PISTOL_H2H_SHOOTS_COUNT = 10;\nexport const PISTOL_H2H_SHOOT_OFF_MAX_SHOOTS_COUNT = 3;\n\nexport const H2H_COMPOUND_ARCHERY_MATCH_STATE_NOT_STARTED = 0;\nexport const H2H_COMPOUND_ARCHERY_MATCH_STATE_IN_PLAY = 1;\nexport const H2H_COMPOUND_ARCHERY_MATCH_STATE_TIMEOUT = 2;\nexport const H2H_COMPOUND_ARCHERY_MATCH_STATE_FINISHED = 3;\n\nexport const ARCHERY_H2H_GAME_STATUSES: Record = {\n [H2H_COMPOUND_ARCHERY_MATCH_STATE_NOT_STARTED]: 'notstarted',\n [H2H_COMPOUND_ARCHERY_MATCH_STATE_IN_PLAY]: 'inplay',\n [H2H_COMPOUND_ARCHERY_MATCH_STATE_TIMEOUT]: 'timeout',\n [H2H_COMPOUND_ARCHERY_MATCH_STATE_FINISHED]: 'finished'\n};\n","/**\n * Competition ids that must hide game info\n * @param {Number} key jurisdiction number\n * @param {Number[]} value competition ids\n */\n\n/*eslint no-magic-numbers:*/\nexport const PRIVATE_COMPETITIONS: Record = {\n 4: [\n 1368, 1369, 9647, 9648, 1366, 1367, 9645, 9646, 1222, 9501, 4736, 4737,\n 11424, 11425, 10149, 10150, 11589\n ]\n};\n","import {\n ESportsbookLayoutTypes,\n ESportsbookPageTypes\n} from 'interfaces/sportsbook-configs';\n\nexport const TARGET_IDS_BY_LAYOUT: Record = {\n [String(ESportsbookLayoutTypes.EUROPEAN) + String(ESportsbookPageTypes.live)]:\n 'EuropeanLiveContentWrapper',\n [String(ESportsbookLayoutTypes.EUROPEAN) +\n String(ESportsbookPageTypes.prematch)]: 'desktopSportsbookEuropeanPrematch',\n [ESportsbookLayoutTypes.AMERICAN]: 'desktopMiddleContentWrapper',\n [ESportsbookLayoutTypes.CLASSIC]: 'desktopScrollArea',\n [ESportsbookLayoutTypes.ADVANCED]: 'advancedMiddleScrollArea'\n};\n","export const CALENDAR_TAB_PATH = 'calendar';\nexport const RESULTS_TAB_PATH = 'results';\nexport const TOURNAMENT_TAB_PATH = 'tournaments';\nexport const BETHISTORY_TAB_PATH = 'betHistory';\nexport const MULTIVIEW_TAB_PATH = 'multiview';\nexport const OVERVIEW_TAB_PATH = 'overview';\n","import dayjs from 'dayjs';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from './date-format';\n\nexport const getTime = (dateTime: Date, separator = '.'): string => {\n return dayjs\n .utc(dateTime)\n .local()\n .format(\n dateFormat({\n date: SpringConfigs.DT.longDate,\n separator: separator,\n time: SpringConfigs.DT.time,\n dateTimeSeparator: ' '\n }).replace('MMM', 'MM')\n );\n};\n","export const checkIsElementScrollable = (selector: string) => {\n const elem = document.querySelector(selector);\n\n if (elem) {\n return elem.scrollHeight > elem.clientHeight;\n }\n\n return false;\n};\n","import { TooltipPlacement } from 'antd/lib/tooltip';\nimport i18n from 'i18next';\nimport { isRtl } from 'utils/constants/app/rtl';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { TOUR_STEPS_TYPES } from 'utils/constants/tour';\n\nexport const TOUR_ACTIVE_CLASS = 'tourWrapper__active';\n\nexport type TTourResourceKey = 'sportsbook' | 'casino' | 'esport' | null;\n\nexport const SHOW_TOUR_PAGES: { [key: string]: TTourResourceKey } = {\n CASINO: 'casino',\n SPORTSBOOK: 'sportsbook',\n ESPORT: 'esport'\n};\n\nexport const TOUR_PATH_NAMESPACE = (): TTourResourceKey => {\n const pageAlias = decodeURI(window.location.href).replace(/\\/+$/, '');\n\n if (\n SpringConfigs.PAGE_URLS.casino &&\n (pageAlias.includes(SpringConfigs.PAGE_URLS.casino.replace(/\\/+$/, '')) ||\n SpringConfigs.PAGE_URLS.homepageKey === SHOW_TOUR_PAGES.CASINO)\n ) {\n return SHOW_TOUR_PAGES.CASINO;\n }\n\n if (\n SpringConfigs.PAGE_URLS.prematch &&\n (pageAlias.includes(SpringConfigs.PAGE_URLS.prematch.replace(/\\/+$/, '')) ||\n SpringConfigs.PAGE_URLS.homepageKey === SHOW_TOUR_PAGES.SPORTSBOOK)\n ) {\n return SHOW_TOUR_PAGES.SPORTSBOOK;\n }\n\n if (\n SpringConfigs.PAGE_URLS.esport &&\n (pageAlias.includes(SpringConfigs.PAGE_URLS.esport.replace(/\\/+$/, '')) ||\n SpringConfigs.PAGE_URLS.homepageKey === SHOW_TOUR_PAGES.ESPORT)\n ) {\n return SHOW_TOUR_PAGES.SPORTSBOOK;\n }\n\n return null;\n};\n\nconst placement = isRtl ? 'leftTop' : 'rightTop';\n\ntype TTourSliderReturnProps = {\n active: boolean;\n step: number;\n selector: TOUR_STEPS_TYPES;\n placement: TooltipPlacement;\n modal: {\n title: string;\n description: string;\n };\n};\n\ntype TTourItemGenerateStructureProps = {\n index: number;\n currentActiveTourStep: number;\n selector: TOUR_STEPS_TYPES;\n placement: TooltipPlacement;\n};\n\nexport const TOUR_STEPS_LIST: Record<\n TOUR_STEPS_TYPES,\n ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps) => TTourSliderReturnProps\n> = {\n [TOUR_STEPS_TYPES.yourPreferences]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.yourPreferencesSection'),\n description: i18n.t('generic.yourPreferencesSectionDescription')\n }\n }),\n [TOUR_STEPS_TYPES.addSports]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addSport'),\n description: i18n.t('generic.addSportDescription')\n }\n }),\n [TOUR_STEPS_TYPES.addCompetitions]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addCompetitions'),\n description: i18n.t('generic.addCompetitionsDescription')\n }\n }),\n [TOUR_STEPS_TYPES.addCompetitionsTopMatches]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addCompetitions'),\n description: i18n.t('generic.addCompetitionsDescription')\n }\n }),\n [TOUR_STEPS_TYPES.addGameCards]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addGameCards'),\n description: i18n.t('generic.addGameCardsDescription')\n }\n }),\n [TOUR_STEPS_TYPES.addMarketCards]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addMarketCards'),\n description: i18n.t('generic.addMarketCardsDescription')\n }\n }),\n [TOUR_STEPS_TYPES.myCasino]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.yourFavoriteGames'),\n description: i18n.t('generic.yourFavoriteGamesDescription')\n }\n }),\n [TOUR_STEPS_TYPES.myCasinoProviderItem]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addFavoriteGameProvider'),\n description: i18n.t('generic.addFavoriteGameProviderDescription')\n }\n }),\n [TOUR_STEPS_TYPES.myCasinoGameCard]: ({\n index,\n currentActiveTourStep,\n selector,\n placement\n }: TTourItemGenerateStructureProps): TTourSliderReturnProps => ({\n placement,\n active: currentActiveTourStep === index,\n step: index,\n selector,\n modal: {\n title: i18n.t('generic.addFavoriteCasinoGame'),\n description: i18n.t('generic.addFavoriteCasinoGameDescription')\n }\n })\n};\n\nexport const detectTourMethod = (\n selector: TOUR_STEPS_TYPES,\n index: number,\n currentActiveTourStep: number\n) => {\n return TOUR_STEPS_LIST[selector]({\n index,\n currentActiveTourStep,\n selector,\n placement: [\n TOUR_STEPS_TYPES.addGameCards,\n TOUR_STEPS_TYPES.addMarketCards\n ].includes(selector)\n ? 'bottom'\n : placement\n });\n};\n","import { Sport } from 'interfaces/sportsbook-data-levels';\n\nexport const filterSportDataByGameStartTsRange = (\n data: Record,\n timestampRange: {\n '@gt': number;\n '@lt': number;\n }\n): Record => {\n // Copy the original data\n const filteredData = JSON.parse(JSON.stringify(data));\n\n for (const sportId in filteredData) {\n const sport = filteredData[sportId];\n let hasRegionInSport = false;\n\n // Iterate through regions\n for (const regionId in sport.region) {\n const region = sport.region[regionId];\n let hasCompetitionInRegion = false;\n\n // Iterate through competitions in the region\n for (const competitionId in region.competition) {\n const competition = region.competition[competitionId];\n let hasGameInCompetition = false;\n\n // Iterate through games in the competition\n for (const gameId in competition.game) {\n const game = competition.game[gameId];\n\n // Check if game timestamp falls within the range\n if (\n game.start_ts >= timestampRange['@gt'] &&\n game.start_ts <= timestampRange['@lt']\n ) {\n // Keep the game\n filteredData[sportId].region[regionId].competition[\n competitionId\n ].game[gameId] = game;\n hasGameInCompetition = true;\n } else {\n // Remove the game if it's outside the range\n delete filteredData[sportId].region[regionId].competition[\n competitionId\n ].game[gameId];\n }\n }\n\n // Remove the competition if it has no games within the range\n if (!hasGameInCompetition) {\n delete filteredData[sportId].region[regionId].competition[\n competitionId\n ];\n } else {\n hasCompetitionInRegion = true;\n }\n }\n\n // Remove the region if it has no competitions left\n if (!hasCompetitionInRegion) {\n delete filteredData[sportId].region[regionId];\n } else {\n hasRegionInSport = true;\n }\n }\n\n // Remove the sport if it has no regions left\n if (!hasRegionInSport) {\n delete filteredData[sportId];\n }\n }\n\n return filteredData;\n};\n","export const PeriodNames: { [key: string]: string } = {\n AmericanFootball: 'Quarter',\n AustralianFootball: 'Quarter',\n Badminton: 'Game',\n BallHockey: 'Half',\n Baseball: 'Inning',\n Basketball: 'Quarter',\n BeachFootball: 'Half',\n BeachHandball: 'Half',\n BeachVolleyball: 'Set',\n Bowls: 'End',\n Boxing: 'Round',\n CounterStrike: 'Map',\n Cricket: 'Inning',\n Curling: 'End',\n CyberFootball: 'Half',\n Dota2: 'Game',\n EBasketball: 'Quarter',\n Floorball: 'Period',\n Futsal: 'Half',\n GaelicFootball: 'Half',\n GearsOfWar: 'Game',\n Handball: 'Half',\n Hearthstone: 'Game',\n HeroesOfTheStorm: 'Game',\n Hockey: 'Period',\n IceHockey: 'Period',\n LeagueOfLegends: 'Game',\n Mma: 'Round',\n MortalKombatXL: 'Game',\n Netball: 'Quarter',\n Overwatch: 'Game',\n RugbyLeague: 'Half',\n RugbySevens: 'Half',\n RugbyUnion: 'Half',\n Smite: 'Game',\n Snooker: 'Frame',\n Soccer: 'Half',\n StarCraft: 'Game',\n StarCraft2: 'Game',\n TableTennis: 'Set',\n Tekken7: 'Game',\n Tennis: 'Set',\n Volleyball: 'Set',\n WarcraftIII: 'Game',\n WaterPolo: 'Quarter',\n WorldOfTanks: 'Game',\n WorldOfWarcraft: 'Game',\n PistolShooting: 'Set',\n PistolHead2Head: 'Set',\n ArcheryH2H: 'Set',\n CompoundArchery: 'Set',\n Archery: 'Set',\n BasketballShots: 'Shot',\n Valorant: 'Map',\n AgeofEmpires: 'Game',\n ApexLegends: 'Game',\n ArenaOfValor: 'Game',\n Artifact: 'Game',\n CallOfDuty: 'Game',\n CounterStrike2: 'Map',\n CrossFire: 'Map',\n FreeFire: 'Round',\n Halo: 'Map',\n KingOfGlory: 'Game',\n Overwatch2: 'Game',\n Quake: 'Map',\n RainbowSix: 'Map',\n RocketLeague: 'Game',\n Vaingloory: 'Game',\n MobileLegends: 'Game'\n\n // The list is not complete, we need period names for other sports as well\n};\n","import dayjs from 'dayjs';\nimport i18n from 'i18next';\nimport { MILLISECONDS_IN_SECOND } from 'utils/constants/dateInfo/time-numbers';\nimport { PeriodNames } from 'utils/constants/sportsbook/period-names';\nimport {\n ARCHERY_H2H_GAME_STATUSES,\n H2H_COMPOUND_ARCHERY_MATCH_STATE_IN_PLAY,\n H2H_COMPOUND_ARCHERY_MATCH_STATE_NOT_STARTED,\n PISTOL_H2H_SHOOT_OFF_SET_NUMBER\n} from 'utils/constants/sportsbook/pistol-and-archery-shootings';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { dateFormat } from 'utils/date-manipulation/date-format';\nimport { ESPORTS_ADDITIONAL_DATA } from 'utils/helpers/moba-games-statistics-options';\nimport {\n GameInfo,\n GameInfoAdditionalData\n} from 'interfaces/sportsbook-data-levels';\nimport {\n ArcheryH2HSportAlias,\n CompoundArcherySportAlias\n} from '../constants/sportsbook/sport-list';\n\ntype Props = {\n current_game_state: string;\n current_game_time: string;\n additional_data?: GameInfoAdditionalData;\n};\n\nconst Leaderboards = {\n Place1st: 1,\n Place2nd: 2,\n Place3rd: 3\n};\n\nconst TRASNSLATION_KEYS_BY_GAME_STATE: Record = {\n 'Half End': 'halfEnd',\n 'Quarter End': 'quarterEnd'\n};\n\nconst gamesWithNewData = [ArcheryH2HSportAlias, CompoundArcherySportAlias];\n\nexport const getGameCurrentState = (\n {\n current_game_state: gState,\n current_game_time: gTime,\n additional_data: additionalData\n }: Props | GameInfo,\n currentSport = '',\n compactView = false,\n shootOffSet = 0\n): string => {\n if (\n gamesWithNewData.includes(currentSport) &&\n (additionalData?.matchState ||\n additionalData?.matchState ===\n H2H_COMPOUND_ARCHERY_MATCH_STATE_NOT_STARTED)\n ) {\n if (\n additionalData?.matchState === H2H_COMPOUND_ARCHERY_MATCH_STATE_IN_PLAY &&\n additionalData?.currentSet\n ) {\n gState = `set${additionalData.currentSet}`;\n } else {\n gState = ARCHERY_H2H_GAME_STATUSES[additionalData?.matchState];\n }\n }\n\n switch (true) {\n case gState === 'Half Time':\n return compactView\n ? i18n.t(`sportsbook.halfTimeShort`)\n : i18n.t(`sportsbook.halfTime`);\n\n case ['Half End', 'Quarter End'].includes(gState as string) &&\n currentSport === 'Basketball': {\n return i18n.t(\n `sportsbook.${TRASNSLATION_KEYS_BY_GAME_STATE[gState as string]}`\n );\n }\n\n case gState === 'timeout':\n return compactView\n ? i18n.t(`sportsbook.timeoutShort`)\n : i18n.t(`sportsbook.timeout`);\n\n case gState === 'notstarted':\n return compactView ? \"0'\" : i18n.t(`sportsbook.notStarted`);\n\n case gState === 'finished':\n return compactView\n ? i18n.t(`sportsbook.finishedShort`)\n : i18n.t(`sportsbook.finished`);\n\n case gTime && !!gState && currentSport === 'Soccer' && compactView:\n return `${gTime}'`;\n\n case gTime && !!gState && compactView:\n return `${getPeriodName(\n currentSport,\n gState as string,\n compactView,\n shootOffSet\n )}`;\n\n case gTime && !!gState:\n return `${getPeriodName(\n currentSport,\n gState as string,\n compactView,\n shootOffSet\n )} ${gTime}'`;\n\n case !!gTime:\n return `${gTime}'`;\n\n case !!gState:\n return getPeriodName(\n currentSport,\n gState as string,\n compactView,\n shootOffSet\n );\n\n case !gState && !gTime:\n return compactView ? '-' : '';\n }\n\n return '';\n};\n\nexport function getPeriodName(\n currentSport: string,\n gState: string,\n compactView?: boolean,\n shootOffSet?: number\n): string {\n const initialPeriodName = 'set';\n const defaultPeriodName = 'Set';\n const periodName: boolean | string = PeriodNames[currentSport]\n ? PeriodNames[currentSport]\n : defaultPeriodName;\n\n const periodNumber = +gState.replace(initialPeriodName, '');\n\n if (isNaN(periodNumber)) {\n return gState.replace(initialPeriodName, '');\n }\n\n if (\n (currentSport === 'PistolHead2Head' &&\n periodNumber === PISTOL_H2H_SHOOT_OFF_SET_NUMBER) ||\n ((currentSport === 'ArcheryH2H' || currentSport === 'CompoundArchery') &&\n shootOffSet &&\n periodNumber > shootOffSet)\n ) {\n return i18n.t(`sportsbook.shootOff`);\n }\n\n if (compactView) {\n return `${i18n.t(`sportsbook.${periodName}`)[0]}${periodNumber}`;\n }\n\n return `${ordinal(periodNumber, periodName)} ${i18n.t(\n `sportsbook.${periodName}`\n )}`;\n}\n\nexport function ordinal(num: number, periodName: string | null = null): string {\n const suf = [\n 'First',\n 'Second',\n 'Third',\n 'Fourth',\n 'Fifth',\n 'Sixth',\n 'Seventh',\n 'Eighth',\n 'Ninth',\n 'Tenth',\n 'Eleventh',\n 'Twelfth'\n ];\n\n if (num <= suf.length) {\n return i18n.t(\n `sportsbook.${\n (periodName ? periodName.toLowerCase() : '') + suf[num - 1]\n }`\n );\n } else {\n return `${num}${i18n.t(\n `sportsbook.${periodName ? periodName.toLowerCase() : ''}DefaultSuffix`\n )}`;\n }\n}\n\nexport function getGameStatus(\n current_game_state: string,\n current_game_time: string,\n isLive: boolean,\n start_ts: number,\n sport_alias?: string,\n shoot_off_set = 0\n): string {\n return isLive\n ? getGameCurrentState(\n { current_game_state, current_game_time },\n sport_alias,\n false,\n shoot_off_set\n )\n : start_ts\n ? dayjs(start_ts * MILLISECONDS_IN_SECOND).format(\n dateFormat({\n date: SpringConfigs.DT.shortDate,\n time: SpringConfigs.DT.time\n })\n )\n : '--';\n}\n\nexport function checkGameState(item: string): boolean {\n switch (item) {\n case 'Half Time':\n return true;\n case 'timeout':\n return true;\n case 'notstarted':\n return true;\n case 'finished':\n return true;\n\n default:\n return false;\n }\n}\n\nexport const getEsportCurrentMapName = (\n additionalInfoData: GameInfoAdditionalData,\n sportAlias?: string\n): string => {\n if (!sportAlias || !ESPORTS_ADDITIONAL_DATA[sportAlias]) {\n return '';\n }\n\n const currentMapRule = ESPORTS_ADDITIONAL_DATA[sportAlias] || {};\n\n const map = Object.values(additionalInfoData[currentMapRule.maps] || {}).find(\n map =>\n map[currentMapRule.number] === additionalInfoData[currentMapRule.current]\n );\n\n return map?.[currentMapRule.number]\n ? getMapName(map?.[currentMapRule.number], map?.[currentMapRule.name], true)\n : '';\n};\n\nexport function ordinalDefault(number: number): string {\n return number === Leaderboards.Place1st\n ? `${number}${i18n.t('sportsbook.st')}`\n : number === Leaderboards.Place2nd\n ? `${number}${i18n.t('sportsbook.nd')}`\n : number == Leaderboards.Place3rd\n ? `${number}${i18n.t('sportsbook.rd')}`\n : `${number}${i18n.t('sportsbook.th')}`;\n}\n\nexport function getMapName(\n mapNumber: number,\n mapName?: string,\n withoutNumber?: boolean\n) {\n return mapName\n ? withoutNumber\n ? mapName\n : `${mapNumber}. ${mapName}`\n : `${ordinal(mapNumber)} ${i18n.t('sportsbook.Map')}`;\n}\n","import i18n from 'i18next';\nimport { PRIVATE_COMPETITIONS } from 'utils/constants/sportsbook/private-competitions';\nimport SpringConfigs from 'utils/constants/swarm/spring-configs';\nimport { Game } from 'interfaces/sportsbook-data-levels';\n\nexport const hidePrivateCompetitions = (\n game: Game,\n competitionId?: number\n): Game => {\n const privateCompetitionIds =\n PRIVATE_COMPETITIONS[SpringConfigs.JURISDICTION];\n\n if (\n competitionId &&\n privateCompetitionIds &&\n privateCompetitionIds.includes(Number(competitionId))\n ) {\n const gameCopy: Game = JSON.parse(JSON.stringify(game));\n gameCopy.text_info = i18n.t('sportsbook.signInStatistics');\n\n if (game?.stats) {\n gameCopy.stats.team1_value = '-';\n gameCopy.stats.team2_value = '-';\n gameCopy.stats.add_info = null;\n\n const notNestedValues = ['team1_value', 'team2_value', 'add_info'];\n Object.keys(game.stats).forEach((_stat: string) => {\n const stat = _stat as keyof Game['stats'];\n\n if (!notNestedValues.includes(stat)) {\n gameCopy.stats[stat as keyof Game['stats']] = {\n ...gameCopy.stats[stat],\n team1_value: '-',\n team2_value: '-'\n };\n }\n });\n }\n\n gameCopy.info = gameCopy.info || {};\n gameCopy.info.pass_team = 'none';\n gameCopy.info.score1 = '-';\n gameCopy.info.score2 = '-';\n gameCopy.info.current_game_state = '';\n gameCopy.type = game.type;\n\n return gameCopy;\n }\n\n return game;\n};\n","import { mountPoint } from 'utils/generic/route-manipulation';\n\nexport const SPORTSBOOK_ROUTE_WITH_CATEGORY = `${mountPoint(\n window.getPathname()\n)}${'/:category/:sport?/:region?/:competition?/:game?'}`;\n"],"names":["Container","styled","span","withConfig","displayName","componentId","isMobile","TextInfo","_ref","textInfo","style","_jsxs","children","_jsx","GlobalIcon","lib","name","theme","size","EIconSize","_16","className","EBetBuilderModalActions","BetBuilderModalActions","open","payload","fireEvent","key","OPEN_BET_BUILDER_MODAL","updateProps","UPDATE_BET_BUILDER_MODAL_PROPS","close","CLOSE_BET_BUILDER_MODAL","ImageOverlay","condition","_Fragment","ConditionalWrapper","wrapper","Wrapper","div","props","MarketsCount","onClick","EmptyMarketsView","t","useTranslation","NoDataIconWrapper","MarketWarning","MarketsListSkeleton","_ADDITIONAL_STATISTIC","banner","withMatchTracker","showHeaderSkeleton","hideNavigationSkeleton","hideMatchTrackerButton","isLive","params","sport","useSbRouteMatch","AdditionalLayoutSkeleton","ADDITIONAL_STATISTICS_LAYOUTS","skeleton","hasAdditionalStatistics","Object","keys","ESPORTS_ADDITIONAL_DATA","includes","Skeleton","active","title","width","height","paragraph","round","isActiveStreamTabMode","margin","GameHeaderSkeleton","justifyContent","createArray","map","index","borderRadius","background","overflow","marginBottom","Row","wrap","padding","borderTop","borderBottom","Col","flex","marginTop","gutterV","ROW_GUTTER","_4","gutterH","xs","ColSizes","SIZE_8","LVisionComponent","lazy","LVision","SpringConfigs","LVISION","LVISION_API_KEY","pageType","ESportsbookPageTypes","esport","Suspense","fallback","game","currentSport","gameId","competitionName","competitionId","isAllCollapsed","team1_name","Markets_Tooltips","MatchResult","i18n","P1XP2","DrawNoBet","HalfTimeResult","SecondHalfResult","HalfTimeFullTime","CorrectScore","OverUnder","OverUnder2","HalfTimeOverUnder","BothTeamsToScore","YellowCardsOverUnder","MatchYellowCardLastTeam","Team1YellowCardsOverUnder","Team2YellowCardsOverUnder","YellowCards1stHalfTeam2Total","HalfWithTheMostYellowCards","EXTERNAL_MARKET_TOOLTIPS","AVAILABLE_MARKET_STATISTICS","statisticsMarketType","marketTypeDetalis","template","EMarketStatisticsTemplate","LastFiveMeetings","type","emptyHeight","LastFiveMatchesAvg","marketCallType","marketDataKey_individual","marketDataKey_H2H","Results","Team1TotalGoalsExact","GoalScored","Team1OverUnder","Team2OverUnder","SecondHalfHomeTeamTotalGoalsOverUnder","SecondHalfAwayTeamTotalGoalsOverUnder","SecondHalfAwayTeamTotalGoalsInterval","Header","MarketName","HeaderComp","marketType","team1","team2","toLowerCase","CLOSED_MARKETS","exacts","MatchRaceTo","OutcomeAndTotal","OutcomeOrTotal","OutcomeOrScore","Total3","TeamToScore","SetTotalGames","GameWinner","MatchWinningMargin","QuarterWinningMargin","SetWinningMargin","FirstHalfVsSecondHalfHandicap","PlayerToScore2OrMore","PlayerScoresBothHalves","ToScoreInFirst10Mins","CornersRaceTo","ChanceMix","DoubleChanceCombo","PlayerGetsCard","ToBeSentOff","EachTeamToScoreUnder","parts","regExps","New","TitleContainer","EachWayContainer","Extra","$isActive","Body","getIsActive","groupKey","allCollapsed","notCompact","Index","undefined","SPORT_MARKET_IS_COMPACT","part","regExp","test","MarketCollapse","_props$market2","_props$market2$","setActive","useState","isNew","setIsNew","manualEachWayTerms","useSelector","getEachWayPartnerTerms","useEffect","market","forEach","element","is_new","eachWay","useMemo","_props$market","length","allowed","K","place","_market$extra_info","_market$extra_info2","eachWayData","String","id","ManualEachWayK","ManualEachWayPlace","extra_info","EachWayK","EachWayPlace","hasEarlyPayout","has_early_payout","Boolean","USER_PERSONALIZATION_ENABLED","cc","TOUR_ACTIVE_CLASS","ADD_MARKET_CARDS","toggleCompact","marketCollapse__earlyPayout","marketCollapse__favorite","isFavorite","extraMarketInfo","event","stopPropagation","extra","extraFavourite","EventAction","ghost","icon","_24","marketBody__earlyPayout","MarketInfoTooltip","_Markets_Tooltips$mar","placement","_Tooltip","arrowPointAtCenter","trigger","getPopupContainer","triggerNode","parentElement","document","body","e","createOddType","_event$name","groupName","arguments","mapObj","w1","w2","p1","p2","replace","matched","base","MatchCardBase","_market$market_type","teamsInfo","sportName","gameInfo","isBlocked","_gameId","_sport","isUsaSinglePage","oddFormat","dispatch","useDispatch","configs","useSportsbookConfigs","showAllEvents","setShowAllEvents","selectedEventIds","getEventIds","sportData","useSportName","quickBetEnabled","getQuickBetEnabled","editBet","getEditBet","currentSportId","getSportIdByAlias","orderedEvents","events","values","maxDisplayColumn","Math","max","display_column","sort","a","b","order","eventGroupsNew","Array","from","i","len","filter","maxLength","group","eventGroup","push","shift","isCorrectScore","market_type","options","value","toString","coeficient","price","handicap","result","orderOptions","eventsCount","col_count","MARKETS_ROW_COUNT","slice","showToggleEventsButton","oddChangeHandler","popover","hidePopover","useOddChange","eventId","find","Number","sportIndex","isNaN","split","join","addedFromInlineCard","addBetSlipEvent","sport_id","eventBase","event_name","game_start_date","startAt","sport_index","sport_name","sport_alias","competition_name","current_game_state","current_game_time","region_name","market_name","game_name","game_info","express_id","prematch_express_id","ewAllowed","ew_allowed","type_1","updateEventAndGameIds","Odds","onChange","marketColCount","fullName","isCorrectScoreOrdered","prev","MatchCardBaseGroup","groupedMarkets","getOddFormat","spbLayoutType","ESportsbookLayoutTypes","AMERICAN","marketCopy","eventList","MarketsWrapper","isTheatreMode","MarketColumn","fullWidth","columnIndex","CombinCount","DIRECTION","MarketStatistics","lazyImport","MarketRow","_group$markets","_group$markets$","_group$markets2","_group$markets2$","_group$markets3","_find","marketLength","favGroupName","markets","getFavoriteActiveStateById","handlePosition","IS_RTL","hasMarketToolTipBySetting","MARKETS_TOOLTIPS","hasExternalToolTip","hasMarketToolTip","some","_ref2","TemplateComponent","availavleMarketType","templatesProps","showMarketStat","setShowMarketStat","showMarketStatIcon","STATISTICS_SWITCHER","is_stat_available","handleStatistic","useCallback","team2_name","Avatar","marginLeft","marginRight","_18","_20","color","cashout","expressId","FavoriteButtonMarket","colCount","currentMarket","is_blocked","start_ts","info","INITIAL_COUNT","LOAD_MORE_COUNT","MarketsGroupItems","memo","data","lazyScrollSettings","initialCount","loadMoreCount","targetId","menu","useScrollToTop","changedMarkets","useRef","marketGroups","setMarketGroups","isMoreDataAvailable","loadMore","prevMarkets","_Object$keys","current","getMarketGroup","updateGroup","InfiniteScroll","fixedScroll","scrollableTarget","dataLength","next","hasMore","scrollThreshold","loader","MarketsGroupItemsNoLazy","handleShowMoreClick","changedMarketsRef","RocketBetComponent","RocketBet","ROCKET_BET","Menu","FavoritesCount","MarketsSearch","setSearchValue","inputRef","search","setSearch","debounceSearchOpen","setDebounceSearchOpen","isMarketsSearchOpened","setIsMarketsSearchOpened","setTimeout","_inputRef$current","focus","useDebounce","DEBOUNCE_DELAY","_300","Input","ref","target","bordered","placeholder","BetsMenu","hasBoostedEvents","hideAll","activeMenu","favCount","regionAlias","setIsAllCollapsed","sportId","searchValue","handleActiveMenuChange","isLoggedIn","getIsLoggedIn","menuItems","betBuilderProps","fixtureId","sportcast_id","gameTitle","afterSignInActonName","AFTER_SIGN_IN_ACTION_TYPES","TOGGLE_BET_BUILDER_MODAL","openBetBuilder","useOpenBetBuilder","ENotRealSports","betBuilder","DEFAULT_SELECTED_MENU","BoostedOddsMenuItem","boostedOdds","_14","BET_BUILDER_SWITCHER","HIDE_BET_BUILDER","_32","detachPassedClassName","shape","EmptyFavoritesSkeleton","Button","BetBuilderContent","EventCollapse","EmptyFavorites","MatchCardInlineUSA","MarketList","_groupItems$","_groupItems$2","_groupItems$4","useSearchParams","favoriteMarkets","getFavoriteMarketGroupNames","getBoostedOdds","isMainMarketFavorited","MAIN_MARKETS_TYPE","filteredMarkets","setFilteredMarkets","marketsFilterSearchValue","setMarketsFilterSearchValue","setMenu","defaultGroupId","mainMarketsExpanded","setMainMarketsExpanded","favGroups","_store$getState$favDa2","IDs","store","getState","favData","isMainMarketFavorite","objIDs","count","Set","getFavGroupsCount","isOutright","show_type","shouldShowMainMarkets","favourites","EBoostType","ALL","LIVE","PREMATCH","onChangeMenu","selectedMarket","filteredArray","_store$getState$favDa","filterFavGroups","boostedEvents","group_id","selectedMenu","el","groups","groupsData","structuredClone","m","trim","group_name","orderedKeysArray","groupsKeysArray","item","arrayMove","arr","old_index","new_index","k","splice","indexOf","reduce","obj","groupItems","objectValues","isTwoColumn","firstColumn","secondColumn","loadingCondition","showEmptyPage","filteredGroups","_groupItems$3","parseInt","text_info","showTitle","scale","backgroundColor","groupItem","setTargetIdAsMarketColumnId","GameUsaSkeleton","hideMoreWages","isMainMarket","defaultActive","MatchCardInlineUSASkeleton","sportAlias","showGameTime","includeRedirect","compactView","loading","isMultiview","emptyText","SHORTHAND_MAPPINGS","inset","borderWidth","borderStyle","borderColor","gap","border","outline","expandCssShorthand","styles","expandedStyles","entries","mappings","expandedValues","fill","prop","DesktopESportMatchCardLine","_game$info","_game$info2","_game$info3","isOutRight","selectedOdd","setMarketGroupID","marketGroupID","hideWrapper","marketName","every","_ref3","label","isPrematchEsportsAll","align","GameTime","dir","useGameMapName","add_info","SIZE_24","lg","SIZE_12","dayjs","format","dateFormat","date","DT","shortDate","time","dateTimeSeparator","_Dropdown","overlay","_Menu","selectable","selectedKeys","items","menuItem","_menuItem$domEvent","domEvent","PickerButton","SkeletonButton","SIZE_17","minHeight","SIZE_20","TeamCaption","logo","teamId","team1_id","score1","team2_id","score2","SIZE_4","display","alignItems","iconWrapperESport__videoCam__noVideo","hasVideoStream","VideoCamIcon","iconContainerSize","EContainerIconSize","SMALL","PUSH_NOTIFICATIONS_ENABLED","NotificationIcon","FavoriteButtonGame","MatchStatistic","matchId","markets_count","CustomDataPicker","MatchCardInline","_markets$","_game$info4","_game$info5","_game$info6","_game$id2","_game$info7","_game$info8","_game$info8$additiona","_game$info8$additiona2","_game$info9","_game$info10","_game$info11","_game$info11$addition","_game$info11$addition2","_game$info12","scrollToGameId","getScrollToGameId","betslipPresent","getBetslip","getMarketType","eventIds","scrollToRef","handleScroll","useGameScrollIntoView","region","selected","setSelected","notMainMarket","setNotMainMarket","clicked","setClicked","gameNumber","GAME_NUMBER","gameObj","regionName","selectedGames","bgImg","category","calendar","longDate","noNeedScroll","hidePrivateCompetitions","isActive","setMarketName","longFormatChecker","NotRealSportsForDifFormats","showBetBuilder","isGamesWithArcheryNewData","ArcheryH2HSportAlias","CompoundArcherySportAlias","shouldScrollIntoView","_game$id","SportType","ESPORT","iconSize","MIDDLE","val","selectedGroupName","marketItem","startTime","isSportIconVisible","showSportIcon","timeout","timeoutDuration","DURATION_800","clearTimeout","_markets$2","_markets$3","sortedMarkets","_sortByOrder","mainMarkets","sortByOrder","elem","WINNER_MARKETS","sortMarketsByMainOrder","_market$event2","_market$event","response","eventsData","_sortedMarkets$","arrayFindBy","_event$base","type1","useLayoutEffect","findIndex","prevSelected","gameCurrentState","additional_data","getEsportCurrentMapName","getGameCurrentState","_markets$4","top","block","getSelectMarkets","ADD_GAME_CARDS","whiteText","_22","TEAM_LOGOS","hideCompetitionLogo","competition","Title","_6","shouldShowLiveTime","setShowExpandedMarkets","game_number","copy","_10","showStatisticInPopover","_props$setShowExpande","call","arrowIconExpanded","showExpandedMarkets","Team","Pill","matchPointsTotalScore","sp","prevSp","handleChangeOdds","IS_BETSLIP_FLOATING_ENABLED","showHandicaps","MatchHeader","gameData","ts","MILLISECONDS_IN_SECOND","sportImageSrc","useSportImage","SportImageOverlay","StyledImg","src","Content","TeamFlag","TeamLogo","sizeByPixels","Flag","substr","toUpperCase","TeamName","MatchDetails","$isOneGame","CompetitionName","StartDay","includeWeekday","StartTime","MatchHeaderSkeleton","MatchCardDefault","MatchCardPistolArchery","MatchCardPistolH2H","MatchCardArcheryH2HCompoundArchery","MatchCardBasketballShots","LAYOUTS","default","PistolShooting","PistolHead2Head","ArcheryH2H","CompoundArchery","Archery","BasketballShots","MatchInfoCard","openTimeLine","setOpenTimeLine","history","useHistory","matchStreamingGameData","getMatchStreamingGameData","matchStreamingType","getMatchStreamingType","useMatchInfoHide","availableModes","useGetAvailableModes","selectedSet","setSelectedSet","MatchCard","Swipeable","onSwiped","setMatchStreamingViewMode","EMatchStreamingViewModes","minimized","mountPoint","window","location","pathname","preventDefaultTouchmoveEvent","MatchInfoCardSkeleton","ICON_SIZE","MOBILE_24","DESKTOP_32","DesktopMultipleCardsSkeleton","LEFT_SIDE_BAR","_","MultipleSelectionsCardHeaderSkeleton","hideExpireDate","rows","Select","expanded","position","Icon","FavoriteCompetition","competitionsCount","setCollapsedCount","collapsedCount","competitions","path","tournamentSportIds","getTournamentSportIds","dataTestId","wrapperClassName","comp","CompetitionNameWithTooltip","competitionUrl","getMountPath","competitionItem","clickHandler","redirectPath","setClickFromFavorites","shouldRedirect","PAGE_URLS","prematch","handleRedirectToSportsBook","setTournamentSportIds","batchActions","setGamesByCompetitions","setSelectedCompetitions","handleClick","IconBeforeText","CompetitionsFavorite","competitionInfo","IconAfterText","SportHeader","IconWrapper","FavoriteEvents","gamesCount","favoriteMatches","competitionElements","alias","SportDataProvider","Name","SpinWrapper","Game","Competition","isDetailed","setListType","regions","favorite","fromSportsList","openFromSideBarPopup","sportType","scrollToCompetitionId","getScrollToCompetitionId","cashedSport","getCashedSport","timeStamp","getTimeFiltersData","USALayout","IS_AMERICAN_LAYOUT","routeParams","getPathname","competitionsData","flat","acc","CompetitionSkeleton","_competition$id2","isNotRealSport","NOT_REAL_SPORTS","UrlWrapper","url","SPORTSBOOK_MOUNT_PATH","handleOnWrapperClick","_competition$id","setScrollToCompetitionId","currentTarget","getBoundingClientRect","scrollTo","_routeParams$path","querySelector","setTimeFilterData","option","Loading","skeletonsCount","mobile","desktop","Favorite","setLoading","user","getUser","isLoading","getFavoriteDataLoading","getFavoriteMatches","getFavoriteCompetitions","favoriteMatchIds","getFavoriteMatchIds","personalisedDataLoaded","getPersonalisedDataLoaded","liveGamesCount","liveSports","premGamesCount","prematchSports","reg","regionsData","personalizationBasedLoading","pending","FetchFavoriteData","additionalMarkets","FavoriteSkeletonHeader","hideFirstSeperator","FavoritesSkeleton","OVERTIME_MARKETS_POSTFIX","getOrderedMarketsForUsaSports","marketTypes","orderedMarkets","checkIsMarketInGroupWithOvertime","teamLogoSizeProps","SkeletonAvatarSize","DetailedTeamsInfo","showScores","matchTrackerAvailable","video_id","video_id2","MATCH_TRACKER_AVAILABLE_SPORTS","iconsConditions","videoStream","matchTracker","statistics","notification","firstColumnAvailable","secondColumnAvailable","additionalScores","stats","currentSetScoreKey","team1_value","team2_value","marginDirection","_15","Odd","_boostedOdds$game$id","_boostedOdds$game$id2","_boostedOdds$game$id3","_event$type","_event$type_","isUsa","uniqueId","useId","isQuickBetEnabled","shouldShowQuickBetInfoPopover","getShouldShowQuickBetInfoPopover","handleOddSelect","subscriptions","getSubscriptions","subscription","removeBetSlipEvent","betSlipObject","is_live","region_alias","isSuspended","game_state","useHandleOddSelect","recaptchaEnabled","getRecaptchaEnabled","prevPrice","usePrevious","itemSelected","addToBetSlip","buttonRef","getButtonPosition","useOddButtonPosition","hasBoostedOdd","indicatorValue","getIndicatorPosition","useEventbus","ERecaptchaEventBusActionTypes","Verified","validateRecaptcha","_Popover","content","ConfirmationPopover","visible","onVisibleChange","overlayClassName","destroyTooltipOnHide","Validate","_11","convert","PREVIOUS_BOOSTED_ODDS","calculateBoostedOdds","OddIndicator","withBase","isUsaLayout","matchCardInlineUSADefaultProps","eventType","externalRedirect","withMoreWagesWrapper","showMarketName","matchStartTimeInFooter","detailedTeamsInfo","setMarketNames","showFavoriteButton","showBBIcon","isLast","isClassic","setIsClassic","USA_SPEC_SPORTS","isClassicColumn","setIsClassicColumn","TWO_WAY_OUTCOME_SPORTS","isLiveMatch","handleRedirect","winnerMarket","twoWay","EMPTY_MARKETS","getEmptyMarketsForNotClassicView","orderedArray","handicaps","HANDICAPS","overUnders","OVER_UNDERS","winner","findWinnerMarkersForUsaSports","foundedMarket","getSportsbookMarket","marketNames","isSportsbook","reverse","timeOnly","iconMargin","globalEllipsis","substring","matchCardInline__teamName","_createElement","eventItem","array","HeaderPickerSkeleton","withPadding","noTitle","withMarketFilter","SportTournament","_useSelector","_selectedTournament$R","sportsbookConfigs","isOpen","setIsOpen","setIsLoading","sportTournaments","setSportTournaments","selectedTournament","setSelectedTournament","sports","getSportsData","selectedSport","getSportsbookSelectedSport","currency","useCurrency","handleResetSelectedTournament","getTournaments","product_type_id","ETournamentProductTypeIds","SPORT","noMargin","MOBILE_20","DESKTOP_24","headerClassName","_8","RegistrationAmount","getTime","StartDate","EndDate","PrizeFund","redirectUrl","TTabDataKey","TOURNAMENTS","Id","preventDefault","addQuery","tournamentId","tournament","_tournament$SportRule","SportRuleList","SelectedSportItems","ids","handleSelectTournament","TimeFilterSkeleton","showTimeFilter","withCount","TimeFiltersMobile","TimeFilterDesktop","TimeFilter","isCalendar","withoutDays","resetTimeFilterMode","isDisabled","showSortButton","dateOptions","Date","setDate","getDate","valueOf","href","Viewport","useAlternative","SportTitleSkeleton","innerProps","MarketsFilter","_marketTypes$find","currentMarketType","useMarketTypes","setCurrentMarketType","menuItemKey","JSON","stringify","setMarketType","parentNode","EasyAccessSections","iconInfo","countGetter","countSetter","getSportsbookGamesCount","ESportEasyAccessSections","SPORT_ICON_STYLE","getESportsGamesCount","queryStringObject","RacingEasyAccessSections","HORSE_RACING","getRacingGamesCount","GREYHOUNDS_RACING","StandaloneGamesCount","setCount","rid","setRid","mounted","useMounted","returnedRid","unsubscribeCommand","NavSection","withRouter","routes","externalOnClick","tooltipOnParent","useLocation","queries","sbObj","sbPathFromObj","qs","ERacingPageTypes","UPCOMING","WhiteTooltip","SportsbookEasyAccessNavigation","outterRoutes","SearchElement","AppRoutes","Homework","FavoriteTeam","FavoriteSideBarSearchSection","searchCallback","showFavoriteTeam","config","FetchFavoriteMatchIds","FavoriteSideBarSection","SPORT_TOURNAMENTS","FavoriteTeamSkeleton","HOMEWORK_ENABLED","externalSportRedirect","searchType","ESearchElementSearchType","TopLeagueCompactMenuItemWithWrapper","TopLeagueCompactMenuItem","SportsbookNavigationsBlock","heightAuto","SportItem","_12","SportItemSkeleton","v","VerticalSportsList","sportCategory","boostedGameIDs","getPrematchBoostedOddsIds","SPORTSBOOK_ROUTE_WITH_CATEGORY","sportInRoute","sportsData","setSportsData","shouldUnsubscribe","where","getLivePreMatchSportTypes","what","gameSportcastIdWhere","gameSportcastId","Rid","RidGenerator","gForSubscribe","executeCommand","resp","orderedSports","setShowNoItemWrapper","handleSportSelect","setGameInfo","NoItem","text","sportsbookLeftSideBarDefaultProps","easyAccessAvailable","onlyCounts","showCompetitionsList","favoriteTeam","SportsbookLeftSideBar","_routeParams$params","_routeParams$params2","_routeParams$params9","_routeParams$params10","pageConfig","isBoostedOdds","showTopLeague","TOP_LEAGUES_LAYOUT","ETopLeagueLayoutType","compact","TOP_LEAGUES","showTopMatches","TOP_MATCHES_LAYOUT","ETopMatchesLayoutType","TOP_MATCHES","showOlympicCompetition","OLYMPIC_COMPETITION_LAYOUT","EOlympicLayoutType","OLYMPIC_COMPETITION","NavigationBlock","_routeParams$params3","_routeParams$params4","_routeParams$params7","_routeParams$params8","_routeParams$params5","_routeParams$params6","team","SportsNavigation","FAVORITE_TEAM_SPORT","CategoriesNavigation","isEmptySportData","TopMatchesCompactMenuItem","OlympicCompetitionCompactLayout","_routeParams$params11","_routeParams$params12","SportsHeader","externalTitle","MOCKED_DATA","classNames","favoriteHighlight","isFavoriteMatchIdsLoading","getFavoriteMatchIdsLoading","getFavoriteEntitiesCount","sportsWithCompetitions","collaspsedFavoriteBar","getCollaspsedFavoriteBar","leftSidebarFavDefaultActive","YOUR_PREFERENCES","clearAllFavorite","TopLeagueCompactMenuSkeleton","TOP_LEAGUES_DEFAULT_OPEN","RegionSkeleton","NavigationCollapse","showCollapse","sportIconSize","regionIconSize","externalDataSource","addGameStartTsInRequest","internalDataSource","getSwarmResponse","topLeague","addRegionNameToCompetition","parse","rId","topLeaguesWhere","relations","setSwarmResponse","getData","onToggle","setNavigationWrapperHeightChanged","isDefaultOpen","SPORT_MENU_DEFAULT_SELECTED","TopLeagueCompactLayoutSkeleton","hideFirstIcon","TopLeagueCompactLayout","StatscoreWrapper","StatscoreWrapperContainer","BrowserNotSupportedStyled","Statscore","state","getGameInfo","statscoreRef","widget","setWidget","browserNotSupported","setBrowserNotSupported","statscoreDataConfig","runStatscoreTracker","destroy","STATSCOREWidgets","onLoadCallbacks","onLoad","error","closeMatchTracker","WidgetGroup","language","d","getElementById","n","createElement","async","addEventListener","onload","appendChild","useCalculateBetslipFixedSwitchersHeight","isEditBetActive","quickBetStake","getQuickBetStake","betsTotalOdds","getBetsTotalOdds","BOTTOM_NAVIGATION_ELEMENT_DEFAULT_HEIGHT","betslipTotalOdds","betslipArea","BETSLIP_AREA_ID","clientHeight","QUICK_BET_ELEMENT_DEFAULT_HEIGHT","EDIT_BET_ELEMENT_SWITCHER_HEIGHT","BETS_TOTAL_ODDS_HEIGHT","previousGameId","alteredGame","setAlteredGame","disableMatchStreamingType","getDisableMatchStreamingType","disableMatchStreamingTypeRef","matchStreamingTypeRef","getPreviousView","disable","setDisableMatchStreamingStreamType","previous","streamTabOnclick","setMatchStreamingStreamType","setIsMatchStreamingPreviewUnavailable","privateCompetitionIds","PRIVATE_COMPETITIONS","JURISDICTION","gameCopy","stat","_gameCopy$stats","_gameCopy$stats2","_gameCopy$stats3","_gameCopy$stats4","_gameCopy$stats5","attack","dangerous_attack","foul","aces","double_fault","pass_team","AVAILABLE_SPORT_IMAGES","sportsConfigsData","getSportsConfigsData","sportAliasLowerCased","deviceType","imageName","sportConfigImg","concat","USER_FILES_URL","process","srcEnvVariable","effect","delay","deps","isDebouncing","setIsDebouncing","handler","Jackpot","MatchStreamingWidget","DesktopRight","skipImportEffect","SEPARATED_WIDGETS_ROUTE","sportsBookConfigs","jackpotTitleFontSize","jackpotFontSize","JACKPOT_TITLE_SIZE_DIFFERENCE","jackpotDetailsFontSize","overviewPath","OVERVIEW_TAB_PATH","showMatchStreamingContent","racing","isEsport","isMatchStreamingAvailable","IS_SEPARATED_WIDGETS","_state$game","isEsportSeparatedWidgetMatchStreaming","IS_SEPARATED_ESPORT_WIDGETS","setIsMatchStreamingTheatreModeAvailable","jackpotForSportsbook","moduleId","JACKPOT_SPORTSBOOK_ID","showJackpot","jackpotBackground","jackpotType","jackpotBorderRadius","shouldHaveSportsbookWrapper","Betslip","jackpotForSport","detectTopHeight","isOverview","noWrap","dateTime","dtFormat","isRtl","empty","HooryAICard","skeletonStyles","HooryAiCardLazyWrapper","HOORY_ENABLED","HOORY_ENABLED_SPORTSBOOK_BETSLIP","HooryAICompactComponent","HooryAICompact","AdvancedMarketsFilterContent","AdvancedMarketsFilter","selectedMarkets","selectedMarketsReduxKey","selectedMarketTypeNames","addSportSectionInHeader","doNotShowMarkerFiltersRow","AdvancedMarketsFilterSkeleton","AdvancedMatchCardsDesktop","AdvancedMatchCardsMobile","AdvancedGameCardsWithMarketsFilters","_useSelector2","_useSelector3","_useSelector4","gameIds","layoutType","streamData","skeletonCount","ADVANCED_SKELETON_COUNTS","_3","setLoadMoreBtnLoading","marketsCountsReduxKey","groupGamesBy","LoadMoreButton","showEmptyView","advancedLeftSideBarSportsData","ADVANCED_LEFT_MENU_DATA_REDUX_KEY","gamesInfo","getAdvancedGamesMainInfo","gamesMarketsInfo","getAdvancedGamesMarketsInfo","getAdvancedSelectedMarkets","first","second","third","marketTypesBySport","getMarketTypes","gamesGeneralInfo","someGameIdsInfoPresent","gamesObj","getCurrentRegionObj","_advancedLeftSideBarS","currentRegion","currentCompetition","gameWithInfo","_marketTypesBySport$f","_marketTypesBySport$f2","_marketTypesBySport$f3","selectionTypesNames","setAdvancedSelectedMarkets","advancedSelectedMarketsInitialState","advancedEventsLayoutRelations","onResponse","setAdvancedGamesMainInfo","selectedMarketsValues","setAdvancedGamesMarketsInfo","EmptyMatches","MatchCardInlineSkeleton","EAdvancedEventsLayouts","live","AdvancedMatchCardSkeleton","FAVORITE_MATCHES_RELATIONS","gameList","MARKET_COUNT_RELATIONS","FAVORITE_DATA_CALL_PREFIX","hookId","gCustom","all","unsubscribe","FAVORITE_HOOKS_CACHE","subscribedHookIds","fetchData","fetchMarkets","unsubscribeAllCommand","EFavoriteActions","dataSubscriptionUnmount","mountedHookIds","_FAVORITE_HOOKS_CACHE","isSubscribedHookUnmounted","withAdditionalMarkets","setFavoriteDataLoading","getMarketsCountPromise","Promise","resolve","getFavoriteSubscribeWhere","setFavoritesMarketsCount","marketsEuropean","getFavoriteMatchesPromise","setFavoriteSportsData","modifyFavoritesResponse","then","setMarketsCounts","finally","useFetchFavoriteData","useFetchFavoriteMatchIds","setShouldCall","shouldCall","favoriteDataLoading","fetchIds","setFavoriteIdsLoading","FavoriteTeamSingleView","teamName","withWidth","activeStyles","useCustomHistory","withoutBorder","resetAdvancedSportsForMarketsTypes","resetMarketTypes","FavoriteTeamBodySkeleton","minWidth","AdvancedGamesFilteredByCompetitionsSkeleton","showMarketFilterSkeleton","FavoriteTeamBodyTitleSkeleton","GamesListFilterByCompetitions","GamesFilteredByLeagues","FavoriteTeamsBody","useAdvancedMarkets","useGetAdvancedSportsMainData","setGameIds","favoriteTeams","getFavoriteSportTeams","getStreamData","sportAliases","getAdvancedSportsForMarketsTypes","routeMatch","selectedTeam","teamIds","availableSports","fetchFavoriteGameIds","betCommand","command","CommandNames","GET","source","CommandSource","BETTING","subscribe","prevState","newGameIds","newGameId","setAdvancedSportsForMarketsTypes","upcoming","FavoriteTeamsHeader","goBack","FAVORITE_TEAMS_ALL_ROUT","setSportsbookSelectedSport","SwiperSlider","bodyArrows","activeSlide","spaceBetween","drawableTabs","_team$teamName","coupon","groupedGamesData","_Object$values$filter","resultObj","Map","sportAliasesSet","add","compName","compId","games","prematchGames","gamesByType","set","resArr","keyValue","filteredSportsData","_ref4","compInfo","_ref5","EGroupGamesBy","day","Empty","view","GoalScoredSkeleton","SkeletonElement","textAlign","Divider","distance","EmptySkeleton","LastFiveMatchesAvgSkeleton","LastFiveMeetingsSkeleton","ResultsSkeleton","useEventsConfigs","selectedEventsType","getSelectedEventsType","getSelectedSport","RegionLevelNavigation","forwardRef","_navItemsToRender$fin","_navItemsToRender$fin2","navItemsToRender","itemsSliceCount","competitionClickHandler","useCompetitionClick","regionsSortingOption","getRegionsSortingOption","clickFromFavorites","getClickFromFavorites","routeCompetitionInData","_navItemsToRender$","firstCompetition","setCompetitionMetaData","getDefaultActive","_region$competition","isCurrentRegionInRoute","SPORT_COMPETITION_IS_COMPACT","orderedData","ViewCollapse","renderInDom","RENDER_COMPETITIONS_IN_DOM","wrapperBackColor","returnURLOnly","skipCategory","forcePushUrl","newPath","SportLevelNavigation","sportsSortingOption","getSportsSortingOption","getIsDefaultActive","_sport$competition","createIconBeforeText","topMatches","CLASSIC","multiples","isTopLeague","sportDataByRouteAlias","regionDataByRouteAlias","competitionDataByRouteAlias","firstRegion","orderedCompetitions","regionId","ADD_COMPETITIONS","createIconAfterText","NavigationCollapseWrapper","navigationData","levelAlias","regionLevel","sportLevel","getNavigationWrapperHeightChanged","userSportOrder","getUserSportOrder","prevSelectedRegionIndex","_region$competition2","setItemsSliceCount","checkIsElementScrollable","orderedSportData","prevCount","NotificationIconContent","_userSportNotificatio","_userSportNotificatio2","notificationLoading","setNotificationLoading","userSportNotifications","getUserNotifications","shouldSubscribeForNotifications","is_subscribed","handleNotificationClick","userPending","updateGamesNotifications","setGamesNotifications","game_start_ts","details","code","setUserNotifications","IFRAME_SPORTSBOOK","openSlider","saveCurrentLocation","accounts","login","AfterSignIn","appendAction","SUBSCRIBE_FOR_NOTIFICATION","useSportsNotifications","NOTIFICATION_SUPPORTING_SPORTS","OlympicSkeleton","avatar","olympicCompetition","is_olympic","visible_in_prematch","OLYMPIC_ICON_OTHER","ORIGINAL_MARKET_COUNT","SportsbookGameList","handleMatchClick","groupsCount","setGroupsCount","EPageTypes","getterParam","marketsCount","getMarketsCount","activeGameId","isMobileTodayEvents","todayEvents","scrollTarget","INFINITE_SCROLL_ID","originalMarketsCount","ELayoutTypes","usa","includeCollapse","hideMargin","currentSportAlias","selectedCompetitions","getSelectedCompetitions","ADVANCED","selectedSportToUpdate","_Object$values$find","isSameCompetitionForEU","isSameRouteForClassicAndUSA","setSportRegionCompData","LS","setItem","storageKeyName","pathToRedirect","_competition$favorite","favorite_order","Infinity","shouldSelectFirstCompetition","hasTopLeagueData","SportRegionGameListSkeleton","COMPETITION_SKELETON_DEFAULT_LENGTH","TopMatchesCompactMenuSkeleton","TopMatchesCompactLayout","handleMatchCardClick","_e","_region","_competitionId","regIndex","compIndex","CompetitionItemCollapse","sportInfo","isFirstCompetition","isBoostedOdd","TopMatchesCompactLayoutSkeleton","_Object$values$","isTopMatches","topMatchesWhere","TopMatchesSportList","promoted","_Object$values","_Object$values2","_Object$values2$","competiton","isInPrematch","origin","filteredUrl","orientation","createTestId","_Input","LivePrematchTabsSkeleton","activeItem","MenuUnderline","MenuFill","underline","MenuUnderlineSkeleton","MenuFillSkeleton","MenuContext","createContext","selectedItem","sportsMenuItems","onSelectItem","toggleGroupState","FavMenuItem","layout","orderIsLoading","Layout","Provider","withMenuWrapper","SwiperCore","use","Navigation","Autoplay","Pagination","getSliderSelectorClassName","getSlideSelectorClassName","_sliderRef$current5","_sliderRef$current5$s","_sliderRef$current6","_sliderRef$current6$s","autoplay","headerTitle","headerArrows","slidesPerView","showIndicators","slideClassName","sliderClassName","arrowsPortalId","disableSwiping","interactiveIndicators","indicatorsCustomClassName","loop","sliderWrapperClassName","fetchOnProgress","alwaysShowArrows","slideOnHover","notToWatchIsEnd","isEnd","setIsEnd","sliderRef","activeIndex","setActiveIndex","containerRef","bodyArrowRef","isArrowsNeeded","setIsArrowsNeeded","isSlidesRendered","setIsSlidesRendered","sliderId","intervalRef","_containerRef$current","_containerRef$current2","childNodes","changeSize","_containerRef$current3","containerWidth","clientWidth","visibleItemsCount","totalWidth","_items$i","itemWidth","offsetWidth","removeEventListener","_sliderRef$current","swiper","slideTo","paginationUniqueClass","random","handlePrevClick","_sliderRef$current2","slidePrev","handleNextClick","_sliderRef$current3","slideNext","handleSwiperInit","_sliderRef$current4","_sliderRef$current4$s","updateSlides","slides","slide","slider","_slide$getClientRects","_slider$getClientRect","slideWidth","getClientRects","sliderWidth","slidePeerView","floor","node","Fragment","handleSlideChange","ArrowsWrapper","Portal","rootId","handleMouseLeave","clearInterval","isLeftArrowDisabled","isRightArrowDisabled","onMouseOver","CAROUSEL_ARROWS","onMouseOut","disabled","onMouseEnter","setInterval","DURATION_1000","onMouseLeave","Swiper","allowTouchMove","pagination","clickable","disableOnInteraction","onSlideChange","onSwiper","onSliderMove","update","grid","modules","Grid","onProgress","point","progress","toFixed","callback","SwiperSlide","EventsConfigsContext","EventsConfigsProvider","useContext","SearchElementSkeleton","SearchBarSkeleton","SearchElementComponent","_props$configs","openPopup","setOpenPopup","bottomNavigationHeight","searchLayout","Popup","zIndex","ESearchElementEventBusActionTypes","TitleSkeleton","CountSkeleton","CouponLevelNavigation","categoryData","multipleSelectionsIds","getMultipleSelectionsCompIds","boostedOddsIds","getBoostedOddsIds","orderSports","useGetUserSportOrder","createGetSportDataWhereObj","handleResponseSportsData","TimeFilterWrapper","sportsFavoriteClickHandler","useSportsFavoriteClickHandler","favoritesCount","showClearAllButton","shouldShowTimeFilter","gameCount","SportsFavoriteButton","regionCompData","getRegionCompData","hasTimeStamp","setRegionCompData","sportTypes","multipleSelectionsCompIds","outright","createTodayEventsWhere","_ref6","_ref7","_ref8","createGetGamesWhereObj","favoriteTeamId","isBetBuilder","main_order","display_key","collapseDefaultActive","AdvancedLeftMenu","mainSportsMenuSelectedSport","selectedCompetitionIds","getAdvancedTempCompetitionIds","selectedRange","getAdvancedSelectedRangeFilter","filteredData","ranges","selectedSportData","currentSportFilteredData","filterSportDataByGameStartTsRange","sportsOrderedData","onClearAllClick","setAdvancedTempCompetitionIds","AdvancedSportsContent","portalRootId","ADVANCED_LEFT_MENU_SHOW_EVENTS_BUTTON_ID","ADVANCED_EVENTS_DEFAULT_COUNT","EventsRow","marketEvents","hideHandicapName","ExpandedMarkets","marketsData","setMarketsData","MarketsListOnlySkeleton","eventsSkeletonCount","odd","MAPPING","AdvancedMatchCard","isLiveStreamingAvailable","gameGeneralInfo","gameMarketsInfo","showSportName","isExact","expandedMarkets","setExpandedMarkets","GAME_TYPE_LIVE","availableIcons","videoCam","selectedMarketsToShow","GLOBALS","sportsBook","redirectedFromFavorite","sbRedirect","FAVORITE_BUTTON_CONTAINER_ICON_SIZE","ADVANCED_CONTAINER_SIZE","_selectedMarketTypeNa","rowKey","LiveIndicator","EShowEventsButtonLayout","showSportCollapse","showEventsButtonType","BUTTON","showAllEventsExtraClassname","compIds","idsInQuery","bottomNavSwitchersHeight","onShowEventsCLick","idsToSetInQuery","SportCollapse","bottom","fullwidth","AdvancedShowAllEventsUnderlined","liveGameIdsByRegions","sportHasLiveGames","extraRight","RegionCollapse","regionData","compIdsWithLiveGame","allCompIds","isAllSelected","extraLeft","Checkbox","checked","newCompIds","delete","CompetitionRow","has","CompetitionFavoriteMatchesCountIndicator","AdvancedLiveGamesListSkeleton","LiveCompetitionsCollapseSkeleton","LiveCompetitionsCollapse","liveGamesData","getAdvancedLiveGames","display_sub_key","setAdvancedLiveGames","regionIndex","AdvancedMatchCardInLineWrapper","AdvancedLiveGamesList","liveSportsData","getAdvancedLiveSports","setAdvancedLiveSports","AdvancedLeftSideBar","gameType","isLiveSingleGameView","showOlympic","Route","exact","routePathWithMockedDataCheck","render","match","isLiveGameSingleView","DesktopSportsbookAdvanced","useRedirectToAdvancedRoute","useAdvancedInitialRedirection","SBCol","fit","flexDirection","TARGET_IDS_BY_LAYOUT","AdvancedMainContent","ADVANCED_SPORT_BY_COMPETITIONS_LAYOUT_SHOW_EVENTS_BUTTON_ID","DESKTOP_RIGHT_WRAPPER_Z_INDEX","RANGE_FILTER_VALUES","unix","durationHours","THREE_HOURS","SIX_HOURS","TimesToAdd","AFTER_1_DAYS","AFTER_3_DAYS","endOf","AFTER_2_DAYS","startOf","AdvancedRangeFilter","setAdvancedSelectedRangeFilter","range","handleSelectRange","AdvancedCompetitionsBySportLayout","topLeaguesData","filteredSportData","dataBySport","topLeaguesFilteredData","noCompetitionsAvailable","UNDERLINE","GAME_RELATED_INFO_SEPARATOR","gamesGroupedByKey","league","createTitleContent","groupInfoValues","gamesGeneralInfoMocked","_gamesMarketsInfo$gam","_createArray","add_minutes","stoppage_firsthalf","stoppage_secondhalf","shirt1_color","shirt2_color","short1_color","short2_color","field","horse_xml","Status","RacingId","HorceCXml","HorceBXml","virtual","periods_values","period_points_home_d","period_points_away_d","period_points_home","period_points_away","home_total","away_total","_parent_id","tv_type","is_feed_available","gameForMobile","is_started","events_count","live_events","event_type","event_value","last_event","express_min_len","exclude_ids","descr","match_length","AdvancedGamesFilteredByTimeSkeleton","showSkeleton","AdvancedFilters","queryKey","filterItems","queryValue","handleFilterClick","EAdvancedCompetitionsFilters","FILTER_ITEMS","LEAGUE","TIME","CompetitionsFilters","MobileMatchCardWrapper","DEFAULT_MARKETS","MARKETS_BY_SPORTS","Soccer","Basketball","Tennis","Volleyball","IceHockey","TableTennis","Handball","Cricket","AmericanFootball","AustralianFootball","Baseball","Darts","Floorball","Boxing","BallHockey","GaelicFootball","Futsal","Mma","Hurling","RugbyLeague","Chess","Badminton","Rowing","Snooker","CyberFootball","X1Football","Speedway","Halo","Softball","RugbyUnion","Lacross","Squash","WaterPolo","CounterStrike","Dota2","CallOfDuty","KingOfGlory","LeagueOfLegends","StarCraft2","CrossFire","MobileLegends","EBasketball","WarcraftIII","GamesListFilteredByTime","gamesArr","reduxKey","gamesMainData","gamesMarketsData","marketsCounts","useGetMarketsCounts","_gamesGeneralInfo","_gamesMarketsInfo","gameInfoInResponse","_gamesMarketsData$gam","marketTypesBySportAliases","rIdForGameInfo","whatForGameInfo","whereForGameInfo","onResponseForGameInfo","rIdForMarkets","whatForMarkets","whereForMarkets","onResponseForMarkets","_5","FilteredByTimeWrapper","dayFromStartTs","startTs","TIME_RANGES_BY_COUPON_LAYOUT","EAdvancedCouponsLayouts","todayMatches","tomorrowMatches","AdvancedGamesByCompetitions","filterBy","selectedCouponInQuery","selectedTimeRange","breadcrumbItems","idsArray","PREMATCH_GAME_TYPE_FOR_SWARM","noGamesAvailable","AdvancedHeaderBreadcrumb","additionalNavigationItems","AdvancedCouponsLayout","upcomingMatches","updateQuery","handleLayoutClick","DESKTOP_28","AdvancedSportsMenu","setSelectedSport","getAdvancedEventsLayoutSports","setAdvancedEventsLayoutSports","SPORTS_WHAT","getWhere","popular","loadMoreBtnLoading","AdvancedGameCardsWithLoadMoreWrapper","getGameWhereByLayoutType","AdvancedEventsLayout","_gameIds$selectedSpor","_gameIds$selectedSpor2","_gameIds$selectedSpor3","_gameIds$selectedSpor4","selectedLayoutInQuery","getAdvancedEventsLayoutGameIds","internalSelectedSport","setInternalSelectedSport","noGamesAvailableForSelectedSport","noOverallData","isShowAllOrSportSelected","gameIdsToShow","shouldShowAllEventsButton","onSelectedSportChange","onShowAllClick","setMainSportMenuData","sortedAndFilteredGameIds","setAdvancedEventsLayoutGameIds","EAdvancedSportFilters","NOW_NEXT","COMPETITIONS","COUPONS","SportFilters","SportsbookSportsMenu","SportsMenuWithFavorite","AdvancedMainSportsMenu","whereParams","translationKeysByView","GeneralEventsView","contentHeight","useContentHeight","viewBy","selectedSportViewByFilterInQuery","isMainSportSelected","shouldShowMainBreadcrumb","emptyMatchesWrapperMobile","withLink","generateContent","isNoLiveGamesAvailable","SingleGameView","showAdvancedHeader","QueryRoute","excludes","SENT_REQUESTS_BY_SPORT_ALIAS","doNotUseCache","promiseMarketsSwarmRequest","swarmCommand","GET_MARKET_TYPE","Order","MarketTypeName","BasaltKind","SelectionTypesNames","setMarketTypes","handleMatchCardClickWrapper","onDataNotFoundOrError","isInitialMountRef","marketsCountRid","updateMarketsCount","setMarketsCount","generatedUrl","useSbSportsbookRouteMatch","newRoute","LivePrematchTabs","DesktopPrematchSportsMenu","DesktopSportsbookClassic","generatedSbPath","showNoItemWrapper","getShowNoItemWrapper","isCoupon","showSideBar","LEFT_SIDE_BAR_SPORTS","LEFT_SIDE_BAR_CASINO","NoItemContainer","SBCol__fixedScroll","SIZE_5","LIVE_PREMATCH_SWITCHER","FirstColumnContent","overflowX","SIZE_14","notItem__wrapper","SecondColumnContent","paramsSport","SportsbookGameListWrapper","DropdownStyled","DesktopGameListSkeleton","SportsbookGameListHeaderSkeleton","DesktopSingleGameViewSkeleton","isESport","CompetitionCollapse","selectedCompetition","selectedCompNoGameId","firstSelectedGame","firstGame","GamesByCompetitionsCollapse","gamesData","getSportRegionCompData","SportsbookMultiples","CouponGameListWrapper","isSeparatedWidget","coupons","getCoupons","isFavTeam","isBoosted","noPadding","separatedWidgetsRowNoMargin","SportsbookWidgetsHeightWrapper","shouldWrap","childrenElementId","SPORTSBOOK_WIDGETS_IDS","sportsbookGamesList","GameListWrapperSkeleton","SIZE_16","sportsbookSingleView","SingleGameViewSkeleton","gameIDs","marketWhereGameList","marketWhereEuropean","getIsTheatreMode","liveStreamInfo","getMatchStreamingLiveStreamInfo","isChannelsAvailable","getIsMatchStreamingChannelsAvailable","isEventHasMatchTracker","isMatchStreamingHasVideo","_streamData$Number","modes","hasLiveStream","EMatchStreamingTypes","VIDEO","MATCH","openCallback","afterSignInActions","getAfterSignInActions","betBuilderModalVisible","_toggleBetBuilderModal","openAfterRefresh","setOpenAfterRefresh","isPrevOpened","toggleBetBuilderModal","openBetBuilderAction","mustRefreshForSessionVisibility","refreshWhenLoggedIn","afterSignInActionsCopy","assign","setAfterSignInActions","betBuilderModalParams","errorCallback","connectingWS","socket","sendCommand","GET_TOURNAMENT_LIST","gForCommand","getTournament","GET_TOURNAMENT","tournament_id","getTournamentStats","GET_TOURNAMENT_STATS","joinTournament","JOIN_TO_TOURNAMENT","getEventsSelector","getSelectorRoot","getEvents","getSports","getTimeFilter","getGameData","getRaceData","getUpcomingData","getHorseGamesAdditionalData","getCompetitionData","getGame","getStoredGameIds","getDateAndSportFilterActiveTab","getIsCompetitionsLoading","getIsUpcomingRacesLoading","getGameFromActiveTab","getIsCheckGameStartTs","getIsCheckCompetition","getResultsTimeFilterActiveTab","getResultsCompetitionData","getIsResultsCompetitionDataLoading","geTRacingResultsGameData","getSpecElems","DEFAULT_JACKPOT_SIZES","main","amount","pool","getJackpotElementSize","font","getJackpotDefaultFontSize","line","fontSize","MAX_FONT_SIZE","FONT_SIZE_INCREMENT_VALUE_8","FONT_SIZE_INCREMENT_VALUE_4","reducer","cur","CollectedAmount","getTotalAmount","poolList","JACKPOT_CALENDAR_ID","JACKPOT_MULTIVIEW_ID","jackpotModuleIds","home","virtualSports","eLive","ePrematch","casinoGames","casinoTournaments","ReservedRoutes","addToBetslip","deposit","FAVORITE_TEAM_SPORT_ID","PISTOL_H2H_SHOOT_OFF_SET_NUMBER","ARCHERY_H2H_SHOOT_OFF_SET_NUMBER","PISTOL_SHOOTING_SETS_COUNT","ARCHERY_SHOOTING_SETS_COUNT","PISTOL_SHOOTING_SHOOTS_COUNT","ARCHERY_SHOOTING_SHOOTS_COUNT","H2H_COMPOUND_ARCHERY_SHOOTS_COUNT","PISTOL_H2H_SHOOTS_COUNT","PISTOL_H2H_SHOOT_OFF_MAX_SHOOTS_COUNT","H2H_COMPOUND_ARCHERY_MATCH_STATE_NOT_STARTED","H2H_COMPOUND_ARCHERY_MATCH_STATE_IN_PLAY","H2H_COMPOUND_ARCHERY_MATCH_STATE_TIMEOUT","H2H_COMPOUND_ARCHERY_MATCH_STATE_FINISHED","ARCHERY_H2H_GAME_STATUSES","EUROPEAN","CALENDAR_TAB_PATH","RESULTS_TAB_PATH","TOURNAMENT_TAB_PATH","BETHISTORY_TAB_PATH","MULTIVIEW_TAB_PATH","separator","local","selector","scrollHeight","SHOW_TOUR_PAGES","TOUR_PATH_NAMESPACE","pageAlias","decodeURI","casino","homepageKey","TOUR_STEPS_LIST","TOUR_STEPS_TYPES","yourPreferences","currentActiveTourStep","step","modal","description","addSports","addCompetitions","addCompetitionsTopMatches","addGameCards","addMarketCards","myCasino","myCasinoProviderItem","myCasinoGameCard","_ref9","detectTourMethod","timestampRange","hasRegionInSport","hasCompetitionInRegion","hasGameInCompetition","PeriodNames","BeachFootball","BeachHandball","BeachVolleyball","Bowls","Curling","GearsOfWar","Hearthstone","HeroesOfTheStorm","Hockey","MortalKombatXL","Netball","Overwatch","RugbySevens","Smite","StarCraft","Tekken7","WorldOfTanks","WorldOfWarcraft","Valorant","AgeofEmpires","ApexLegends","ArenaOfValor","Artifact","CounterStrike2","FreeFire","Overwatch2","Quake","RainbowSix","RocketLeague","Vaingloory","Leaderboards","Place1st","Place2nd","Place3rd","TRASNSLATION_KEYS_BY_GAME_STATE","gamesWithNewData","gState","gTime","additionalData","shootOffSet","matchState","currentSet","getPeriodName","periodName","periodNumber","ordinal","num","suf","getGameStatus","checkGameState","additionalInfoData","currentMapRule","maps","number","getMapName","ordinalDefault","mapNumber","mapName","withoutNumber","notNestedValues","_stat"],"sourceRoot":""}