{"version":3,"file":"event-list.module-g28jda72.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.component.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/coupons/coupon-breadcrumbs.resolver.ts","packages/sports/web/app/src/world-cup-hub/world-cup-hub-route.guard.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/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.component.html',\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","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 { 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';\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 { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\n\nimport { Observable, tap } from 'rxjs';\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, map } from 'rxjs';\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';\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({\n icon: 'theme-e-sports',\n title: this.sitecore.eSports.ESports,\n url: this.urlHelper.getESportsUrl(),\n });\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 { 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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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: String.raw`(\\d+(,\\d+)+)`,\n matcherMapping: {\n league: 1,\n },\n sitemap: SitemapRoutingToken.CompetitionSitemapResolver,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(CompetitionResolver).preResolve(route);\n },\n },\n loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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 loadComponent: () => import('../event-list-shared/sport/fixture-list.component').then((t) => t.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","factory","ɵfac","providedIn","_CalendarRedirectGuard","CompetitionNavigationComponent","selectors","inputs","context","tournaments","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","w","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","f","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","Ze","ErrNoEventsPerSport","CompetitionListComponent","OnRouteResolve","liveButton","className","render$","Subject","showLoader$","startWith","goBack","onRouteResolved","model","showLiveLink","addLiveButton","ngOnDestroy","removeLiveButton","ɵɵdirectiveInject","ActivatedRoute","LiveNowLinkRegisterService","hostVars","hostBindings","ɵɵlistener","ɵɵclassMap","kt","ɵɵtemplate","CompetitionListComponent_ms_competition_tree_0_Template","CompetitionListComponent_ms_component_loader_1_Template","CompetitionListComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","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","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","base","quickLink","section","sections","visible","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","t","FixtureListComponent","regexMatcher","matcherPattern","matcherMapping","SitemapEmptyResolver","SportSitemapResolver","String","raw","RegionSitemapResolver","multiNameIdentifierMatcher_WithRegexMatcher","matcherMode","multiNameIdentifierMatcher","NoMatchRouteGuard","SeoRedirectGuard","TournamentComponent","WorldCupHub","WorldCupHubComponent","sportsBetsRoute","canMatch","MarketGroupSitemapResolver","EventListRoutingModule","RouterModule","forChild","_EventListRoutingModule","FixtureListRoutingModule","ae","_FixtureListRoutingModule","EventListModule","se","EventListSharedModule","_EventListModule","FixtureListModule","_FixtureListModule"],"mappings":"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"}