{"version":3,"file":"event-details.module-cltb99db.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.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.html","packages/sports/web/app/src/event-details/betbuilder-view.component.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-onboarding/event-switcher-onboarding.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.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.html","packages/sports/web/app/src/event-details/header/header.component.ts","packages/sports/web/app/src/event-details/event-details.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/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.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.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.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 { SharedPriceboostModule } from '../../../shared-priceboost/shared-priceboost.module';\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 SharedPriceboostModule,\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 } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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.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 // eslint-disable-next-line @typescript-eslint/naming-convention\n EntainUIInMarketBoard,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n EntainUIInOverlay,\n}\n@Component({\n selector: 'ms-bet-builder-view',\n templateUrl: './bet-builder-view.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.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.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?.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?: number;\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;\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: number): void {\n const activeTab = this.tabs?.find((tab) => tab.id === activeTabId);\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/operators';\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.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({ setId: active.id, groupedSetsIds: active.marketGroups, tags, isSgp: active.isSgp, defaultTab: this.getDefaultTab() });\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.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, timer } from 'rxjs';\nimport { debounceTime, shareReplay, switchMap } from 'rxjs/operators';\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 } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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';\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, of } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\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 { merge } from 'rxjs';\nimport { first, map, takeUntil } from 'rxjs/operators';\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.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, of, timer } from 'rxjs';\nimport { filter, map, startWith, switchMap } from 'rxjs/operators';\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.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/operators';\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.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 './betbuilder-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","pe","me","ue","le","W","$event","ɵɵrepeaterCreate","EventHeaderTabsComponent_For_2_Template","_forTrack0","EventHeaderTabsComponent_Conditional_4_Template","ɵɵrepeater","CommonModule","DsTabsModule","DsTab","DsTabsGroup","DsTabHeader","SharedPriceboostModule","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","eo","_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","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","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","Ir","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","Ys","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","fn","ko","_HeaderSubNavigationComponent","_r2","setTabSelected","ɵɵelementContainerStart","HeaderComponent_ng_container_1_ms_event_header_tabs_1_Template","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","sitemapTemplate_r5","J","Zt","An","_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","ce","qe","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","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","ao","mo","co","lo","po","Nn","zn","$i","Oi","yn","Yi","pi","uo","__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","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","refreshSubscriptions","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","LiveEventsNavigationSubscriptionService","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","updatedEvents$","change","refresh","merge","treeScroll","onSelectEvent","onToggleMarkets","toggleItem","Error","scrollToEvent","unsubscribeAll","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","remove","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","Ut","RouterModule","forChild","_EventDetailsRoutingModule","EventSwitcherNavigationComponent","_doc","subscribeEvents","headerElement","style","height","EventSwitcherLiveTitle","EventSwitcherPrematchTitle","offerSource","findAndUpdateEvent","EventSwitcherNavigationComponent_div_0_Template","showHeader","zo","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","AsyncPipe","EventDetailsModule","Gt","imports","_EventDetailsModule"],"mappings":"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"}