{"version":3,"file":"event-details.module-gytk09pr.js","sources":["packages/sports/web/app/src/betbuilder/components/custom-message/betbuilder-custom-message.html","packages/sports/web/app/src/betbuilder/components/custom-message/betbuilder-custom-message.component.ts","packages/design-system/ui/badge/src/badge.component.ts","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs-tooltip.service.ts","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs.component.html","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs.component.ts","packages/sports/web/app/src/event-details-common/tree/tree-scroll.directive.ts","packages/sports/web/app/src/event-details/bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component.ts","packages/sports/web/app/src/event-details/bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component.ts","packages/sports/web/app/src/event-details/bet-builder-view.component.html","packages/sports/web/app/src/event-details/bet-builder-view.component.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-onboarding/event-switcher-onboarding.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-onboarding/event-switcher-onboarding.component.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-tracking.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/toggle-helper/event-switcher-toggle-helper-epcot.service.ts","packages/sports/web/app/src/event-details/navigation-mapper/navigation-event-mapper.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/event-switcher-data.service.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher/event-switcher.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher/event-switcher.component.ts","packages/sports/web/app/src/event-details/event-switcher/services/event-switcher-toggle.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/toggle-helper/event-switcher-toggle-helper-row.service.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-toggle/event-switcher-toggle.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-toggle/event-switcher-toggle.component.ts","packages/sports/web/app/src/event-details/media-switcher/media-switcher.component.html","packages/sports/web/app/src/event-details/media-switcher/media-switcher.component.ts","packages/sports/web/app/src/event-details/event-details-breadcrumb.component.html","packages/sports/web/app/src/event-details/event-details-breadcrumb.component.ts","packages/sports/web/app/src/event-details/event-details-modal.service.ts","packages/sports/web/app/src/event-details-common/event-details-view-model-fetcher.service.ts","packages/sports/web/app/src/event-details/base-event-details.resolver.ts","packages/sports/web/app/src/common/edp-scoreboard-config.service.ts","packages/sports/web/app/src/event-details/navigation-state/navigation-state.service.ts","packages/sports/web/app/src/event-details-sitemap/event-details-sitemap-component-loader.service.ts","packages/sports/web/app/src/event-details/header/event-details-market-query.service.ts","packages/sports/web/app/src/event-details/header/header-navigation-url.service.ts","packages/sports/web/app/src/event-details/market-group-order/market-group-order.service.ts","packages/sports/web/app/src/event-details/header/header.service.ts","packages/sports/web/app/src/event-details/header/header-sub-navigation.component.html","packages/sports/web/app/src/event-details/header/header-sub-navigation.component.ts","packages/sports/web/app/src/event-details/header/header.component.html","packages/sports/web/app/src/event-details/header/header.component.ts","packages/sports/web/app/src/event-details/event-details.component.html","packages/sports/web/app/src/event-details/event-details.component.ts","packages/sports/web/app/src/event-details/navigation-state/navigation-state.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-state.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-refresh.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-route.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-subscription.service.ts","packages/sports/web/app/src/event-details/navigation-tracking/navigation-tracking.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-tree.service.ts","packages/sports/web/app/src/event-details/navigation-mapper/navigation-mapper.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.component.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.component.html","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-nav-state.ts","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.service.ts","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.component.html","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.component.ts","packages/sports/web/app/src/event-details/navigation-layout.service.ts","packages/sports/web/app/src/event-details/event-details.resolver.ts","packages/sports/web/app/src/event-details/event-details-modal.component.html","packages/sports/web/app/src/event-details/event-details-modal.component.ts","packages/sports/web/app/src/event-details/event-details-breadcrumb.resolver.ts","packages/sports/web/app/src/event-details/event-details-modal.guard.ts","packages/sports/web/app/src/event-details/event-details.guard.ts","packages/sports/web/app/src/event-details/event-view-subnavigation.resolve.ts","packages/sports/web/app/src/event-details/event-details-routing.module.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-navigation/event-switcher-navigation.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-navigation/event-switcher-navigation.component.ts","packages/sports/web/app/src/event-details/event-details.module.ts"],"sourcesContent":["
{{ customMessage }}
\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BetBuilderConfig } from '@frontend/sports/common/client-config-data-access';\n\n@Component({\n selector: 'ms-bet-builder-custom-message',\n templateUrl: './betbuilder-custom-message.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf],\n})\nexport class BetBuilderCustomMessageComponent implements OnInit {\n @Input() event: EventModel;\n\n customMessage = '';\n\n constructor(private betBuilderConfig: BetBuilderConfig) {}\n\n ngOnInit(): void {\n const messages = this.betBuilderConfig.customMessages[this.event.sport.id];\n\n if (!messages) {\n return;\n }\n\n this.customMessage =\n messages.find((message) => message.key === this.event.league.id.toString())?.message ||\n messages.find((message) => message.key?.toLowerCase() === 'default')?.message ||\n '';\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport const DS_BADGE_VARIANT_ARRAY = [\n 'primary',\n 'primary-strong',\n 'primary-subtle',\n 'secondary',\n 'secondary-strong',\n 'secondary-subtle',\n 'green',\n 'green-strong',\n 'green-subtle',\n 'blue',\n 'blue-strong',\n 'blue-subtle',\n 'red',\n 'red-strong',\n 'red-subtle',\n 'purple',\n 'purple-strong',\n 'purple-subtle',\n 'neutral',\n 'neutral-strong',\n 'neutral-subtle',\n 'yellow',\n 'yellow-strong',\n 'yellow-subtle',\n 'orange',\n 'orange-strong',\n 'orange-subtle',\n] as const;\n\nexport type DsBadgeVariant = (typeof DS_BADGE_VARIANT_ARRAY)[number];\nexport const DS_BADGE_SIZE_ARRAY = ['xsmall', 'medium'] as const;\nexport type DsBadgeSize = (typeof DS_BADGE_SIZE_ARRAY)[number];\n\n@Component({\n selector: 'ds-badge',\n template: `\n
\n \n
\n \n \n \n
\n \n
\n `,\n host: {\n '[class]': 'hostClass()',\n '[class.ds-badge-disabled]': 'disabled() ? true : null',\n '[class.ds-badge-inverse]': 'inverse()',\n '[attr.aria-label]': 'getAriaLabel()',\n 'role': 'img', // for now we are using role img till we find better solution to work with nvda\n },\n styleUrl: 'badge.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsBadge {\n size = input('medium');\n variant = input('primary');\n disabled = input(false, { transform: booleanAttribute });\n inverse = input(false, { transform: booleanAttribute });\n\n hostClass = computed(() => `ds-badge ds-badge-${this.size()} ds-badge-${this.variant()}`);\n\n constructor(public elementRef: ElementRef) {}\n\n public getAriaLabel(): string {\n const mainContent = this.elementRef.nativeElement.querySelector('.ds-badge-text')?.textContent?.trim();\n\n let label = mainContent || '';\n\n if (this.disabled()) {\n return `Disabled badge: ${label}`;\n }\n return `Badge: ${label}`;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetBuilderProvider } from '@cds/betting-offer/add-ons';\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EventHeaderTabsTooltipService {\n private localKey: string;\n private openTillClosed = false;\n\n private get tooltipShownCount() {\n return this.localStoreService.get(this.localKey) ?? 0;\n }\n\n constructor(\n private eventDetailsConfig: EventDetailsConfig,\n private localStoreService: LocalStoreService,\n ) {}\n\n shouldShowTooltip(provider?: BetBuilderProvider): boolean {\n switch (provider) {\n case BetBuilderProvider.Angstrom:\n this.localKey = 'tab-bar-tooltip-count-angstrom';\n break;\n case BetBuilderProvider.BybFootball:\n this.localKey = 'tab-bar-tooltip-count-byb';\n this.openTillClosed = true;\n break;\n default:\n this.localKey = 'tab-bar-tooltip-count';\n }\n\n return this.tooltipShownCount < this.eventDetailsConfig.tabBarTooltipViewsThreshold;\n }\n\n increaseCount(): void {\n if (!this.openTillClosed) {\n this.localStoreService.set(this.localKey, this.tooltipShownCount + 1);\n }\n }\n\n closeTooltip() {\n this.localStoreService.set(this.localKey, this.eventDetailsConfig.tabBarTooltipViewsThreshold + 1);\n }\n}\n","\n @for (tab of viewListItems(); track tab.id) {\n \n \n \n \n {{ tab.title }}\n @if (tab.hasTooltip) {\n \n }\n \n @if (tab.hasNewBadge) {\n {{ sitecore.globalMessages.NewBadgeText }}\n }\n @if (tab.count) {\n @if (tab.showSignPost) {\n \n } @else {\n \n {{ tab.count }}\n }\n }\n \n \n \n }\n \n\n@if (tooltip().shouldShow) {\n \n \n \n}\n","import { CommonModule, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n NgZone,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n computed,\n inject,\n signal,\n} from '@angular/core';\n\nimport { BetBuilderProvider } from '@cds/betting-offer/add-ons';\nimport { EventModel, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportsThemedNotificationDirective, ThemeNotificationVariant } from '@frontend/sports/common/ui/sports-themed-notifcation-bubble';\nimport { LinkDirective } from '@frontend/sports/common/ui/sports-themed-pills';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { DsBadge } from '@frontend/ui/badge';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { DsTabsModule } from '@frontend/ui/tabsgroup';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { NgxPopperjsContentComponent, NgxPopperjsModule } from 'ngx-popperjs';\n\nimport { PriceboostCountSignpostComponent } from '../../../shared-priceboost/Components/priceboost-count-signpost.component';\nimport { EventMarketsTabBarItem } from './event-header-tab-bar.models';\nimport { EventHeaderTabsTooltipService } from './event-header-tabs-tooltip.service';\n\n@Component({\n selector: 'ms-event-header-tabs',\n templateUrl: './event-header-tabs.component.html',\n styleUrls: ['./event-header-tabs.component.scss'],\n standalone: true,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n imports: [\n CommonModule,\n DsTabsModule,\n PriceboostCountSignpostComponent,\n DsBadge,\n TooltipModule,\n NgxPopperjsModule,\n SpeculativeLinkDirective,\n LinkDirective,\n DsDivider,\n DsNotificationBubble,\n NgTemplateOutlet,\n SportsThemedNotificationDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventHeaderTabsComponent implements OnChanges {\n @Input() tabs: EventMarketsTabBarItem[];\n @Input() event: EventModel;\n @Output() activeTab = new EventEmitter();\n @ViewChild('tooltipPopper') tooltipPopper: NgxPopperjsContentComponent;\n\n variant: ThemeNotificationVariant = {\n 'default': 'neutral',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n selectedTabBubbleVariant: ThemeNotificationVariant = {\n 'default': 'primary',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n listItems = signal([]);\n viewListItems = computed(() => {\n const tooltip = this.tooltip();\n return this.listItems().map((tab) => {\n return {\n ...tab,\n hasTooltip: this.displayTooltip(tab, tooltip.shouldShow),\n };\n });\n });\n\n moreText: string;\n tooltip = signal({ shouldShow: false, message: '' });\n betBuilderTabId = SetTab.BetBuilder;\n activeName = computed(\n () =>\n this.listItems()\n .find((t) => !!t.active)\n ?.id?.toString() ??\n this.listItems()[0]?.id?.toString() ??\n '',\n );\n\n private ngZone = inject(NgZone);\n\n constructor(\n public sitecore: Sitecore,\n private tooltipService: EventHeaderTabsTooltipService,\n private strategy: RxStrategyProvider,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['tabs']) this.updateItems();\n if (changes['event']) {\n this.tooltip.set({\n message: this.event.betBuilderInfo?.betBuilderId\n ? this.sitecore.globalMessages.BetBuilderAngstromTooltip\n : this.sitecore.globalMessages.BetBuilderComboTooltip,\n shouldShow: this.tooltipService.shouldShowTooltip(this.event.betBuilderInfo?.betBuilderProvider),\n });\n }\n }\n\n selected(name: string): void {\n const selectedTab = this.listItems().find((t) => t.id.toString() === name);\n if (selectedTab) {\n this.tabs.forEach((tab) => (tab.active = tab.id === selectedTab.id));\n this.listItems.update((tabs) => tabs.map((t) => ({ ...t, active: t.id === selectedTab.id })));\n this.strategy\n .schedule(() => this.activeTab.emit(selectedTab), {\n scope: this,\n patchZone: this.ngZone,\n })\n .subscribe();\n }\n }\n\n onPopperShown() {\n this.tooltipService.increaseCount();\n this.tooltipPopper.onDocumentResize();\n }\n\n closeTooltip() {\n this.tooltipService.closeTooltip();\n this.tooltip.update((t) => ({ ...t, shouldShow: false }));\n }\n\n private displayTooltip(item: EventMarketsTabBarItem, shouldShow: boolean): boolean {\n return (\n (item.id === this.betBuilderTabId || !!item.isSgp || this.event.betBuilderInfo?.betBuilderProvider === BetBuilderProvider.BybFootball) &&\n !!item.active &&\n shouldShow\n );\n }\n\n private updateItems(): void {\n this.listItems.set(this.tabs ?? []);\n }\n}\n","import { Directive, ElementRef, OnDestroy } from '@angular/core';\n\nimport { EventModel, safeEventId } from '@frontend/sports/betting-offer/feature/model';\nimport { MutationObserverService } from '@frontend/sports/common/core/utils/dom';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { TreeItemType } from '../event-details-common.models';\n\ninterface IReferenceElement {\n getOffset(): number;\n}\n\nclass LeagueReferenceElement implements IReferenceElement {\n constructor(public leagueElm: HTMLElement) {}\n\n getOffset(): number {\n return this.leagueElm.offsetTop;\n }\n}\n\nclass EventReferenceEvent implements IReferenceElement {\n constructor(\n private eventElm: HTMLElement,\n private leagueElm: HTMLElement,\n private eventsWrapperElm: HTMLElement | undefined,\n private distance: number = 0,\n ) {}\n\n getOffset(): number {\n const eventsWrapperHeight = this.eventsWrapperElm ? this.eventsWrapperElm.clientHeight : 0;\n const leagueOffset = this.leagueElm?.offsetTop ?? 0;\n const leagueClientHeight = this.leagueElm?.clientHeight ?? 0;\n\n return leagueOffset + leagueClientHeight - eventsWrapperHeight + this.eventElm.offsetTop - this.distance;\n }\n}\n\n@Directive({\n selector: '[msTreeScroll]',\n standalone: true,\n})\nexport class TreeScrollDirective implements OnDestroy {\n private eventToScroll: EventModel | undefined;\n private offset: number;\n private referenceElement: IReferenceElement | undefined;\n private unsubscribe$ = new Subject();\n\n constructor(\n public elementRef: ElementRef,\n public scrollContainer: ScrollContainerService,\n private mutationObserver: MutationObserverService,\n ) {}\n\n ngOnDestroy(): void {\n this.stopAdjusting();\n this.unsubscribe$.complete();\n }\n\n preserveScrolling(func: () => Promise, event?: EventModel): void {\n this.eventToScroll = event;\n\n if (!this.eventToScroll) {\n this.referenceElement = this.findTopElement();\n }\n\n if (this.referenceElement) {\n this.offset = this.referenceElement.getOffset();\n }\n\n if (this.referenceElement || this.eventToScroll) {\n this.startAdjusting();\n func().then(() => {\n this.stopAdjusting();\n });\n } else {\n func();\n }\n }\n\n scrollToCenterOrTop(event: EventModel): void {\n const eventElm = this.findEventElement(event, this.getCenterPoint());\n if (eventElm) {\n const newOffset = eventElm.getOffset();\n this.scrollContainer.scrollTo(undefined, -newOffset);\n } else if (this.scrollContainer.scrollTop !== 0) {\n this.scrollContainer.scrollTo(undefined, 0);\n }\n }\n\n scrollTo(event: EventModel): void {\n const eventElm = this.findEventElement(event);\n if (eventElm) {\n const newOffset = eventElm.getOffset();\n this.scrollContainer.scrollTo(undefined, -newOffset);\n }\n }\n\n private getCenterPoint(): number | undefined {\n const target = this.scrollContainer.target;\n\n if (target instanceof HTMLElement) {\n return target.offsetHeight / 2;\n }\n if (target instanceof Window) {\n return target.innerHeight / 2;\n }\n\n return;\n }\n\n private findEventElement(event: EventModel, distance: number = 150): IReferenceElement | undefined {\n const eventElm = this.elementRef.nativeElement.querySelector(`#event-${safeEventId(event.id)}`);\n if (!eventElm) {\n return undefined;\n }\n\n const leagueId = event.league.realCompetitionId || event.league.parentLeagueId || event.league.id;\n\n const favouriteLeagueElm = this.elementRef.nativeElement.querySelector(`#item-${TreeItemType.FavouriteLeague}-${leagueId}`);\n if (favouriteLeagueElm) {\n return new EventReferenceEvent(eventElm, favouriteLeagueElm, undefined, distance);\n }\n\n const leagueElm = this.elementRef.nativeElement.querySelector(`#item-${TreeItemType.League}-${leagueId}`);\n\n return new EventReferenceEvent(eventElm, leagueElm, undefined, distance);\n }\n\n private findTopElement(): IReferenceElement | undefined {\n let result: IReferenceElement | undefined;\n const sports: any[] = this.elementRef.nativeElement.querySelectorAll('.sport');\n if (!sports) {\n return undefined;\n }\n\n for (const sport of sports) {\n if (this.isOnTop(sport)) {\n const leagues = sport.querySelectorAll('.league');\n\n for (const league of leagues) {\n if (league && this.isOnTop(league)) {\n const eventsWrapper = league.querySelector('.tree-events');\n const eventsWrapperHeight = eventsWrapper ? eventsWrapper.clientHeight : 0;\n const leagueOffset = league.offsetTop + league.clientHeight - eventsWrapperHeight;\n\n const events = league.querySelectorAll('ms-tree-event');\n events.forEach((event: any) => {\n if (this.isEventOnTop(event, leagueOffset)) {\n result = new EventReferenceEvent(event, league, eventsWrapper);\n }\n });\n\n if (!result) {\n result = new LeagueReferenceElement(league);\n }\n\n return result;\n }\n }\n }\n }\n\n return undefined;\n }\n\n private startAdjusting(): void {\n this.mutationObserver\n .observe(this.elementRef.nativeElement)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n if (!this.referenceElement && this.eventToScroll) {\n this.referenceElement = this.findEventElement(this.eventToScroll);\n }\n\n if (this.referenceElement) {\n this.adjustScrollPosition(this.referenceElement);\n }\n });\n }\n\n private adjustScrollPosition(elm: IReferenceElement): void {\n const newOffset = elm.getOffset();\n if (newOffset === 0 || newOffset === this.offset) {\n return;\n }\n\n let scrollTo: number;\n if (this.offset) {\n scrollTo = this.scrollContainer.scrollTop + newOffset - this.offset;\n } else {\n scrollTo = newOffset;\n }\n\n this.offset = newOffset;\n this.scrollContainer.scrollTo(undefined, -scrollTo);\n }\n\n private isEventOnTop(event: HTMLElement, leagueOffset: number): boolean {\n const eventOffset = event.offsetTop + leagueOffset;\n\n return event && eventOffset < this.scrollContainer.scrollTop && eventOffset + event.clientHeight > this.scrollContainer.scrollTop;\n }\n\n private isOnTop(item: HTMLElement): boolean {\n return item && item.offsetTop < this.scrollContainer.scrollTop && item.offsetTop + item.clientHeight > this.scrollContainer.scrollTop;\n }\n\n private stopAdjusting(): void {\n this.unsubscribe$.next();\n\n this.referenceElement = undefined;\n this.eventToScroll = undefined;\n }\n}\n","\n
\n {{ messageText }}\n {{ linkText }}\n
\n
\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { EventModel, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { EpcotNotificationComponent } from '../../../common/epcotNotifications/notification.component';\nimport { BetBuilderTrackingValues } from '../bet-builder-tracking';\nimport { BetBuilderEventNameService } from '../services/bet-builder-event-name.service';\nimport { BetBuilderHowToDialogService } from '../services/bet-builder-how-to-dialog.service';\nimport { BetBuilderOnboardingMessageService } from './bet-builder-onboarding-message.service';\n\n@Component({\n selector: 'ms-bet-builder-onboarding',\n templateUrl: 'bet-builder-onboarding-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EpcotNotificationComponent, NgIf],\n})\nexport class BetBuilderOnboardingComponent implements OnInit, OnChanges {\n @Input() event: EventModel;\n @Input() setId: string | number;\n\n @HostBinding('class') className = 'bet-builder-onboarding-message';\n\n messageText: string;\n linkText: string;\n\n private dismissed = false;\n\n constructor(\n sitecore: Sitecore,\n private betBuilderHowToDialogService: BetBuilderHowToDialogService,\n private betBuilderEventNameService: BetBuilderEventNameService,\n private onboardingMessageService: BetBuilderOnboardingMessageService,\n private tracker: TrackingService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {\n this.messageText = sitecore.betBuilder.messages?.EventDetailsOnboardingMessageText ?? '';\n this.linkText = sitecore.betBuilder.messages?.EventDetailsOnboardingLinkText ?? '';\n }\n\n onCloseButtonClick(): void {\n this.dismissed = true;\n this.onboardingMessageService.close();\n this.trackCloseButtonClick();\n }\n\n onLinkClick(): void {\n this.trackLinkClick();\n\n const leagueId = this.event.league.id;\n const sportId = this.event.sport.id;\n const eventName = this.betBuilderEventNameService.getParticipantHeaderTitle({\n participants: this.event.participants,\n leagueId,\n sportId,\n eventViewType: this.event.viewType,\n eventName: this.event.name,\n });\n\n this.betBuilderHowToDialogService.openBuilder({ leagueId, sportId, eventName });\n }\n\n ngOnInit(): void {\n this.onboardingMessageService.incrementCounter();\n this.trackLoad();\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.tryReplaceMessagesText();\n\n if (changes.setId?.previousValue === SetTab.BetBuilder) {\n this.onboardingMessageService.tryMarkAsShown();\n }\n }\n\n get shouldShow(): boolean {\n return !this.dismissed && !this.onboardingMessageService.isCounterFinished();\n }\n\n private trackLinkClick(): void {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.InfoRibbon,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.FindOutMore,\n });\n }\n\n private trackLoad(): void {\n if (!this.shouldShow) {\n return;\n }\n\n this.tracker.track(trackingConstants.EVENT_CONTENT_VIEW, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Load,\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.InfoRibbon,\n });\n }\n\n private trackCloseButtonClick(): void {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Close,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.InfoRibbon,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.InfoRibbon,\n });\n }\n\n private getTrackingObject = () => {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n };\n\n private tryReplaceMessagesText(): void {\n const sportName = SportConstant[this.event.sport.id].toString();\n let messageText: string | undefined;\n\n if (this.event.betBuilderInfo?.betBuilderId && this.setId !== SetTab.BetBuilder) {\n messageText = this.sitecoreEventDetails.onboarding[`OnboardingTextLeague_${this.event.league.id}`];\n this.linkText = this.sitecoreEventDetails.onboarding['OnboardingLinkText'];\n\n if (!messageText) {\n messageText = this.sitecoreEventDetails.onboarding[`OnboardingText${sportName}`];\n }\n }\n\n if (messageText) {\n this.messageText = messageText;\n }\n }\n}\n","
\n {{ betbuilderMessages?.OverlayTriggerTitle }} \n {{ betbuilderMessages?.OverlayTriggerSubtitle }} \n
\n\n\n\n \n\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { PropType } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { BetBuilderOverlayHeaderComponent } from '../bet-builder-overlay-header/bet-builder-overlay-header.component';\nimport { BetBuilderTrackingValues } from '../bet-builder-tracking';\nimport { BetBuilderOverlayService } from '../services/bet-builder-overlay.service';\n\n@Component({\n selector: 'ms-betbuilder-overlay-trigger-banner',\n templateUrl: './overlay-trigger-banner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [BetBuilderOverlayHeaderComponent],\n})\nexport class OverlayTriggerBannerComponent {\n @HostBinding('class') className = 'betbuilder-overlay-trigger';\n\n @Input() event: EventModel;\n @ViewChild('header') headerTemplate: TemplateRef;\n\n betbuilderMessages: PropType, 'messages'>;\n\n constructor(\n sitecore: Sitecore,\n private betBuilderOverlayService: BetBuilderOverlayService,\n private tracker: TrackingService,\n ) {\n this.betbuilderMessages = sitecore.betBuilderEntainUI.messages;\n }\n\n openBuilder() {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.Tab,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.BuildaBet,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.event.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.event.league.id.toString(),\n });\n this.betBuilderOverlayService.openBuilder({\n headerTemplate: this.headerTemplate,\n event: this.event,\n isOverlay: true,\n source: BetBuilderTrackingValues.MarketBoardButton,\n });\n }\n}\n","@switch (displayType) {\n @case (BetBuilderDisplayType.EntainUIInOverlay) {\n \n
\n @if (!preCreated?.hasMarkets) {\n \n }\n @if (preCreated?.ambassadorsMarkets?.length) {\n \n \n }\n @if (preCreated?.promotedMarkets?.length) {\n \n }\n
\n }\n @case (BetBuilderDisplayType.EntainUIInMarketBoard) {\n \n }\n @case (BetBuilderDisplayType.Classic) {\n
\n \n \n \n
\n @if (preCreated?.ambassadorsMarkets?.length) {\n \n \n }\n @if (preCreated?.promotedMarkets?.length) {\n \n }\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nimport { BetBuilderPrecreatedModel } from '../betbuilder/model/bet-builder.model';\nimport { BetBuilderConfigService } from '../betbuilder/services/betbuilder-config.service';\nimport { BetBuilderTrackingValues } from './bet-builder-v2/bet-builder-tracking';\n\nenum BetBuilderDisplayType {\n Classic,\n EntainUIInMarketBoard,\n EntainUIInOverlay,\n}\n\n@Component({\n selector: 'ms-bet-builder-view',\n templateUrl: './bet-builder-view.component.html',\n})\nexport class BetBuilderViewComponent {\n @Input() event: EventModel;\n @Input() preCreated?: BetBuilderPrecreatedModel;\n @HostBinding('class') className = 'tab-bet-builder';\n\n source = BetBuilderTrackingValues.EventDetails;\n\n BetBuilderDisplayType = BetBuilderDisplayType;\n\n constructor(private betBuilderConfigService: BetBuilderConfigService) {}\n\n get displayType(): BetBuilderDisplayType {\n if (!this.betBuilderConfigService.useBetBuilderInEntainUI(this.event.sport.id)) {\n return BetBuilderDisplayType.Classic;\n }\n\n if (this.betBuilderConfigService.showEmbeddedUi()) {\n return BetBuilderDisplayType.EntainUIInMarketBoard;\n }\n\n return this.betBuilderConfigService.showEntainUiInOverlay(this.event.sport.id)\n ? BetBuilderDisplayType.EntainUIInOverlay\n : BetBuilderDisplayType.EntainUIInMarketBoard;\n }\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\n\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\nimport { EventSwitcherStore } from '../models';\n\n@Component({\n selector: 'ms-event-switcher-onboarding',\n templateUrl: './event-switcher-onboarding.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TooltipModule],\n})\nexport class EventSwitcherOnboardingComponent implements OnInit {\n @HostBinding('class') className = `event-switcher-help`;\n showHelp = false;\n\n constructor(\n private localStoreService: LocalStoreService,\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n ngOnInit(): void {\n this.checkOnBoarding();\n }\n\n private checkOnBoarding(): void {\n const eventSwitcherStore = this.localStoreService.get('eventSwitcher') || { helpShown: false };\n this.showHelp = !eventSwitcherStore.helpShown;\n\n if (this.showHelp) {\n this.localStoreService.set('eventSwitcher', { helpShown: true });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\n@Injectable({ providedIn: 'root' })\nexport class EventSwitcherTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackOpen(eventId: string): void {\n this.trackAction('Expand', eventId, 'Event Switcher');\n }\n\n trackClose(eventId: string, isLive: boolean): void {\n this.trackAction('Close', eventId, 'Close', undefined, isLive);\n }\n\n trackEventSelect(currentEventId: string, selectedEventId: string, selectedEventName: string, selectedLive: boolean): void {\n this.trackAction('Select', currentEventId, selectedEventName, selectedEventId, selectedLive);\n }\n\n private trackAction(action: string, currentEventId: string, eventDetail: string, selectedEventId?: string, selectedLive?: boolean): void {\n const trackingObject: {\n 'component.CategoryEvent': string;\n 'component.LabelEvent': string;\n 'component.ActionEvent': string;\n 'component.PositionEvent': string;\n 'component.LocationEvent': string;\n 'component.EventDetails': string;\n 'component.URLClicked': string;\n 'sportEventId'?: string;\n } = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Event Switcher',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Events',\n [trackingConstants.COMPONENT_ACTION_EVENT]: action,\n [trackingConstants.COMPONENT_POSITION_EVENT]: currentEventId,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: selectedLive ? 'inplay' : 'preevent',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: eventDetail,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n\n if (selectedEventId) {\n trackingObject['sportEventId'] = selectedEventId;\n }\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingObject);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferCategory } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { LeagueItem, isVirtualCompetitionItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Observable, map, of } from 'rxjs';\n\nimport { SportsCacheService } from '../../../../client-caching/sports-cache.service';\nimport { ComponentProxy } from '../../../../deferred/component-loader.service';\nimport {\n EventSwitcherComponentLoaderService,\n EventSwitcherEventViewBinding,\n} from '../../../../event-details/event-switcher-component-loader.service';\nimport { PopupManager } from '../../../../popup/popup-manager.service';\nimport { EventSwitcherTrackingService } from '../../event-switcher-tracking.service';\nimport { IEventSwitcherToggleHelperService } from './event-switcher-toggle-helper.service';\n\n@Injectable()\nexport class EventSwitcherToggleHelperEpcotService implements IEventSwitcherToggleHelperService {\n constructor(\n private sportCacheService: SportsCacheService,\n private popupManager: PopupManager,\n private trackingService: EventSwitcherTrackingService,\n loader: EventSwitcherComponentLoaderService,\n ) {\n this.eventSwitcherComponent = loader.getEventSwitcherComponent();\n }\n\n eventSwitcherComponent: ComponentProxy;\n\n private readonly EVENT_SWITCHER_POPUP = 'event-switcher';\n\n openSwitcher(event: EventModel): void {\n this.eventSwitcherComponent.update({ event });\n\n this.popupManager.open(this.EVENT_SWITCHER_POPUP);\n\n this.trackingService.trackOpen(event.id);\n }\n\n closeSwitcher(): void {\n this.popupManager.close();\n }\n\n getCount(event: EventModel): Observable {\n if (event.offerCategories.some((c) => [OfferCategory.Outrights].includes(c))) {\n return of(0);\n }\n\n return this.sportCacheService.getSport(event.sport.id, event.league.id).pipe(\n map((sport) => {\n const eventLeagueId = event.league.parentLeagueId ?? event.league.id;\n\n let count = sport?.children\n .find((region) => region.id === event.region.id)\n ?.children.find((c) =>\n isVirtualCompetitionItem(c) && !event.league.realCompetitionId ? c.siblings.includes(eventLeagueId) : c.id === eventLeagueId,\n );\n\n if (count && isVirtualCompetitionItem(count) && !event.league.realCompetitionId) {\n count = count.children.find((c) => (c)?.siblings.includes(eventLeagueId));\n }\n\n return count ? count.counts.gridable : 0;\n }),\n );\n }\n\n get expanded$(): Observable | undefined {\n return undefined;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixturePage } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { groupBy, keys, orderBy } from 'lodash-es';\n\nimport { GroupedEvents } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationEventMapperService {\n constructor(protected fixtureFactory: FixtureFactory) {}\n\n mapFixtures(page: FixturePage | undefined): GroupedEvents {\n if (!page) {\n return {};\n }\n\n const events = page.fixtures.map((f) => this.fixtureFactory.create(f));\n const grouped = groupBy(events, (f) => getLeagueId(f));\n\n const result: { [leagueId: number]: EventModel[] } = [];\n // Needed because events can have same start date and\n // CDS doesn't provide sorting by name (code) as fallback in this case\n keys(grouped).forEach((key) => {\n result[key as any as number] = orderBy(grouped[key], [\n (e) => (e.live ? 0 : 1),\n (e) => (e.scoreboard.started ? 0 : 1),\n (e) => e.startDate.getTime(),\n (e) => e.participants.map((p) => p.shortName).join(),\n ]);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType, OfferCategory } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { Competition, TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureState, OfferMapping, ParticipantMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem, mapNode } from '@frontend/sports/common/core/data-access/sport-model';\nimport { orderBy } from 'lodash-es';\nimport { Observable, map } from 'rxjs';\n\nimport { BaseTreeItem, GroupedEvents, LeftNavType, NavEventModel, TreeItemType } from '../../../event-details-common/event-details-common.models';\nimport { NavigationEventMapperService } from '../../navigation-mapper/navigation-event-mapper.service';\n\n@Injectable()\nexport class EventSwitcherDataService {\n constructor(\n private bettingOfferApi: BettingOfferApi,\n private eventMapperService: NavigationEventMapperService,\n ) {}\n\n getEventsTree(event: EventModel, navType: LeftNavType): Observable {\n const selectedLeagueId = event.league.realCompetitionId ?? event.league.parentLeagueId ?? event.league.id;\n\n return this.getData(navType, event.sport.id, event.region.id, selectedLeagueId).pipe(\n map((data) => (data ? this.mapData(data, navType, event, selectedLeagueId) : undefined)),\n );\n }\n\n private getData(type: LeftNavType, sportId: number, regionId: number, leagueId: number): Observable {\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: type === LeftNavType.Live ? FixtureState.Live : FixtureState.Latest,\n tagTypes: [TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n fixtureCategories: OfferCategory.Gridable,\n excludedFixtureCategories: [OfferCategory.Outrights].join(','),\n competitionIds: type === LeftNavType.Competition ? leagueId.toString() : undefined,\n sportIds: sportId.toString(),\n regionIds: type === LeftNavType.Prematch && sportId !== SportConstant.Tennis ? regionId.toString() : undefined,\n tournamentIds: type === LeftNavType.Prematch && sportId === SportConstant.Tennis ? regionId.toString() : undefined,\n sortBy: SortByCriteria.Tags,\n isPriceBoost: false,\n },\n fixtureRequest: {\n state: type === LeftNavType.Live ? FixtureState.Live : FixtureState.Latest,\n fixtureTypes: FixtureType.Standard,\n fixtureCategories: OfferCategory.Gridable,\n excludedFixtureCategories: [OfferCategory.Outrights].join(','),\n competitionIds: type === LeftNavType.Competition ? leagueId.toString() : undefined,\n sportIds: sportId.toString(),\n regionIds: type === LeftNavType.Prematch && sportId !== SportConstant.Tennis ? regionId.toString() : undefined,\n tournamentIds: type === LeftNavType.Prematch && sportId === SportConstant.Tennis ? regionId.toString() : undefined,\n isPriceBoost: false,\n offerMapping: OfferMapping.None,\n participantMapping: ParticipantMapping.ExcludePlayer,\n sortBy: SortByCriteria.FixtureStage,\n },\n };\n\n return this.bettingOfferApi.getCountsFixtures(request);\n }\n\n private mapData(data: CountsFixturesResponse, type: LeftNavType, event: EventModel, selectedLeagueId: number): BaseTreeItem {\n const competitions = data.counts.filter((c) => c.tag.type === TagType.Competition);\n const regions =\n event.sport.id === SportConstant.Tennis\n ? data.counts.filter((c) => c.tag.type === TagType.Tournament)\n : data.counts.filter((c) => c.tag.type === TagType.Region);\n\n const competitionWithRegion = competitions.map((competition) => {\n const parentId =\n event.sport.id === SportConstant.Tennis ? (competition.tag).parentTournamentId : (competition.tag).parentId;\n const region = regions.find((p) => p.tag.id === parentId);\n\n return { competition, region };\n });\n\n const counts = orderBy(competitionWithRegion, [(c) => c.region?.rank, (c) => c.competition.rank, (c) => c.competition.tag.name.value]).map(\n (cr) => mapNode(cr.competition),\n );\n\n const tree = this.mapTree(counts, type, event, selectedLeagueId);\n\n return this.createTreeWithEvents(tree, this.eventMapperService.mapFixtures(data.fixtures), event.id);\n }\n\n private mapTree(leagues: CountItem[], type: LeftNavType, event: EventModel, selectedLeagueId: number): BaseTreeItem {\n return {\n children: leagues.map((l) => ({\n id: (l).siblings[0] ?? l.id,\n sportId: event.sport.id,\n name: l.name,\n type: TreeItemType.League,\n selected: selectedLeagueId === ((l).siblings[0] ?? l.id),\n expanded: true,\n loading: false,\n icon: 'country-icon c' + (event.sport.id === SportConstant.Tennis ? RegionConstant.World : l.parentId),\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n hideFavorites: true,\n isVirtual: l.isVirtual,\n virtualCompetitionId: l.isVirtual ? l.id : undefined,\n leftNavType: type,\n })),\n };\n }\n\n private createTreeWithEvents(tree: BaseTreeItem, groupedEvents: GroupedEvents, selectedEventId: string): BaseTreeItem {\n if (!groupedEvents) {\n return tree;\n }\n\n tree.children\n .filter((league) => !!groupedEvents[league.virtualCompetitionId ?? league.id])\n .forEach((league) => {\n const mappedEvents = this.mapNavEvents(groupedEvents[league.virtualCompetitionId ?? league.id], selectedEventId);\n league.events = mappedEvents;\n league.count = league.events.length;\n });\n\n return tree;\n }\n\n private mapNavEvents(events: EventModel[], selectedEventId?: string): NavEventModel[] {\n return events.map(\n (e) =>\n {\n data: e,\n showMarkets: false,\n selected: e.id === selectedEventId,\n },\n );\n }\n}\n","\n\n","import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Observable, Subject } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { BaseTreeItem, LeftNavType } from '../../../event-details-common/event-details-common.models';\nimport { PopupManager } from '../../../popup/popup-manager.service';\nimport { EventSwitcherDataService } from '../services/event-switcher-data.service';\n\n@Component({\n selector: 'ms-event-switcher',\n templateUrl: './event-switcher.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EventSwitcherDataService],\n})\nexport class EventSwitcherComponent implements OnInit {\n @Input() event: EventModel;\n\n private viewModel: Subject = new Subject();\n get viewModel$(): Observable {\n return this.viewModel;\n }\n\n @HostBinding('class') className = 'event-switcher';\n\n constructor(\n private dataProvider: EventSwitcherDataService,\n private popupManager: PopupManager,\n private epcotConfigService: EpcotConfigService,\n ) {}\n\n @HostListener('click', ['$event'])\n click(event: Event): void {\n event.stopPropagation();\n }\n\n ngOnInit(): void {\n this.loadEvents();\n }\n\n private async loadEvents(): Promise {\n const type = this.isEpcotEnabled ? LeftNavType.Competition : this.event.live ? LeftNavType.Live : LeftNavType.Prematch;\n\n this.dataProvider.getEventsTree(this.event, type).subscribe((tree) => {\n if (tree) {\n this.viewModel.next(tree);\n\n this.updateEpcotPopupTitle(tree);\n }\n });\n }\n\n private updateEpcotPopupTitle(tree: BaseTreeItem): void {\n if (this.isEpcotEnabled) {\n const eventCount = tree.children[0].count;\n const newTitle = this.event.league.name + ((eventCount ?? 0 > 1) ? ` (${eventCount})` : '');\n this.popupManager.updateDialogTitle('event-switcher', newTitle);\n }\n }\n\n get isEpcotEnabled(): boolean {\n return this.epcotConfigService.isEnabled();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSwitcherConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ModalDialogOptions, ModalDialogService } from '@frontend/sports/modal/feature';\nimport { HtmlNode } from '@frontend/vanilla/core';\n\nimport { EventSwitcherTrackingService } from '../event-switcher-tracking.service';\nimport { EventSwitcherComponent } from '../event-switcher/event-switcher.component';\nimport { InputData } from '../models';\nimport { SwitcherToggleService } from './switcher-toggle.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventSwitcherToggleService extends SwitcherToggleService {\n private readonly dialogCssClass = 'event-switcher-dialog';\n\n constructor(\n private trackingService: EventSwitcherTrackingService,\n eventSwitcherConfig: EventSwitcherConfig,\n dialogService: ModalDialogService,\n htmlNode: HtmlNode,\n ) {\n super(dialogService, htmlNode, eventSwitcherConfig.isEnabled);\n }\n\n override getHtmlToggleClass(): string {\n return 'event-switcher-visible';\n }\n\n openSwitcher(event: EventModel): void {\n const options: ModalDialogOptions = {\n data: {\n event,\n },\n settings: {\n cssClass: this.dialogCssClass,\n backdropClass: this.dialogCssClass,\n scrollTargetQuerySelector: 'ms-event-switcher',\n fit: false,\n },\n };\n this.open(EventSwitcherComponent, options);\n this.trackingService.trackOpen(event.id);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferCategory } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Observable, map, of } from 'rxjs';\n\nimport { SportsCacheService } from '../../../../client-caching/sports-cache.service';\nimport { EventSwitcherToggleService } from '../event-switcher-toggle.service';\nimport { IEventSwitcherToggleHelperService } from './event-switcher-toggle-helper.service';\n\n@Injectable()\nexport class EventSwitcherToggleHelperRowService implements IEventSwitcherToggleHelperService {\n constructor(\n private sportCacheService: SportsCacheService,\n private toggleService: EventSwitcherToggleService,\n ) {}\n\n openSwitcher(event: EventModel): void {\n if (!this.toggleService.expanded && event) {\n this.toggleService.openSwitcher(event);\n } else {\n this.toggleService.close();\n }\n }\n\n closeSwitcher(): void {\n this.toggleService.close();\n }\n\n getCount(event: EventModel): Observable {\n if (event.offerCategories.some((c) => [OfferCategory.Outrights].includes(c))) {\n return of(0);\n }\n\n return this.sportCacheService.getSport(event.sport.id, event.league.id).pipe(\n map((sport) => {\n if (event.live) {\n return sport?.counts.live ?? 0;\n }\n\n const count = sport?.children.find((region) => region.id === event.region.id);\n\n return count ? count.counts.gridable : 0;\n }),\n );\n }\n\n get expanded$(): Observable | undefined {\n return this.toggleService.expanded$;\n }\n}\n","@if (showLeagueLogo) {\n \n}\n\n {{ title }}\n\n\n@if (showOnboarding) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSwitcherConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { WhenOverflowedDirective, WhenOverflowedOptions } from '@frontend/sports/common/ui/overflow';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { BehaviorSubject, Subject, distinctUntilChanged, filter, map, skip, switchMap } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { EventSwitcherOnboardingComponent } from '../event-switcher-onboarding/event-switcher-onboarding.component';\nimport { EventSwitcherToggleHelperEpcotService } from '../services/toggle-helper/event-switcher-toggle-helper-epcot.service';\nimport { EventSwitcherToggleHelperRowService } from '../services/toggle-helper/event-switcher-toggle-helper-row.service';\nimport { IEventSwitcherToggleHelperService } from '../services/toggle-helper/event-switcher-toggle-helper.service';\n\n@Component({\n selector: 'ms-event-switcher-toggle',\n templateUrl: './event-switcher-toggle.component.html',\n standalone: true,\n imports: [CommonModule, CompetitionLogoComponent, EventSwitcherOnboardingComponent, WhenOverflowedDirective, IconCustomComponent],\n providers: [EventSwitcherToggleHelperEpcotService, EventSwitcherToggleHelperRowService],\n})\nexport class EventSwitcherToggleComponent implements OnChanges {\n @Input() event: EventModel;\n @Input() mediaCount: number;\n\n @HostBinding('class') className = 'event-switcher-toggle';\n\n @HostBinding('class.disabled') get isDisabled(): boolean {\n return !this.config.isEnabled || this.eventCount < 2;\n }\n\n @HostBinding('class.expanded') expanded = false;\n @ViewChild(WhenOverflowedDirective, { read: WhenOverflowedDirective }) directive: WhenOverflowedDirective;\n\n toggleSwitcher(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.eventSwitcherToggleHelper.openSwitcher(this.event);\n }\n\n title: string;\n showLeagueLogo: boolean;\n epcotEnabled: boolean;\n overflowOptions: WhenOverflowedOptions = {\n classNameToAdd: 'text-overflows',\n resizeFont: true,\n minFontSize: 9,\n listenToResize: true,\n manualMutationCheck: true,\n adjustRatio: 0.9,\n };\n\n private eventCount = 0;\n\n private event$ = new BehaviorSubject(undefined);\n private mediaTabCount$ = new Subject();\n\n private eventSwitcherToggleHelper: IEventSwitcherToggleHelperService;\n\n constructor(\n private config: EventSwitcherConfig,\n private changeDetectorRef: ChangeDetectorRef,\n private epcotConfigService: EpcotConfigService,\n epcotHelper: EventSwitcherToggleHelperEpcotService,\n rowHelper: EventSwitcherToggleHelperRowService,\n ) {\n this.eventSwitcherToggleHelper = epcotConfigService.isEnabled() ? epcotHelper : rowHelper;\n this.epcotEnabled = epcotConfigService.isEnabled();\n\n this.event$\n .pipe(\n filter(isDefined),\n switchMap((event) => this.eventSwitcherToggleHelper.getCount(event).pipe(map((count) => ({ event, count })))),\n takeUntilDestroyed(),\n )\n .subscribe(({ event, count }) => this.setModel(event, count));\n\n this.mediaTabCount$.pipe(skip(1), distinctUntilChanged(), takeUntilDestroyed()).subscribe((_) => {\n this.directive.forceRefresh();\n });\n\n this.eventSwitcherToggleHelper.expanded$?.pipe(takeUntilDestroyed()).subscribe((expanded) => {\n this.expanded = expanded;\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.event?.currentValue) {\n this.event$.next(changes.event.currentValue);\n }\n\n if (changes.mediaCount?.currentValue) {\n this.mediaTabCount$.next(changes.mediaCount.currentValue);\n }\n }\n\n get showOnboarding(): boolean {\n return !this.epcotConfigService.isEnabled() && !this.isDisabled && !this.expanded;\n }\n\n private setModel(event: EventModel, count: number): void {\n this.showLeagueLogo = this.config.toggleIconAllowedSports.includes(event.sport.id);\n this.eventCount = count;\n this.title = event.league.name + (this.isDisabled || !this.epcotConfigService.isEnabled() ? '' : ` (${this.eventCount})`);\n this.changeDetectorRef.markForCheck();\n }\n}\n","@if (tabs && tabs.length > 1) {\n \n @for (tab of tabs; track $index) {\n \n \n \n \n \n }\n \n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n Output,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ThemeOptionsWithDefault } from '@frontend/sports/common/ui/shared';\nimport { SportsThemedSegmentedControlDirective } from '@frontend/sports/common/ui/sports-themed-segmented-control';\nimport { DsSegmentedControlModule } from '@frontend/ui/segmented-control';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { filter } from 'rxjs';\n\nimport { HeaderNavigationService } from '../../event-details-common/header-navigation/header-navigation.service';\nimport { FeatureTab, ScoreboardMediaTrackingService } from '../../event-details-common/scoreboard/scoreboard-media-tracking.service';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\n\n@Component({\n selector: 'ms-media-switcher',\n templateUrl: 'media-switcher.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, DsSegmentedControlModule, IconCustomComponent, SportsThemedSegmentedControlDirective],\n})\nexport class MediaSwitcherComponent implements OnChanges {\n @HostBinding('class') className = 'media-switcher';\n\n @Input() event: EventModel | undefined;\n @Output() mediaTabsCountChanged = new EventEmitter();\n tabs: TabBarItem[];\n currentSelectedTab: string;\n\n readonly segmentedControlThemeInverse: ThemeOptionsWithDefault = {\n 'giocodigitale': false,\n 'premium-dark': false,\n 'sports-interaction': false,\n 'sportingbet-2': false,\n 'default': true,\n };\n\n private mediaTabsCount: number;\n\n private ngZone = inject(NgZone);\n\n constructor(\n private headerNavigation: HeaderNavigationService,\n private scoreboardMediaTrackingService: ScoreboardMediaTrackingService,\n private changeDetector: ChangeDetectorRef,\n private strategy: RxStrategyProvider,\n ) {\n this.headerNavigation.selectedTab\n ?.pipe(\n filter((x) => !!(x && this.tabs)),\n takeUntilDestroyed(),\n )\n .subscribe((x) => {\n this.tabs.forEach((tab) => (tab.active = tab.id === x?.id));\n this.currentSelectedTab = x?.id.toString() ?? '';\n this.changeDetector.markForCheck();\n });\n }\n\n ngOnChanges(): void {\n if (this.event) {\n this.headerNavigation.getTabs(this.event).then((result) => {\n this.tabs = result;\n this.changeDetector.markForCheck();\n\n if (this.mediaTabsCount !== this.tabs.length) {\n this.mediaTabsCount = this.tabs.length;\n this.mediaTabsCountChanged.emit(this.mediaTabsCount);\n }\n });\n }\n }\n\n selected(activeTabId: string): void {\n const activeTab = this.tabs?.find((tab) => tab.id.toString() === activeTabId);\n\n if (activeTab) {\n this.strategy\n .schedule(\n () => {\n if (this.event) {\n this.headerNavigation.updateSelected(activeTab);\n\n if (\n activeTab.id === FeatureTab.Statistics ||\n activeTab.id === FeatureTab.Simulation ||\n activeTab.id === FeatureTab.Video ||\n activeTab.id === FeatureTab.Scoreboard\n ) {\n this.scoreboardMediaTrackingService.trackTabsInteractionForHeader(activeTab.id, this.event);\n }\n }\n },\n { scope: this, patchZone: this.ngZone },\n )\n .subscribe();\n }\n }\n}\n","\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, HostBinding, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { DetailedEventSubscriptionService } from '@frontend/sports/event-subscription/feature/detailed-event-subscription';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { debounce } from 'lodash-es';\n\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\nimport { EventSwitcherToggleComponent } from './event-switcher/event-switcher-toggle/event-switcher-toggle.component';\nimport { MediaSwitcherComponent } from './media-switcher/media-switcher.component';\n\n@Component({\n selector: 'ms-event-details-breadcrumb',\n templateUrl: 'event-details-breadcrumb.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MediaSwitcherComponent, EventSwitcherToggleComponent],\n})\nexport class EventDetailsBreadcrumbComponent implements OnInit, OnDestroy {\n @HostBinding('class') className = 'event-details-breadcrumb';\n\n // This property will be passed to the media switcher and if needed to the event switcher\n @Input() event?: EventModel;\n mediaTabsCount: number;\n tabs?: Promise;\n private subscription?: EventSubscription;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private routerEventsService: RouterEventsService,\n private eventSubscriptionService: DetailedEventSubscriptionService,\n private changeRef: ChangeDetectorRef,\n private eventDetailsConfig: EventDetailsConfig,\n ) {}\n\n ngOnInit(): void {\n if (!this.eventDetailsConfig.showInOverlay) {\n this.routerEventsService.currentActivationEnd\n .pipe(filterSports(), takeUntilDestroyed(this.destroyRef))\n .subscribe((route) => this.activationEnded(route));\n }\n }\n\n onTabsChanged(data: number) {\n this.mediaTabsCount = data;\n this.changeRef.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n private eventChanged = (event: EventModel) => {\n this.event = event;\n this.changeRef.markForCheck();\n };\n\n private activationEnded(route: ActivationEnd | undefined): void {\n this.event = route?.snapshot.data['model'].model;\n\n if (this.event) {\n this.subscription?.unsubscribe();\n\n this.subscription = this.eventSubscriptionService.subscribe([\n {\n event: this.event,\n callback: debounce(this.eventChanged, 100),\n },\n ]);\n\n this.changeRef.markForCheck();\n }\n }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { ScrollFreezeServiceTypes } from '@frontend/sports/common/core/feature/scroll-freeze';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { DialogSettings, ModalAnimationHelperService, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { RouteTag } from 'packages/sports/libs/common/core/data-access/route/src/lib/route.models';\nimport { TimerService } from 'packages/sports/libs/common/core/utils/timer/src/lib/timer.service';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsModalComponent } from './event-details-modal.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EventDetailsModalService {\n private modalRef?: ModalRef;\n //keeping fixture id as the updateData() doesn't update the original modal inputs\n private currentFixtureId?: string;\n private previousUrl?: string;\n\n constructor(\n private modalDialogService: ModalDialogService,\n private routerEventsService: RouterEventsService,\n private timerService: TimerService,\n private location: Location,\n private modalAnimationHelper: ModalAnimationHelperService,\n ) {\n this.routerEventsService.currentActivationStart.pipe(takeUntilDestroyed()).subscribe((route) => {\n // if we navigate away from edp modal, we should close it (betslip links)\n const tag = route?.snapshot.data['tag'] as RouteTag;\n if (!tag || tag !== RouteTag.EventDetails) {\n this.modalRef?.close();\n }\n });\n // if we navigate back from edp modal, we should close it\n window.addEventListener('popstate', () => {\n if (this.previousUrl && window.location.pathname === this.previousUrl) {\n this.modalRef?.close();\n }\n });\n }\n\n openOrUpdateModal(eventData: DetailedEventViewModel, route: ActivatedRouteSnapshot, urlHistory?: string[]): void {\n if (this.modalRef) {\n if (this.currentFixtureId !== eventData.fixture?.id) {\n this.modalRef.updateData({ detailedEventModel: eventData });\n this.currentFixtureId = eventData.fixture?.id;\n }\n } else {\n this.previousUrl = this.trySetPreviousUrl(urlHistory);\n this.modalRef = this.openModal(eventData, route);\n this.modalRef.result.finally(() => {\n this.modalRef = undefined;\n this.currentFixtureId = undefined;\n });\n }\n }\n\n close(): void {\n if (this.previousUrl) {\n this.location.replaceState(this.previousUrl);\n }\n\n this.modalAnimationHelper.addSlideOutHorizontal();\n this.timerService.setTimeoutOutsideAngular(() => {\n this.modalRef?.close();\n }, 350);\n }\n\n private openModal(detailedEventModel: DetailedEventViewModel, route: ActivatedRouteSnapshot): ModalRef {\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: 'modal-popup event-details-modal',\n fit: false,\n showDialogHeader: false,\n closeOnChildPopup: false,\n showBottomNav: true,\n headerSelector: 'event-details-modal',\n gestures: true,\n scrollFreezeType: ScrollFreezeServiceTypes.None,\n };\n return this.modalDialogService.openDialog(EventDetailsModalComponent, { settings, data: { detailedEventModel, route } });\n }\n\n private trySetPreviousUrl(urlHistory?: string[]): string | undefined {\n const nonEdpUrls = urlHistory?.filter((url) => !url.includes('/events'));\n if (nonEdpUrls && nonEdpUrls.length !== 0) {\n return nonEdpUrls[nonEdpUrls.length - 1];\n }\n return undefined;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { firstValueFrom } from 'rxjs';\n\nimport { MarqueeTileService } from '../highlights-marquee/marquee-tile.service';\nimport { DetailedEventViewModel } from './event-details-common.models';\nimport { EventDetailsService } from './event-details.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsViewModelFetcher {\n constructor(\n protected eventDetailsService: EventDetailsService,\n protected marqueeTileService: MarqueeTileService,\n ) {}\n\n async get(eventId: string, promotedTemplates: number[]): Promise {\n const marqueeAvailable = await firstValueFrom(this.marqueeTileService.hasForFixture(eventId));\n\n const result: DetailedEventViewModel = {\n hasMarqueeAvailable: marqueeAvailable,\n promotedTemplate: promotedTemplates,\n tiles: [],\n };\n\n const response = await this.eventDetailsService.getModel(eventId);\n if (response?.model) {\n result.model = response.model;\n result.preCreated = response.preCreated;\n result.virtualCompetitionDetails = response.virtualCompetitionDetails;\n result.fixture = response.fixture;\n result.betBuilderFixture = response.betBuilderFixture;\n result.hasMarqueeAvailable = !response.model.live && marqueeAvailable;\n }\n\n return result;\n }\n\n resolve(route: ActivatedRouteSnapshot): Promise {\n const parseParams = (name: string) => route?.queryParamMap?.get(name) || '';\n\n const eventId = route.params.event as string;\n const promotedTemplate = parseParams('promotedTemplate')\n .split(',')\n .filter((template) => !!template)\n .map((template) => parseInt(template));\n\n return this.get(eventId, promotedTemplate);\n }\n}\n","import { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { firstValueFrom } from 'rxjs';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsViewModelFetcher } from '../event-details-common/event-details-view-model-fetcher.service';\nimport { NavigationLayoutService } from './navigation-layout.service';\n\nexport abstract class BaseEventDetailsResolver {\n constructor(\n protected navLayoutService: NavigationLayoutService,\n protected eventDetailsViewModelResolver: EventDetailsViewModelFetcher,\n protected sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n async resolve(route: ActivatedRouteSnapshot): Promise {\n const result = await this.baseResolve(route);\n\n if (result.model) {\n this.navLayoutService.register(result.model);\n } else {\n this.navLayoutService.unregister();\n }\n\n return result;\n }\n\n async baseResolve(route: ActivatedRouteSnapshot): Promise {\n const [result] = await Promise.all([\n this.eventDetailsViewModelResolver.resolve(route).then((vm) => this.extendViewModel(route, vm)),\n this.loadStyles(),\n firstValueFrom(this.sitecoreEventDetails.whenReady),\n ]);\n return result;\n }\n\n abstract loadStyles(): Promise;\n\n abstract extendViewModel(route: ActivatedRouteSnapshot, detailedViewModel: DetailedEventViewModel): Promise;\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { EpcotConfigService } from './epcot-config.service';\n\n@Injectable()\nexport class EDPScoreboardConfigService {\n constructor(\n private device: DeviceService,\n private epcotConfigService: EpcotConfigService,\n private eventDetailsConfig: EventDetailsConfig,\n ) {}\n\n isNewEDPScoreboardEnabled(): boolean {\n return (\n this.epcotConfigService.isEnabled() &&\n this.eventDetailsConfig.isNewScoreboardEnabled &&\n this.device.isMobilePhone &&\n !this.device.isTablet\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationStateService {\n private readonly PREMATCH_NAV = 'PREMATCH_NAV';\n private readonly LIVE_NAV = 'LIVE_NAV';\n private currentRegisteredNavigation = '';\n\n setLeftNavigation(live: boolean): void {\n if (live) {\n this.currentRegisteredNavigation = this.LIVE_NAV;\n } else {\n this.currentRegisteredNavigation = this.PREMATCH_NAV;\n }\n }\n\n removeLeftNavigation(): void {\n this.currentRegisteredNavigation = '';\n }\n\n get isPrematchNavRegistered(): boolean {\n return this.currentRegisteredNavigation === this.PREMATCH_NAV;\n }\n\n get isLiveNavRegistered(): boolean {\n return this.currentRegisteredNavigation === this.LIVE_NAV;\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\n\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { EventDetailsSitemapBinding } from './event-details-sitemap.models';\nimport { EventDetailsSitemapModule } from './event-details-sitemap.module';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsSitemapComponentLoaderService extends ComponentLoaderService {\n moduleName = 'EventDetailsSitemapModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getModule(): Promise> {\n return import('./event-details-sitemap.module').then((m) => m.EventDetailsSitemapModule);\n }\n\n getEventDetailsSitemapComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.eventDetailsSitemapComponent, 'event-details-sitemap');\n }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\nimport { SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { find, isNaN, toNumber } from 'lodash-es';\n\nimport { EventMarketsTabBarItem } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\nimport { MarketUrlParam } from '../../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsMarketQueryService {\n private marketUrlToSetTab: StringDictionary = {\n [MarketUrlParam.BetBuilder]: SetTab.BetBuilder,\n [MarketUrlParam.MyBets]: SetTab.MyBets,\n [MarketUrlParam.Sgp]: SetTab.Sgp,\n };\n\n constructor(\n private urlService: UrlService,\n private location: Location,\n private eventDetailConfig: EventDetailsConfig,\n ) {}\n\n getMarketSetFromQuery(): T | undefined {\n const queryMarket = this.getQueryString();\n\n if (queryMarket) {\n const splitTags = this.getTagsFromQueryString();\n const lastTag = splitTags.pop();\n\n const parsed = lastTag ? this.marketUrlToSetTab[lastTag] || toNumber(lastTag) : undefined;\n\n if (isNaN(parsed) && this.eventDetailConfig.enableSitemapNavigation) {\n return lastTag as T;\n }\n\n return parsed;\n }\n\n return;\n }\n\n getQueryString(): string | undefined {\n const currentUrl = this.urlService.current();\n let market = currentUrl.search.get('market');\n if (market) {\n market = this.marketUrlToSetTab[market]?.toString() ?? market;\n }\n\n return market ?? undefined;\n }\n\n getTagsFromQueryString(queryString?: string): string[] {\n const splitTags = (queryString ? queryString.split(':') : this.getQueryString()?.split(':')) ?? [];\n const tags = [];\n\n for (const tag of splitTags) {\n if (tag === '') {\n break;\n }\n\n tags.push(tag);\n }\n\n return tags;\n }\n\n cleanMyBetsQueryString(setTabs: EventMarketsTabBarItem[]): void {\n const current = this.urlService.current();\n if (!setTabs.find((tab) => tab.id === SetTab.MyBets) && current.search.get('market') === MarketUrlParam.MyBets) {\n current.search.delete('market');\n this.location.replaceState(current.path(), current.search.toString());\n }\n }\n\n cleanQueryString(cleanLastTag = false): void {\n const current = this.urlService.current();\n const marketInUrl = current.search.get('market');\n\n if (marketInUrl) {\n const tags = marketInUrl.split(':');\n if (cleanLastTag && tags.length > 1) {\n tags.pop();\n current.search.set('market', tags.join(':'));\n this.location.replaceState(current.path(), current.search.toString());\n\n return;\n }\n }\n\n current.search.delete('market');\n this.location.replaceState(current.path(), current.search.toString());\n }\n\n setQueryString(setTabs: EventMarketsTabBarItem[], activeTab?: EventMarketsTabBarItem): void {\n const active = activeTab ?? find(setTabs, (tab) => !!tab.active);\n let replace = false;\n\n if (!active) {\n return;\n }\n\n const current = this.urlService.current();\n const market = current.search.get('market');\n const currentMarket = active.queryString ?? active.id.toString();\n\n if (active.id === SetTab.BetBuilder || active.id === SetTab.MyBets) {\n if (current.search.has('promotedTemplate')) {\n current.search.delete('promotedTemplate');\n replace = true;\n }\n\n if (active.id === SetTab.BetBuilder && market !== MarketUrlParam.BetBuilder) {\n current.search.set('market', MarketUrlParam.BetBuilder);\n replace = true;\n }\n\n if (active.id === SetTab.MyBets && market !== MarketUrlParam.MyBets) {\n current.search.set('market', MarketUrlParam.MyBets);\n replace = true;\n }\n } else if (active.isSgp && !this.eventDetailConfig.enableSitemapNavigation) {\n current.search.set('market', MarketUrlParam.Sgp);\n replace = true;\n } else if (market !== currentMarket) {\n current.search.set('market', currentMarket);\n replace = true;\n }\n\n if (replace) {\n this.location.replaceState(current.path(), current.search.toString());\n }\n }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { getReverseEnum } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService, UrlService } from '@frontend/vanilla/core';\n\nimport { FeatureUrl } from '../../event-details-common/event-details-common.models';\nimport { FeatureTab } from '../../event-details-common/scoreboard/scoreboard-media-tracking.service';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\n\n@Injectable({ providedIn: 'root' })\nexport class HeaderNavigationUrlService {\n constructor(\n private urlService: UrlService,\n private urlHelper: UrlHelperService,\n private location: Location,\n private timerService: TimerService,\n private eventDetailsConfig: EventDetailsConfig,\n ) {}\n\n updateCurrentUrl(event: EventModel, tabBarItem: TabBarItem): void {\n if (this.eventDetailsConfig.showInOverlay) {\n this.timerService.setTimeoutOutsideAngularZone(() => {\n this.updateCurrentUrlInternal(event, tabBarItem);\n });\n } else {\n this.updateCurrentUrlInternal(event, tabBarItem);\n }\n }\n\n private updateCurrentUrlInternal(event: EventModel, tabBarItem: TabBarItem): void {\n const typedReverseFeatureTab = getReverseEnum(FeatureTab);\n const tab = FeatureUrl[typedReverseFeatureTab[tabBarItem.id]];\n\n const url = this.urlHelper.getEventUrl(event);\n const search = this.urlService.current().search;\n\n search.set('tab', tab);\n this.location.replaceState(url, search.toString());\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventModel, MyMarketModel, SportOptionGroup, SportOptionGroupOrder } from '@frontend/sports/betting-offer/feature/model';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { sortBy } from 'lodash-es';\n\nimport { EventMarketsTabBarItem } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MarketGroupOrderService {\n constructor(protected localStorage: LocalStoreService) {}\n marketGroupOrderStorageKey = 'sia_marketgroup_order';\n\n getSortedMarketTabs(event: EventModel, tabs: EventMarketsTabBarItem[]): EventMarketsTabBarItem[] {\n const marketGroupOrder: MyMarketModel = this.localStorage.get(this.marketGroupOrderStorageKey) as MyMarketModel;\n\n return marketGroupOrder ? this.sortMarketsTabOrder(event, marketGroupOrder, tabs) : tabs;\n }\n\n private getTabsOrderBySportId(event: EventModel, marketGroupOrder: MyMarketModel): number[] {\n const sportTabsOrder = event.live ? marketGroupOrder.live : marketGroupOrder.prematch;\n if (!sportTabsOrder || Object.keys(sportTabsOrder).length === 0) {\n return [];\n }\n\n return this.isSportOptionGroupOrder(sportTabsOrder) ? sportTabsOrder[event.sport.id] : [];\n }\n\n private isSportOptionGroupOrder(sportTabsOrder: SportOptionGroup | SportOptionGroupOrder): sportTabsOrder is SportOptionGroupOrder {\n const firstVal = Object.values(sportTabsOrder)[0][0];\n\n return firstVal != null && typeof firstVal === 'number';\n }\n\n private sortMarketsTabOrder(event: EventModel, marketGroupOrder: MyMarketModel, tabs: EventMarketsTabBarItem[]): EventMarketsTabBarItem[] {\n const tabsOrderBySportId = this.getTabsOrderBySportId(event, marketGroupOrder);\n\n if (!tabsOrderBySportId || !tabsOrderBySportId.length) {\n return tabs;\n }\n\n tabsOrderBySportId.forEach((marketTab, index) => {\n const tabBarItem = tabs.find((tab) => tab.id === marketTab && tab.id !== 0);\n if (tabBarItem) {\n tabBarItem.marketTabOrder = index + 1;\n }\n });\n\n return sortBy(tabs, (tab) => tab.marketTabOrder);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetBuilderProvider } from '@cds/betting-offer/add-ons';\nimport { EventDetailsTags, EventModel, EventSitemapSet, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { AngstromTagIdValues } from '@frontend/sports/betting-offer/feature/types';\nimport {\n BetBuilderConfig,\n EventDetailsConfig,\n MarketGroupingConfig,\n PriceBoostConfig,\n Sitecore,\n SitecoreEventDetailsConfig,\n} from '@frontend/sports/common/client-config-data-access';\nimport { NumberDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { isEmpty } from 'lodash-es';\n\nimport { BetBuilderConfigService } from '../../betbuilder/services/betbuilder-config.service';\nimport { EventDetailsService } from '../../event-details-common/event-details.service';\nimport { EventMarketsTabBarItem } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\nimport { EventDetailsSitemapModel } from '../../event-details-sitemap/event-details-sitemap.models';\nimport { MyBetsSummaryService } from '../../my-bets-base/my-bets-summary.service';\nimport { MarketGroupOrderService } from '../market-group-order/market-group-order.service';\n\ninterface EventOptions {\n canAddMybets: boolean;\n canAddBetBuilder: boolean;\n customizePrecreatedTab?: boolean;\n currentSetId?: string | number;\n desiredSetId?: string | number;\n icon?: string;\n currentSubSetId?: string;\n}\n\nenum SitecoreOrderMapping {\n AllMarkets = 'AllMarkets',\n Ogp = 'OGP',\n MyBets = 'MyBets',\n MyMarkets = 'MyMarket',\n Other = 'Other',\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HeaderService {\n private readonly marketGroupsWithNewBadge: NumberDictionary = {};\n private readonly defaultItemIds: (SetTab | string)[] = [SetTab.All, SetTab.BetBuilder, SetTab.MyBets];\n\n constructor(\n private sitecore: Sitecore,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private betBuilderConfig: BetBuilderConfig,\n private marketGroupingConfig: MarketGroupingConfig,\n private mybetsSummary: MyBetsSummaryService,\n protected localStorage: LocalStoreService,\n private eventDetailsService: EventDetailsService,\n private marketGroupOrderService: MarketGroupOrderService,\n private betBuilderConfigService: BetBuilderConfigService,\n private eventDetailsConfig: EventDetailsConfig,\n private priceBoostConfig: PriceBoostConfig,\n ) {\n this.marketGroupingConfig.marketGroupsWithNewBadge?.forEach((x) => {\n this.marketGroupsWithNewBadge[x.sportId] = x.marketGroupIds;\n });\n }\n\n getSetTabs(\n event: EventModel,\n options: EventOptions,\n tagsFromQueryString?: string[],\n buildDefaultTabs: boolean = true,\n ): T[] {\n if (!event || !event.optionSets || (this.eventDetailsConfig.enableSitemapNavigation && !event.sitemapSets)) {\n return [];\n }\n let tabs: any[];\n if (this.eventDetailsConfig.enableSitemapNavigation) {\n tabs = this.getEventDetailsSitemap(event, tagsFromQueryString);\n } else {\n tabs = this.getOptionsSetTabs(event, options);\n }\n\n if (buildDefaultTabs) {\n tabs = this.tryAddDefaultTabs(tabs, event, options);\n }\n\n if (options.customizePrecreatedTab) {\n this.addPrecreatedTabStyles(event, tabs);\n }\n\n // it can be 0\n if (options.desiredSetId !== undefined) {\n const desiredSetId = options.desiredSetId === SetTab.Sgp ? tabs.find((x) => x.isSgp)?.id : options.desiredSetId;\n if (tabs.some((t) => t.id.toString() === desiredSetId?.toString())) {\n tabs.forEach((t) => (t.active = t.id.toString() === desiredSetId?.toString()));\n } else if (tabs.some((t) => t.showSeparator)) {\n tabs.forEach((t) => (t.active = !!t.showSeparator));\n }\n } else if (options.currentSetId !== undefined) {\n tabs.forEach((t) => (t.active = t.id.toString() === options.currentSetId?.toString()));\n }\n\n if (this.eventDetailsConfig.enableSitemapNavigation) {\n const isOnLowerLevel = tagsFromQueryString && tagsFromQueryString?.length >= 1 && !!tabs.some((t) => t.showSeparator);\n tabs = this.applySitemapSitecoreTabOrder(tabs, event.sport.id.toString(), !!isOnLowerLevel);\n\n if (!isOnLowerLevel) {\n const firstNonDefaultIndex = tabs?.findIndex((i) => !this.defaultItemIds.includes(i.id));\n tabs[firstNonDefaultIndex].defaultPill = true;\n tabs[firstNonDefaultIndex].hasChildren = false;\n\n if (!tabs.some((t) => t.active)) {\n tabs.forEach((t) => (t.active = !!t.defaultPill));\n }\n } else if (tabs.some((t) => t.showSeparator && t.id.toString() === AngstromTagIdValues.Sgp)) {\n const defaultLandingPill = tabs.find((t) => t.id.toString() === AngstromTagIdValues.Popular);\n\n if (defaultLandingPill) {\n defaultLandingPill.defaultPill = true;\n }\n }\n }\n\n return tabs;\n }\n\n private addPrecreatedTabStyles(event: EventModel, tabs: T[]) {\n const precreatedBABTab = tabs?.find((tab) => tab.id === event.optionSets.find((set) => set.isPrecreated)?.id);\n if (precreatedBABTab) {\n precreatedBABTab.overrideStyles = {\n inactiveStyles: {\n color: this.sitecoreEventDetails.eventDetails.PreCreatedBABTabTextColor,\n borderColor: this.sitecoreEventDetails.eventDetails.PreCreatedBABTabBackgroundColor,\n backgroundColor: this.sitecoreEventDetails.eventDetails.PreCreatedBABTabBackgroundColor,\n },\n };\n }\n }\n\n private applySitemapSitecoreTabOrder(tabs: EventMarketsTabBarItem[], sportId: string, isOnLowerLevel: boolean): EventMarketsTabBarItem[] {\n let order: EventDetailsSitemapModel[] = [];\n const sportOrder =\n this.sitecoreEventDetails.sitemapOrder && this.sitecoreEventDetails.sitemapOrder.find((sport) => sport.key === `${sportId}`);\n\n if (!sportOrder || !sportOrder.children?.length) {\n return tabs;\n }\n\n const separatorIndex = tabs.findIndex((tab) => tab.showSeparator);\n\n const tags = isOnLowerLevel ? tabs[separatorIndex].queryString?.split(':') : [];\n\n order = tags && tags.length ? this.getChildrenOfLastTag(tags, sportOrder.children) : sportOrder.children;\n\n if (isEmpty(order) || tabs.length <= 2) {\n return tabs;\n }\n\n let tabsToOrder: EventMarketsTabBarItem[] = [];\n\n if (separatorIndex !== -1) {\n tabsToOrder = tabs.slice(separatorIndex + 1);\n tabs = tabs.slice(0, separatorIndex + 1);\n } else {\n tabsToOrder = tabs;\n tabs = [];\n }\n\n tabsToOrder.sort((a, b) => {\n const aId = this.getTagIdValue(a.id);\n const bId = this.getTagIdValue(b.id);\n const indexA = order.findIndex((o) => o.key.toLowerCase() === aId.toLowerCase());\n const indexB = order.findIndex((o) => o.key.toLowerCase() === bId.toLowerCase());\n\n return indexA !== -1 && indexB !== -1 ? indexA - indexB : indexB - indexA;\n });\n\n return [...tabs, ...tabsToOrder];\n }\n\n private getTagIdValue(tab: string | number): string {\n switch (tab) {\n case SetTab.All:\n return SitecoreOrderMapping.AllMarkets;\n case SetTab.BetBuilder:\n return SitecoreOrderMapping.Ogp;\n case SetTab.MyBets:\n return SitecoreOrderMapping.MyBets;\n case SetTab.MyMarkets:\n return SitecoreOrderMapping.MyMarkets;\n case SetTab.Other:\n return SitecoreOrderMapping.Other;\n default:\n return tab.toString();\n }\n }\n\n private getChildrenOfLastTag(tags: string[], order: EventDetailsSitemapModel[]): EventDetailsSitemapModel[] {\n if (tags.length === 0) {\n return order;\n }\n\n const lastKey = tags.shift();\n const matchingChild = order?.find((child) => child.key.toLowerCase() === lastKey?.toLowerCase());\n\n return matchingChild && matchingChild?.children ? this.getChildrenOfLastTag(tags, matchingChild.children) : [];\n }\n\n private getOptionsSetTabs(event: EventModel, options: EventOptions): EventMarketsTabBarItem[] {\n let tabs: EventMarketsTabBarItem[] = event.optionSets.map((optionSet, index) => ({\n id: optionSet.id,\n title: optionSet.name,\n active: index === 0,\n marketTabOrder: optionSet.id,\n hasNewBadge: this.marketGroupHasNewBadge(event.sport.id, optionSet.storageId),\n subNavigationTabs: optionSet.tags?.map((t) => {\n return {\n id: t.key,\n name: t.value,\n active: t.key === options.currentSubSetId,\n };\n }),\n isSgp: optionSet.marketGroupTag?.key === AngstromTagIdValues.Sgp,\n showSignPost: this.showSignPostForPriceBoost(optionSet.marketGroupTag?.key),\n\n count: this.mapCountForPriceBoost(optionSet.marketGroupTag?.key, event.live, event.priceBoostCount ?? 0),\n }));\n tabs = this.marketGroupOrderService.getSortedMarketTabs(event, tabs);\n\n return tabs;\n }\n\n private tryAddDefaultTabs(tabs: T[], event: EventModel, options: EventOptions): T[] {\n const betBuilderTabPosition = 1;\n if (\n event.betBuilderInfo?.betBuilderProvider === BetBuilderProvider.Default &&\n options.canAddBetBuilder &&\n !event.live &&\n event.getBetBuilderConsumerFixtureId() &&\n this.betBuilderConfig.isBetBuilderEnabledForSport?.includes(event.sport.id) &&\n (!this.betBuilderConfigService.useBetBuilderInEntainUI(event.sport.id) || !!event.sportcastId)\n ) {\n tabs.splice(betBuilderTabPosition, 0, {\n id: SetTab.BetBuilder,\n title: this.sitecoreEventDetails.eventDetails.BetBuilderTabName,\n hasNewBadge: this.betBuilderConfig.isBetBuilderNewBadgeEnabledForSport?.includes(event.sport.id),\n classes: this.betBuilderConfigService.useBetBuilderInEntainUI(event.sport.id) ? 'ogp-bet-builder-tab' : 'bet-builder-tab-style',\n icon: options.icon,\n } as T);\n }\n\n const optionGroups = this.eventDetailsService.getOptionGroupForMyMarkets(event);\n if (optionGroups?.length) {\n if (tabs.length && tabs[betBuilderTabPosition].id === SetTab.BetBuilder) {\n tabs.splice(betBuilderTabPosition + 1, 0, { id: SetTab.MyMarkets, title: this.sitecoreEventDetails.eventDetails.MyMarkets } as T);\n } else {\n tabs.splice(betBuilderTabPosition, 0, { id: SetTab.MyMarkets, title: this.sitecoreEventDetails.eventDetails.MyMarkets } as T);\n }\n }\n\n if (tabs.length > 1) {\n tabs.unshift({ id: SetTab.All, title: this.sitecoreEventDetails.eventDetails.AllMarketsTemplate } as T);\n }\n\n const myBetsTab = this.buildMybetsTab(event);\n if (options.canAddMybets && myBetsTab.count) {\n tabs.unshift(myBetsTab as T);\n }\n\n return tabs;\n }\n\n private getEventDetailsSitemap(event: EventModel, queryStringTags?: string[]): EventMarketsTabBarItem[] {\n if (!queryStringTags || !queryStringTags.length) {\n return this.buildMarketTabBarItems(event.sitemapSets!, event.live, event.priceBoostCount);\n }\n\n let tags = event.sitemapSets!;\n const parents: EventMarketsTabBarItem[] = [];\n let queryString = '';\n\n for (let i = 0; i < queryStringTags.length; i++) {\n const tag = queryStringTags[i];\n const currentTag = tags.find((set) => set.id.toString() === tag);\n\n if (!currentTag || currentTag.children!.length === 0) {\n break;\n }\n\n parents.push(this.mapMarketTabBarItem(currentTag, event.live, queryString, event.priceBoostCount));\n queryString += i === 0 ? tag : `:${tag}`;\n tags = currentTag.children!;\n }\n\n if (parents.length > 0) {\n parents[parents.length - 1].showSeparator = true;\n }\n\n return [...parents, ...this.buildMarketTabBarItems(tags, event.live, event.priceBoostCount, queryString)];\n }\n\n private buildMarketTabBarItems(\n sets: EventSitemapSet[],\n isLive: boolean,\n priceBoostCount?: number,\n parentQueryString?: string,\n ): EventMarketsTabBarItem[] {\n return sets.map((set) => {\n const tabBar = this.mapMarketTabBarItem(set, isLive, parentQueryString, priceBoostCount);\n\n return tabBar;\n });\n }\n\n private mapMarketTabBarItem(set: EventSitemapSet, isLive: boolean, parentQueryString?: string, priceBoostCount?: number): EventMarketsTabBarItem {\n return {\n id: set.id,\n title: set.name,\n marketGroups: set.groups,\n queryString: parentQueryString ? `${parentQueryString}:${set.id}` : set.id.toString(),\n hasChildren: set.children && set.children.length > 0,\n isSgp: set.id === AngstromTagIdValues.Sgp || parentQueryString === AngstromTagIdValues.Sgp,\n showSignPost: this.showSignPostForPriceBoost(set.id),\n count: this.mapCountForPriceBoost(set.id, isLive, priceBoostCount ?? 0),\n };\n }\n\n private mapCountForPriceBoost(key: string | number | undefined, isLive: boolean, priceBoostCount: number): number {\n if (this.showSignPostForPriceBoost(key) && priceBoostCount > 0) {\n if (isLive) {\n return this.priceBoostConfig.showCountForLive ? priceBoostCount : 0;\n } else {\n return priceBoostCount;\n }\n }\n\n return 0;\n }\n\n private showSignPostForPriceBoost(key: string | number | undefined) {\n return this.priceBoostConfig.isEnabled && key === EventDetailsTags.PriceBoost;\n }\n\n private buildMybetsTab(event: EventModel): EventMarketsTabBarItem {\n const betsCount = this.mybetsSummary.getOpenBetsCount(event);\n const myBetsTitle = this.sitecore.globalMessages.MyBetsTitle;\n\n const tab = {\n id: SetTab.MyBets,\n title: this.eventDetailsConfig.enableSitemapNavigation ? `${myBetsTitle} (${betsCount})` : myBetsTitle,\n count: betsCount,\n };\n\n return tab;\n }\n\n marketGroupHasNewBadge(sportId: number, marketGroupId: string) {\n return !!this.marketGroupsWithNewBadge[sportId]?.find((mg) => mg === marketGroupId);\n }\n}\n","@if (subNavigationTabs?.length) {\n \n
\n @for (item of subNavigationTabs; track item.id) {\n \n }\n
\n
\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\nimport { EventMarketsTabBarItem, SubTab } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\n\n@Component({\n selector: 'ms-header-sub-navigation',\n templateUrl: './header-sub-navigation.component.html',\n styleUrls: ['./header-sub-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderSubNavigationComponent implements OnChanges {\n subNavigationTabs: SubTab[] | undefined;\n @Input() tabs: EventMarketsTabBarItem[];\n @Output() tabChange = new EventEmitter();\n\n ngOnChanges(): void {\n this.subNavigationTabs = this.active?.subNavigationTabs;\n if (this.subNavigationTabs?.length && !this.activeSubTab) {\n this.subNavigationTabs[0].active = true;\n this.tabSelected(undefined, this.subNavigationTabs[0].id);\n }\n }\n\n tabSelected($event: Event | undefined, tabId: string): void {\n this.active?.subNavigationTabs?.forEach((tab) => (tab.active = tab.id === tabId));\n this.tabChange.emit(tabId);\n }\n\n get active(): EventMarketsTabBarItem | undefined {\n return this.tabs && this.tabs.find((tab) => !!tab.active);\n }\n\n get activeSubTab(): SubTab | undefined {\n return this.active?.subNavigationTabs?.find((tab) => !!tab.active);\n }\n}\n","\n\n 1\"\n [tabs]=\"setTabs\"\n [event]=\"event\"\n (activeTab)=\"setTabSelected($event)\">\n\n\n\n\n \n \n \n\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel, EventOptionSet, EventSitemapSet, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { AngstromTagIdValues } from '@frontend/sports/betting-offer/feature/types';\nimport { EventDetailsConfig, MyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { find, has } from 'lodash-es';\nimport { distinctUntilKeyChanged, filter } from 'rxjs';\n\nimport { ComponentProxy } from '../../deferred/component-loader.service';\nimport { DispatcherEvent, FeatureUrl, HeaderContentDensity } from '../../event-details-common/event-details-common.models';\nimport { EventDetailsHelperService } from '../../event-details-common/event-details-helper.service';\nimport { HeaderNavigationService } from '../../event-details-common/header-navigation/header-navigation.service';\nimport { EventMarketsTabBarItem } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\nimport { EventDetailsSitemapComponentLoaderService } from '../../event-details-sitemap/event-details-sitemap-component-loader.service';\nimport { EventDetailsSitemapBinding } from '../../event-details-sitemap/event-details-sitemap.models';\nimport { AdaptiveLayoutService, AdaptiveLayoutState } from '../../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { MyBetsSummaryService } from '../../my-bets-base/my-bets-summary.service';\nimport { TabBarComponent } from '../../tab-bar/tab-bar.component';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { BetBuilderTrackingValues } from '../bet-builder-v2/bet-builder-tracking';\nimport { EventNavigation, SubNavigationPayload } from '../event-details-dispatcher-events';\nimport { EventDetailsMarketQueryService } from './event-details-market-query.service';\nimport { HeaderNavigationUrlService } from './header-navigation-url.service';\nimport { HeaderService } from './header.service';\n\n@Component({\n selector: 'ms-header',\n templateUrl: 'header.component.html',\n})\nexport class HeaderComponent implements OnChanges, OnDestroy, OnInit, AfterViewInit {\n @Input() isLive: boolean;\n @Input() event: EventModel;\n @Input() optionSets: EventOptionSet[] = [];\n @Input() isNewEDPScoreboard = false;\n\n @HostBinding('class') className = 'event-detail-header';\n @HostBinding('class.with-header-navigation') withHeaderNavigation = false;\n\n @HostBinding('class.sticky') sticky: boolean;\n\n @Input() set: string | number;\n @Output() setChange = new EventEmitter<{\n setId: string | number;\n groupedSetsIds?: number[];\n subSetId?: string;\n tags?: string[];\n isSgp?: boolean;\n defaultTab?: number | string;\n }>();\n\n @Output() featureChange = new EventEmitter();\n\n feature: TabBarItem;\n featureTabs: TabBarItem[];\n setTabs: EventMarketsTabBarItem[];\n isSitemapEnabled: boolean;\n sitemapComponent?: ComponentProxy;\n private isVideoPinned = false;\n isHeaderSubNavigationEnabled: boolean;\n private readonly destroyRef = inject(DestroyRef);\n\n @ViewChildren(TabBarComponent) private tabMenus: QueryList;\n\n constructor(\n public headerNavigation: HeaderNavigationService,\n private headerService: HeaderService,\n private trackingService: TrackingService,\n private timer: TimerService,\n private myBetsSummary: MyBetsSummaryService,\n private urlService: UrlService,\n private columnLayout: ColumnLayoutService,\n private adaptiveLayout: AdaptiveLayoutService,\n private headerNavigationUrlService: HeaderNavigationUrlService,\n private eventDetailsHelperService: EventDetailsHelperService,\n private changeRef: ChangeDetectorRef,\n private dispatcher: DispatcherService,\n private eventDetailConfig: EventDetailsConfig,\n private mybetsConfig: MyBetsConfig,\n private sitemapLoader: EventDetailsSitemapComponentLoaderService,\n private eventDetailsMarketQueryService: EventDetailsMarketQueryService,\n ) {\n this.isSitemapEnabled = this.eventDetailConfig.enableSitemapNavigation;\n if (this.isSitemapEnabled) {\n this.sitemapComponent = this.sitemapLoader.getEventDetailsSitemapComponent();\n this.sitemapComponent?.subscribeToOutputs({ toggleSitemapItem: (item: EventMarketsTabBarItem) => this.toggleSitemap(item) });\n }\n\n this.headerNavigation.selectedTab\n .pipe(\n filter((x) => !!x),\n takeUntilDestroyed(),\n )\n .subscribe((x) => this.featureTabSelected(x!));\n\n this.dispatcher\n .on(DispatcherEvent.EventDetails.SetTab)\n .pipe(takeUntilDestroyed())\n .subscribe((setId) => {\n const newSetId = setId === SetTab.Sgp ? (this.setTabs.find((x) => x.isSgp)?.id ?? 0) : setId;\n if (newSetId === SetTab.BetBuilder && newSetId === this.set) {\n return;\n }\n\n this.setTabActivate(newSetId);\n const active = this.setTabs.find((tab) => tab.active);\n if (active) {\n this.setTabSelected(active);\n }\n });\n\n this.dispatcher\n .on(EventNavigation.SetSubTabs)\n .pipe(takeUntilDestroyed())\n .subscribe((payload) => {\n const tab = this.setTabs.find((t) => t.id === payload.tabId);\n if (tab) {\n tab.subNavigationTabs = payload.subTabs;\n this.setTabs = this.setTabs.slice(0);\n }\n\n if (this.isSitemapEnabled && tab?.id === SetTab.BetBuilder && tab?.active) {\n this.setBetBuilderSubNavigation(tab, payload);\n }\n });\n\n this.isHeaderSubNavigationEnabled = this.eventDetailConfig.isHeaderSubNavigationEnabled;\n }\n\n ngAfterViewInit(): void {\n this.tabMenus.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((_) => this.tabChanged());\n }\n\n async ngOnInit(): Promise {\n this.adaptiveLayout.stateChange$\n .pipe(distinctUntilKeyChanged('columns'), takeUntilDestroyed(this.destroyRef))\n .pipe(filter((_) => Boolean(this.setTabs && this.setTabs.length)))\n .subscribe(this.layoutColumnsChanged);\n\n return this.init();\n }\n\n tabClicked(tabId: string): void {\n this.dispatcher.dispatch(EventNavigation.SelectSubTab, tabId);\n this.setChange.emit({\n setId: this.set,\n subSetId: this.getActiveSubset(),\n isSgp: this.getActiveTab().isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n\n private toggleSitemap(item: EventMarketsTabBarItem): void {\n if (item.isBetBuilderSubItem && item.active) {\n // Since sportcast tabs are loaded lazily and not on fixture creation and because HeaderService expects tabs to be part of EventModel\n // we cannot treat it like regular sitemap which sets queryString, and instead we just need to dispatch EventNavigation.SelectSubTab\n // so that it triggers betbuilder-market-list group change and market list fetching\n this.tabClicked(item.id.toString());\n\n return;\n }\n\n if (!item.active) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n this.initSetTabs(false);\n } else {\n this.eventDetailsMarketQueryService.setQueryString(this.setTabs, item);\n }\n\n const active = item.active ? item : this.getActiveTab();\n const tags = this.getTagsForItem(active);\n\n this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n tags,\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n\n private initSetTabs(showGoHome: boolean, queryString?: string, buildDefaultTabs?: boolean): void {\n const tags = queryString ? this.eventDetailsMarketQueryService.getTagsFromQueryString(queryString) : [];\n\n if (tags.length === 0) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n }\n\n this.setTabs = this.headerService.getSetTabs(\n this.event,\n {\n canAddMybets: this.shouldHaveMybetsTab(this.adaptiveLayout.current),\n canAddBetBuilder: true,\n desiredSetId: this.eventDetailsMarketQueryService.getMarketSetFromQuery(),\n },\n tags,\n buildDefaultTabs ?? (tags && tags.length <= 1),\n );\n this.sitemapComponent?.update({\n items: this.setTabs.filter((t) => !t.defaultPill),\n showGoHome,\n eventFinished: this.event.isFinished(),\n betBuilderProvider: this.event.betBuilderInfo?.betBuilderProvider,\n });\n }\n\n private async init(): Promise {\n await this.initFeatureTabs();\n\n const queryString = this.eventDetailsMarketQueryService.getQueryString();\n this.initSetTabs(false, queryString);\n\n this.eventDetailsMarketQueryService.cleanMyBetsQueryString(this.setTabs);\n this.setTabActivate(this.set);\n\n if (this.set === -100) {\n // Issue with ExpressionChangedAfterItHasBeenCheckedError\n const active = this.getActiveTab();\n\n if (active.defaultPill) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n } else if (!!queryString && queryString !== active.queryString) {\n this.eventDetailsMarketQueryService.setQueryString(this.setTabs);\n }\n\n const tags = this.getTagsForItem(active);\n\n await this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n subSetId: this.getActiveSubset(),\n tags,\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n\n this.set = active.id;\n }\n\n this.tabChanged();\n\n this.myBetsSummary.summaryUpdate.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.onMyBetsSummaryUpdate());\n }\n\n ngOnDestroy(): void {\n this.headerNavigation.updateSelected();\n }\n\n async ngOnChanges(changes: ISimpleChanges): Promise {\n if (changes.event?.currentValue) {\n if (!changes.event.isFirstChange) {\n const liveStateChanged = changes.isLive?.currentValue !== changes.isLive?.previousValue;\n if (liveStateChanged) {\n this.set = -100;\n this.initSetTabs(false, this.eventDetailsMarketQueryService.getQueryString());\n }\n }\n this.sitemapComponent?.update({\n trackingData: {\n eventId: changes.event.currentValue.id,\n sportId: changes.event.currentValue.sport.id,\n leagueId: changes.event.currentValue.league.id,\n isLive: changes.event.currentValue.live,\n eventName: changes.event.currentValue.name,\n },\n });\n\n if (changes.event.previousValue && changes.event.currentValue.id !== changes.event.previousValue.id) {\n this.set = -100;\n this.init();\n\n return;\n }\n }\n\n const setChange = changes.set;\n if (setChange && !setChange.firstChange) {\n const currentValue = setChange.currentValue;\n const queryString = this.eventDetailsMarketQueryService.getQueryString();\n\n if (queryString !== undefined) {\n const tab = this.setTabs.find((t) => t.id === currentValue);\n\n if (tab?.hasChildren) {\n this.initSetTabs(true, tab.queryString, false);\n } else {\n this.sitemapComponent?.update({ showGoHome: true });\n }\n }\n\n this.setTabActivate(currentValue);\n\n const active = this.getActiveTab();\n if (this.isSgpTabSelected(active)) {\n await this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n tags: this.getTagsForItem(active),\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n }\n\n const optionSetChange = changes.optionSets;\n if (optionSetChange && !optionSetChange.firstChange) {\n this.optionSetsChanged();\n }\n\n const isLiveChange = changes.isLive;\n if (isLiveChange && !isLiveChange.firstChange) {\n await this.initFeatureTabs();\n }\n }\n\n private async initFeatureTabs(): Promise {\n if (this.event) {\n this.featureTabs = await this.headerNavigation.getTabs(this.event);\n }\n }\n\n private onMyBetsSummaryUpdate(): void {\n if (this.shouldHaveMybetsTab(this.adaptiveLayout.current)) {\n this.setTabs = this.headerService.getSetTabs(this.event, {\n canAddMybets: true,\n canAddBetBuilder: true,\n currentSetId: this.set,\n currentSubSetId: this.getActiveSubset(),\n });\n this.sitemapComponent?.update({ items: this.setTabs.filter((t) => !t.defaultPill) });\n }\n this.changeRef.detectChanges();\n }\n\n featureTabSelected(feature: TabBarItem): void {\n this.feature = feature;\n this.featureChange.emit(feature.id);\n this.tabChanged();\n\n // on desktop don't update url\n if (!this.adaptiveLayout.current.hasRightColumn) {\n this.headerNavigationUrlService.updateCurrentUrl(this.event, feature);\n }\n }\n\n setTabSelected(active: EventMarketsTabBarItem): void {\n this.eventDetailsMarketQueryService.setQueryString(this.setTabs, active);\n this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.isSgp ? active.marketGroups : [],\n subSetId: this.getActiveSubset(),\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n this.trackSet(+active.id, active.title!);\n }\n\n densityToggled(density: HeaderContentDensity): void {\n if (density !== HeaderContentDensity.Fullscreen) {\n this.tabChanged();\n }\n }\n\n private layoutColumnsChanged = (state: AdaptiveLayoutState): void => {\n const tags = this.trySetCorrectTags();\n this.setTabs = this.headerService.getSetTabs(\n this.event,\n {\n canAddMybets: this.shouldHaveMybetsTab(state),\n canAddBetBuilder: true,\n currentSetId: this.set,\n currentSubSetId: this.getActiveSubset(),\n },\n tags,\n tags && tags.length <= 1,\n );\n\n const selectedSetInList = this.setTabs.some((t) => t.id === this.set);\n if (!selectedSetInList) {\n this.setTabs.forEach((t) => (t.active = t.id === SetTab.All));\n const active = this.getActiveTab();\n this.set = active.id;\n this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n subSetId: this.getActiveSubset(),\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n };\n\n private shouldHaveMybetsTab(state: AdaptiveLayoutState): boolean {\n return state.columns <= 2 && !this.mybetsConfig.isOpenSummaryLoadingRestricted;\n }\n\n private optionSetsChanged(): void {\n const tags = this.trySetCorrectTags();\n const buildDefaultTabs = tags.length <= 1 && (this.setTabs.every((x) => (x.queryString || '').split(':').length <= 1) || tags.length < 1);\n\n this.setTabs = this.headerService.getSetTabs(\n this.event,\n {\n canAddMybets: this.shouldHaveMybetsTab(this.adaptiveLayout.current),\n canAddBetBuilder: true,\n currentSetId: this.set,\n desiredSetId: this.eventDetailsMarketQueryService.getMarketSetFromQuery(),\n currentSubSetId: this.getActiveSubset(),\n },\n tags,\n buildDefaultTabs,\n );\n\n this.setTabActivate(this.set);\n const active = this.getActiveTab();\n this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n subSetId: this.getActiveSubset(),\n tags: this.getTagsForItem(active),\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n this.sitemapComponent?.update({\n items: this.setTabs.filter((t) => !t.defaultPill),\n showGoHome: tags.length > 0 || active.showSeparator,\n });\n }\n\n private tabChanged(): void {\n this.timer.setAnimationFrame(() => this.setStickyHeader());\n }\n\n private setStickyHeader = (): void => {\n const tab = this.urlService.current().search.get('tab');\n if (tab) {\n if (tab === FeatureUrl.Scoreboard) {\n this.sticky = true;\n }\n if (tab === FeatureUrl.Video) {\n this.sticky = this.isVideoPinned;\n } else {\n this.isVideoPinned = false;\n }\n if (tab === FeatureUrl.Simulation) {\n this.sticky =\n !this.event.runningBallDataId &&\n (!this.eventDetailsHelperService.hasBetRadarVisualization(this.event) ||\n this.eventDetailsHelperService.hasBetRadarStickyAddonVisualization(this.event)) &&\n !this.eventDetailsHelperService.hasImgAnimationVisualization(this.event);\n }\n if (tab === FeatureUrl.Statistics) {\n this.sticky = false;\n }\n } else {\n this.sticky = !this.adaptiveLayout.current.hasRightColumn;\n }\n\n this.sticky = this.isNewEDPScoreboard ? this.isNewEDPScoreboard : this.sticky;\n };\n\n private setTabActivate(active: string | number): void {\n if (active === -100) {\n return;\n }\n const hasActive = find(this.setTabs, (tab) => tab.id === active);\n\n if (!hasActive) {\n const activeTab = find(this.setTabs, (tab) => !has(SetTab, tab.id)) as TabBarItem;\n active = activeTab && activeTab.id;\n this.set = activeTab && activeTab.id;\n }\n\n this.setTabs.forEach((tab) => (tab.active = tab.id === active));\n this.setTabs = this.setTabs.slice(0);\n }\n\n private getActiveTab(): EventMarketsTabBarItem {\n return this.setTabs.filter((tab) => tab.active).shift()!;\n }\n\n private getDefaultTab(): number | string | undefined {\n return this.setTabs?.find((tab) => tab.defaultPill)?.id;\n }\n\n private trackSet(set: number, title: string): void {\n if (set === SetTab.BetBuilder) {\n this.trackingService.update({ [trackingConstants.PAGE_REFERRING_ACTION]: 'BetBuilderTab' });\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.Tab,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.BuildaBet,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.event.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.event.league.id.toString(),\n [trackingConstants.COMPONENT_MARKET_ID]: set,\n });\n } else if (set === SetTab.MyBets) {\n this.trackingService.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]: 'myBets_Event',\n [trackingConstants.PAGE_SITE_SECTION]: 'eventView',\n });\n } else {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'market switcher',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'markets',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'select',\n [trackingConstants.COMPONENT_POSITION_EVENT]: title,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: 'event details page',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'market',\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.event.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.event.league.id.toString(),\n [trackingConstants.COMPONENT_MARKET_ID]: set,\n });\n }\n }\n\n navigateNext(): void {\n if (this.columnLayout.layout.isRightVisible) {\n return;\n }\n\n this.headerNavigation.goNext();\n }\n\n navigatePrevious(): void {\n if (this.columnLayout.layout.isRightVisible) {\n return;\n }\n\n this.headerNavigation.goPrevious();\n }\n\n onVideoPinToggle(isVideoPinned: boolean): void {\n this.isVideoPinned = isVideoPinned;\n this.setStickyHeader();\n }\n\n private getActiveSubset(): string | undefined {\n return this.setTabs?.find((tab) => !!tab.active)?.subNavigationTabs?.find((tab) => !!tab.active)?.id;\n }\n\n private trySetCorrectTags(): string[] {\n const tags = this.eventDetailsMarketQueryService.getTagsFromQueryString();\n const newTags = [];\n\n for (const tag of tags.reverse()) {\n if (!this.tagExists(this.event.sitemapSets, tag) && this.isSitemapEnabled) {\n this.eventDetailsMarketQueryService.cleanQueryString(true);\n } else {\n newTags.push(tag);\n }\n }\n\n return newTags.reverse();\n }\n\n private tagExists(sitemapSets: EventSitemapSet[] = [], tag: string): boolean {\n if (\n Object.values(SetTab)\n .map((x) => x.toString())\n .includes(tag)\n ) {\n return true;\n }\n\n return !!sitemapSets.find((sitemapSet) => sitemapSet.id.toString() === tag || this.tagExists(sitemapSet.children, tag));\n }\n\n private setBetBuilderSubNavigation(tab: EventMarketsTabBarItem, payload: SubNavigationPayload): void {\n if (!payload.subTabs.length) {\n return;\n }\n\n const entryPoint = { ...tab, showSeparator: true, id: payload.subTabs[0].id, parentTabId: tab.id };\n const [, ...betBuilderTabs] = payload.subTabs.map(({ id, name: title }) => ({ id, title }));\n\n this.setTabs = [entryPoint, ...betBuilderTabs];\n this.setTabs.forEach((t) => (t.isBetBuilderSubItem = true));\n this.sitemapComponent?.update({ items: this.setTabs });\n }\n\n private getTagsForItem(active: EventMarketsTabBarItem, queryString?: string): string[] {\n const currentQueryString = queryString ?? active.queryString;\n const tags = this.eventDetailsMarketQueryService.getTagsFromQueryString(currentQueryString);\n tags.shift();\n\n if (this.isSgpTabSelected(active)) {\n this.trySetDefaultSgpContent(tags);\n }\n\n return tags;\n }\n\n private trySetDefaultSgpContent(tags: string[]): void {\n const defaultLandingPill = this.setTabs.find((t) => t.defaultPill);\n if (defaultLandingPill && defaultLandingPill.id.toString() === AngstromTagIdValues.Popular) {\n tags.push(defaultLandingPill.id.toString());\n }\n }\n\n private isSgpTabSelected(active: EventMarketsTabBarItem): boolean {\n return active.id.toString() === AngstromTagIdValues.Sgp;\n }\n}\n","\n\n\n \n\n\n
\n \n
\n\n\n \n -100 || isEventSitemapEnabled\" [ngSwitch]=\"setId\">\n \n \n \n \n \n \n \n \n \n\n 1 && !isNewEDPScoreboard\"\n [title]=\"sitecoreEventDetails.eventDetails.AllBets\"\n [count]=\"totalOptionGroupsCount\"\n (click)=\"setChanged({ setId: setType.All })\" />\n \n \n\n\n\n \n \n \n \n \n \n \n\n \n \n \n \n\n\n\n \n\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, HostBinding, Inject, Input, OnDestroy, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { CrmPromoIdsMap, EventModel, EventOptionGroup, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport {\n CrmConfig,\n EventDetailsConfig,\n MarketGroupingConfig,\n MarqueeConfig,\n SitecoreEventDetailsConfig,\n} from '@frontend/sports/common/client-config-data-access';\nimport { HooksWireup, OnRouteResolve } from '@frontend/sports/common/core/utils/hooks';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { DetailedEventSubscriptionService } from '@frontend/sports/event-subscription/feature/detailed-event-subscription';\nimport { MediaEventSource, MediaModuleContextPage } from '@frontend/sports/grid/media/feature/model';\nimport { MediaApiService } from '@frontend/sports/grid/media/feature/state';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\nimport { HtmlNode } from '@frontend/vanilla/core';\nimport { debounce, find, groupBy, isEqual, keyBy, sortBy } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nimport { BetBuilderPrecreatedModel } from '../betbuilder/model/bet-builder.model';\nimport { SourceOfPick } from '../betslip-base/models/pick-models';\nimport { EDPScoreboardConfigService } from '../common/edp-scoreboard-config.service';\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { CrmPromotionMapperService } from '../crm-promotion-container/crm-promotion-mapper.service';\nimport { CrmPromotionProviderService, PromotionMap } from '../crm-promotion/crm-promotion-provider.service';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { DetailedEventViewModel, ModularEventViewModel, OptionMarketSetData } from '../event-details-common/event-details-common.models';\nimport { EventDetailsViewModelService } from '../event-details-common/event-details-view-model.service';\nimport { EventDetailsService } from '../event-details-common/event-details.service';\nimport { PlayerStatsSubscriptionService } from '../event-subscription/player-stats-subscription-service';\nimport { ScoreboardSubscriptionService } from '../event-subscription/scoreboard-subscription.service';\nimport { AutomatedMarqueeService } from '../highlights-marquee/automated-marquee.service';\nimport { HighlightsMarqueeComponentLoaderService } from '../highlights-marquee/highlights-marquee-component-loader.service';\nimport { HighlightsMarqueePage } from '../highlights-marquee/highlights-marquee-page.enum';\nimport type { HighlightsMarqueeComponent } from '../highlights-marquee/highlights-marquee.component';\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { MarqueeService } from '../highlights-marquee/marquee.service';\nimport { EventViewBinding, MyBetsComponentLoaderService } from '../my-bets/my-bets-component-loader.service';\nimport { ExternalNativeAppService } from '../native-api/external-native-app.service';\nimport { NavigationRouterService } from '../navigation/navigation-router.service';\nimport { TemplatesWithThresholds } from '../option-group/option-group-list.component';\nimport { SheetViewService } from '../option-group/sheet-view.service';\nimport { TabControllerFacadeService } from '../option-sheet-view/store/tab-controller-facade.service';\nimport { PopupManager } from '../popup/popup-manager.service';\nimport { optionContextServiceProviderFactory } from '../shared-priceboost/Services/option-context.service.factory';\nimport { WidgetTrackingService } from '../widget/core/widget-tracking.service';\nimport { BetBuilderTrackingValues } from './bet-builder-v2/bet-builder-tracking';\nimport { BetBuilderOnboardingMessageService } from './bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.service';\nimport { NavigationStateService } from './navigation-state/navigation-state.service';\n\n@HooksWireup()\n@Component({\n selector: 'ms-event-details-main',\n templateUrl: 'event-details.component.html',\n providers: [optionContextServiceProviderFactory(true), EDPScoreboardConfigService, EventDetailsViewModelService],\n})\nexport class EventDetailsComponent extends OnRouteResolve implements AfterViewInit, OnDestroy {\n @HostBinding('class') className = 'event-details';\n @HostBinding('class.poker-nativeapp') isPokerNativeApp = false;\n @HostBinding('class.has-error') hasError = false;\n @HostBinding('class.event-modular-enabled') isEventPageModularEnabled = this.eventDetailsConfig.enableEventPageModular;\n @HostBinding('class.hide-edp-breadcrumbs') hideEDPBreadcrumbs = false;\n\n @Input() set detailedEventModel(value: DetailedEventViewModel) {\n this.onRouteResolved(value);\n }\n\n sourceOfPick = SourceOfPick.EventDetails;\n event?: EventModel;\n promoted: number[];\n promotedMap: { [key: number]: number };\n page: HighlightsMarqueePage = HighlightsMarqueePage.EventDetails;\n\n crmOptionGroupsPromotedMap: { [key: string]: string };\n crmPromoIdsMap: CrmPromoIdsMap = { markets: {}, options: {}, templateIds: {} };\n crmBannerPromotions: Promotion[] = [];\n\n optionGroups: EventOptionGroup[];\n offset: number;\n\n setType = SetTab;\n setMain?: number | string;\n setId: string | number;\n subSet?: string;\n groupedSets?: number[];\n tags?: string[];\n isSgp?: boolean;\n defaultTab?: string;\n\n lastScrollTop = 0;\n isNewEDPScoreboard: boolean;\n\n preCreated?: BetBuilderPrecreatedModel;\n thresholds: TemplatesWithThresholds;\n\n disableAnimation = true;\n myBetsComponent: ComponentProxy;\n totalOptionGroupsCount: number;\n defaultExpandedMarketsCount: number | undefined;\n eventModularVM: ModularEventViewModel;\n isEventPageModularEnabledWithWidgets = false;\n isEventSitemapEnabled = false;\n optionMarketSetData = signal({});\n\n private marqueesEmpty = false;\n private hasMarqueeAvailable: boolean;\n private feature?: number;\n private crmPromotions: Promotion[] = [];\n private subscription?: EventSubscription;\n private isLive = false;\n marqueeComponent: ComponentProxy;\n onboardingVisible$: Observable;\n private isPrecreatedBABTabActive: boolean;\n source: string;\n private tabControllerFacadeService = inject(TabControllerFacadeService);\n private sheetViewService = inject(SheetViewService);\n\n get isMarqueeVisible(): boolean {\n return this.isMainOrAllTab && this.hasMarqueeAvailable && !this.marqueesEmpty && !this.isEventPageModularEnabled;\n }\n\n get isPromotionContainerVisible(): boolean {\n return !!this.crmBannerPromotions.length && !this.isMarqueeVisible && this.isMainOrAllTab && !this.isEventPageModularEnabled;\n }\n\n get isPopupShown(): boolean {\n return this.popupManager.isOpen();\n }\n\n constructor(\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n private timer: TimerService,\n private popupManager: PopupManager,\n private navigationRouter: NavigationRouterService,\n private navigationStateService: NavigationStateService,\n private scrollContainer: ScrollContainerService,\n private eventSubscriptionService: DetailedEventSubscriptionService,\n private scoreboardSubscriptionService: ScoreboardSubscriptionService,\n private helper: EventDetailsService,\n private promotionMapper: CrmPromotionMapperService,\n private promotionProvider: CrmPromotionProviderService,\n private promotionConfig: CrmConfig,\n private marqueeConfig: MarqueeConfig,\n private marqueeService: MarqueeService,\n private eventDetailsConfig: EventDetailsConfig,\n private marketGroupingConfig: MarketGroupingConfig,\n private mediaApi: MediaApiService,\n private externalNativeAppService: ExternalNativeAppService,\n private changeRef: ChangeDetectorRef,\n private automatedMarqueeService: AutomatedMarqueeService,\n loader: MyBetsComponentLoaderService,\n route: ActivatedRoute,\n private marqueeLoader: HighlightsMarqueeComponentLoaderService,\n private widgetTrackingService: WidgetTrackingService,\n private eventDetailsModelService: EventDetailsViewModelService,\n private htmlNode: HtmlNode,\n private edpScoreboardConfigService: EDPScoreboardConfigService,\n private onboardingMessageService: BetBuilderOnboardingMessageService,\n private playerStatsSubscriptionService: PlayerStatsSubscriptionService,\n @Inject(DOCUMENT) private readonly document: Document,\n ) {\n super(route);\n\n this.myBetsComponent = loader.getEventViewComponent();\n this.isPokerNativeApp = this.externalNativeAppService.isPokerNativeApp();\n this.isEventSitemapEnabled = this.eventDetailsConfig.enableSitemapNavigation;\n\n if (this.eventDetailsConfig.defaultExpandedMarketsCount > 0) {\n this.defaultExpandedMarketsCount = this.eventDetailsConfig.defaultExpandedMarketsCount;\n }\n\n if (!this.isEventPageModularEnabled) {\n this.marqueeComponent = this.marqueeLoader.getHighlightsMarqueeComponent();\n }\n\n this.isNewEDPScoreboard = this.edpScoreboardConfigService.isNewEDPScoreboardEnabled();\n\n if (this.eventDetailsConfig.enableHideBreadcrumbOnScroll && this.isNewEDPScoreboard) {\n this.scrollContainer.scroll.pipe(takeUntilDestroyed()).subscribe(() => {\n this.onScrollHandler();\n });\n }\n\n this.source = BetBuilderTrackingValues.EventDetails;\n }\n\n ngOnDestroy(): void {\n this.navigationRouter.resetNavigation();\n this.subscription?.unsubscribe();\n this.setMediaModuleContext(MediaModuleContextPage.Default, null);\n this.clearTabControllerState();\n }\n\n clearTabControllerState() {\n if (this.sheetViewService.isEnabled) this.tabControllerFacadeService.resetTabControllerState();\n }\n\n onRouteResolved(model: DetailedEventViewModel): void {\n if (!model) {\n return;\n }\n\n this.optionGroups = [];\n if (!this.setId && this.setId !== 0) {\n this.setId = -100;\n }\n\n this.event = model.model;\n this.subscription?.unsubscribe();\n this.clearTabControllerState();\n this.hasError = !this.event?.published || this.event?.isFinished();\n\n if (!this.event) {\n return;\n }\n\n const config = this.eventDetailsConfig.marketTemplatesWithThresholds[this.event.sport.id];\n const templates = config ? keyBy(config, (id) => id) : {};\n this.thresholds = { templates, thresholds: this.marketGroupingConfig.optionCollapseSize };\n\n this.marqueesEmpty = false;\n this.setMediaModuleContext(MediaModuleContextPage.EventDetails, this.event.id);\n this.setEvent(this.event);\n\n this.promoted = model.promotedTemplate;\n this.preCreated = model.preCreated;\n\n this.setPromoted(this.event);\n this.setModel();\n if (this.isEventPageModularEnabled && model.widgetLayoutResponse?.widgets?.length) {\n this.eventDetailsModelService.setDetailedEventViewModel(model);\n this.eventModularVM = this.mapModularVm(model);\n this.widgetTrackingService.trackWidgetsLoaded(model.widgetLayoutResponse);\n this.isEventPageModularEnabledWithWidgets = true;\n }\n\n this.isLive = this.event.live;\n if (this.isLive) {\n this.hasMarqueeAvailable = false;\n }\n\n if (this.isLive && !this.navigationStateService.isPrematchNavRegistered) {\n this.navigationRouter.setNavigation('live');\n } else {\n this.navigationRouter.setNavigation(this.event.sport.id.toString());\n }\n if (!this.isEventPageModularEnabled) {\n this.hasMarqueeAvailable = model.hasMarqueeAvailable && this.marqueeConfig.isHighlightsMarqueeEnabled;\n let marqueeTiles: Tile[] = [];\n if (this.hasMarqueeAvailable) {\n this.marqueeService\n .loadMarquees(this.event.id)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((newMarqueeTiles) => {\n marqueeTiles = [...this.getAutomatedMarqueeTiles(model, newMarqueeTiles)];\n this.marqueesEmpty = !marqueeTiles.length;\n this.marqueeComponent.update({ tiles: marqueeTiles });\n });\n } else {\n marqueeTiles = this.marqueeConfig.isHighlightsMarqueeEnabled ? [...this.getAutomatedMarqueeTiles(model, marqueeTiles)] : [];\n this.marqueesEmpty = !marqueeTiles.length;\n this.marqueeComponent.update({ tiles: marqueeTiles });\n }\n\n this.promotionProvider.promotions$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((promotions) => this.promotionChanged(promotions));\n } else {\n this.promotionProvider.promotions$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((promotions) => {\n this.crmPromotions = this.event ? this.promotionMapper.getPromotionsForEvent(this.event, promotions) : [];\n this.crmOptionGroupsPromotedMap = this.promotionMapper.getPromotedOptionGroupIds(this.optionGroups, this.event!, this.crmPromotions);\n });\n }\n\n this.subscription = this.eventSubscriptionService.subscribe([\n {\n event: this.event,\n /**\n * Performance optimization:\n * When push messages are received in close succession this reduces amount of eventChanged executions\n * to a single call and updates component model in one go instead of updating it after every message\n */\n callback: debounce(this.eventChanged, 100),\n },\n ]);\n this.subscription.add(this.scoreboardSubscriptionService.subscribe([{ event: this.event }]));\n this.subscription.add(this.playerStatsSubscriptionService.subscribe([{ event: this.event, callback: this.eventChanged }]));\n\n this.promotionProvider.promotionsMap$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((ids) => this.promoIdsChanged(ids));\n }\n\n ngAfterViewInit(): void {\n this.timer.setTimeout(() => (this.disableAnimation = false));\n\n const modalBody = this.document.querySelector('.modal-body:has(.event-details)');\n if (modalBody) {\n this.scrollContainer.setTarget(modalBody);\n }\n }\n\n onScrollHandler(): void {\n if (this.scrollContainer.scrollTop > 0 && this.scrollContainer.scrollTop > this.lastScrollTop) {\n this.hideEDPBreadcrumbs = true;\n this.htmlNode.setCssClass('hide-edp-header', true);\n } else {\n this.hideEDPBreadcrumbs = false;\n this.htmlNode.setCssClass('hide-edp-header', false);\n }\n this.lastScrollTop = this.scrollContainer.scrollTop;\n }\n\n setChanged(setData: {\n setId: string | number;\n groupedSetsIds?: number[];\n subSetId?: string;\n tags?: string[];\n isSgp?: boolean;\n defaultTab?: string;\n }): void {\n if (this.event) {\n this.onboardingVisible$ = this.onboardingMessageService.visible$(this.event, setData.setId === SetTab.BetBuilder);\n }\n\n if (this.setId === setData.setId && setData.subSetId === this.subSet && isEqual(this.tags, setData.tags)) {\n return;\n }\n\n this.setId = setData.setId;\n this.subSet = setData.subSetId;\n this.groupedSets = setData.groupedSetsIds;\n this.tags = setData.tags;\n this.isSgp = setData.isSgp;\n this.defaultTab = setData.defaultTab;\n this.setModel();\n\n if (this.event) {\n this.setMain = this.getMainSet(this.event);\n }\n\n if (this.isMainOrAllTab) {\n this.isEventPageModularEnabledWithWidgets = this.eventModularVM?.widgetPositions.length > 0;\n } else {\n this.isEventPageModularEnabledWithWidgets = false;\n }\n\n if (this.setId === SetTab.MyBets && this.event) {\n this.myBetsComponent.update({ event: this.event });\n }\n\n this.scrollContainer.scrollTo(0, 0);\n }\n\n featureChanged(feature: number): void {\n const current = this.feature;\n this.feature = feature;\n\n // we check whether there is some change to overcome possible reflow\n if (current !== undefined && current !== feature) {\n this.scrollContainer.scrollTo(0, 0);\n }\n }\n\n private promoIdsChanged(promoMap: PromotionMap): void {\n this.crmPromoIdsMap = {\n templateIds: promoMap.templateIds,\n markets: promoMap.markets,\n options: promoMap.options,\n };\n }\n\n private promotionChanged(model: Promotion[]): void {\n this.crmPromotions = this.event ? this.promotionMapper.getPromotionsForEvent(this.event, model) : [];\n this.setCrmPromotions();\n }\n\n private setCrmPromotions(): void {\n if (!this.event) {\n return;\n }\n\n this.crmOptionGroupsPromotedMap = this.promotionMapper.getPromotedOptionGroupIds(this.optionGroups, this.event, this.crmPromotions);\n this.crmBannerPromotions = this.promotionMapper\n .getBannerPromotions(this.event.optionGroups, this.event, this.crmPromotions)\n .slice(0, this.promotionConfig.promotions.bannerCount.eventView);\n this.marqueeComponent.update({\n promotionTiles: this.crmBannerPromotions,\n preventNavigation: true,\n showLoader: true,\n page: this.page,\n });\n }\n\n private setModel(): void {\n if (this.setId === undefined || this.setId === -100 || !this.event) {\n return;\n }\n this.isPrecreatedBABTabActive = this.helper.isPreCreatedBABTab(this.event, this.setId);\n\n this.sourceOfPick = this.isSgp ? SourceOfPick.EmbeddedBetBuilder : SourceOfPick.EventDetails;\n\n const setData: OptionMarketSetData = {\n activeTab: this.setId,\n groupedSetsIds: this.groupedSets,\n tag: this.subSet,\n setTags: this.tags,\n isSgp: this.isSgp,\n isPrecreatedBABTab: this.isPrecreatedBABTabActive,\n };\n this.optionMarketSetData.set(setData);\n\n const optionGroups = this.helper.prepareEventOptionGroups({\n event: this.event,\n ...setData,\n });\n\n if (this.setId === this.setType.All) {\n this.optionGroups = [];\n\n this.event.optionSets.forEach(\n (set) =>\n (this.optionGroups = this.optionGroups.concat(\n sortBy(\n optionGroups.filter((group) => group.detailedGrouping.marketSet === set.id),\n (optionGroup) => !(optionGroup.templateId in this.promotedMap),\n (optionGroup) => optionGroup.detailedGrouping.marketOrder,\n ),\n )),\n );\n\n this.crmOptionGroupsPromotedMap = this.promotionMapper.getPromotedOptionGroupIds(this.optionGroups, this.event, this.crmPromotions);\n\n return;\n }\n\n this.optionGroups = sortBy(\n optionGroups,\n (optionGroup) => !(optionGroup.templateId in this.promotedMap),\n (optionGroup) => (this.setId === this.setType.MyMarkets ? optionGroup.position : optionGroup.detailedGrouping.marketOrder),\n );\n\n this.totalOptionGroupsCount = this.helper.calculateEventOptionGroupsCount(this.event);\n if (!this.isEventPageModularEnabled) {\n this.setCrmPromotions();\n }\n }\n\n private eventChanged = () => {\n if (this.event) {\n const setMediaEvent = this.event.live !== this.isLive;\n this.isLive = this.event.live;\n\n if (this.isLive) {\n this.hasMarqueeAvailable = false;\n if (this.setId === this.setType.BetBuilder) {\n this.setChanged({ setId: 0, subSetId: undefined, defaultTab: '' });\n }\n }\n if (setMediaEvent) {\n this.setEvent(this.event);\n }\n }\n\n this.setModel();\n this.changeRef.markForCheck();\n };\n\n private getMainSet(event: EventModel): number | string | undefined {\n return this.eventDetailsConfig.enableSitemapNavigation\n ? this.defaultTab\n : (event.optionSets.map((optionSet) => optionSet.id).shift() as number);\n }\n\n private setPromoted(event: EventModel): void {\n this.promotedMap = keyBy(this.promoted || [], (promoted) => promoted);\n\n if (this.promoted && this.promoted.length > 0) {\n const promotedOptionGroup = find(event.optionGroups, (optionGroup) => optionGroup.templateId in this.promotedMap);\n\n if (promotedOptionGroup) {\n this.setId = promotedOptionGroup.detailedGrouping.marketSet;\n }\n }\n }\n\n private setEvent(event: EventModel): void {\n this.mediaApi.setEvent(event, MediaEventSource.EventDetails, null, TrackingVideoSource.EventDetails);\n }\n\n private setMediaModuleContext(mediaModuleContext: MediaModuleContextPage, eventId: string | null): void {\n this.mediaApi.setMediaWidgetContext(mediaModuleContext, eventId);\n }\n\n get isMainOrAllTab(): boolean {\n return this.setId === SetTab.All || this.setId === this.setMain;\n }\n\n defaultExpandedMarkets(widgetPosition?: number): number | undefined {\n if (!this.defaultExpandedMarketsCount || this.isPrecreatedBABTabActive) {\n return;\n }\n\n if (widgetPosition) {\n return Math.max(this.defaultExpandedMarketsCount - widgetPosition, 0);\n }\n\n return this.defaultExpandedMarketsCount;\n }\n\n trackPosition(index: number): number {\n return index;\n }\n\n getTracking(): string {\n return this.sourceOfPick === SourceOfPick.EmbeddedBetBuilder ? 'betbuilder' : 'EventDetails/Sport/' + this.event?.sport?.id;\n }\n\n private getAutomatedMarqueeTiles(model: DetailedEventViewModel, marqueeTiles: Tile[]): Tile[] {\n if (marqueeTiles.length < this.marqueeConfig.maxTiles && this.marqueeConfig.isAutomatedMarqueesEnabled && model.fixture) {\n const automatedMarqueeTiles = this.automatedMarqueeService.createAutomatedMarqueeTiles(model);\n const automatedTiles = this.automatedMarqueeService.getTiles(\n model?.fixture,\n automatedMarqueeTiles,\n model.betBuilderFixture?.sourceFixture,\n model.betBuilderFixture?.precreatedMarketsInfo,\n );\n if (automatedTiles.length > 0 && !this.isLive) {\n this.hasMarqueeAvailable = true;\n }\n\n return this.automatedMarqueeService.getCombinedTiles(marqueeTiles, automatedTiles);\n }\n\n return marqueeTiles;\n }\n\n private mapModularVm(model: DetailedEventViewModel): ModularEventViewModel {\n const groupedWidgets = groupBy(model.widgetLayoutResponse?.widgets, (group) => group.position);\n const widgetPositions = Object.keys(groupedWidgets).map((m) => Number(m));\n\n return {\n layoutTemplate: model.widgetLayoutResponse?.template,\n widgetPage: model.widgetLayoutResponse?.page,\n widgetPositions,\n groupedWidgets,\n };\n }\n}\n","import { SelectionInfo } from '../../event-details-common/event-details-common.models';\n\nexport class NavState {\n expandedSports: Set;\n collapsedLeagues: Set;\n sportsWithCollapsedMarkets: Set;\n\n constructor(\n public selection: SelectionInfo | undefined,\n expandedSports: number[],\n collapsedLeagues: number[],\n sportsWithCollapsedMarkets: number[],\n ) {\n this.expandedSports = new Set(expandedSports || []);\n this.collapsedLeagues = new Set(collapsedLeagues || []);\n this.sportsWithCollapsedMarkets = new Set(sportsWithCollapsedMarkets || []);\n }\n\n isSportExpanded(sportId: number): boolean {\n return this.expandedSports.has(sportId);\n }\n\n isLeagueCollapsed(leagueId: number): boolean {\n return this.collapsedLeagues.has(leagueId);\n }\n\n areMarketsCollapsed(sportId: number): boolean {\n return this.sportsWithCollapsedMarkets.has(sportId);\n }\n\n isEmpty(): boolean {\n return this.expandedSports.size === 0 && this.collapsedLeagues.size === 0 && this.sportsWithCollapsedMarkets.size === 0;\n }\n\n toggleSport(sportId: number): void {\n if (this.expandedSports.has(sportId)) {\n this.expandedSports.delete(sportId);\n } else {\n this.expandedSports.add(sportId);\n }\n }\n\n toggleLeague(leagueId: number): void {\n if (this.collapsedLeagues.has(leagueId)) {\n this.collapsedLeagues.delete(leagueId);\n } else {\n this.collapsedLeagues.add(leagueId);\n }\n }\n\n toggleMarkets(sportId: number): void {\n if (this.sportsWithCollapsedMarkets.has(sportId)) {\n this.sportsWithCollapsedMarkets.delete(sportId);\n } else {\n this.sportsWithCollapsedMarkets.add(sportId);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SessionStoreService } from '@frontend/vanilla/core';\n\nimport { SelectionInfo } from '../../event-details-common/event-details-common.models';\nimport { NavState } from '../navigation-state/navigation-state';\n\nexport interface SessionData {\n selection?: SelectionInfo;\n expandedSports: number[];\n collapsedLeagues: number[];\n sportsWithCollapsedMarkets: number[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationStateService {\n private readonly sessionKey: string = 'live-navigation-state';\n state: NavState;\n\n constructor(private sessionStore: SessionStoreService) {\n this.state = this.loadState();\n }\n\n private loadState(): NavState {\n const rawState: SessionData = this.sessionStore.get(this.sessionKey) || {\n expandedSports: [],\n collapsedLeagues: [],\n sportsWithCollapsedMarkets: [],\n };\n\n return new NavState(rawState.selection, rawState.expandedSports, rawState.collapsedLeagues, rawState.sportsWithCollapsedMarkets);\n }\n\n storeState(): void {\n this.sessionStore.set(this.sessionKey, {\n selection: this.state.selection,\n expandedSports: Array.from(this.state.expandedSports),\n collapsedLeagues: Array.from(this.state.collapsedLeagues),\n sportsWithCollapsedMarkets: Array.from(this.state.sportsWithCollapsedMarkets),\n });\n }\n\n storeSelection(selection: SelectionInfo): void {\n this.state.selection = selection;\n this.storeState();\n }\n\n toggleSport(sportId: number): void {\n this.state.toggleSport(sportId);\n this.storeState();\n }\n\n toggleLeague(leagueId: number): void {\n this.state.toggleLeague(leagueId);\n this.storeState();\n }\n\n toggleMarkets(sportId: number): void {\n this.state.toggleMarkets(sportId);\n this.storeState();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { filterDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { toString } from 'lodash-es';\nimport { Observable, debounceTime, shareReplay, switchMap, timer } from 'rxjs';\n\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationRefreshService {\n refresh$: Observable;\n reload$: Observable;\n\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private liveNavConfig: LiveNavigationConfig,\n private bettingContent: BettingOfferApi,\n private userService: UserService,\n ) {\n this.registerRefresh();\n this.registerReload();\n }\n\n private registerRefresh(): void {\n const intervalInMs = this.liveNavConfig.pollingInterval * 1000;\n\n this.refresh$ = timer(intervalInMs, intervalInMs).pipe(\n debounceTime(2000),\n filterSports(),\n switchMap(() => this.getData()),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n private registerReload(): void {\n this.reload$ = this.userService.onAuthenticationChange$.pipe(switchMap(() => this.getData()));\n }\n\n private getData(): Observable {\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: FixtureState.Live,\n tagTypes: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n sortBy: SortByCriteria.Tags,\n },\n fixtureRequest: {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Live,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n excludeCompetitionIds: toString(Array.from(this.stateService.state.collapsedLeagues)),\n sportIds: toString(Array.from(this.stateService.state.expandedSports)),\n },\n };\n\n return this.bettingContent.getCountsFixtures(request).pipe(filterDefined());\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EventDetailsComponent } from '../event-details.component';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationRouteService implements OnDestroy {\n private stopStream$: Subject = new Subject();\n protected serviceDestroyed$ = new Subject();\n\n constructor(private routerEvents: RouterEventsService) {\n this.routerEvents.currentActivationStart.pipe(takeUntil(this.serviceDestroyed$)).subscribe((route) => {\n if (route && route.snapshot.component !== EventDetailsComponent) {\n this.stopStream$.next();\n this.stopStream$.complete();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.serviceDestroyed$.next();\n this.serviceDestroyed$.complete();\n }\n\n get stopProcessing$(): Observable {\n return this.stopStream$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSubscription, EventSubscriptionRequest } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { EventSubscriptionService } from '@frontend/sports/event-subscription/feature/event-subscription';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { difference, omit, values } from 'lodash-es';\nimport { Observable, Subject, asyncScheduler, buffer, distinct, filter, map, noop, throttleTime } from 'rxjs';\n\nimport { FreshDataType } from '../../data-refresh/fresh-data-provider.service';\nimport { FreshDataService } from '../../data-refresh/fresh-data.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationSubscriptionService {\n private subscription?: EventSubscription;\n private events: { [id: string]: EventModel } = {};\n\n private eventsStream$ = new Subject();\n readonly updatedEvents$: Observable;\n\n constructor(\n private eventSubscriptionService: EventSubscriptionService,\n freshDataService: FreshDataService,\n ) {\n const updateQueueInMilliseconds = 400;\n\n const flush$ = this.eventsStream$.pipe(map(noop), throttleTime(updateQueueInMilliseconds, asyncScheduler));\n\n // buffer updates and notify at once for performance reasons\n this.updatedEvents$ = this.eventsStream$.pipe(\n distinct((event) => event.id, flush$),\n buffer(flush$),\n filter((events) => events && events.length > 0),\n takeUntilDestroyed(),\n );\n\n freshDataService.reloadNeeded\n .pipe(filter((type) => type === FreshDataType.DataAndPush))\n .pipe(filterSportsEmitLast())\n .subscribe(() => {\n this.onPushReconnected();\n });\n }\n\n refreshSubscriptions(events: EventModel[]): void {\n if (this.subscription) {\n const unsubscribe = difference(\n Object.keys(this.events),\n events.map((event) => event.id),\n );\n this.subscription.remove(unsubscribe);\n this.events = omit(this.events, unsubscribe);\n }\n\n this.subscribe(events);\n }\n\n subscribe(events: EventModel[]): void {\n const request: EventSubscriptionRequest[] = [];\n\n for (const event of events) {\n if (!this.events[event.id]) {\n this.events[event.id] = event;\n request.push({ event, callback: this.handler });\n }\n }\n\n if (request.length === 0) {\n return;\n }\n\n const subscription = this.eventSubscriptionService.subscribe(request);\n\n if (this.subscription) {\n this.subscription = this.subscription.add(subscription);\n } else {\n this.subscription = subscription;\n }\n }\n\n unsubscribe(eventsToUnsubscribe: EventModel[]): void {\n if (eventsToUnsubscribe && eventsToUnsubscribe.length && this.subscription) {\n this.subscription.remove(eventsToUnsubscribe);\n\n eventsToUnsubscribe.forEach((e) => {\n delete this.events[e.id];\n });\n }\n }\n\n unsubscribeAll(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n\n this.events = {};\n }\n\n private handler = (event: EventModel) => {\n if (this.events[event.id]) {\n this.eventsStream$.next(event);\n }\n };\n\n private onPushReconnected = () => {\n const resubscribe = values(this.events);\n\n this.events = {};\n delete this.subscription;\n\n this.subscribe(resubscribe);\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { LeftNavType, TreeItem } from '../../event-details-common/event-details-common.models';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackRegionToggle(region: TreeItem): void {\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: region.expanded\n ? `LeftNav_PrePlay_Expand_RB_${region.id}`\n : `LeftNav_PrePlay_Collapse_RB_${region.id}`,\n });\n }\n\n trackSportToggle(sport: TreeItem): void {\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: sport.expanded\n ? `LeftNav_inPlay_Expand_SB_${sport.id}`\n : `LeftNav_inPlay_Collapse_SB_${sport.id}`,\n });\n }\n\n trackLeagueToggle(league: TreeItem, leftNavType: LeftNavType): void {\n const navigationMenus = leftNavType === LeftNavType.Live ? 'LeftNav_inPlay' : 'LeftNav_PrePlay';\n\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: league.expanded\n ? `${navigationMenus}_Expand_LN_${league.id}`\n : `${navigationMenus}_Collapse_LN_${league.id}`,\n });\n }\n\n trackMarketsToggle(visible: boolean, leftNavType: LeftNavType): void {\n const navigationMenus = leftNavType === LeftNavType.Live ? 'LeftNav_inPlay' : 'LeftNav_PrePlay';\n\n this.trackingService.track('Event.Functionality.ShowHideBets', {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_REFERRING_ACTION]: visible ? `${navigationMenus}_ShowBets` : `${navigationMenus}_HideBets`,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureStage } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { produce } from 'immer';\nimport { clone, flatMap, sumBy } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n BaseTreeItem,\n GroupedEvents,\n LeftNavType,\n NavEventModel,\n SelectionInfo,\n TreeItem,\n TreeItemType,\n} from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { FixtureList } from '../../event-list-shared/sport/competitions/competition.models';\nimport { LiveFavouriteFixturesService } from '../../favourites/live-favourites-fixtures.service';\nimport { LiveUrlParam } from '../../navigation-core/url-helper.service';\nimport { NavigationTrackingService } from '../navigation-tracking/navigation-tracking.service';\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\nimport { LiveEventsNavigationSubscriptionService } from './live-events-navigation-subscription.service';\n\nexport interface ToggleResult {\n leaguesToFetch: LeagueGroup[];\n tree: BaseTreeItem;\n}\n\nexport interface LeagueGroup {\n leagueId: number;\n virtualLeagueId: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationTreeService {\n private selectionInfo: SelectionInfo;\n favouritedLeagues: TreeItem[] = [];\n subscription?: EventSubscription;\n eventSubject = new BehaviorSubject({});\n\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private trackingService: NavigationTrackingService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private sitecore: Sitecore,\n private liveFavouriteFixturesService: LiveFavouriteFixturesService,\n private favouritesConfig: FavouritesConfig,\n private userService: UserService,\n private fixtureFactory: FixtureFactory,\n ) {}\n\n get favEventChange(): BehaviorSubject {\n return this.eventSubject;\n }\n\n refreshFavouritesTreeItem(tree: BaseTreeItem): BaseTreeItem {\n const updatedChildren = this.updateFavouritedItemsLeftNavigation(tree).children.filter((sport) => sport.id !== LiveUrlParam.Favourites);\n if (this.favouritedLeagues.length > 0) {\n const favouritesTab = this.getFavouriteTab();\n\n return { children: [favouritesTab, ...updatedChildren] };\n }\n\n return { children: updatedChildren };\n }\n\n updateTree(navTree: BaseTreeItem, leagueGroups: LeagueGroup[], groupedEvents: GroupedEvents): BaseTreeItem {\n if (!groupedEvents) {\n return navTree;\n }\n\n const added: EventModel[] = [];\n\n let tree = produce(navTree, (draftState: BaseTreeItem) => {\n leagueGroups.forEach((leagueGroup) => {\n let sportIndex = -1;\n const leagueId = leagueGroup.virtualLeagueId > 0 ? leagueGroup.virtualLeagueId : leagueGroup.leagueId;\n const events = groupedEvents[leagueId];\n const anyEvents = events && events.length > 0;\n if (anyEvents) {\n sportIndex = navTree.children.findIndex((s) => s.id === events[0].sport.id && s.id !== (LiveUrlParam.Favourites as number));\n }\n\n if (sportIndex < 0) {\n // try to find based on league id, because it might happen no events are returned\n sportIndex = navTree.children.findIndex((s) => s && s.children.some((l) => l.id === leagueGroup.leagueId));\n }\n\n if (sportIndex < 0) {\n // if matching sport could not be fount continue to the next leagueId\n return;\n }\n\n const leagueIndex = draftState.children[sportIndex].children.findIndex(\n (l) => l.id === leagueGroup.leagueId && l.type !== TreeItemType.FavouriteLeague,\n );\n if (leagueIndex < 0) {\n // if matching league model could not be found continue to the next leagueId\n return;\n }\n\n if (anyEvents) {\n // subscribe to push notifications\n added.push(...events);\n\n // since navTree model is immutable, replace with an updated model\n const sport = draftState.children[sportIndex];\n const league = sport.children[leagueIndex];\n league.events = events.map((e) => ({\n data: e,\n selected: e.id === this.selectionInfo.eventId,\n showMarkets: sport.toggleMarkets,\n hidden: false,\n }));\n league.loading = false;\n } else {\n // remove league if there are no events\n draftState.children[sportIndex].children.splice(leagueIndex, 1);\n }\n });\n });\n\n this.subscriptionsService.subscribe(added);\n\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n tree = this.updateFavouritedItemsLeftNavigation(tree);\n }\n\n return tree;\n }\n\n private updateFavouritedItemsLeftNavigation(navTree: BaseTreeItem): BaseTreeItem {\n return produce(navTree, (draftState: BaseTreeItem) => {\n draftState.children.forEach((sport) => {\n if (sport.id !== LiveUrlParam.Favourites) {\n let hiddenLeagueCount = 0;\n sport.children.forEach((league) => {\n let hiddenEventCount = 0;\n league.events.forEach((event) => {\n const favouritedFixture = this.liveFavouriteFixturesService.isFavourited(event.data.id);\n event.hidden = false;\n league.selected =\n this.selectionInfo.leagueId === league.id && this.selectionInfo.eventId === event.data.id && !favouritedFixture;\n if (favouritedFixture) {\n event.hidden = true;\n hiddenEventCount++;\n }\n });\n league.hidden = false;\n if (hiddenEventCount > 0 && hiddenEventCount === league.events.length) {\n league.hidden = true;\n hiddenLeagueCount++;\n }\n });\n sport.hidden = false;\n if (hiddenLeagueCount > 0 && hiddenLeagueCount === sport.children.length) {\n sport.hidden = true;\n }\n }\n });\n });\n }\n\n toggleMarkets(navTree: BaseTreeItem, sport: TreeItem): BaseTreeItem {\n this.trackingService.trackMarketsToggle(!sport.toggleMarkets, sport.leftNavType);\n\n return produce(navTree, (draft: BaseTreeItem) => {\n const draftSport = this.findChild(draft, sport.id);\n if (!draftSport) {\n return;\n }\n draftSport.toggleMarkets = !draftSport.toggleMarkets;\n this.stateService.toggleMarkets(sport.id);\n draftSport.children.forEach((league) => {\n league.events.forEach((event) => {\n event.showMarkets = !event.showMarkets;\n });\n });\n });\n }\n\n getVisibleLeagues(navTree: BaseTreeItem): LeagueGroup[] {\n const leagues: LeagueGroup[] = [];\n navTree.children\n .filter((sport) => sport.expanded && sport.id !== LiveUrlParam.Favourites)\n .forEach((sport) => {\n sport.children.forEach((league) => {\n if (league.expanded) {\n leagues.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n }\n });\n });\n\n return leagues;\n }\n\n expandEvent(navTree: BaseTreeItem, event: EventModel): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const currentSport = this.findChild(draftState, event.sport.id);\n if (!currentSport) {\n return;\n }\n const currentLeague = this.findChild(currentSport, getLeagueId(event));\n if (!currentLeague) {\n return;\n }\n if (!currentLeague.expanded) {\n currentLeague.expanded = true;\n this.stateService.toggleLeague(currentLeague.id);\n }\n if (!currentSport.expanded) {\n currentSport.expanded = true;\n this.stateService.toggleSport(currentSport.id);\n }\n currentSport.children.forEach((league) => {\n if (league.expanded) {\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n }\n });\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n updateFavourites(tree?: BaseTreeItem): void {\n if (!tree) {\n return;\n }\n this.unsubscribeInvisibleEvents(tree);\n this.setFavouriteLeagues();\n\n const favouriteEvents = this.getFavouritesEvents();\n this.subscriptionsService.unsubscribe(favouriteEvents);\n this.subscriptionsService.subscribe(favouriteEvents);\n }\n\n private getFavouritesEvents(): EventModel[] {\n return flatMap(this.favouritedLeagues, (league) => league.events).map((event) => event.data);\n }\n\n updateEvent(navTree: BaseTreeItem, updatedEvent: EventModel): BaseTreeItem {\n const updatedTree = produce(navTree, (draftState: BaseTreeItem) => {\n draftState.children.forEach((sport) => {\n if (sport.id === LiveUrlParam.Favourites) {\n sport.children.forEach((league) => {\n league.events.forEach((event) => {\n if (event.data.id === updatedEvent.id) {\n event.data = clone(updatedEvent);\n }\n });\n });\n }\n });\n });\n\n return updatedTree;\n }\n\n updateEvents(navTree: BaseTreeItem, events: EventModel[]): BaseTreeItem {\n events.forEach((event) => {\n navTree = this.updateEvent(navTree, event);\n });\n\n return produce(navTree, (draftState: BaseTreeItem) => {\n events.forEach((event) => {\n const sport = this.findChild(draftState, event.sport.id);\n if (!sport) {\n return;\n }\n\n const league = this.findChild(sport, getLeagueId(event));\n if (!league) {\n return;\n }\n const navEventModels = league.events;\n const index = navEventModels.findIndex((e) => e.data.id === event.id);\n if (index === -1) {\n return;\n }\n // TODO remove when push update for startdate is implemented\n event.startDate = navEventModels[index].data.startDate;\n\n navEventModels[index] = {\n data: clone(event),\n selected: league.events[index].selected,\n showMarkets: league.events[index].showMarkets,\n hidden: league.events[index].hidden,\n };\n });\n });\n }\n\n toggleSport(navTree: BaseTreeItem, item: TreeItem): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const sport = this.findChild(draftState, item.id);\n if (!sport) {\n return;\n }\n\n sport.expanded = !sport.expanded;\n\n this.stateService.toggleSport(sport.id);\n this.trackingService.trackSportToggle(sport);\n\n const leagues = sport.children.filter((l) => l.expanded);\n if (sport.expanded) {\n leagues.forEach((league) => {\n league.loading = true;\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n });\n } else {\n leagues.forEach((league) => {\n this.clearLeagueEvents(league);\n });\n }\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n toggleFavourites(navTree: BaseTreeItem, item: TreeItem): BaseTreeItem {\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const sport = this.findChild(draftState, item.id);\n if (!sport) {\n return;\n }\n\n sport.expanded = !sport.expanded;\n\n this.stateService.toggleSport(sport.id);\n this.trackingService.trackSportToggle(sport);\n });\n\n return newTree;\n }\n\n toggleFavouriteLeague(navTree: BaseTreeItem, item: TreeItem): BaseTreeItem {\n const newTree = produce(navTree, (draft: BaseTreeItem) => {\n let league: TreeItem | undefined;\n for (const sport of draft.children) {\n league = sport.children.find((l) => l.id === item.id && l.type === TreeItemType.FavouriteLeague);\n if (league) {\n break;\n }\n }\n\n if (!league) {\n return;\n }\n\n league.expanded = !league.expanded;\n\n if (league.expanded) {\n league.events.forEach((event) => (event.hidden = false));\n } else {\n league.events.forEach((event) => (event.hidden = true));\n }\n\n this.stateService.toggleLeague(league.id);\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n });\n\n return newTree;\n }\n\n toggleLeague(navTree: BaseTreeItem, item: TreeItem): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draft: BaseTreeItem) => {\n let league: TreeItem | undefined;\n for (const sport of draft.children) {\n league = sport.children.find((l) => l.id === item.id && l.type !== TreeItemType.FavouriteLeague);\n if (league) {\n break;\n }\n }\n\n if (!league) {\n return;\n }\n\n league.expanded = !league.expanded;\n\n this.stateService.toggleLeague(league.id);\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n\n if (league.expanded) {\n league.loading = true;\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n } else {\n this.clearLeagueEvents(league);\n }\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n refreshTree(oldTree: BaseTreeItem, newTree: BaseTreeItem, groupedEvents: GroupedEvents, updateEvents?: boolean): BaseTreeItem {\n const newSports: TreeItem[] = [];\n\n const favouriteItem = oldTree.children.find((child) => child.type === TreeItemType.Favourite);\n if (favouriteItem) {\n newSports.push(favouriteItem);\n }\n\n const liveNavEvens: EventModel[] = [];\n\n // loads the tree with events\n newTree.children\n .filter((child) => child.type !== TreeItemType.Favourite)\n .forEach((sport) => {\n const currentSport = oldTree.children.find((s) => s.id === sport.id);\n const marketsToggled = currentSport ? currentSport.toggleMarkets : sport.toggleMarkets;\n\n const newLeagues: TreeItem[] = [];\n\n // goes through all sport's leagues\n sport.children.forEach((league) => {\n let leagueEvents: NavEventModel[] = [];\n\n if (league.expanded && sport.expanded) {\n const newEvents = groupedEvents[league.id] || [];\n const oldLeague = currentSport ? currentSport.children.find((l) => l.id === league.id) : undefined;\n\n leagueEvents = this.getNewEvents(newEvents, oldLeague, marketsToggled, updateEvents);\n liveNavEvens.push(...leagueEvents.map((event) => event.data));\n }\n\n newLeagues.push({\n ...league,\n events: leagueEvents,\n });\n });\n\n const newSport = {\n ...sport,\n toggleMarkets: marketsToggled,\n children: newLeagues,\n };\n newSports.push(newSport);\n });\n\n const favouritesEvents = this.getFavouritesEvents();\n this.subscriptionsService.refreshSubscriptions(favouritesEvents.concat(liveNavEvens));\n\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n return this.updateFavouritedItemsLeftNavigation({ children: newSports });\n }\n\n return {\n children: newSports,\n };\n }\n\n selectEvent(navTree: BaseTreeItem, event: EventModel): BaseTreeItem {\n this.stateService.storeSelection(new SelectionInfo(event));\n\n return produce(navTree, (draftState: BaseTreeItem) => {\n if (this.selectionInfo) {\n // unselect\n this.applySelection(this.selectionInfo, false, draftState);\n }\n\n // select\n this.setSelectionInfo(event);\n this.applySelection(this.selectionInfo, true, draftState);\n });\n }\n\n setSelectionInfo(selectedEvent: EventModel): void {\n this.selectionInfo = new SelectionInfo(selectedEvent);\n }\n\n isSelected(eventId: string): boolean {\n return this.selectionInfo.eventId === eventId;\n }\n\n getFirstLeagueId(tree: BaseTreeItem): number {\n return (tree.children[0] && tree.children[0].children[0] && tree.children[0].children[0].id) || -1;\n }\n\n getFirstSportId(tree: BaseTreeItem): number {\n return (tree.children[0] && tree.children[0].id) || -1;\n }\n\n getFavouriteTab(): TreeItem {\n return {\n id: LiveUrlParam.Favourites,\n name: this.sitecore.favouritesMessages.LiveTitle,\n type: TreeItemType.Favourite,\n selected: false,\n expanded: true,\n loading: false,\n icon: 'theme-favorite',\n count: sumBy(this.favouritedLeagues, (league) => league.events.length) || 0,\n children: this.favouritedLeagues || [],\n class: 'sport',\n events: [],\n toggleMarkets: !this.stateService.state.areMarketsCollapsed(LiveUrlParam.Favourites),\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n };\n }\n\n setFavouriteLeagues(): void {\n const result: TreeItem[] = [];\n\n if (this.liveFavouriteFixturesService.liveFixtures.length) {\n const favouriteFixtures: FixtureList[] = this.liveFavouriteFixturesService.getFixtureList(true);\n\n favouriteFixtures.map((favouriteFix) => {\n if (favouriteFix && favouriteFix.fixtures && favouriteFix.fixtures.length > 0) {\n const favouritedLiveEvents = this.favouritedLiveEvents(favouriteFix);\n const leagueId = favouriteFix.fixtures[0].competition.parentLeagueId || favouriteFix.fixtures[0].competition.id;\n const eventIds = favouritedLiveEvents.map(({ data }) => data.id);\n result.push({\n id: leagueId,\n name: favouriteFix.fixtures[0].competition.name.value.toString(),\n type: TreeItemType.FavouriteLeague,\n selected: this.selectionInfo && this.selectionInfo.leagueId === leagueId && eventIds.indexOf(this.selectionInfo.eventId) > -1,\n expanded: true,\n loading: false,\n icon: 'sport-icon sports-' + favouriteFix.fixtures[0].sport.id,\n count: favouritedLiveEvents.length,\n children: [],\n class: 'league',\n events: favouritedLiveEvents,\n toggleMarkets: false,\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n });\n }\n });\n }\n this.favouritedLeagues = result;\n }\n\n private favouritedLiveEvents(fixtureList: FixtureList): NavEventModel[] {\n return fixtureList.fixtures\n .filter((model) => model.stage === FixtureStage.Live)\n .map((model) => ({\n data: this.fixtureFactory.create(model),\n selected: this.selectionInfo && model.id.toString() === this.selectionInfo.eventId,\n showMarkets: !this.stateService.state.areMarketsCollapsed(LiveUrlParam.Favourites),\n hidden: false,\n favourited: true,\n }));\n }\n\n private applySelection(selection: SelectionInfo, value: boolean, state: BaseTreeItem): void {\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n this.setSelection(state, LiveUrlParam.Favourites, selection.leagueId, selection.eventId, value);\n }\n\n this.setSelection(state, selection.sportId, selection.leagueId, selection.eventId, value);\n }\n\n private setSelection(tree: BaseTreeItem, sportId: number, leagueId: number, eventId: string, value: boolean): void {\n const sport = this.findChild(tree, sportId);\n if (!sport) {\n return;\n }\n\n const league = this.findChild(sport, leagueId);\n if (!league) {\n return;\n }\n const event = this.findEvent(league, eventId);\n if (!event) {\n return;\n }\n\n if (!event.hidden) {\n league.selected = value;\n }\n\n event.selected = value;\n }\n\n private getNewEvents(\n events: EventModel[],\n currentLeague: TreeItem | undefined,\n marketsToggled?: boolean,\n updateEvents?: boolean,\n ): NavEventModel[] {\n const output: NavEventModel[] = [];\n\n events.forEach((event) => {\n let oldEvent: NavEventModel | undefined;\n if (currentLeague) {\n oldEvent = currentLeague.events.find((e) => e.data.id === event.id.toString());\n }\n\n if (oldEvent && oldEvent.data.startDate.getTime() === event.startDate.getTime() && !updateEvents) {\n // if the old event exists, take that to not trigger change detection\n output.push(oldEvent);\n\n return;\n }\n\n output.push({\n data: event,\n selected: event.id === this.selectionInfo.eventId,\n showMarkets: marketsToggled,\n hidden: this.liveFavouriteFixturesService.isFavourited(event.id),\n });\n });\n\n return output;\n }\n\n private clearLeagueEvents(league: TreeItem): void {\n const nonFavouriteEvents = league.events.filter((event) => !this.liveFavouriteFixturesService.isFavourited(event.data.id));\n this.subscriptionsService.unsubscribe(nonFavouriteEvents.map((e) => e.data));\n league.events = [];\n }\n\n private findChild(item: BaseTreeItem, id: number): TreeItem | undefined {\n return item.children.find((child) => child.id === id);\n }\n\n private findEvent(item: TreeItem, id: string): NavEventModel | undefined {\n return item.events.find((child) => child.data.id === id);\n }\n\n private unsubscribeInvisibleEvents(tree: BaseTreeItem): void {\n const unSubscribeEvents: EventModel[] = [];\n const visibleLeagues = this.getVisibleLeagues(tree);\n tree.children.forEach((sport) => {\n if (sport.id === LiveUrlParam.Favourites) {\n sport.children.forEach((league) => {\n if (visibleLeagues.indexOf(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0)) === -1) {\n league.events.forEach((event) => {\n unSubscribeEvents.push(event.data);\n });\n }\n });\n }\n });\n this.subscriptionsService.unsubscribe(unSubscribeEvents);\n }\n\n private getLeagueGroup(leagueId: number, virtualLeagueId: number): LeagueGroup {\n const leagueGroup: LeagueGroup = {\n leagueId,\n virtualLeagueId,\n };\n\n return leagueGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { orderBy } from 'lodash-es';\n\nimport { BaseTreeItem, LeftNavType, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { LiveEventsNavigationStateService } from '../live-events-navigation/live-events-navigation-state.service';\nimport { LiveEventsNavigationTreeService } from '../live-events-navigation/live-events-navigation-tree.service';\nimport { NavState } from '../navigation-state/navigation-state';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationMapperService {\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private fixtureFactory: FixtureFactory,\n private userService: UserService,\n private favouritesConfig: FavouritesConfig,\n private treeService: LiveEventsNavigationTreeService,\n ) {}\n\n updateTreeState(tree: BaseTreeItem, state: NavState): BaseTreeItem {\n tree.children.forEach((sport) => {\n sport.expanded = state.expandedSports.has(sport.id);\n sport.children.forEach((league) => {\n league.expanded = !state.collapsedLeagues.has(league.id);\n });\n });\n\n return tree;\n }\n\n mapFixture(fixture: Fixture): EventModel {\n return this.fixtureFactory.create(fixture);\n }\n\n mapTree(sports: CountItem[], selectedLeague?: number, withLoading: boolean = true): BaseTreeItem {\n const sportItems: TreeItem[] = [];\n const favouriteChildren: TreeItem[] = [];\n\n if (this.userService.isAuthenticated && this.favouritesConfig.isLiveFavouritesEnabled) {\n const favouriteTab = this.treeService.getFavouriteTab();\n if (favouriteTab.children.length > 0) {\n favouriteChildren.push(favouriteTab);\n }\n }\n\n sports.forEach((sport) => {\n const leagues = this.mapLeagues(sport, selectedLeague, withLoading);\n sportItems.push(this.mapSport(sport, leagues, sport.counts.live));\n });\n\n return {\n children: [...favouriteChildren, ...sportItems],\n };\n }\n\n mapLeagues(sport: CountItem, selectedLeague: number | undefined, withLoading: boolean): TreeItem[] {\n let leagueRegions: {\n league: CountItem;\n region: CountItem;\n }[] = [];\n\n sport.children.forEach((region) => {\n leagueRegions = leagueRegions.concat(\n region.children.map((league) => ({\n league,\n region,\n })),\n );\n });\n\n return orderBy(leagueRegions, [(lr) => lr.league.order, (lr) => lr.region.order, (lr) => lr.league.name]).map((lr) => {\n const regionId = sport.id === SportConstant.Tennis ? RegionConstant.World : lr.region.id;\n\n return this.mapLeague(lr.league, regionId, sport.id, selectedLeague === lr.league.id, withLoading);\n });\n }\n\n private mapLeague(league: CountItem, regionId: number, sportId: number, selected: boolean, withLoading: boolean): TreeItem {\n const id = (league).siblings[0] || league.id;\n const collapsed = this.stateService.state.isLeagueCollapsed(id);\n\n return {\n id,\n sportId,\n name: league.name,\n type: TreeItemType.League,\n selected,\n expanded: !collapsed,\n loading: withLoading ? !collapsed : false,\n icon: 'country-icon c' + regionId,\n count: league.counts.live,\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n isVirtual: league.isVirtual,\n virtualCompetitionId: league.isVirtual ? league.id : undefined,\n imageProfile: (league as LeagueItem).imageProfile,\n };\n }\n\n private mapSport(sport: CountItem, children: TreeItem[], eventCount: number): TreeItem {\n return {\n id: sport.id,\n name: sport.name,\n type: TreeItemType.Sport,\n selected: false,\n expanded: this.stateService.state.isSportExpanded(sport.id),\n loading: false,\n icon: 'sport-icon sports-' + sport.id,\n count: eventCount,\n children,\n class: 'sport',\n events: [],\n toggleMarkets: !this.stateService.state.areMarketsCollapsed(sport.id),\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { sportModelMethods } from '@frontend/sports/common/core/data-access/sport-model';\nimport { toString } from 'lodash-es';\nimport { BehaviorSubject, Observable, firstValueFrom, map, of, tap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { BaseTreeItem, GroupedEvents, SelectionInfo, TreeItem } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { NavigationEventMapperService } from '../navigation-mapper/navigation-event-mapper.service';\nimport { NavigationMapperService } from '../navigation-mapper/navigation-mapper.service';\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\nimport { LeagueGroup, LiveEventsNavigationTreeService } from './live-events-navigation-tree.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationService {\n selectedEvent: EventModel;\n visibleEvents?: GroupedEvents;\n\n private _tree$ = new BehaviorSubject(undefined);\n private defaultEvent: EventModel | undefined;\n\n constructor(\n private treeService: LiveEventsNavigationTreeService,\n private liveNavConfig: LiveNavigationConfig,\n private stateService: LiveEventsNavigationStateService,\n private mapperService: NavigationMapperService,\n private eventMapperService: NavigationEventMapperService,\n private sportsCacheService: SportsCacheService,\n private bettingContent: BettingOfferApi,\n ) {}\n\n async initFromEvent(event: EventModel): Promise {\n this.setSelectedEvent(event);\n\n // already initialized with default event\n if (this.defaultEvent && this.defaultEvent.id === event.id) {\n if (!this.tree) {\n await this.initFromDefaultEvent();\n }\n\n return this.tree;\n }\n\n let tree = await this.loadTree();\n tree = this.initState(tree, event);\n const leaguesToFetch = this.treeService.getVisibleLeagues(tree);\n this.visibleEvents = await firstValueFrom(this.getGroupedEvents(leaguesToFetch.map((p) => p.leagueId)));\n\n this._tree$.next(tree);\n\n return tree;\n }\n\n async initFromDefaultEvent(): Promise {\n let tree = await this.loadTree();\n tree = this.initState(tree, undefined);\n\n const leaguesToFetch = this.treeService.getVisibleLeagues(tree);\n if (!this.stateService.state.isEmpty()) {\n const firstLeague = this.treeService.getFirstLeagueId(tree);\n const leagueGroup: LeagueGroup = {\n leagueId: firstLeague,\n virtualLeagueId: 0,\n };\n leaguesToFetch.push(leagueGroup);\n }\n\n this.visibleEvents = await firstValueFrom(this.getGroupedEvents(leaguesToFetch.map((p) => p.leagueId)));\n this.defaultEvent = this.getDefaultEvent(\n this.visibleEvents,\n leaguesToFetch.filter((league) => this.visibleEvents?.[league.leagueId])[0]?.leagueId,\n );\n\n this._tree$.next(tree);\n\n return this.defaultEvent;\n }\n\n refreshTree(data: CountsFixturesResponse): void {\n this.fetchTree(data);\n }\n\n reloadTree(data: CountsFixturesResponse): void {\n this.fetchTree(data, true);\n }\n\n toggleSport(item: TreeItem): void {\n const { leaguesToFetch, tree } = this.treeService.toggleSport(this.tree!, item);\n this._tree$.next(tree);\n this.loadEventsForLeagues(leaguesToFetch).subscribe();\n }\n\n toggleLeague(item: TreeItem): void {\n const { leaguesToFetch, tree } = this.treeService.toggleLeague(this.tree!, item);\n this._tree$.next(tree);\n this.loadEventsForLeagues(leaguesToFetch).subscribe();\n }\n\n toggleMarkets(sport: TreeItem): void {\n this._tree$.next(this.treeService.toggleMarkets(this.tree!, sport));\n }\n\n toggleFavourites(item: TreeItem): void {\n this._tree$.next(this.treeService.toggleFavourites(this.tree!, item));\n }\n\n toggleFavouriteLeague(item: TreeItem): void {\n this._tree$.next(this.treeService.toggleFavouriteLeague(this.tree!, item));\n }\n\n async expandEvent(event: EventModel): Promise {\n const toggleResult = this.treeService.expandEvent(this.tree!, event);\n this._tree$.next(toggleResult.tree);\n await firstValueFrom(this.loadEventsForLeagues(toggleResult.leaguesToFetch));\n }\n\n selectEvent(event: EventModel): void {\n this._tree$.next(this.treeService.selectEvent(this.tree!, event));\n this.setSelectedEvent(event);\n }\n\n updateEvents(events: EventModel[]): void {\n this._tree$.next(this.treeService.updateEvents(this.tree!, events));\n }\n\n refreshFavouritesTreeItem(): void {\n this._tree$.next(this.treeService.refreshFavouritesTreeItem(this.tree!));\n }\n\n loadVisibleLeagues(): Observable {\n return this.loadEventsForLeagues(this.treeService.getVisibleLeagues(this.tree!));\n }\n\n isSelected(eventId: string): boolean {\n return this.treeService.isSelected(eventId);\n }\n\n reset(): void {\n this._tree$.next(undefined);\n delete this.visibleEvents;\n }\n\n get tree$(): Observable {\n return this._tree$.asObservable();\n }\n\n private get tree(): BaseTreeItem | undefined {\n return this._tree$.value;\n }\n\n private async loadTree(): Promise {\n const liveSportTree = await firstValueFrom(this.sportsCacheService.getLiveSportList());\n\n return this.mapperService.mapTree(liveSportTree);\n }\n\n private fetchTree(data: CountsFixturesResponse, forceReload?: boolean): void {\n const newTree = this.mapperService.mapTree(sportModelMethods.fromTag(data.counts), getLeagueId(this.selectedEvent), false);\n const groupedEvents: GroupedEvents = this.eventMapperService.mapFixtures(data.fixtures);\n this._tree$.next(this.treeService.refreshTree(this.tree!, newTree, groupedEvents, forceReload));\n }\n\n private initState(tree: BaseTreeItem, selectedEvent: EventModel | undefined): BaseTreeItem {\n const state = this.stateService.state;\n const selectedSportId = selectedEvent ? selectedEvent.sport.id : this.treeService.getFirstSportId(tree);\n const selectedLeagueId = selectedEvent ? getLeagueId(selectedEvent) : this.treeService.getFirstLeagueId(tree);\n\n if (state.isEmpty()) {\n const sport = tree.children.find((s) => s.id === selectedSportId);\n if (sport && this.exceedsTreshold(sport)) {\n sport.children.forEach((l) => state.collapsedLeagues.add(l.id));\n }\n }\n\n state.expandedSports.add(selectedSportId);\n state.collapsedLeagues.delete(selectedLeagueId);\n this.stateService.storeState();\n\n return this.mapperService.updateTreeState(tree, state);\n }\n\n private exceedsTreshold(sport: TreeItem): boolean {\n return sport.count > this.liveNavConfig.treshold;\n }\n\n private loadEventsForLeagues(leagues: LeagueGroup[]): Observable {\n if (!leagues?.length) {\n return of(undefined);\n }\n\n return this.getGroupedEvents(leagues.map((p) => p.leagueId)).pipe(\n map((events) => this.treeService.updateTree(this.tree!, leagues, events)),\n tap((tree) => this._tree$.next(tree)),\n );\n }\n\n private getGroupedEvents(leagueIds: Iterable): Observable {\n return this.bettingContent\n .getFixtureList({\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Live,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(leagueIds),\n })\n .pipe(\n map((page) => {\n return this.eventMapperService.mapFixtures(page);\n }),\n );\n }\n\n private getDefaultEvent(events: GroupedEvents, firstLeague: number): EventModel {\n const selection = this.stateService.state.selection;\n if (selection && events[selection.leagueId]) {\n const selectedEvent = events[selection.leagueId].find((e) => e.id === selection.eventId);\n if (selectedEvent) {\n return selectedEvent;\n }\n }\n\n return events[firstLeague][0];\n }\n\n private setSelectedEvent(event: EventModel): void {\n this.selectedEvent = event;\n this.treeService.setSelectionInfo(event);\n this.stateService.state.selection = new SelectionInfo(event);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { OfferMapping } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { FavouritesService } from '@frontend/sports/favourites/core/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { first, map, merge, takeUntil } from 'rxjs';\n\nimport { BaseTreeItem, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { TreeScrollDirective } from '../../event-details-common/tree/tree-scroll.directive';\nimport { LiveFavouriteFixturesService } from '../../favourites/live-favourites-fixtures.service';\nimport { LiveEventsNavigationRefreshService } from './live-events-navigation-refresh.service';\nimport { LiveEventsNavigationRouteService } from './live-events-navigation-route.service';\nimport { LiveEventsNavigationSubscriptionService } from './live-events-navigation-subscription.service';\nimport { LiveEventsNavigationTreeService } from './live-events-navigation-tree.service';\nimport { LiveEventsNavigationService } from './live-events-navigation.service';\n\n@Component({\n selector: 'ms-live-events-navigation',\n templateUrl: 'live-events-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LiveEventsNavigationComponent implements OnInit, OnDestroy {\n @Input() event: EventModel;\n @HostBinding('class') className = 'event-details-left-menu';\n @ViewChild(TreeScrollDirective, { static: true }) treeScroll: TreeScrollDirective;\n tree?: BaseTreeItem;\n\n private stopped = false;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public navigationService: LiveEventsNavigationService,\n private routerHelper: RouterEventsService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private refreshService: LiveEventsNavigationRefreshService,\n private routeService: LiveEventsNavigationRouteService,\n private timerService: TimerService,\n private liveFavouriteFixturesService: LiveFavouriteFixturesService,\n private userService: UserService,\n private favouritesService: FavouritesService,\n private favouritesConfig: FavouritesConfig,\n private treeService: LiveEventsNavigationTreeService,\n private changeRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.navigationService.tree$.subscribe((tree) => {\n this.tree = tree;\n this.changeRef.markForCheck();\n });\n this.loadEvents();\n\n // switching to landscape doesnt trigger route activation start event, so listen also to component destroyed\n const stopProcessing$ = this.routeService.stopProcessing$.pipe(first());\n\n // we need this when navigating from betslip, betfinder etc.\n this.routerHelper.currentActivationEnd\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$))\n .subscribe((data) => this.activationEnd(data));\n\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$)).subscribe((events) => {\n this.navigationService.updateEvents(events);\n this.changeRef.markForCheck();\n });\n\n if (this.favouritesConfig.isLiveFavouritesEnabled) {\n this.liveFavouriteFixturesService.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.treeService.updateFavourites(this.tree);\n this.navigationService.refreshFavouritesTreeItem();\n this.changeRef.markForCheck();\n });\n\n this.favouritesService.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.userService.isAuthenticated) {\n this.liveFavouriteFixturesService.refresh(OfferMapping.MainMarkets);\n }\n this.changeRef.markForCheck();\n });\n }\n\n merge(this.refreshService.refresh$.pipe(map(this.refreshTree)), this.refreshService.reload$.pipe(map(this.reloadTree)))\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$))\n .subscribe((updateTree) => {\n this.treeScroll.preserveScrolling(updateTree);\n this.changeRef.markForCheck();\n });\n\n stopProcessing$.subscribe(() => {\n this.unsubscribe();\n });\n }\n\n ngOnDestroy(): void {\n this.navigationService.reset();\n this.unsubscribe();\n }\n\n onSelectEvent(event: EventModel): void {\n this.navigationService.selectEvent(event);\n }\n\n onToggleMarkets(sport: TreeItem): void {\n this.navigationService.toggleMarkets(sport);\n }\n\n toggleItem(item: TreeItem): void {\n switch (item.type) {\n case TreeItemType.Sport:\n this.toggleSport(item);\n break;\n case TreeItemType.League:\n this.toggleLeague(item);\n break;\n case TreeItemType.Favourite:\n case TreeItemType.FavouriteLeague:\n this.toggleFavourites(item);\n break;\n\n default:\n throw new Error(`Unknown TreeItemType: ${item.type}`);\n }\n }\n\n loadEvents(): void {\n this.navigationService.loadVisibleLeagues().subscribe(() => {\n this.scrollToEvent();\n this.changeRef.markForCheck();\n });\n }\n\n private refreshTree = (data: CountsFixturesResponse) => async () => this.navigationService.refreshTree(data);\n\n private reloadTree = (data: CountsFixturesResponse) => async () => this.navigationService.reloadTree(data);\n\n private toggleFavourites(item: TreeItem): void {\n if (item.type === TreeItemType.Favourite) {\n this.navigationService.toggleFavourites(item);\n } else {\n this.navigationService.toggleFavouriteLeague(item);\n }\n }\n\n private toggleSport(item: TreeItem): void {\n this.navigationService.toggleSport(item);\n }\n\n private toggleLeague(item: TreeItem): void {\n this.navigationService.toggleLeague(item);\n }\n\n private activationEnd(data?: ActivationEnd): void {\n if (data) {\n const event = data.snapshot.data['model'].model;\n if (event && event.live && !this.navigationService.isSelected(event.id)) {\n this.navigationService.selectEvent(event);\n this.expandEvent(event);\n }\n }\n }\n\n private scrollToEvent(): void {\n if (this.stopped) {\n return;\n }\n\n this.timerService.setTimeout(() => {\n this.treeScroll.scrollTo(this.navigationService.selectedEvent);\n }, 0);\n }\n\n private expandEvent(event: EventModel): void {\n this.navigationService.expandEvent(event).then(() => this.scrollToEvent());\n }\n\n private unsubscribe(): void {\n this.stopped = true;\n this.timerService.setTimeout(() => this.subscriptionsService.unsubscribeAll(), 0);\n }\n}\n","\n\n","export class PrematchNavState {\n showMarkets = true;\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { PrematchNavigationConfig, TournamentsDataConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, sportModelMethods } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { SessionStoreService } from '@frontend/vanilla/core';\nimport { sumBy, toString } from 'lodash-es';\nimport { EMPTY, Observable, filter, map, of, startWith, switchMap, timer } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { LeagueTreeItem } from '../../competition-list/competition-list.models';\nimport {\n BaseTreeItem,\n GroupedEvents,\n LeftNavType,\n NavEventModel,\n TreeItem,\n TreeItemType,\n} from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { NavigationEventMapperService } from '../navigation-mapper/navigation-event-mapper.service';\nimport { PrematchNavState } from './prematch-nav-state';\n\nexport interface LeagueParameters {\n leagueIds: number[];\n virtualLeagueIds: number[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PreMatchEventsNavigationService {\n private expandedLeagues = new Map();\n private sessionStoreKey = 'prematch-navigation-state';\n private isNavigationExpanded: boolean;\n\n // The initialEvent is needed for case when on refresh there are no events for the region and sport\n initialEvent: EventModel;\n isEventSelectedFromPrematch = false;\n state: PrematchNavState;\n\n constructor(\n private bettingService: BettingOfferApi,\n private navigationConfig: PrematchNavigationConfig,\n private store: SessionStoreService,\n private cacheService: SportsCacheService,\n private tournamentsConfig: TournamentsDataConfig,\n private eventMapperService: NavigationEventMapperService,\n private user: UserService,\n ) {\n this.state = this.store.get(this.sessionStoreKey) || new PrematchNavState();\n }\n\n getNavigationTree(event: EventModel): Observable {\n this.initialEvent = event;\n this.isNavigationExpanded = true;\n\n return this.getTree().pipe(\n map((tree) => {\n const region = tree.children[0];\n if (region.children.length) {\n const leagueExists = region.children.some((c) => c.id === getLeagueId(event));\n if (leagueExists) {\n const selectedLeague = getLeagueId(event);\n this.applyThreshold(region, selectedLeague);\n }\n }\n\n return tree;\n }),\n );\n }\n\n getObservableTree(): Observable {\n const interval = this.navigationConfig.pollingInterval * 1000;\n\n if (!interval) {\n return EMPTY;\n }\n\n return this.user.onAuthenticationChange$.pipe(\n map(() => 0),\n startWith(interval),\n switchMap((due) => timer(due, interval)),\n switchMap(() => (this.isNavigationExpanded && this.expandedLeagues.size > 0 ? this.getTreeWithEvents() : this.getTree())),\n );\n }\n\n getEventsForLeagues(leagueParameters: LeagueParameters): Observable {\n if (!leagueParameters.leagueIds.length && !leagueParameters.virtualLeagueIds.length) {\n return of({});\n }\n\n const request: FixtureRequest = {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(leagueParameters.leagueIds),\n virtualCompetitionIds: toString(leagueParameters.virtualLeagueIds),\n };\n\n return this.bettingService.getFixtureList(request).pipe(map((page) => this.eventMapperService.mapFixtures(page)));\n }\n\n getSportTree(sportId: number): Observable<{ sport: CountItem; tournaments: Tournament[] } | undefined> {\n return this.cacheService.getSport(sportId).pipe(\n map((sport) => {\n if (!sport) {\n return;\n }\n\n return {\n sport,\n tournaments: this.getValidTournaments(sportId),\n };\n }),\n );\n }\n\n toggleLeague(leagueId: number, isVirtual: boolean): void {\n if (this.expandedLeagues.has(leagueId)) {\n this.expandedLeagues.delete(leagueId);\n } else {\n this.expandedLeagues.set(leagueId, isVirtual);\n }\n }\n\n toggleRegion(): void {\n this.isNavigationExpanded = !this.isNavigationExpanded;\n }\n\n toggleMarkets(): void {\n this.state.showMarkets = !this.state.showMarkets;\n this.store.set(this.sessionStoreKey, this.state);\n }\n\n mapNavEvents(events: EventModel[]): NavEventModel[] {\n return events.map((event) => ({\n data: event,\n showMarkets: this.state.showMarkets,\n selected: false,\n }));\n }\n\n private fetchTree(): Observable {\n return this.bettingService\n .getPrematchEventTree(this.initialEvent.region.id, this.initialEvent.sport.id)\n .pipe(map((result) => sportModelMethods.fromTag(result)));\n }\n\n private getTree(): Observable {\n return this.fetchTree().pipe(map((tree) => this.mapTree(tree)));\n }\n\n private mapTree(countItems: CountItem[]): BaseTreeItem {\n const hasEvents = countItems && countItems.length > 0 && countItems[0].children.length > 0;\n const region = this.mapRegion(hasEvents);\n\n if (hasEvents) {\n const regionItem = countItems[0].children[0];\n regionItem.children.forEach((l) => region.children.push(this.mapLeague(l)));\n region.count = sumBy(regionItem.children, (l) => l.counts.preMatch + l.counts.live);\n }\n\n return {\n children: [region],\n };\n }\n\n private applyThreshold(region: TreeItem, selectedLeagueId: number): void {\n const exceedsTreshold = sumBy(region.children, (l) => l.count!) > this.navigationConfig.treshold;\n region.children.forEach((league) => {\n league.expanded = !exceedsTreshold || league.id === selectedLeagueId;\n if (league.expanded) {\n this.toggleLeague(league.id, !!league.isVirtual);\n }\n });\n }\n\n private mapRegion(hasEvents: boolean): TreeItem {\n const regionName = this.initialEvent.region.name;\n const regionFlag = this.initialEvent.sport.id === SportConstant.Tennis ? RegionConstant.World : this.initialEvent.region.id;\n\n return {\n id: this.initialEvent.region.id,\n name: regionName, // If sport is Tennis we want to show tournament name instead of \"World\" region\n type: TreeItemType.Region,\n selected: false,\n expanded: this.isNavigationExpanded,\n loading: false,\n icon: 'country-icon c' + regionFlag,\n class: hasEvents ? 'sport collapsible' : 'sport',\n children: [],\n events: [],\n collapsible: hasEvents,\n leftNavType: LeftNavType.Prematch,\n sportId: this.initialEvent.sport.id,\n toggleMarkets: this.state.showMarkets,\n };\n }\n\n private mapLeague(league: CountItem): TreeItem {\n return {\n id: league.id,\n name: league.name,\n type: TreeItemType.League,\n selected: false,\n expanded: this.expandedLeagues.has(league.id),\n loading: false,\n icon: '',\n count: league.counts.preMatch + league.counts.live,\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n leftNavType: LeftNavType.Prematch,\n sportId: this.initialEvent.sport.id,\n isVirtual: league.isVirtual,\n imageProfile: (league as unknown as LeagueTreeItem).imageProfile,\n };\n }\n\n private getTreeWithEvents(): Observable {\n const expandedLeaguesIds = (virtual: boolean) => {\n return Array.from(this.expandedLeagues.entries())\n .filter(([_, isVirtual]) => isVirtual === virtual)\n .map(([lId, _]) => lId);\n };\n\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: FixtureState.Latest,\n tagTypes: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n sortBy: SortByCriteria.Tags,\n sportIds: this.initialEvent.sport.id.toString(),\n },\n fixtureRequest: {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(expandedLeaguesIds(false)),\n virtualCompetitionIds: toString(expandedLeaguesIds(true)),\n sportIds: this.initialEvent.sport.id.toString(),\n },\n };\n\n if (this.initialEvent.sport.id === SportConstant.Tennis) {\n request.fixtureCountsRequest.tournamentIds = this.initialEvent.region.id.toString();\n } else {\n request.fixtureCountsRequest.regionIds = this.initialEvent.region.id.toString();\n }\n\n return this.bettingService.getCountsFixtures(request).pipe(\n filter((response) => !!response),\n map((countsFixtures) => {\n const counts = sportModelMethods.fromTag(countsFixtures!.counts);\n const tree = this.mapTree(counts);\n const groupedEvents = this.eventMapperService.mapFixtures(countsFixtures!.fixtures);\n\n tree.children[0].children.filter((l) => !!groupedEvents[l.id]).forEach((l) => (l.events = this.mapNavEvents(groupedEvents[l.id])));\n\n return tree;\n }),\n );\n }\n\n private getValidTournaments(sportId: number): Tournament[] {\n return this.tournamentsConfig.tournaments.filter((tournament) => this.filterTournament(tournament, sportId));\n }\n\n private filterTournament(tournament: Tournament, sportId: number): boolean {\n return Boolean(tournament.navigation?.filter?.visible && tournament.leaguesSection?.sport?.id.toString() === sportId.toString());\n }\n}\n","\n\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectorRef, Component, DestroyRef, HostBinding, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport produce from 'immer';\nimport { clone, flatten, sumBy } from 'lodash-es';\nimport { firstValueFrom } from 'rxjs';\n\nimport { CompetitionTreeComponent } from '../../competition-list/competition-tree.component';\nimport { BaseTreeItem, NavEventModel, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { TreeComponent } from '../../event-details-common/tree/tree.component';\nimport { LiveEventsNavigationSubscriptionService } from '../live-events-navigation/live-events-navigation-subscription.service';\nimport { NavigationTrackingService } from '../navigation-tracking/navigation-tracking.service';\nimport { LeagueParameters, PreMatchEventsNavigationService } from './prematch-events-navigation.service';\n\n@Component({\n selector: 'ms-prematch-events-navigation',\n templateUrl: 'prematch-events-navigation.component.html',\n providers: [LiveEventsNavigationSubscriptionService, NavigationTrackingService],\n standalone: true,\n imports: [CompetitionTreeComponent, TreeComponent, NgIf],\n})\nexport class PrematchEventsNavigationComponent implements OnInit, OnDestroy {\n @Input() tree: BaseTreeItem;\n @Input() selectedEvent: EventModel;\n @HostBinding('class') className = 'event-details-left-menu prematch-nav';\n\n sport?: CountItem;\n tournaments?: Tournament[];\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private navService: PreMatchEventsNavigationService,\n private routerHelper: RouterEventsService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private scrollContainerService: ScrollContainerService,\n private trackingService: NavigationTrackingService,\n private changeRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initNavModel();\n this.routerHelper.currentActivationEnd.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data) => this.activationEnd(data));\n\n this.navService\n .getObservableTree()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((tree) => this.updateTree(tree));\n\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => this.updateEvents(event));\n }\n\n async initNavModel(): Promise {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const leagueParameters: LeagueParameters = {\n leagueIds: [],\n virtualLeagueIds: [],\n };\n\n draft.children[0].children\n .filter((l) => l.expanded)\n .forEach((l) => {\n l.loading = true;\n if (l.isVirtual) {\n leagueParameters.virtualLeagueIds.push(l.id);\n } else {\n leagueParameters.leagueIds.push(l.id);\n }\n });\n\n if (leagueParameters.leagueIds.length !== 0 || leagueParameters.virtualLeagueIds.length !== 0) {\n this.getEvents(leagueParameters).then(() => this.scrollContainerService.scrollTo(undefined, 0));\n }\n });\n\n const sportTree = await firstValueFrom(this.navService.getSportTree(this.selectedEvent.sport.id));\n if (sportTree) {\n this.sport = sportTree.sport;\n this.tournaments = sportTree.tournaments;\n }\n }\n\n toggleItem(item: TreeItem): void {\n if (item.type === TreeItemType.League) {\n this.navService.toggleLeague(item.id, !!item.isVirtual);\n this.toggleLeague(item);\n } else if (item.type === TreeItemType.Region && item.collapsible) {\n this.navService.toggleRegion();\n this.toggleRegion();\n }\n }\n\n select(event: EventModel): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n\n this.setSelection(region, this.selectedEvent, false);\n this.setSelection(region, event, true);\n\n this.selectedEvent = event;\n this.navService.isEventSelectedFromPrematch = true;\n });\n }\n\n onToggleMarkets(): void {\n this.navService.toggleMarkets();\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n this.trackingService.trackMarketsToggle(this.navService.state.showMarkets, region.leftNavType);\n region.toggleMarkets = this.navService.state.showMarkets;\n this.getNavEvents(region, true).forEach((e) => (e.showMarkets = this.navService.state.showMarkets));\n });\n }\n\n private toggleRegion(): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n region.expanded = !region.expanded;\n this.trackingService.trackRegionToggle(region);\n\n const expandedLeagues = region.children.filter((l) => l.expanded);\n if (expandedLeagues.length > 0) {\n this.modifyLeaguesState(expandedLeagues, region.expanded);\n }\n });\n }\n\n private toggleLeague(item: TreeItem): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const league = draft.children[0].children.find((l) => l.id === item.id)!;\n league.expanded = !league.expanded;\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n this.modifyLeaguesState([league], league.expanded);\n });\n }\n\n private modifyLeaguesState(leagues: TreeItem[], eventsExpanded: boolean): void {\n if (eventsExpanded) {\n leagues.forEach((l) => (l.loading = true));\n const leagueParameters: LeagueParameters = {\n leagueIds: leagues.filter((l) => !l.isVirtual).map((l) => l.id),\n virtualLeagueIds: leagues.filter((l) => l.isVirtual).map((l) => l.id),\n };\n\n this.getEvents(leagueParameters);\n } else {\n const subscribedEvents: EventModel[] = [];\n leagues.forEach((league) => {\n subscribedEvents.push(...league.events.map((e) => e.data));\n league.events = [];\n });\n this.subscriptionsService.unsubscribe(subscribedEvents);\n }\n }\n\n private async getEvents(leagueParameters: LeagueParameters): Promise {\n //TODO R: looks like a memory leak\n this.navService\n .getEventsForLeagues(leagueParameters)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groupedEvents) => {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n region.children\n .filter((league) => !!groupedEvents[league.id])\n .forEach((league) => {\n const mappedEvents = this.navService.mapNavEvents(groupedEvents[league.id]);\n league.events = mappedEvents;\n league.count = mappedEvents.length;\n league.loading = false;\n });\n\n this.setSelection(region, this.selectedEvent, true);\n region.count = sumBy(region.children, (l) => l.count!);\n });\n\n const all = leagueParameters.leagueIds.length + leagueParameters.virtualLeagueIds.length !== 1;\n const leagueId = leagueParameters.leagueIds[0] || leagueParameters.virtualLeagueIds[0];\n const navEvents = this.getNavEvents(this.tree.children[0], all, leagueId).map((e) => e.data);\n this.changeRef.markForCheck();\n this.subscriptionsService.subscribe(navEvents);\n });\n }\n\n private setSelection(region: TreeItem, event: EventModel, selected: boolean): void {\n const league = region.children.find((l) => l.id === getLeagueId(event));\n if (!league) {\n return;\n }\n\n league.selected = selected;\n\n const currentEvent = league.events.find((e) => e.data.id === event.id);\n if (!currentEvent) {\n return;\n }\n\n currentEvent.selected = selected;\n }\n\n private activationEnd(data?: ActivationEnd): void {\n if (data) {\n const event = data.snapshot.data['model'].model;\n if (event && this.selectedEvent.id !== event.id) {\n this.select(event);\n this.expandLeague(event);\n }\n }\n this.changeRef.markForCheck();\n }\n\n private expandLeague(event: EventModel): void {\n const league = this.tree.children[0].children.find((l) => l.id === getLeagueId(event));\n if (league && !league.expanded) {\n this.toggleLeague(league);\n }\n }\n\n private updateTree(updatedTree: BaseTreeItem): void {\n const region = updatedTree.children[0];\n const subscribedEvents: EventModel[] = [];\n if (region.expanded && region.children.some((l) => l.expanded)) {\n const navEvents = this.getNavEvents(region, true);\n subscribedEvents.push(...navEvents.map((e) => e.data));\n }\n\n this.setSelection(region, this.selectedEvent, true);\n this.subscriptionsService.refreshSubscriptions(subscribedEvents);\n this.tree = updatedTree;\n this.changeRef.markForCheck();\n }\n\n private updateEvents(events: EventModel[]): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n events.forEach((event) => {\n const league = draft.children[0].children.find((l) => l.id === getLeagueId(event));\n if (!league) {\n return;\n }\n\n const oldEventIndex = league.events.findIndex((e) => e.data.id === event.id);\n if (oldEventIndex !== -1) {\n league.events[oldEventIndex] = {\n data: clone(event),\n selected: event.id === this.selectedEvent.id,\n showMarkets: this.navService.state.showMarkets,\n };\n }\n });\n });\n this.changeRef.markForCheck();\n }\n\n private getNavEvents(region: TreeItem, all: boolean, leagueId?: number): NavEventModel[] {\n const navEvents = region.children.filter((l) => (all ? l.expanded : l.id === leagueId)).map((l) => l.events);\n\n return flatten(navEvents);\n }\n\n ngOnDestroy(): void {\n this.navService.isEventSelectedFromPrematch = false;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { LiveNavigationConfig, PrematchNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Subscription, firstValueFrom } from 'rxjs';\n\nimport { EmptyComponent } from '../common/empty.component';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { ColumnLayoutRegister } from '../layout/column-register.service';\nimport { ColumnComponentRegistration, LayoutColumn } from '../layout/layout.model';\nimport { EventDetailsComponent } from './event-details.component';\nimport { LiveEventsNavigationComponent } from './live-events-navigation/live-events-navigation.component';\nimport { LiveEventsNavigationService } from './live-events-navigation/live-events-navigation.service';\nimport { NavigationStateService } from './navigation-state/navigation-state.service';\nimport { PrematchEventsNavigationComponent } from './prematch-events-navigation/prematch-events-navigation.component';\nimport { PreMatchEventsNavigationService } from './prematch-events-navigation/prematch-events-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationLayoutService {\n private isRegistered: boolean;\n private selectedEvent: EventModel;\n private currentRegistered: Type;\n private layoutChangedSubscription: Subscription | null;\n\n constructor(\n private columnLayoutService: ColumnLayoutService,\n private columnLayoutRegister: ColumnLayoutRegister,\n private routerEvents: RouterEventsService,\n private liveNavService: LiveEventsNavigationService,\n private prematchNavService: PreMatchEventsNavigationService,\n private eventDetailsStateService: NavigationStateService,\n private liveNavConfig: LiveNavigationConfig,\n private prematchNavConfig: PrematchNavigationConfig,\n ) {\n this.routerEvents.currentActivationEnd.subscribe((route) => this.activationEnd(route));\n }\n\n register(event: EventModel): void {\n this.selectedEvent = event;\n\n if (!this.layoutChangedSubscription) {\n this.layoutChangedSubscription = this.columnLayoutService.layoutChanged.subscribe(() => {\n if (this.canBeRegistered()) {\n this.register(this.selectedEvent);\n } else {\n this.unregister();\n }\n });\n }\n\n if (!this.canBeRegistered()) {\n return;\n }\n\n // check if the same navigation is already registered\n if (this.isCorrectNavRegistered(event)) {\n return;\n }\n\n this.unregister();\n\n if (event.live && this.liveNavConfig.isLiveEventsNavigationEnabled) {\n this.addLeftNavPlaceholder();\n this.registerLiveNav(event);\n } else if (!event.live && this.prematchNavConfig.isPrematchEventsNavigationEnabled) {\n this.addLeftNavPlaceholder();\n this.registerPrematchNav(event);\n }\n }\n\n unregister(): void {\n if (this.isRegistered) {\n this.removeLeftNavPlaceholder();\n this.columnLayoutService.remove(this.currentRegistered, LayoutColumn.Left);\n this.isRegistered = false;\n this.eventDetailsStateService.removeLeftNavigation();\n }\n }\n\n private async registerLiveNav(event: EventModel): Promise {\n const tree = await this.liveNavService.initFromEvent(event);\n const componentData: ColumnComponentRegistration = {\n component: LiveEventsNavigationComponent,\n location: LayoutColumn.Left,\n inputs: { tree, event },\n };\n\n this.columnLayoutRegister.register(componentData);\n this.currentRegistered = componentData.component;\n this.isRegistered = true;\n this.eventDetailsStateService.setLeftNavigation(true);\n }\n\n private async registerPrematchNav(event: EventModel): Promise {\n const tree = await firstValueFrom(this.prematchNavService.getNavigationTree(event));\n if (!tree?.children.length || !tree.children[0].children.length) {\n this.removeLeftNavPlaceholder();\n\n return;\n }\n\n const componentData: ColumnComponentRegistration = {\n component: PrematchEventsNavigationComponent,\n inputs: { tree, selectedEvent: event },\n location: LayoutColumn.Left,\n };\n\n this.columnLayoutRegister.register(componentData);\n this.currentRegistered = componentData.component;\n this.isRegistered = true;\n this.eventDetailsStateService.setLeftNavigation(false);\n }\n\n private canBeRegistered(): boolean {\n return this.columnLayoutService.layout.shouldHaveThreeColumns;\n }\n\n private addLeftNavPlaceholder(): void {\n const componentData: ColumnComponentRegistration = {\n component: EmptyComponent,\n location: LayoutColumn.Left,\n };\n this.columnLayoutRegister.register(componentData);\n }\n\n private removeLeftNavPlaceholder(): void {\n this.columnLayoutService.remove(EmptyComponent, LayoutColumn.Left);\n }\n\n private isCorrectNavRegistered(event: EventModel): boolean {\n if (!this.isRegistered) {\n return false;\n }\n\n if (this.eventDetailsStateService.isLiveNavRegistered && event.live) {\n return true;\n }\n\n const isPrematchEvent = this.prematchNavService.isEventSelectedFromPrematch || !event.live;\n const sameSport = this.prematchNavService.initialEvent?.sport.id === event.sport?.id;\n\n return this.eventDetailsStateService.isPrematchNavRegistered && isPrematchEvent && sameSport;\n }\n\n private activationEnd(route: ActivationEnd | undefined): void {\n if (route && route.snapshot.component !== EventDetailsComponent) {\n if (this.isRegistered) {\n this.unregister();\n }\n\n if (this.layoutChangedSubscription) {\n this.layoutChangedSubscription.unsubscribe();\n this.layoutChangedSubscription = null;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nimport { EventDetailsConfig, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { firstValueFrom } from 'rxjs';\n\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsViewModelFetcher } from '../event-details-common/event-details-view-model-fetcher.service';\nimport { WidgetContextService } from '../widget/common/widget-context.service';\nimport { BaseEventDetailsResolver } from './base-event-details.resolver';\nimport { NavigationLayoutService } from './navigation-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsResolver extends BaseEventDetailsResolver {\n constructor(\n protected override navLayoutService: NavigationLayoutService,\n protected override eventDetailsViewModelResolver: EventDetailsViewModelFetcher,\n private stylesService: StylesLazyLoadingService,\n public override sitecoreEventDetails: SitecoreEventDetailsConfig,\n private eventDetailsConfig: EventDetailsConfig,\n private context: WidgetContextService,\n ) {\n super(navLayoutService, eventDetailsViewModelResolver, sitecoreEventDetails);\n }\n\n override async resolve(route: ActivatedRouteSnapshot): Promise {\n return super.resolve(route);\n }\n\n async loadStyles(): Promise {\n await this.stylesService.lazyLoad('event-details');\n }\n\n preResolve(route: ActivatedRouteSnapshot) {\n super.baseResolve(route);\n }\n\n modalResolve(route: ActivatedRouteSnapshot): Promise {\n return super.baseResolve(route);\n }\n\n async extendViewModel(route: ActivatedRouteSnapshot, detailedViewModel: DetailedEventViewModel): Promise {\n if (this.eventDetailsConfig.enableEventPageModular) {\n const updatedParams: Params = {\n ...route.params,\n fixtureStage: detailedViewModel.fixture?.stage,\n sport: detailedViewModel.fixture?.sport.id,\n region: detailedViewModel.fixture?.region.id,\n league: detailedViewModel.fixture?.competition.id,\n isVirtual: detailedViewModel.fixture?.isVirtual,\n virtualCompetitionGroup: detailedViewModel.virtualCompetitionDetails?.group,\n };\n const updatedRoute: ActivatedRouteSnapshot = {\n ...route,\n params: updatedParams,\n };\n detailedViewModel.widgetLayoutResponse = await firstValueFrom(\n this.context.getLayout(this.context.getContext({ snapshot: updatedRoute })),\n );\n }\n\n return detailedViewModel;\n }\n}\n","@if (userService.isAuthenticated) {\n \n}\n\n
\n
\n \n
\n \n
\n\n","import { Component, DestroyRef, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DeviceService, UserService } from '@frontend/vanilla/core';\nimport { distinctUntilChanged, skip } from 'rxjs';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsModalService } from './event-details-modal.service';\nimport { EventDetailsResolver } from './event-details.resolver';\n\n@Component({\n selector: 'ms-event-details-modal',\n templateUrl: './event-details-modal.component.html',\n})\nexport class EventDetailsModalComponent {\n @Input() detailedEventModel: DetailedEventViewModel;\n @Input() route: ActivatedRouteSnapshot;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private eventDetailsModalService: EventDetailsModalService,\n private eventDetailsResolver: EventDetailsResolver,\n private deviceService: DeviceService,\n public userService: UserService,\n ) {\n this.deviceService.orientation.pipe(distinctUntilChanged(), skip(1), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.updateData());\n }\n\n close(): void {\n this.eventDetailsModalService.close();\n }\n\n private async updateData(): Promise {\n this.detailedEventModel = await this.eventDetailsResolver.modalResolve(this.route);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { RegionVisibilityService } from '@frontend/sports/betting-offer/feature/region-visibility';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { Observable, debounceTime, map } from 'rxjs';\n\nimport { BreadcrumbModel } from '../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbSlotResolve, BreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { EventDetailsBreadcrumbComponent } from './event-details-breadcrumb.component';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private urlHelper: UrlHelperService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private competitionLogosService: CompetitionLogosService,\n private adaptiveLayout: AdaptiveLayoutService,\n private regionVisibilityService: RegionVisibilityService,\n ) {\n super();\n }\n\n protected customResolve(viewModel: DetailedEventViewModel): Observable {\n return this.sitecoreEventDetails.whenReady.pipe(\n debounceTime(10),\n map(() => {\n if (!viewModel || !viewModel.model || !viewModel.model.published) {\n return [];\n }\n\n const event = viewModel.model;\n const crumbs = this.getCrumbs(event);\n\n if (this.adaptiveLayout.current.headerSubNavigation || this.adaptiveLayout.current.columns < 3) {\n return {\n component: EventDetailsBreadcrumbComponent,\n schemaBreadcrumbs: crumbs,\n };\n } else {\n return crumbs;\n }\n }),\n );\n }\n\n protected getCrumbs(event: EventModel): BreadcrumbModel[] {\n const name = event.name;\n let title = this.regionVisibilityService.shouldHide(event.region, event.league)\n ? `${event.league.name}`\n : `${event.region.name} | ${event.league.name}`;\n\n if (name.toLowerCase().includes(this.sitecoreEventDetails.eventDetails.NeutralVenue.toLowerCase())) {\n title += ` - ${this.sitecoreEventDetails.eventDetails.NeutralVenue}`;\n }\n const isWithRightImage = !!this.competitionLogosService.getLogoUrl(event.sport.id, event.league.id) || !!event.league.imageProfile;\n\n return [\n this.createCrumb({\n icon: '',\n title,\n url: this.urlHelper.getEventUrl(event),\n sportId: event.sport.id,\n leagueId: event.league.id,\n isWithRightImage,\n imageProfile: event.league.imageProfile,\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, UrlTree } from '@angular/router';\n\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\n\nimport { EventDetailsModalService } from './event-details-modal.service';\nimport { EventDetailsResolver } from './event-details.resolver';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsModalGuard implements CanActivate {\n constructor(\n private eventDetailsModalService: EventDetailsModalService,\n private eventDetailsConfig: EventDetailsConfig,\n private eventDetailsResolver: EventDetailsResolver,\n private routerEventsService: RouterEventsService,\n ) {}\n\n async canActivate(route: ActivatedRouteSnapshot): Promise {\n if (this.eventDetailsConfig.showInOverlay && !this.routerEventsService.isDirectLink) {\n const eventData = await this.eventDetailsResolver.modalResolve(route);\n this.eventDetailsModalService.openOrUpdateModal(eventData, route, this.routerEventsService.urlHistory);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\n\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { LiveEventsNavigationService } from './live-events-navigation/live-events-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsGuard {\n constructor(\n private redirectHelperService: RedirectHelperService,\n private urlHelperService: UrlHelperService,\n private eventsNavService: LiveEventsNavigationService,\n private liveNavConfig: LiveNavigationConfig,\n private router: Router,\n ) {}\n\n async canActivate(): Promise {\n if (!this.liveNavConfig.isLiveEventsNavigationEnabled) {\n this.redirectHelperService.goHome();\n }\n\n const defaultEvent = await this.eventsNavService.initFromDefaultEvent();\n\n if (defaultEvent) {\n const eventUrl = this.urlHelperService.getEventUrl(defaultEvent);\n\n return this.router.parseUrl(eventUrl);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { LiveNavigationConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { SportSubNavigationService } from '../event-list-shared/sport/sport-sub-navigation.service';\nimport { LiveSubnavTabs, createSubnavTabs } from '../event-list/navigation/live-subnavigation.models';\nimport { AdaptiveLayoutState } from '../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { SubNavigationResolve } from '../sub-navigation/sub-navigation-resolve.service';\nimport { SubNavigationItem } from '../sub-navigation/sub-navigation.models';\n\n@Injectable()\nexport class EventViewSubNavigationResolve extends SubNavigationResolve {\n constructor(\n private layoutManager: ColumnLayoutService,\n private liveNavConfig: LiveNavigationConfig,\n private sitecore: Sitecore,\n private urlHelperService: UrlHelperService,\n private sportSubNavService: SportSubNavigationService,\n ) {\n super();\n this.tabs$.next(this.getDefaultTabs());\n }\n\n buildSubNavigation(layout: AdaptiveLayoutState, routeSnapshot: ActivatedRouteSnapshot, model: DetailedEventViewModel): void {\n if (\n !this.liveNavConfig.isLiveEventsNavigationEnabled ||\n this.layoutManager.layout.maxColumnCount < 3 ||\n !this.isDetailedEventViewModel(model)\n ) {\n this.tabs$.next([]);\n\n return;\n }\n\n if (!model.model!.live || this.isPrematchLeftNavigationOpened()) {\n this.sportSubNavService.resolveTabs(layout, routeSnapshot, model.model!.sport.id).subscribe((items) => this.tabs$.next(items));\n\n return;\n }\n\n this.tabs$.next(this.getDefaultTabs());\n }\n\n private getDefaultTabs(): SubNavigationItem[] {\n return createSubnavTabs(this.urlHelperService, this.sitecore, LiveSubnavTabs.EventView);\n }\n\n private isDetailedEventViewModel(model: DetailedEventViewModel): model is DetailedEventViewModel {\n if (model.model) {\n return true;\n }\n\n return false;\n }\n\n private isPrematchLeftNavigationOpened(): boolean {\n return this.layoutManager.layout.registeredComponents().some((c) => c.component.name === 'PrematchEventsNavigationComponent');\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 { EmptyComponent } from '../common/empty.component';\nimport { nameIdentifierMatcher } from '../router/name-identifier.matcher';\nimport { use } from '../router/router.resolver';\nimport { SitemapRoutingToken } from '../sitemap/sitemap-routing';\nimport { EventDetailsBreadcrumbsResolver } from './event-details-breadcrumb.resolver';\nimport { EventDetailsModalGuard } from './event-details-modal.guard';\nimport { EventDetailsComponent } from './event-details.component';\nimport { EventDetailsGuard } from './event-details.guard';\nimport { EventDetailsResolver } from './event-details.resolver';\nimport { EventViewSubNavigationResolve } from './event-view-subnavigation.resolve';\n\nconst routes = [\n {\n path: '',\n canActivate: [EventDetailsGuard],\n component: EmptyComponent,\n },\n {\n matcher: nameIdentifierMatcher,\n component: EventDetailsComponent,\n canActivate: [EventDetailsModalGuard],\n resolve: use(EventDetailsResolver),\n data: {\n matcherParam: 'event',\n htmlClass: 'event-details-page',\n tag: RouteTag.EventDetails,\n breadcrumbs: EventDetailsBreadcrumbsResolver,\n subNavigation: EventViewSubNavigationResolve,\n sitemap: SitemapRoutingToken.EventDetailsSitemapResolver,\n shouldKeepBreadcrumbs: true,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(EventDetailsResolver).preResolve(route);\n },\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EventDetailsRoutingModule {}\n","
\n
{{ title }}
\n \n
\n \n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { OfferSource } from '@cds';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { produce } from 'immer';\nimport { clone, flatten } from 'lodash-es';\nimport { skip } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { BaseTreeItem, LeftNavType, TreeItem, TreeItemType } from '../../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../../event-details-common/event-details-common.utils';\nimport { TreeScrollDirective } from '../../../event-details-common/tree/tree-scroll.directive';\nimport { LiveEventsNavigationSubscriptionService } from '../../live-events-navigation/live-events-navigation-subscription.service';\nimport { EventSwitcherTrackingService } from '../event-switcher-tracking.service';\nimport { EventSwitcherToggleService } from '../services/event-switcher-toggle.service';\n\n@Component({\n selector: 'ms-event-switcher-navigation',\n templateUrl: './event-switcher-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventSwitcherNavigationComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() tree: BaseTreeItem;\n @Input() event: EventModel;\n @Input() showHeader: boolean;\n\n @ViewChild(TreeScrollDirective, { static: true }) treeScroll: TreeScrollDirective;\n\n private readonly _doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private trackingService: EventSwitcherTrackingService,\n private toggleService: EventSwitcherToggleService,\n private epcotConfigService: EpcotConfigService,\n private routerEventsService: RouterEventsService,\n ) {}\n\n ngOnInit(): void {\n this.subscribeEvents();\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((events) => this.updateEvents(events));\n this.routerEventsService.currentActivationEnd.pipe(skip(1), takeUntilDestroyed(this.destroyRef)).subscribe((_) => this.close());\n }\n\n ngAfterViewInit(): void {\n if (!this.epcotConfigService.isEnabled()) {\n const headerElement = this._doc.querySelector(`.slot-header`);\n\n if (headerElement) {\n this._doc\n .querySelectorAll('.event-switcher-dialog')!\n .forEach((s) => (s.style.height = `calc(100% - ${headerElement.clientHeight}px)`));\n }\n }\n\n this.treeScroll.scrollToCenterOrTop(this.event);\n }\n\n ngOnDestroy(): void {\n this.subscriptionsService.unsubscribeAll();\n }\n\n toggleItem(item: TreeItem): void {\n if (item.type === TreeItemType.League) {\n this.toggleLeague(item);\n } else {\n return;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n onSelectEvent(selectedEvent: EventModel): void {\n this.trackingService.trackEventSelect(this.event.id, selectedEvent.id, selectedEvent.name, selectedEvent.live);\n }\n\n close(): void {\n this.toggleService.close();\n this.trackingService.trackClose(this.event.id, this.event.live);\n }\n\n get title(): string {\n return this.event.live\n ? this.sitecoreEventDetails.eventDetails.EventSwitcherLiveTitle\n : this.sitecoreEventDetails.eventDetails.EventSwitcherPrematchTitle;\n }\n\n private toggleLeague(item: TreeItem): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const league = draft.children.find((l) => l.id === item.id)!;\n league.expanded = !league.expanded;\n league.events.forEach((e) => (e.hidden = !e.hidden));\n });\n }\n\n private subscribeEvents(): void {\n const events = flatten([...this.tree.children[0].events, ...this.tree.children[0].children.map((league) => league.events)])\n .map((e) => e.data)\n .filter((event) => event.offerSource === OfferSource.V2 || event.live);\n\n this.subscriptionsService.subscribe(events);\n }\n\n private updateEvents(events: EventModel[]): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => events.forEach((event) => this.findAndUpdateEvent(event, draft.children[0])));\n\n this.changeDetectorRef.markForCheck();\n }\n\n private findAndUpdateEvent(event: EventModel, draft: TreeItem): void {\n const league = draft.leftNavType === LeftNavType.Competition ? draft : draft.children.find((l) => l.id === getLeagueId(event));\n\n const oldEventIndex = league?.events.findIndex((e) => e.data.id === event.id) ?? -1;\n if (oldEventIndex >= 0) {\n league!.events[oldEventIndex].data = clone(event);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { WhenOverflowedDirective } from '@frontend/sports/common/ui/overflow';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { ParticipantImageComponent } from '@frontend/sports/participant-image/feature';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { DsPill } from '@frontend/ui/pill';\nimport { LoginDurationComponent } from '@frontend/vanilla/features/login-duration';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { RxIf } from '@rx-angular/template/if';\nimport { NgxPopperjsModule } from 'ngx-popperjs';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\n\nimport { BetBuilderButtonComponent } from '../betbuilder/components/button/betbuilder-button.component';\nimport { BetBuilderCustomMessageComponent } from '../betbuilder/components/custom-message/betbuilder-custom-message.component';\nimport { BetBuilderHelpComponent } from '../betbuilder/components/help/betbuilder-help.component';\nimport { ErrorComponent } from '../common/error/error.component';\nimport { ItemComponent } from '../common/item/item.component';\nimport { CompetitionTreeComponent } from '../competition-list/competition-tree.component';\nimport { CrmPromotionContainerModule } from '../crm-promotion-container/crm-promotion-container.module';\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { DropdownModule } from '../dropdown/dropdown.module';\nimport { EventDetailsCommonModule } from '../event-details-common/event-details-common.module';\nimport { EventDetailsViewModelService } from '../event-details-common/event-details-view-model.service';\nimport { EventHeaderTabsComponent } from '../event-details-common/header/tab-group/event-header-tabs.component';\nimport { TreeScrollDirective } from '../event-details-common/tree/tree-scroll.directive';\nimport { FavouritesModule } from '../favourites/favourites.module';\nimport { GridModule } from '../grid/grid.module';\nimport { MyBetsBaseModule } from '../my-bets-base/my-bets-base.module';\nimport { NativeAlertsModule } from '../native-alerts/native-alerts.module';\nimport { NavigationCoreModule } from '../navigation-core/navigation-core.module';\nimport { NavigationModule } from '../navigation/navigation.module';\nimport { OptionGroupListComponent } from '../option-group/option-group-list.component';\nimport { OptionSheetViewModule } from '../option-sheet-view/option-sheet-view.module';\nimport { TabBarModule } from '../tab-bar/tab-bar.module';\nimport { TimerModule } from '../timers/timer.module';\nimport { WidgetCoreModule } from '../widget/core/widget-core.module';\nimport { BetBuilderOnboardingComponent } from './bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component';\nimport { BetbuilderMarketListComponent } from './bet-builder-v2/market-list/betbuilder-market-list.component';\nimport { OverlayTriggerBannerComponent } from './bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component';\nimport { BetBuilderViewComponent } from './bet-builder-view.component';\nimport { EventDetailsBreadcrumbComponent } from './event-details-breadcrumb.component';\nimport { EventDetailsModalComponent } from './event-details-modal.component';\nimport { EventDetailsRoutingModule } from './event-details-routing.module';\nimport { EventDetailsComponent } from './event-details.component';\nimport { EventSwitcherNavigationComponent } from './event-switcher/event-switcher-navigation/event-switcher-navigation.component';\nimport { EventSwitcherComponent } from './event-switcher/event-switcher/event-switcher.component';\nimport { EventViewSubNavigationResolve } from './event-view-subnavigation.resolve';\nimport { HeaderSubNavigationComponent } from './header/header-sub-navigation.component';\nimport { HeaderComponent } from './header/header.component';\nimport { LiveEventsNavigationComponent } from './live-events-navigation/live-events-navigation.component';\n\nconst declarations = [\n EventDetailsComponent,\n EventSwitcherComponent,\n EventSwitcherNavigationComponent,\n LiveEventsNavigationComponent,\n BetBuilderViewComponent,\n HeaderComponent,\n HeaderSubNavigationComponent,\n EventDetailsModalComponent,\n];\n\nconst imports = [\n AutomationModule,\n CommonModule,\n CompetitionLogoComponent,\n CrmPromotionContainerModule,\n CrmPromotionModule,\n ComponentProxyDirective,\n DirectivesModule,\n DropdownModule,\n FavouritesModule,\n GridModule,\n MyBetsBaseModule,\n NativeAlertsModule,\n NavigationCoreModule,\n NavigationModule,\n NgxPopperjsModule,\n ParticipantImageComponent,\n NgScrollbarModule,\n TabBarModule,\n TimerModule,\n TooltipModule,\n EventDetailsCommonModule,\n AutomationModule,\n WidgetCoreModule,\n OptionSheetViewModule,\n EventHeaderTabsComponent,\n BetBuilderCustomMessageComponent,\n BetBuilderButtonComponent,\n BetBuilderHelpComponent,\n];\n\n@NgModule({\n imports: [\n imports,\n ErrorComponent,\n ItemComponent,\n ScrollAdapterComponent,\n WhenOverflowedDirective,\n RxIf,\n DsPill,\n BetBuilderOnboardingComponent,\n BetbuilderMarketListComponent,\n OverlayTriggerBannerComponent,\n TreeScrollDirective,\n OptionGroupListComponent,\n CompetitionTreeComponent,\n DsButtonIcon,\n IconCustomComponent,\n EventDetailsBreadcrumbComponent,\n LoginDurationComponent,\n ],\n declarations,\n})\nexport class EventDetailsWithoutRoutingModule {}\n\n@NgModule({\n imports: [EventDetailsWithoutRoutingModule, EventDetailsRoutingModule],\n providers: [EventViewSubNavigationResolve, EventDetailsViewModelService],\n})\nexport class EventDetailsModule {\n readonly eventSwitcherComponent = EventSwitcherComponent;\n}\n"],"names":["ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","customMessage","BetBuilderCustomMessageComponent","constructor","betBuilderConfig","ngOnInit","_a","_b","messages","customMessages","event","sport","id","find","message","key","league","toString","toLowerCase","ɵɵdirectiveInject","BetBuilderConfig","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","BetBuilderCustomMessageComponent_div_0_Template","ɵɵproperty","NgIf","encapsulation","changeDetection","_BetBuilderCustomMessageComponent","DsBadge","elementRef","size","input","variant","disabled","transform","booleanAttribute","inverse","hostClass","computed","getAriaLabel","label","nativeElement","querySelector","textContent","trim","ElementRef","k","hostAttrs","hostVars","hostBindings","ai","ɵɵclassMap","ɵɵclassProp","ɵɵprojection","_DsBadge","EventHeaderTabsTooltipService","tooltipShownCount","localStoreService","get","localKey","eventDetailsConfig","openTillClosed","shouldShowTooltip","provider","tabBarTooltipViewsThreshold","increaseCount","set","closeTooltip","ɵɵinject","EventDetailsConfig","LocalStoreService","factory","ɵfac","providedIn","_EventHeaderTabsTooltipService","G","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onPopperShown","g","tooltipPopper","sitecore","globalMessages","NewBadgeText","ɵɵelement","tab_r3","count","active","selectedTabBubbleVariant","ɵɵtextInterpolate1","EventHeaderTabsComponent_For_2_ng_template_1_Conditional_5_Conditional_0_Template","EventHeaderTabsComponent_For_2_ng_template_1_Conditional_5_Conditional_1_Template","ɵɵconditional","showSignPost","EventHeaderTabsComponent_For_2_ng_template_1_Conditional_3_Template","EventHeaderTabsComponent_For_2_ng_template_1_Conditional_4_Template","EventHeaderTabsComponent_For_2_ng_template_1_Conditional_5_Template","url","title","hasTooltip","hasNewBadge","EventHeaderTabsComponent_For_2_ng_template_1_Template","_r4","tooltip","shouldShow","EventHeaderTabsComponent","tooltipService","strategy","activeTab","EventEmitter","listItems","signal","viewListItems","map","tab","__spreadProps","__spreadValues","displayTooltip","betBuilderTabId","SetTab","BetBuilder","activeName","_c","_d","t","ngZone","inject","NgZone","ngOnChanges","changes","updateItems","betBuilderInfo","betBuilderId","BetBuilderAngstromTooltip","BetBuilderComboTooltip","betBuilderProvider","selected","name","selectedTab","tabs","forEach","update","schedule","emit","scope","patchZone","subscribe","onDocumentResize","item","isSgp","Sitecore","RxStrategyProvider","viewQuery","$event","ɵɵrepeaterCreate","EventHeaderTabsComponent_For_2_Template","_forTrack0","EventHeaderTabsComponent_Conditional_4_Template","ɵɵrepeater","CommonModule","DsTabsModule","DsTab","DsTabsGroup","DsTabHeader","PriceboostCountSignpostComponent","TooltipModule","OnboardingTooltipComponent","NgxPopperjsModule","NgxPopperjsContentComponent","NgxPopperjsDirective","SpeculativeLinkDirective","LinkDirective","DsDivider","DsNotificationBubble","SportsThemedNotificationDirective","styles","_EventHeaderTabsComponent","LeagueReferenceElement","leagueElm","getOffset","offsetTop","EventReferenceEvent","eventElm","eventsWrapperElm","distance","eventsWrapperHeight","clientHeight","leagueOffset","leagueClientHeight","TreeScrollDirective","scrollContainer","mutationObserver","unsubscribe$","Subject","ngOnDestroy","stopAdjusting","complete","preserveScrolling","func","eventToScroll","referenceElement","findTopElement","offset","startAdjusting","then","scrollToCenterOrTop","findEventElement","getCenterPoint","newOffset","scrollTo","undefined","scrollTop","target","HTMLElement","offsetHeight","Window","innerHeight","safeEventId","leagueId","realCompetitionId","parentLeagueId","favouriteLeagueElm","TreeItemType","FavouriteLeague","League","result","sports","querySelectorAll","isOnTop","leagues","eventsWrapper","events","isEventOnTop","observe","pipe","takeUntil","adjustScrollPosition","elm","eventOffset","next","ScrollContainerService","MutationObserverService","no","_TreeScrollDirective","_r3","onLinkClick","linkText","onCloseButtonClick","BetBuilderOnboardingComponent_ms_epcot_notification_0_a_4_Template","messageText","BetBuilderOnboardingComponent","betBuilderHowToDialogService","betBuilderEventNameService","onboardingMessageService","tracker","sitecoreEventDetails","className","dismissed","getTrackingObject","trackingConstants","COMPONENT_CATEGORY_EVENT","BetBuilderTrackingValues","COMPONENT_LABEL_EVENT","BuildaBetPod","COMPONENT_LOCATION_EVENT","COMPONENT_URL_CLICKED","NOT_APPLICABLE","betBuilder","EventDetailsOnboardingMessageText","EventDetailsOnboardingLinkText","close","trackCloseButtonClick","trackLinkClick","sportId","eventName","getParticipantHeaderTitle","participants","eventViewType","viewType","openBuilder","incrementCounter","trackLoad","tryReplaceMessagesText","setId","previousValue","tryMarkAsShown","isCounterFinished","track","EVENT_TRACKING","COMPONENT_ACTION_EVENT","Click","COMPONENT_POSITION_EVENT","InfoRibbon","COMPONENT_EVENT_DETAILS","FindOutMore","EVENT_CONTENT_VIEW","Load","Close","sportName","SportConstant","onboarding","BetBuilderHowToDialogService","BetBuilderEventNameService","BetBuilderOnboardingMessageService","TrackingService","SitecoreEventDetailsConfig","de","W","BetBuilderOnboardingComponent_ms_epcot_notification_0_Template","EpcotNotificationComponent","_BetBuilderOnboardingComponent","startDate","OverlayTriggerBannerComponent","betBuilderOverlayService","betbuilderMessages","betBuilderEntainUI","Tab","BuildaBet","SPORT_ID","SPORT_LEAGUE_ID","headerTemplate","isOverlay","source","MarketBoardButton","BetBuilderOverlayService","me","ue","ge","i0","OverlayTriggerBannerComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","OverlayTriggerTitle","OverlayTriggerSubtitle","OverlayTriggerButton","BetBuilderOverlayHeaderComponent","_OverlayTriggerBannerComponent","preCreated","fixtureId","ambassadorsMarkets","promotedMarkets","BetBuilderViewComponent_Case_0_Conditional_2_Template","BetBuilderViewComponent_Case_0_Conditional_3_Template","BetBuilderViewComponent_Case_0_Conditional_4_Template","hasMarkets","length","BetBuilderViewComponent_Case_2_Conditional_4_Template","BetBuilderViewComponent_Case_2_Conditional_5_Template","BetBuilderDisplayType","BetBuilderViewComponent","betBuilderConfigService","EventDetails","displayType","useBetBuilderInEntainUI","showEmbeddedUi","EntainUIInMarketBoard","showEntainUiInOverlay","EntainUIInOverlay","Classic","BetBuilderConfigService","BetBuilderViewComponent_Case_0_Template","BetBuilderViewComponent_Case_1_Template","BetBuilderViewComponent_Case_2_Template","tmp_0_0","Hi","xr","Zi","_BetBuilderViewComponent","showHelp","eventDetails","EventSwitcherOnboarding","EventSwitcherOnboardingComponent","checkOnBoarding","eventSwitcherStore","helpShown","EventSwitcherOnboardingComponent_ms_onboarding_tooltip_0_Template","_EventSwitcherOnboardingComponent","EventSwitcherTrackingService","trackingService","trackOpen","eventId","trackAction","trackClose","isLive","trackEventSelect","currentEventId","selectedEventId","selectedEventName","selectedLive","action","eventDetail","trackingObject","f","_EventSwitcherTrackingService","EventSwitcherToggleHelperEpcotService","sportCacheService","popupManager","loader","EVENT_SWITCHER_POPUP","eventSwitcherComponent","getEventSwitcherComponent","openSwitcher","open","closeSwitcher","getCount","offerCategories","some","c","includes","of","getSport","eventLeagueId","children","region","isVirtualCompetitionItem","siblings","counts","gridable","expanded$","SportsCacheService","PopupManager","EventSwitcherComponentLoaderService","_EventSwitcherToggleHelperEpcotService","NavigationEventMapperService","fixtureFactory","mapFixtures","page","fixtures","create","grouped","groupBy","getLeagueId","keys","orderBy","e","live","scoreboard","started","getTime","p","shortName","join","FixtureFactory","_NavigationEventMapperService","EventSwitcherDataService","bettingOfferApi","eventMapperService","getEventsTree","navType","selectedLeagueId","getData","data","mapData","type","regionId","request","fixtureCountsRequest","state","LeftNavType","Live","tagTypes","extendedTags","fixtureCategories","excludedFixtureCategories","competitionIds","Competition","sportIds","regionIds","Prematch","Tennis","tournamentIds","sortBy","isPriceBoost","fixtureRequest","fixtureTypes","offerMapping","participantMapping","getCountsFixtures","competitions","filter","tag","regions","competitionWithRegion","competition","parentId","parentTournamentId","rank","value","cr","mapNode","tree","mapTree","createTreeWithEvents","l","expanded","loading","icon","RegionConstant","World","class","collapsible","hideFavorites","isVirtual","virtualCompetitionId","leftNavType","groupedEvents","mappedEvents","mapNavEvents","showMarkets","BettingOfferApi","_EventSwitcherDataService","isEpcotEnabled","current_r1","EventSwitcherComponent","viewModel$","viewModel","dataProvider","epcotConfigService","click","stopPropagation","loadEvents","__async","updateEpcotPopupTitle","eventCount","newTitle","updateDialogTitle","isEnabled","EpcotConfigService","We","EventSwitcherComponent_ms_event_switcher_navigation_0_Template","ɵɵpipeBind1","_EventSwitcherComponent","EventSwitcherToggleService","SwitcherToggleService","eventSwitcherConfig","dialogService","htmlNode","dialogCssClass","getHtmlToggleClass","options","settings","cssClass","backdropClass","scrollTargetQuerySelector","fit","EventSwitcherConfig","ModalDialogService","HtmlNode","_EventSwitcherToggleService","EventSwitcherToggleHelperRowService","toggleService","_EventSwitcherToggleHelperRowService","EventSwitcherToggleComponent","isDisabled","config","toggleSwitcher","eventSwitcherToggleHelper","changeDetectorRef","epcotHelper","rowHelper","overflowOptions","classNameToAdd","resizeFont","minFontSize","listenToResize","manualMutationCheck","adjustRatio","event$","BehaviorSubject","mediaTabCount$","epcotEnabled","isDefined","switchMap","takeUntilDestroyed","setModel","skip","distinctUntilChanged","_","directive","forceRefresh","markForCheck","currentValue","mediaCount","showOnboarding","showLeagueLogo","toggleIconAllowedSports","ChangeDetectorRef","WhenOverflowedDirective","ɵɵNgOnChangesFeature","EventSwitcherToggleComponent_Conditional_0_Template","EventSwitcherToggleComponent_Conditional_4_Template","NgClass","CompetitionLogoComponent","IconCustomComponent","_EventSwitcherToggleComponent","MediaSwitcherComponent_Conditional_0_For_2_ng_template_1_Template","MediaSwitcherComponent_Conditional_0_For_2_Template","ɵɵrepeaterTrackByIndex","segmentedControlThemeInverse","currentSelectedTab","MediaSwitcherComponent","headerNavigation","scoreboardMediaTrackingService","changeDetector","mediaTabsCountChanged","x","getTabs","mediaTabsCount","activeTabId","updateSelected","FeatureTab","Statistics","Simulation","Video","Scoreboard","trackTabsInteractionForHeader","HeaderNavigationService","ScoreboardMediaTrackingService","MediaSwitcherComponent_Conditional_0_Template","DsSegmentedControlModule","DsSegmentedControl","DsSegmentedOption","SportsThemedSegmentedControlDirective","_MediaSwitcherComponent","onTabsChanged","EventDetailsBreadcrumbComponent","routerEventsService","eventSubscriptionService","changeRef","destroyRef","DestroyRef","eventChanged","showInOverlay","currentActivationEnd","filterSports","route","activationEnded","subscription","unsubscribe","snapshot","model","callback","debounce","RouterEventsService","DetailedEventSubscriptionService","EventDetailsBreadcrumbComponent_ms_media_switcher_1_Template","isFinished","_EventDetailsBreadcrumbComponent","EventDetailsModalService","modalDialogService","timerService","location","modalAnimationHelper","currentActivationStart","RouteTag","modalRef","window","addEventListener","previousUrl","pathname","openOrUpdateModal","eventData","urlHistory","currentFixtureId","fixture","updateData","detailedEventModel","trySetPreviousUrl","openModal","finally","replaceState","addSlideOutHorizontal","setTimeoutOutsideAngular","isModalDialog","showDialogHeader","closeOnChildPopup","showBottomNav","headerSelector","gestures","scrollFreezeType","ScrollFreezeServiceTypes","None","openDialog","EventDetailsModalComponent","nonEdpUrls","TimerService","Location","ModalAnimationHelperService","_EventDetailsModalService","EventDetailsViewModelFetcher","eventDetailsService","marqueeTileService","promotedTemplates","marqueeAvailable","firstValueFrom","hasForFixture","hasMarqueeAvailable","promotedTemplate","tiles","response","getModel","virtualCompetitionDetails","betBuilderFixture","resolve","parseParams","queryParamMap","params","split","parseInt","EventDetailsService","MarqueeTileService","_EventDetailsViewModelFetcher","BaseEventDetailsResolver","navLayoutService","eventDetailsViewModelResolver","baseResolve","register","unregister","Promise","all","vm","extendViewModel","loadStyles","whenReady","aa","EDPScoreboardConfigService","device","isNewEDPScoreboardEnabled","isNewScoreboardEnabled","isMobilePhone","isTablet","DeviceService","_EDPScoreboardConfigService","NavigationStateService","PREMATCH_NAV","LIVE_NAV","currentRegisteredNavigation","setLeftNavigation","removeLeftNavigation","isPrematchNavRegistered","isLiveNavRegistered","_NavigationStateService","EventDetailsSitemapComponentLoaderService","ComponentLoaderService","moduleLoader","loggerFactory","moduleName","getModule","m","EventDetailsSitemapModule","getEventDetailsSitemapComponent","getComponentProxy","module","eventDetailsSitemapComponent","ModuleLoaderService","LoggerFactory","_EventDetailsSitemapComponentLoaderService","EventDetailsMarketQueryService","urlService","eventDetailConfig","marketUrlToSetTab","MarketUrlParam","MyBets","Sgp","getMarketSetFromQuery","getQueryString","lastTag","getTagsFromQueryString","pop","parsed","toNumber","isNaN","enableSitemapNavigation","market","current","search","queryString","splitTags","tags","push","cleanMyBetsQueryString","setTabs","delete","path","cleanQueryString","cleanLastTag","marketInUrl","setQueryString","replace","currentMarket","has","UrlService","_EventDetailsMarketQueryService","HeaderNavigationUrlService","urlHelper","updateCurrentUrl","tabBarItem","setTimeoutOutsideAngularZone","updateCurrentUrlInternal","typedReverseFeatureTab","FeatureUrl","getEventUrl","UrlHelperService","_HeaderNavigationUrlService","MarketGroupOrderService","localStorage","marketGroupOrderStorageKey","getSortedMarketTabs","marketGroupOrder","sortMarketsTabOrder","getTabsOrderBySportId","sportTabsOrder","prematch","Object","isSportOptionGroupOrder","firstVal","values","tabsOrderBySportId","marketTab","index","marketTabOrder","_MarketGroupOrderService","SitecoreOrderMapping","HeaderService","marketGroupingConfig","mybetsSummary","marketGroupOrderService","priceBoostConfig","marketGroupsWithNewBadge","defaultItemIds","All","marketGroupIds","getSetTabs","tagsFromQueryString","buildDefaultTabs","optionSets","sitemapSets","getEventDetailsSitemap","getOptionsSetTabs","tryAddDefaultTabs","customizePrecreatedTab","addPrecreatedTabStyles","desiredSetId","showSeparator","currentSetId","isOnLowerLevel","applySitemapSitecoreTabOrder","AngstromTagIdValues","defaultLandingPill","Popular","defaultPill","firstNonDefaultIndex","findIndex","i","hasChildren","precreatedBABTab","isPrecreated","overrideStyles","inactiveStyles","color","PreCreatedBABTabTextColor","borderColor","PreCreatedBABTabBackgroundColor","backgroundColor","order","sportOrder","sitemapOrder","separatorIndex","getChildrenOfLastTag","isEmpty","tabsToOrder","slice","sort","a","b","aId","getTagIdValue","bId","indexA","o","indexB","AllMarkets","Ogp","MyMarkets","Other","lastKey","shift","matchingChild","child","optionSet","marketGroupHasNewBadge","storageId","subNavigationTabs","currentSubSetId","marketGroupTag","showSignPostForPriceBoost","mapCountForPriceBoost","priceBoostCount","canAddBetBuilder","getBetBuilderConsumerFixtureId","isBetBuilderEnabledForSport","sportcastId","splice","betBuilderTabPosition","BetBuilderTabName","isBetBuilderNewBadgeEnabledForSport","classes","optionGroups","getOptionGroupForMyMarkets","unshift","AllMarketsTemplate","myBetsTab","buildMybetsTab","canAddMybets","queryStringTags","buildMarketTabBarItems","parents","currentTag","mapMarketTabBarItem","sets","parentQueryString","marketGroups","groups","showCountForLive","EventDetailsTags","PriceBoost","betsCount","getOpenBetsCount","myBetsTitle","MyBetsTitle","marketGroupId","mg","MarketGroupingConfig","MyBetsSummaryService","PriceBoostConfig","_HeaderService","item_r2","$implicit","ctx_r2","tabSelected","HeaderSubNavigationComponent_Conditional_0_For_3_Template","HeaderSubNavigationComponent","tabChange","activeSubTab","tabId","outputs","HeaderSubNavigationComponent_Conditional_0_Template","Mn","Ro","_HeaderSubNavigationComponent","_r2","setTabSelected","ɵɵelementContainerStart","HeaderComponent_ng_container_1_ms_event_header_tabs_1_Template","ce","tabClicked","ɵɵelementContainer","HeaderComponent_ng_template_3_ng_container_0_ng_container_1_Template","sitemapComponent","HeaderComponent_ng_template_3_ng_container_0_Template","HeaderComponent","headerService","timer","myBetsSummary","columnLayout","adaptiveLayout","headerNavigationUrlService","eventDetailsHelperService","dispatcher","mybetsConfig","sitemapLoader","eventDetailsMarketQueryService","isNewEDPScoreboard","withHeaderNavigation","setChange","featureChange","isVideoPinned","layoutColumnsChanged","trySetCorrectTags","shouldHaveMybetsTab","getActiveSubset","getActiveTab","groupedSetsIds","subSetId","defaultTab","getDefaultTab","setStickyHeader","sticky","runningBallDataId","hasBetRadarVisualization","hasBetRadarStickyAddonVisualization","hasImgAnimationVisualization","hasRightColumn","isSitemapEnabled","subscribeToOutputs","toggleSitemapItem","toggleSitemap","featureTabSelected","on","DispatcherEvent","newSetId","setTabActivate","EventNavigation","SetSubTabs","payload","subTabs","setBetBuilderSubNavigation","isHeaderSubNavigationEnabled","ngAfterViewInit","tabMenus","tabChanged","stateChange$","distinctUntilKeyChanged","Boolean","init","dispatch","SelectSubTab","isBetBuilderSubItem","initSetTabs","getTagsForItem","showGoHome","items","eventFinished","initFeatureTabs","summaryUpdate","onMyBetsSummaryUpdate","_e","isFirstChange","trackingData","firstChange","isSgpTabSelected","optionSetChange","optionSetsChanged","isLiveChange","featureTabs","detectChanges","feature","trackSet","densityToggled","density","HeaderContentDensity","Fullscreen","columns","isOpenSummaryLoadingRestricted","every","setAnimationFrame","PAGE_REFERRING_ACTION","COMPONENT_MARKET_ID","EVENT_PAGE_VIEW","PAGE_NAME","PAGE_SITE_SECTION","navigateNext","layout","isRightVisible","goNext","navigatePrevious","goPrevious","onVideoPinToggle","newTags","reverse","tagExists","sitemapSet","entryPoint","parentTabId","betBuilderTabs","currentQueryString","trySetDefaultSgpContent","ColumnLayoutService","AdaptiveLayoutService","EventDetailsHelperService","DispatcherService","MyBetsConfig","TabBarComponent","HeaderComponent_ng_container_1_Template","HeaderComponent_ms_header_sub_navigation_2_Template","HeaderComponent_ng_template_3_Template","qe","sitemapTemplate_r5","J","Zt","Yn","_HeaderComponent","setChanged","featureChanged","EventDetailsComponent_ng_container_1_ng_container_1_Template","marqueeComponent","UnpublishedEvent","published","crmBannerPromotions","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_ng_container_1_Template","myBetsComponent","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_5_ng_container_1_ng_container_1_Template","optionGroupList_r3","ɵɵpureFunction1","_c0","setType","AllBets","totalOptionGroupsCount","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_5_ng_container_1_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_5_ms_item_2_Template","isEventPageModularEnabledWithWidgets","modularWidgetLoop_r5","setMain","EventDetailsComponent_ng_template_4_ng_container_1_ms_bet_builder_onboarding_1_Template","EventDetailsComponent_ng_template_4_ng_container_1_ms_bet_builder_view_3_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_5_Template","onboardingVisible$","EventDetailsComponent_ng_template_4_ms_crm_promotion_container_0_Template","EventDetailsComponent_ng_template_4_ng_container_1_Template","isPromotionContainerVisible","isEventSitemapEnabled","_c2","widget_r6","eventModularVM","widgetPage","layoutTemplate","EventDetailsComponent_ng_template_6_ng_container_0_ng_container_3_ng_container_1_Template","groupedWidgets","position_r7","EventDetailsComponent_ng_template_6_ng_container_0_ng_container_4_ng_container_1_Template","ɵɵpureFunction2","_c1","ɵɵpipeBind2","EventDetailsComponent_ng_template_6_ng_container_0_ng_container_1_Template","bt","EventDetailsComponent_ng_template_6_ng_container_0_ng_container_3_Template","EventDetailsComponent_ng_template_6_ng_container_0_ng_container_4_Template","ɵɵpipeBind3","isFirst_r9","widgetPositions","i_r8","isMainOrAllTab","isLast_r10","EventDetailsComponent_ng_template_6_ng_container_0_Template","trackPosition","optionGroupSource_r12","promotedMap","crmOptionGroupsPromotedMap","crmPromoIdsMap","thresholds","sourceOfPick","getTracking","defaultExpandedMarkets","widgetPosition_r13","optionMarketSetData","EventDetailsComponent_ng_template_8_ms_option_group_list_0_Template","EventDetailsComponent","OnRouteResolve","onRouteResolved","isMarqueeVisible","marqueesEmpty","isEventPageModularEnabled","isPopupShown","isOpen","navigationRouter","navigationStateService","scoreboardSubscriptionService","helper","promotionMapper","promotionProvider","promotionConfig","marqueeConfig","marqueeService","mediaApi","externalNativeAppService","automatedMarqueeService","marqueeLoader","widgetTrackingService","eventDetailsModelService","edpScoreboardConfigService","playerStatsSubscriptionService","document","isPokerNativeApp","hasError","enableEventPageModular","hideEDPBreadcrumbs","SourceOfPick","HighlightsMarqueePage","markets","templateIds","lastScrollTop","disableAnimation","crmPromotions","tabControllerFacadeService","TabControllerFacadeService","sheetViewService","SheetViewService","setMediaEvent","setEvent","getEventViewComponent","defaultExpandedMarketsCount","getHighlightsMarqueeComponent","enableHideBreadcrumbOnScroll","scroll","onScrollHandler","resetNavigation","setMediaModuleContext","MediaModuleContextPage","Default","clearTabControllerState","resetTabControllerState","marketTemplatesWithThresholds","templates","keyBy","optionCollapseSize","promoted","setPromoted","widgetLayoutResponse","widgets","setDetailedEventViewModel","mapModularVm","trackWidgetsLoaded","setNavigation","promotions$","promotions","getPromotionsForEvent","getPromotedOptionGroupIds","isHighlightsMarqueeEnabled","marqueeTiles","loadMarquees","newMarqueeTiles","getAutomatedMarqueeTiles","promotionChanged","add","promotionsMap$","ids","promoIdsChanged","setTimeout","modalBody","setTarget","setCssClass","setData","visible$","subSet","isEqual","groupedSets","getMainSet","promoMap","setCrmPromotions","getBannerPromotions","bannerCount","eventView","promotionTiles","preventNavigation","showLoader","isPrecreatedBABTabActive","isPreCreatedBABTab","EmbeddedBetBuilder","setTags","isPrecreatedBABTab","prepareEventOptionGroups","concat","group","detailedGrouping","marketSet","optionGroup","templateId","marketOrder","position","calculateEventOptionGroupsCount","promotedOptionGroup","MediaEventSource","TrackingVideoSource","mediaModuleContext","setMediaWidgetContext","widgetPosition","Math","max","maxTiles","isAutomatedMarqueesEnabled","automatedMarqueeTiles","createAutomatedMarqueeTiles","automatedTiles","getTiles","sourceFixture","precreatedMarketsInfo","getCombinedTiles","Number","NavigationRouterService","ScoreboardSubscriptionService","CrmPromotionMapperService","CrmPromotionProviderService","CrmConfig","MarqueeConfig","MarqueeService","MediaApiService","ExternalNativeAppService","AutomatedMarqueeService","MyBetsComponentLoaderService","ActivatedRoute","HighlightsMarqueeComponentLoaderService","WidgetTrackingService","EventDetailsViewModelService","PlayerStatsSubscriptionService","DOCUMENT","optionContextServiceProviderFactory","ɵɵInheritDefinitionFeature","EventDetailsComponent_ms_header_0_Template","EventDetailsComponent_ng_container_1_Template","EventDetailsComponent_ms_error_3_Template","EventDetailsComponent_ng_template_4_Template","EventDetailsComponent_ng_template_6_Template","EventDetailsComponent_ng_template_8_Template","eventTemplate_r14","__decorate","HooksWireup","__metadata","Document","NavState","selection","expandedSports","collapsedLeagues","sportsWithCollapsedMarkets","Set","isSportExpanded","isLeagueCollapsed","areMarketsCollapsed","toggleSport","toggleLeague","toggleMarkets","LiveEventsNavigationStateService","sessionStore","sessionKey","loadState","rawState","storeState","Array","from","storeSelection","SessionStoreService","_LiveEventsNavigationStateService","LiveEventsNavigationRefreshService","stateService","liveNavConfig","bettingContent","userService","registerRefresh","registerReload","intervalInMs","pollingInterval","refresh$","debounceTime","shareReplay","bufferSize","refCount","reload$","onAuthenticationChange$","excludeCompetitionIds","filterDefined","LiveNavigationConfig","UserService","_LiveEventsNavigationRefreshService","LiveEventsNavigationRouteService","routerEvents","stopStream$","serviceDestroyed$","component","stopProcessing$","asObservable","_LiveEventsNavigationRouteService","LiveEventsNavigationSubscriptionService","freshDataService","eventsStream$","handler","onPushReconnected","resubscribe","flush$","noop","throttleTime","asyncScheduler","updatedEvents$","distinct","buffer","reloadNeeded","FreshDataType","DataAndPush","filterSportsEmitLast","refreshSubscriptions","difference","remove","omit","eventsToUnsubscribe","unsubscribeAll","EventSubscriptionService","FreshDataService","_LiveEventsNavigationSubscriptionService","NavigationTrackingService","trackRegionToggle","EVENT_NAVIGATION_MENUS","PAGE_NAVIGATION_MENUS","trackSportToggle","trackLeagueToggle","navigationMenus","trackMarketsToggle","visible","_NavigationTrackingService","LiveEventsNavigationTreeService","subscriptionsService","liveFavouriteFixturesService","favouritesConfig","favouritedLeagues","eventSubject","favEventChange","refreshFavouritesTreeItem","updatedChildren","updateFavouritedItemsLeftNavigation","LiveUrlParam","Favourites","getFavouriteTab","updateTree","navTree","leagueGroups","added","produce","draftState","leagueGroup","sportIndex","virtualLeagueId","anyEvents","s","leagueIndex","selectionInfo","hidden","isLiveFavouritesEnabled","isAuthenticated","hiddenLeagueCount","hiddenEventCount","favouritedFixture","isFavourited","draft","draftSport","findChild","getVisibleLeagues","getLeagueGroup","expandEvent","leaguesToFetch","newTree","currentSport","currentLeague","updateFavourites","unsubscribeInvisibleEvents","setFavouriteLeagues","favouriteEvents","getFavouritesEvents","flatMap","updateEvent","updatedEvent","clone","updateEvents","navEventModels","clearLeagueEvents","toggleFavourites","toggleFavouriteLeague","refreshTree","oldTree","newSports","favouriteItem","Favourite","liveNavEvens","marketsToggled","newLeagues","leagueEvents","newEvents","oldLeague","getNewEvents","newSport","favouritesEvents","selectEvent","SelectionInfo","applySelection","setSelectionInfo","selectedEvent","isSelected","getFirstLeagueId","getFirstSportId","favouritesMessages","LiveTitle","sumBy","liveFixtures","getFixtureList","favouriteFix","favouritedLiveEvents","eventIds","indexOf","fixtureList","stage","favourited","setSelection","findEvent","output","oldEvent","nonFavouriteEvents","unSubscribeEvents","visibleLeagues","LiveFavouriteFixturesService","FavouritesConfig","_LiveEventsNavigationTreeService","NavigationMapperService","treeService","updateTreeState","mapFixture","selectedLeague","withLoading","sportItems","favouriteChildren","favouriteTab","mapLeagues","mapSport","leagueRegions","lr","mapLeague","collapsed","imageProfile","Sport","_NavigationMapperService","LiveEventsNavigationService","mapperService","sportsCacheService","_tree$","initFromEvent","setSelectedEvent","defaultEvent","initFromDefaultEvent","loadTree","initState","visibleEvents","getGroupedEvents","getDefaultEvent","fetchTree","reloadTree","loadEventsForLeagues","toggleResult","loadVisibleLeagues","reset","tree$","liveSportTree","getLiveSportList","forceReload","sportModelMethods","fromTag","selectedSportId","exceedsTreshold","treshold","tap","leagueIds","firstLeague","_LiveEventsNavigationService","LiveEventsNavigationComponent","navigationService","routerHelper","refreshService","routeService","favouritesService","stopped","first","activationEnd","change","refresh","merge","treeScroll","onSelectEvent","onToggleMarkets","toggleItem","Error","scrollToEvent","FavouritesService","wt","_LiveEventsNavigationComponent","PrematchNavState","PreMatchEventsNavigationService","bettingService","navigationConfig","store","cacheService","tournamentsConfig","user","expandedLeagues","Map","sessionStoreKey","isEventSelectedFromPrematch","getNavigationTree","initialEvent","isNavigationExpanded","getTree","applyThreshold","getObservableTree","interval","startWith","due","getTreeWithEvents","EMPTY","getEventsForLeagues","leagueParameters","virtualLeagueIds","virtualCompetitionIds","getSportTree","tournaments","getValidTournaments","toggleRegion","getPrematchEventTree","countItems","hasEvents","mapRegion","regionItem","preMatch","regionName","regionFlag","Region","expandedLeaguesIds","virtual","entries","lId","countsFixtures","tournament","filterTournament","navigation","leaguesSection","PrematchNavigationConfig","TournamentsDataConfig","_PreMatchEventsNavigationService","PrematchEventsNavigationComponent","navService","scrollContainerService","initNavModel","getEvents","sportTree","select","getNavEvents","modifyLeaguesState","eventsExpanded","subscribedEvents","navEvents","currentEvent","expandLeague","updatedTree","oldEventIndex","flatten","PrematchEventsNavigationComponent_ms_competition_tree_1_Template","CompetitionTreeComponent","TreeComponent","_PrematchEventsNavigationComponent","NavigationLayoutService","columnLayoutService","columnLayoutRegister","liveNavService","prematchNavService","eventDetailsStateService","prematchNavConfig","layoutChangedSubscription","layoutChanged","canBeRegistered","isCorrectNavRegistered","isLiveEventsNavigationEnabled","addLeftNavPlaceholder","registerLiveNav","isPrematchEventsNavigationEnabled","registerPrematchNav","isRegistered","removeLeftNavPlaceholder","currentRegistered","LayoutColumn","Left","componentData","shouldHaveThreeColumns","EmptyComponent","isPrematchEvent","sameSport","ColumnLayoutRegister","_NavigationLayoutService","EventDetailsResolver","stylesService","context","__superGet","_EventDetailsResolver","lazyLoad","preResolve","modalResolve","detailedViewModel","_f","updatedParams","fixtureStage","virtualCompetitionGroup","updatedRoute","getLayout","getContext","StylesLazyLoadingService","WidgetContextService","eventDetailsModalService","eventDetailsResolver","deviceService","orientation","EventDetailsModalComponent_Conditional_0_Template","_EventDetailsModalComponent","EventDetailsBreadcrumbsResolver","BreadcrumbsResolve","competitionLogosService","regionVisibilityService","customResolve","crumbs","getCrumbs","headerSubNavigation","schemaBreadcrumbs","shouldHide","NeutralVenue","isWithRightImage","getLogoUrl","createCrumb","CompetitionLogosService","RegionVisibilityService","_EventDetailsBreadcrumbsResolver","EventDetailsModalGuard","canActivate","isDirectLink","_EventDetailsModalGuard","EventDetailsGuard","redirectHelperService","urlHelperService","eventsNavService","router","goHome","eventUrl","parseUrl","RedirectHelperService","Router","_EventDetailsGuard","EventViewSubNavigationResolve","SubNavigationResolve","layoutManager","sportSubNavService","tabs$","getDefaultTabs","buildSubNavigation","routeSnapshot","maxColumnCount","isDetailedEventViewModel","isPrematchLeftNavigationOpened","resolveTabs","createSubnavTabs","LiveSubnavTabs","EventView","registeredComponents","SportSubNavigationService","_EventViewSubNavigationResolve","routes","matcher","nameIdentifierMatcher","use","matcherParam","htmlClass","breadcrumbs","subNavigation","sitemap","SitemapRoutingToken","EventDetailsSitemapResolver","shouldKeepBreadcrumbs","EventDetailsRoutingModule","Gt","RouterModule","forChild","_EventDetailsRoutingModule","EventSwitcherNavigationComponent","_doc","subscribeEvents","headerElement","style","height","EventSwitcherLiveTitle","EventSwitcherPrematchTitle","offerSource","findAndUpdateEvent","EventSwitcherNavigationComponent_div_0_Template","showHeader","ze","_EventSwitcherNavigationComponent","EventDetailsWithoutRoutingModule","AutomationModule","CrmPromotionContainerModule","CrmPromotionModule","DirectivesModule","DropdownModule","FavouritesModule","GridModule","MyBetsBaseModule","NativeAlertsModule","NavigationCoreModule","NavigationModule","NgScrollbarModule","TabBarModule","TimerModule","EventDetailsCommonModule","WidgetCoreModule","OptionSheetViewModule","BetBuilderButtonComponent","ErrorComponent","ItemComponent","BetbuilderMarketListComponent","OptionGroupListComponent","LoginDurationComponent","_EventDetailsWithoutRoutingModule","Sr","AsyncPipe","EventDetailsModule","imports","_EventDetailsModule"],"mappings":"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"}