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