{"version":3,"file":"event-details.module-cjx75z77.js","sources":["packages/sports/web/app/src/betbuilder/components/custom-message/betbuilder-custom-message.component.html","packages/sports/web/app/src/betbuilder/components/custom-message/betbuilder-custom-message.component.ts","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market-card.component.html","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market-card.component.ts","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market-card-list.component.html","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market-card-list.component.ts","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market.component.html","packages/sports/web/app/src/betbuilder/components/market/betbuilder-market.component.ts","packages/design-system/ui/badge/src/badge.component.ts","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs-tooltip.service.ts","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs.component.html","packages/sports/web/app/src/event-details-common/header/tab-group/event-header-tabs.component.ts","packages/sports/web/app/src/event-details-common/tree/tree-scroll.directive.ts","packages/sports/web/app/src/event-details/bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component.ts","packages/sports/web/app/src/event-details/bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component.ts","packages/sports/web/app/src/event-details/bet-builder-view.component.html","packages/sports/web/app/src/event-details/bet-builder-view.component.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-onboarding/event-switcher-onboarding.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-onboarding/event-switcher-onboarding.component.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-tracking.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/toggle-helper/event-switcher-toggle-helper-epcot.service.ts","packages/sports/web/app/src/event-details/navigation-mapper/navigation-event-mapper.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/event-switcher-data.service.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher/event-switcher.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher/event-switcher.component.ts","packages/sports/web/app/src/event-details/event-switcher/services/event-switcher-toggle.service.ts","packages/sports/web/app/src/event-details/event-switcher/services/toggle-helper/event-switcher-toggle-helper-row.service.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-toggle/event-switcher-toggle.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-toggle/event-switcher-toggle.component.ts","packages/sports/web/app/src/event-details/media-switcher/media-switcher.component.html","packages/sports/web/app/src/event-details/media-switcher/media-switcher.component.ts","packages/sports/web/app/src/event-details/event-details-breadcrumb.component.html","packages/sports/web/app/src/event-details/event-details-breadcrumb.component.ts","packages/sports/web/app/src/event-details/event-details-modal.service.ts","packages/sports/web/app/src/event-details-common/event-details-view-model-fetcher.service.ts","packages/sports/web/app/src/event-details/base-event-details.resolver.ts","packages/sports/web/app/src/common/edp-scoreboard-config.service.ts","packages/sports/web/app/src/event-details/navigation-state/navigation-state.service.ts","packages/sports/web/app/src/event-details-sitemap/event-details-sitemap-component-loader.service.ts","packages/sports/web/app/src/event-details/header/event-details-market-query.service.ts","packages/sports/web/app/src/event-details/header/header-navigation-url.service.ts","packages/sports/web/app/src/event-details/market-group-order/market-group-order.service.ts","packages/sports/web/app/src/event-details/header/header.service.ts","packages/sports/web/app/src/event-details/header/header-sub-navigation.component.html","packages/sports/web/app/src/event-details/header/header-sub-navigation.component.ts","packages/sports/web/app/src/event-details/header/header.component.html","packages/sports/web/app/src/event-details/header/header.component.ts","packages/sports/web/app/src/event-details/event-details.component.html","packages/sports/web/app/src/event-details/event-details.component.ts","packages/sports/web/app/src/event-details/navigation-state/navigation-state.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-state.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-refresh.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-route.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-subscription.service.ts","packages/sports/web/app/src/event-details/navigation-tracking/navigation-tracking.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation-tree.service.ts","packages/sports/web/app/src/event-details/navigation-mapper/navigation-mapper.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.service.ts","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.component.html","packages/sports/web/app/src/event-details/live-events-navigation/live-events-navigation.component.ts","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-nav-state.ts","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.service.ts","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.component.html","packages/sports/web/app/src/event-details/prematch-events-navigation/prematch-events-navigation.component.ts","packages/sports/web/app/src/event-details/navigation-layout.service.ts","packages/sports/web/app/src/event-details/event-details.resolver.ts","packages/sports/web/app/src/event-details/event-details-modal.component.html","packages/sports/web/app/src/event-details/event-details-modal.component.ts","packages/sports/web/app/src/event-details/event-details-breadcrumb.resolver.ts","packages/sports/web/app/src/event-details/event-details-modal.guard.ts","packages/sports/web/app/src/event-details/event-details.guard.ts","packages/sports/web/app/src/event-details/event-view-subnavigation.resolve.ts","packages/sports/web/app/src/event-details/event-details-routing.module.ts","packages/sports/web/app/src/event-details/event-switcher/event-switcher-navigation/event-switcher-navigation.component.html","packages/sports/web/app/src/event-details/event-switcher/event-switcher-navigation/event-switcher-navigation.component.ts","packages/sports/web/app/src/event-details/event-details.module.ts"],"sourcesContent":["
{{ customMessage }}
\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BetBuilderConfig } from '@frontend/sports/common/client-config-data-access';\n\n@Component({\n selector: 'ms-bet-builder-custom-message',\n templateUrl: './betbuilder-custom-message.component.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","
\n
\n \n
{{ market.ambassador.name }}
\n
\n
\n
\n
\n
\n
\n {{ leg }}\n
\n
\n
\n
\n \n \n \n
\n
\n
\n\n\n","import { NgFor, NgIf } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FontResizerComponent } from '@frontend/sports/common/core/feature/font-resizer';\nimport { NativePriceFormatterPipe } from '@frontend/sports/odds/feature/native-price';\n\nimport { BetBuilderPickComponent } from '../../../option-pick/betbuilder-pick.component';\nimport { BetBuilderMarket } from '../../model/bet-builder.model';\nimport { BetBuilderEditPrecreatedBABButtonComponent } from '../button/betbuilder-edit-precreated-bab-button.component';\n\n@Component({\n selector: 'ms-bet-builder-market-card',\n templateUrl: './betbuilder-market-card.component.html',\n standalone: true,\n imports: [NgIf, NgFor, BetBuilderPickComponent, FontResizerComponent, BetBuilderEditPrecreatedBABButtonComponent, NativePriceFormatterPipe],\n})\nexport class BetBuilderMarketCardComponent implements OnInit {\n @Input() event: EventModel;\n @Input() market: BetBuilderMarket;\n @Input() fixtureId: string;\n @Input() showName: boolean;\n\n marketLegs: string[];\n pickTrackingSource = 'BetBuilder/PreCreated';\n\n ngOnInit(): void {\n this.marketLegs = this.mapLegs();\n\n if (this.market.ambassador) {\n this.pickTrackingSource += '/AP';\n }\n }\n\n private mapLegs(): string[] {\n return this.market.name.split(';');\n }\n}\n","
\n \n
\n","import { NgFor } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nimport { BetBuilderMarket } from '../../model/bet-builder.model';\nimport { BetBuilderMarketCardComponent } from './betbuilder-market-card.component';\n\n@Component({\n selector: 'ms-bet-builder-market-card-list',\n templateUrl: './betbuilder-market-card-list.component.html',\n standalone: true,\n imports: [NgFor, BetBuilderMarketCardComponent],\n})\nexport class BetBuilderMarketCardListComponent implements OnInit {\n @Input() event: EventModel;\n @Input() markets: BetBuilderMarket[];\n @Input() fixtureId: string;\n\n showName: boolean;\n\n ngOnInit(): void {\n this.showName = this.markets && this.markets.length > 1;\n }\n}\n","
\n
{{ marketTitle }}
\n
\n \n
\n
\n","import { NgIf } from '@angular/common';\nimport { Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BetBuilderMarket } from '../../model/bet-builder.model';\nimport { BetBuilderMarketCardListComponent } from './betbuilder-market-card-list.component';\n\n@Component({\n selector: 'ms-bet-builder-market',\n templateUrl: './betbuilder-market.component.html',\n standalone: true,\n imports: [NgIf, BetBuilderMarketCardListComponent],\n})\nexport class BetBuilderMarketComponent implements OnInit {\n @Input() event: EventModel;\n @Input() builderMarkets: BetBuilderMarket[];\n @Input() fixtureId: string;\n @HostBinding('class') className = 'betbuilder-market-card';\n\n marketTitle = '';\n\n constructor(private sitecore: Sitecore) {}\n\n ngOnInit(): void {\n if (this.builderMarkets[0].ambassador) {\n if (this.builderMarkets.length === 1) {\n this.marketTitle = (this.builderMarkets[0].ambassador && this.builderMarkets[0].ambassador.singleAmbassadorTitle) || '';\n } else if (this.sitecore.betBuilder.messages) {\n this.marketTitle = this.sitecore.betBuilder.messages.AmbassadorsPicksTitle;\n }\n } else if (this.sitecore.betBuilder.messages) {\n this.marketTitle = this.sitecore.betBuilder.messages.PromotedMarketsTitle;\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\n@if (tooltip().shouldShow) {\n \n \n \n}\n","import { CommonModule } 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, NgxPopperjsPlacements } from 'ngx-popperjs';\n\nimport { PriceboostCountSignpostComponent } from '../../../shared-priceboost/Components/priceboost-count-signpost.component';\nimport { EventMarketsTabBarItem } from './event-header-tab-bar.models';\nimport { EventHeaderTabsTooltipService } from './event-header-tabs-tooltip.service';\n\n@Component({\n selector: 'ms-event-header-tabs',\n templateUrl: './event-header-tabs.component.html',\n styleUrls: ['./event-header-tabs.component.scss'],\n standalone: true,\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n imports: [\n CommonModule,\n DsTabsModule,\n PriceboostCountSignpostComponent,\n DsBadge,\n TooltipModule,\n NgxPopperjsModule,\n SpeculativeLinkDirective,\n LinkDirective,\n DsDivider,\n DsNotificationBubble,\n 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 protected readonly NgxPopperjsPlacements = NgxPopperjsPlacements;\n}\n","import { Directive, ElementRef, OnDestroy } from '@angular/core';\n\nimport { EventModel, safeEventId } from '@frontend/sports/betting-offer/feature/model';\nimport { MutationObserverService } from '@frontend/sports/common/core/utils/dom';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { TreeItemType } from '../event-details-common.models';\n\ninterface IReferenceElement {\n getOffset(): number;\n}\n\nclass LeagueReferenceElement implements IReferenceElement {\n constructor(public leagueElm: HTMLElement) {}\n\n getOffset(): number {\n return this.leagueElm.offsetTop;\n }\n}\n\nclass EventReferenceEvent implements IReferenceElement {\n constructor(\n private eventElm: HTMLElement,\n private leagueElm: HTMLElement,\n private eventsWrapperElm: HTMLElement | undefined,\n private distance: number = 0,\n ) {}\n\n getOffset(): number {\n const eventsWrapperHeight = this.eventsWrapperElm ? this.eventsWrapperElm.clientHeight : 0;\n const leagueOffset = this.leagueElm?.offsetTop ?? 0;\n const leagueClientHeight = this.leagueElm?.clientHeight ?? 0;\n\n return leagueOffset + leagueClientHeight - eventsWrapperHeight + this.eventElm.offsetTop - this.distance;\n }\n}\n\n@Directive({\n selector: '[msTreeScroll]',\n standalone: true,\n})\nexport class TreeScrollDirective implements OnDestroy {\n private eventToScroll: EventModel | undefined;\n private offset: number;\n private referenceElement: IReferenceElement | undefined;\n private unsubscribe$ = new Subject();\n\n constructor(\n public elementRef: ElementRef,\n public scrollContainer: ScrollContainerService,\n private mutationObserver: MutationObserverService,\n ) {}\n\n ngOnDestroy(): void {\n this.stopAdjusting();\n this.unsubscribe$.complete();\n }\n\n preserveScrolling(func: () => Promise, event?: EventModel): void {\n this.eventToScroll = event;\n\n if (!this.eventToScroll) {\n this.referenceElement = this.findTopElement();\n }\n\n if (this.referenceElement) {\n this.offset = this.referenceElement.getOffset();\n }\n\n if (this.referenceElement || this.eventToScroll) {\n this.startAdjusting();\n func().then(() => {\n this.stopAdjusting();\n });\n } else {\n func();\n }\n }\n\n scrollToCenterOrTop(event: EventModel): void {\n const eventElm = this.findEventElement(event, this.getCenterPoint());\n if (eventElm) {\n const newOffset = eventElm.getOffset();\n this.scrollContainer.scrollTo(undefined, -newOffset);\n } else if (this.scrollContainer.scrollTop !== 0) {\n this.scrollContainer.scrollTo(undefined, 0);\n }\n }\n\n scrollTo(event: EventModel): void {\n const eventElm = this.findEventElement(event);\n if (eventElm) {\n const newOffset = eventElm.getOffset();\n this.scrollContainer.scrollTo(undefined, -newOffset);\n }\n }\n\n private getCenterPoint(): number | undefined {\n const target = this.scrollContainer.target;\n\n if (target instanceof HTMLElement) {\n return target.offsetHeight / 2;\n }\n if (target instanceof Window) {\n return target.innerHeight / 2;\n }\n\n return;\n }\n\n private findEventElement(event: EventModel, distance: number = 150): IReferenceElement | undefined {\n const eventElm = this.elementRef.nativeElement.querySelector(`#event-${safeEventId(event.id)}`);\n if (!eventElm) {\n return undefined;\n }\n\n const leagueId = event.league.realCompetitionId || event.league.parentLeagueId || event.league.id;\n\n const favouriteLeagueElm = this.elementRef.nativeElement.querySelector(`#item-${TreeItemType.FavouriteLeague}-${leagueId}`);\n if (favouriteLeagueElm) {\n return new EventReferenceEvent(eventElm, favouriteLeagueElm, undefined, distance);\n }\n\n const leagueElm = this.elementRef.nativeElement.querySelector(`#item-${TreeItemType.League}-${leagueId}`);\n\n return new EventReferenceEvent(eventElm, leagueElm, undefined, distance);\n }\n\n private findTopElement(): IReferenceElement | undefined {\n let result: IReferenceElement | undefined;\n const sports: any[] = this.elementRef.nativeElement.querySelectorAll('.sport');\n if (!sports) {\n return undefined;\n }\n\n for (const sport of sports) {\n if (this.isOnTop(sport)) {\n const leagues = sport.querySelectorAll('.league');\n\n for (const league of leagues) {\n if (league && this.isOnTop(league)) {\n const eventsWrapper = league.querySelector('.tree-events');\n const eventsWrapperHeight = eventsWrapper ? eventsWrapper.clientHeight : 0;\n const leagueOffset = league.offsetTop + league.clientHeight - eventsWrapperHeight;\n\n const events = league.querySelectorAll('ms-tree-event');\n events.forEach((event: any) => {\n if (this.isEventOnTop(event, leagueOffset)) {\n result = new EventReferenceEvent(event, league, eventsWrapper);\n }\n });\n\n if (!result) {\n result = new LeagueReferenceElement(league);\n }\n\n return result;\n }\n }\n }\n }\n\n return undefined;\n }\n\n private startAdjusting(): void {\n this.mutationObserver\n .observe(this.elementRef.nativeElement)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n if (!this.referenceElement && this.eventToScroll) {\n this.referenceElement = this.findEventElement(this.eventToScroll);\n }\n\n if (this.referenceElement) {\n this.adjustScrollPosition(this.referenceElement);\n }\n });\n }\n\n private adjustScrollPosition(elm: IReferenceElement): void {\n const newOffset = elm.getOffset();\n if (newOffset === 0 || newOffset === this.offset) {\n return;\n }\n\n let scrollTo: number;\n if (this.offset) {\n scrollTo = this.scrollContainer.scrollTop + newOffset - this.offset;\n } else {\n scrollTo = newOffset;\n }\n\n this.offset = newOffset;\n this.scrollContainer.scrollTo(undefined, -scrollTo);\n }\n\n private isEventOnTop(event: HTMLElement, leagueOffset: number): boolean {\n const eventOffset = event.offsetTop + leagueOffset;\n\n return event && eventOffset < this.scrollContainer.scrollTop && eventOffset + event.clientHeight > this.scrollContainer.scrollTop;\n }\n\n private isOnTop(item: HTMLElement): boolean {\n return item && item.offsetTop < this.scrollContainer.scrollTop && item.offsetTop + item.clientHeight > this.scrollContainer.scrollTop;\n }\n\n private stopAdjusting(): void {\n this.unsubscribe$.next();\n\n this.referenceElement = undefined;\n this.eventToScroll = undefined;\n }\n}\n","\n
\n {{ messageText }}\n {{ linkText }}\n
\n
\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit } from '@angular/core';\n\nimport { EventModel, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { EpcotNotificationComponent } from '../../../common/epcotNotifications/notification.component';\nimport { BetBuilderTrackingValues } from '../bet-builder-tracking';\nimport { BetBuilderEventNameService } from '../services/bet-builder-event-name.service';\nimport { BetBuilderHowToDialogService } from '../services/bet-builder-how-to-dialog.service';\nimport { BetBuilderOnboardingMessageService } from './bet-builder-onboarding-message.service';\n\n@Component({\n selector: 'ms-bet-builder-onboarding',\n templateUrl: 'bet-builder-onboarding-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EpcotNotificationComponent, NgIf],\n})\nexport class BetBuilderOnboardingComponent implements OnInit, OnChanges {\n @Input() event: EventModel;\n @Input() setId: string | number;\n\n @HostBinding('class') className = 'bet-builder-onboarding-message';\n\n messageText: string;\n linkText: string;\n\n private dismissed = false;\n\n constructor(\n sitecore: Sitecore,\n private betBuilderHowToDialogService: BetBuilderHowToDialogService,\n private betBuilderEventNameService: BetBuilderEventNameService,\n private onboardingMessageService: BetBuilderOnboardingMessageService,\n private tracker: TrackingService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {\n this.messageText = sitecore.betBuilder.messages?.EventDetailsOnboardingMessageText ?? '';\n this.linkText = sitecore.betBuilder.messages?.EventDetailsOnboardingLinkText ?? '';\n }\n\n onCloseButtonClick(): void {\n this.dismissed = true;\n this.onboardingMessageService.close();\n this.trackCloseButtonClick();\n }\n\n onLinkClick(): void {\n this.trackLinkClick();\n\n const leagueId = this.event.league.id;\n const sportId = this.event.sport.id;\n const eventName = this.betBuilderEventNameService.getParticipantHeaderTitle({\n participants: this.event.participants,\n leagueId,\n sportId,\n eventViewType: this.event.viewType,\n eventName: this.event.name,\n });\n\n this.betBuilderHowToDialogService.openBuilder({ leagueId, sportId, eventName });\n }\n\n ngOnInit(): void {\n this.onboardingMessageService.incrementCounter();\n this.trackLoad();\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.tryReplaceMessagesText();\n\n if (changes.setId?.previousValue === SetTab.BetBuilder) {\n this.onboardingMessageService.tryMarkAsShown();\n }\n }\n\n get shouldShow(): boolean {\n return !this.dismissed && !this.onboardingMessageService.isCounterFinished();\n }\n\n private trackLinkClick(): void {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.InfoRibbon,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.FindOutMore,\n });\n }\n\n private trackLoad(): void {\n if (!this.shouldShow) {\n return;\n }\n\n this.tracker.track(trackingConstants.EVENT_CONTENT_VIEW, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Load,\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.InfoRibbon,\n });\n }\n\n private trackCloseButtonClick(): void {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n ...this.getTrackingObject(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Close,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.InfoRibbon,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.InfoRibbon,\n });\n }\n\n private getTrackingObject = () => {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n };\n\n private tryReplaceMessagesText(): void {\n const sportName = SportConstant[this.event.sport.id].toString();\n let messageText: string | undefined;\n\n if (this.event.betBuilderInfo?.betBuilderId && this.setId !== SetTab.BetBuilder) {\n messageText = this.sitecoreEventDetails.onboarding[`OnboardingTextLeague_${this.event.league.id}`];\n this.linkText = this.sitecoreEventDetails.onboarding['OnboardingLinkText'];\n\n if (!messageText) {\n messageText = this.sitecoreEventDetails.onboarding[`OnboardingText${sportName}`];\n }\n }\n\n if (messageText) {\n this.messageText = messageText;\n }\n }\n}\n","
\n {{ betbuilderMessages?.OverlayTriggerTitle }} \n {{ betbuilderMessages?.OverlayTriggerSubtitle }} \n
\n\n\n\n \n\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef, ViewChild } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { PropType } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { BetBuilderOverlayHeaderComponent } from '../bet-builder-overlay-header/bet-builder-overlay-header.component';\nimport { BetBuilderTrackingValues } from '../bet-builder-tracking';\nimport { BetBuilderOverlayService } from '../services/bet-builder-overlay.service';\n\n@Component({\n selector: 'ms-betbuilder-overlay-trigger-banner',\n templateUrl: './overlay-trigger-banner.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [BetBuilderOverlayHeaderComponent],\n})\nexport class OverlayTriggerBannerComponent {\n @HostBinding('class') className = 'betbuilder-overlay-trigger';\n\n @Input() event: EventModel;\n @ViewChild('header') headerTemplate: TemplateRef;\n\n betbuilderMessages: PropType, 'messages'>;\n\n constructor(\n sitecore: Sitecore,\n private betBuilderOverlayService: BetBuilderOverlayService,\n private tracker: TrackingService,\n ) {\n this.betbuilderMessages = sitecore.betBuilderEntainUI.messages;\n }\n\n openBuilder() {\n this.tracker.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: BetBuilderTrackingValues.Tab,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.event.name,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: BetBuilderTrackingValues.BuildaBet,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.event.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.event.league.id.toString(),\n });\n this.betBuilderOverlayService.openBuilder({\n headerTemplate: this.headerTemplate,\n event: this.event,\n isOverlay: true,\n source: BetBuilderTrackingValues.MarketBoardButton,\n });\n }\n}\n","@switch (displayType) {\n @case (BetBuilderDisplayType.EntainUIInOverlay) {\n \n
\n @if (preCreated) {\n @if (!preCreated.hasMarkets) {\n \n }\n @if (preCreated.ambassadorsMarkets && preCreated.ambassadorsMarkets.length) {\n \n }\n @if (preCreated.promotedMarkets && preCreated.promotedMarkets.length) {\n \n }\n }\n
\n }\n @case (BetBuilderDisplayType.EntainUIInMarketBoard) {\n \n }\n @case (BetBuilderDisplayType.Classic) {\n
\n \n \n \n
\n @if (preCreated) {\n @if (preCreated.ambassadorsMarkets && preCreated.ambassadorsMarkets.length) {\n \n }\n @if (preCreated.promotedMarkets && preCreated.promotedMarkets.length) {\n \n }\n }\n }\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nimport { BetBuilderPrecreatedModel } from '../betbuilder/model/bet-builder.model';\nimport { BetBuilderConfigService } from '../betbuilder/services/betbuilder-config.service';\nimport { BetBuilderTrackingValues } from './bet-builder-v2/bet-builder-tracking';\n\nenum BetBuilderDisplayType {\n Classic,\n EntainUIInMarketBoard,\n EntainUIInOverlay,\n}\n\n@Component({\n selector: 'ms-bet-builder-view',\n templateUrl: './bet-builder-view.component.html',\n})\nexport class BetBuilderViewComponent {\n @Input() event: EventModel;\n @Input() preCreated?: BetBuilderPrecreatedModel;\n @HostBinding('class') className = 'tab-bet-builder';\n\n source = BetBuilderTrackingValues.EventDetails;\n\n BetBuilderDisplayType = BetBuilderDisplayType;\n\n constructor(private betBuilderConfigService: BetBuilderConfigService) {}\n\n get displayType(): BetBuilderDisplayType {\n if (!this.betBuilderConfigService.useBetBuilderInEntainUI(this.event.sport.id)) {\n return BetBuilderDisplayType.Classic;\n }\n\n if (this.betBuilderConfigService.showEmbeddedUi()) {\n return BetBuilderDisplayType.EntainUIInMarketBoard;\n }\n\n return this.betBuilderConfigService.showEntainUiInOverlay(this.event.sport.id)\n ? BetBuilderDisplayType.EntainUIInOverlay\n : BetBuilderDisplayType.EntainUIInMarketBoard;\n }\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, OnInit } from '@angular/core';\n\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\nimport { EventSwitcherStore } from '../models';\n\n@Component({\n selector: 'ms-event-switcher-onboarding',\n templateUrl: './event-switcher-onboarding.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, TooltipModule],\n})\nexport class EventSwitcherOnboardingComponent implements OnInit {\n @HostBinding('class') className = `event-switcher-help`;\n showHelp = false;\n\n constructor(\n private localStoreService: LocalStoreService,\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n ) {}\n\n ngOnInit(): void {\n this.checkOnBoarding();\n }\n\n private checkOnBoarding(): void {\n const eventSwitcherStore = this.localStoreService.get('eventSwitcher') || { helpShown: false };\n this.showHelp = !eventSwitcherStore.helpShown;\n\n if (this.showHelp) {\n this.localStoreService.set('eventSwitcher', { helpShown: true });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\n@Injectable({ providedIn: 'root' })\nexport class EventSwitcherTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackOpen(eventId: string): void {\n this.trackAction('Expand', eventId, 'Event Switcher');\n }\n\n trackClose(eventId: string, isLive: boolean): void {\n this.trackAction('Close', eventId, 'Close', undefined, isLive);\n }\n\n trackEventSelect(currentEventId: string, selectedEventId: string, selectedEventName: string, selectedLive: boolean): void {\n this.trackAction('Select', currentEventId, selectedEventName, selectedEventId, selectedLive);\n }\n\n private trackAction(action: string, currentEventId: string, eventDetail: string, selectedEventId?: string, selectedLive?: boolean): void {\n const trackingObject: {\n 'component.CategoryEvent': string;\n 'component.LabelEvent': string;\n 'component.ActionEvent': string;\n 'component.PositionEvent': string;\n 'component.LocationEvent': string;\n 'component.EventDetails': string;\n 'component.URLClicked': string;\n 'sportEventId'?: string;\n } = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Event Switcher',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Events',\n [trackingConstants.COMPONENT_ACTION_EVENT]: action,\n [trackingConstants.COMPONENT_POSITION_EVENT]: currentEventId,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: selectedLive ? 'inplay' : 'preevent',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: eventDetail,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n\n if (selectedEventId) {\n trackingObject['sportEventId'] = selectedEventId;\n }\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingObject);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferCategory } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { LeagueItem, isVirtualCompetitionItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Observable, map, of } from 'rxjs';\n\nimport { SportsCacheService } from '../../../../client-caching/sports-cache.service';\nimport { ComponentProxy } from '../../../../deferred/component-loader.service';\nimport {\n EventSwitcherComponentLoaderService,\n EventSwitcherEventViewBinding,\n} from '../../../../event-details/event-switcher-component-loader.service';\nimport { PopupManager } from '../../../../popup/popup-manager.service';\nimport { EventSwitcherTrackingService } from '../../event-switcher-tracking.service';\nimport { IEventSwitcherToggleHelperService } from './event-switcher-toggle-helper.service';\n\n@Injectable()\nexport class EventSwitcherToggleHelperEpcotService implements IEventSwitcherToggleHelperService {\n constructor(\n private sportCacheService: SportsCacheService,\n private popupManager: PopupManager,\n private trackingService: EventSwitcherTrackingService,\n loader: EventSwitcherComponentLoaderService,\n ) {\n this.eventSwitcherComponent = loader.getEventSwitcherComponent();\n }\n\n eventSwitcherComponent: ComponentProxy;\n\n private readonly EVENT_SWITCHER_POPUP = 'event-switcher';\n\n openSwitcher(event: EventModel): void {\n this.eventSwitcherComponent.update({ event });\n\n this.popupManager.open(this.EVENT_SWITCHER_POPUP);\n\n this.trackingService.trackOpen(event.id);\n }\n\n closeSwitcher(): void {\n this.popupManager.close();\n }\n\n getCount(event: EventModel): Observable {\n if (event.offerCategories.some((c) => [OfferCategory.Outrights].includes(c))) {\n return of(0);\n }\n\n return this.sportCacheService.getSport(event.sport.id, event.league.id).pipe(\n map((sport) => {\n const eventLeagueId = event.league.parentLeagueId ?? event.league.id;\n\n let count = sport?.children\n .find((region) => region.id === event.region.id)\n ?.children.find((c) =>\n isVirtualCompetitionItem(c) && !event.league.realCompetitionId ? c.siblings.includes(eventLeagueId) : c.id === eventLeagueId,\n );\n\n if (count && isVirtualCompetitionItem(count) && !event.league.realCompetitionId) {\n count = count.children.find((c) => (c)?.siblings.includes(eventLeagueId));\n }\n\n return count ? count.counts.gridable : 0;\n }),\n );\n }\n\n get expanded$(): Observable | undefined {\n return undefined;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixturePage } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { groupBy, keys, orderBy } from 'lodash-es';\n\nimport { GroupedEvents } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationEventMapperService {\n constructor(protected fixtureFactory: FixtureFactory) {}\n\n mapFixtures(page: FixturePage | undefined): GroupedEvents {\n if (!page) {\n return {};\n }\n\n const events = page.fixtures.map((f) => this.fixtureFactory.create(f));\n const grouped = groupBy(events, (f) => getLeagueId(f));\n\n const result: { [leagueId: number]: EventModel[] } = [];\n // Needed because events can have same start date and\n // CDS doesn't provide sorting by name (code) as fallback in this case\n keys(grouped).forEach((key) => {\n result[key as any as number] = orderBy(grouped[key], [\n (e) => (e.live ? 0 : 1),\n (e) => (e.scoreboard.started ? 0 : 1),\n (e) => e.startDate.getTime(),\n (e) => e.participants.map((p) => p.shortName).join(),\n ]);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType, OfferCategory } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { Competition, TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureState, OfferMapping, ParticipantMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem, mapNode } from '@frontend/sports/common/core/data-access/sport-model';\nimport { orderBy } from 'lodash-es';\nimport { Observable, map } from 'rxjs';\n\nimport { BaseTreeItem, GroupedEvents, LeftNavType, NavEventModel, TreeItemType } from '../../../event-details-common/event-details-common.models';\nimport { NavigationEventMapperService } from '../../navigation-mapper/navigation-event-mapper.service';\n\n@Injectable()\nexport class EventSwitcherDataService {\n constructor(\n private bettingOfferApi: BettingOfferApi,\n private eventMapperService: NavigationEventMapperService,\n ) {}\n\n getEventsTree(event: EventModel, navType: LeftNavType): Observable {\n const selectedLeagueId = event.league.realCompetitionId ?? event.league.parentLeagueId ?? event.league.id;\n\n return this.getData(navType, event.sport.id, event.region.id, selectedLeagueId).pipe(\n map((data) => (data ? this.mapData(data, navType, event, selectedLeagueId) : undefined)),\n );\n }\n\n private getData(type: LeftNavType, sportId: number, regionId: number, leagueId: number): Observable {\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: type === LeftNavType.Live ? FixtureState.Live : FixtureState.Latest,\n tagTypes: [TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n fixtureCategories: OfferCategory.Gridable,\n excludedFixtureCategories: [OfferCategory.Outrights].join(','),\n competitionIds: type === LeftNavType.Competition ? leagueId.toString() : undefined,\n sportIds: sportId.toString(),\n regionIds: type === LeftNavType.Prematch && sportId !== SportConstant.Tennis ? regionId.toString() : undefined,\n tournamentIds: type === LeftNavType.Prematch && sportId === SportConstant.Tennis ? regionId.toString() : undefined,\n sortBy: SortByCriteria.Tags,\n isPriceBoost: false,\n },\n fixtureRequest: {\n state: type === LeftNavType.Live ? FixtureState.Live : FixtureState.Latest,\n fixtureTypes: FixtureType.Standard,\n fixtureCategories: OfferCategory.Gridable,\n excludedFixtureCategories: [OfferCategory.Outrights].join(','),\n competitionIds: type === LeftNavType.Competition ? leagueId.toString() : undefined,\n sportIds: sportId.toString(),\n regionIds: type === LeftNavType.Prematch && sportId !== SportConstant.Tennis ? regionId.toString() : undefined,\n tournamentIds: type === LeftNavType.Prematch && sportId === SportConstant.Tennis ? regionId.toString() : undefined,\n isPriceBoost: false,\n offerMapping: OfferMapping.None,\n participantMapping: ParticipantMapping.ExcludePlayer,\n sortBy: SortByCriteria.FixtureStage,\n },\n };\n\n return this.bettingOfferApi.getCountsFixtures(request);\n }\n\n private mapData(data: CountsFixturesResponse, type: LeftNavType, event: EventModel, selectedLeagueId: number): BaseTreeItem {\n const competitions = data.counts.filter((c) => c.tag.type === TagType.Competition);\n const regions =\n event.sport.id === SportConstant.Tennis\n ? data.counts.filter((c) => c.tag.type === TagType.Tournament)\n : data.counts.filter((c) => c.tag.type === TagType.Region);\n\n const competitionWithRegion = competitions.map((competition) => {\n const parentId =\n event.sport.id === SportConstant.Tennis ? (competition.tag).parentTournamentId : (competition.tag).parentId;\n const region = regions.find((p) => p.tag.id === parentId);\n\n return { competition, region };\n });\n\n const counts = orderBy(competitionWithRegion, [(c) => c.region?.rank, (c) => c.competition.rank, (c) => c.competition.tag.name.value]).map(\n (cr) => mapNode(cr.competition),\n );\n\n const tree = this.mapTree(counts, type, event, selectedLeagueId);\n\n return this.createTreeWithEvents(tree, this.eventMapperService.mapFixtures(data.fixtures), event.id);\n }\n\n private mapTree(leagues: CountItem[], type: LeftNavType, event: EventModel, selectedLeagueId: number): BaseTreeItem {\n return {\n children: leagues.map((l) => ({\n id: (l).siblings[0] ?? l.id,\n sportId: event.sport.id,\n name: l.name,\n type: TreeItemType.League,\n selected: selectedLeagueId === ((l).siblings[0] ?? l.id),\n expanded: true,\n loading: false,\n icon: 'country-icon c' + (event.sport.id === SportConstant.Tennis ? RegionConstant.World : l.parentId),\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n hideFavorites: true,\n isVirtual: l.isVirtual,\n virtualCompetitionId: l.isVirtual ? l.id : undefined,\n leftNavType: type,\n })),\n };\n }\n\n private createTreeWithEvents(tree: BaseTreeItem, groupedEvents: GroupedEvents, selectedEventId: string): BaseTreeItem {\n if (!groupedEvents) {\n return tree;\n }\n\n tree.children\n .filter((league) => !!groupedEvents[league.virtualCompetitionId ?? league.id])\n .forEach((league) => {\n const mappedEvents = this.mapNavEvents(groupedEvents[league.virtualCompetitionId ?? league.id], selectedEventId);\n league.events = mappedEvents;\n league.count = league.events.length;\n });\n\n return tree;\n }\n\n private mapNavEvents(events: EventModel[], selectedEventId?: string): NavEventModel[] {\n return events.map(\n (e) =>\n {\n data: e,\n showMarkets: false,\n selected: e.id === selectedEventId,\n },\n );\n }\n}\n","\n\n","import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, OnInit } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Observable, Subject } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { BaseTreeItem, LeftNavType } from '../../../event-details-common/event-details-common.models';\nimport { PopupManager } from '../../../popup/popup-manager.service';\nimport { EventSwitcherDataService } from '../services/event-switcher-data.service';\n\n@Component({\n selector: 'ms-event-switcher',\n templateUrl: './event-switcher.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EventSwitcherDataService],\n})\nexport class EventSwitcherComponent implements OnInit {\n @Input() event: EventModel;\n\n private viewModel: Subject = new Subject();\n get viewModel$(): Observable {\n return this.viewModel;\n }\n\n @HostBinding('class') className = 'event-switcher';\n\n constructor(\n private dataProvider: EventSwitcherDataService,\n private popupManager: PopupManager,\n private epcotConfigService: EpcotConfigService,\n ) {}\n\n @HostListener('click', ['$event'])\n click(event: Event): void {\n event.stopPropagation();\n }\n\n ngOnInit(): void {\n this.loadEvents();\n }\n\n private async loadEvents(): Promise {\n const type = this.isEpcotEnabled ? LeftNavType.Competition : this.event.live ? LeftNavType.Live : LeftNavType.Prematch;\n\n this.dataProvider.getEventsTree(this.event, type).subscribe((tree) => {\n if (tree) {\n this.viewModel.next(tree);\n\n this.updateEpcotPopupTitle(tree);\n }\n });\n }\n\n private updateEpcotPopupTitle(tree: BaseTreeItem): void {\n if (this.isEpcotEnabled) {\n const eventCount = tree.children[0].count;\n const newTitle = this.event.league.name + ((eventCount ?? 0 > 1) ? ` (${eventCount})` : '');\n this.popupManager.updateDialogTitle('event-switcher', newTitle);\n }\n }\n\n get isEpcotEnabled(): boolean {\n return this.epcotConfigService.isEnabled();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSwitcherConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ModalDialogOptions, ModalDialogService } from '@frontend/sports/modal/feature';\nimport { HtmlNode } from '@frontend/vanilla/core';\n\nimport { EventSwitcherTrackingService } from '../event-switcher-tracking.service';\nimport { EventSwitcherComponent } from '../event-switcher/event-switcher.component';\nimport { InputData } from '../models';\nimport { SwitcherToggleService } from './switcher-toggle.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventSwitcherToggleService extends SwitcherToggleService {\n private readonly dialogCssClass = 'event-switcher-dialog';\n\n constructor(\n private trackingService: EventSwitcherTrackingService,\n eventSwitcherConfig: EventSwitcherConfig,\n dialogService: ModalDialogService,\n htmlNode: HtmlNode,\n ) {\n super(dialogService, htmlNode, eventSwitcherConfig.isEnabled);\n }\n\n override getHtmlToggleClass(): string {\n return 'event-switcher-visible';\n }\n\n openSwitcher(event: EventModel): void {\n const options: ModalDialogOptions = {\n data: {\n event,\n },\n settings: {\n cssClass: this.dialogCssClass,\n backdropClass: this.dialogCssClass,\n scrollTargetQuerySelector: 'ms-event-switcher',\n fit: false,\n },\n };\n this.open(EventSwitcherComponent, options);\n this.trackingService.trackOpen(event.id);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferCategory } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Observable, map, of } from 'rxjs';\n\nimport { SportsCacheService } from '../../../../client-caching/sports-cache.service';\nimport { EventSwitcherToggleService } from '../event-switcher-toggle.service';\nimport { IEventSwitcherToggleHelperService } from './event-switcher-toggle-helper.service';\n\n@Injectable()\nexport class EventSwitcherToggleHelperRowService implements IEventSwitcherToggleHelperService {\n constructor(\n private sportCacheService: SportsCacheService,\n private toggleService: EventSwitcherToggleService,\n ) {}\n\n openSwitcher(event: EventModel): void {\n if (!this.toggleService.expanded && event) {\n this.toggleService.openSwitcher(event);\n } else {\n this.toggleService.close();\n }\n }\n\n closeSwitcher(): void {\n this.toggleService.close();\n }\n\n getCount(event: EventModel): Observable {\n if (event.offerCategories.some((c) => [OfferCategory.Outrights].includes(c))) {\n return of(0);\n }\n\n return this.sportCacheService.getSport(event.sport.id, event.league.id).pipe(\n map((sport) => {\n if (event.live) {\n return sport?.counts.live ?? 0;\n }\n\n const count = sport?.children.find((region) => region.id === event.region.id);\n\n return count ? count.counts.gridable : 0;\n }),\n );\n }\n\n get expanded$(): Observable | undefined {\n return this.toggleService.expanded$;\n }\n}\n","@if (showLeagueLogo) {\n \n}\n\n {{ title }}\n\n\n@if (showOnboarding) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, HostBinding, Input, OnChanges, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSwitcherConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { WhenOverflowedDirective, WhenOverflowedOptions } from '@frontend/sports/common/ui/overflow';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { BehaviorSubject, Subject, distinctUntilChanged, filter, map, skip, switchMap } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { EventSwitcherOnboardingComponent } from '../event-switcher-onboarding/event-switcher-onboarding.component';\nimport { EventSwitcherToggleHelperEpcotService } from '../services/toggle-helper/event-switcher-toggle-helper-epcot.service';\nimport { EventSwitcherToggleHelperRowService } from '../services/toggle-helper/event-switcher-toggle-helper-row.service';\nimport { IEventSwitcherToggleHelperService } from '../services/toggle-helper/event-switcher-toggle-helper.service';\n\n@Component({\n selector: 'ms-event-switcher-toggle',\n templateUrl: './event-switcher-toggle.component.html',\n standalone: true,\n imports: [CommonModule, CompetitionLogoComponent, EventSwitcherOnboardingComponent, WhenOverflowedDirective, IconCustomComponent],\n providers: [EventSwitcherToggleHelperEpcotService, EventSwitcherToggleHelperRowService],\n})\nexport class EventSwitcherToggleComponent implements OnChanges {\n @Input() event: EventModel;\n @Input() mediaCount: number;\n\n @HostBinding('class') className = 'event-switcher-toggle';\n\n @HostBinding('class.disabled') get isDisabled(): boolean {\n return !this.config.isEnabled || this.eventCount < 2;\n }\n\n @HostBinding('class.expanded') expanded = false;\n @ViewChild(WhenOverflowedDirective, { read: WhenOverflowedDirective }) directive: WhenOverflowedDirective;\n\n toggleSwitcher(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.eventSwitcherToggleHelper.openSwitcher(this.event);\n }\n\n title: string;\n showLeagueLogo: boolean;\n epcotEnabled: boolean;\n overflowOptions: WhenOverflowedOptions = {\n classNameToAdd: 'text-overflows',\n resizeFont: true,\n minFontSize: 9,\n listenToResize: true,\n manualMutationCheck: true,\n adjustRatio: 0.9,\n };\n\n private eventCount = 0;\n\n private event$ = new BehaviorSubject(undefined);\n private mediaTabCount$ = new Subject();\n\n private eventSwitcherToggleHelper: IEventSwitcherToggleHelperService;\n\n constructor(\n private config: EventSwitcherConfig,\n private changeDetectorRef: ChangeDetectorRef,\n private epcotConfigService: EpcotConfigService,\n epcotHelper: EventSwitcherToggleHelperEpcotService,\n rowHelper: EventSwitcherToggleHelperRowService,\n ) {\n this.eventSwitcherToggleHelper = epcotConfigService.isEnabled() ? epcotHelper : rowHelper;\n this.epcotEnabled = epcotConfigService.isEnabled();\n\n this.event$\n .pipe(\n filter(isDefined),\n switchMap((event) =>\n this.eventSwitcherToggleHelper.getCount(event).pipe(\n map((count) => ({\n event,\n count,\n })),\n ),\n ),\n takeUntilDestroyed(),\n )\n .subscribe(({ event, count }) => this.setModel(event, count));\n\n this.mediaTabCount$.pipe(skip(1), distinctUntilChanged(), takeUntilDestroyed()).subscribe((_) => {\n this.directive.forceRefresh();\n });\n\n this.eventSwitcherToggleHelper.expanded$?.pipe(takeUntilDestroyed()).subscribe((expanded) => {\n this.expanded = expanded;\n this.changeDetectorRef.markForCheck();\n });\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.event?.currentValue) {\n this.event$.next(changes.event.currentValue);\n }\n\n if (changes.mediaCount?.currentValue) {\n this.mediaTabCount$.next(changes.mediaCount.currentValue);\n }\n }\n\n get showOnboarding(): boolean {\n return !this.epcotConfigService.isEnabled() && !this.isDisabled && !this.expanded;\n }\n\n private setModel(event: EventModel, count: number): void {\n this.showLeagueLogo = this.config.toggleIconAllowedSports.includes(event.sport.id);\n this.eventCount = count;\n this.title = event.league.name + (this.isDisabled || !this.epcotConfigService.isEnabled() ? '' : ` (${this.eventCount})`);\n this.changeDetectorRef.markForCheck();\n }\n}\n","@if (tabs && tabs.length > 1) {\n \n @for (tab of tabs; track $index) {\n \n \n @if (tab.icon) {\n \n }\n \n \n }\n \n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n NgZone,\n OnChanges,\n Output,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ThemeOptionsWithDefault } from '@frontend/sports/common/ui/shared';\nimport { SportsThemedSegmentedControlDirective } from '@frontend/sports/common/ui/sports-themed-segmented-control';\nimport { DsSegmentedControlModule } from '@frontend/ui/segmented-control';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { filter } from 'rxjs';\n\nimport { HeaderNavigationService } from '../../event-details-common/header-navigation/header-navigation.service';\nimport { FeatureTab, ScoreboardMediaTrackingService } from '../../event-details-common/scoreboard/scoreboard-media-tracking.service';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\n\n@Component({\n selector: 'ms-media-switcher',\n templateUrl: 'media-switcher.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, DsSegmentedControlModule, IconCustomComponent, SportsThemedSegmentedControlDirective],\n})\nexport class MediaSwitcherComponent implements OnChanges {\n @HostBinding('class') className = 'media-switcher';\n\n @Input() event: EventModel | undefined;\n @Output() mediaTabsCountChanged = new EventEmitter();\n tabs: TabBarItem[];\n currentSelectedTab: string;\n\n readonly segmentedControlThemeInverse: ThemeOptionsWithDefault = {\n 'giocodigitale': false,\n 'premium-dark': false,\n 'sports-interaction': false,\n 'sportingbet-2': false,\n 'default': true,\n };\n\n private mediaTabsCount: number;\n\n private ngZone = inject(NgZone);\n\n constructor(\n private headerNavigation: HeaderNavigationService,\n private scoreboardMediaTrackingService: ScoreboardMediaTrackingService,\n private changeDetector: ChangeDetectorRef,\n private strategy: RxStrategyProvider,\n ) {\n this.headerNavigation.selectedTab\n ?.pipe(\n filter((x) => !!(x && this.tabs)),\n takeUntilDestroyed(),\n )\n .subscribe((x) => {\n this.tabs.forEach((tab) => (tab.active = tab.id === x?.id));\n this.currentSelectedTab = x?.id.toString() ?? '';\n this.changeDetector.markForCheck();\n });\n }\n\n ngOnChanges(): void {\n if (this.event) {\n this.headerNavigation.getTabs(this.event).then((result) => {\n this.tabs = result;\n this.changeDetector.markForCheck();\n\n if (this.mediaTabsCount !== this.tabs.length) {\n this.mediaTabsCount = this.tabs.length;\n this.mediaTabsCountChanged.emit(this.mediaTabsCount);\n }\n });\n }\n }\n\n selected(activeTabId: string): void {\n const activeTab = this.tabs?.find((tab) => tab.id.toString() === activeTabId);\n\n if (activeTab) {\n this.strategy\n .schedule(\n () => {\n if (this.event) {\n this.headerNavigation.updateSelected(activeTab);\n\n if (\n activeTab.id === FeatureTab.Statistics ||\n activeTab.id === FeatureTab.Simulation ||\n activeTab.id === FeatureTab.Video ||\n activeTab.id === FeatureTab.Scoreboard\n ) {\n this.scoreboardMediaTrackingService.trackTabsInteractionForHeader(activeTab.id, this.event);\n }\n }\n },\n { scope: this, patchZone: this.ngZone },\n )\n .subscribe();\n }\n }\n}\n","@if (event) {\n \n @if (!event.scoreboard?.isFinished) {\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, inject } 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 { WINDOW } from '@frontend/vanilla/core';\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 private readonly _window = inject(WINDOW);\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 this._window.addEventListener('popstate', () => {\n if (this.previousUrl && this._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 { 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 { TabBarItem } from '../../tab-bar/tab-bar.models';\n\n@Injectable({ providedIn: 'root' })\nexport class HeaderNavigationUrlService {\n constructor(\n private urlService: UrlService,\n private location: Location,\n private timerService: TimerService,\n private eventDetailsConfig: EventDetailsConfig,\n ) {}\n\n updateCurrentUrl(tabBarItem: TabBarItem): void {\n if (this.eventDetailsConfig.showInOverlay) {\n this.timerService.setTimeoutOutsideAngularZone(() => {\n this.updateCurrentUrlInternal(tabBarItem);\n });\n } else {\n this.updateCurrentUrlInternal(tabBarItem);\n }\n }\n\n private updateCurrentUrlInternal(tabBarItem: TabBarItem): void {\n const typedReverseFeatureTab = getReverseEnum(FeatureTab);\n const tab = FeatureUrl[typedReverseFeatureTab[tabBarItem.id]];\n\n const search = this.urlService.current().search;\n\n search.set('tab', tab);\n this.location.replaceState(this.urlService.current().path(), 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@if (setTabs) {\n @if (isSitemapEnabled) {\n \n } @else {\n @if (!event.isFinished() && setTabs.length > 1) {\n \n }\n @if (!isSitemapEnabled && setTabs.length && isHeaderSubNavigationEnabled) {\n \n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel, EventOptionSet, EventSitemapSet, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { AngstromTagIdValues } from '@frontend/sports/betting-offer/feature/types';\nimport { EventDetailsConfig, MyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { find, has } from 'lodash-es';\nimport { distinctUntilKeyChanged, filter } from 'rxjs';\n\nimport { ComponentProxy } from '../../deferred/component-loader.service';\nimport { DispatcherEvent, FeatureUrl, HeaderContentDensity } from '../../event-details-common/event-details-common.models';\nimport { EventDetailsHelperService } from '../../event-details-common/event-details-helper.service';\nimport { HeaderNavigationService } from '../../event-details-common/header-navigation/header-navigation.service';\nimport { EventMarketsTabBarItem } from '../../event-details-common/header/tab-group/event-header-tab-bar.models';\nimport { EventDetailsSitemapComponentLoaderService } from '../../event-details-sitemap/event-details-sitemap-component-loader.service';\nimport { EventDetailsSitemapBinding } from '../../event-details-sitemap/event-details-sitemap.models';\nimport { AdaptiveLayoutService, AdaptiveLayoutState } from '../../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { MyBetsSummaryService } from '../../my-bets-base/my-bets-summary.service';\nimport { TabBarComponent } from '../../tab-bar/tab-bar.component';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { BetBuilderTrackingValues } from '../bet-builder-v2/bet-builder-tracking';\nimport { EventNavigation, SubNavigationPayload } from '../event-details-dispatcher-events';\nimport { EventDetailsMarketQueryService } from './event-details-market-query.service';\nimport { HeaderNavigationUrlService } from './header-navigation-url.service';\nimport { HeaderService } from './header.service';\n\nexport type SetChangeEvent = {\n setId: string | number;\n groupedSetsIds?: number[];\n subSetId?: string;\n tags?: string[];\n isSgp?: boolean;\n defaultTab?: number | string;\n};\n\n@Component({\n selector: 'ms-header',\n templateUrl: 'header.component.html',\n})\nexport class HeaderComponent implements OnChanges, OnDestroy, OnInit, AfterViewInit {\n @Input() isLive: boolean;\n @Input() event: EventModel;\n @Input() optionSets: EventOptionSet[] = [];\n @Input() isNewEDPScoreboard = false;\n\n @HostBinding('class') className = 'event-detail-header';\n @HostBinding('class.with-header-navigation') withHeaderNavigation = false;\n\n @HostBinding('class.sticky') sticky: boolean;\n\n @Input() set: string | number;\n @Output() setChange = new EventEmitter();\n @Output() featureChange = new EventEmitter();\n\n feature: TabBarItem;\n featureTabs: TabBarItem[];\n setTabs: EventMarketsTabBarItem[];\n isSitemapEnabled: boolean;\n sitemapComponent?: ComponentProxy;\n private isVideoPinned = false;\n isHeaderSubNavigationEnabled: boolean;\n private readonly destroyRef = inject(DestroyRef);\n\n @ViewChildren(TabBarComponent) private tabMenus: QueryList;\n\n constructor(\n public headerNavigation: HeaderNavigationService,\n private headerService: HeaderService,\n private trackingService: TrackingService,\n private timer: TimerService,\n private myBetsSummary: MyBetsSummaryService,\n private urlService: UrlService,\n private columnLayout: ColumnLayoutService,\n private adaptiveLayout: AdaptiveLayoutService,\n private headerNavigationUrlService: HeaderNavigationUrlService,\n private eventDetailsHelperService: EventDetailsHelperService,\n private changeRef: ChangeDetectorRef,\n private dispatcher: DispatcherService,\n private eventDetailConfig: EventDetailsConfig,\n private mybetsConfig: MyBetsConfig,\n private sitemapLoader: EventDetailsSitemapComponentLoaderService,\n private eventDetailsMarketQueryService: EventDetailsMarketQueryService,\n ) {\n this.isSitemapEnabled = this.eventDetailConfig.enableSitemapNavigation;\n if (this.isSitemapEnabled) {\n this.sitemapComponent = this.sitemapLoader.getEventDetailsSitemapComponent();\n this.sitemapComponent?.subscribeToOutputs({ toggleSitemapItem: (item: EventMarketsTabBarItem) => this.toggleSitemap(item) });\n }\n\n this.headerNavigation.selectedTab\n .pipe(\n filter((x) => !!x),\n takeUntilDestroyed(),\n )\n .subscribe((x) => this.featureTabSelected(x!));\n\n this.dispatcher\n .on(DispatcherEvent.EventDetails.SetTab)\n .pipe(takeUntilDestroyed())\n .subscribe((setId) => {\n const newSetId = setId === SetTab.Sgp ? (this.setTabs.find((x) => x.isSgp)?.id ?? 0) : setId;\n if (newSetId === SetTab.BetBuilder && newSetId === this.set) {\n return;\n }\n\n this.setTabActivate(newSetId);\n const active = this.setTabs.find((tab) => tab.active);\n if (active) {\n this.setTabSelected(active);\n }\n });\n\n this.dispatcher\n .on(EventNavigation.SetSubTabs)\n .pipe(takeUntilDestroyed())\n .subscribe((payload) => {\n const tab = this.setTabs.find((t) => t.id === payload.tabId);\n if (tab) {\n tab.subNavigationTabs = payload.subTabs;\n this.setTabs = this.setTabs.slice(0);\n }\n\n if (this.isSitemapEnabled && tab?.id === SetTab.BetBuilder && tab?.active) {\n this.setBetBuilderSubNavigation(tab, payload);\n }\n });\n\n this.isHeaderSubNavigationEnabled = this.eventDetailConfig.isHeaderSubNavigationEnabled;\n }\n\n ngAfterViewInit(): void {\n this.tabMenus.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((_) => this.tabChanged());\n }\n\n async ngOnInit(): Promise {\n this.adaptiveLayout.stateChange$\n .pipe(distinctUntilKeyChanged('columns'), takeUntilDestroyed(this.destroyRef))\n .pipe(filter((_) => Boolean(this.setTabs && this.setTabs.length)))\n .subscribe(this.layoutColumnsChanged);\n\n return this.init();\n }\n\n tabClicked(tabId: string): void {\n this.dispatcher.dispatch(EventNavigation.SelectSubTab, tabId);\n this.setChange.emit({\n setId: this.set,\n subSetId: this.getActiveSubset(),\n isSgp: this.getActiveTab().isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n\n private toggleSitemap(item: EventMarketsTabBarItem): void {\n if (item.isBetBuilderSubItem && item.active) {\n // Since sportcast tabs are loaded lazily and not on fixture creation and because HeaderService expects tabs to be part of EventModel\n // we cannot treat it like regular sitemap which sets queryString, and instead we just need to dispatch EventNavigation.SelectSubTab\n // so that it triggers betbuilder-market-list group change and market list fetching\n this.tabClicked(item.id.toString());\n\n return;\n }\n\n if (!item.active) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n this.initSetTabs(false);\n } else {\n this.eventDetailsMarketQueryService.setQueryString(this.setTabs, item);\n }\n\n const active = item.active ? item : this.getActiveTab();\n const tags = this.getTagsForItem(active);\n\n this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n tags,\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n\n private initSetTabs(showGoHome: boolean, queryString?: string, buildDefaultTabs?: boolean): void {\n const tags = queryString ? this.eventDetailsMarketQueryService.getTagsFromQueryString(queryString) : [];\n\n if (tags.length === 0) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n }\n\n this.setTabs = this.headerService.getSetTabs(\n this.event,\n {\n canAddMybets: this.shouldHaveMybetsTab(this.adaptiveLayout.current),\n canAddBetBuilder: true,\n desiredSetId: this.eventDetailsMarketQueryService.getMarketSetFromQuery(),\n },\n tags,\n buildDefaultTabs ?? (tags && tags.length <= 1),\n );\n this.sitemapComponent?.update({\n items: this.setTabs.filter((t) => !t.defaultPill),\n showGoHome,\n eventFinished: this.event.isFinished(),\n betBuilderProvider: this.event.betBuilderInfo?.betBuilderProvider,\n });\n }\n\n private async init(): Promise {\n await this.initFeatureTabs();\n\n const queryString = this.eventDetailsMarketQueryService.getQueryString();\n this.initSetTabs(false, queryString);\n\n this.eventDetailsMarketQueryService.cleanMyBetsQueryString(this.setTabs);\n this.setTabActivate(this.set);\n\n if (this.set === -100) {\n // Issue with ExpressionChangedAfterItHasBeenCheckedError\n const active = this.getActiveTab();\n\n if (active.defaultPill) {\n this.eventDetailsMarketQueryService.cleanQueryString();\n } else if (!!queryString && queryString !== active.queryString) {\n this.eventDetailsMarketQueryService.setQueryString(this.setTabs);\n }\n\n const tags = this.getTagsForItem(active);\n\n await this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n subSetId: this.getActiveSubset(),\n tags,\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n\n this.set = active.id;\n }\n\n this.tabChanged();\n\n this.myBetsSummary.summaryUpdate.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.onMyBetsSummaryUpdate());\n }\n\n ngOnDestroy(): void {\n this.headerNavigation.updateSelected();\n }\n\n async ngOnChanges(changes: ISimpleChanges): Promise {\n if (changes.event?.currentValue) {\n if (!changes.event.isFirstChange) {\n const liveStateChanged = changes.isLive?.currentValue !== changes.isLive?.previousValue;\n if (liveStateChanged) {\n this.set = -100;\n this.initSetTabs(false, this.eventDetailsMarketQueryService.getQueryString());\n }\n }\n this.sitemapComponent?.update({\n trackingData: {\n eventId: changes.event.currentValue.id,\n sportId: changes.event.currentValue.sport.id,\n leagueId: changes.event.currentValue.league.id,\n isLive: changes.event.currentValue.live,\n eventName: changes.event.currentValue.name,\n },\n });\n\n if (changes.event.previousValue && changes.event.currentValue.id !== changes.event.previousValue.id) {\n this.set = -100;\n this.init();\n\n return;\n }\n }\n\n const setChange = changes.set;\n if (setChange && !setChange.firstChange) {\n const currentValue = setChange.currentValue;\n const queryString = this.eventDetailsMarketQueryService.getQueryString();\n\n if (queryString !== undefined) {\n const tab = this.setTabs.find((t) => t.id === currentValue);\n\n if (tab?.hasChildren) {\n this.initSetTabs(true, tab.queryString, false);\n } else {\n this.sitemapComponent?.update({ showGoHome: true });\n }\n }\n\n this.setTabActivate(currentValue);\n\n const active = this.getActiveTab();\n if (this.isSgpTabSelected(active)) {\n await this.setChange.emit({\n setId: active.id,\n groupedSetsIds: active.marketGroups,\n tags: this.getTagsForItem(active),\n isSgp: active.isSgp,\n defaultTab: this.getDefaultTab(),\n });\n }\n }\n\n const optionSetChange = changes.optionSets;\n if (optionSetChange && !optionSetChange.firstChange) {\n this.optionSetsChanged();\n }\n\n const isLiveChange = changes.isLive;\n if (isLiveChange && !isLiveChange.firstChange) {\n await this.initFeatureTabs();\n }\n }\n\n private async initFeatureTabs(): Promise {\n if (this.event) {\n this.featureTabs = await this.headerNavigation.getTabs(this.event);\n }\n }\n\n private onMyBetsSummaryUpdate(): void {\n if (this.shouldHaveMybetsTab(this.adaptiveLayout.current)) {\n this.setTabs = this.headerService.getSetTabs(this.event, {\n canAddMybets: true,\n canAddBetBuilder: true,\n currentSetId: this.set,\n currentSubSetId: this.getActiveSubset(),\n });\n this.sitemapComponent?.update({ items: this.setTabs.filter((t) => !t.defaultPill) });\n }\n this.changeRef.detectChanges();\n }\n\n featureTabSelected(feature: TabBarItem): void {\n this.feature = feature;\n this.featureChange.emit(feature.id);\n this.tabChanged();\n\n // on desktop don't update url\n if (!this.adaptiveLayout.current.hasRightColumn) {\n this.headerNavigationUrlService.updateCurrentUrl(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","@if (event && event.published) {\n \n}\n\n\n \n\n\n
\n \n
\n\n\n \n -100 || isEventSitemapEnabled\" [ngSwitch]=\"setId\">\n @if (event) {\n \n }\n \n @if (event) {\n \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 @if (event && optionGroupSource.length) {\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 { BAB_TOOLTIP_HOST_INJECTION_TOKEN } from '../priceboost/components/price-boost.component';\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 { SetChangeEvent } from './header/header.component';\nimport { NavigationStateService } from './navigation-state/navigation-state.service';\n\n@HooksWireup()\n@Component({\n selector: 'ms-event-details-main',\n templateUrl: 'event-details.component.html',\n providers: [\n optionContextServiceProviderFactory(true),\n EDPScoreboardConfigService,\n EventDetailsViewModelService,\n { provide: BAB_TOOLTIP_HOST_INJECTION_TOKEN, useValue: 'ms-event-details-main' },\n ],\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 constructor(\n public sitecoreEventDetails: SitecoreEventDetailsConfig,\n private timer: TimerService,\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(\n this.playerStatsSubscriptionService.subscribe([\n {\n event: this.event,\n callback: this.eventChanged,\n },\n ]),\n );\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: SetChangeEvent): 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?.toString();\n\n this.setModel();\n\n if (this.event) {\n this.setMain = this.getMainSet(this.event);\n }\n\n if (this.isMainOrAllTab) {\n this.isEventPageModularEnabledWithWidgets = this.eventModularVM?.widgetPositions.length > 0;\n } else {\n this.isEventPageModularEnabledWithWidgets = false;\n }\n\n if (this.setId === SetTab.MyBets && this.event) {\n this.myBetsComponent.update({ event: this.event });\n }\n\n this.scrollContainer.scrollTo(0, 0);\n }\n\n featureChanged(feature: number): void {\n const current = this.feature;\n this.feature = feature;\n\n // we check whether there is some change to overcome possible reflow\n if (current !== undefined && current !== feature) {\n this.scrollContainer.scrollTo(0, 0);\n }\n }\n\n private promoIdsChanged(promoMap: PromotionMap): void {\n this.crmPromoIdsMap = {\n templateIds: promoMap.templateIds,\n markets: promoMap.markets,\n options: promoMap.options,\n };\n }\n\n private promotionChanged(model: Promotion[]): void {\n this.crmPromotions = this.event ? this.promotionMapper.getPromotionsForEvent(this.event, model) : [];\n this.setCrmPromotions();\n }\n\n private setCrmPromotions(): void {\n if (!this.event) {\n return;\n }\n\n this.crmOptionGroupsPromotedMap = this.promotionMapper.getPromotedOptionGroupIds(this.optionGroups, this.event, this.crmPromotions);\n this.crmBannerPromotions = this.promotionMapper\n .getBannerPromotions(this.event.optionGroups, this.event, this.crmPromotions)\n .slice(0, this.promotionConfig.promotions.bannerCount.eventView);\n this.marqueeComponent.update({\n promotionTiles: this.crmBannerPromotions,\n preventNavigation: true,\n showLoader: true,\n page: this.page,\n });\n }\n\n private setModel(): void {\n if (this.setId === undefined || this.setId === -100 || !this.event) {\n return;\n }\n this.isPrecreatedBABTabActive = this.helper.isPreCreatedBABTab(this.event, this.setId);\n\n this.sourceOfPick = this.isSgp ? SourceOfPick.EmbeddedBetBuilder : SourceOfPick.EventDetails;\n\n const setData: OptionMarketSetData = {\n activeTab: this.setId,\n groupedSetsIds: this.groupedSets,\n tag: this.subSet,\n setTags: this.tags,\n isSgp: this.isSgp,\n isPrecreatedBABTab: this.isPrecreatedBABTabActive,\n };\n this.optionMarketSetData.set(setData);\n\n const optionGroups = this.helper.prepareEventOptionGroups({\n event: this.event,\n ...setData,\n });\n\n if (this.setId === this.setType.All) {\n this.optionGroups = [];\n\n this.event.optionSets.forEach(\n (set) =>\n (this.optionGroups = this.optionGroups.concat(\n sortBy(\n optionGroups.filter((group) => group.detailedGrouping.marketSet === set.id),\n (optionGroup) => !(optionGroup.templateId in this.promotedMap),\n (optionGroup) => optionGroup.detailedGrouping.marketOrder,\n ),\n )),\n );\n\n this.crmOptionGroupsPromotedMap = this.promotionMapper.getPromotedOptionGroupIds(this.optionGroups, this.event, this.crmPromotions);\n\n return;\n }\n\n this.optionGroups = sortBy(\n optionGroups,\n (optionGroup) => !(optionGroup.templateId in this.promotedMap),\n (optionGroup) => (this.setId === this.setType.MyMarkets ? optionGroup.position : optionGroup.detailedGrouping.marketOrder),\n );\n\n this.totalOptionGroupsCount = this.helper.calculateEventOptionGroupsCount(this.event);\n if (!this.isEventPageModularEnabled) {\n this.setCrmPromotions();\n }\n }\n\n private eventChanged = () => {\n if (this.event) {\n const setMediaEvent = this.event.live !== this.isLive;\n this.isLive = this.event.live;\n\n if (this.isLive) {\n this.hasMarqueeAvailable = false;\n if (this.setId === this.setType.BetBuilder) {\n this.setChanged({ setId: 0, subSetId: undefined, defaultTab: '' });\n }\n }\n if (setMediaEvent) {\n this.setEvent(this.event);\n }\n }\n\n this.setModel();\n this.changeRef.markForCheck();\n };\n\n private getMainSet(event: EventModel): number | string | undefined {\n return this.eventDetailsConfig.enableSitemapNavigation\n ? this.defaultTab\n : (event.optionSets.map((optionSet) => optionSet.id).shift() as number);\n }\n\n private setPromoted(event: EventModel): void {\n this.promotedMap = keyBy(this.promoted || [], (promoted) => promoted);\n\n if (this.promoted && this.promoted.length > 0) {\n const promotedOptionGroup = find(event.optionGroups, (optionGroup) => optionGroup.templateId in this.promotedMap);\n\n if (promotedOptionGroup) {\n this.setId = promotedOptionGroup.detailedGrouping.marketSet;\n }\n }\n }\n\n private setEvent(event: EventModel): void {\n this.mediaApi.setEvent(event, MediaEventSource.EventDetails, null, TrackingVideoSource.EventDetails);\n }\n\n private setMediaModuleContext(mediaModuleContext: MediaModuleContextPage, eventId: string | null): void {\n this.mediaApi.setMediaWidgetContext(mediaModuleContext, eventId);\n }\n\n get isMainOrAllTab(): boolean {\n return this.setId === SetTab.All || this.setId === this.setMain;\n }\n\n defaultExpandedMarkets(widgetPosition?: number): number | undefined {\n if (!this.defaultExpandedMarketsCount || this.isPrecreatedBABTabActive) {\n return;\n }\n\n if (widgetPosition) {\n return Math.max(this.defaultExpandedMarketsCount - widgetPosition, 0);\n }\n\n return this.defaultExpandedMarketsCount;\n }\n\n trackPosition(index: number): number {\n return index;\n }\n\n getTracking(): string {\n return this.sourceOfPick === SourceOfPick.EmbeddedBetBuilder ? 'betbuilder' : 'EventDetails/Sport/' + this.event?.sport?.id;\n }\n\n private getAutomatedMarqueeTiles(model: DetailedEventViewModel, marqueeTiles: Tile[]): Tile[] {\n if (marqueeTiles.length < this.marqueeConfig.maxTiles && this.marqueeConfig.isAutomatedMarqueesEnabled && model.fixture) {\n const automatedMarqueeTiles = this.automatedMarqueeService.createAutomatedMarqueeTiles(model);\n const automatedTiles = this.automatedMarqueeService.getTiles(\n model?.fixture,\n automatedMarqueeTiles,\n model.betBuilderFixture?.sourceFixture,\n model.betBuilderFixture?.precreatedMarketsInfo,\n );\n if (automatedTiles.length > 0 && !this.isLive) {\n this.hasMarqueeAvailable = true;\n }\n\n return this.automatedMarqueeService.getCombinedTiles(marqueeTiles, automatedTiles);\n }\n\n return marqueeTiles;\n }\n\n private mapModularVm(model: DetailedEventViewModel): ModularEventViewModel {\n const groupedWidgets = groupBy(model.widgetLayoutResponse?.widgets, (group) => group.position);\n const widgetPositions = Object.keys(groupedWidgets).map((m) => Number(m));\n\n return {\n layoutTemplate: model.widgetLayoutResponse?.template,\n widgetPage: model.widgetLayoutResponse?.page,\n widgetPositions,\n groupedWidgets,\n };\n }\n}\n","import { SelectionInfo } from '../../event-details-common/event-details-common.models';\n\nexport class NavState {\n expandedSports: Set;\n collapsedLeagues: Set;\n sportsWithCollapsedMarkets: Set;\n\n constructor(\n public selection: SelectionInfo | undefined,\n expandedSports: number[],\n collapsedLeagues: number[],\n sportsWithCollapsedMarkets: number[],\n ) {\n this.expandedSports = new Set(expandedSports || []);\n this.collapsedLeagues = new Set(collapsedLeagues || []);\n this.sportsWithCollapsedMarkets = new Set(sportsWithCollapsedMarkets || []);\n }\n\n isSportExpanded(sportId: number): boolean {\n return this.expandedSports.has(sportId);\n }\n\n isLeagueCollapsed(leagueId: number): boolean {\n return this.collapsedLeagues.has(leagueId);\n }\n\n areMarketsCollapsed(sportId: number): boolean {\n return this.sportsWithCollapsedMarkets.has(sportId);\n }\n\n isEmpty(): boolean {\n return this.expandedSports.size === 0 && this.collapsedLeagues.size === 0 && this.sportsWithCollapsedMarkets.size === 0;\n }\n\n toggleSport(sportId: number): void {\n if (this.expandedSports.has(sportId)) {\n this.expandedSports.delete(sportId);\n } else {\n this.expandedSports.add(sportId);\n }\n }\n\n toggleLeague(leagueId: number): void {\n if (this.collapsedLeagues.has(leagueId)) {\n this.collapsedLeagues.delete(leagueId);\n } else {\n this.collapsedLeagues.add(leagueId);\n }\n }\n\n toggleMarkets(sportId: number): void {\n if (this.sportsWithCollapsedMarkets.has(sportId)) {\n this.sportsWithCollapsedMarkets.delete(sportId);\n } else {\n this.sportsWithCollapsedMarkets.add(sportId);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SessionStoreService } from '@frontend/vanilla/core';\n\nimport { SelectionInfo } from '../../event-details-common/event-details-common.models';\nimport { NavState } from '../navigation-state/navigation-state';\n\nexport interface SessionData {\n selection?: SelectionInfo;\n expandedSports: number[];\n collapsedLeagues: number[];\n sportsWithCollapsedMarkets: number[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationStateService {\n private readonly sessionKey: string = 'live-navigation-state';\n state: NavState;\n\n constructor(private sessionStore: SessionStoreService) {\n this.state = this.loadState();\n }\n\n private loadState(): NavState {\n const rawState: SessionData = this.sessionStore.get(this.sessionKey) || {\n expandedSports: [],\n collapsedLeagues: [],\n sportsWithCollapsedMarkets: [],\n };\n\n return new NavState(rawState.selection, rawState.expandedSports, rawState.collapsedLeagues, rawState.sportsWithCollapsedMarkets);\n }\n\n storeState(): void {\n this.sessionStore.set(this.sessionKey, {\n selection: this.state.selection,\n expandedSports: Array.from(this.state.expandedSports),\n collapsedLeagues: Array.from(this.state.collapsedLeagues),\n sportsWithCollapsedMarkets: Array.from(this.state.sportsWithCollapsedMarkets),\n });\n }\n\n storeSelection(selection: SelectionInfo): void {\n this.state.selection = selection;\n this.storeState();\n }\n\n toggleSport(sportId: number): void {\n this.state.toggleSport(sportId);\n this.storeState();\n }\n\n toggleLeague(leagueId: number): void {\n this.state.toggleLeague(leagueId);\n this.storeState();\n }\n\n toggleMarkets(sportId: number): void {\n this.state.toggleMarkets(sportId);\n this.storeState();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { filterDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { toString } from 'lodash-es';\nimport { Observable, debounceTime, shareReplay, switchMap, timer } from 'rxjs';\n\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationRefreshService {\n refresh$: Observable;\n reload$: Observable;\n\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private liveNavConfig: LiveNavigationConfig,\n private bettingContent: BettingOfferApi,\n private userService: UserService,\n ) {\n this.registerRefresh();\n this.registerReload();\n }\n\n private registerRefresh(): void {\n const intervalInMs = this.liveNavConfig.pollingInterval * 1000;\n\n this.refresh$ = timer(intervalInMs, intervalInMs).pipe(\n debounceTime(2000),\n filterSports(),\n switchMap(() => this.getData()),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n private registerReload(): void {\n this.reload$ = this.userService.onAuthenticationChange$.pipe(switchMap(() => this.getData()));\n }\n\n private getData(): Observable {\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: FixtureState.Live,\n tagTypes: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n sortBy: SortByCriteria.Tags,\n },\n fixtureRequest: {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Live,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n excludeCompetitionIds: toString(Array.from(this.stateService.state.collapsedLeagues)),\n sportIds: toString(Array.from(this.stateService.state.expandedSports)),\n },\n };\n\n return this.bettingContent.getCountsFixtures(request).pipe(filterDefined());\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EventDetailsComponent } from '../event-details.component';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationRouteService implements OnDestroy {\n private stopStream$: Subject = new Subject();\n protected serviceDestroyed$ = new Subject();\n\n constructor(private routerEvents: RouterEventsService) {\n this.routerEvents.currentActivationStart.pipe(takeUntil(this.serviceDestroyed$)).subscribe((route) => {\n if (route && route.snapshot.component !== EventDetailsComponent) {\n this.stopStream$.next();\n this.stopStream$.complete();\n }\n });\n }\n\n ngOnDestroy(): void {\n this.serviceDestroyed$.next();\n this.serviceDestroyed$.complete();\n }\n\n get stopProcessing$(): Observable {\n return this.stopStream$.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSubscription, EventSubscriptionRequest } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { EventSubscriptionService } from '@frontend/sports/event-subscription/feature/event-subscription';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { difference, omit, values } from 'lodash-es';\nimport { Observable, Subject, asyncScheduler, buffer, distinct, filter, map, noop, throttleTime } from 'rxjs';\n\nimport { FreshDataType } from '../../data-refresh/fresh-data-provider.service';\nimport { FreshDataService } from '../../data-refresh/fresh-data.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationSubscriptionService {\n private subscription?: EventSubscription;\n private events: { [id: string]: EventModel } = {};\n\n private eventsStream$ = new Subject();\n readonly updatedEvents$: Observable;\n\n constructor(\n private eventSubscriptionService: EventSubscriptionService,\n freshDataService: FreshDataService,\n ) {\n const updateQueueInMilliseconds = 400;\n\n const flush$ = this.eventsStream$.pipe(map(noop), throttleTime(updateQueueInMilliseconds, asyncScheduler));\n\n // buffer updates and notify at once for performance reasons\n this.updatedEvents$ = this.eventsStream$.pipe(\n distinct((event) => event.id, flush$),\n buffer(flush$),\n filter((events) => events && events.length > 0),\n takeUntilDestroyed(),\n );\n\n freshDataService.reloadNeeded\n .pipe(filter((type) => type === FreshDataType.DataAndPush))\n .pipe(filterSportsEmitLast())\n .subscribe(() => {\n this.onPushReconnected();\n });\n }\n\n refreshSubscriptions(events: EventModel[]): void {\n if (this.subscription) {\n const unsubscribe = difference(\n Object.keys(this.events),\n events.map((event) => event.id),\n );\n this.subscription.remove(unsubscribe);\n this.events = omit(this.events, unsubscribe);\n }\n\n this.subscribe(events);\n }\n\n subscribe(events: EventModel[]): void {\n const request: EventSubscriptionRequest[] = [];\n\n for (const event of events) {\n if (!this.events[event.id]) {\n this.events[event.id] = event;\n request.push({ event, callback: this.handler });\n }\n }\n\n if (request.length === 0) {\n return;\n }\n\n const subscription = this.eventSubscriptionService.subscribe(request);\n\n if (this.subscription) {\n this.subscription = this.subscription.add(subscription);\n } else {\n this.subscription = subscription;\n }\n }\n\n unsubscribe(eventsToUnsubscribe: EventModel[]): void {\n if (eventsToUnsubscribe && eventsToUnsubscribe.length && this.subscription) {\n this.subscription.remove(eventsToUnsubscribe);\n\n eventsToUnsubscribe.forEach((e) => {\n delete this.events[e.id];\n });\n }\n }\n\n unsubscribeAll(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n\n this.events = {};\n }\n\n private handler = (event: EventModel) => {\n if (this.events[event.id]) {\n this.eventsStream$.next(event);\n }\n };\n\n private onPushReconnected = () => {\n const resubscribe = values(this.events);\n\n this.events = {};\n delete this.subscription;\n\n this.subscribe(resubscribe);\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { LeftNavType, TreeItem } from '../../event-details-common/event-details-common.models';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackRegionToggle(region: TreeItem): void {\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: region.expanded\n ? `LeftNav_PrePlay_Expand_RB_${region.id}`\n : `LeftNav_PrePlay_Collapse_RB_${region.id}`,\n });\n }\n\n trackSportToggle(sport: TreeItem): void {\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: sport.expanded\n ? `LeftNav_inPlay_Expand_SB_${sport.id}`\n : `LeftNav_inPlay_Collapse_SB_${sport.id}`,\n });\n }\n\n trackLeagueToggle(league: TreeItem, leftNavType: LeftNavType): void {\n const navigationMenus = leftNavType === LeftNavType.Live ? 'LeftNav_inPlay' : 'LeftNav_PrePlay';\n\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_NAVIGATION_MENUS]: league.expanded\n ? `${navigationMenus}_Expand_LN_${league.id}`\n : `${navigationMenus}_Collapse_LN_${league.id}`,\n });\n }\n\n trackMarketsToggle(visible: boolean, leftNavType: LeftNavType): void {\n const navigationMenus = leftNavType === LeftNavType.Live ? 'LeftNav_inPlay' : 'LeftNav_PrePlay';\n\n this.trackingService.track('Event.Functionality.ShowHideBets', {\n [trackingConstants.PAGE_SITE_SECTION]: 'Navigation',\n [trackingConstants.PAGE_REFERRING_ACTION]: visible ? `${navigationMenus}_ShowBets` : `${navigationMenus}_HideBets`,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureStage } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { produce } from 'immer';\nimport { clone, flatMap, sumBy } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\n\nimport {\n BaseTreeItem,\n GroupedEvents,\n LeftNavType,\n NavEventModel,\n SelectionInfo,\n TreeItem,\n TreeItemType,\n} from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { FixtureList } from '../../event-list-shared/sport/competitions/competition.models';\nimport { LiveFavouriteFixturesService } from '../../favourites/live-favourites-fixtures.service';\nimport { LiveUrlParam } from '../../navigation-core/url-helper.service';\nimport { NavigationTrackingService } from '../navigation-tracking/navigation-tracking.service';\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\nimport { LiveEventsNavigationSubscriptionService } from './live-events-navigation-subscription.service';\n\nexport interface ToggleResult {\n leaguesToFetch: LeagueGroup[];\n tree: BaseTreeItem;\n}\n\nexport interface LeagueGroup {\n leagueId: number;\n virtualLeagueId: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationTreeService {\n private selectionInfo: SelectionInfo;\n favouritedLeagues: TreeItem[] = [];\n subscription?: EventSubscription;\n eventSubject = new BehaviorSubject({});\n\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private trackingService: NavigationTrackingService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private sitecore: Sitecore,\n private liveFavouriteFixturesService: LiveFavouriteFixturesService,\n private favouritesConfig: FavouritesConfig,\n private userService: UserService,\n private fixtureFactory: FixtureFactory,\n ) {}\n\n get favEventChange(): BehaviorSubject {\n return this.eventSubject;\n }\n\n refreshFavouritesTreeItem(tree: BaseTreeItem): BaseTreeItem {\n const updatedChildren = this.updateFavouritedItemsLeftNavigation(tree).children.filter((sport) => sport.id !== LiveUrlParam.Favourites);\n if (this.favouritedLeagues.length > 0) {\n const favouritesTab = this.getFavouriteTab();\n\n return { children: [favouritesTab, ...updatedChildren] };\n }\n\n return { children: updatedChildren };\n }\n\n updateTree(navTree: BaseTreeItem, leagueGroups: LeagueGroup[], groupedEvents: GroupedEvents): BaseTreeItem {\n if (!groupedEvents) {\n return navTree;\n }\n\n const added: EventModel[] = [];\n\n let tree = produce(navTree, (draftState: BaseTreeItem) => {\n leagueGroups.forEach((leagueGroup) => {\n let sportIndex = -1;\n const leagueId = leagueGroup.virtualLeagueId > 0 ? leagueGroup.virtualLeagueId : leagueGroup.leagueId;\n const events = groupedEvents[leagueId];\n const anyEvents = events && events.length > 0;\n if (anyEvents) {\n sportIndex = navTree.children.findIndex((s) => s.id === events[0].sport.id && s.id !== (LiveUrlParam.Favourites as number));\n }\n\n if (sportIndex < 0) {\n // try to find based on league id, because it might happen no events are returned\n sportIndex = navTree.children.findIndex((s) => s && s.children.some((l) => l.id === leagueGroup.leagueId));\n }\n\n if (sportIndex < 0) {\n // if matching sport could not be fount continue to the next leagueId\n return;\n }\n\n const leagueIndex = draftState.children[sportIndex].children.findIndex(\n (l) => l.id === leagueGroup.leagueId && l.type !== TreeItemType.FavouriteLeague,\n );\n if (leagueIndex < 0) {\n // if matching league model could not be found continue to the next leagueId\n return;\n }\n\n if (anyEvents) {\n // subscribe to push notifications\n added.push(...events);\n\n // since navTree model is immutable, replace with an updated model\n const sport = draftState.children[sportIndex];\n const league = sport.children[leagueIndex];\n league.events = events.map((e) => ({\n data: e,\n selected: e.id === this.selectionInfo.eventId,\n showMarkets: sport.toggleMarkets,\n hidden: false,\n }));\n league.loading = false;\n } else {\n // remove league if there are no events\n draftState.children[sportIndex].children.splice(leagueIndex, 1);\n }\n });\n });\n\n this.subscriptionsService.subscribe(added);\n\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n tree = this.updateFavouritedItemsLeftNavigation(tree);\n }\n\n return tree;\n }\n\n private updateFavouritedItemsLeftNavigation(navTree: BaseTreeItem): BaseTreeItem {\n return produce(navTree, (draftState: BaseTreeItem) => {\n draftState.children.forEach((sport) => {\n if (sport.id !== LiveUrlParam.Favourites) {\n let hiddenLeagueCount = 0;\n sport.children.forEach((league) => {\n let hiddenEventCount = 0;\n league.events.forEach((event) => {\n const favouritedFixture = this.liveFavouriteFixturesService.isFavourited(event.data.id);\n event.hidden = false;\n league.selected =\n this.selectionInfo.leagueId === league.id && this.selectionInfo.eventId === event.data.id && !favouritedFixture;\n if (favouritedFixture) {\n event.hidden = true;\n hiddenEventCount++;\n }\n });\n league.hidden = false;\n if (hiddenEventCount > 0 && hiddenEventCount === league.events.length) {\n league.hidden = true;\n hiddenLeagueCount++;\n }\n });\n sport.hidden = false;\n if (hiddenLeagueCount > 0 && hiddenLeagueCount === sport.children.length) {\n sport.hidden = true;\n }\n }\n });\n });\n }\n\n toggleMarkets(navTree: BaseTreeItem, sport: TreeItem): BaseTreeItem {\n this.trackingService.trackMarketsToggle(!sport.toggleMarkets, sport.leftNavType);\n\n return produce(navTree, (draft: BaseTreeItem) => {\n const draftSport = this.findChild(draft, sport.id);\n if (!draftSport) {\n return;\n }\n draftSport.toggleMarkets = !draftSport.toggleMarkets;\n this.stateService.toggleMarkets(sport.id);\n draftSport.children.forEach((league) => {\n league.events.forEach((event) => {\n event.showMarkets = !event.showMarkets;\n });\n });\n });\n }\n\n getVisibleLeagues(navTree: BaseTreeItem): LeagueGroup[] {\n const leagues: LeagueGroup[] = [];\n navTree.children\n .filter((sport) => sport.expanded && sport.id !== LiveUrlParam.Favourites)\n .forEach((sport) => {\n sport.children.forEach((league) => {\n if (league.expanded) {\n leagues.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n }\n });\n });\n\n return leagues;\n }\n\n expandEvent(navTree: BaseTreeItem, event: EventModel): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const currentSport = this.findChild(draftState, event.sport.id);\n if (!currentSport) {\n return;\n }\n const currentLeague = this.findChild(currentSport, getLeagueId(event));\n if (!currentLeague) {\n return;\n }\n if (!currentLeague.expanded) {\n currentLeague.expanded = true;\n this.stateService.toggleLeague(currentLeague.id);\n }\n if (!currentSport.expanded) {\n currentSport.expanded = true;\n this.stateService.toggleSport(currentSport.id);\n }\n currentSport.children.forEach((league) => {\n if (league.expanded) {\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n }\n });\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n updateFavourites(tree?: BaseTreeItem): void {\n if (!tree) {\n return;\n }\n this.unsubscribeInvisibleEvents(tree);\n this.setFavouriteLeagues();\n\n const favouriteEvents = this.getFavouritesEvents();\n this.subscriptionsService.unsubscribe(favouriteEvents);\n this.subscriptionsService.subscribe(favouriteEvents);\n }\n\n private getFavouritesEvents(): EventModel[] {\n return flatMap(this.favouritedLeagues, (league) => league.events).map((event) => event.data);\n }\n\n updateEvent(navTree: BaseTreeItem, updatedEvent: EventModel): BaseTreeItem {\n const updatedTree = produce(navTree, (draftState: BaseTreeItem) => {\n draftState.children.forEach((sport) => {\n if (sport.id === LiveUrlParam.Favourites) {\n sport.children.forEach((league) => {\n league.events.forEach((event) => {\n if (event.data.id === updatedEvent.id) {\n event.data = clone(updatedEvent);\n }\n });\n });\n }\n });\n });\n\n return updatedTree;\n }\n\n updateEvents(navTree: BaseTreeItem, events: EventModel[]): BaseTreeItem {\n events.forEach((event) => {\n navTree = this.updateEvent(navTree, event);\n });\n\n return produce(navTree, (draftState: BaseTreeItem) => {\n events.forEach((event) => {\n const sport = this.findChild(draftState, event.sport.id);\n if (!sport) {\n return;\n }\n\n const league = this.findChild(sport, getLeagueId(event));\n if (!league) {\n return;\n }\n const navEventModels = league.events;\n const index = navEventModels.findIndex((e) => e.data.id === event.id);\n if (index === -1) {\n return;\n }\n // TODO remove when push update for startdate is implemented\n event.startDate = navEventModels[index].data.startDate;\n\n navEventModels[index] = {\n data: clone(event),\n selected: league.events[index].selected,\n showMarkets: league.events[index].showMarkets,\n hidden: league.events[index].hidden,\n };\n });\n });\n }\n\n toggleSport(navTree: BaseTreeItem, item: TreeItem): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const sport = this.findChild(draftState, item.id);\n if (!sport) {\n return;\n }\n\n sport.expanded = !sport.expanded;\n\n this.stateService.toggleSport(sport.id);\n this.trackingService.trackSportToggle(sport);\n\n const leagues = sport.children.filter((l) => l.expanded);\n if (sport.expanded) {\n leagues.forEach((league) => {\n league.loading = true;\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n });\n } else {\n leagues.forEach((league) => {\n this.clearLeagueEvents(league);\n });\n }\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n toggleFavourites(navTree: BaseTreeItem, item: TreeItem): BaseTreeItem {\n const newTree = produce(navTree, (draftState: BaseTreeItem) => {\n const sport = this.findChild(draftState, item.id);\n if (!sport) {\n return;\n }\n\n sport.expanded = !sport.expanded;\n\n this.stateService.toggleSport(sport.id);\n this.trackingService.trackSportToggle(sport);\n });\n\n return newTree;\n }\n\n toggleFavouriteLeague(navTree: BaseTreeItem, item: TreeItem): BaseTreeItem {\n const newTree = produce(navTree, (draft: BaseTreeItem) => {\n let league: TreeItem | undefined;\n for (const sport of draft.children) {\n league = sport.children.find((l) => l.id === item.id && l.type === TreeItemType.FavouriteLeague);\n if (league) {\n break;\n }\n }\n\n if (!league) {\n return;\n }\n\n league.expanded = !league.expanded;\n\n if (league.expanded) {\n league.events.forEach((event) => (event.hidden = false));\n } else {\n league.events.forEach((event) => (event.hidden = true));\n }\n\n this.stateService.toggleLeague(league.id);\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n });\n\n return newTree;\n }\n\n toggleLeague(navTree: BaseTreeItem, item: TreeItem): ToggleResult {\n const leaguesToFetch: LeagueGroup[] = [];\n const newTree = produce(navTree, (draft: BaseTreeItem) => {\n let league: TreeItem | undefined;\n for (const sport of draft.children) {\n league = sport.children.find((l) => l.id === item.id && l.type !== TreeItemType.FavouriteLeague);\n if (league) {\n break;\n }\n }\n\n if (!league) {\n return;\n }\n\n league.expanded = !league.expanded;\n\n this.stateService.toggleLeague(league.id);\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n\n if (league.expanded) {\n league.loading = true;\n leaguesToFetch.push(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0));\n } else {\n this.clearLeagueEvents(league);\n }\n });\n\n return {\n leaguesToFetch,\n tree: newTree,\n };\n }\n\n refreshTree(oldTree: BaseTreeItem, newTree: BaseTreeItem, groupedEvents: GroupedEvents, updateEvents?: boolean): BaseTreeItem {\n const newSports: TreeItem[] = [];\n\n const favouriteItem = oldTree.children.find((child) => child.type === TreeItemType.Favourite);\n if (favouriteItem) {\n newSports.push(favouriteItem);\n }\n\n const liveNavEvens: EventModel[] = [];\n\n // loads the tree with events\n newTree.children\n .filter((child) => child.type !== TreeItemType.Favourite)\n .forEach((sport) => {\n const currentSport = oldTree.children.find((s) => s.id === sport.id);\n const marketsToggled = currentSport ? currentSport.toggleMarkets : sport.toggleMarkets;\n\n const newLeagues: TreeItem[] = [];\n\n // goes through all sport's leagues\n sport.children.forEach((league) => {\n let leagueEvents: NavEventModel[] = [];\n\n if (league.expanded && sport.expanded) {\n const newEvents = groupedEvents[league.id] || [];\n const oldLeague = currentSport ? currentSport.children.find((l) => l.id === league.id) : undefined;\n\n leagueEvents = this.getNewEvents(newEvents, oldLeague, marketsToggled, updateEvents);\n liveNavEvens.push(...leagueEvents.map((event) => event.data));\n }\n\n newLeagues.push({\n ...league,\n events: leagueEvents,\n });\n });\n\n const newSport = {\n ...sport,\n toggleMarkets: marketsToggled,\n children: newLeagues,\n };\n newSports.push(newSport);\n });\n\n const favouritesEvents = this.getFavouritesEvents();\n this.subscriptionsService.refreshSubscriptions(favouritesEvents.concat(liveNavEvens));\n\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n return this.updateFavouritedItemsLeftNavigation({ children: newSports });\n }\n\n return {\n children: newSports,\n };\n }\n\n selectEvent(navTree: BaseTreeItem, event: EventModel): BaseTreeItem {\n this.stateService.storeSelection(new SelectionInfo(event));\n\n return produce(navTree, (draftState: BaseTreeItem) => {\n if (this.selectionInfo) {\n // unselect\n this.applySelection(this.selectionInfo, false, draftState);\n }\n\n // select\n this.setSelectionInfo(event);\n this.applySelection(this.selectionInfo, true, draftState);\n });\n }\n\n setSelectionInfo(selectedEvent: EventModel): void {\n this.selectionInfo = new SelectionInfo(selectedEvent);\n }\n\n isSelected(eventId: string): boolean {\n return this.selectionInfo.eventId === eventId;\n }\n\n getFirstLeagueId(tree: BaseTreeItem): number {\n return (tree.children[0] && tree.children[0].children[0] && tree.children[0].children[0].id) || -1;\n }\n\n getFirstSportId(tree: BaseTreeItem): number {\n return (tree.children[0] && tree.children[0].id) || -1;\n }\n\n getFavouriteTab(): TreeItem {\n return {\n id: LiveUrlParam.Favourites,\n name: this.sitecore.favouritesMessages.LiveTitle,\n type: TreeItemType.Favourite,\n selected: false,\n expanded: true,\n loading: false,\n icon: 'theme-favorite',\n count: sumBy(this.favouritedLeagues, (league) => league.events.length) || 0,\n children: this.favouritedLeagues || [],\n class: 'sport',\n events: [],\n toggleMarkets: !this.stateService.state.areMarketsCollapsed(LiveUrlParam.Favourites),\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n };\n }\n\n setFavouriteLeagues(): void {\n const result: TreeItem[] = [];\n\n if (this.liveFavouriteFixturesService.liveFixtures.length) {\n const favouriteFixtures: FixtureList[] = this.liveFavouriteFixturesService.getFixtureList(true);\n\n favouriteFixtures.map((favouriteFix) => {\n if (favouriteFix && favouriteFix.fixtures && favouriteFix.fixtures.length > 0) {\n const favouritedLiveEvents = this.favouritedLiveEvents(favouriteFix);\n const leagueId = favouriteFix.fixtures[0].competition.parentLeagueId || favouriteFix.fixtures[0].competition.id;\n const eventIds = favouritedLiveEvents.map(({ data }) => data.id);\n result.push({\n id: leagueId,\n name: favouriteFix.fixtures[0].competition.name.value.toString(),\n type: TreeItemType.FavouriteLeague,\n selected: this.selectionInfo && this.selectionInfo.leagueId === leagueId && eventIds.indexOf(this.selectionInfo.eventId) > -1,\n expanded: true,\n loading: false,\n icon: 'sport-icon sports-' + favouriteFix.fixtures[0].sport.id,\n count: favouritedLiveEvents.length,\n children: [],\n class: 'league',\n events: favouritedLiveEvents,\n toggleMarkets: false,\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n });\n }\n });\n }\n this.favouritedLeagues = result;\n }\n\n private favouritedLiveEvents(fixtureList: FixtureList): NavEventModel[] {\n return fixtureList.fixtures\n .filter((model) => model.stage === FixtureStage.Live)\n .map((model) => ({\n data: this.fixtureFactory.create(model),\n selected: this.selectionInfo && model.id.toString() === this.selectionInfo.eventId,\n showMarkets: !this.stateService.state.areMarketsCollapsed(LiveUrlParam.Favourites),\n hidden: false,\n favourited: true,\n }));\n }\n\n private applySelection(selection: SelectionInfo, value: boolean, state: BaseTreeItem): void {\n if (this.favouritesConfig.isLiveFavouritesEnabled && this.userService.isAuthenticated) {\n this.setSelection(state, LiveUrlParam.Favourites, selection.leagueId, selection.eventId, value);\n }\n\n this.setSelection(state, selection.sportId, selection.leagueId, selection.eventId, value);\n }\n\n private setSelection(tree: BaseTreeItem, sportId: number, leagueId: number, eventId: string, value: boolean): void {\n const sport = this.findChild(tree, sportId);\n if (!sport) {\n return;\n }\n\n const league = this.findChild(sport, leagueId);\n if (!league) {\n return;\n }\n const event = this.findEvent(league, eventId);\n if (!event) {\n return;\n }\n\n if (!event.hidden) {\n league.selected = value;\n }\n\n event.selected = value;\n }\n\n private getNewEvents(\n events: EventModel[],\n currentLeague: TreeItem | undefined,\n marketsToggled?: boolean,\n updateEvents?: boolean,\n ): NavEventModel[] {\n const output: NavEventModel[] = [];\n\n events.forEach((event) => {\n let oldEvent: NavEventModel | undefined;\n if (currentLeague) {\n oldEvent = currentLeague.events.find((e) => e.data.id === event.id.toString());\n }\n\n if (oldEvent && oldEvent.data.startDate.getTime() === event.startDate.getTime() && !updateEvents) {\n // if the old event exists, take that to not trigger change detection\n output.push(oldEvent);\n\n return;\n }\n\n output.push({\n data: event,\n selected: event.id === this.selectionInfo.eventId,\n showMarkets: marketsToggled,\n hidden: this.liveFavouriteFixturesService.isFavourited(event.id),\n });\n });\n\n return output;\n }\n\n private clearLeagueEvents(league: TreeItem): void {\n const nonFavouriteEvents = league.events.filter((event) => !this.liveFavouriteFixturesService.isFavourited(event.data.id));\n this.subscriptionsService.unsubscribe(nonFavouriteEvents.map((e) => e.data));\n league.events = [];\n }\n\n private findChild(item: BaseTreeItem, id: number): TreeItem | undefined {\n return item.children.find((child) => child.id === id);\n }\n\n private findEvent(item: TreeItem, id: string): NavEventModel | undefined {\n return item.events.find((child) => child.data.id === id);\n }\n\n private unsubscribeInvisibleEvents(tree: BaseTreeItem): void {\n const unSubscribeEvents: EventModel[] = [];\n const visibleLeagues = this.getVisibleLeagues(tree);\n tree.children.forEach((sport) => {\n if (sport.id === LiveUrlParam.Favourites) {\n sport.children.forEach((league) => {\n if (visibleLeagues.indexOf(this.getLeagueGroup(league.id, league.virtualCompetitionId || 0)) === -1) {\n league.events.forEach((event) => {\n unSubscribeEvents.push(event.data);\n });\n }\n });\n }\n });\n this.subscriptionsService.unsubscribe(unSubscribeEvents);\n }\n\n private getLeagueGroup(leagueId: number, virtualLeagueId: number): LeagueGroup {\n const leagueGroup: LeagueGroup = {\n leagueId,\n virtualLeagueId,\n };\n\n return leagueGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { orderBy } from 'lodash-es';\n\nimport { BaseTreeItem, LeftNavType, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { LiveEventsNavigationStateService } from '../live-events-navigation/live-events-navigation-state.service';\nimport { LiveEventsNavigationTreeService } from '../live-events-navigation/live-events-navigation-tree.service';\nimport { NavState } from '../navigation-state/navigation-state';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationMapperService {\n constructor(\n private stateService: LiveEventsNavigationStateService,\n private fixtureFactory: FixtureFactory,\n private userService: UserService,\n private favouritesConfig: FavouritesConfig,\n private treeService: LiveEventsNavigationTreeService,\n ) {}\n\n updateTreeState(tree: BaseTreeItem, state: NavState): BaseTreeItem {\n tree.children.forEach((sport) => {\n sport.expanded = state.expandedSports.has(sport.id);\n sport.children.forEach((league) => {\n league.expanded = !state.collapsedLeagues.has(league.id);\n });\n });\n\n return tree;\n }\n\n mapFixture(fixture: Fixture): EventModel {\n return this.fixtureFactory.create(fixture);\n }\n\n mapTree(sports: CountItem[], selectedLeague?: number, withLoading: boolean = true): BaseTreeItem {\n const sportItems: TreeItem[] = [];\n const favouriteChildren: TreeItem[] = [];\n\n if (this.userService.isAuthenticated && this.favouritesConfig.isLiveFavouritesEnabled) {\n const favouriteTab = this.treeService.getFavouriteTab();\n if (favouriteTab.children.length > 0) {\n favouriteChildren.push(favouriteTab);\n }\n }\n\n sports.forEach((sport) => {\n const leagues = this.mapLeagues(sport, selectedLeague, withLoading);\n sportItems.push(this.mapSport(sport, leagues, sport.counts.live));\n });\n\n return {\n children: [...favouriteChildren, ...sportItems],\n };\n }\n\n mapLeagues(sport: CountItem, selectedLeague: number | undefined, withLoading: boolean): TreeItem[] {\n let leagueRegions: {\n league: CountItem;\n region: CountItem;\n }[] = [];\n\n sport.children.forEach((region) => {\n leagueRegions = leagueRegions.concat(\n region.children.map((league) => ({\n league,\n region,\n })),\n );\n });\n\n return orderBy(leagueRegions, [(lr) => lr.league.order, (lr) => lr.region.order, (lr) => lr.league.name]).map((lr) => {\n const regionId = sport.id === SportConstant.Tennis ? RegionConstant.World : lr.region.id;\n\n return this.mapLeague(lr.league, regionId, sport.id, selectedLeague === lr.league.id, withLoading);\n });\n }\n\n private mapLeague(league: CountItem, regionId: number, sportId: number, selected: boolean, withLoading: boolean): TreeItem {\n const id = (league).siblings[0] || league.id;\n const collapsed = this.stateService.state.isLeagueCollapsed(id);\n\n return {\n id,\n sportId,\n name: league.name,\n type: TreeItemType.League,\n selected,\n expanded: !collapsed,\n loading: withLoading ? !collapsed : false,\n icon: 'country-icon c' + regionId,\n count: league.counts.live,\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n isVirtual: league.isVirtual,\n virtualCompetitionId: league.isVirtual ? league.id : undefined,\n imageProfile: (league as LeagueItem).imageProfile,\n };\n }\n\n private mapSport(sport: CountItem, children: TreeItem[], eventCount: number): TreeItem {\n return {\n id: sport.id,\n name: sport.name,\n type: TreeItemType.Sport,\n selected: false,\n expanded: this.stateService.state.isSportExpanded(sport.id),\n loading: false,\n icon: 'sport-icon sports-' + sport.id,\n count: eventCount,\n children,\n class: 'sport',\n events: [],\n toggleMarkets: !this.stateService.state.areMarketsCollapsed(sport.id),\n collapsible: true,\n leftNavType: LeftNavType.Live,\n hidden: false,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { sportModelMethods } from '@frontend/sports/common/core/data-access/sport-model';\nimport { toString } from 'lodash-es';\nimport { BehaviorSubject, Observable, firstValueFrom, map, of, tap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { BaseTreeItem, GroupedEvents, SelectionInfo, TreeItem } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { NavigationEventMapperService } from '../navigation-mapper/navigation-event-mapper.service';\nimport { NavigationMapperService } from '../navigation-mapper/navigation-mapper.service';\nimport { LiveEventsNavigationStateService } from './live-events-navigation-state.service';\nimport { LeagueGroup, LiveEventsNavigationTreeService } from './live-events-navigation-tree.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsNavigationService {\n selectedEvent: EventModel;\n visibleEvents?: GroupedEvents;\n\n private _tree$ = new BehaviorSubject(undefined);\n private defaultEvent: EventModel | undefined;\n\n constructor(\n private treeService: LiveEventsNavigationTreeService,\n private liveNavConfig: LiveNavigationConfig,\n private stateService: LiveEventsNavigationStateService,\n private mapperService: NavigationMapperService,\n private eventMapperService: NavigationEventMapperService,\n private sportsCacheService: SportsCacheService,\n private bettingContent: BettingOfferApi,\n ) {}\n\n async initFromEvent(event: EventModel): Promise {\n this.setSelectedEvent(event);\n\n // already initialized with default event\n if (this.defaultEvent && this.defaultEvent.id === event.id) {\n if (!this.tree) {\n await this.initFromDefaultEvent();\n }\n\n return this.tree;\n }\n\n let tree = await this.loadTree();\n tree = this.initState(tree, event);\n const leaguesToFetch = this.treeService.getVisibleLeagues(tree);\n this.visibleEvents = await firstValueFrom(this.getGroupedEvents(leaguesToFetch.map((p) => p.leagueId)));\n\n this._tree$.next(tree);\n\n return tree;\n }\n\n async initFromDefaultEvent(): Promise {\n let tree = await this.loadTree();\n tree = this.initState(tree, undefined);\n\n const leaguesToFetch = this.treeService.getVisibleLeagues(tree);\n if (!this.stateService.state.isEmpty()) {\n const firstLeague = this.treeService.getFirstLeagueId(tree);\n const leagueGroup: LeagueGroup = {\n leagueId: firstLeague,\n virtualLeagueId: 0,\n };\n leaguesToFetch.push(leagueGroup);\n }\n\n this.visibleEvents = await firstValueFrom(this.getGroupedEvents(leaguesToFetch.map((p) => p.leagueId)));\n this.defaultEvent = this.getDefaultEvent(\n this.visibleEvents,\n leaguesToFetch.filter((league) => this.visibleEvents?.[league.leagueId])[0]?.leagueId,\n );\n\n this._tree$.next(tree);\n\n return this.defaultEvent;\n }\n\n refreshTree(data: CountsFixturesResponse): void {\n this.fetchTree(data);\n }\n\n reloadTree(data: CountsFixturesResponse): void {\n this.fetchTree(data, true);\n }\n\n toggleSport(item: TreeItem): void {\n const { leaguesToFetch, tree } = this.treeService.toggleSport(this.tree!, item);\n this._tree$.next(tree);\n this.loadEventsForLeagues(leaguesToFetch).subscribe();\n }\n\n toggleLeague(item: TreeItem): void {\n const { leaguesToFetch, tree } = this.treeService.toggleLeague(this.tree!, item);\n this._tree$.next(tree);\n this.loadEventsForLeagues(leaguesToFetch).subscribe();\n }\n\n toggleMarkets(sport: TreeItem): void {\n this._tree$.next(this.treeService.toggleMarkets(this.tree!, sport));\n }\n\n toggleFavourites(item: TreeItem): void {\n this._tree$.next(this.treeService.toggleFavourites(this.tree!, item));\n }\n\n toggleFavouriteLeague(item: TreeItem): void {\n this._tree$.next(this.treeService.toggleFavouriteLeague(this.tree!, item));\n }\n\n async expandEvent(event: EventModel): Promise {\n const toggleResult = this.treeService.expandEvent(this.tree!, event);\n this._tree$.next(toggleResult.tree);\n await firstValueFrom(this.loadEventsForLeagues(toggleResult.leaguesToFetch));\n }\n\n selectEvent(event: EventModel): void {\n this._tree$.next(this.treeService.selectEvent(this.tree!, event));\n this.setSelectedEvent(event);\n }\n\n updateEvents(events: EventModel[]): void {\n this._tree$.next(this.treeService.updateEvents(this.tree!, events));\n }\n\n refreshFavouritesTreeItem(): void {\n this._tree$.next(this.treeService.refreshFavouritesTreeItem(this.tree!));\n }\n\n loadVisibleLeagues(): Observable {\n return this.loadEventsForLeagues(this.treeService.getVisibleLeagues(this.tree!));\n }\n\n isSelected(eventId: string): boolean {\n return this.treeService.isSelected(eventId);\n }\n\n reset(): void {\n this._tree$.next(undefined);\n delete this.visibleEvents;\n }\n\n get tree$(): Observable {\n return this._tree$.asObservable();\n }\n\n private get tree(): BaseTreeItem | undefined {\n return this._tree$.value;\n }\n\n private async loadTree(): Promise {\n const liveSportTree = await firstValueFrom(this.sportsCacheService.getLiveSportList());\n\n return this.mapperService.mapTree(liveSportTree);\n }\n\n private fetchTree(data: CountsFixturesResponse, forceReload?: boolean): void {\n const newTree = this.mapperService.mapTree(sportModelMethods.fromTag(data.counts), getLeagueId(this.selectedEvent), false);\n const groupedEvents: GroupedEvents = this.eventMapperService.mapFixtures(data.fixtures);\n this._tree$.next(this.treeService.refreshTree(this.tree!, newTree, groupedEvents, forceReload));\n }\n\n private initState(tree: BaseTreeItem, selectedEvent: EventModel | undefined): BaseTreeItem {\n const state = this.stateService.state;\n const selectedSportId = selectedEvent ? selectedEvent.sport.id : this.treeService.getFirstSportId(tree);\n const selectedLeagueId = selectedEvent ? getLeagueId(selectedEvent) : this.treeService.getFirstLeagueId(tree);\n\n if (state.isEmpty()) {\n const sport = tree.children.find((s) => s.id === selectedSportId);\n if (sport && this.exceedsTreshold(sport)) {\n sport.children.forEach((l) => state.collapsedLeagues.add(l.id));\n }\n }\n\n state.expandedSports.add(selectedSportId);\n state.collapsedLeagues.delete(selectedLeagueId);\n this.stateService.storeState();\n\n return this.mapperService.updateTreeState(tree, state);\n }\n\n private exceedsTreshold(sport: TreeItem): boolean {\n return sport.count > this.liveNavConfig.treshold;\n }\n\n private loadEventsForLeagues(leagues: LeagueGroup[]): Observable {\n if (!leagues?.length) {\n return of(undefined);\n }\n\n return this.getGroupedEvents(leagues.map((p) => p.leagueId)).pipe(\n map((events) => this.treeService.updateTree(this.tree!, leagues, events)),\n tap((tree) => this._tree$.next(tree)),\n );\n }\n\n private getGroupedEvents(leagueIds: Iterable): Observable {\n return this.bettingContent\n .getFixtureList({\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Live,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(leagueIds),\n })\n .pipe(\n map((page) => {\n return this.eventMapperService.mapFixtures(page);\n }),\n );\n }\n\n private getDefaultEvent(events: GroupedEvents, firstLeague: number): EventModel {\n const selection = this.stateService.state.selection;\n if (selection && events[selection.leagueId]) {\n const selectedEvent = events[selection.leagueId].find((e) => e.id === selection.eventId);\n if (selectedEvent) {\n return selectedEvent;\n }\n }\n\n return events[firstLeague][0];\n }\n\n private setSelectedEvent(event: EventModel): void {\n this.selectedEvent = event;\n this.treeService.setSelectionInfo(event);\n this.stateService.state.selection = new SelectionInfo(event);\n }\n}\n","@if (tree) {\n \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { OfferMapping } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { FavouritesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { FavouritesService } from '@frontend/sports/favourites/core/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { first, map, merge, takeUntil } from 'rxjs';\n\nimport { BaseTreeItem, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { TreeScrollDirective } from '../../event-details-common/tree/tree-scroll.directive';\nimport { LiveFavouriteFixturesService } from '../../favourites/live-favourites-fixtures.service';\nimport { LiveEventsNavigationRefreshService } from './live-events-navigation-refresh.service';\nimport { LiveEventsNavigationRouteService } from './live-events-navigation-route.service';\nimport { LiveEventsNavigationSubscriptionService } from './live-events-navigation-subscription.service';\nimport { LiveEventsNavigationTreeService } from './live-events-navigation-tree.service';\nimport { LiveEventsNavigationService } from './live-events-navigation.service';\n\n@Component({\n selector: 'ms-live-events-navigation',\n templateUrl: 'live-events-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LiveEventsNavigationComponent implements OnInit, OnDestroy {\n @Input() event: EventModel;\n @HostBinding('class') className = 'event-details-left-menu';\n @ViewChild(TreeScrollDirective, { static: true }) treeScroll: TreeScrollDirective;\n tree?: BaseTreeItem;\n\n private stopped = false;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public navigationService: LiveEventsNavigationService,\n private routerHelper: RouterEventsService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private refreshService: LiveEventsNavigationRefreshService,\n private routeService: LiveEventsNavigationRouteService,\n private timerService: TimerService,\n private liveFavouriteFixturesService: LiveFavouriteFixturesService,\n private userService: UserService,\n private favouritesService: FavouritesService,\n private favouritesConfig: FavouritesConfig,\n private treeService: LiveEventsNavigationTreeService,\n private changeRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.navigationService.tree$.subscribe((tree) => {\n this.tree = tree;\n this.changeRef.markForCheck();\n });\n this.loadEvents();\n\n // switching to landscape doesnt trigger route activation start event, so listen also to component destroyed\n const stopProcessing$ = this.routeService.stopProcessing$.pipe(first());\n\n // we need this when navigating from betslip, betfinder etc.\n this.routerHelper.currentActivationEnd\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$))\n .subscribe((data) => this.activationEnd(data));\n\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$)).subscribe((events) => {\n this.navigationService.updateEvents(events);\n this.changeRef.markForCheck();\n });\n\n if (this.favouritesConfig.isLiveFavouritesEnabled) {\n this.liveFavouriteFixturesService.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.treeService.updateFavourites(this.tree);\n this.navigationService.refreshFavouritesTreeItem();\n this.changeRef.markForCheck();\n });\n\n this.favouritesService.change.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.userService.isAuthenticated) {\n this.liveFavouriteFixturesService.refresh(OfferMapping.MainMarkets);\n }\n this.changeRef.markForCheck();\n });\n }\n\n merge(this.refreshService.refresh$.pipe(map(this.refreshTree)), this.refreshService.reload$.pipe(map(this.reloadTree)))\n .pipe(takeUntilDestroyed(this.destroyRef), takeUntil(stopProcessing$))\n .subscribe((updateTree) => {\n this.treeScroll.preserveScrolling(updateTree);\n this.changeRef.markForCheck();\n });\n\n stopProcessing$.subscribe(() => {\n this.unsubscribe();\n });\n }\n\n ngOnDestroy(): void {\n this.navigationService.reset();\n this.unsubscribe();\n }\n\n onSelectEvent(event: EventModel): void {\n this.navigationService.selectEvent(event);\n }\n\n onToggleMarkets(sport: TreeItem): void {\n this.navigationService.toggleMarkets(sport);\n }\n\n toggleItem(item: TreeItem): void {\n switch (item.type) {\n case TreeItemType.Sport:\n this.toggleSport(item);\n break;\n case TreeItemType.League:\n this.toggleLeague(item);\n break;\n case TreeItemType.Favourite:\n case TreeItemType.FavouriteLeague:\n this.toggleFavourites(item);\n break;\n\n default:\n throw new Error(`Unknown TreeItemType: ${item.type}`);\n }\n }\n\n loadEvents(): void {\n this.navigationService.loadVisibleLeagues().subscribe(() => {\n this.scrollToEvent();\n this.changeRef.markForCheck();\n });\n }\n\n private refreshTree = (data: CountsFixturesResponse) => async () => this.navigationService.refreshTree(data);\n\n private reloadTree = (data: CountsFixturesResponse) => async () => this.navigationService.reloadTree(data);\n\n private toggleFavourites(item: TreeItem): void {\n if (item.type === TreeItemType.Favourite) {\n this.navigationService.toggleFavourites(item);\n } else {\n this.navigationService.toggleFavouriteLeague(item);\n }\n }\n\n private toggleSport(item: TreeItem): void {\n this.navigationService.toggleSport(item);\n }\n\n private toggleLeague(item: TreeItem): void {\n this.navigationService.toggleLeague(item);\n }\n\n private activationEnd(data?: ActivationEnd): void {\n if (data) {\n const event = data.snapshot.data['model'].model;\n if (event && event.live && !this.navigationService.isSelected(event.id)) {\n this.navigationService.selectEvent(event);\n this.expandEvent(event);\n }\n }\n }\n\n private scrollToEvent(): void {\n if (this.stopped) {\n return;\n }\n\n this.timerService.setTimeout(() => {\n this.treeScroll.scrollTo(this.navigationService.selectedEvent);\n }, 0);\n }\n\n private expandEvent(event: EventModel): void {\n this.navigationService.expandEvent(event).then(() => this.scrollToEvent());\n }\n\n private unsubscribe(): void {\n this.stopped = true;\n this.timerService.setTimeout(() => this.subscriptionsService.unsubscribeAll(), 0);\n }\n}\n","export class PrematchNavState {\n showMarkets = true;\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureType } from '@cds/betting-offer';\nimport { TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { PrematchNavigationConfig, TournamentsDataConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RegionConstant, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, sportModelMethods } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { SessionStoreService } from '@frontend/vanilla/core';\nimport { sumBy, toString } from 'lodash-es';\nimport { EMPTY, Observable, filter, map, of, startWith, switchMap, timer } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { LeagueTreeItem } from '../../competition-list/competition-list.models';\nimport {\n BaseTreeItem,\n GroupedEvents,\n LeftNavType,\n NavEventModel,\n TreeItem,\n TreeItemType,\n} from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { NavigationEventMapperService } from '../navigation-mapper/navigation-event-mapper.service';\nimport { PrematchNavState } from './prematch-nav-state';\n\nexport interface LeagueParameters {\n leagueIds: number[];\n virtualLeagueIds: number[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PreMatchEventsNavigationService {\n private expandedLeagues = new Map();\n private sessionStoreKey = 'prematch-navigation-state';\n private isNavigationExpanded: boolean;\n\n // The initialEvent is needed for case when on refresh there are no events for the region and sport\n initialEvent: EventModel;\n isEventSelectedFromPrematch = false;\n state: PrematchNavState;\n\n constructor(\n private bettingService: BettingOfferApi,\n private navigationConfig: PrematchNavigationConfig,\n private store: SessionStoreService,\n private cacheService: SportsCacheService,\n private tournamentsConfig: TournamentsDataConfig,\n private eventMapperService: NavigationEventMapperService,\n private user: UserService,\n ) {\n this.state = this.store.get(this.sessionStoreKey) || new PrematchNavState();\n }\n\n getNavigationTree(event: EventModel): Observable {\n this.initialEvent = event;\n this.isNavigationExpanded = true;\n\n return this.getTree().pipe(\n map((tree) => {\n const region = tree.children[0];\n if (region.children.length) {\n const leagueExists = region.children.some((c) => c.id === getLeagueId(event));\n if (leagueExists) {\n const selectedLeague = getLeagueId(event);\n this.applyThreshold(region, selectedLeague);\n }\n }\n\n return tree;\n }),\n );\n }\n\n getObservableTree(): Observable {\n const interval = this.navigationConfig.pollingInterval * 1000;\n\n if (!interval) {\n return EMPTY;\n }\n\n return this.user.onAuthenticationChange$.pipe(\n map(() => 0),\n startWith(interval),\n switchMap((due) => timer(due, interval)),\n switchMap(() => (this.isNavigationExpanded && this.expandedLeagues.size > 0 ? this.getTreeWithEvents() : this.getTree())),\n );\n }\n\n getEventsForLeagues(leagueParameters: LeagueParameters): Observable {\n if (!leagueParameters.leagueIds.length && !leagueParameters.virtualLeagueIds.length) {\n return of({});\n }\n\n const request: FixtureRequest = {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(leagueParameters.leagueIds),\n virtualCompetitionIds: toString(leagueParameters.virtualLeagueIds),\n };\n\n return this.bettingService.getFixtureList(request).pipe(map((page) => this.eventMapperService.mapFixtures(page)));\n }\n\n getSportTree(sportId: number): Observable<{ sport: CountItem; tournaments: Tournament[] } | undefined> {\n return this.cacheService.getSport(sportId).pipe(\n map((sport) => {\n if (!sport) {\n return;\n }\n\n return {\n sport,\n tournaments: this.getValidTournaments(sportId),\n };\n }),\n );\n }\n\n toggleLeague(leagueId: number, isVirtual: boolean): void {\n if (this.expandedLeagues.has(leagueId)) {\n this.expandedLeagues.delete(leagueId);\n } else {\n this.expandedLeagues.set(leagueId, isVirtual);\n }\n }\n\n toggleRegion(): void {\n this.isNavigationExpanded = !this.isNavigationExpanded;\n }\n\n toggleMarkets(): void {\n this.state.showMarkets = !this.state.showMarkets;\n this.store.set(this.sessionStoreKey, this.state);\n }\n\n mapNavEvents(events: EventModel[]): NavEventModel[] {\n return events.map((event) => ({\n data: event,\n showMarkets: this.state.showMarkets,\n selected: false,\n }));\n }\n\n private fetchTree(): Observable {\n return this.bettingService\n .getPrematchEventTree(this.initialEvent.region.id, this.initialEvent.sport.id)\n .pipe(map((result) => sportModelMethods.fromTag(result)));\n }\n\n private getTree(): Observable {\n return this.fetchTree().pipe(map((tree) => this.mapTree(tree)));\n }\n\n private mapTree(countItems: CountItem[]): BaseTreeItem {\n const hasEvents = countItems && countItems.length > 0 && countItems[0].children.length > 0;\n const region = this.mapRegion(hasEvents);\n\n if (hasEvents) {\n const regionItem = countItems[0].children[0];\n regionItem.children.forEach((l) => region.children.push(this.mapLeague(l)));\n region.count = sumBy(regionItem.children, (l) => l.counts.preMatch + l.counts.live);\n }\n\n return {\n children: [region],\n };\n }\n\n private applyThreshold(region: TreeItem, selectedLeagueId: number): void {\n const exceedsTreshold = sumBy(region.children, (l) => l.count!) > this.navigationConfig.treshold;\n region.children.forEach((league) => {\n league.expanded = !exceedsTreshold || league.id === selectedLeagueId;\n if (league.expanded) {\n this.toggleLeague(league.id, !!league.isVirtual);\n }\n });\n }\n\n private mapRegion(hasEvents: boolean): TreeItem {\n const regionName = this.initialEvent.region.name;\n const regionFlag = this.initialEvent.sport.id === SportConstant.Tennis ? RegionConstant.World : this.initialEvent.region.id;\n\n return {\n id: this.initialEvent.region.id,\n name: regionName, // If sport is Tennis we want to show tournament name instead of \"World\" region\n type: TreeItemType.Region,\n selected: false,\n expanded: this.isNavigationExpanded,\n loading: false,\n icon: 'country-icon c' + regionFlag,\n class: hasEvents ? 'sport collapsible' : 'sport',\n children: [],\n events: [],\n collapsible: hasEvents,\n leftNavType: LeftNavType.Prematch,\n sportId: this.initialEvent.sport.id,\n toggleMarkets: this.state.showMarkets,\n };\n }\n\n private mapLeague(league: CountItem): TreeItem {\n return {\n id: league.id,\n name: league.name,\n type: TreeItemType.League,\n selected: false,\n expanded: this.expandedLeagues.has(league.id),\n loading: false,\n icon: '',\n count: league.counts.preMatch + league.counts.live,\n class: 'league',\n children: [],\n events: [],\n collapsible: true,\n leftNavType: LeftNavType.Prematch,\n sportId: this.initialEvent.sport.id,\n isVirtual: league.isVirtual,\n imageProfile: (league as unknown as LeagueTreeItem).imageProfile,\n };\n }\n\n private getTreeWithEvents(): Observable {\n const expandedLeaguesIds = (virtual: boolean) => {\n return Array.from(this.expandedLeagues.entries())\n .filter(([_, isVirtual]) => isVirtual === virtual)\n .map(([lId, _]) => lId);\n };\n\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: FixtureState.Latest,\n tagTypes: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n sortBy: SortByCriteria.Tags,\n sportIds: this.initialEvent.sport.id.toString(),\n },\n fixtureRequest: {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping: OfferMapping.MainMarkets,\n sortBy: SortByCriteria.FixtureStage,\n competitionIds: toString(expandedLeaguesIds(false)),\n virtualCompetitionIds: toString(expandedLeaguesIds(true)),\n sportIds: this.initialEvent.sport.id.toString(),\n },\n };\n\n if (this.initialEvent.sport.id === SportConstant.Tennis) {\n request.fixtureCountsRequest.tournamentIds = this.initialEvent.region.id.toString();\n } else {\n request.fixtureCountsRequest.regionIds = this.initialEvent.region.id.toString();\n }\n\n return this.bettingService.getCountsFixtures(request).pipe(\n filter((response) => !!response),\n map((countsFixtures) => {\n const counts = sportModelMethods.fromTag(countsFixtures!.counts);\n const tree = this.mapTree(counts);\n const groupedEvents = this.eventMapperService.mapFixtures(countsFixtures!.fixtures);\n\n tree.children[0].children.filter((l) => !!groupedEvents[l.id]).forEach((l) => (l.events = this.mapNavEvents(groupedEvents[l.id])));\n\n return tree;\n }),\n );\n }\n\n private getValidTournaments(sportId: number): Tournament[] {\n return this.tournamentsConfig.tournaments.filter((tournament) => this.filterTournament(tournament, sportId));\n }\n\n private filterTournament(tournament: Tournament, sportId: number): boolean {\n return Boolean(tournament.navigation?.filter?.visible && tournament.leaguesSection?.sport?.id.toString() === sportId.toString());\n }\n}\n","\n\n","import { NgIf } from '@angular/common';\nimport { ChangeDetectorRef, Component, DestroyRef, HostBinding, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport produce from 'immer';\nimport { clone, flatten, sumBy } from 'lodash-es';\nimport { firstValueFrom } from 'rxjs';\n\nimport { CompetitionTreeComponent } from '../../competition-list/competition-tree.component';\nimport { BaseTreeItem, NavEventModel, TreeItem, TreeItemType } from '../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../event-details-common/event-details-common.utils';\nimport { TreeComponent } from '../../event-details-common/tree/tree.component';\nimport { LiveEventsNavigationSubscriptionService } from '../live-events-navigation/live-events-navigation-subscription.service';\nimport { NavigationTrackingService } from '../navigation-tracking/navigation-tracking.service';\nimport { LeagueParameters, PreMatchEventsNavigationService } from './prematch-events-navigation.service';\n\n@Component({\n selector: 'ms-prematch-events-navigation',\n templateUrl: 'prematch-events-navigation.component.html',\n providers: [LiveEventsNavigationSubscriptionService, NavigationTrackingService],\n standalone: true,\n imports: [CompetitionTreeComponent, TreeComponent, NgIf],\n})\nexport class PrematchEventsNavigationComponent implements OnInit, OnDestroy {\n @Input() tree: BaseTreeItem;\n @Input() selectedEvent: EventModel;\n @HostBinding('class') className = 'event-details-left-menu prematch-nav';\n\n sport?: CountItem;\n tournaments?: Tournament[];\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private navService: PreMatchEventsNavigationService,\n private routerHelper: RouterEventsService,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private scrollContainerService: ScrollContainerService,\n private trackingService: NavigationTrackingService,\n private changeRef: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.initNavModel();\n this.routerHelper.currentActivationEnd.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((data) => this.activationEnd(data));\n\n this.navService\n .getObservableTree()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((tree) => this.updateTree(tree));\n\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => this.updateEvents(event));\n }\n\n async initNavModel(): Promise {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const leagueParameters: LeagueParameters = {\n leagueIds: [],\n virtualLeagueIds: [],\n };\n\n draft.children[0].children\n .filter((l) => l.expanded)\n .forEach((l) => {\n l.loading = true;\n if (l.isVirtual) {\n leagueParameters.virtualLeagueIds.push(l.id);\n } else {\n leagueParameters.leagueIds.push(l.id);\n }\n });\n\n if (leagueParameters.leagueIds.length !== 0 || leagueParameters.virtualLeagueIds.length !== 0) {\n this.getEvents(leagueParameters).then(() => this.scrollContainerService.scrollTo(undefined, 0));\n }\n });\n\n const sportTree = await firstValueFrom(this.navService.getSportTree(this.selectedEvent.sport.id));\n if (sportTree) {\n this.sport = sportTree.sport;\n this.tournaments = sportTree.tournaments;\n }\n }\n\n toggleItem(item: TreeItem): void {\n if (item.type === TreeItemType.League) {\n this.navService.toggleLeague(item.id, !!item.isVirtual);\n this.toggleLeague(item);\n } else if (item.type === TreeItemType.Region && item.collapsible) {\n this.navService.toggleRegion();\n this.toggleRegion();\n }\n }\n\n select(event: EventModel): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n\n this.setSelection(region, this.selectedEvent, false);\n this.setSelection(region, event, true);\n\n this.selectedEvent = event;\n this.navService.isEventSelectedFromPrematch = true;\n });\n }\n\n onToggleMarkets(): void {\n this.navService.toggleMarkets();\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n this.trackingService.trackMarketsToggle(this.navService.state.showMarkets, region.leftNavType);\n region.toggleMarkets = this.navService.state.showMarkets;\n this.getNavEvents(region, true).forEach((e) => (e.showMarkets = this.navService.state.showMarkets));\n });\n }\n\n private toggleRegion(): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n region.expanded = !region.expanded;\n this.trackingService.trackRegionToggle(region);\n\n const expandedLeagues = region.children.filter((l) => l.expanded);\n if (expandedLeagues.length > 0) {\n this.modifyLeaguesState(expandedLeagues, region.expanded);\n }\n });\n }\n\n private toggleLeague(item: TreeItem): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const league = draft.children[0].children.find((l) => l.id === item.id)!;\n league.expanded = !league.expanded;\n this.trackingService.trackLeagueToggle(league, item.leftNavType);\n this.modifyLeaguesState([league], league.expanded);\n });\n }\n\n private modifyLeaguesState(leagues: TreeItem[], eventsExpanded: boolean): void {\n if (eventsExpanded) {\n leagues.forEach((l) => (l.loading = true));\n const leagueParameters: LeagueParameters = {\n leagueIds: leagues.filter((l) => !l.isVirtual).map((l) => l.id),\n virtualLeagueIds: leagues.filter((l) => l.isVirtual).map((l) => l.id),\n };\n\n this.getEvents(leagueParameters);\n } else {\n const subscribedEvents: EventModel[] = [];\n leagues.forEach((league) => {\n subscribedEvents.push(...league.events.map((e) => e.data));\n league.events = [];\n });\n this.subscriptionsService.unsubscribe(subscribedEvents);\n }\n }\n\n private async getEvents(leagueParameters: LeagueParameters): Promise {\n //TODO R: looks like a memory leak\n this.navService\n .getEventsForLeagues(leagueParameters)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groupedEvents) => {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const region = draft.children[0];\n region.children\n .filter((league) => !!groupedEvents[league.id])\n .forEach((league) => {\n const mappedEvents = this.navService.mapNavEvents(groupedEvents[league.id]);\n league.events = mappedEvents;\n league.count = mappedEvents.length;\n league.loading = false;\n });\n\n this.setSelection(region, this.selectedEvent, true);\n region.count = sumBy(region.children, (l) => l.count!);\n });\n\n const all = leagueParameters.leagueIds.length + leagueParameters.virtualLeagueIds.length !== 1;\n const leagueId = leagueParameters.leagueIds[0] || leagueParameters.virtualLeagueIds[0];\n const navEvents = this.getNavEvents(this.tree.children[0], all, leagueId).map((e) => e.data);\n this.changeRef.markForCheck();\n this.subscriptionsService.subscribe(navEvents);\n });\n }\n\n private setSelection(region: TreeItem, event: EventModel, selected: boolean): void {\n const league = region.children.find((l) => l.id === getLeagueId(event));\n if (!league) {\n return;\n }\n\n league.selected = selected;\n\n const currentEvent = league.events.find((e) => e.data.id === event.id);\n if (!currentEvent) {\n return;\n }\n\n currentEvent.selected = selected;\n }\n\n private activationEnd(data?: ActivationEnd): void {\n if (data) {\n const event = data.snapshot.data['model'].model;\n if (event && this.selectedEvent.id !== event.id) {\n this.select(event);\n this.expandLeague(event);\n }\n }\n this.changeRef.markForCheck();\n }\n\n private expandLeague(event: EventModel): void {\n const league = this.tree.children[0].children.find((l) => l.id === getLeagueId(event));\n if (league && !league.expanded) {\n this.toggleLeague(league);\n }\n }\n\n private updateTree(updatedTree: BaseTreeItem): void {\n const region = updatedTree.children[0];\n const subscribedEvents: EventModel[] = [];\n if (region.expanded && region.children.some((l) => l.expanded)) {\n const navEvents = this.getNavEvents(region, true);\n subscribedEvents.push(...navEvents.map((e) => e.data));\n }\n\n this.setSelection(region, this.selectedEvent, true);\n this.subscriptionsService.refreshSubscriptions(subscribedEvents);\n this.tree = updatedTree;\n this.changeRef.markForCheck();\n }\n\n private updateEvents(events: EventModel[]): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n events.forEach((event) => {\n const league = draft.children[0].children.find((l) => l.id === getLeagueId(event));\n if (!league) {\n return;\n }\n\n const oldEventIndex = league.events.findIndex((e) => e.data.id === event.id);\n if (oldEventIndex !== -1) {\n league.events[oldEventIndex] = {\n data: clone(event),\n selected: event.id === this.selectedEvent.id,\n showMarkets: this.navService.state.showMarkets,\n };\n }\n });\n });\n this.changeRef.markForCheck();\n }\n\n private getNavEvents(region: TreeItem, all: boolean, leagueId?: number): NavEventModel[] {\n const navEvents = region.children.filter((l) => (all ? l.expanded : l.id === leagueId)).map((l) => l.events);\n\n return flatten(navEvents);\n }\n\n ngOnDestroy(): void {\n this.navService.isEventSelectedFromPrematch = false;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { LiveNavigationConfig, PrematchNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Subscription, firstValueFrom } from 'rxjs';\n\nimport { EmptyComponent } from '../common/empty.component';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { ColumnLayoutRegister } from '../layout/column-register.service';\nimport { ColumnComponentRegistration, LayoutColumn } from '../layout/layout.model';\nimport { EventDetailsComponent } from './event-details.component';\nimport { LiveEventsNavigationComponent } from './live-events-navigation/live-events-navigation.component';\nimport { LiveEventsNavigationService } from './live-events-navigation/live-events-navigation.service';\nimport { NavigationStateService } from './navigation-state/navigation-state.service';\nimport { PrematchEventsNavigationComponent } from './prematch-events-navigation/prematch-events-navigation.component';\nimport { PreMatchEventsNavigationService } from './prematch-events-navigation/prematch-events-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationLayoutService {\n private isRegistered: boolean;\n private selectedEvent: EventModel;\n private currentRegistered: Type;\n private layoutChangedSubscription: Subscription | null;\n\n constructor(\n private columnLayoutService: ColumnLayoutService,\n private columnLayoutRegister: ColumnLayoutRegister,\n private routerEvents: RouterEventsService,\n private liveNavService: LiveEventsNavigationService,\n private prematchNavService: PreMatchEventsNavigationService,\n private eventDetailsStateService: NavigationStateService,\n private liveNavConfig: LiveNavigationConfig,\n private prematchNavConfig: PrematchNavigationConfig,\n ) {\n this.routerEvents.currentActivationEnd.subscribe((route) => this.activationEnd(route));\n }\n\n register(event: EventModel): void {\n this.selectedEvent = event;\n\n if (!this.layoutChangedSubscription) {\n this.layoutChangedSubscription = this.columnLayoutService.layoutChanged.subscribe(() => {\n if (this.canBeRegistered()) {\n this.register(this.selectedEvent);\n } else {\n this.unregister();\n }\n });\n }\n\n if (!this.canBeRegistered()) {\n return;\n }\n\n // check if the same navigation is already registered\n if (this.isCorrectNavRegistered(event)) {\n return;\n }\n\n this.unregister();\n\n if (event.live && this.liveNavConfig.isLiveEventsNavigationEnabled) {\n this.addLeftNavPlaceholder();\n this.registerLiveNav(event);\n } else if (!event.live && this.prematchNavConfig.isPrematchEventsNavigationEnabled) {\n this.addLeftNavPlaceholder();\n this.registerPrematchNav(event);\n }\n }\n\n unregister(): void {\n if (this.isRegistered) {\n this.removeLeftNavPlaceholder();\n this.columnLayoutService.remove(this.currentRegistered, LayoutColumn.Left);\n this.isRegistered = false;\n this.eventDetailsStateService.removeLeftNavigation();\n }\n }\n\n private async registerLiveNav(event: EventModel): Promise {\n const tree = await this.liveNavService.initFromEvent(event);\n const componentData: ColumnComponentRegistration = {\n component: LiveEventsNavigationComponent,\n location: LayoutColumn.Left,\n inputs: { tree, event },\n };\n\n this.columnLayoutRegister.register(componentData);\n this.currentRegistered = componentData.component;\n this.isRegistered = true;\n this.eventDetailsStateService.setLeftNavigation(true);\n }\n\n private async registerPrematchNav(event: EventModel): Promise {\n const tree = await firstValueFrom(this.prematchNavService.getNavigationTree(event));\n if (!tree?.children.length || !tree.children[0].children.length) {\n this.removeLeftNavPlaceholder();\n\n return;\n }\n\n const componentData: ColumnComponentRegistration = {\n component: PrematchEventsNavigationComponent,\n inputs: { tree, selectedEvent: event },\n location: LayoutColumn.Left,\n };\n\n this.columnLayoutRegister.register(componentData);\n this.currentRegistered = componentData.component;\n this.isRegistered = true;\n this.eventDetailsStateService.setLeftNavigation(false);\n }\n\n private canBeRegistered(): boolean {\n return this.columnLayoutService.layout.shouldHaveThreeColumns;\n }\n\n private addLeftNavPlaceholder(): void {\n const componentData: ColumnComponentRegistration = {\n component: EmptyComponent,\n location: LayoutColumn.Left,\n };\n this.columnLayoutRegister.register(componentData);\n }\n\n private removeLeftNavPlaceholder(): void {\n this.columnLayoutService.remove(EmptyComponent, LayoutColumn.Left);\n }\n\n private isCorrectNavRegistered(event: EventModel): boolean {\n if (!this.isRegistered) {\n return false;\n }\n\n if (this.eventDetailsStateService.isLiveNavRegistered && event.live) {\n return true;\n }\n\n const isPrematchEvent = this.prematchNavService.isEventSelectedFromPrematch || !event.live;\n const sameSport = this.prematchNavService.initialEvent?.sport.id === event.sport?.id;\n\n return this.eventDetailsStateService.isPrematchNavRegistered && isPrematchEvent && sameSport;\n }\n\n private activationEnd(route: ActivationEnd | undefined): void {\n if (route && route.snapshot.component !== EventDetailsComponent) {\n if (this.isRegistered) {\n this.unregister();\n }\n\n if (this.layoutChangedSubscription) {\n this.layoutChangedSubscription.unsubscribe();\n this.layoutChangedSubscription = null;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nimport { EventDetailsConfig, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { firstValueFrom } from 'rxjs';\n\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsViewModelFetcher } from '../event-details-common/event-details-view-model-fetcher.service';\nimport { WidgetContextService } from '../widget/common/widget-context.service';\nimport { BaseEventDetailsResolver } from './base-event-details.resolver';\nimport { NavigationLayoutService } from './navigation-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsResolver extends BaseEventDetailsResolver {\n constructor(\n protected override navLayoutService: NavigationLayoutService,\n protected override eventDetailsViewModelResolver: EventDetailsViewModelFetcher,\n private stylesService: StylesLazyLoadingService,\n public override sitecoreEventDetails: SitecoreEventDetailsConfig,\n private eventDetailsConfig: EventDetailsConfig,\n private context: WidgetContextService,\n ) {\n super(navLayoutService, eventDetailsViewModelResolver, sitecoreEventDetails);\n }\n\n override async resolve(route: ActivatedRouteSnapshot): Promise {\n return super.resolve(route);\n }\n\n async loadStyles(): Promise {\n await this.stylesService.lazyLoad('event-details');\n }\n\n preResolve(route: ActivatedRouteSnapshot) {\n super.baseResolve(route);\n }\n\n modalResolve(route: ActivatedRouteSnapshot): Promise {\n return super.baseResolve(route);\n }\n\n async extendViewModel(route: ActivatedRouteSnapshot, detailedViewModel: DetailedEventViewModel): Promise {\n if (this.eventDetailsConfig.enableEventPageModular) {\n const updatedParams: Params = {\n ...route.params,\n fixtureStage: detailedViewModel.fixture?.stage,\n sport: detailedViewModel.fixture?.sport.id,\n region: detailedViewModel.fixture?.region.id,\n league: detailedViewModel.fixture?.competition.id,\n isVirtual: detailedViewModel.fixture?.isVirtual,\n virtualCompetitionGroup: detailedViewModel.virtualCompetitionDetails?.group,\n };\n const updatedRoute: ActivatedRouteSnapshot = {\n ...route,\n params: updatedParams,\n };\n detailedViewModel.widgetLayoutResponse = await firstValueFrom(\n this.context.getLayout(this.context.getContext({ snapshot: updatedRoute })),\n );\n }\n\n return detailedViewModel;\n }\n}\n","@if (userService.isAuthenticated) {\n \n}\n\n
\n
\n \n
\n \n
\n\n","import { Component, DestroyRef, Input, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { DeviceService, UserService } from '@frontend/vanilla/core';\nimport { distinctUntilChanged, skip } from 'rxjs';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { EventDetailsModalService } from './event-details-modal.service';\nimport { EventDetailsResolver } from './event-details.resolver';\n\n@Component({\n selector: 'ms-event-details-modal',\n templateUrl: './event-details-modal.component.html',\n})\nexport class EventDetailsModalComponent {\n @Input() detailedEventModel: DetailedEventViewModel;\n @Input() route: ActivatedRouteSnapshot;\n\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private eventDetailsModalService: EventDetailsModalService,\n private eventDetailsResolver: EventDetailsResolver,\n private deviceService: DeviceService,\n public userService: UserService,\n ) {\n this.deviceService.orientation.pipe(distinctUntilChanged(), skip(1), takeUntilDestroyed(this.destroyRef)).subscribe(() => this.updateData());\n }\n\n close(): void {\n this.eventDetailsModalService.close();\n }\n\n private async updateData(): Promise {\n this.detailedEventModel = await this.eventDetailsResolver.modalResolve(this.route);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { RegionVisibilityService } from '@frontend/sports/betting-offer/feature/region-visibility';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { Observable, debounceTime, map } from 'rxjs';\n\nimport { BreadcrumbModel } from '../breadcrumbs/breadcrumb.models';\nimport { BreadcrumbSlotResolve, BreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { EventDetailsBreadcrumbComponent } from './event-details-breadcrumb.component';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsBreadcrumbsResolver extends BreadcrumbsResolve {\n constructor(\n private urlHelper: UrlHelperService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private competitionLogosService: CompetitionLogosService,\n private adaptiveLayout: AdaptiveLayoutService,\n private regionVisibilityService: RegionVisibilityService,\n ) {\n super();\n }\n\n protected customResolve(viewModel: DetailedEventViewModel): Observable {\n return this.sitecoreEventDetails.whenReady.pipe(\n debounceTime(10),\n map(() => {\n if (!viewModel || !viewModel.model || !viewModel.model.published) {\n return [];\n }\n\n const event = viewModel.model;\n const crumbs = this.getCrumbs(event);\n\n if (this.adaptiveLayout.current.headerSubNavigation || this.adaptiveLayout.current.columns < 3) {\n return {\n component: EventDetailsBreadcrumbComponent,\n schemaBreadcrumbs: crumbs,\n };\n } else {\n return crumbs;\n }\n }),\n );\n }\n\n protected getCrumbs(event: EventModel): BreadcrumbModel[] {\n const name = event.name;\n let title = this.regionVisibilityService.shouldHide(event.region, event.league)\n ? `${event.league.name}`\n : `${event.region.name} | ${event.league.name}`;\n\n if (name.toLowerCase().includes(this.sitecoreEventDetails.eventDetails.NeutralVenue.toLowerCase())) {\n title += ` - ${this.sitecoreEventDetails.eventDetails.NeutralVenue}`;\n }\n const isWithRightImage = !!this.competitionLogosService.getLogoUrl(event.sport.id, event.league.id) || !!event.league.imageProfile;\n\n return [\n this.createCrumb({\n icon: '',\n title,\n url: this.urlHelper.getEventUrl(event),\n sportId: event.sport.id,\n leagueId: event.league.id,\n isWithRightImage,\n imageProfile: event.league.imageProfile,\n }),\n ];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, UrlTree } from '@angular/router';\n\nimport { EventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\n\nimport { EventDetailsModalService } from './event-details-modal.service';\nimport { EventDetailsResolver } from './event-details.resolver';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsModalGuard implements CanActivate {\n constructor(\n private eventDetailsModalService: EventDetailsModalService,\n private eventDetailsConfig: EventDetailsConfig,\n private eventDetailsResolver: EventDetailsResolver,\n private routerEventsService: RouterEventsService,\n ) {}\n\n async canActivate(route: ActivatedRouteSnapshot): Promise {\n if (this.eventDetailsConfig.showInOverlay && !this.routerEventsService.isDirectLink) {\n const eventData = await this.eventDetailsResolver.modalResolve(route);\n this.eventDetailsModalService.openOrUpdateModal(eventData, route, this.routerEventsService.urlHistory);\n return false;\n }\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, UrlTree } from '@angular/router';\n\nimport { LiveNavigationConfig } from '@frontend/sports/common/client-config-data-access';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { LiveEventsNavigationService } from './live-events-navigation/live-events-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsGuard {\n constructor(\n private redirectHelperService: RedirectHelperService,\n private urlHelperService: UrlHelperService,\n private eventsNavService: LiveEventsNavigationService,\n private liveNavConfig: LiveNavigationConfig,\n private router: Router,\n ) {}\n\n async canActivate(): Promise {\n if (!this.liveNavConfig.isLiveEventsNavigationEnabled) {\n this.redirectHelperService.goHome();\n }\n\n const defaultEvent = await this.eventsNavService.initFromDefaultEvent();\n\n if (defaultEvent) {\n const eventUrl = this.urlHelperService.getEventUrl(defaultEvent);\n\n return this.router.parseUrl(eventUrl);\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { LiveNavigationConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { DetailedEventViewModel } from '../event-details-common/event-details-common.models';\nimport { SportSubNavigationService } from '../event-list-shared/sport/sport-sub-navigation.service';\nimport { LiveSubnavTabs, createSubnavTabs } from '../event-list/navigation/live-subnavigation.models';\nimport { AdaptiveLayoutState } from '../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { SubNavigationResolve } from '../sub-navigation/sub-navigation-resolve.service';\nimport { SubNavigationItem } from '../sub-navigation/sub-navigation.models';\n\n@Injectable()\nexport class EventViewSubNavigationResolve extends SubNavigationResolve {\n constructor(\n private layoutManager: ColumnLayoutService,\n private liveNavConfig: LiveNavigationConfig,\n private sitecore: Sitecore,\n private urlHelperService: UrlHelperService,\n private sportSubNavService: SportSubNavigationService,\n ) {\n super();\n this.tabs$.next(this.getDefaultTabs());\n }\n\n buildSubNavigation(layout: AdaptiveLayoutState, routeSnapshot: ActivatedRouteSnapshot, model: DetailedEventViewModel): void {\n if (\n !this.liveNavConfig.isLiveEventsNavigationEnabled ||\n this.layoutManager.layout.maxColumnCount < 3 ||\n !this.isDetailedEventViewModel(model)\n ) {\n this.tabs$.next([]);\n\n return;\n }\n\n if (!model.model!.live || this.isPrematchLeftNavigationOpened()) {\n this.sportSubNavService.resolveTabs(layout, routeSnapshot, model.model!.sport.id).subscribe((items) => this.tabs$.next(items));\n\n return;\n }\n\n this.tabs$.next(this.getDefaultTabs());\n }\n\n private getDefaultTabs(): SubNavigationItem[] {\n return createSubnavTabs(this.urlHelperService, this.sitecore, LiveSubnavTabs.EventView);\n }\n\n private isDetailedEventViewModel(model: DetailedEventViewModel): model is DetailedEventViewModel {\n if (model.model) {\n return true;\n }\n\n return false;\n }\n\n private isPrematchLeftNavigationOpened(): boolean {\n return this.layoutManager.layout.registeredComponents().some((c) => c.component.name === 'PrematchEventsNavigationComponent');\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterModule } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\n\nimport { EmptyComponent } from '../common/empty.component';\nimport { nameIdentifierMatcher } from '../router/name-identifier.matcher';\nimport { use } from '../router/router.resolver';\nimport { SitemapRoutingToken } from '../sitemap/sitemap-routing';\nimport { EventDetailsBreadcrumbsResolver } from './event-details-breadcrumb.resolver';\nimport { EventDetailsModalGuard } from './event-details-modal.guard';\nimport { EventDetailsComponent } from './event-details.component';\nimport { EventDetailsGuard } from './event-details.guard';\nimport { EventDetailsResolver } from './event-details.resolver';\nimport { EventViewSubNavigationResolve } from './event-view-subnavigation.resolve';\n\nconst routes = [\n {\n path: '',\n canActivate: [EventDetailsGuard],\n component: EmptyComponent,\n },\n {\n matcher: nameIdentifierMatcher,\n component: EventDetailsComponent,\n canActivate: [EventDetailsModalGuard],\n resolve: use(EventDetailsResolver),\n data: {\n matcherParam: 'event',\n htmlClass: 'event-details-page',\n tag: RouteTag.EventDetails,\n breadcrumbs: EventDetailsBreadcrumbsResolver,\n subNavigation: EventViewSubNavigationResolve,\n sitemap: SitemapRoutingToken.EventDetailsSitemapResolver,\n shouldKeepBreadcrumbs: true,\n preResolve: (route: ActivatedRouteSnapshot) => {\n inject(EventDetailsResolver).preResolve(route);\n },\n },\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class EventDetailsRoutingModule {}\n","
\n
{{ title }}
\n \n
\n \n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { OfferSource } from '@cds';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { produce } from 'immer';\nimport { clone, flatten } from 'lodash-es';\nimport { skip } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\nimport { BaseTreeItem, LeftNavType, TreeItem, TreeItemType } from '../../../event-details-common/event-details-common.models';\nimport { getLeagueId } from '../../../event-details-common/event-details-common.utils';\nimport { TreeScrollDirective } from '../../../event-details-common/tree/tree-scroll.directive';\nimport { LiveEventsNavigationSubscriptionService } from '../../live-events-navigation/live-events-navigation-subscription.service';\nimport { EventSwitcherTrackingService } from '../event-switcher-tracking.service';\nimport { EventSwitcherToggleService } from '../services/event-switcher-toggle.service';\n\n@Component({\n selector: 'ms-event-switcher-navigation',\n templateUrl: './event-switcher-navigation.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventSwitcherNavigationComponent implements OnInit, OnDestroy, AfterViewInit {\n @Input() tree: BaseTreeItem;\n @Input() event: EventModel;\n @Input() showHeader: boolean;\n\n @ViewChild(TreeScrollDirective, { static: true }) treeScroll: TreeScrollDirective;\n\n private readonly _doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n private subscriptionsService: LiveEventsNavigationSubscriptionService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private trackingService: EventSwitcherTrackingService,\n private toggleService: EventSwitcherToggleService,\n private epcotConfigService: EpcotConfigService,\n private routerEventsService: RouterEventsService,\n ) {}\n\n ngOnInit(): void {\n this.subscribeEvents();\n this.subscriptionsService.updatedEvents$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((events) => this.updateEvents(events));\n this.routerEventsService.currentActivationEnd.pipe(skip(1), takeUntilDestroyed(this.destroyRef)).subscribe((_) => this.close());\n }\n\n ngAfterViewInit(): void {\n if (!this.epcotConfigService.isEnabled()) {\n const headerElement = this._doc.querySelector(`.slot-header`);\n\n if (headerElement) {\n this._doc\n .querySelectorAll('.event-switcher-dialog')!\n .forEach((s) => (s.style.height = `calc(100% - ${headerElement.clientHeight}px)`));\n }\n }\n\n this.treeScroll.scrollToCenterOrTop(this.event);\n }\n\n ngOnDestroy(): void {\n this.subscriptionsService.unsubscribeAll();\n }\n\n toggleItem(item: TreeItem): void {\n if (item.type === TreeItemType.League) {\n this.toggleLeague(item);\n } else {\n return;\n }\n\n this.changeDetectorRef.markForCheck();\n }\n\n onSelectEvent(selectedEvent: EventModel): void {\n this.trackingService.trackEventSelect(this.event.id, selectedEvent.id, selectedEvent.name, selectedEvent.live);\n }\n\n close(): void {\n this.toggleService.close();\n this.trackingService.trackClose(this.event.id, this.event.live);\n }\n\n get title(): string {\n return this.event.live\n ? this.sitecoreEventDetails.eventDetails.EventSwitcherLiveTitle\n : this.sitecoreEventDetails.eventDetails.EventSwitcherPrematchTitle;\n }\n\n private toggleLeague(item: TreeItem): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => {\n const league = draft.children.find((l) => l.id === item.id)!;\n league.expanded = !league.expanded;\n league.events.forEach((e) => (e.hidden = !e.hidden));\n });\n }\n\n private subscribeEvents(): void {\n const events = flatten([...this.tree.children[0].events, ...this.tree.children[0].children.map((league) => league.events)])\n .map((e) => e.data)\n .filter((event) => event.offerSource === OfferSource.V2 || event.live);\n\n this.subscriptionsService.subscribe(events);\n }\n\n private updateEvents(events: EventModel[]): void {\n this.tree = produce(this.tree, (draft: BaseTreeItem) => events.forEach((event) => this.findAndUpdateEvent(event, draft.children[0])));\n\n this.changeDetectorRef.markForCheck();\n }\n\n private findAndUpdateEvent(event: EventModel, draft: TreeItem): void {\n const league = draft.leftNavType === LeftNavType.Competition ? draft : draft.children.find((l) => l.id === getLeagueId(event));\n\n const oldEventIndex = league?.events.findIndex((e) => e.data.id === event.id) ?? -1;\n if (oldEventIndex >= 0) {\n league!.events[oldEventIndex].data = clone(event);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { WhenOverflowedDirective } from '@frontend/sports/common/ui/overflow';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { ParticipantImageComponent } from '@frontend/sports/participant-image/feature';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { DsPill } from '@frontend/ui/pill';\nimport { LoginDurationComponent } from '@frontend/vanilla/features/login-duration';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { RxIf } from '@rx-angular/template/if';\nimport { NgxPopperjsModule } from 'ngx-popperjs';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\n\nimport { BetBuilderButtonComponent } from '../betbuilder/components/button/betbuilder-button.component';\nimport { BetBuilderCustomMessageComponent } from '../betbuilder/components/custom-message/betbuilder-custom-message.component';\nimport { BetBuilderHelpComponent } from '../betbuilder/components/help/betbuilder-help.component';\nimport { BetBuilderMarketComponent } from '../betbuilder/components/market/betbuilder-market.component';\nimport { ErrorComponent } from '../common/error/error.component';\nimport { ItemComponent } from '../common/item/item.component';\nimport { CompetitionTreeComponent } from '../competition-list/competition-tree.component';\nimport { CrmPromotionContainerComponent } from '../crm-promotion-container/crm-promotion-container.component';\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { DropdownModule } from '../dropdown/dropdown.module';\nimport { EventDetailsCommonModule } from '../event-details-common/event-details-common.module';\nimport { EventDetailsViewModelService } from '../event-details-common/event-details-view-model.service';\nimport { EventHeaderTabsComponent } from '../event-details-common/header/tab-group/event-header-tabs.component';\nimport { TreeScrollDirective } from '../event-details-common/tree/tree-scroll.directive';\nimport { FavouritesModule } from '../favourites/favourites.module';\nimport { GridModule } from '../grid/grid.module';\nimport { MyBetsBaseModule } from '../my-bets-base/my-bets-base.module';\nimport { NativeAlertsModule } from '../native-alerts/native-alerts.module';\nimport { NavigationCoreModule } from '../navigation-core/navigation-core.module';\nimport { NavigationModule } from '../navigation/navigation.module';\nimport { OptionGroupListComponent } from '../option-group/option-group-list.component';\nimport { OptionSheetViewModule } from '../option-sheet-view/option-sheet-view.module';\nimport { TabBarModule } from '../tab-bar/tab-bar.module';\nimport { TimerModule } from '../timers/timer.module';\nimport { WidgetCoreModule } from '../widget/core/widget-core.module';\nimport { BetBuilderOnboardingComponent } from './bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.component';\nimport { BetbuilderMarketListComponent } from './bet-builder-v2/market-list/betbuilder-market-list.component';\nimport { OverlayTriggerBannerComponent } from './bet-builder-v2/overlay-trigger-banner/overlay-trigger-banner.component';\nimport { BetBuilderViewComponent } from './bet-builder-view.component';\nimport { EventDetailsBreadcrumbComponent } from './event-details-breadcrumb.component';\nimport { EventDetailsModalComponent } from './event-details-modal.component';\nimport { EventDetailsRoutingModule } from './event-details-routing.module';\nimport { EventDetailsComponent } from './event-details.component';\nimport { EventSwitcherNavigationComponent } from './event-switcher/event-switcher-navigation/event-switcher-navigation.component';\nimport { EventSwitcherComponent } from './event-switcher/event-switcher/event-switcher.component';\nimport { EventViewSubNavigationResolve } from './event-view-subnavigation.resolve';\nimport { HeaderSubNavigationComponent } from './header/header-sub-navigation.component';\nimport { HeaderComponent } from './header/header.component';\nimport { LiveEventsNavigationComponent } from './live-events-navigation/live-events-navigation.component';\n\nconst declarations = [\n EventDetailsComponent,\n EventSwitcherComponent,\n EventSwitcherNavigationComponent,\n LiveEventsNavigationComponent,\n BetBuilderViewComponent,\n HeaderComponent,\n HeaderSubNavigationComponent,\n EventDetailsModalComponent,\n];\n\nconst imports = [\n AutomationModule,\n CommonModule,\n CompetitionLogoComponent,\n CrmPromotionContainerComponent,\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 BetBuilderMarketComponent,\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","x","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","BetBuilderCustomMessageComponent_div_0_Template","ɵɵproperty","NgIf","encapsulation","changeDetection","_BetBuilderCustomMessageComponent","market","ambassador","name","ɵɵelement","BetBuilderMarketCardComponent_div_1_div_2_Template","image","ɵɵsanitizeUrl","showName","leg_r2","fixtureId","BetBuilderMarketCardComponent","pickTrackingSource","marketLegs","mapLegs","split","BetBuilderMarketCardComponent_div_1_Template","BetBuilderMarketCardComponent_div_3_Template","BetBuilderMarketCardComponent_ms_betbuilder_edit_pre_created_bab_button_9_Template","ɵɵpipeBind1","option","optionPrice","nativePrice","longIds","length","NgFor","BetBuilderPickComponent","FontResizerComponent","BetBuilderEditPrecreatedBABButtonComponent","NativePriceFormatterPipe","_BetBuilderMarketCardComponent","g","ctx_r1","market_r1","BetBuilderMarketCardListComponent","markets","BetBuilderMarketCardListComponent_div_0_Template","_BetBuilderMarketCardListComponent","marketTitle","BetBuilderMarketComponent","sitecore","className","builderMarkets","singleAmbassadorTitle","betBuilder","AmbassadorsPicksTitle","PromotedMarketsTitle","Sitecore","hostVars","hostBindings","ɵɵclassMap","BetBuilderMarketComponent_div_1_Template","_BetBuilderMarketComponent","DsBadge","elementRef","size","input","variant","disabled","transform","booleanAttribute","inverse","hostClass","computed","getAriaLabel","label","nativeElement","querySelector","textContent","trim","ElementRef","hostAttrs","ci","ɵɵclassProp","H","uo","ɵɵprojection","_DsBadge","EventHeaderTabsTooltipService","tooltipShownCount","localStoreService","get","localKey","eventDetailsConfig","openTillClosed","shouldShowTooltip","provider","tabBarTooltipViewsThreshold","increaseCount","set","closeTooltip","ɵɵinject","EventDetailsConfig","LocalStoreService","C","factory","ɵfac","providedIn","_EventHeaderTabsTooltipService","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","onPopperShown","tooltipPopper","NgxPopperjsPlacements","BOTTOM","globalMessages","NewBadgeText","tab_r3","count","tmp_14_0","active","undefined","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","q","_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","selectedTab","tabs","forEach","update","schedule","emit","scope","patchZone","subscribe","onDocumentResize","item","isSgp","RxStrategyProvider","viewQuery","$event","ɵɵrepeaterCreate","EventHeaderTabsComponent_For_2_Template","_forTrack0","EventHeaderTabsComponent_Conditional_4_Template","ɵɵrepeater","CommonModule","DsTabsModule","DsTab","DsTabsGroup","DsTabHeader","PriceboostCountSignpostComponent","TooltipModule","OnboardingTooltipComponent","NgxPopperjsModule","NgxPopperjsContentComponent","NgxPopperjsDirective","SpeculativeLinkDirective","LinkDirective","DsDivider","DsNotificationBubble","SportsThemedNotificationDirective","styles","_EventHeaderTabsComponent","LeagueReferenceElement","leagueElm","getOffset","offsetTop","EventReferenceEvent","eventElm","eventsWrapperElm","distance","eventsWrapperHeight","clientHeight","leagueOffset","leagueClientHeight","TreeScrollDirective","scrollContainer","mutationObserver","unsubscribe$","Subject","ngOnDestroy","stopAdjusting","complete","preserveScrolling","func","eventToScroll","referenceElement","findTopElement","offset","startAdjusting","then","scrollToCenterOrTop","findEventElement","getCenterPoint","newOffset","scrollTo","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","co","_TreeScrollDirective","_r3","onLinkClick","linkText","onCloseButtonClick","BetBuilderOnboardingComponent_ms_epcot_notification_0_a_4_Template","messageText","BetBuilderOnboardingComponent","betBuilderHowToDialogService","betBuilderEventNameService","onboardingMessageService","tracker","sitecoreEventDetails","dismissed","getTrackingObject","trackingConstants","COMPONENT_CATEGORY_EVENT","BetBuilderTrackingValues","COMPONENT_LABEL_EVENT","BuildaBetPod","COMPONENT_LOCATION_EVENT","COMPONENT_URL_CLICKED","NOT_APPLICABLE","EventDetailsOnboardingMessageText","EventDetailsOnboardingLinkText","close","trackCloseButtonClick","trackLinkClick","sportId","eventName","getParticipantHeaderTitle","participants","eventViewType","viewType","openBuilder","incrementCounter","trackLoad","tryReplaceMessagesText","setId","previousValue","tryMarkAsShown","isCounterFinished","track","EVENT_TRACKING","COMPONENT_ACTION_EVENT","Click","COMPONENT_POSITION_EVENT","InfoRibbon","COMPONENT_EVENT_DETAILS","FindOutMore","EVENT_CONTENT_VIEW","Load","Close","sportName","SportConstant","onboarding","BetBuilderHowToDialogService","BetBuilderEventNameService","BetBuilderOnboardingMessageService","TrackingService","SitecoreEventDetailsConfig","de","BetBuilderOnboardingComponent_ms_epcot_notification_0_Template","EpcotNotificationComponent","_BetBuilderOnboardingComponent","startDate","OverlayTriggerBannerComponent","betBuilderOverlayService","betbuilderMessages","betBuilderEntainUI","Tab","BuildaBet","SPORT_ID","SPORT_LEAGUE_ID","headerTemplate","isOverlay","source","MarketBoardButton","BetBuilderOverlayService","me","ue","ge","i0","OverlayTriggerBannerComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","OverlayTriggerTitle","OverlayTriggerSubtitle","OverlayTriggerButton","BetBuilderOverlayHeaderComponent","_OverlayTriggerBannerComponent","preCreated","ambassadorsMarkets","promotedMarkets","BetBuilderViewComponent_Case_0_Conditional_2_Conditional_0_Template","BetBuilderViewComponent_Case_0_Conditional_2_Conditional_1_Template","BetBuilderViewComponent_Case_0_Conditional_2_Conditional_2_Template","hasMarkets","BetBuilderViewComponent_Case_0_Conditional_2_Template","BetBuilderViewComponent_Case_2_Conditional_4_Conditional_0_Template","BetBuilderViewComponent_Case_2_Conditional_4_Conditional_1_Template","BetBuilderViewComponent_Case_2_Conditional_4_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","$i","wr","er","_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","_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","f","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","Ge","EventSwitcherComponent_ms_event_switcher_navigation_0_Template","Ue","_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_Conditional_0_Template","MediaSwitcherComponent_Conditional_0_For_2_ng_template_1_Template","tmp_13_0","MediaSwitcherComponent_Conditional_0_For_2_Template","ɵɵrepeaterTrackByIndex","segmentedControlThemeInverse","tmp_3_0","currentSelectedTab","MediaSwitcherComponent","headerNavigation","scoreboardMediaTrackingService","changeDetector","mediaTabsCountChanged","getTabs","mediaTabsCount","activeTabId","updateSelected","FeatureTab","Statistics","Simulation","Video","Scoreboard","trackTabsInteractionForHeader","HeaderNavigationService","ScoreboardMediaTrackingService","MediaSwitcherComponent_Conditional_0_Template","DsSegmentedControlModule","DsSegmentedControl","DsSegmentedOption","SportsThemedSegmentedControlDirective","_MediaSwitcherComponent","onTabsChanged","EventDetailsBreadcrumbComponent_Conditional_0_Conditional_1_Template","isFinished","EventDetailsBreadcrumbComponent","routerEventsService","eventSubscriptionService","changeRef","destroyRef","DestroyRef","eventChanged","showInOverlay","currentActivationEnd","filterSports","route","activationEnded","subscription","unsubscribe","snapshot","model","callback","debounce","RouterEventsService","DetailedEventSubscriptionService","EventDetailsBreadcrumbComponent_Conditional_0_Template","_EventDetailsBreadcrumbComponent","EventDetailsModalService","modalDialogService","timerService","location","modalAnimationHelper","_window","WINDOW","currentActivationStart","RouteTag","modalRef","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","parseInt","EventDetailsService","MarqueeTileService","_EventDetailsViewModelFetcher","BaseEventDetailsResolver","navLayoutService","eventDetailsViewModelResolver","baseResolve","register","unregister","Promise","all","vm","extendViewModel","loadStyles","whenReady","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","current","search","queryString","splitTags","tags","push","cleanMyBetsQueryString","setTabs","delete","path","cleanQueryString","cleanLastTag","marketInUrl","setQueryString","replace","currentMarket","has","UrlService","_EventDetailsMarketQueryService","HeaderNavigationUrlService","updateCurrentUrl","tabBarItem","setTimeoutOutsideAngularZone","updateCurrentUrlInternal","typedReverseFeatureTab","FeatureUrl","_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","Fi","Go","_HeaderSubNavigationComponent","ɵɵelementContainer","HeaderComponent_Conditional_1_Conditional_0_ng_container_0_Template","sitemapComponent","_r2","setTabSelected","tabClicked","HeaderComponent_Conditional_1_Conditional_1_Conditional_0_Template","HeaderComponent_Conditional_1_Conditional_1_Conditional_1_Template","isSitemapEnabled","isHeaderSubNavigationEnabled","HeaderComponent_Conditional_1_Conditional_0_Template","HeaderComponent_Conditional_1_Conditional_1_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","subscribeToOutputs","toggleSitemapItem","toggleSitemap","featureTabSelected","on","DispatcherEvent","newSetId","setTabActivate","EventNavigation","SetSubTabs","payload","subTabs","setBetBuilderSubNavigation","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_Conditional_1_Template","_HeaderComponent","setChanged","featureChanged","ɵɵelementContainerStart","EventDetailsComponent_ng_container_1_ng_container_1_Template","Ee","marqueeComponent","UnpublishedEvent","published","crmBannerPromotions","EventDetailsComponent_ng_template_4_ng_container_1_Conditional_1_ms_bet_builder_onboarding_0_Template","onboardingVisible$","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_2_Conditional_1_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_3_ng_container_1_Template","myBetsComponent","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_ng_container_1_ng_container_1_Template","optionGroupList_r3","ɵɵpureFunction1","_c0","setType","AllBets","totalOptionGroupsCount","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_ng_container_1_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_ms_item_2_Template","isEventPageModularEnabledWithWidgets","modularWidgetLoop_r5","setMain","EventDetailsComponent_ng_template_4_ng_container_1_Conditional_1_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_2_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_3_Template","EventDetailsComponent_ng_template_4_ng_container_1_ng_container_4_Template","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_Conditional_0_Template","EventDetailsComponent","OnRouteResolve","onRouteResolved","isMarqueeVisible","marqueesEmpty","isEventPageModularEnabled","navigationRouter","navigationStateService","scoreboardSubscriptionService","helper","promotionMapper","promotionProvider","promotionConfig","marqueeConfig","marqueeService","mediaApi","externalNativeAppService","automatedMarqueeService","marqueeLoader","widgetTrackingService","eventDetailsModelService","edpScoreboardConfigService","playerStatsSubscriptionService","document","isPokerNativeApp","hasError","enableEventPageModular","hideEDPBreadcrumbs","SourceOfPick","HighlightsMarqueePage","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","provide","BAB_TOOLTIP_HOST_INJECTION_TOKEN","useValue","ɵɵInheritDefinitionFeature","EventDetailsComponent_Conditional_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","St","J","Co","fo","bo","So","Qi","Jt","ms","qi","ji","An","Xi","pi","Eo","__decorate","HooksWireup","__metadata","Document","NavState","selection","expandedSports","collapsedLeagues","sportsWithCollapsedMarkets","Set","isSportExpanded","isLeagueCollapsed","areMarketsCollapsed","toggleSport","toggleLeague","toggleMarkets","LiveEventsNavigationStateService","sessionStore","sessionKey","loadState","rawState","storeState","Array","from","storeSelection","SessionStoreService","_LiveEventsNavigationStateService","LiveEventsNavigationRefreshService","stateService","liveNavConfig","bettingContent","userService","registerRefresh","registerReload","intervalInMs","pollingInterval","refresh$","debounceTime","shareReplay","bufferSize","refCount","reload$","onAuthenticationChange$","excludeCompetitionIds","filterDefined","LiveNavigationConfig","UserService","_LiveEventsNavigationRefreshService","LiveEventsNavigationRouteService","routerEvents","stopStream$","serviceDestroyed$","component","stopProcessing$","asObservable","_LiveEventsNavigationRouteService","LiveEventsNavigationSubscriptionService","freshDataService","eventsStream$","handler","onPushReconnected","resubscribe","flush$","noop","throttleTime","asyncScheduler","updatedEvents$","distinct","buffer","reloadNeeded","FreshDataType","DataAndPush","filterSportsEmitLast","refreshSubscriptions","difference","remove","omit","eventsToUnsubscribe","unsubscribeAll","EventSubscriptionService","FreshDataService","_LiveEventsNavigationSubscriptionService","NavigationTrackingService","trackRegionToggle","EVENT_NAVIGATION_MENUS","PAGE_NAVIGATION_MENUS","trackSportToggle","trackLeagueToggle","navigationMenus","trackMarketsToggle","visible","_NavigationTrackingService","LiveEventsNavigationTreeService","subscriptionsService","liveFavouriteFixturesService","favouritesConfig","favouritedLeagues","eventSubject","favEventChange","refreshFavouritesTreeItem","updatedChildren","updateFavouritedItemsLeftNavigation","LiveUrlParam","Favourites","getFavouriteTab","updateTree","navTree","leagueGroups","added","produce","draftState","leagueGroup","sportIndex","virtualLeagueId","anyEvents","s","leagueIndex","selectionInfo","hidden","isLiveFavouritesEnabled","isAuthenticated","hiddenLeagueCount","hiddenEventCount","favouritedFixture","isFavourited","draft","draftSport","findChild","getVisibleLeagues","getLeagueGroup","expandEvent","leaguesToFetch","newTree","currentSport","currentLeague","updateFavourites","unsubscribeInvisibleEvents","setFavouriteLeagues","favouriteEvents","getFavouritesEvents","flatMap","updateEvent","updatedEvent","clone","updateEvents","navEventModels","clearLeagueEvents","toggleFavourites","toggleFavouriteLeague","refreshTree","oldTree","newSports","favouriteItem","Favourite","liveNavEvens","marketsToggled","newLeagues","leagueEvents","newEvents","oldLeague","getNewEvents","newSport","favouritesEvents","selectEvent","SelectionInfo","applySelection","setSelectionInfo","selectedEvent","isSelected","getFirstLeagueId","getFirstSportId","favouritesMessages","LiveTitle","sumBy","liveFixtures","getFixtureList","favouriteFix","favouritedLiveEvents","eventIds","indexOf","fixtureList","stage","favourited","setSelection","findEvent","output","oldEvent","nonFavouriteEvents","unSubscribeEvents","visibleLeagues","LiveFavouriteFixturesService","FavouritesConfig","_LiveEventsNavigationTreeService","NavigationMapperService","treeService","updateTreeState","mapFixture","selectedLeague","withLoading","sportItems","favouriteChildren","favouriteTab","mapLeagues","mapSport","leagueRegions","lr","mapLeague","collapsed","imageProfile","Sport","_NavigationMapperService","LiveEventsNavigationService","mapperService","sportsCacheService","_tree$","initFromEvent","setSelectedEvent","defaultEvent","initFromDefaultEvent","loadTree","initState","visibleEvents","getGroupedEvents","getDefaultEvent","fetchTree","reloadTree","loadEventsForLeagues","toggleResult","loadVisibleLeagues","reset","tree$","liveSportTree","getLiveSportList","forceReload","sportModelMethods","fromTag","selectedSportId","exceedsTreshold","treshold","tap","leagueIds","firstLeague","_LiveEventsNavigationService","toggleItem","onSelectEvent","onToggleMarkets","LiveEventsNavigationComponent","navigationService","routerHelper","refreshService","routeService","favouritesService","stopped","first","activationEnd","change","refresh","merge","treeScroll","Error","scrollToEvent","FavouritesService","LiveEventsNavigationComponent_Conditional_0_Template","Bt","_LiveEventsNavigationComponent","PrematchNavState","PreMatchEventsNavigationService","bettingService","navigationConfig","store","cacheService","tournamentsConfig","user","expandedLeagues","Map","sessionStoreKey","isEventSelectedFromPrematch","getNavigationTree","initialEvent","isNavigationExpanded","getTree","applyThreshold","getObservableTree","interval","startWith","due","getTreeWithEvents","EMPTY","getEventsForLeagues","leagueParameters","virtualLeagueIds","virtualCompetitionIds","getSportTree","tournaments","getValidTournaments","toggleRegion","getPrematchEventTree","countItems","hasEvents","mapRegion","regionItem","preMatch","regionName","regionFlag","Region","expandedLeaguesIds","virtual","entries","lId","countsFixtures","tournament","filterTournament","navigation","leaguesSection","PrematchNavigationConfig","TournamentsDataConfig","_PreMatchEventsNavigationService","PrematchEventsNavigationComponent","navService","scrollContainerService","initNavModel","getEvents","sportTree","select","getNavEvents","modifyLeaguesState","eventsExpanded","subscribedEvents","navEvents","currentEvent","expandLeague","updatedTree","oldEventIndex","flatten","PrematchEventsNavigationComponent_ms_competition_tree_1_Template","CompetitionTreeComponent","TreeComponent","_PrematchEventsNavigationComponent","NavigationLayoutService","columnLayoutService","columnLayoutRegister","liveNavService","prematchNavService","eventDetailsStateService","prematchNavConfig","layoutChangedSubscription","layoutChanged","canBeRegistered","isCorrectNavRegistered","isLiveEventsNavigationEnabled","addLeftNavPlaceholder","registerLiveNav","isPrematchEventsNavigationEnabled","registerPrematchNav","isRegistered","removeLeftNavPlaceholder","currentRegistered","LayoutColumn","Left","componentData","shouldHaveThreeColumns","EmptyComponent","isPrematchEvent","sameSport","ColumnLayoutRegister","_NavigationLayoutService","EventDetailsResolver","stylesService","context","__superGet","_EventDetailsResolver","lazyLoad","preResolve","modalResolve","detailedViewModel","_f","updatedParams","fixtureStage","virtualCompetitionGroup","updatedRoute","getLayout","getContext","StylesLazyLoadingService","WidgetContextService","eventDetailsModalService","eventDetailsResolver","deviceService","orientation","EventDetailsModalComponent_Conditional_0_Template","_EventDetailsModalComponent","EventDetailsBreadcrumbsResolver","BreadcrumbsResolve","urlHelper","competitionLogosService","regionVisibilityService","customResolve","crumbs","getCrumbs","headerSubNavigation","schemaBreadcrumbs","shouldHide","NeutralVenue","isWithRightImage","getLogoUrl","createCrumb","getEventUrl","UrlHelperService","CompetitionLogosService","RegionVisibilityService","_EventDetailsBreadcrumbsResolver","EventDetailsModalGuard","canActivate","isDirectLink","_EventDetailsModalGuard","EventDetailsGuard","redirectHelperService","urlHelperService","eventsNavService","router","goHome","eventUrl","parseUrl","RedirectHelperService","Router","_EventDetailsGuard","EventViewSubNavigationResolve","SubNavigationResolve","layoutManager","sportSubNavService","tabs$","getDefaultTabs","buildSubNavigation","routeSnapshot","maxColumnCount","isDetailedEventViewModel","isPrematchLeftNavigationOpened","resolveTabs","createSubnavTabs","LiveSubnavTabs","EventView","registeredComponents","SportSubNavigationService","_EventViewSubNavigationResolve","routes","matcher","nameIdentifierMatcher","use","matcherParam","htmlClass","breadcrumbs","subNavigation","sitemap","SitemapRoutingToken","EventDetailsSitemapResolver","shouldKeepBreadcrumbs","EventDetailsRoutingModule","Gt","RouterModule","forChild","_EventDetailsRoutingModule","EventSwitcherNavigationComponent","_doc","subscribeEvents","headerElement","style","height","EventSwitcherLiveTitle","EventSwitcherPrematchTitle","offerSource","findAndUpdateEvent","EventSwitcherNavigationComponent_div_0_Template","showHeader","ln","ze","_EventSwitcherNavigationComponent","EventDetailsWithoutRoutingModule","AutomationModule","CrmPromotionContainerComponent","CrmPromotionModule","DirectivesModule","DropdownModule","FavouritesModule","GridModule","MyBetsBaseModule","NativeAlertsModule","NavigationCoreModule","NavigationModule","NgScrollbarModule","TabBarModule","TimerModule","EventDetailsCommonModule","WidgetCoreModule","OptionSheetViewModule","BetBuilderButtonComponent","ErrorComponent","ItemComponent","ScrollAdapterComponent","BetbuilderMarketListComponent","OptionGroupListComponent","LoginDurationComponent","_EventDetailsWithoutRoutingModule","yr","AsyncPipe","EventDetailsModule","imports","_EventDetailsModule"],"mappings":"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"}