{"version":3,"file":"event-list.module-bfuvnez7.js","sources":["packages/sports/web/app/src/calendar/calendar-redirect.guard.ts","packages/sports/web/app/src/competition-list/competition-navigation.component.ts","packages/sports/web/app/src/competition-list/competition-navigation.html","packages/sports/web/app/src/event-list-shared/sport/competitions/competition.service.ts","packages/sports/web/app/src/competition-list/competition-page.resolver.ts","packages/sports/web/app/src/event-list-shared/market-group/market-group.resolver.ts","packages/sports/web/app/src/event-list-shared/sport/competitions/competition-list.html","packages/sports/web/app/src/event-list-shared/sport/competitions/competition-list.component.ts","packages/sports/web/app/src/world-cup-hub/world-cup-hub-route.guard.ts","packages/sports/web/app/src/event-list/coupons/coupon-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list/coupons/coupon-list-breadcrumbs.resolver.ts","packages/sports/web/app/src/client-caching/previous-page-cache.service.ts","packages/sports/web/app/src/dependency/child-dependency.resolver.ts","packages/sports/web/app/src/dependency/master-dependency.resolver.ts","packages/sports/web/app/src/event-list/coupons/coupon.resolver.ts","packages/sports/web/app/src/event-list/dynamic-categories/dynamic-categories-redirect.guard.ts","packages/sports/web/app/src/event-list/dynamic-categories/dynamic-categories.resolver.ts","packages/sports/web/app/src/event-list/sport/competitions/competition.resolver.ts","packages/sports/web/app/src/event-list/sport/event-list-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list/sport/event-list-schema-markup.resolver.ts","packages/sports/web/app/src/event-list/sport/sport-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list-shared/tournament/tournament.service.ts","packages/sports/web/app/src/event-list/tournament/tournament-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list/tournament/tournament-league-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list-shared/tournament/tournament-events.service.ts","packages/sports/web/app/src/event-list-shared/tournament/tournament-overview.service.ts","packages/sports/web/app/src/event-list/tournament/tournament.resolver.ts","packages/sports/web/app/src/event-list/event-list-routing.module.ts","packages/sports/web/app/src/event-list/event-list.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { TimeFilterConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, of } from 'rxjs';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { SportUrlParam, UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CalendarRedirectGuard {\n constructor(\n private timeFilterConfig: TimeFilterConfig,\n private urlHelper: UrlHelperService,\n private redirectHelperService: RedirectHelperService,\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n if (this.timeFilterConfig.isTimeFilterEnabled) {\n const defaultUrl = route.params?.sport ? this.getCalendarUrl(route) : '';\n if (defaultUrl) {\n this.redirectHelperService.goToPage(defaultUrl);\n }\n\n return of(false);\n }\n\n return of(true);\n }\n\n private getCalendarUrl(route: ActivatedRouteSnapshot): string {\n return this.urlHelper.getSportUrl({ id: route.params.sport, name: route.params.sportName }, SportUrlParam.Today);\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\n\nimport { CompetitionRoute } from '../navigation/navigation.models';\nimport { CompetitionTreeComponent } from './competition-tree.component';\n\n@Component({\n selector: 'ms-competition-navigation',\n templateUrl: 'competition-navigation.html',\n standalone: true,\n imports: [CompetitionTreeComponent],\n})\nexport class CompetitionNavigationComponent {\n @Input() sport: CountItem;\n @Input() context: CompetitionRoute;\n @Input() tournaments: Tournament[];\n}\n","\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nimport { ShowcaseFixtureData } from '@cds/betting-offer/domain-specific/showcase';\nimport { MarqueeRequest } from '@cds/query-objects';\nimport {\n ClientCachingConfig,\n PrettyUrlsConfig,\n Sitecore,\n SportsConfig,\n TeamPagesConfig,\n TimeFilterConfig,\n} from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport {\n CountItem,\n ItemCount,\n ItemMeta,\n ItemType,\n VirtualCompetitionPrefix,\n children,\n isAntepost,\n isVirtualCompetitionItem,\n} from '@frontend/sports/common/core/data-access/sport-model';\nimport { ExpiringCache } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { GridSorting } from '@frontend/sports/grid/core/feature/model';\nimport { GridStoreService } from '@frontend/sports/grid/core/feature/store';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { flatten, isArray, isEmpty, isNumber, keys, lowerCase, now, orderBy, toInteger } from 'lodash-es';\nimport { Observable, combineLatest, from, iif, map, mergeMap, of, switchMap, tap } from 'rxjs';\n\nimport { CalendarCacheService } from '../../../calendar/calendar-cache.service';\nimport { CalendarService } from '../../../calendar/calendar.service';\nimport { IntervalFilter, IntervalLink } from '../../../calendar/count-interval.service';\nimport { MarqueeApi } from '../../../cds/marquee-api.service';\nimport { ShowcaseApi } from '../../../cds/showcase-api.service';\nimport { getItemTypeForSport } from '../../../competition-list/competition-list.models';\nimport { CompetitionNavigationComponent } from '../../../competition-list/competition-navigation.component';\nimport { CompetitionRouteService } from '../../../competition-list/competition-route.service';\nimport { CompetitionTreeService } from '../../../competition-list/competition-tree.service';\nimport { CompetitionListService, CompetitionOverview } from '../../../competition-list/services/competition-list.service';\nimport { MasterDetailComponent, MasterDetailDependencyService } from '../../../dependency/master-detail-dependency.service';\nimport { IMarqueeRequestInfo, MarqueeRequestBuilderService } from '../../../highlights-marquee/marquee-request-builder.service';\nimport { MarqueeResponseMapperService } from '../../../highlights-marquee/marquee-response-mapper.service';\nimport { CompetitionPageType } from '../../../highlights-marquee/marquee-tile.model';\nimport { ColumnLayoutService } from '../../../layout/column-layout.service';\nimport { RedirectHelperService } from '../../../navigation-core/redirect-helper.service';\nimport { MarketOfferUrlParam } from '../../../navigation-core/url-helper.service';\nimport { CompetitionRoute } from '../../../navigation/navigation.models';\nimport { SeoContentService } from '../../../seo/seo-content.service';\nimport { ShowcaseRequestBuilderService } from '../../../showcase/showcase-request-builder.service';\nimport { Lobby, type LobbySpecificRequest, type ShowcaseModuleData } from '../../../showcase/showcase.model';\nimport { ShowcaseService } from '../../../showcase/showcase.service';\nimport { TabBarItem } from '../../../tab-bar/tab-bar.models';\nimport { TeamPagesCoreService } from '../../../teampages-core/team-pages-core.service';\nimport { TeamPagesViewModel } from '../../../teampages-core/team-pages.model';\nimport { EventListService } from '../services/event-list.service';\nimport { SortingStateService } from '../services/sorting-state.service';\nimport { VirtualCompetitionService } from '../virtual-competition.service';\nimport { CompetitionGridHelper } from './competition-grid.helper';\nimport { CompetitionIdService } from './competition-id.service';\nimport { FixtureList, FixtureTab, ReverseFixtureTab } from './competition.models';\nimport { PruneHelperService } from './prune-helper.service';\n\ntype CountValue = ItemCount & ItemMeta;\ntype CountCallback = (item: CountValue) => number | undefined;\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionService extends MasterDetailDependencyService {\n private cache: ExpiringCache;\n constructor(\n private service: EventListService,\n private competitionListService: CompetitionListService,\n private routerEvents: RouterEventsService,\n private router: CompetitionRouteService,\n private calendar: CalendarService,\n private sitecore: Sitecore,\n private sortingStateService: SortingStateService,\n private urlConfig: PrettyUrlsConfig,\n private sportConfig: SportsConfig,\n private gridStore: GridStoreService,\n private gridHelper: CompetitionGridHelper,\n private pruneHelperService: PruneHelperService,\n private redirectHelper: RedirectHelperService,\n private device: DeviceService,\n layoutService: ColumnLayoutService,\n clientCachingConfig: ClientCachingConfig,\n private showcaseRequestBuilderService: ShowcaseRequestBuilderService,\n private showcaseApiService: ShowcaseApi,\n private showcaseService: ShowcaseService,\n private seoContentService: SeoContentService,\n private marqueeApi: MarqueeApi,\n private marqueeRequestBuilderService: MarqueeRequestBuilderService,\n private marqueeResponseMapperService: MarqueeResponseMapperService,\n private teamPagesConfig: TeamPagesConfig,\n private teamPagesCoreService: TeamPagesCoreService,\n private virtualCompetitionService: VirtualCompetitionService,\n private competitionTreeService: CompetitionTreeService,\n private calendarCacheService: CalendarCacheService,\n private timeFilterConfig: TimeFilterConfig,\n private competitionIdService: CompetitionIdService,\n ) {\n super(layoutService);\n this.cache = new ExpiringCache(clientCachingConfig.regionListTimeout);\n\n this.routerEvents.currentActivationEnd.pipe(takeUntilDestroyed()).subscribe((route) => {\n if (route && route.snapshot.data.tag !== RouteTag.Competition) {\n this.deregister();\n }\n });\n }\n\n getRouteParams(): Params {\n return this.router.params();\n }\n\n getData(route: ActivatedRouteSnapshot, detail?: FixtureList): Observable {\n return this.getCompetitionOverview(this.router.params());\n }\n\n getPreResolvedData(route: ActivatedRouteSnapshot, detail?: FixtureList | undefined): Observable {\n return this.getCompetitionOverview(route.params);\n }\n\n private getCompetitionOverview({ sport, context, conference, league }: CompetitionRoute): Observable {\n const interval = this.calendar.getTimeInterval(context) || {};\n\n if (!sport) {\n throw new Error('Sport should be defined');\n }\n\n // following fix is needed for golf, that has antepost and so ends up on a redirect loop\n // as the sport is available but expects to redirect to competitions, while it is unable to do so\n // as there are no events\n const source = this.competitionListService\n .getSportTree(\n sport,\n interval.from,\n interval.to,\n this.layoutService.layout.shouldHaveLeftColumn,\n !!conference && !isArray(league) ? league : undefined,\n conference,\n )\n .pipe(\n map((result) => {\n if (result?.sport && !isAntepost(result.sport)) {\n return result;\n }\n\n return;\n }),\n );\n\n if (!interval.from && !interval.to) {\n return source;\n }\n\n return this.cache.getOrCreate(`${context}-${sport}`, source);\n }\n\n override shouldUpdateMasterCache(master: CompetitionOverview, route: ActivatedRouteSnapshot): boolean {\n return true;\n }\n\n override shouldUpdateDetailCache(detail: FixtureList, route: ActivatedRouteSnapshot): boolean {\n return (\n !!detail.sport &&\n !!detail.sport.children &&\n !!detail.sport.children.length &&\n route.params?.region &&\n (detail.sport.children.length !== 1 || detail.sport.children[0].id.toString() !== route.params.region)\n );\n }\n\n getDetailData(route: ActivatedRouteSnapshot, master?: CompetitionOverview | undefined): Observable {\n const params = this.mergeTargetToParams(this.router.params(), this.getTarget(master));\n return this.getFixtureList(this.getData(route), route, params);\n }\n\n getPreResolvedDetailData(route: ActivatedRouteSnapshot): Observable {\n const params = this.mergeTargetToParams({ ...route.params }, this.getTarget(undefined, route));\n return this.getFixtureList(this.getPreResolvedData(route), route, params, false, false);\n }\n\n private getFixtureList(\n competitionOverview$: Observable,\n route: ActivatedRouteSnapshot,\n params: CompetitionRoute,\n includePostRequest = true,\n shouldRedirect = true,\n ): Observable {\n const empty = of(undefined);\n const sorting = this.getSorting(params);\n const showcaseRequest = this.getShowcaseRequest(params);\n\n // we have the cache implemented in the getData method, so we do not care to check if load from cache or reload it\n return competitionOverview$.pipe(\n map((overview) => ({\n sport: overview ? this.pruneHelperService.prune(overview.sport, params) : undefined,\n overview,\n compoundId: this.competitionIdService.getCompoundId(overview?.sport, params?.league),\n })),\n tap(({ sport }) => this.enhance(sport, params, shouldRedirect)),\n switchMap(({ sport, overview, compoundId }) =>\n combineLatest([\n // When params.conference is 0 it means there is conferenceId in route, but it wasn't parsed successfully\n // So we skip calling cds for invalid conference\n // when params.conference is undefined it means there is no conferenceId in route\n // and user is not on conference page\n iif(() => params.conference === 0 || this.isWithoutFixtures(params, sport), empty, this.service.getFixtureList(params, sorting)),\n iif(\n () => includePostRequest && !isEmpty(showcaseRequest.queries),\n this.showcaseApiService.getShowcaseData(showcaseRequest),\n empty,\n ),\n iif(\n () => includePostRequest,\n this.getMarqueeRequest(sport, params).pipe(\n mergeMap(({ request, tiles }) =>\n iif(\n () => isEmpty(request),\n empty,\n this.marqueeApi\n .getMarquees(request)\n .pipe(map((fixtures) => fixtures && this.marqueeResponseMapperService.mapFixtures(fixtures, tiles))),\n ),\n ),\n ),\n empty,\n ),\n iif(\n () => params.sport === undefined && params.region === undefined && params.league === undefined,\n empty,\n from(\n this.seoContentService.getForEventDetails({\n filter: this.getDetailDataContext(this.router.params()),\n sport: params.sport,\n region: params.region,\n league: this.competitionIdService.getCompetitionId(sport, params),\n conference: params.conference,\n }),\n ),\n ),\n iif(\n () => !!route.params.league && this.teamPagesConfig.isEnabled && !params.isVirtual,\n this.teamPagesCoreService.getModelByCompetition(route, false, compoundId),\n empty,\n ),\n iif(\n () =>\n includePostRequest &&\n params.sport !== undefined &&\n this.timeFilterConfig.isTimeFilterEnabled &&\n this.calendar.getInterval(params.context) !== undefined,\n this.calendarCacheService.getSportWithCalendar(params.sport!),\n empty,\n ),\n ]).pipe(\n map(([fixtures = { fixtures: [], totalCount: 0 }, showcase, marqueeData, seoCompetitionTitle, teams, sportsCache]) => {\n return {\n ...fixtures,\n params,\n sport,\n sorting,\n tabs: this.getNavigation(sport, params, teams),\n virtualCompetition: overview ? this.virtualCompetitionService.getCompetition(overview.sport, params) : undefined,\n showcaseData: showcase && this.mapShowcaseFixtures(this.getShowcaseDataInfo(params), showcase.fixtures),\n competitionTitle: seoCompetitionTitle?.h1Header,\n marqueeData,\n teampagesViewModel: teams,\n calendarIntervals: this.showTimefilters(sportsCache) ? this.getLinks(params, sportsCache!) : undefined,\n calendarPills: this.showTimefilters(sportsCache)\n ? this.competitionTreeService.getCalendarPills(overview?.sport, params)\n : undefined,\n sportsOverview: overview?.sport,\n calendarLiveCounts: sportsCache,\n };\n }),\n ),\n ),\n );\n }\n\n private mergeTargetToParams(params: CompetitionRoute, target: CompetitionRoute): CompetitionRoute {\n if (target.region) {\n params.region = target.region;\n params.regionName = target.regionName;\n }\n\n if (target.league) {\n params.league = target.league;\n params.isVirtual = target.isVirtual;\n params.leagueName = target.leagueName;\n }\n\n return params;\n }\n\n private getDetailDataContext({ context }: CompetitionRoute) {\n return keys(this.urlConfig.translations)\n .filter((prop) => this.urlConfig.translations[prop] === context)\n .pop();\n }\n\n private isWithoutFixtures(params: CompetitionRoute, sport?: CountItem) {\n return !sport || params.marketOffer === MarketOfferUrlParam.Standings;\n }\n\n private getShowcaseDataInfo(params: CompetitionRoute): LobbySpecificRequest {\n return {\n lobby: Lobby.Competition,\n sportId: params.sport,\n competitionId: params.league,\n regionId: params.region,\n };\n }\n\n private getShowcaseRequest(params: CompetitionRoute) {\n return this.showcaseRequestBuilderService.getRequestPayload(this.getShowcaseDataInfo(params));\n }\n\n getMarketGroupData(route: ActivatedRouteSnapshot): Observable {\n const params = this.router.params();\n const empty = of(undefined);\n const sorting = this.getSorting(params);\n\n let marqueeRequest: IMarqueeRequestInfo;\n let realCompetitionId: number | undefined;\n const context = keys(this.urlConfig.translations)\n .filter((prop) => this.urlConfig.translations[prop] === this.router.params().context)\n .pop();\n\n const isWithoutFixtures = (sport?: CountItem) => !sport || params.marketOffer === MarketOfferUrlParam.Standings;\n\n // we have the cache implemented in the getData method so we do not care to check if load from cache or reload it\n return this.getData(route).pipe(\n map((overview) => ({\n sport: overview ? this.pruneHelperService.prune(overview.sport, params) : undefined,\n overview,\n })),\n tap(({ sport }) => {\n this.enhance(sport, params);\n realCompetitionId = this.competitionIdService.getCompetitionId(sport, params);\n }),\n switchMap(({ sport, overview }) =>\n combineLatest([\n iif(() => isWithoutFixtures(sport), empty, this.service.getFixtureList(params, sorting)),\n this.getMarqueeRequest(sport, params).pipe(\n mergeMap((request) => {\n marqueeRequest = request;\n\n return iif(() => isEmpty(marqueeRequest.request), empty, this.marqueeApi.getMarquees(marqueeRequest.request));\n }),\n ),\n iif(\n () => params.sport === undefined && params.region === undefined && params.league === undefined,\n empty,\n from(\n this.seoContentService.getForEventDetails({\n filter: context,\n sport: params.sport,\n region: params.region,\n league: realCompetitionId,\n }),\n ),\n ),\n\n iif(() => params.sport !== undefined, this.calendarCacheService.getSportWithCalendar(params.sport!), empty),\n ]).pipe(\n map(([fixtures, marqueeInfo, seoCompetitionTitle]) => {\n fixtures = fixtures || { fixtures: [], totalCount: 0 };\n\n const marqueeData = marqueeInfo && this.marqueeResponseMapperService.mapFixtures(marqueeInfo, marqueeRequest.tiles);\n\n return {\n ...fixtures,\n params,\n sport,\n sorting,\n competitionTitle: seoCompetitionTitle?.h1Header,\n marqueeData,\n sportsOverview: overview?.sport,\n };\n }),\n ),\n ),\n );\n }\n\n private getCalendarIntervals(links: string[] | undefined): { [key: string]: IntervalFilter } {\n const intervals = this.calendar.getCalendarIntervals();\n\n keys(intervals).forEach((key) => {\n if (!links?.includes(intervals[key].name)) {\n delete intervals[key];\n }\n });\n\n return intervals;\n }\n\n private showTimefilters(sportsCache: CountItem | undefined): boolean {\n return !!sportsCache?.meta?.calendarIntervals?.length;\n }\n\n private getLinks(params: CompetitionRoute, sport: CountItem): IntervalLink[] {\n const time = now();\n const leaguePrefix = params.isVirtual ? VirtualCompetitionPrefix : undefined;\n const intervals = this.getCalendarIntervals(sport.meta.calendarIntervals);\n\n const links = keys(intervals)\n .map((key) =>\n this.calendar.getUrl(\n key,\n intervals[key]!,\n sport,\n params.context,\n this.competitionTreeService.getUrlParameter(params.region, params.regionName),\n this.competitionTreeService.getUrlParameter(params.league, params.leagueName, leaguePrefix),\n ),\n )\n .filter(isDefined);\n\n return orderBy(links, [(link) => (!link.to || link.to.getTime() < time ? time : link.to)], ['asc']);\n }\n\n getComponents(): MasterDetailComponent[] {\n return [\n {\n component: CompetitionNavigationComponent,\n map: (master?: CompetitionOverview) => ({\n sport: master!.sport!,\n tournaments: master!.tournaments!,\n context: this.router.params(),\n }),\n },\n ];\n }\n\n getTarget(tree?: CompetitionOverview | undefined, route?: ActivatedRouteSnapshot): CompetitionRoute {\n const { context } = route?.params || this.router.params();\n\n if (!tree?.sport || tree.sport.children.length === 0) {\n return {};\n }\n\n const target: CompetitionRoute = {};\n const type = getItemTypeForSport(tree.sport.id);\n\n target.sport = tree.sport.id;\n target.sportName = tree.sport.name;\n target.context = context;\n\n const regionList = children(tree.sport, type);\n const region = this.getTopFallback(regionList);\n\n if (region && !this.calendar.isInterval(context)) {\n target.region = region.id;\n target.regionName = region.name;\n\n if (region.children.length === 1) {\n target.league = region.children[0].id;\n target.isVirtual = isVirtualCompetitionItem(region.children[0]);\n target.leagueName = region.children[0].name;\n }\n }\n\n return target;\n }\n\n protected override hasDependency(route: ActivatedRouteSnapshot, master: CompetitionOverview | undefined): boolean {\n const { subContext } = this.router.params();\n\n if (this.device.isRobot && subContext === this.urlConfig.translations.competitions) {\n return false;\n }\n\n return super.hasDependency(route, master);\n }\n\n private getMarqueeRequest(sport: CountItem | undefined, params: CompetitionRoute): Observable {\n const marqueeRequestParams = this.getMarqueeRequestParams(sport, params);\n\n return marqueeRequestParams\n ? this.marqueeRequestBuilderService.buildForCompetition(marqueeRequestParams.ids, marqueeRequestParams.sportId, marqueeRequestParams.type)\n : of({\n request: {\n marqueeData: [],\n },\n tiles: [],\n });\n }\n\n private getMarqueeRequestParams(\n sport: CountItem | undefined,\n params: CompetitionRoute,\n ): { ids: number[]; type: CompetitionPageType; sportId: number } | undefined {\n if (!sport) {\n return;\n }\n\n if (params.league) {\n const leagues = children(sport, ItemType.Competition);\n const leagueIds = flatten(leagues.map((l) => l.siblings));\n\n return {\n ids: leagueIds,\n type: CompetitionPageType.Competition,\n sportId: params.sport!,\n };\n }\n\n return {\n ids: [params.region!],\n type: CompetitionPageType.Region,\n sportId: params.sport!,\n };\n }\n\n private enhance(sport: CountItem | undefined, params: CompetitionRoute, shouldRedirect = true): void {\n if (!sport) {\n return;\n }\n\n let extended = false;\n\n if (!params.marketCategory) {\n const id = this.gridHelper.getId(params);\n const state = this.gridStore.get(id);\n\n if (state) {\n const group = state.columns.find((current) => current.extended);\n\n if (group) {\n extended = true;\n params.marketCategory = toInteger(group.group);\n }\n }\n } else {\n extended = !params.marketOffer || params.marketOffer === MarketOfferUrlParam.Gridable;\n }\n\n const offerPriority = this.sportConfig.competitionOfferPriority;\n const offerOrder = offerPriority.overrides[sport.id] || offerPriority.default;\n const offerCount = {\n [MarketOfferUrlParam.Gridable]: sport.counts.gridable + sport.counts.nonGridable + sport.counts.other,\n [MarketOfferUrlParam.Outrights]: sport.counts.outrights,\n [MarketOfferUrlParam.Specials]: sport.counts.specials,\n [MarketOfferUrlParam.Standings]: this.hasLeagueStatistics(sport, params.virtualCompetitionGroup),\n [MarketOfferUrlParam.Teams]: this.teamPagesConfig.isEnabled,\n };\n\n if (params.marketOffer && !offerCount[params.marketOffer as keyof typeof offerCount] && shouldRedirect) {\n return this.redirectHelper.goToPage(this.router.path());\n }\n\n if (extended && offerCount.matches) {\n params.marketOffer = MarketOfferUrlParam.NonGridable;\n } else if (!params.marketOffer) {\n for (const offer of offerOrder) {\n if (offerCount[offer as keyof typeof offerCount]) {\n params.marketOffer = offer;\n break;\n }\n }\n }\n }\n\n private getNavigation(\n sport: CountItem | undefined,\n route: CompetitionRoute,\n teamPagesViewModel: TeamPagesViewModel | undefined,\n ): TabBarItem[] | undefined {\n if (!sport || !(route.context === this.urlConfig.translations.betting || route.context === this.urlConfig.translations.conferences)) {\n return;\n }\n\n const navigation: TabBarItem[] = [];\n\n const appendContext = { ...sport.counts, ...sport.meta };\n const append = (tab: FixtureTab, count: CountCallback) => {\n const value = count(appendContext);\n\n if (isNumber(value) && value > 0 && navigation) {\n //TODO any index issue, probably a defect, please investigate Teams vs Team key mismatch (remove cast to see the issue)\n //cast was needed due to Teams not matching the key Team\n const title = this.sitecore.event[ReverseFixtureTab[tab] as keyof typeof this.sitecore.event];\n navigation.push({ id: tab, title, count: value });\n }\n };\n\n append(FixtureTab.Matches, (x) => x.preMatch + x.live - x.outrights);\n append(FixtureTab.Outrights, (x) => x.outrights);\n append(FixtureTab.Specials, (x) => x.specials);\n if (\n this.teamPagesCoreService.isTeamPagesEnabledForSport(sport.id) &&\n route.league &&\n teamPagesViewModel?.teamPagesNavigationViewModel.teams?.length\n ) {\n navigation.push({ id: FixtureTab.Teams, title: this.sitecore.globalMessages.Teams });\n }\n\n if (this.hasLeagueStatistics(sport, route.virtualCompetitionGroup)) {\n navigation.push({ id: FixtureTab.Standings, title: this.sitecore.event.Standings });\n }\n\n if (route.marketOffer) {\n const matchingOffer = new Map([[MarketOfferUrlParam.NonGridable, MarketOfferUrlParam.Gridable]]);\n const marketOffer = matchingOffer.get(route.marketOffer) || route.marketOffer;\n\n navigation.forEach((item) => (item.active = lowerCase(FixtureTab[item.id]) === marketOffer));\n } else {\n navigation.forEach((item, index) => (item.active = index === 0));\n }\n\n return navigation;\n }\n\n // Checking if any leafs have standings\n private hasLeagueStatistics(sport: CountItem, group?: number): boolean {\n if (sport.id !== SportConstant.Soccer) {\n return false;\n }\n\n const leagues = children(sport, ItemType.Competition);\n\n if (!group && leagues.some((league) => league.standings && (!league.isVirtual || league.children.length > 0))) {\n return true;\n }\n\n const groups = children(leagues, ItemType.VirtualCompetitionGroup);\n\n if (groups.some((league) => league.standings)) {\n return true;\n }\n\n return false;\n }\n\n private getTop(source: CountItem[]): CountItem | undefined {\n return source\n .filter((x) => x.order !== undefined)\n .sort((first, second) => first.order! - second.order!)\n .shift();\n }\n\n private getTopFallback(source: CountItem[]): CountItem {\n const top = this.getTop(source);\n\n if (top) {\n return top;\n }\n\n return source[0];\n }\n\n private getSorting(params: CompetitionRoute): GridSorting {\n if (params.marketOffer === MarketOfferUrlParam.Outrights || params.marketOffer === MarketOfferUrlParam.Specials) {\n return GridSorting.Competition;\n }\n\n if (params.isVirtual) {\n return this.sortingStateService.getVirtualCompetition();\n }\n\n const competitionSorting = this.sortingStateService.get('competitions', params.sport);\n\n if (competitionSorting === undefined) {\n return GridSorting.Competition;\n }\n\n return competitionSorting;\n }\n\n private mapShowcaseFixtures(showcaseDataInfo: LobbySpecificRequest, fixtures?: ShowcaseFixtureData[]): ShowcaseModuleData | undefined {\n if (isEmpty(fixtures)) {\n return;\n }\n const mappedFixtures = this.showcaseService.getLobbySpecificMappedData(showcaseDataInfo, fixtures!);\n const competitionId = this.getCompetitionId(showcaseDataInfo);\n\n return {\n ...mappedFixtures,\n events: mappedFixtures.events.filter((f) => competitionId === f.event.league.id || competitionId === f.event.league.parentLeagueId),\n };\n }\n\n private getCompetitionId(data: LobbySpecificRequest): number | undefined {\n if (isNumber(data.competitionId) && data.competitionId > 0) {\n return data.competitionId;\n } else if (Array.isArray(data.competitionId) && data.competitionId.length) {\n return data.competitionId.find((id) => id > 0);\n }\n\n return;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { WidgetLayoutResponse } from '@frontend/sports/types/components/widget';\nimport { Observable, combineLatest, forkJoin, map, switchMap, take, tap } from 'rxjs';\n\nimport { CompetitionService } from '../event-list-shared/sport/competitions/competition.service';\nimport { WidgetContextService } from '../widget/common/widget-context.service';\nimport { CompetitionListSeoService } from './competition-list-seo.service';\nimport { CompetitionRouteService } from './competition-route.service';\nimport { CompetitionOverview } from './services/competition-list.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionPageResolver {\n readonly #competitionRouteService = inject(CompetitionRouteService);\n readonly #competitionService = inject(CompetitionService);\n readonly #widgetContextService = inject(WidgetContextService);\n readonly #seoService = inject(CompetitionListSeoService);\n\n resolve(route: ActivatedRouteSnapshot): Observable {\n if (this.#competitionService.getRouteParams) {\n route.params = this.#competitionService.getRouteParams();\n }\n\n const enchancedContext$ = this.#widgetContextService\n .enhanceContext(this.#widgetContextService.getContext({ snapshot: route }))\n .pipe(tap((ctx) => this.#seoService.saveRealCompetitionId(ctx.realCompetitionId)));\n\n const masterData$ = this.#competitionService.getData(route);\n const layout$ = enchancedContext$.pipe(switchMap((ctx) => this.#widgetContextService.getLayout(ctx, false)));\n\n return forkJoin([layout$, masterData$]).pipe(\n map(([layout, data]) => {\n this.handleMasterData(data);\n\n return layout;\n }),\n );\n }\n\n preResolve(route: ActivatedRouteSnapshot): void {\n // Extract Speculative Link url from preResolver and use it to override the params\n route.params = this.#competitionRouteService.parse((route as any).preResolverUrl as string);\n combineLatest([this.#competitionService.getPreResolvedData(route), this.#widgetContextService.preResolveWidgets(route)])\n .pipe(take(1))\n .subscribe();\n }\n\n private handleMasterData(data: CompetitionOverview | undefined): void {\n if (data) {\n this.#competitionService.registerDependency(data);\n }\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';\n\nimport { FixtureList } from '../sport/competitions/competition.models';\nimport { CompetitionService } from '../sport/competitions/competition.service';\n\nexport const marketGroupResolver: ResolveFn = (route: ActivatedRouteSnapshot) => {\n const dependencyService = inject(CompetitionService);\n\n return dependencyService.getMarketGroupData(route);\n};\n","\n\n \n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, HostBinding, HostListener, OnDestroy } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { PrettyUrlsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { HooksWireup, OnRouteResolve } from '@frontend/sports/common/core/utils/hooks';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { RxIf } from '@rx-angular/template/if';\nimport { Subject, map, startWith } from 'rxjs';\n\nimport { CalendarService } from '../../../calendar/calendar.service';\nimport { ErrorComponent } from '../../../common/error/error.component';\nimport { CompetitionRouteService } from '../../../competition-list/competition-route.service';\nimport { CompetitionTreeComponent } from '../../../competition-list/competition-tree.component';\nimport { CompetitionOverview } from '../../../competition-list/services/competition-list.service';\nimport { ComponentLoaderComponent } from '../../../deferred/component-loader.component';\nimport { LiveNowLinkRegisterService } from '../../../live-now-item/live-now-link-register.service';\nimport { RedirectHelperService } from '../../../navigation-core/redirect-helper.service';\nimport { CompetitionRoute } from '../../../navigation/navigation.models';\n\n@HooksWireup()\n@Component({\n selector: 'ms-competition-list',\n templateUrl: 'competition-list.html',\n standalone: true,\n imports: [CompetitionTreeComponent, ErrorComponent, ComponentLoaderComponent, RxIf, NgTemplateOutlet],\n})\nexport class CompetitionListComponent extends OnRouteResolve implements OnDestroy {\n @HostBinding('class') className = 'region-list-overview';\n\n sport?: CountItem | null;\n tournaments?: Tournament[];\n context: CompetitionRoute;\n render$ = new Subject();\n showLoader$ = this.render$.pipe(\n map(() => false),\n startWith(true),\n );\n\n constructor(\n private router: CompetitionRouteService,\n private redirectHelper: RedirectHelperService,\n public sitecore: Sitecore,\n route: ActivatedRoute,\n private liveButton: LiveNowLinkRegisterService,\n private urlConfig: PrettyUrlsConfig,\n private calendar: CalendarService,\n ) {\n super(route);\n }\n\n @HostListener('swiperight')\n goBack(): void {\n this.redirectHelper.goBack();\n }\n\n onRouteResolved(model: CompetitionOverview | undefined): void {\n this.sport = model?.sport ?? null;\n\n if (!model || !this.sport) {\n return;\n }\n this.context = this.router.params();\n this.tournaments = model.tournaments;\n\n if (this.showLiveLink()) {\n this.liveButton.addLiveButton(this.sport);\n }\n }\n\n ngOnDestroy(): void {\n this.liveButton.removeLiveButton();\n }\n\n private showLiveLink(): boolean {\n if (!this.context.context) {\n return false;\n }\n\n const interval = this.calendar.getInterval(this.context.context);\n\n return this.context.context === this.urlConfig.translations.betting && !interval;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { WorldCupHubService } from './world-cup-hub.service';\n\n@Injectable({ providedIn: 'root' })\nexport class WorldCupHubRouteGuard {\n constructor(\n private worldCupHubService: WorldCupHubService,\n private redirectHelperService: RedirectHelperService,\n ) {}\n\n canActivate(): boolean {\n if (this.worldCupHubService.cultureUrlData) {\n return true;\n } else {\n this.redirectHelperService.goHome();\n\n return false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { VirtualCompetitionPrefix } from '@frontend/sports/common/core/data-access/sport-model';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { BetBuilderDetail } from '../../event-list-shared/coupons/bet-builder/bet-builder-detail.model';\nimport { CouponDetail } from '../../event-list-shared/coupons/coupon.model';\nimport { CouponUrlParam, SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\n\nconst competitionIcon = 'sports-icon sports-league';\n@Injectable()\nexport class CouponBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {\n super();\n }\n\n protected customResolve(coupon: CouponDetail): BreadcrumbModel[] {\n if (!coupon?.sport) {\n return [];\n }\n\n const sport = coupon.sport;\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n let crumb = this.createCrumb({\n icon: 'theme-coupons-all',\n title: this.sitecore.globalMessages.Coupons,\n url: this.urlHelper.getCouponUrl(sport),\n });\n let region: UrlParam | undefined;\n let league: UrlParam | undefined;\n\n if ((coupon.competition || coupon.virtualCompetitionData) && coupon.page.fixtures.length) {\n const fixture = coupon.page.fixtures[0];\n region = {\n id: fixture.region.id,\n name: fixture.region.name.value,\n };\n league = {\n id: coupon.virtualCompetitionData?.id || fixture.competition.id,\n name: coupon.virtualCompetitionData?.name ?? fixture.competition.name.value,\n prefix: coupon.virtualCompetitionData ? VirtualCompetitionPrefix : undefined,\n };\n\n const competitionTitle = this.sitecore.seo.LeagueHeadingTitle.replace(/{{league}}/, league.name);\n crumb = this.createCrumb({\n icon: competitionIcon,\n title: competitionTitle,\n url: this.urlHelper.getSportUrl(sport, SportUrlParam.Betting, region, league),\n });\n }\n\n return [\n this.createCrumb({\n icon: `sports-${sport.id}`,\n title,\n url: this.urlHelper.getSportUrl(sport),\n }),\n crumb,\n this.createCrumb({\n icon: 'sports-coupons-icon',\n title: coupon.title,\n url: this.urlHelper.getCompetitionCouponUrl(\n sport,\n {\n id: coupon.id,\n name: coupon.title,\n },\n region,\n league,\n ),\n }),\n ];\n }\n}\n\n@Injectable()\nexport class BetbuilderBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {\n super();\n }\n\n protected customResolve(data: BetBuilderDetail): BreadcrumbModel[] {\n if (!data?.fixture?.fixtures.length) {\n return [];\n }\n\n const fixture = data.fixture.fixtures[0];\n const sport = {\n id: fixture.sport.id,\n name: fixture.sport.name.value,\n };\n\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n\n let crumb = this.createCrumb({\n icon: 'theme-coupons-all',\n title: this.sitecore.globalMessages.Coupons,\n url: this.urlHelper.getCouponUrl(sport),\n });\n let region: UrlParam | undefined;\n let league: UrlParam | undefined;\n\n if (data.competitionId) {\n region = {\n id: fixture.region.id,\n name: fixture.region.name.value,\n };\n league = {\n id: fixture.competition.id,\n name: fixture.competition.name.value,\n };\n\n const competitionTitle = this.sitecore.seo.LeagueHeadingTitle.replace(/{{league}}/, league.name);\n crumb = this.createCrumb({\n icon: competitionIcon,\n title: competitionTitle,\n url: this.urlHelper.getSportUrl(sport, SportUrlParam.Betting, region, league),\n });\n }\n\n return [\n this.createCrumb({\n icon: `sports-${sport.id}`,\n title,\n url: this.urlHelper.getSportUrl(sport),\n }),\n crumb,\n this.createCrumb({\n icon: 'sports-coupons-icon',\n title: this.sitecore.betBuilder.messages?.BetBuilderEventsTitle ?? '',\n url: this.urlHelper.getCompetitionCouponUrl(sport, CouponUrlParam.BetBuilder, region, league),\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { CouponList } from '../../event-list-shared/coupons/coupon.model';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\n\n@Injectable()\nexport class CouponListBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {\n super();\n }\n\n protected customResolve(data: CouponList): BreadcrumbModel[] {\n if (!data || !data.sport) {\n return [];\n }\n\n const sport = data.sport;\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n\n return [\n this.createCrumb({\n icon: `sports-${sport.id}`,\n title,\n url: this.urlHelper.getSportUrl(sport),\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PreviousPageLocationConfiguration } from '@frontend/sports/common/client-config-data-access';\nimport { ExpiringCache } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { Observable, firstValueFrom, of, tap } from 'rxjs';\n\n@Injectable()\nexport class PreviousPageLocationCacheService {\n private previousPageCachetime: ExpiringCache;\n\n constructor(private previousPageLocationConfiguration: PreviousPageLocationConfiguration) {\n this.initialisePreviousPageConfig();\n }\n\n private cachedNavigationId: number;\n private navigationId: number;\n private isBack: boolean;\n private readonly previousPageCacheKey = 'previousPage';\n\n private async initialisePreviousPageConfig(): Promise {\n await firstValueFrom(this.previousPageLocationConfiguration.whenReady);\n this.previousPageCachetime = new ExpiringCache(this.previousPageLocationConfiguration.caheTimeOut);\n }\n\n getPreviousPage(): Observable {\n if (this.isBack && this.previousPageCachetime?.has(this.previousPageCacheKey)) {\n return this.previousPageCachetime.get(this.previousPageCacheKey).pipe(\n tap(() => {\n this.clearCache();\n }),\n );\n }\n\n return of(undefined);\n }\n\n setPreviousPage(previousPage: T): void {\n if (!this.isBack) {\n this.cachedNavigationId = this.navigationId - 1; // First Routing Start is being called before destory of old component\n this.previousPageCachetime?.create(this.previousPageCacheKey, of(previousPage));\n }\n }\n\n setNavigationParameters(id: number, isBack: boolean): void {\n this.navigationId = id;\n this.isBack = isBack;\n if (this.cachedNavigationId && this.navigationId - this.cachedNavigationId > 1 && !this.isBack) {\n this.clearCache();\n }\n }\n\n private clearCache(): void {\n this.previousPageCachetime.clear();\n }\n}\n","import { Optional } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { Observable, firstValueFrom, iif, of, switchMap } from 'rxjs';\n\nimport { PreviousPageLocationCacheService } from '../client-caching/previous-page-cache.service';\nimport { MasterDetailDependencyService } from './master-detail-dependency.service';\n\nexport class ChildDependencyResolver {\n constructor(\n private dependencyService: MasterDetailDependencyService,\n @Optional() private previousPageLocationCacheService: PreviousPageLocationCacheService,\n ) {}\n\n resolve(route: ActivatedRouteSnapshot): Observable {\n return this.previousPageLocationCacheService\n ? this.previousPageLocationCacheService.getPreviousPage().pipe(\n switchMap((data) => {\n return iif(() => !data, this.dependencyService.getChildContext(route), of(data));\n }),\n )\n : this.dependencyService.getChildContext(route);\n }\n\n preResolve(route: ActivatedRouteSnapshot) {\n firstValueFrom(this.dependencyService.getPreResolvedDetailData(route));\n }\n}\n","import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { MasterDetailDependencyService } from './master-detail-dependency.service';\n\nexport abstract class MasterDependencyResolver {\n constructor(\n protected dependencyService: MasterDetailDependencyService,\n private router: Router,\n ) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n return this.dependencyService.getContext(route).pipe(\n tap((result) => {\n if (this.dependencyService.shouldRedirect()) {\n const childRoute = this.getChildRoute(route, state, result);\n this.router.navigate([childRoute]);\n }\n }),\n );\n }\n\n preResolve(route: ActivatedRouteSnapshot): void {\n this.dependencyService.getPreResolvedDetailData(route);\n }\n\n abstract getChildRoute(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, result?: TMaster): string;\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n\nimport { PreviousPageLocationCacheService } from '../../client-caching/previous-page-cache.service';\nimport { ChildDependencyResolver } from '../../dependency/child-dependency.resolver';\nimport { MasterDependencyResolver } from '../../dependency/master-dependency.resolver';\nimport { BetBuilderDetail } from '../../event-list-shared/coupons/bet-builder/bet-builder-detail.model';\nimport { CouponDetail, CouponList } from '../../event-list-shared/coupons/coupon.model';\nimport { CouponService } from '../../event-list-shared/coupons/coupon.service';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\n\n@Injectable()\nexport class CouponListResolver extends MasterDependencyResolver {\n constructor(\n dependencyService: CouponService,\n router: Router,\n private urlHelper: UrlHelperService,\n ) {\n super(dependencyService, router);\n }\n\n getChildRoute(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, result?: CouponList | undefined): string {\n const service = this.dependencyService as CouponService;\n\n if (!result) {\n return state.url;\n }\n\n return this.urlHelper.getCouponUrl(result.sport, service.getDetailFallback(result));\n }\n}\n\n@Injectable()\nexport class CouponResolver extends ChildDependencyResolver {\n constructor(dependencyService: CouponService, @Optional() previousPageLocationCacheService: PreviousPageLocationCacheService) {\n super(dependencyService, previousPageLocationCacheService);\n }\n}\n","import { inject } from '@angular/core';\nimport { CanMatchFn, Route, Router, UrlSegment } from '@angular/router';\n\nimport { LayoutNavigationConfig } from '@frontend/sports/common/client-config-data-access';\n\nexport const canMatchDynamicCategoriesGuard: CanMatchFn = (route: Route, _: UrlSegment[]) => {\n const layoutConfig = inject(LayoutNavigationConfig);\n const dynamicCategoryQuery = inject(Router).getCurrentNavigation()?.initialUrl.queryParams['dynamicCategory'];\n\n return layoutConfig.isDynamicCategoryNavigationEnabled && !!dynamicCategoryQuery;\n};\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, ResolveFn } from '@angular/router';\n\nimport { OfferCategory } from '@cds/betting-offer';\nimport { assign } from 'lodash-es';\nimport { map } from 'rxjs';\n\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { FixtureList } from '../../event-list-shared/sport/competitions/competition.models';\nimport { EventListService } from '../../event-list-shared/sport/services/event-list.service';\n\nexport const dynamicOfferCategoriesResolver: ResolveFn = (route: ActivatedRouteSnapshot) => {\n const router = inject(CompetitionRouteService);\n const eventListService = inject(EventListService);\n\n const params = router.params();\n\n const empty: FixtureList = {\n fixtures: [],\n totalCount: 0,\n params,\n };\n\n return eventListService.getFixtureList(params).pipe(\n // EventListComponent sets display based on marketOffer (old outright/special)\n map((result) => {\n const offerCategories = result?.fixtures.flatMap((f) =>\n f.optionMarkets.map((g) => g.templateCategory.category).concat(f.games.map((g) => g.templateCategory.category)),\n );\n\n const nonGridCategory = offerCategories?.find((oc) => oc === OfferCategory.Outrights || oc === OfferCategory.Specials);\n\n params.marketOffer = nonGridCategory ? nonGridCategory.toLowerCase() : 'matches';\n\n return assign(empty, result);\n }),\n );\n};\n","import { Injectable, Optional } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n\nimport { VirtualCompetitionPrefix } from '@frontend/sports/common/core/data-access/sport-model';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { isArray } from 'lodash-es';\nimport { Observable, tap } from 'rxjs';\n\nimport { PreviousPageLocationCacheService } from '../../../client-caching/previous-page-cache.service';\nimport { CompetitionListSeoService } from '../../../competition-list/competition-list-seo.service';\nimport { CompetitionOverview } from '../../../competition-list/services/competition-list.service';\nimport { ChildDependencyResolver } from '../../../dependency/child-dependency.resolver';\nimport { MasterDependencyResolver } from '../../../dependency/master-dependency.resolver';\nimport { FixtureList } from '../../../event-list-shared/sport/competitions/competition.models';\nimport { CompetitionService } from '../../../event-list-shared/sport/competitions/competition.service';\nimport { UrlHelperService } from '../../../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionListResolver extends MasterDependencyResolver {\n constructor(\n dependencyService: CompetitionService,\n router: Router,\n private urlHelper: UrlHelperService,\n ) {\n super(dependencyService, router);\n }\n\n getChildRoute(route: ActivatedRouteSnapshot, state: RouterStateSnapshot, result?: CompetitionOverview): string {\n const service = this.dependencyService as CompetitionService;\n const target = service.getTarget(result);\n const leaguePrefix = target.isVirtual ? VirtualCompetitionPrefix : undefined;\n\n if (!target.sport) {\n return state.url;\n }\n\n return this.urlHelper.getSportUrl(\n this.getUrlParameter(target.sport, target.sportName),\n target.context,\n this.getUrlParameter(target.region, target.regionName),\n this.getUrlParameter(target.league, target.leagueName, leaguePrefix),\n );\n }\n\n private getUrlParameter(id?: number[] | number, name?: string, prefix?: string): UrlParam | undefined {\n if (!(id && !isArray(id) && name)) {\n return;\n }\n\n const urlParameter: UrlParam = { id, name };\n if (prefix) {\n urlParameter.prefix = prefix;\n }\n\n return urlParameter;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionResolver extends ChildDependencyResolver {\n constructor(\n dependencyService: CompetitionService,\n private competitionListSeoService: CompetitionListSeoService,\n @Optional() previousPageLocationCacheService: PreviousPageLocationCacheService,\n ) {\n super(dependencyService, previousPageLocationCacheService);\n }\n\n override resolve(route: ActivatedRouteSnapshot): Observable {\n return super.resolve(route).pipe(tap((fixtureList) => this.competitionListSeoService.storeRealCompetitionId(fixtureList)));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ImageProfile } from '@cds/betting-offer';\nimport { PrettyUrlsConfig, Sitecore, TimeFilterConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, ItemType, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { WidgetLayoutResponse } from '@frontend/sports/types/components/widget';\nimport { isArray, isInteger } from 'lodash-es';\nimport { Observable, isObservable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbResult, BreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { CalendarService } from '../../calendar/calendar.service';\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { getItemTypeForSport } from '../../competition-list/competition-list.models';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { CompetitionOverview } from '../../competition-list/services/competition-list.service';\nimport { FixtureList } from '../../event-list-shared/sport/competitions/competition.models';\nimport { SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\n\ntype AppendFunction = (icon: string, title: string, url: string, sportId?: number, leagueId?: number, imageProfile?: ImageProfile) => number;\ntype CrumbFunction = (append: AppendFunction, data: CountItem, route: CompetitionRoute) => number | undefined;\ntype CrumbSource = FixtureList | CountItem | CompetitionOverview | WidgetLayoutResponse;\n\n@Injectable()\nexport class EventListBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n private urlConfig: PrettyUrlsConfig,\n private route: CompetitionRouteService,\n private calendar: CalendarService,\n private cache: SportsCacheService,\n private timeFilterConfig: TimeFilterConfig,\n ) {\n super();\n }\n\n protected customResolve(data: CrumbSource): BreadcrumbResult {\n const route = this.route.params();\n const sport = this.getType(data, route.sport);\n\n if (isObservable(sport)) {\n return sport.pipe(map((s) => this.map(route, s)));\n } else {\n return this.map(route, sport);\n }\n }\n\n private map = (params: CompetitionRoute, sport?: CountItem) => {\n const crumbs: BreadcrumbModel[] = [];\n\n const append: AppendFunction = (icon, title, url, sportId?, leagueId?, imageProfile?) => {\n if (sportId && leagueId) {\n const fallbackIcon = 'sports-icon sports-league';\n\n return crumbs.push({ icon, title, url, sportId, leagueId, fallbackIcon, imageProfile });\n }\n\n return crumbs.push({ icon, title, url });\n };\n\n const callbacks = params.conference ? [this.addLeague, this.addConference] : [this.addSport, this.addContext, this.addRegion, this.addLeague];\n\n if (sport) {\n for (const current of callbacks) {\n const index = current(append, sport, params);\n\n if (!isInteger(index)) {\n break;\n }\n }\n\n // if not on Conference page AND\n // if only context was added (without calendar filter) we remove it from the crumbs\n const crumbsLengthBeforeContext = sport.isEsport ? 3 : 2;\n if (!params.conference && crumbs.length === crumbsLengthBeforeContext) {\n return crumbs.slice(0, crumbsLengthBeforeContext - 1);\n }\n }\n\n return crumbs;\n };\n\n private getType(data: CrumbSource, sport?: number): Observable | CountItem | undefined {\n if (!data) {\n return;\n }\n // FixtureList | CompetitionOverview\n else if ('sport' in data) {\n return data.sport!;\n }\n // CountItem\n else if ('type' in data && data.type === ItemType.Sport) {\n return data;\n }\n // WidgetLayout\n else if ('page' in data && sport) {\n return this.cache.getSport(sport);\n }\n\n return;\n }\n\n private addSport: CrumbFunction = (append, sport, route) => {\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n\n if (sport.isEsport) {\n append('theme-e-sports', this.sitecore.eSports.ESports, this.urlHelper.getESportsUrl());\n }\n\n return append(`sports-${sport.id}`, title, this.urlHelper.getSportUrl(sport, undefined, undefined, undefined, undefined, undefined, false));\n };\n\n private addContext: CrumbFunction = (append, sport, route) => {\n if (!route?.context) {\n return;\n }\n\n const interval = this.calendar.getInterval(route.context);\n const title = this.sitecore.globalMessages;\n const url = this.urlConfig.translations;\n\n if (route.context === url.betting) {\n return append('sports-globe', title.Competitions, this.urlHelper.getSportUrl(sport, SportUrlParam.Betting, SportUrlParam.Competitions));\n }\n\n if ((route.context === url.calendar || interval) && !this.timeFilterConfig.isTimeFilterEnabled) {\n let result = append('sports-calendar', title.Calendar, this.urlHelper.getSportUrl(sport, SportUrlParam.Calendar));\n\n if (interval) {\n result = append('sports-soon', interval.title, this.urlHelper.getSportUrl(sport, interval.name, SportUrlParam.Competitions));\n }\n\n return result;\n }\n\n return;\n };\n\n private addRegion: CrumbFunction = (append, sport, route) => {\n if (!route.region) {\n return;\n }\n\n const region = this.getRegion(sport, route.region);\n\n if (!region) {\n return;\n }\n\n return append('theme-competitions-all', region.name, this.urlHelper.getSportUrl(sport, route.context, region));\n };\n\n private addLeague: CrumbFunction = (append, sport, route) => {\n if (!route.league || isArray(route.league)) {\n return;\n }\n\n const region = this.getRegion(sport, route.region);\n const leagueinfo = this.getLeague(sport, route.league);\n const league = leagueinfo?.urlParam;\n const imageProfile = leagueinfo?.imageProfile;\n const context = route.conference ? SportUrlParam.Betting : route.context;\n\n if (!league) {\n return;\n }\n if (sport && sport.id && league.id) {\n return append(\n 'sports-league',\n league.name,\n this.urlHelper.getSportUrl(sport, context, region, league),\n Number(sport.id),\n Number(league.id),\n imageProfile,\n );\n }\n\n return append('sports-league', league.name, this.urlHelper.getSportUrl(sport, context, region, league));\n };\n\n private addConference: CrumbFunction = (append, sport, route) => {\n if (!route.conference || isArray(route.league)) {\n return;\n }\n\n const region = this.getRegion(sport, route.region);\n const league = this.getLeague(sport, route.league)?.urlParam;\n const conference = this.getConference(sport, route.conference);\n if (!conference) {\n return;\n }\n\n return append('', conference.name, this.urlHelper.getSportUrl(sport, route.context, region, league, conference));\n };\n\n private getRegion(sport: CountItem, id?: number): UrlParam | undefined {\n if (id && sport) {\n const type = getItemTypeForSport(sport.id);\n\n return this.get(children(sport, type), id);\n }\n\n return;\n }\n\n private getLeague(sport: CountItem, id?: number): { urlParam: UrlParam; imageProfile?: ImageProfile } | undefined {\n if (id && sport) {\n const childern = children(sport, ItemType.Competition);\n\n return { urlParam: this.get(childern, id)!, imageProfile: childern.find((x) => x.id === id)?.imageProfile };\n }\n\n return;\n }\n\n private getConference(sport: CountItem, id?: number): UrlParam | undefined {\n if (id && sport) {\n return this.get(children(sport, ItemType.Conference), id);\n }\n\n return;\n }\n\n private get(source: UrlParam[], id: number): UrlParam | undefined {\n return source.filter((item) => item.id === id).pop();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture, FixturePage, FixtureStage } from '@cds/betting-offer';\nimport { Observable, of } from 'rxjs';\n\nimport { ISchemaMarkupResolver } from '../../schema-markup/schema-markup.resolver';\n\n@Injectable()\nexport class EventListSchemaMarkupResolver implements ISchemaMarkupResolver {\n constructor() {}\n\n resolve(tournamentOverview: FixturePage): Observable> {\n if (tournamentOverview && tournamentOverview.fixtures && tournamentOverview.fixtures.length > 0) {\n return of(tournamentOverview.fixtures.filter((fixture) => fixture.stage && fixture.stage !== FixtureStage.Live));\n }\n\n return of([]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { map } from 'rxjs/operators';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbResult, IBreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\n\n@Injectable()\nexport class SportBreadcrumbsResolver implements IBreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n private route: CompetitionRouteService,\n private cache: SportsCacheService,\n ) {}\n\n resolve(): BreadcrumbResult {\n const { sport } = this.route.params();\n\n if (sport) {\n return this.cache.getSport(sport).pipe(map(this.map));\n }\n\n return [];\n }\n\n private map = (sport?: CountItem) => {\n const breadcrumbs: BreadcrumbModel[] = [];\n if (!sport) {\n return breadcrumbs;\n }\n\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n\n if (sport.isEsport) {\n breadcrumbs.push({ icon: 'theme-e-sports', title: this.sitecore.eSports.ESports, url: this.urlHelper.getESportsUrl() });\n }\n\n breadcrumbs.push({ icon: `sports-${sport.id}`, title, url: this.urlHelper.getSportUrl(sport) });\n\n return breadcrumbs;\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { SportModel } from '@frontend/sports/betting-offer/feature/model';\nimport { TournamentsDataConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, ItemType, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { EventSection, LeagueItem, LeagueSection, Navigation, Tournament, TournamentSection } from '@frontend/sports/types/components/tournaments';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { assign, flatMap, property, uniq } from 'lodash-es';\nimport { Observable, forkJoin, map, of, switchMap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\nimport { FixtureList } from '../sport/competitions/competition.models';\nimport { EventListService } from '../sport/services/event-list.service';\nimport { TournamentEventSection, TournamentLeague, TournamentViewModel } from './tournament.models';\n\nexport interface TournamentFixtureList extends FixtureList {\n tournament?: TournamentViewModel;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentService {\n constructor(\n private tournamentsConfig: TournamentsDataConfig,\n private routeService: CompetitionRouteService,\n private eventService: EventListService,\n private urlHelper: UrlHelperService,\n private deviceService: DeviceService,\n private sportCache: SportsCacheService,\n ) {}\n\n getTournament(local: boolean = false, name?: string): Observable {\n if (name && this.tournamentsConfig.tournaments) {\n const byName = (current: Tournament) => current.navigation && current.navigation.name === name;\n const tournament = this.tournamentsConfig.tournaments.find(byName);\n\n if (tournament) {\n return this.mapTournament(tournament, local);\n }\n }\n\n return of(undefined);\n }\n\n getFixtureList(name: string, league?: number, params?: CompetitionRoute): Observable {\n return this.getTournament(true, name).pipe(\n switchMap((tournament) => {\n const empty: TournamentFixtureList = {\n tournament,\n fixtures: [],\n totalCount: 0,\n };\n\n if (!tournament || !league) {\n return of(empty);\n }\n\n return this.eventService.getFixtureList(params || this.routeService.params()).pipe(map((result) => assign(empty, result)));\n }),\n );\n }\n\n getPreResolveFixtureList(params: CompetitionRoute, name: string, league?: number): Observable {\n return this.getFixtureList(name, league, params);\n }\n\n private mapTournament(tournament: Tournament, local: boolean = false): Observable {\n const tomorrow = this.getTomorrowFormatted();\n\n return forkJoin([\n this.getSection(tournament.liveSection, tournament, { to: tomorrow }, local),\n this.getSection(tournament.preMatchSection, tournament, { from: tomorrow }, local),\n this.sportCache.getSport(tournament.leaguesSection.sport.id),\n ]).pipe(map(([live, preMatch, sport]) => this.mapModel(tournament, live, preMatch, sport)));\n }\n\n private mapModel(\n tournament: Tournament,\n live?: TournamentEventSection,\n preMatch?: TournamentEventSection,\n sport?: CountItem,\n ): TournamentViewModel {\n const baseSection = { visible: false, title: '' };\n const base: Navigation = tournament.navigation || {\n name: '',\n icon: '',\n quickLink: baseSection,\n filter: baseSection,\n breadcrumb: baseSection,\n };\n const filter: TournamentSection = base.filter || baseSection;\n const section: LeagueSection = tournament.leaguesSection;\n\n return {\n id: base.name || '',\n name: filter.title || '',\n sections: {\n live,\n preMatch,\n leagues: {\n visible: section.visible,\n title: section.title || '',\n },\n },\n leagues: this.mapLeagues(tournament, sport),\n sport: this.mapSport(sport)!,\n icon: base.icon,\n };\n }\n\n private getSection(\n section: EventSection,\n tournament: Tournament,\n leagueInterval: { from?: string; to?: string },\n local: boolean = false,\n ): Observable {\n if (!section || !tournament || !tournament.leaguesSection) {\n return of(undefined);\n }\n\n const result = {} as TournamentEventSection;\n let leagues: number[] = [];\n\n if (tournament.leaguesSection.leagues) {\n leagues = flatMap(tournament.leaguesSection.leagues, (league) => [league.preMatch, league.live]).filter(isDefined);\n leagues = uniq(leagues);\n }\n\n if (local || leagues.length === 0) {\n return of({\n ...result,\n title: section.title,\n visible: section.visible,\n count: section.eventCount,\n });\n }\n\n return this.eventService\n .getFixtureList({ ...this.routeService.params(), league: leagues }, undefined, undefined, section.eventCount, leagueInterval)\n .pipe(\n map((output) => ({\n ...result,\n title: section.title,\n visible: section.visible,\n leagues,\n events: output ? output.fixtures : [],\n count: section.eventCount,\n })),\n );\n }\n\n private mapLeagues(tournament: Tournament, sport?: CountItem): TournamentLeague[] {\n if (!tournament.navigation || !tournament.leaguesSection.leagues) {\n return [];\n }\n\n return tournament.leaguesSection.leagues.map((league) => ({\n id: {\n live: league.live || 0,\n preMatch: league.preMatch || 0,\n },\n name: league.name,\n region: league.region,\n participants: league.participants || [],\n url: this.getLeagueUrl(league, tournament),\n count: this.getLeagueCount(league, sport),\n }));\n }\n\n private mapSport(sport?: CountItem): SportModel | undefined {\n if (!sport) {\n return;\n }\n\n return {\n id: sport.id,\n name: sport.name,\n virtual: property('isVirtual')(sport),\n };\n }\n\n private getLeagueUrl(league: LeagueItem, tournament: Tournament): string {\n const sport = tournament.leaguesSection.sport;\n const name = tournament.navigation.name ?? '';\n\n const urlParam = {\n id: league.preMatch || league.live || 0,\n name: league.name,\n };\n\n return this.deviceService.isRobot\n ? this.urlHelper.getSportUrl(sport, SportUrlParam.Betting, league.region, urlParam)\n : this.urlHelper.getTournamentUrl(sport, name, urlParam);\n }\n\n private getLeagueCount(league: LeagueItem, sport?: CountItem): number {\n if (!sport) {\n return 0;\n }\n\n const match = children(sport, ItemType.Competition).find((item) => item.id === league.preMatch || item.id === league.live);\n\n if (match) {\n return match.counts.live + match.counts.preMatch;\n }\n\n return 0;\n }\n\n private getTomorrowFormatted(): string {\n let today = new Date();\n today = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);\n\n const tomorrow = new Date(today);\n tomorrow.setMinutes(today.getMinutes() + 24 * 60);\n\n return tomorrow.toISOString().substring(0, 19);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { TournamentViewModel } from '../../event-list-shared/tournament/tournament.models';\nimport { TournamentService } from '../../event-list-shared/tournament/tournament.service';\nimport { SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\n\n@Injectable()\nexport class TournamentBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private tournamentService: TournamentService,\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {\n super();\n }\n\n protected customResolve(model: TournamentViewModel): BreadcrumbModel[] {\n if (!model) {\n return [];\n }\n\n let tournament: TournamentViewModel | undefined;\n\n // method will be executed synchronously for local data\n this.tournamentService.getTournament(true, model.id).subscribe((result) => (tournament = result));\n\n if (!tournament || !tournament.sport) {\n return [];\n }\n\n return this.getTournamentBreadcrumbs(tournament);\n }\n\n private getTournamentBreadcrumbs(tournament: TournamentViewModel): BreadcrumbModel[] {\n const messages = this.sitecore.globalMessages;\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, tournament.sport.name);\n\n return [\n this.createCrumb({\n icon: `sports-${tournament.sport.id}`,\n title,\n url: this.urlHelper.getSportUrl(tournament.sport),\n }),\n this.createCrumb({\n icon: 'sports-globe',\n title: messages.Competitions,\n url: this.urlHelper.getSportUrl(tournament.sport, SportUrlParam.Betting, SportUrlParam.Competitions),\n }),\n this.createCrumb({\n icon: 'sports-tournament',\n title: tournament.name,\n url: this.urlHelper.getTournamentUrl(tournament.sport, tournament.id),\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbModel } from '../../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbsResolve } from '../../breadcrumbs/breadcrumbs.resolver';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport type { TournamentFixtureList } from '../../event-list-shared/tournament/tournament.service';\nimport { SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentLeagueBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n private route: CompetitionRouteService,\n ) {\n super();\n }\n\n protected customResolve(model: TournamentFixtureList | undefined): BreadcrumbModel[] {\n if (!model || !model.tournament) {\n return [];\n }\n\n const params = this.route.params();\n const tournament = model.tournament;\n const sport = tournament.sport;\n const league = tournament.leagues.find((current) => current.id.live === params.league || current.id.preMatch === params.league);\n\n if (!league) {\n return [];\n }\n\n const messages = this.sitecore.globalMessages;\n const title = this.sitecore.seo.SportBreadcrumbTitle.replace(/{{sport}}/, sport.name);\n\n return [\n this.createCrumb({\n icon: `sports-${sport.id}`,\n title,\n url: this.urlHelper.getSportUrl(sport),\n }),\n this.createCrumb({\n icon: 'sports-globe',\n title: messages.Competitions,\n url: this.urlHelper.getSportUrl(sport, SportUrlParam.Betting, SportUrlParam.Competitions),\n }),\n this.createCrumb({\n icon: 'sports-tournament',\n title: tournament.name,\n url: this.urlHelper.getTournamentUrl(sport, tournament.id),\n }),\n this.createCrumb({\n icon: 'sports-league',\n title: league.name,\n url: this.urlHelper.getTournamentUrl(sport, tournament.id, { id: league.id.live || league.id.preMatch, name: league.name }),\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { toInteger } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nimport { CompetitionOverview } from '../../competition-list/services/competition-list.service';\nimport { MasterDetailComponent, MasterDetailDependencyService } from '../../dependency/master-detail-dependency.service';\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { CompetitionService } from '../sport/competitions/competition.service';\nimport { TournamentFixtureList, TournamentService } from './tournament.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentEventsService extends MasterDetailDependencyService {\n constructor(\n private tournamentService: TournamentService,\n private competitionService: CompetitionService,\n private routerEventsService: RouterEventsService,\n public columnLayoutService: ColumnLayoutService,\n ) {\n super(columnLayoutService);\n\n this.routerEventsService.currentActivationEnd.pipe(takeUntilDestroyed()).subscribe((route) => {\n if (route && route.snapshot.data.tag !== RouteTag.Competition) {\n this.deregister();\n }\n });\n }\n\n getRouteParams: undefined;\n\n getData(route: ActivatedRouteSnapshot, detail?: TournamentFixtureList | undefined): Observable {\n return this.competitionService.getData(route);\n }\n\n getPreResolvedData(route: ActivatedRouteSnapshot): Observable {\n return this.competitionService.getPreResolvedData(route);\n }\n\n getDetailData(route: ActivatedRouteSnapshot, master?: CompetitionOverview | undefined): Observable {\n const league = toInteger(route.params.league);\n\n return this.tournamentService.getFixtureList(route.params.tournament, league);\n }\n\n getPreResolvedDetailData(route: ActivatedRouteSnapshot): Observable {\n return this.tournamentService.getPreResolveFixtureList(route.params, route.params.tournament, toInteger(route.params.league));\n }\n\n getComponents(): MasterDetailComponent[] {\n return this.competitionService.getComponents();\n }\n\n override shouldUpdateMasterCache(master: CompetitionOverview, route: ActivatedRouteSnapshot): boolean {\n return this.competitionService.shouldUpdateMasterCache(master, route);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Observable } from 'rxjs';\n\nimport { CompetitionOverview } from '../../competition-list/services/competition-list.service';\nimport { MasterDetailComponent, MasterDetailDependencyService } from '../../dependency/master-detail-dependency.service';\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { CompetitionService } from '../sport/competitions/competition.service';\nimport { TournamentViewModel } from './tournament.models';\nimport { TournamentService } from './tournament.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentOverviewService extends MasterDetailDependencyService {\n constructor(\n private tournamentService: TournamentService,\n private competitionService: CompetitionService,\n private routerEventsService: RouterEventsService,\n public columnLayoutService: ColumnLayoutService,\n ) {\n super(columnLayoutService);\n\n this.routerEventsService.currentActivationEnd.pipe(takeUntilDestroyed()).subscribe((route) => {\n if (route && route.snapshot.data.tag !== RouteTag.Competition) {\n this.deregister();\n }\n });\n }\n\n getRouteParams: undefined;\n\n getData(route: ActivatedRouteSnapshot, detail?: TournamentViewModel | undefined): Observable {\n return this.competitionService.getData(route);\n }\n\n getPreResolvedData(route: ActivatedRouteSnapshot): Observable {\n return this.competitionService.getPreResolvedData(route);\n }\n\n getDetailData(route: ActivatedRouteSnapshot, master?: CompetitionOverview | undefined): Observable {\n return this.tournamentService.getTournament(false, route.params.tournament);\n }\n\n getPreResolvedDetailData(route: ActivatedRouteSnapshot): Observable {\n return this.tournamentService.getTournament(false, route.params.tournament);\n }\n\n getComponents(): MasterDetailComponent[] {\n return this.competitionService.getComponents();\n }\n\n override shouldUpdateMasterCache(master: CompetitionOverview, route: ActivatedRouteSnapshot): boolean {\n return this.competitionService.shouldUpdateMasterCache(master, route);\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { PreviousPageLocationCacheService } from '../../client-caching/previous-page-cache.service';\nimport { CompetitionOverview } from '../../competition-list/services/competition-list.service';\nimport { ChildDependencyResolver } from '../../dependency/child-dependency.resolver';\nimport { FixtureList } from '../../event-list-shared/sport/competitions/competition.models';\nimport { TournamentEventsService } from '../../event-list-shared/tournament/tournament-events.service';\nimport { TournamentOverviewService } from '../../event-list-shared/tournament/tournament-overview.service';\nimport type { TournamentViewModel } from '../../event-list-shared/tournament/tournament.models';\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentResolver extends ChildDependencyResolver {\n constructor(dependencyService: TournamentOverviewService, @Optional() previousPageLocationCacheService: PreviousPageLocationCacheService) {\n super(dependencyService, previousPageLocationCacheService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TournamentEventsResolver extends ChildDependencyResolver {\n constructor(dependencyService: TournamentEventsService, @Optional() previousPageLocationCacheService: PreviousPageLocationCacheService) {\n super(dependencyService, previousPageLocationCacheService);\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterModule } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\n\nimport { CalendarRedirectGuard } from '../calendar/calendar-redirect.guard';\nimport { CalendarResolver } from '../calendar/calendar.resolver';\nimport { EmptyComponent } from '../common/empty.component';\nimport { CompetitionPageResolver } from '../competition-list/competition-page.resolver';\nimport { BetBuilderEventListComponent } from '../event-list-shared/coupons/bet-builder/betbuilder-event-list.component';\nimport { CouponListComponent } from '../event-list-shared/coupons/coupon-list.component';\nimport { CouponComponent } from '../event-list-shared/coupons/coupon.component';\nimport { marketGroupResolver } from '../event-list-shared/market-group/market-group.resolver';\nimport { CompetitionListComponent } from '../event-list-shared/sport/competitions/competition-list.component';\nimport { FixtureListComponent } from '../event-list-shared/sport/fixture-list.component';\nimport { TournamentComponent } from '../event-list-shared/tournament/tournament.component';\nimport { SportRoute } from '../router/multi-route.model';\nimport {\n multiNameIdentifierExactMatcher,\n multiNameIdentifierMatcher,\n multiNameIdentifierMatcher_WithChildren,\n multiNameIdentifierMatcher_WithRegexMatcher,\n nameIdentifierMatcher,\n} from '../router/name-identifier.matcher';\nimport { NoMatchRouteGuard } from '../router/no-match-route.guard';\nimport { regexMatcher } from '../router/regex.matcher';\nimport { paramsOrQueryParamsChange } from '../router/router.exports';\nimport { use } from '../router/router.resolver';\nimport { SeoRedirectGuard } from '../seo/seo-redirect.guard';\nimport { SitemapRoutingToken } from '../sitemap/sitemap-routing';\nimport { WidgetSchemaMarkupResolver } from '../widget/common/widget-schema-markup.resolver';\nimport { WidgetResolver } from '../widget/common/widget.resolver';\nimport { WidgetLayoutComponent } from '../widget/core/widget-layout.component';\nimport { WorldCupHubRouteGuard } from '../world-cup-hub/world-cup-hub-route.guard';\nimport { BetbuilderBreadcrumbsResolver, CouponBreadcrumbsResolver } from './coupons/coupon-breadcrumbs.resolver';\nimport { CouponListBreadcrumbsResolver } from './coupons/coupon-list-breadcrumbs.resolver';\nimport { CouponListResolver, CouponResolver } from './coupons/coupon.resolver';\nimport { canMatchDynamicCategoriesGuard } from './dynamic-categories/dynamic-categories-redirect.guard';\nimport { dynamicOfferCategoriesResolver } from './dynamic-categories/dynamic-categories.resolver';\nimport { CompetitionListResolver, CompetitionResolver } from './sport/competitions/competition.resolver';\nimport { EventListBreadcrumbsResolver } from './sport/event-list-breadcrumbs.resolver';\nimport { EventListSchemaMarkupResolver } from './sport/event-list-schema-markup.resolver';\nimport { SportBreadcrumbsResolver } from './sport/sport-breadcrumbs.resolver';\nimport { TournamentBreadcrumbsResolver } from './tournament/tournament-breadcrumbs.resolver';\nimport { TournamentLeagueBreadcrumbsResolver } from './tournament/tournament-league-breadcrumbs.resolver';\nimport { TournamentEventsResolver, TournamentResolver } from './tournament/tournament.resolver';\n\nconst routes: SportRoute[] = [\n {\n path: '',\n providers: [EventListBreadcrumbsResolver, EventListSchemaMarkupResolver, SportBreadcrumbsResolver],\n children: [\n {\n path: '',\n component: WidgetLayoutComponent,\n resolve: use(WidgetResolver),\n data: {\n tag: RouteTag.SportLobby,\n breadcrumbs: SportBreadcrumbsResolver,\n schemaMarkup: WidgetSchemaMarkupResolver,\n },\n },\n {\n path: '{coupons}',\n providers: [\n BetbuilderBreadcrumbsResolver,\n CouponBreadcrumbsResolver,\n CouponListBreadcrumbsResolver,\n CouponListResolver,\n CouponResolver,\n ],\n children: [\n {\n path: '',\n component: CouponListComponent,\n data: {\n tag: RouteTag.Coupons,\n breadcrumbs: CouponListBreadcrumbsResolver,\n shouldKeepBreadcrumbs: true,\n },\n resolve: use(CouponListResolver),\n },\n {\n path: '{betBuilder}',\n component: BetBuilderEventListComponent,\n data: {\n subNavigationHiddenOnSmallScreen: true,\n tag: RouteTag.CouponDetails,\n breadcrumbs: BetbuilderBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.CouponSitemapResolver,\n },\n resolve: use(CouponResolver),\n },\n {\n matcher: nameIdentifierMatcher,\n component: CouponComponent,\n resolve: use(CouponResolver),\n data: {\n matcherParam: 'coupon',\n subNavigationHiddenOnSmallScreen: true,\n tag: RouteTag.CouponDetails,\n breadcrumbs: CouponBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.CouponSitemapResolver,\n },\n },\n {\n matcher: multiNameIdentifierMatcher_WithChildren,\n data: {\n matcherParams: ['region', 'league'],\n sitemap: SitemapRoutingToken.CouponSitemapResolver,\n },\n children: [\n {\n path: '{betBuilder}',\n component: BetBuilderEventListComponent,\n resolve: use(CouponResolver),\n data: {\n subNavigationHiddenOnSmallScreen: true,\n tag: RouteTag.CouponDetails,\n breadcrumbs: BetbuilderBreadcrumbsResolver,\n },\n },\n {\n matcher: nameIdentifierMatcher,\n component: CouponComponent,\n resolve: use(CouponResolver),\n data: {\n matcherParam: 'coupon',\n subNavigationHiddenOnSmallScreen: true,\n tag: RouteTag.CouponDetails,\n breadcrumbs: CouponBreadcrumbsResolver,\n },\n },\n ],\n },\n ],\n },\n {\n path: '{calendar}',\n loadComponent: () =>\n import(/* webpackChunkName: \"ms-sport-calendar\" */ '../calendar/calendar.component').then((m) => m.CalendarComponent),\n resolve: use(CalendarResolver),\n canActivate: [CalendarRedirectGuard],\n data: {\n breadcrumbs: EventListBreadcrumbsResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CalendarResolver).preResolve(route);\n },\n },\n },\n {\n path: '{teamPages}',\n loadChildren: () => import(/* webpackChunkName: \"ms-teampages\" */ '../teampages/team-pages.module').then((m) => m.TeamPagesModule),\n },\n {\n path: '{conferences}',\n data: {\n subNavigationHiddenOnSmallScreen: false,\n tag: RouteTag.Competition,\n },\n children: [\n {\n path: '',\n component: EmptyComponent,\n },\n {\n matcher: multiNameIdentifierExactMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParams: ['league', 'group', 'conference'],\n schemaMarkup: EventListSchemaMarkupResolver,\n breadcrumbs: EventListBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n },\n component: FixtureListComponent,\n resolve: use(CompetitionResolver),\n },\n ],\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: '^({betting}|{in30minutes}|{in60minutes}|{in180minutes}|{today}|{tomorrow}|{after2days}|{after3days})$',\n matcherMapping: {\n context: 1,\n },\n subNavigationHiddenOnSmallScreen: false,\n tag: RouteTag.Competition,\n breadcrumbs: EventListBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.SitemapEmptyResolver,\n },\n children: [\n {\n path: '{competitions}',\n component: CompetitionListComponent,\n resolve: use(CompetitionListResolver),\n data: {\n tag: RouteTag.Competition,\n breadcrumbs: EventListBreadcrumbsResolver,\n subNavigationHiddenOnSmallScreen: false,\n shouldKeepBreadcrumbs: true,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionListResolver).preResolve(route);\n },\n },\n },\n {\n path: '',\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n component: FixtureListComponent,\n resolve: use(CompetitionResolver),\n data: {\n sitemap: SitemapRoutingToken.SportSitemapResolver,\n shouldKeepBreadcrumbs: true,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n },\n },\n {\n matcher: regexMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherPattern: '(\\\\d+(,\\\\d+)+)',\n matcherMapping: {\n league: 1,\n },\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n },\n component: FixtureListComponent,\n resolve: use(CompetitionResolver),\n },\n {\n matcher: nameIdentifierMatcher,\n data: {\n matcherParam: 'region',\n sitemap: SitemapRoutingToken.RegionSitemapResolver,\n },\n children: [\n {\n path: '',\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n component: FixtureListComponent,\n resolve: use(CompetitionResolver),\n data: {\n shouldKeepBreadcrumbs: true,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n },\n },\n {\n matcher: multiNameIdentifierMatcher_WithRegexMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParams: ['league', 'group'],\n matcherPattern: '{betting}',\n matcherMode: 'full',\n tag: RouteTag.Competition,\n schemaMarkup: WidgetSchemaMarkupResolver,\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n },\n component: WidgetLayoutComponent,\n resolve: use(CompetitionPageResolver),\n },\n {\n matcher: multiNameIdentifierMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n matcherParams: ['league', 'group'],\n schemaMarkup: EventListSchemaMarkupResolver,\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n },\n component: FixtureListComponent,\n resolve: use(CompetitionResolver),\n },\n ],\n },\n {\n path: '**',\n component: EmptyComponent,\n canActivate: [NoMatchRouteGuard, SeoRedirectGuard],\n },\n ],\n },\n {\n path: '{tournaments}',\n providers: [TournamentBreadcrumbsResolver],\n children: [\n {\n path: ':tournament',\n data: {\n tag: RouteTag.Competition,\n subNavigationHiddenOnSmallScreen: true,\n },\n children: [\n {\n path: '',\n component: TournamentComponent,\n resolve: use(TournamentResolver),\n data: {\n breadcrumbs: TournamentBreadcrumbsResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(TournamentResolver).preResolve(route);\n },\n },\n },\n {\n matcher: nameIdentifierMatcher,\n component: FixtureListComponent,\n resolve: use(TournamentEventsResolver),\n data: {\n matcherParam: 'league',\n breadcrumbs: TournamentLeagueBreadcrumbsResolver,\n schemaMarkup: EventListSchemaMarkupResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(TournamentEventsResolver).preResolve(route);\n },\n },\n },\n ],\n },\n ],\n },\n {\n path: '{worldCupHub}',\n data: {\n tag: RouteTag.WorldCupHub,\n },\n loadComponent: () => import('../world-cup-hub/world-cup-hub.component').then((m) => m.WorldCupHubComponent),\n canActivate: [WorldCupHubRouteGuard],\n },\n {\n path: '**',\n component: EmptyComponent,\n canActivate: [NoMatchRouteGuard, SeoRedirectGuard],\n },\n ],\n },\n];\n\nconst sportsBetsRoute: SportRoute[] = [\n {\n path: '',\n children: [\n {\n path: '',\n component: EmptyComponent,\n },\n {\n canMatch: [canMatchDynamicCategoriesGuard],\n matcher: nameIdentifierMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParam: 'sport',\n },\n children: [\n {\n path: '',\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n sitemap: SitemapRoutingToken.SportSitemapResolver,\n tag: RouteTag.SportLobby,\n },\n component: FixtureListComponent,\n resolve: { model: dynamicOfferCategoriesResolver },\n },\n {\n matcher: nameIdentifierMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParam: 'region',\n tag: RouteTag.Competition,\n },\n children: [\n {\n path: '',\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n sitemap: SitemapRoutingToken.RegionSitemapResolver,\n },\n component: FixtureListComponent,\n resolve: { model: dynamicOfferCategoriesResolver },\n },\n {\n matcher: multiNameIdentifierMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParams: ['league', 'conference'],\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n },\n component: FixtureListComponent,\n resolve: { model: dynamicOfferCategoriesResolver },\n },\n ],\n },\n ],\n },\n {\n matcher: multiNameIdentifierMatcher,\n runGuardsAndResolvers: paramsOrQueryParamsChange,\n data: {\n matcherParams: ['sport', 'region', 'league'],\n sitemap: SitemapRoutingToken.MarketGroupSitemapResolver,\n },\n component: FixtureListComponent,\n resolve: { model: marketGroupResolver },\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EventListRoutingModule {}\n\n@NgModule({\n imports: [RouterModule.forChild(sportsBetsRoute)],\n exports: [RouterModule],\n})\nexport class FixtureListRoutingModule {}\n","import { NgModule } from '@angular/core';\n\nimport { EventListSharedModule } from '../event-list-shared/event-list-shared.module';\nimport { EventListRoutingModule, FixtureListRoutingModule } from './event-list-routing.module';\n\n@NgModule({\n imports: [EventListRoutingModule, EventListSharedModule],\n})\nexport class EventListModule {}\n\n@NgModule({\n imports: [EventListSharedModule, FixtureListRoutingModule],\n})\nexport class FixtureListModule {}\n"],"names":["CalendarRedirectGuard","constructor","timeFilterConfig","urlHelper","redirectHelperService","canActivate","route","state","_a","isTimeFilterEnabled","defaultUrl","params","sport","getCalendarUrl","goToPage","of","getSportUrl","id","name","sportName","SportUrlParam","Today","ɵɵinject","TimeFilterConfig","UrlHelperService","RedirectHelperService","f","factory","ɵfac","providedIn","_CalendarRedirectGuard","CompetitionNavigationComponent","we","selectors","inputs","context","tournaments","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵproperty","CompetitionTreeComponent","encapsulation","_CompetitionNavigationComponent","CompetitionService","MasterDetailDependencyService","service","competitionListService","routerEvents","router","calendar","sitecore","sortingStateService","urlConfig","sportConfig","gridStore","gridHelper","pruneHelperService","redirectHelper","device","layoutService","clientCachingConfig","showcaseRequestBuilderService","showcaseApiService","showcaseService","seoContentService","marqueeApi","marqueeRequestBuilderService","marqueeResponseMapperService","teamPagesConfig","teamPagesCoreService","virtualCompetitionService","competitionTreeService","calendarCacheService","competitionIdService","cache","ExpiringCache","regionListTimeout","currentActivationEnd","pipe","takeUntilDestroyed","subscribe","snapshot","data","tag","RouteTag","Competition","deregister","getRouteParams","getData","detail","getCompetitionOverview","getPreResolvedData","conference","league","interval","getTimeInterval","Error","source","getSportTree","from","to","layout","shouldHaveLeftColumn","isArray","undefined","map","result","isAntepost","getOrCreate","shouldUpdateMasterCache","master","shouldUpdateDetailCache","children","length","region","toString","getDetailData","mergeTargetToParams","getTarget","getFixtureList","getPreResolvedDetailData","__spreadValues","competitionOverview$","includePostRequest","shouldRedirect","empty","sorting","getSorting","showcaseRequest","getShowcaseRequest","overview","prune","compoundId","getCompoundId","tap","enhance","switchMap","combineLatest","iif","isWithoutFixtures","isEmpty","queries","getShowcaseData","getMarqueeRequest","mergeMap","request","tiles","getMarquees","fixtures","mapFixtures","getForEventDetails","filter","getDetailDataContext","getCompetitionId","isEnabled","isVirtual","getModelByCompetition","getInterval","getSportWithCalendar","totalCount","showcase","marqueeData","seoCompetitionTitle","teams","sportsCache","__spreadProps","tabs","getNavigation","virtualCompetition","getCompetition","showcaseData","mapShowcaseFixtures","getShowcaseDataInfo","competitionTitle","h1Header","teampagesViewModel","calendarIntervals","showTimefilters","getLinks","calendarPills","getCalendarPills","sportsOverview","calendarLiveCounts","target","regionName","leagueName","keys","translations","prop","pop","marketOffer","MarketOfferUrlParam","Standings","lobby","Lobby","sportId","competitionId","regionId","getRequestPayload","getMarketGroupData","marqueeRequest","realCompetitionId","marqueeInfo","getCalendarIntervals","links","intervals","forEach","key","includes","_b","meta","time","now","leaguePrefix","VirtualCompetitionPrefix","getUrl","getUrlParameter","isDefined","orderBy","link","getTime","getComponents","component","tree","type","getItemTypeForSport","regionList","getTopFallback","isInterval","isVirtualCompetitionItem","hasDependency","subContext","isRobot","competitions","marqueeRequestParams","getMarqueeRequestParams","buildForCompetition","ids","leagues","ItemType","flatten","l","siblings","CompetitionPageType","Region","extended","marketCategory","Gridable","getId","get","group","columns","find","current","toInteger","offerPriority","competitionOfferPriority","offerOrder","overrides","default","offerCount","counts","gridable","nonGridable","other","Outrights","outrights","Specials","specials","hasLeagueStatistics","virtualCompetitionGroup","Teams","path","matches","NonGridable","offer","teamPagesViewModel","betting","conferences","navigation","appendContext","append","tab","count","value","isNumber","title","event","ReverseFixtureTab","push","FixtureTab","Matches","x","preMatch","live","isTeamPagesEnabledForSport","teamPagesNavigationViewModel","globalMessages","Map","item","active","lowerCase","index","SportConstant","Soccer","some","standings","VirtualCompetitionGroup","getTop","order","sort","first","second","shift","top","GridSorting","getVirtualCompetition","competitionSorting","showcaseDataInfo","mappedFixtures","getLobbySpecificMappedData","events","parentLeagueId","Array","EventListService","CompetitionListService","RouterEventsService","CompetitionRouteService","CalendarService","Sitecore","SortingStateService","PrettyUrlsConfig","SportsConfig","GridStoreService","CompetitionGridHelper","PruneHelperService","DeviceService","ColumnLayoutService","ClientCachingConfig","ShowcaseRequestBuilderService","ShowcaseApi","ShowcaseService","SeoContentService","MarqueeApi","MarqueeRequestBuilderService","MarqueeResponseMapperService","TeamPagesConfig","TeamPagesCoreService","VirtualCompetitionService","CompetitionTreeService","CalendarCacheService","CompetitionIdService","_CompetitionService","CompetitionPageResolver","_competitionRouteService","_competitionService","_widgetContextService","_seoService","__privateAdd","inject","WidgetContextService","CompetitionListSeoService","resolve","__privateGet","enchancedContext$","enhanceContext","getContext","saveRealCompetitionId","masterData$","layout$","getLayout","forkJoin","handleMasterData","preResolve","parse","preResolverUrl","preResolveWidgets","take","registerDependency","_CompetitionPageResolver","marketGroupResolver","ctx_r0","ErrNoEventsPerSport","CompetitionListComponent","OnRouteResolve","liveButton","className","render$","Subject","showLoader$","startWith","goBack","onRouteResolved","model","showLiveLink","addLiveButton","ngOnDestroy","removeLiveButton","ɵɵdirectiveInject","ActivatedRoute","LiveNowLinkRegisterService","hostVars","hostBindings","ɵɵlistener","ɵɵclassMap","ɵɵtemplate","CompetitionListComponent_ms_competition_tree_0_Template","CompetitionListComponent_ms_component_loader_1_Template","CompetitionListComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","qt","empty_r2","ɵɵadvance","ErrorComponent","ComponentLoaderComponent","RxIf","__decorate","HooksWireup","__metadata","WorldCupHubRouteGuard","worldCupHubService","cultureUrlData","goHome","WorldCupHubService","_WorldCupHubRouteGuard","competitionIcon","CouponBreadcrumbsResolver","BreadcrumbsResolve","customResolve","coupon","seo","SportBreadcrumbTitle","replace","crumb","createCrumb","icon","Coupons","url","getCouponUrl","competition","virtualCompetitionData","page","fixture","prefix","LeagueHeadingTitle","Betting","getCompetitionCouponUrl","_CouponBreadcrumbsResolver","BetbuilderBreadcrumbsResolver","betBuilder","messages","BetBuilderEventsTitle","CouponUrlParam","BetBuilder","_BetbuilderBreadcrumbsResolver","CouponListBreadcrumbsResolver","_CouponListBreadcrumbsResolver","PreviousPageLocationCacheService","previousPageLocationConfiguration","previousPageCacheKey","initialisePreviousPageConfig","__async","firstValueFrom","whenReady","previousPageCachetime","caheTimeOut","getPreviousPage","isBack","has","clearCache","setPreviousPage","previousPage","cachedNavigationId","navigationId","create","setNavigationParameters","clear","PreviousPageLocationConfiguration","_PreviousPageLocationCacheService","Dt","ChildDependencyResolver","dependencyService","previousPageLocationCacheService","getChildContext","__param","Optional","MasterDependencyResolver","childRoute","getChildRoute","navigate","CouponListResolver","getDetailFallback","CouponService","Router","_CouponListResolver","CouponResolver","_CouponResolver","canMatchDynamicCategoriesGuard","_","layoutConfig","LayoutNavigationConfig","dynamicCategoryQuery","getCurrentNavigation","initialUrl","queryParams","isDynamicCategoryNavigationEnabled","dynamicOfferCategoriesResolver","eventListService","offerCategories","flatMap","optionMarkets","g","templateCategory","category","concat","games","nonGridCategory","oc","toLowerCase","assign","CompetitionListResolver","urlParameter","_CompetitionListResolver","CompetitionResolver","competitionListSeoService","fixtureList","storeRealCompetitionId","_CompetitionResolver","EventListBreadcrumbsResolver","crumbs","leagueId","imageProfile","fallbackIcon","callbacks","addLeague","addConference","addSport","addContext","addRegion","isInteger","crumbsLengthBeforeContext","isEsport","slice","eSports","ESports","getESportsUrl","Competitions","Calendar","getRegion","leagueinfo","getLeague","urlParam","Number","getConference","getType","isObservable","s","Sport","getSport","childern","Conference","SportsCacheService","_EventListBreadcrumbsResolver","EventListSchemaMarkupResolver","tournamentOverview","stage","_EventListSchemaMarkupResolver","SportBreadcrumbsResolver","breadcrumbs","_SportBreadcrumbsResolver","TournamentService","tournamentsConfig","routeService","eventService","deviceService","sportCache","getTournament","local","byName","tournament","mapTournament","getPreResolveFixtureList","tomorrow","getTomorrowFormatted","getSection","liveSection","preMatchSection","leaguesSection","mapModel","baseSection","visible","base","quickLink","breadcrumb","section","sections","mapLeagues","mapSport","leagueInterval","uniq","eventCount","output","participants","getLeagueUrl","getLeagueCount","virtual","property","getTournamentUrl","match","today","Date","getFullYear","getMonth","getDate","setMinutes","getMinutes","toISOString","substring","TournamentsDataConfig","_TournamentService","TournamentBreadcrumbsResolver","tournamentService","getTournamentBreadcrumbs","_TournamentBreadcrumbsResolver","TournamentLeagueBreadcrumbsResolver","_TournamentLeagueBreadcrumbsResolver","TournamentEventsService","competitionService","routerEventsService","columnLayoutService","_TournamentEventsService","TournamentOverviewService","_TournamentOverviewService","TournamentResolver","_TournamentResolver","TournamentEventsResolver","_TournamentEventsResolver","routes","providers","WidgetLayoutComponent","use","WidgetResolver","SportLobby","schemaMarkup","WidgetSchemaMarkupResolver","CouponListComponent","shouldKeepBreadcrumbs","BetBuilderEventListComponent","subNavigationHiddenOnSmallScreen","CouponDetails","sitemap","SitemapRoutingToken","CouponSitemapResolver","matcher","nameIdentifierMatcher","CouponComponent","matcherParam","multiNameIdentifierMatcher_WithChildren","matcherParams","loadComponent","then","m","CalendarComponent","CalendarResolver","loadChildren","TeamPagesModule","EmptyComponent","multiNameIdentifierExactMatcher","runGuardsAndResolvers","paramsOrQueryParamsChange","CompetitionSitemapResolver","FixtureListComponent","regexMatcher","matcherPattern","matcherMapping","SitemapEmptyResolver","SportSitemapResolver","RegionSitemapResolver","multiNameIdentifierMatcher_WithRegexMatcher","matcherMode","multiNameIdentifierMatcher","NoMatchRouteGuard","SeoRedirectGuard","TournamentComponent","WorldCupHub","WorldCupHubComponent","sportsBetsRoute","canMatch","MarketGroupSitemapResolver","EventListRoutingModule","ce","ae","RouterModule","forChild","_EventListRoutingModule","FixtureListRoutingModule","_FixtureListRoutingModule","EventListModule","EventListSharedModule","_EventListModule","FixtureListModule","_FixtureListModule"],"mappings":"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"}