{"version":3,"file":"chunk-hl7pvhgq.js","sources":["packages/sports/web/app/src/betbuilder/services/sportcast/bet-builder-view-model.ts","packages/sports/web/app/src/betbuilder/services/sportcast/market-builder-factory.ts","packages/sports/web/app/src/betbuilder/services/sportcast/market-builder-provider.service.ts","packages/sports/web/app/src/betbuilder/services/sportcast/market-builder.service.ts","packages/sports/web/app/src/event-details/event-details-dispatcher-events.ts","packages/sports/web/app/src/event-details/bet-builder-v2/event-details-onboarding/bet-builder-onboarding-message.service.ts","packages/sports/web/app/src/event-details/bet-builder-v2/market-list-header/market-list-header.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/market-list-header/market-list-header.component.ts","packages/sports/web/app/src/event-details/bet-builder-v2/market-list/betbuilder-market-list.component.html","packages/sports/web/app/src/event-details/bet-builder-v2/market-list/betbuilder-market-list.component.ts"],"sourcesContent":["import { Fixture } from '@cds/betting-offer';\nimport { EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\n\nexport class BetBuilderViewModel {\n fixture?: Fixture;\n eventOptionGroups: EventOptionGroup[];\n availableMarketGroups: { [key: string]: number } | undefined;\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetBuilderOption, BetBuilderOptionMarket, Detailed } from '@cds/betting-offer/bet-builder';\nimport { DisplayType, MarketGroup, MarketGroupConfig, MarketGroupItem } from '@cds/betting-offer/grouping/bet-builder';\nimport { MarketTabInfo } from '@cds/betting-offer/grouping/fixture-view';\nimport { DetailedGroupingFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport {\n EventOption,\n EventOptionGroup,\n EventOptionGroupType,\n EventOptionGrouping,\n ExtendedDisplayType,\n} from '@frontend/sports/betting-offer/feature/model';\nimport { BetBuilderConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { hashCode } from '@frontend/sports/common/core/utils/string';\nimport { ScorecastLongIdPrefixes } from '@frontend/sports/types/components/bet-builder';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MarketBuilderFactory {\n private readonly logger: SportsRemoteLogger;\n raceText: { [key: string]: string };\n\n constructor(\n private detailedGroupingFactory: DetailedGroupingFactory,\n loggerFactory: LoggerFactory,\n private sitecore: Sitecore,\n private betBuilderConfig: BetBuilderConfig,\n ) {\n this.logger = loggerFactory.getLogger('MarketBuilderFactory');\n this.raceText = sitecore.betBuilderEntainUI?.children?.racetotext.messages ?? {};\n }\n\n getOptionGroups(\n config: MarketGroupConfig,\n betBuilderOptionMarkets: BetBuilderOptionMarket[],\n marketGroup: MarketGroup,\n sportcastId: number,\n sportId: number,\n ): EventOptionGroup[] {\n const optionGroups: EventOptionGroup[] = [];\n\n betBuilderOptionMarkets.forEach((sportcastMarket) => {\n const optionGroup = new EventOptionGroup();\n\n const detailed = sportcastMarket.detailedGrouping[0];\n\n const marketGroupItem = marketGroup.marketGroupItems.find((mgi) => mgi.id === detailed.marketGroupItemId);\n if (!marketGroupItem) {\n this.logger.warning(`BetBuilderMarket ${sportcastMarket.label}-${sportcastMarket.labelId} does not have a matching marketGroupItem`);\n\n return;\n }\n\n const optionGrouping = {\n marketSet: 1,\n name: sportcastMarket.label,\n marketOrder: marketGroup.marketGroupItems.findIndex((mgi) => mgi.id === detailed.marketGroupItemId),\n marketHelpPath: marketGroupItem.helpPath,\n marketTabId: detailed.marketTabId,\n optionColumnId: detailed.optionColumnId,\n displayType: this.mapDisplayType(marketGroupItem.displayType),\n marketGroupId: detailed.marketGroupId,\n marketGroupItemId: detailed.marketGroupItemId,\n periodGroup: this.getPeriodGroup(config.marketTabs, detailed.marketTabId),\n };\n\n switch (marketGroupItem.displayType) {\n case DisplayType.SixPack:\n optionGrouping.marketGroup = 0;\n optionGrouping.name = marketGroupItem.name;\n break;\n case DisplayType.OverUnder:\n case DisplayType.CorrectScore:\n case DisplayType.Spread:\n case DisplayType.RaceTo:\n default:\n optionGrouping.marketGroup = 0;\n }\n\n optionGroup.id = sportcastMarket.labelId.toString();\n optionGroup.detailedGrouping = optionGrouping;\n optionGroup.name = marketGroupItem.name || sportcastMarket.label;\n optionGroup.type = EventOptionGroupType.Regular;\n optionGroup.hidden = false;\n optionGroup.winning = false;\n optionGroup.online = true;\n optionGroup.options = this.mapOptions(sportcastMarket, marketGroupItem, detailed, config, sportcastId, sportId);\n optionGroup.periodName = this.getPeriodName(config.marketTabs, optionGrouping.marketTabId);\n optionGroup.isMultipleSelection = sportcastMarket.isMultipleSelection;\n optionGroups.push(optionGroup);\n });\n\n const grouped = this.detailedGroupingFactory.groupMarkets(optionGroups);\n\n return grouped;\n }\n\n private mapOptions(\n sportcastMarket: BetBuilderOptionMarket,\n marketGroupItem: MarketGroupItem,\n detailed: Detailed,\n config: MarketGroupConfig,\n sportcastId: number,\n sportId: number,\n ): EventOption[] {\n const options: EventOption[] = [];\n\n sportcastMarket.options.forEach((opt, index) => {\n const option = new EventOption();\n option.id = this.getOptionId(opt, sportcastId);\n option.name = opt.value;\n option.online = true;\n option.longId = opt.globalIdLong;\n option.optionGroupId = sportcastMarket.labelId;\n option.shortId = opt.globalIdShort;\n option.optionColumnId = detailed.optionColumnId;\n option.order = opt.order;\n option.optionColumnName = this.getOptionColumnName(config.optionColumns, detailed.optionColumnId);\n option.description = opt.description;\n\n const parameterDisplayTypes = [\n DisplayType.CorrectScore,\n DisplayType.OverUnder,\n DisplayType.RaceTo,\n DisplayType.Spread,\n DisplayType.GoalScorer,\n DisplayType.YesNo,\n DisplayType.TeamPlayerProps,\n ];\n\n if (parameterDisplayTypes.includes(marketGroupItem.displayType) && !sportcastMarket.parameters?.length) {\n this.logger.warning(`${marketGroupItem.displayType} market: ${sportcastMarket.labelId} is missing custom parameters`);\n\n return;\n }\n\n if (marketGroupItem.displayType === DisplayType.TeamPlayerProps && sportcastMarket.parameters.length < 2) {\n this.logger.warning(`${DisplayType.TeamPlayerProps} market: ${sportcastMarket.labelId} should have multiple custom parameters`);\n\n return;\n }\n\n switch (marketGroupItem.displayType) {\n case DisplayType.CorrectScore:\n option.marketAttribute = sportcastMarket.parameters[0].value;\n break;\n case DisplayType.OverUnder:\n option.marketAttribute = opt.value;\n const overUnderParam =\n sportcastMarket.parameters.length > 1 ? sportcastMarket.parameters[1].value : sportcastMarket.parameters[0].value;\n option.name = overUnderParam;\n break;\n case DisplayType.Spread:\n option.optionGroupId = Math.abs(hashCode(opt.value));\n option.optionAttribute = sportcastMarket.parameters[0].value;\n option.marketAttribute = opt.value;\n option.name = '';\n break;\n case DisplayType.RaceTo:\n option.marketAttribute = `${opt.value} ${this.raceText[sportId]}`;\n option.name = sportcastMarket.parameters[0].value;\n break;\n case DisplayType.YesNo:\n option.optionColumnId = Math.abs(hashCode(opt.value));\n option.optionColumnName = opt.value;\n option.name = opt.value;\n option.optionAttribute = sportcastMarket.parameters[0].value;\n option.overridenName = sportcastMarket.parameters[0].value;\n break;\n case DisplayType.GoalScorer:\n if (!option.optionColumnName) {\n this.logger.warning(`Option column not set for Goalscorer option`);\n }\n option.name = option.optionColumnName || opt.value;\n // goalscorer columns are ordered by id\n option.optionColumnId = option.order;\n option.optionAttribute = sportcastMarket.parameters[0].value;\n option.overridenName = sportcastMarket.parameters[0].value;\n break;\n case DisplayType.TeamPlayerProps:\n option.name = sportcastMarket.parameters[1].value;\n option.marketAttribute = opt.value;\n option.optionAttribute = `${sportcastMarket.parameters[0].value}-${opt.value}`;\n option.optionColumnId = Math.abs(hashCode(sportcastMarket.parameters[1].value));\n option.optionColumnName = sportcastMarket.parameters[1].value;\n option.overridenName = sportcastMarket.parameters[0].value;\n break;\n case DisplayType.SixPack:\n const { overUnder, spread, matchWinner } = this.shouldOverrideSixPack(opt);\n\n const shouldOverride = overUnder || spread || matchWinner;\n if (!shouldOverride) {\n break;\n }\n\n // Example mappings\n // MatchWinner\n // { globalIdLong: 'MatchWinner_Home', value: 'Orioles' } -> { name: '', marketAttribute: 'Orioles' }\n // Spread\n // { globalIdLong: 'Handicap_TotalRuns_Home_1.5', value: 'Orioles -1.5' } -> { name: 'Orioles', marketAttribute: '-1.5' }\n // { globalIdLong: 'Handicap_TotalRuns_Home_1.5', value: '-1.5', parameters: [{ value: 'Orioles' }] } -> { name: 'Orioles', marketAttribute: '-1.5' }\n // OverUnder\n // { globalIdLong: 'MatchOverUnder_TotalRuns_Over_8.5', value: 'Over 8.5' } -> { name: '', marketAttribute: 'O 8.5' }\n // { globalIdLong: 'MatchOverUnder_TotalRuns_Under_8.5', value: 'Under 8.5' } -> { name: '', marketAttribute: 'U 8.5' }\n\n const optionValueSplit = opt.value.trim().split(/\\s+/);\n const optionAttribute = matchWinner ? opt.value : optionValueSplit.pop();\n const totalsPrefix = index === 0 ? this.sitecore.eventGrid.SixPack_TotalsOver : this.sitecore.eventGrid.SixPack_TotalsUnder;\n\n option.name = spread ? optionValueSplit.join(' ') || sportcastMarket.parameters[0]?.value : '';\n option.marketAttribute = overUnder ? `${totalsPrefix} ${optionAttribute}` : optionAttribute;\n }\n\n options.push(option);\n });\n\n return options;\n }\n\n private getPeriodName(marketTabs: MarketTabInfo[], tabId: number | undefined): string | undefined {\n return marketTabs.find((oc) => oc.id === tabId)?.name;\n }\n\n private getPeriodGroup(marketTabs: MarketTabInfo[], tabId: number | undefined): number | undefined {\n return marketTabs.find((oc) => oc.id === tabId)?.sortOrder;\n }\n\n private getOptionColumnName(optionColumns: MarketTabInfo[], optionColumnId: number | undefined): string | undefined {\n return optionColumns.find((oc) => oc.id === optionColumnId)?.name;\n }\n\n private getOptionId(option: BetBuilderOption, sportcastId: number): number {\n return Math.abs(hashCode(option.globalIdLong || option.globalIdShort) + sportcastId);\n }\n\n private mapDisplayType(displayType: DisplayType): ExtendedDisplayType {\n switch (displayType) {\n case DisplayType.Standard:\n return ExtendedDisplayType.BetBuilderStandard;\n case DisplayType.SixPack:\n return ExtendedDisplayType.BetBuilderSixPack;\n case DisplayType.OverUnder:\n return ExtendedDisplayType.BetBuilderOverUnder;\n case DisplayType.CorrectScore:\n return ExtendedDisplayType.BetBuilderCorrectScore;\n case DisplayType.Spread:\n return ExtendedDisplayType.BetBuilderSpread;\n case DisplayType.RaceTo:\n return ExtendedDisplayType.BetBuilderRaceTo;\n case DisplayType.YesNo:\n return ExtendedDisplayType.BetBuilderYesNo;\n case DisplayType.GoalScorer:\n return ExtendedDisplayType.BetBuilderGoalScorer;\n case DisplayType.TeamPlayerProps:\n return ExtendedDisplayType.BetBuilderPlayerProps;\n default:\n return ExtendedDisplayType.BetBuilderStandard;\n }\n }\n\n private shouldOverrideSixPack(opt: BetBuilderOption): { [K in keyof ScorecastLongIdPrefixes]?: boolean } {\n const longId = opt.globalIdLong.toLowerCase();\n const longIdPrefixes = this.betBuilderConfig.scorecastLongIdPrefixes;\n\n const optionToOverride: { [K in keyof ScorecastLongIdPrefixes]?: boolean } = {};\n if (longIdPrefixes) {\n (Object.keys(longIdPrefixes) as (keyof ScorecastLongIdPrefixes)[]).find(\n (p) => (optionToOverride[p] = longId.startsWith(longIdPrefixes[p].toLowerCase())),\n );\n }\n\n return optionToOverride;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetBuilderView, OptionMarketsRequest } from '@cds/betting-offer/bet-builder';\nimport { MarketGroupConfig } from '@cds/betting-offer/grouping/bet-builder';\nimport { ExpiringCache, ExpiringCacheFactory } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { Observable, of, switchMap, tap } from 'rxjs';\n\nimport { BetBuilderApi } from '../../../cds/betbuilder-api.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MarketBuilderProvider {\n private cache: ExpiringCache;\n private cacheNull: any = { null: null };\n private readonly betBuilderGrouping = 'bet-builder-grouping';\n\n constructor(\n private betBuilderApi: BetBuilderApi,\n private expiringCacheFactory: ExpiringCacheFactory,\n private localStorage: LocalStoreService,\n ) {\n this.cache = this.expiringCacheFactory.create(600);\n }\n\n getMarketGroupConfig(sportId: number, groupingVersion?: string | 'any'): Observable {\n const key = `${this.betBuilderGrouping}-${sportId}`;\n\n return this.cache.get(key).pipe(\n switchMap((cacheConfiguration) => {\n if (this.isValidGroupingId(cacheConfiguration, groupingVersion)) {\n return of(cacheConfiguration);\n }\n\n return this.getMarketGroupConfigFromApi(sportId, key, groupingVersion);\n }),\n );\n }\n\n getMarketList(request: OptionMarketsRequest): Observable {\n return this.betBuilderApi.getSportcastMarkets(request);\n }\n\n private getMarketGroupConfigFromApi(sport: number, key: string, groupingVersion?: string) {\n return this.betBuilderApi.getMarketGroupConfig(sport).pipe(\n switchMap((grouping) => {\n if (this.isValidGroupingId(grouping, groupingVersion)) {\n return this.cache.create(key, of(grouping));\n }\n\n return of(grouping);\n }),\n tap((grouping) => {\n if (this.isValidGroupingId(grouping, groupingVersion)) {\n this.set(key, grouping);\n }\n }),\n );\n }\n\n private isValidGroupingId(groupingConfiguration: MarketGroupConfig | undefined, groupingVersion?: string): boolean {\n return !!(groupingConfiguration && (groupingVersion === 'any' || groupingVersion === groupingConfiguration.version));\n }\n\n private set(key: string, value: T | undefined | null): void {\n this.localStorage.set(key, value || this.cacheNull);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OptionMarketsRequest } from '@cds/betting-offer/bet-builder';\nimport { MarketGroupConfig } from '@cds/betting-offer/grouping/bet-builder';\nimport { BetBuilderConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Page } from '@frontend/vanilla/core';\nimport { sortBy } from 'lodash-es';\nimport { Observable, firstValueFrom, map } from 'rxjs';\n\nimport { BetBuilderViewModel } from './bet-builder-view-model';\nimport { MarketBuilderFactory } from './market-builder-factory';\nimport { MarketBuilderProvider } from './market-builder-provider.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MarketBuilderService {\n constructor(\n private betBuilderConfig: BetBuilderConfig,\n private factory: MarketBuilderFactory,\n private page: Page,\n private provider: MarketBuilderProvider,\n ) {}\n\n async getMarketGroupConfig(sportId: number, version?: string): Promise {\n const grouping = await firstValueFrom(this.provider.getMarketGroupConfig(sportId, version));\n\n if (!grouping) {\n throw new Error('Unable to load market grouping');\n }\n\n // entrypoint group should be first\n grouping.marketGroups = sortBy(grouping.marketGroups, (g) => !g.isEntryPoint);\n\n return grouping;\n }\n\n getMarketItems(\n sportId: number,\n sportcastId: number,\n leagueId: number,\n marketGroupId: string,\n fixtureId?: string,\n ): Observable> {\n const request: OptionMarketsRequest = {\n sportcastCulture: this.getSportcastCulture(),\n marketGroupId,\n sportcastRegion: this.getSportcastRegion(sportId, leagueId),\n sportId,\n sportcastFixtureId: sportcastId,\n fixtureId,\n };\n\n return this.provider.getMarketList(request).pipe(\n map(async (view) => {\n const config = await this.getMarketGroupConfig(request.sportId, view?.version);\n const marketGroup = config.marketGroups.find((mg) => mg.id === marketGroupId);\n if (!marketGroup) {\n throw new Error('Unable to find matching market group');\n }\n const optionGroups = this.factory.getOptionGroups(\n config,\n view?.betBuilderOptionMarkets || [],\n marketGroup,\n sportcastId,\n request.sportId,\n );\n const betbuilderView: BetBuilderViewModel = new BetBuilderViewModel();\n betbuilderView.fixture = view?.fixture;\n betbuilderView.eventOptionGroups = optionGroups;\n betbuilderView.availableMarketGroups = view?.availableMarketGroups;\n\n return betbuilderView;\n }),\n );\n }\n\n private getSportcastCulture(): string {\n return this.page.culture.startsWith('en') ? (this.betBuilderConfig.betGeniusWidgetLanguage ?? '') : this.page.culture;\n }\n\n private getSportcastRegion(sportId: number, leagueId: number): string {\n const none = '';\n const params = this.betBuilderConfig.betGeniusIframeUrlParameters;\n if (!params) {\n return none;\n }\n const regionConfig = params['region'];\n if (!regionConfig) {\n return none;\n }\n const takeRegionFromConfig =\n (!regionConfig.sportIds && !regionConfig.leagueIds) ||\n regionConfig.sportIds?.includes(sportId) ||\n regionConfig.leagueIds?.includes(leagueId);\n\n return takeRegionFromConfig ? regionConfig.value : none;\n }\n}\n","import { DomainEvent } from '@frontend/sports/common/core/utils/dispatcher';\n\nexport interface SubTab {\n id: string;\n name: string;\n}\nexport interface SubNavigationPayload {\n tabId: number;\n subTabs: SubTab[];\n}\n\nexport const EventNavigation = class {\n static SelectSubTab = new DomainEvent('EVENT_DETAILS_SELECT_SUB_TAB');\n static SetSubTabs = new DomainEvent('EVENT_DETAILS_SET_SUB_TABS');\n};\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BetBuilderConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LocalStoreService, SessionStoreService } from '@frontend/vanilla/core';\nimport { Observable, Subject, map, of } from 'rxjs';\n\nimport { EpcotConfigService } from '../../../common/epcot-config.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BetBuilderOnboardingMessageService {\n private STORAGE_KEY: string;\n private readonly SESSION_STORAGE_KEY = 'betBuilderOnboardingAngstromShown';\n private readonly START_VALUE = 0;\n private _sportsCastVisible$ = new Subject();\n private readonly isEpcotEnabled: boolean;\n private eventId: string;\n private isCurrentTabSportsCast: boolean;\n private eventSame: boolean;\n private shownForSameEvent: boolean;\n\n constructor(\n private localStoreService: LocalStoreService,\n private configuration: BetBuilderConfig,\n private epcotConfigService: EpcotConfigService,\n private sessionStoreService: SessionStoreService,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n shouldShow(sportId: number): boolean {\n return this.isEpcotEnabled && !this.isCounterFinished() && this.isWhitelistedSport(sportId);\n }\n\n incrementCounter(): void {\n this.tryMarkAsShown();\n\n if (this.eventSame && !this.isCurrentTabSportsCast) {\n return;\n }\n\n this.set(this.get() + 1);\n }\n\n isCounterFinished(): boolean {\n return this.get() > this.maxValue;\n }\n\n sportsCastVisible(value: boolean): void {\n this._sportsCastVisible$.next(value);\n }\n\n visible$(event: EventModel, isSportscastTab: boolean): Observable {\n this.STORAGE_KEY = isSportscastTab ? 'betBuilderOnboardingMessageCounter' : 'angstromOnboardingMessageCounter';\n this.isCurrentTabSportsCast = isSportscastTab;\n const visible = this.shouldShow(event.sport.id);\n this.eventSame = this.eventId === event.id;\n this.eventId = event.id;\n\n if (isSportscastTab) {\n return this._sportsCastVisible$.asObservable().pipe(map((x) => x && visible));\n }\n\n if (!this.eventSame) {\n this.shownForSameEvent = false;\n }\n\n const onboardingShown = this.sessionStoreService.get(this.SESSION_STORAGE_KEY);\n const sessionStoreValid = !onboardingShown || (this.eventSame && this.shownForSameEvent);\n\n return of(visible && !!event.betBuilderInfo?.betBuilderId && sessionStoreValid);\n }\n\n close(): void {\n if (!this.isCurrentTabSportsCast) {\n this.set(this.maxValue + 1);\n }\n }\n\n tryMarkAsShown(): void {\n if (!this.isCurrentTabSportsCast && !this.isCounterFinished()) {\n this.sessionStoreService.set(this.SESSION_STORAGE_KEY, true);\n this.shownForSameEvent = true;\n }\n }\n\n private isWhitelistedSport(sportId: number): boolean {\n if (this.configuration.onboardingMessageEnabledSports) {\n return this.configuration.onboardingMessageEnabledSports.includes(sportId);\n }\n\n return false;\n }\n\n private get(): number {\n return this.localStoreService.get(this.STORAGE_KEY) ?? this.START_VALUE;\n }\n\n private set(value: number): void {\n return this.localStoreService.set(this.STORAGE_KEY, value);\n }\n\n private get maxValue(): number {\n return this.configuration.onboardingMessageMaxAppearances ?? 3;\n }\n}\n","\n
\n \n {{ tab.name }}\n
\n \n
\n","import { NgFor } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\n\nimport { MarketTab } from '../bet-builder-event-model';\n\n@Component({\n selector: 'ms-market-list-header',\n templateUrl: './market-list-header.component.html',\n styleUrls: ['./market-list-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgFor, ScrollAdapterComponent],\n})\nexport class MarketListHeaderComponent implements OnInit, OnChanges {\n @Input() marketTabs: MarketTab[];\n @Output() tabClicked = new EventEmitter();\n\n selectedMarketTab: MarketTab;\n\n ngOnInit(): void {\n if (this.marketTabs?.length) {\n this.selectedMarketTab = this.marketTabs[0];\n }\n }\n\n ngOnChanges(): void {\n if (!this.marketTabs?.some((t) => t.id === this.selectedMarketTab?.id)) {\n this.selectedMarketTab = this.marketTabs[0];\n }\n }\n\n tabSelected($event: Event, tab: MarketTab): void {\n this.selectedMarketTab = tab;\n this.tabClicked.emit(tab.id);\n }\n\n trackItem(index: number, tab: MarketTab): string {\n return `${tab.id}${tab === this.selectedMarketTab}`;\n }\n}\n","\n\n @if (optionGroups) {\n \n\n @if (!optionGroups.length) {\n \n }\n }\n\n@if (inOverlay) {\n
\n @if (isQuickBetActive()) {\n \n }\n \n
\n}\n","import { NgIf } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n computed,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BetBuilderProvider } from '@cds/betting-offer/add-ons';\nimport { MarketGroupConfig } from '@cds/betting-offer/grouping/bet-builder';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel, EventOptionGroup, EventSitemapSet, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { AngstromTagIdValues } from '@frontend/sports/betting-offer/feature/types';\nimport { BetBuilderConfig, Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { DetailedEventSubscriptionService } from '@frontend/sports/event-subscription/feature/detailed-event-subscription';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { Store } from '@ngrx/store';\nimport { debounce, isEmpty } from 'lodash-es';\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar';\nimport { IBetslipRootState } from 'packages/sports/common/betslip/base/store/state';\nimport { selectIsQuickBetActive } from 'packages/sports/common/betslip/modules/quick-bet/quick-bet.selectors';\nimport { BetBuilderOverlayService } from 'packages/sports/web/app/src/event-details/bet-builder-v2/services/bet-builder-overlay.service';\nimport { PopupManager } from 'packages/sports/web/app/src/popup/popup-manager.service';\nimport { firstValueFrom } from 'rxjs';\n\nimport { BetBuilderConfigService } from '../../../betbuilder/services/betbuilder-config.service';\nimport { MarketBuilderService } from '../../../betbuilder/services/sportcast/market-builder.service';\nimport { SourceOfPick } from '../../../betslip-base/models/pick-models';\nimport { BetslipBarComponentBindings, BetslipDigitalComponentLoaderService } from '../../../betslip/betslip-digital-component-loader.service';\nimport { BottomNavActionsService } from '../../../bottom-nav/bottom-nav-actions.service';\nimport { ErrorComponent } from '../../../common/error/error.component';\nimport { ComponentProxy } from '../../../deferred/component-loader.service';\nimport { ComponentProxyDirective } from '../../../deferred/component-proxy.directive';\nimport { EventDetailsService } from '../../../event-details-common/event-details.service';\nimport { BottomOffsetService } from '../../../layout/bottom-offset.service';\nimport { OptionGroupListComponent } from '../../../option-group/option-group-list.component';\nimport { EventNavigation } from '../../event-details-dispatcher-events';\nimport { BetBuilderEventModel, MarketTab } from '../bet-builder-event-model';\nimport { BetBuilderTrackingValues, TrackBetBuilderSwitcherClick } from '../bet-builder-tracking';\nimport { BetBuilderOnboardingMessageService } from '../event-details-onboarding/bet-builder-onboarding-message.service';\nimport { MarketListHeaderComponent } from '../market-list-header/market-list-header.component';\n\n// scrollbar default bottom offset\nconst scrollBottomOffset = 50;\n@Component({\n selector: 'ms-betbuilder-market-list',\n templateUrl: './betbuilder-market-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgScrollbarModule, ErrorComponent, NgIf, ComponentProxyDirective, MarketListHeaderComponent, OptionGroupListComponent],\n})\nexport class BetbuilderMarketListComponent implements OnChanges, OnDestroy, OnInit {\n @HostBinding('class') className = 'ogp-bet-builder';\n @Input() eventData: EventModel | BetBuilderEventModel;\n @Input() source?: string;\n @ViewChild(NgScrollbar, { static: true }) scrollbarRef: NgScrollbar;\n @Input() isOverlay = false;\n quickBetComponent: ComponentProxy;\n betBarComponent: ComponentProxy;\n\n optionGroups: EventOptionGroup[];\n initialized: boolean;\n betBuilderTrackingValues = BetBuilderTrackingValues;\n event: EventModel;\n showOnboardingMessage = false;\n defaultExpandedMarketsCount: number;\n marketTabs: MarketTab[];\n availableMarketGroups: { [key: string]: number } | undefined;\n totalMarketGroupConfig: MarketGroupConfig;\n private subscription?: EventSubscription;\n private marketGroupId: string;\n private readonly destroyRef = inject(DestroyRef);\n\n readonly isQuickBetActive = this.store.selectSignal(selectIsQuickBetActive);\n protected bottomOffset = computed(() =>\n this.bottomOffsetService.bottomOffset() ? `${this.bottomOffsetService.bottomOffset() - scrollBottomOffset}` : '',\n );\n\n constructor(\n public sitecore: Sitecore,\n private marketListBuilderService: MarketBuilderService,\n private betBuilderConfigService: BetBuilderConfigService,\n private store: Store,\n private changeRef: ChangeDetectorRef,\n private tracker: TrackingService,\n private scrollContainer: ScrollContainerService,\n private dispatcher: DispatcherService,\n private fixtureFactory: FixtureFactory,\n private betBuilderConfig: BetBuilderConfig,\n private eventDetailsService: EventDetailsService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private eventSubscriptionService: DetailedEventSubscriptionService,\n @Optional() private onboardingMessageService: BetBuilderOnboardingMessageService,\n @Optional() betslipLoader: BetslipDigitalComponentLoaderService,\n private offerGroupingService: OfferGroupingService,\n private bottomNavActionsService: BottomNavActionsService,\n private bottomOffsetService: BottomOffsetService,\n private betBuilderOverlayService: BetBuilderOverlayService,\n private popupManager: PopupManager,\n ) {\n if (betslipLoader) {\n this.quickBetComponent = betslipLoader.getQuickBetComponent();\n this.betBarComponent = betslipLoader.getBetslipBarComponent();\n\n this.betBarComponent.subscribeToOutputs({\n barClick: () => this.toggleBetslip(),\n myBetsClick: () => this.bottomNavActionsService.myBetsToggled(),\n });\n }\n }\n\n async ngOnInit(): Promise {\n this.defaultExpandedMarketsCount = this.isOverlay\n ? this.betBuilderConfig.defaultSGPOverlayExpandedMarketsCount\n : this.betBuilderConfig.defaultSGPExpandedMarketsCount;\n\n if (!this.initialized) {\n await this.trySetEvent();\n this.getMarketGroupConfig();\n }\n\n this.dispatcher\n .on(EventNavigation.SelectSubTab)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((tabId) => {\n this.selectGroup(tabId);\n });\n\n this.tracker.track(trackingConstants.EVENT_CONTENT_VIEW, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: BetBuilderTrackingValues.BetBuilder,\n [trackingConstants.COMPONENT_LABEL_EVENT]: BetBuilderTrackingValues.BuildaBetPod,\n [trackingConstants.COMPONENT_ACTION_EVENT]: BetBuilderTrackingValues.Load,\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.source,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.eventData.name,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.eventData.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.eventData.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.eventData.league.id.toString(),\n });\n }\n\n async ngOnChanges(): Promise {\n await this.trySetEvent();\n this.getMarketGroupConfig();\n this.initialized = true;\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n\n selectGroup(marketGroupId: string, shouldCreateSubTabs?: boolean): void {\n if (this.sgpSet) {\n this.optionGroups = this.eventDetailsService.prepareEventOptionGroups({\n event: this.event,\n activeTab: marketGroupId,\n groupedSetsIds: this.sgpSet.groups,\n setTags: [marketGroupId],\n isSgp: true,\n });\n this.changeRef.markForCheck();\n } else {\n this.selectSportcastGroup(marketGroupId, shouldCreateSubTabs);\n }\n\n this.marketGroupId = marketGroupId;\n }\n\n private toggleBetslip() {\n if (this.popupManager.isPopupInStack('betslip')) {\n this.betBuilderOverlayService.close();\n } else {\n this.betBuilderOverlayService.dismissConfirmationScreen();\n this.popupManager.open('betslip');\n }\n }\n\n private selectSportcastGroup(marketGroupId: string, shouldCreateSubTabs?: boolean): void {\n if (!this.eventData.sportcastId) {\n this.optionGroups = [];\n\n return;\n }\n const fixtureId = this.event ? undefined : this.eventData.id;\n this.marketListBuilderService\n .getMarketItems(this.eventData.sport.id, this.eventData.sportcastId, this.eventData.league.id, marketGroupId, fixtureId)\n .subscribe(async (betBuilderViewModel) => {\n const betBuilderView = await betBuilderViewModel;\n this.availableMarketGroups = betBuilderView.availableMarketGroups;\n this.optionGroups = betBuilderView.eventOptionGroups;\n this.onboardingMessageService?.sportsCastVisible(!isEmpty(this.optionGroups) && this.isEmbeddedUi);\n\n if (shouldCreateSubTabs) {\n this.createSubTabs();\n }\n if (!this.event) {\n const fixture = betBuilderView.fixture;\n if (fixture) {\n this.event = this.fixtureFactory.create(fixture);\n }\n }\n\n this.changeRef.markForCheck();\n\n if (this.inOverlay) {\n this.scrollbarRef.scrollTo({\n top: 0,\n });\n } else {\n this.scrollContainer.scrollTo(0, 0);\n }\n });\n }\n\n get sourceOfPick(): SourceOfPick {\n if (this.source === BetBuilderTrackingValues.EventDetails) {\n return SourceOfPick.EmbeddedBetBuilder;\n }\n if (this.inOverlay && !(this.source === BetBuilderTrackingValues.EventDetails)) {\n return SourceOfPick.OverlayBetBuilder;\n }\n\n return SourceOfPick.Other;\n }\n\n get inOverlay(): boolean {\n return this.betBuilderConfigService.showEntainUiInOverlay(this.eventData.sport.id) && !this.isEmbeddedUi;\n }\n\n get isEmbeddedUi(): boolean {\n return this.betBuilderConfigService.showEmbeddedUi() && this.source === BetBuilderTrackingValues.EventDetails;\n }\n\n get sgpSet(): EventSitemapSet | undefined {\n const sgp = this.event?.sitemapSets?.find((set) => set.id === AngstromTagIdValues.Sgp);\n\n if (this.eventData.betBuilderInfo?.betBuilderId && sgp) {\n return sgp;\n }\n\n return;\n }\n\n private getMarketGroupConfig(): void {\n if (this.sgpSet) {\n this.marketTabs = this.sgpSet.children?.map((x) => ({ id: x.id.toString(), name: x.name })) || [];\n this.tryOrderTabs();\n this.selectGroup(this.marketTabs[0]?.id);\n this.subscription?.unsubscribe();\n this.subscription = this.eventSubscriptionService.subscribe([{ event: this.event, callback: debounce(this.eventChanged, 100) }]);\n\n return;\n }\n\n this.marketListBuilderService.getMarketGroupConfig(this.eventData.sport.id, 'any').then((config) => {\n this.totalMarketGroupConfig = config;\n if (this.totalMarketGroupConfig.marketGroups.length) {\n this.selectGroup(config.marketGroups[0].id, true);\n }\n });\n }\n\n private createSubTabs(): void {\n this.marketTabs =\n this.totalMarketGroupConfig.marketGroups\n .filter((a) => this.availableMarketGroups?.hasOwnProperty(a.id))\n .map((x) => ({ id: x.id, name: x.name })) || [];\n\n if (!this.inOverlay && this.marketTabs.length) {\n const tabsPayload = {\n tabId: SetTab.BetBuilder,\n subTabs: this.marketTabs,\n };\n\n this.dispatcher.dispatch(EventNavigation.SetSubTabs, tabsPayload);\n }\n }\n\n private tryOrderTabs(): void {\n const sgpOrder = this.sitecoreEventDetails.sitemapOrder\n ?.find((s) => s.key === `${this.event.sport.id}`)\n ?.children?.find((c) => c.key === AngstromTagIdValues.Sgp.toLowerCase())?.children;\n\n if (sgpOrder?.length) {\n this.marketTabs.sort((a, b) => {\n const indexA = sgpOrder.findIndex((o) => o.key.toLowerCase() === a.id.toLowerCase());\n const indexB = sgpOrder.findIndex((o) => o.key.toLowerCase() === b.id.toLowerCase());\n\n return indexA - indexB;\n });\n }\n }\n\n private async trySetEvent(): Promise {\n const sources = [BetBuilderTrackingValues.EventInfo, BetBuilderTrackingValues.BuildaBetButton, BetBuilderTrackingValues.EditPickButton];\n const shouldEnrichEvent =\n sources.includes(this.source as BetBuilderTrackingValues) &&\n !!this.eventData.betBuilderInfo?.betBuilderId &&\n this.eventData.betBuilderInfo?.betBuilderProvider !== BetBuilderProvider.Default;\n\n if (this.eventData instanceof EventModel && !shouldEnrichEvent) {\n this.event = this.eventData;\n\n return;\n }\n\n if (shouldEnrichEvent) {\n const groupingInfo = await firstValueFrom(this.offerGroupingService.getFixtureGrouping(this.eventData.sport.id, 'any'));\n const sgpGroupId = groupingInfo?.marketGroups.find((g) => g.tag?.key === AngstromTagIdValues.Sgp)?.groupId;\n if (!sgpGroupId) {\n this.optionGroups = [];\n this.changeRef.markForCheck();\n\n throw new Error('No SGP group found in the market group configuration.');\n }\n\n const [event] = await Promise.all([\n // getEvent is used as it provides us with the market tabs and the option groups we need in the overlay\n this.eventDetailsService.getEvent(this.eventData.id, false, undefined, sgpGroupId),\n firstValueFrom(this.sitecoreEventDetails.whenReady),\n ]);\n if (event && !this.event) {\n this.event = event;\n }\n }\n }\n\n private eventChanged = (event: EventModel) => {\n this.event = event;\n this.marketTabs = this.sgpSet?.children?.map((x) => ({ id: x.id.toString(), name: x.name })) || [];\n if (!this.marketTabs.some((t) => t.id === this.marketGroupId)) {\n this.marketGroupId = this.marketTabs[0]?.id;\n }\n\n if (!this.marketGroupId) {\n this.optionGroups = [];\n this.changeRef.markForCheck();\n\n return;\n }\n\n this.selectGroup(this.marketGroupId);\n };\n\n tabClickedEventHandler(marketGroupId: string) {\n this.selectGroup(marketGroupId);\n this.trackSwitcherClickEvent(marketGroupId);\n }\n\n private trackSwitcherClickEvent(marketGroupId: string) {\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.OverlaySubNaviagtion,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.eventData.name,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.marketTabs.find((x) => x.id === marketGroupId)?.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.SPORT_ID]: this.eventData.sport.id.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.eventData.league.id.toString(),\n } as TrackBetBuilderSwitcherClick);\n }\n}\n"],"names":["BetBuilderViewModel","MarketBuilderFactory","constructor","detailedGroupingFactory","loggerFactory","sitecore","betBuilderConfig","_a","_b","logger","getLogger","raceText","betBuilderEntainUI","children","racetotext","messages","getOptionGroups","config","betBuilderOptionMarkets","marketGroup","sportcastId","sportId","optionGroups","forEach","sportcastMarket","optionGroup","EventOptionGroup","detailed","detailedGrouping","marketGroupItem","marketGroupItems","find","mgi","id","marketGroupItemId","warning","label","labelId","optionGrouping","marketSet","name","marketOrder","findIndex","marketHelpPath","helpPath","marketTabId","optionColumnId","displayType","mapDisplayType","marketGroupId","periodGroup","getPeriodGroup","marketTabs","toString","type","EventOptionGroupType","Regular","hidden","winning","online","options","mapOptions","periodName","getPeriodName","isMultipleSelection","push","groupMarkets","opt","index","option","EventOption","getOptionId","value","longId","globalIdLong","optionGroupId","shortId","globalIdShort","order","optionColumnName","getOptionColumnName","optionColumns","description","includes","parameters","length","marketAttribute","overUnderParam","Math","abs","hashCode","optionAttribute","overridenName","overUnder","spread","matchWinner","shouldOverrideSixPack","optionValueSplit","trim","split","pop","totalsPrefix","eventGrid","SixPack_TotalsOver","SixPack_TotalsUnder","join","tabId","oc","sortOrder","ExtendedDisplayType","BetBuilderStandard","BetBuilderSixPack","BetBuilderOverUnder","BetBuilderCorrectScore","BetBuilderSpread","BetBuilderRaceTo","BetBuilderYesNo","BetBuilderGoalScorer","BetBuilderPlayerProps","toLowerCase","longIdPrefixes","scorecastLongIdPrefixes","optionToOverride","Object","keys","p","startsWith","ɵɵinject","DetailedGroupingFactory","LoggerFactory","Sitecore","BetBuilderConfig","factory","ɵfac","providedIn","_MarketBuilderFactory","MarketBuilderProvider","betBuilderApi","expiringCacheFactory","localStorage","cacheNull","null","betBuilderGrouping","cache","create","getMarketGroupConfig","groupingVersion","key","get","pipe","switchMap","cacheConfiguration","isValidGroupingId","of","getMarketGroupConfigFromApi","getMarketList","request","getSportcastMarkets","sport","grouping","tap","set","groupingConfiguration","version","BetBuilderApi","ExpiringCacheFactory","LocalStoreService","_MarketBuilderProvider","MarketBuilderService","page","provider","__async","firstValueFrom","Error","marketGroups","sortBy","g","isEntryPoint","getMarketItems","leagueId","fixtureId","sportcastCulture","getSportcastCulture","sportcastRegion","getSportcastRegion","sportcastFixtureId","map","view","mg","betbuilderView","fixture","eventOptionGroups","availableMarketGroups","culture","betGeniusWidgetLanguage","none","params","betGeniusIframeUrlParameters","regionConfig","sportIds","leagueIds","Page","O","_MarketBuilderService","EventNavigation","SelectSubTab","DomainEvent","SetSubTabs","BetBuilderOnboardingMessageService","localStoreService","configuration","epcotConfigService","sessionStoreService","SESSION_STORAGE_KEY","START_VALUE","_sportsCastVisible$","Subject","isEpcotEnabled","isEnabled","shouldShow","isCounterFinished","isWhitelistedSport","incrementCounter","tryMarkAsShown","eventSame","isCurrentTabSportsCast","maxValue","sportsCastVisible","next","visible$","event","isSportscastTab","STORAGE_KEY","visible","eventId","asObservable","x","shownForSameEvent","sessionStoreValid","betBuilderInfo","betBuilderId","close","onboardingMessageEnabledSports","onboardingMessageMaxAppearances","EpcotConfigService","SessionStoreService","_BetBuilderOnboardingMessageService","ɵɵelementStart","ɵɵlistener","$event","tab_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","tabSelected","ɵɵtext","ɵɵelementEnd","T","ɵɵclassProp","selectedMarketTab","ɵɵadvance","ɵɵtextInterpolate","MarketListHeaderComponent","tabClicked","EventEmitter","ngOnInit","ngOnChanges","some","t","tab","emit","trackItem","$","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","MarketListHeaderComponent_div_2_Template","ɵɵproperty","NgFor","ScrollAdapterComponent","styles","changeDetection","_MarketListHeaderComponent","ctx_r1","tabClickedEventHandler","ɵɵelement","NoBettingOffer","BetbuilderMarketListComponent_Conditional_2_Conditional_1_Template","ɵɵstyleProp","bottomOffset","sourceOfPick","inOverlay","betBuilderTrackingValues","BetBuilder","defaultExpandedMarketsCount","ɵɵconditional","ɵɵelementContainer","BetbuilderMarketListComponent_Conditional_3_Conditional_1_ng_container_0_Template","quickBetComponent","BetbuilderMarketListComponent_Conditional_3_Conditional_1_Template","BetbuilderMarketListComponent_Conditional_3_ng_container_2_Template","isQuickBetActive","betBarComponent","scrollBottomOffset","BetbuilderMarketListComponent","marketListBuilderService","betBuilderConfigService","store","changeRef","tracker","scrollContainer","dispatcher","fixtureFactory","eventDetailsService","sitecoreEventDetails","eventSubscriptionService","onboardingMessageService","betslipLoader","offerGroupingService","bottomNavActionsService","bottomOffsetService","betBuilderOverlayService","popupManager","className","isOverlay","BetBuilderTrackingValues","showOnboardingMessage","destroyRef","inject","DestroyRef","selectSignal","selectIsQuickBetActive","computed","eventChanged","_c","sgpSet","markForCheck","selectGroup","getQuickBetComponent","getBetslipBarComponent","subscribeToOutputs","barClick","toggleBetslip","myBetsClick","myBetsToggled","defaultSGPOverlayExpandedMarketsCount","defaultSGPExpandedMarketsCount","initialized","trySetEvent","on","takeUntilDestroyed","subscribe","track","trackingConstants","EVENT_CONTENT_VIEW","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","BuildaBetPod","COMPONENT_ACTION_EVENT","Load","COMPONENT_POSITION_EVENT","source","COMPONENT_LOCATION_EVENT","eventData","COMPONENT_EVENT_DETAILS","COMPONENT_URL_CLICKED","NOT_APPLICABLE","SPORT_ID","SPORT_LEAGUE_ID","league","ngOnDestroy","subscription","unsubscribe","shouldCreateSubTabs","prepareEventOptionGroups","activeTab","groupedSetsIds","groups","setTags","isSgp","selectSportcastGroup","isPopupInStack","dismissConfirmationScreen","open","undefined","betBuilderViewModel","betBuilderView","isEmpty","isEmbeddedUi","createSubTabs","scrollbarRef","scrollTo","top","EventDetails","SourceOfPick","EmbeddedBetBuilder","OverlayBetBuilder","Other","showEntainUiInOverlay","showEmbeddedUi","sgp","sitemapSets","AngstromTagIdValues","Sgp","tryOrderTabs","callback","debounce","then","totalMarketGroupConfig","filter","a","hasOwnProperty","tabsPayload","SetTab","subTabs","dispatch","_d","sgpOrder","sitemapOrder","s","c","sort","b","indexA","o","indexB","shouldEnrichEvent","EventInfo","BuildaBetButton","EditPickButton","betBuilderProvider","EventModel","groupingInfo","getFixtureGrouping","sgpGroupId","tag","groupId","Promise","all","getEvent","whenReady","trackSwitcherClickEvent","EVENT_TRACKING","Click","OverlaySubNaviagtion","ɵɵdirectiveInject","BetBuilderConfigService","Store","ChangeDetectorRef","TrackingService","ScrollContainerService","DispatcherService","FixtureFactory","EventDetailsService","SitecoreEventDetailsConfig","DetailedEventSubscriptionService","BetslipDigitalComponentLoaderService","OfferGroupingService","BottomNavActionsService","BottomOffsetService","BetBuilderOverlayService","PopupManager","viewQuery","NgScrollbar","Ee","ye","ɵɵclassMap","BetbuilderMarketListComponent_ms_market_list_header_0_Template","BetbuilderMarketListComponent_Conditional_2_Template","BetbuilderMarketListComponent_Conditional_3_Template","NgScrollbarModule","ErrorComponent","NgIf","ComponentProxyDirective","OptionGroupListComponent","encapsulation","_BetbuilderMarketListComponent"],"mappings":"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"}