{"version":3,"file":"chunk-pc14162v.js","sources":["packages/sports/web/app/src/cds/showcase-api.service.ts","packages/sports/web/app/src/showcase/showcase.model.ts","packages/sports/web/app/src/showcase/showcase-fixture-mapper.service.ts","packages/sports/web/app/src/showcase/showcase.service.ts","packages/sports/web/app/src/showcase/showcase-request-builder.service.ts","packages/sports/web/app/src/showcase/event-load.service.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-manager.service.ts","packages/sports/web/app/src/showcase/showcase.tracking.service.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-item.component.html","packages/sports/web/app/src/showcase/live-alert/live-alert-item.component.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-list.component.html","packages/sports/web/app/src/showcase/live-alert/live-alert-list.component.ts","packages/sports/web/app/src/showcase/option-group/showcase-option-group.component.html","packages/sports/web/app/src/showcase/option-group/showcase-option-group.component.ts","packages/sports/web/app/src/showcase/option-group/option-group-container.component.html","packages/sports/web/app/src/showcase/option-group/option-group-container.component.ts","packages/sports/web/app/src/showcase/showcase-media/showcase-media.component.html","packages/sports/web/app/src/showcase/showcase-media/showcase-media.component.ts","packages/sports/web/app/src/showcase/event-switcher/showcase-scoreboard.component.html","packages/sports/web/app/src/showcase/event-switcher/showcase-scoreboard.component.ts","packages/sports/web/app/src/showcase/event-switcher/showcase-tab-bar.component.html","packages/sports/web/app/src/showcase/event-switcher/showcase-tab-bar.component.ts","packages/sports/web/app/src/showcase/showcase.component.html","packages/sports/web/app/src/showcase/showcase.component.ts","packages/sports/web/app/src/showcase/showcase.module.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\n\nimport { ShowcaseData } from '@cds/betting-offer/domain-specific/showcase';\nimport { ShowcaseRequest } from '@cds/query-objects';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowcaseApi {\n private cdsApi: BaseCdsApi;\n\n constructor(@Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/showcase' });\n }\n\n getShowcaseData(request: ShowcaseRequest): Observable {\n return this.cdsApi.post(`/fixtures`, request);\n }\n}\n","import { EventModel, EventOptionGroup, EventParticipant } from '@frontend/sports/betting-offer/feature/model';\n\nexport interface LiveAlertMessage {\n eventId: string;\n sportId: number;\n team: string;\n event: string;\n order: number;\n messageType?: LiveAlertMessageType[];\n team1Score?: number;\n team2Score?: number;\n text: string;\n}\n\nexport class ShowcaseConstants {\n static TIMEDELAY = 4000;\n static ANIMATIONTIME = 1100;\n}\n\nexport class LiveAlertMessageType {\n message: string;\n isHighlighted: boolean;\n}\n\nexport class ShowcaseEventModel {\n active?: boolean;\n event: EventModel;\n gridGroup?: { [key: string]: string };\n}\n\nexport interface ShowcaseModuleSitecoreItem {\n title: string;\n showOnHomeLobby: boolean;\n showOnSportsLobby: boolean;\n showOnCompetitionLobby: boolean;\n fixtureGroup: ShowcaseFixtureGroup[];\n showSpecialContents: boolean;\n contentSourceId: number;\n}\n\nexport interface ShowcaseFixtureGroup {\n fixtureId?: string;\n sportId: number;\n competitionId: number;\n gridGroup: { [key: string]: string };\n regionId: number;\n}\n\nexport enum Lobby {\n Home = 'Home',\n Sports = 'Sports',\n Competition = 'Competition',\n}\n\nexport enum ViewType {\n SixPack,\n Default,\n}\n\nexport interface ShowcaseModuleData {\n title: string;\n events: ShowcaseEventModel[];\n showSpecialContents: boolean;\n}\n\nexport interface OptionGroupDetail {\n name?: string;\n optionGroup: EventOptionGroup | undefined;\n optionNames: string[];\n}\n\nexport interface IShowcaseRequest {\n fixturesGroup: ShowcaseFixtureGroup[];\n requestId: number;\n}\n\nexport interface IShowcaseRequestInfo {\n request: IShowcaseRequest[];\n sitecoreData: ShowcaseModuleSitecoreItem[];\n}\n\nexport interface LobbySpecificRequest {\n lobby: Lobby;\n sportId?: number;\n competitionId?: number | number[];\n regionId?: number;\n}\n\nexport enum FootballMessageIds {\n Goal = 255,\n RedCard = 254,\n Penalty = 249,\n PenaltyScored = 244,\n PenaltyMissed = 243,\n Corner = 252,\n Custom = 9999,\n}\n\nexport enum AmericanFootballMessageIds {\n TouchDown = 251,\n TwoPointConversion = 249,\n OnePointConversion = 248,\n Safety = 252,\n FieldGoal = 253,\n Quarter = 1,\n Custom = 9999,\n}\n\nexport enum BasketballMessageIds {\n Messages = 1,\n}\n\nexport enum BaseballMessageIds {\n TotalRuns = 255,\n OneHomeRun = 254,\n TwoHomeRuns = 252,\n ThreeHomeRuns = 251,\n FourHomeRuns = 250,\n Messages = 1,\n Custom = 9999,\n}\n\nexport enum IceHockeyMessageIds {\n Goal = 255,\n Messages = 1,\n PenaltyScored = 245,\n PenaltyMissed = 244,\n Custom = 9999,\n}\n\nexport enum BasketBallPeriodIds {\n Notstarted = 0,\n Firstquarter = 1,\n FirstQuarterIntermission = 2,\n SecondQuarter = 3,\n SecondQuarterIntermission = 4,\n ThirdQuarter = 5,\n ThirdQuarterIntermission = 6,\n FourthQuarter = 7,\n FourthQuarterIntermission = 8,\n RegularTimeOver = 9,\n Overtime = 10,\n OvertimeIntermission = 11,\n End = 255,\n}\n\nexport enum TouchDownInfo {\n TouchDownPointer = 6,\n}\n\nexport enum CustomMessage {\n CustomMessageType = 9999,\n}\n\nexport class LiveAlertEvent {\n participant1Score: number;\n participant2Score: number;\n currentlyServing?: number;\n period: { id?: number | undefined; name: string };\n eventId: string;\n sportId: number;\n team1Name: string;\n team2Name: string;\n time: string;\n constructor(\n participant1Score: number,\n participant2Score: number,\n eventId: string,\n sportId: number,\n participants: EventParticipant[],\n period: { id?: number | undefined; name: string },\n time?: string,\n currentlyServing?: number,\n ) {\n this.participant1Score = participant1Score;\n this.participant2Score = participant2Score;\n this.currentlyServing = currentlyServing;\n this.period = period;\n this.eventId = eventId;\n this.sportId = sportId;\n if (time) {\n this.time = time;\n }\n if (participants && participants.length === 2) {\n this.team1Name = participants[0].shortName || participants[0].name;\n this.team2Name = participants[1].shortName || participants[1].name;\n }\n }\n}\n\nexport enum FeatureTab {\n Scoreboard = 1,\n Video = 2,\n Simulation = 3,\n Statistics = 4,\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { ShowcaseFixtureData } from '@cds/betting-offer/domain-specific/showcase';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\n\nimport { ShowcaseEventModel, ShowcaseFixtureGroup, ShowcaseModuleData, ShowcaseModuleSitecoreItem } from './showcase.model';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowcaseFixtureMapperService {\n constructor(private fixtureFactory: FixtureFactory) {}\n\n mapShowcaseFixtures(fixtures: ShowcaseFixtureData[], showcaseModuleItem: ShowcaseModuleSitecoreItem[]): ShowcaseModuleData {\n if (!(fixtures && fixtures.length)) {\n return {};\n }\n\n const key = fixtures.map((f) => f.requestId)[0];\n const fixtureGroup = fixtures.filter((f) => f.requestId === key);\n\n const sitecoreShowcaseModuleItem = showcaseModuleItem.find((v) => v.contentSourceId === +key);\n\n let showcaseModuleTabEvents = fixtureGroup.map((fg) => this.eventModelWithOptionGroup(fg.fixture, sitecoreShowcaseModuleItem!));\n showcaseModuleTabEvents = showcaseModuleTabEvents.filter((item) => item.event.participants.length === 2);\n\n if (showcaseModuleTabEvents?.length) {\n showcaseModuleTabEvents[0].active = true;\n }\n\n return {\n title: sitecoreShowcaseModuleItem!.title,\n events: showcaseModuleTabEvents,\n showSpecialContents: sitecoreShowcaseModuleItem!.showSpecialContents,\n };\n }\n\n private eventModelWithOptionGroup(fixture: Fixture, sitecoreShowcaseModuleItem: ShowcaseModuleSitecoreItem): ShowcaseEventModel {\n const eventModel = this.fixtureFactory.create(fixture);\n\n return {\n gridGroup: this.getGridGroupId(sitecoreShowcaseModuleItem.fixtureGroup, fixture.sport.id),\n event: eventModel,\n };\n }\n\n private getGridGroupId(fixtureGroups: ShowcaseFixtureGroup[], sportId: number): { [key: string]: string } | undefined {\n const fixtureGroup = fixtureGroups.find((g) => g.sportId === sportId);\n\n return fixtureGroup?.gridGroup;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ShowcaseFixtureData } from '@cds/betting-offer/domain-specific/showcase';\nimport { EventModel, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { ShowcaseConfig } from '@frontend/sports/common/client-config-data-access';\nimport { assign } from 'lodash-es';\nimport { Observable, Subject } from 'rxjs';\n\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { CrmPromotionMapperService } from '../crm-promotion-container/crm-promotion-mapper.service';\nimport { ShowcaseFixtureMapperService } from './showcase-fixture-mapper.service';\nimport {\n IShowcaseRequestInfo,\n Lobby,\n LobbySpecificRequest,\n ShowcaseFixtureGroup,\n ShowcaseModuleData,\n ShowcaseModuleSitecoreItem,\n} from './showcase.model';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowcaseService {\n private selectSubject = new Subject();\n private selectAlertSubject = new Subject();\n private backgroundImage: Record = {};\n\n readonly selectedEvent: Observable = this.selectSubject.asObservable();\n readonly selectedAlertEvent = this.selectAlertSubject.asObservable();\n crmPromotions: Promotion[] = [];\n optionGroups: EventOptionGroup[] = [];\n eventSelectedFromTabBar = false;\n\n constructor(\n public config: ShowcaseConfig,\n private crmPromotionMapper: CrmPromotionMapperService,\n private showcaseFixtureMapperService: ShowcaseFixtureMapperService,\n ) {\n this.config.backgrounds.map((image) => {\n assign(this.backgroundImage, { [image.id]: image.imageSrc });\n });\n }\n\n getLobbySpecificData(data: LobbySpecificRequest): IShowcaseRequestInfo {\n const sitecoreData = this.filterData(data.lobby);\n\n return this.filterFixtureGroup(sitecoreData, data);\n }\n\n getLobbySpecificMappedData(data: LobbySpecificRequest, fixtures: ShowcaseFixtureData[]): ShowcaseModuleData {\n const sitecoreData = this.filterData(data.lobby);\n const showcaseModule = this.filterFixtureGroup(sitecoreData, data);\n\n return this.showcaseFixtureMapperService.mapShowcaseFixtures(fixtures, showcaseModule.sitecoreData);\n }\n\n select(eventId: string): void {\n this.selectSubject.next(eventId);\n }\n\n selectAlert(): void {\n this.selectAlertSubject.next();\n }\n\n promotionChanged(model: Promotion[], event: EventModel): Promotion[] {\n if (!event || model.length === 0) {\n return [];\n }\n this.crmPromotions = this.crmPromotionMapper.getPromotionsForEvent(event, model);\n\n return this.crmPromotionMapper.getBannerPromotions(this.optionGroups, event, this.crmPromotions);\n }\n\n getBackgroundImageUrl(sportId: number): string {\n return this.backgroundImage[sportId];\n }\n\n getGridGroupIds(gridGroup: { [key: string]: string }): string[] {\n return Object.keys(gridGroup);\n }\n\n setParticipantsShirtColor(eventModel: EventModel): void {\n if (eventModel.scoreboard && eventModel.participants && eventModel.participants.length === 2) {\n const homeTeamColor = eventModel.scoreboard.colors ? eventModel.scoreboard.colors[0] : undefined;\n const awayTeamColor = eventModel.scoreboard.colors ? eventModel.scoreboard.colors[1] : undefined;\n if (eventModel.participants) {\n eventModel.participants[0].shirtColor = homeTeamColor;\n eventModel.participants[1].shirtColor = awayTeamColor;\n }\n }\n }\n\n private filterFixtureGroup = (showcaseModuleItem: ShowcaseModuleSitecoreItem[], data: LobbySpecificRequest): IShowcaseRequestInfo => {\n const showcaseFixturesGroup = showcaseModuleItem.map((showcaseItem) => {\n return {\n fixturesGroup: this.getLobbySpecificFixtures(showcaseItem.fixtureGroup, data),\n requestId: showcaseItem.contentSourceId,\n };\n });\n\n return { request: showcaseFixturesGroup, sitecoreData: showcaseModuleItem };\n };\n\n private getLobbySpecificFixtures(fixtureGroup: ShowcaseFixtureGroup[], data: LobbySpecificRequest): ShowcaseFixtureGroup[] {\n switch (data.lobby) {\n case Lobby.Home:\n return fixtureGroup;\n case Lobby.Sports:\n return fixtureGroup.filter((f) => data.sportId && data.sportId > 0 && f.sportId === data.sportId);\n case Lobby.Competition:\n return fixtureGroup.filter((f) => f.regionId && f.regionId > 0 && f.regionId === data.regionId && f.sportId === data.sportId);\n default:\n return [];\n }\n }\n\n private filterData(lobby: Lobby): ShowcaseModuleSitecoreItem[] {\n return this.config.items.filter((item) => {\n if (lobby === Lobby.Home) {\n return item.showOnHomeLobby;\n } else if (lobby === Lobby.Sports) {\n return item.showOnSportsLobby;\n } else {\n return item.showOnCompetitionLobby;\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureState, OfferMapping, ScoreboardMode, ShowcaseRequest } from '@cds/query-objects';\nimport { ShowcaseConfig } from '@frontend/sports/common/client-config-data-access';\nimport { flatten } from 'lodash-es';\n\nimport { IShowcaseRequest, Lobby, LobbySpecificRequest } from './showcase.model';\nimport { ShowcaseService } from './showcase.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ShowcaseRequestBuilderService {\n constructor(\n private showcaseService: ShowcaseService,\n private showcaseConfig: ShowcaseConfig,\n ) {}\n\n getRequestPayload(data: LobbySpecificRequest): ShowcaseRequest {\n if (this.showcaseConfig.isShowcaseModuleEnabled) {\n const showcaseData = this.showcaseService.getLobbySpecificData(data);\n\n return this.buildRequestForLobby(showcaseData.request, data.lobby);\n }\n\n return { queries: [], getOnlyFirstAvailableOffer: false };\n }\n\n private buildRequestForLobby(showcaseData: IShowcaseRequest[], lobby: Lobby): ShowcaseRequest {\n return {\n queries: flatten(\n showcaseData.map((m) =>\n m.fixturesGroup.map((tab) => {\n return {\n fixtureIds: tab.fixtureId,\n gridGroupIds: this.showcaseService.getGridGroupIds(tab.gridGroup).join(','),\n requestId: m.requestId + '',\n scoreboardMode: ScoreboardMode.Full,\n offerMapping: OfferMapping.Filtered,\n state: FixtureState.Latest,\n };\n }),\n ),\n ),\n getOnlyFirstAvailableOffer: lobby !== Lobby.Competition,\n };\n }\n\n buildRequestForOptionGroup(fixtureId: string, groupIds: string[]): ShowcaseRequest {\n return {\n queries: [\n {\n fixtureIds: fixtureId,\n gridGroupIds: groupIds.join(','),\n requestId: '',\n offerMapping: OfferMapping.Filtered,\n state: FixtureState.Latest,\n },\n ],\n getOnlyFirstAvailableOffer: true,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { Observable, map, of } from 'rxjs';\n\nimport { ShowcaseApi } from '../cds/showcase-api.service';\nimport { ShowcaseRequestBuilderService } from './showcase-request-builder.service';\nimport { ShowcaseEventModel } from './showcase.model';\n\n@Injectable()\nexport class EventLoadService {\n constructor(\n private requestBuilderService: ShowcaseRequestBuilderService,\n private showcaseApi: ShowcaseApi,\n private fixtureFactory: FixtureFactory,\n ) {}\n\n getFullFixture(\n activeTabModel: ShowcaseEventModel,\n groupIds: string[],\n ): Observable<{\n event: EventModel;\n isUpdatedEvent: boolean;\n }> {\n const event = activeTabModel.event;\n if (!event.optionGroups.length && !event.scoreboard?.isFinished) {\n return this.getShowcaseData(event.id, groupIds).pipe(\n map((eventData) => ({\n event: eventData.event || event,\n isUpdatedEvent: eventData.isUpdatedEvent,\n })),\n );\n }\n\n return of({ event, isUpdatedEvent: false });\n }\n\n private getShowcaseData(\n fixtureId: string,\n groupIds: string[],\n ): Observable<{\n event: EventModel | undefined;\n isUpdatedEvent: boolean;\n }> {\n const request = this.requestBuilderService.buildRequestForOptionGroup(fixtureId, groupIds);\n\n return this.showcaseApi.getShowcaseData(request).pipe(\n map((response) => {\n const fixture = response?.fixtures[0]?.fixture;\n let event: EventModel | undefined;\n if (fixture && (fixture.optionMarkets || fixture.games)) {\n event = this.fixtureFactory.create(fixture);\n }\n\n return { event, isUpdatedEvent: true };\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureViewType } from '@cds/betting-offer';\nimport {\n EventModel,\n EventScoreboard,\n Message,\n PairGameScore,\n PeriodGameScore,\n ScoreboardType,\n SetGameScore,\n TeamType,\n} from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport {\n AmericanFootballPeriodInfo,\n AmericanFootballQuarters,\n FootballPeriodInfo,\n IceHockeyPeriodInfo,\n IceHockeyPeriods,\n SportConstant,\n} from '@frontend/sports/common/core/data-access/constants';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { differenceBy, isEmpty, padStart } from 'lodash-es';\nimport { Observable, Subject } from 'rxjs';\n\nimport {\n AmericanFootballMessageIds,\n BaseballMessageIds,\n BasketBallPeriodIds,\n BasketballMessageIds,\n CustomMessage,\n FootballMessageIds,\n IceHockeyMessageIds,\n LiveAlertEvent,\n LiveAlertMessage,\n LiveAlertMessageType,\n TouchDownInfo,\n} from '../showcase.model';\n\n@Injectable()\nexport class LiveAlertManager {\n queuedAlerts: LiveAlertMessage[] = [];\n alerts: LiveAlertMessage[] = [];\n private newAlertSubject = new Subject();\n private emptyAlertsSubject = new Subject>();\n private endOfQuarterOrPeriodId = 1;\n private viewType: string;\n private matchType: number;\n constructor(private sitecore: Sitecore) {}\n\n private triggerNotification(newAlert: LiveAlertMessage): void {\n this.queuedAlerts.push(newAlert);\n this.newAlertSubject.next(newAlert);\n }\n\n get newAlert(): Observable {\n return this.newAlertSubject.asObservable();\n }\n\n get alertsEmptied(): Observable> {\n return this.emptyAlertsSubject.asObservable();\n }\n\n private parseMessage(message: Message, updatedEvent: LiveAlertEvent, oldEvent: LiveAlertEvent, teamName: string): LiveAlertMessage | undefined {\n const eventId = updatedEvent.eventId;\n const sportId = updatedEvent.sportId;\n const eventTime = updatedEvent.time || updatedEvent.period.name;\n const time = message.type === CustomMessage.CustomMessageType || !message.time ? `(${eventTime || ''})` : `(${message.time})`;\n\n if (!message) {\n return;\n }\n\n if (this.isDuplicateAlert(eventId, message)) {\n return;\n }\n\n const isTeam1Message = message.teamType === TeamType.Team01;\n const isTeam2Message = message.teamType === TeamType.Team02;\n\n let parsedAlert: LiveAlertMessage | undefined = {\n eventId,\n sportId,\n team: teamName,\n event: '',\n order: message.order,\n team1Score: updatedEvent.participant1Score,\n team2Score: updatedEvent.participant2Score,\n text: message.text,\n };\n switch (sportId) {\n case SportConstant.Soccer:\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, false, false, false, time);\n switch (message.type) {\n case FootballMessageIds.Goal:\n if (updatedEvent.period && updatedEvent.period.id === FootballPeriodInfo.PenaltyShootout) {\n parsedAlert = undefined;\n break;\n }\n parsedAlert.event = this.sitecore.showcaseMessages.Goal;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case FootballMessageIds.Penalty:\n parsedAlert.event = this.sitecore.showcaseMessages.Penalty;\n break;\n case FootballMessageIds.PenaltyScored:\n parsedAlert.event = this.sitecore.showcaseMessages.PenaltyScored;\n break;\n case FootballMessageIds.PenaltyMissed:\n parsedAlert.event = this.sitecore.showcaseMessages.PenaltyMissed;\n break;\n case FootballMessageIds.RedCard:\n parsedAlert.event = this.sitecore.showcaseMessages.RedCard;\n break;\n case FootballMessageIds.Custom:\n this.handleCustomMessages(updatedEvent, oldEvent, parsedAlert, message);\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case SportConstant.Basketball:\n switch (message.type) {\n case BasketballMessageIds.Messages:\n switch (updatedEvent.period.id) {\n case BasketBallPeriodIds.FirstQuarterIntermission:\n parsedAlert.event =\n this.matchType === 2 ? this.sitecore.showcaseMessages.EndOfQ1 : this.sitecore.showcaseMessages.EndOf1H;\n break;\n\n case BasketBallPeriodIds.SecondQuarterIntermission:\n parsedAlert.event =\n this.matchType === 2 ? this.sitecore.showcaseMessages.EndOfQ2 : this.sitecore.showcaseMessages.EndOf2H;\n break;\n\n case BasketBallPeriodIds.ThirdQuarterIntermission:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfQ3;\n break;\n\n case BasketBallPeriodIds.FourthQuarterIntermission:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfQ4;\n break;\n\n case BasketBallPeriodIds.Overtime:\n parsedAlert.event = this.sitecore.showcaseMessages.OTStart;\n break;\n\n case BasketBallPeriodIds.End:\n parsedAlert.event = this.sitecore.showcaseMessages.MatchFinished;\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case SportConstant.AmericanFootball:\n switch (message.type) {\n case AmericanFootballMessageIds.TouchDown:\n parsedAlert.event = this.sitecore.showcaseMessages.TouchDown;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case AmericanFootballMessageIds.TwoPointConversion:\n parsedAlert.event = this.sitecore.showcaseMessages.PtConversion.replace('{val}', '2');\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case AmericanFootballMessageIds.OnePointConversion:\n parsedAlert.event = this.sitecore.showcaseMessages.PtConversion.replace('{val}', '1');\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case AmericanFootballMessageIds.Safety:\n parsedAlert.event = this.sitecore.showcaseMessages.Safety;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case AmericanFootballMessageIds.FieldGoal:\n parsedAlert.event = this.sitecore.showcaseMessages.FieldGoal;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case AmericanFootballMessageIds.Quarter:\n switch (updatedEvent.period.id) {\n case AmericanFootballPeriodInfo.IntermissionQ1:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfQ1;\n break;\n case AmericanFootballPeriodInfo.IntermissionQ2:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfQ2;\n break;\n case AmericanFootballPeriodInfo.IntermissionQ3:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfQ3;\n break;\n case AmericanFootballQuarters.Overtime:\n parsedAlert.event = this.sitecore.showcaseMessages.OTStart;\n break;\n case AmericanFootballPeriodInfo.Finished:\n parsedAlert.event = this.sitecore.showcaseMessages.MatchFinished;\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case AmericanFootballMessageIds.Custom:\n const isCancelledTouchDown =\n oldEvent.participant1Score - updatedEvent.participant1Score === TouchDownInfo.TouchDownPointer ||\n oldEvent.participant2Score - updatedEvent.participant2Score === TouchDownInfo.TouchDownPointer;\n if (isCancelledTouchDown) {\n this.handleCustomMessages(updatedEvent, oldEvent, parsedAlert, message, isCancelledTouchDown);\n } else {\n parsedAlert = undefined;\n }\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case SportConstant.Icehockey:\n switch (message.type) {\n case IceHockeyMessageIds.Goal:\n if (updatedEvent.period && updatedEvent.period.id === IceHockeyPeriodInfo.PenaltyShootout) {\n parsedAlert = undefined;\n break;\n }\n parsedAlert.event = this.sitecore.showcaseMessages.Goal;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, isTeam1Message, isTeam2Message, true, time);\n break;\n case IceHockeyMessageIds.PenaltyScored:\n parsedAlert.event = this.sitecore.showcaseMessages.PenaltyScored;\n break;\n case IceHockeyMessageIds.PenaltyMissed:\n parsedAlert.event = this.sitecore.showcaseMessages.PenaltyMissed;\n break;\n case IceHockeyMessageIds.Messages:\n switch (updatedEvent.period.id) {\n case IceHockeyPeriodInfo.IntermissionPeriod1:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfP1;\n break;\n case IceHockeyPeriodInfo.IntermissionPeriod2:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfP2;\n break;\n case IceHockeyPeriodInfo.RegularTimeOver:\n parsedAlert.event = this.sitecore.showcaseMessages.EndOfP3;\n break;\n case IceHockeyPeriods.Overtime:\n parsedAlert.event = this.sitecore.showcaseMessages.OTStart;\n break;\n case IceHockeyPeriodInfo.Finished:\n parsedAlert.event = this.sitecore.showcaseMessages.MatchFinished;\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case IceHockeyMessageIds.Custom:\n this.handleCustomMessages(updatedEvent, oldEvent, parsedAlert, message);\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n case SportConstant.Baseball:\n switch (message.type) {\n case BaseballMessageIds.Custom:\n if (!updatedEvent || !oldEvent) {\n parsedAlert = undefined;\n } else {\n if (updatedEvent.currentlyServing !== oldEvent.currentlyServing) {\n parsedAlert.team = updatedEvent.currentlyServing === 2 ? updatedEvent.team2Name : updatedEvent.team1Name;\n parsedAlert.event = this.sitecore.showcaseMessages.BattingSwitch;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, false, false, false);\n } else if (\n updatedEvent.participant1Score !== oldEvent.participant1Score ||\n updatedEvent.participant2Score !== oldEvent.participant2Score\n ) {\n parsedAlert.event = this.sitecore.showcaseMessages.RunsScored;\n if (updatedEvent.participant1Score > oldEvent.participant1Score) {\n parsedAlert.team = updatedEvent.team1Name;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, true, false, true);\n } else if (updatedEvent.participant2Score > oldEvent.participant2Score) {\n parsedAlert.team = updatedEvent.team2Name;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, false, true, true);\n } else {\n parsedAlert = undefined;\n }\n } else {\n parsedAlert = undefined;\n }\n }\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n break;\n default:\n parsedAlert = undefined;\n break;\n }\n\n if (parsedAlert && (parsedAlert.team || message.type === this.endOfQuarterOrPeriodId)) {\n if (message.type === this.endOfQuarterOrPeriodId) {\n parsedAlert = this.getParsedAlert(updatedEvent, parsedAlert);\n }\n this.triggerNotification(parsedAlert);\n }\n\n return;\n }\n\n private getParsedAlert(updatedEvent: LiveAlertEvent, parsedAlert: LiveAlertMessage): LiveAlertMessage {\n let subMessages: LiveAlertMessageType[] = [];\n if (updatedEvent.participant1Score !== updatedEvent.participant2Score) {\n const upScore = Math.abs(updatedEvent.participant1Score - updatedEvent.participant2Score);\n const upScoreTeam = updatedEvent.participant1Score > updatedEvent.participant2Score ? updatedEvent.team1Name : updatedEvent.team2Name;\n parsedAlert.team = upScoreTeam;\n const isMatchDecided = this.checkMatchDecided(updatedEvent);\n const resultMessage = isMatchDecided ? this.sitecore.showcaseMessages.WinBy : this.sitecore.showcaseMessages.UpBy;\n subMessages = [{ message: `${resultMessage} ${upScore}`, isHighlighted: false }];\n parsedAlert.messageType = subMessages;\n } else {\n parsedAlert.team = this.sitecore.showcaseMessages.Tie;\n const isEuropeanFixture = this.viewType === FixtureViewType.European;\n\n subMessages = isEuropeanFixture\n ? [{ message: `${updatedEvent.team1Name} - ${updatedEvent.team2Name}`, isHighlighted: false }]\n : [{ message: `${updatedEvent.team1Name} @ ${updatedEvent.team2Name}`, isHighlighted: false }];\n parsedAlert.messageType = subMessages;\n }\n\n return parsedAlert;\n }\n\n private checkMatchDecided(updatedEvent: LiveAlertEvent): boolean {\n return (\n ((updatedEvent.period.id === BasketBallPeriodIds.RegularTimeOver || updatedEvent.period.id === BasketBallPeriodIds.End) &&\n updatedEvent.sportId === SportConstant.Basketball) ||\n ((updatedEvent.period.id === IceHockeyPeriodInfo.RegularTimeOver || updatedEvent.period.id === IceHockeyPeriodInfo.Finished) &&\n updatedEvent.sportId === SportConstant.Icehockey) ||\n ((updatedEvent.period.id === AmericanFootballPeriodInfo.RegularTimeOver ||\n updatedEvent.period.id === AmericanFootballPeriodInfo.Finished) &&\n updatedEvent.sportId === SportConstant.AmericanFootball)\n );\n }\n\n private handleCustomMessages(\n updatedEvent: LiveAlertEvent,\n oldEvent: LiveAlertEvent,\n parsedAlert: LiveAlertMessage | undefined,\n message: Message,\n isCancelledTouchDown?: boolean,\n ): void {\n const eventTime = updatedEvent.time || updatedEvent.period.name;\n const time = message.type === CustomMessage.CustomMessageType || !message.time ? `(${eventTime || ''})` : `(${message.time})`;\n if (updatedEvent && oldEvent && parsedAlert) {\n parsedAlert.event = isCancelledTouchDown\n ? this.sitecore.showcaseMessages.CancelledTouchDown\n : this.sitecore.showcaseMessages.CancelledGoal;\n if (updatedEvent.participant1Score < oldEvent.participant1Score) {\n parsedAlert.team = updatedEvent.team1Name;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, true, false, true, time);\n } else if (updatedEvent.participant2Score < oldEvent.participant2Score) {\n parsedAlert.team = updatedEvent.team2Name;\n parsedAlert.messageType = this.getLiveAlertMessageTypes(updatedEvent, false, true, true, time);\n } else {\n parsedAlert = undefined;\n }\n }\n }\n\n private getLiveAlertMessageTypes(\n updatedEvent: LiveAlertEvent,\n team1Highlight: boolean,\n team2Highlight: boolean,\n withParticipantScore?: boolean,\n time?: string,\n ): LiveAlertMessageType[] {\n let subMessages: LiveAlertMessageType[] = [];\n const timeValue = time || '';\n switch (updatedEvent.sportId) {\n case SportConstant.Baseball:\n subMessages = [{ message: updatedEvent.period.name, isHighlighted: false }];\n if (withParticipantScore) {\n subMessages = [\n { message: `${updatedEvent.participant1Score}`, isHighlighted: team1Highlight },\n { message: `- ${updatedEvent.participant2Score}`, isHighlighted: team2Highlight },\n { message: updatedEvent.period.name, isHighlighted: false },\n ];\n }\n break;\n case SportConstant.Soccer:\n case SportConstant.AmericanFootball:\n case SportConstant.Icehockey:\n subMessages = [{ message: timeValue, isHighlighted: false }];\n if (withParticipantScore) {\n subMessages = [\n { message: `${updatedEvent.participant1Score}`, isHighlighted: team1Highlight },\n { message: `- ${updatedEvent.participant2Score}`, isHighlighted: team2Highlight },\n { message: timeValue, isHighlighted: false },\n ];\n }\n break;\n default:\n break;\n }\n\n return subMessages;\n }\n\n private getLatestMessages(updatedEvent: EventModel, oldEvent: EventModel): Message[] | undefined {\n let messages: Message[] | undefined;\n if (\n oldEvent.scoreboard.messages &&\n updatedEvent.scoreboard.messages &&\n updatedEvent.scoreboard.messages.length > 0 &&\n oldEvent.scoreboard.messages.length < updatedEvent.scoreboard.messages.length\n ) {\n messages = differenceBy(updatedEvent.scoreboard.messages, oldEvent.scoreboard.messages, (m) => m.order);\n }\n\n return messages;\n }\n\n private checkChangesInScoreOrTurn(messages: Message[] | undefined, latestLiveEvent: LiveAlertEvent, oldLiveEvent: LiveAlertEvent): boolean {\n return (\n (isEmpty(messages) || latestLiveEvent.sportId === SportConstant.Baseball) &&\n (latestLiveEvent.participant1Score !== oldLiveEvent.participant1Score ||\n latestLiveEvent.participant2Score !== oldLiveEvent.participant2Score ||\n (latestLiveEvent.currentlyServing !== undefined &&\n oldLiveEvent.currentlyServing !== undefined &&\n latestLiveEvent.currentlyServing !== oldLiveEvent.currentlyServing))\n );\n }\n\n add(updatedEvent: EventModel, oldEvent: EventModel): void {\n let messages = this.getLatestMessages(updatedEvent, oldEvent);\n this.viewType = updatedEvent.viewType;\n if (updatedEvent.sport.id === SportConstant.Basketball) {\n this.matchType = (updatedEvent.scoreboard.score as PeriodGameScore).matchType;\n }\n\n const updatedEventLatestAlert = this.getParticipantScores(updatedEvent);\n const oldEventLatestAlert = this.getParticipantScores(oldEvent);\n\n if (\n !updatedEventLatestAlert ||\n !oldEventLatestAlert ||\n Boolean(\n updatedEventLatestAlert.period &&\n (updatedEventLatestAlert.period.id === 255 || updatedEventLatestAlert.period.id === 256) &&\n updatedEvent.scoreboard.type !== ScoreboardType.PeriodGame,\n )\n ) {\n return;\n }\n\n if (this.checkChangesInScoreOrTurn(messages, updatedEventLatestAlert, oldEventLatestAlert)) {\n const messageOrder = Math.floor(Math.random() * 0x1000);\n messages = [\n {\n type: CustomMessage.CustomMessageType,\n order: messageOrder,\n time: '',\n text: 'custom' + messageOrder,\n icon: null,\n },\n ]; // creating custom message\n }\n\n messages &&\n messages.forEach((message) => {\n const teamName = this.getTeamName(message, updatedEvent);\n this.parseMessage(message, updatedEventLatestAlert, oldEventLatestAlert, teamName);\n });\n }\n\n emptyList(): void {\n this.queuedAlerts = [];\n this.alerts = [];\n this.emptyAlertsSubject.next(this.alerts);\n }\n\n private getTeamName(message: Message, updatedEvent: EventModel): string {\n switch (message.teamType) {\n case TeamType.Team01:\n case TeamType.Team02:\n return updatedEvent.participants[message.teamType].shortName || updatedEvent.participants[message.teamType].name || '';\n default:\n return '';\n }\n }\n\n private getTime(scoreboard: EventScoreboard): string {\n if (!scoreboard.timer) {\n return '';\n }\n const base = new Date(scoreboard.timer.base).getTime();\n const now = DateProviderService.now();\n\n const timeSpan = scoreboard.timer.seconds + Math.round((now - base) / 1000);\n\n const minutes = Math.floor(timeSpan / 60);\n const seconds = timeSpan % 60;\n\n return `${this.pad(minutes)}:${this.pad(seconds)}`;\n }\n\n private pad(val: number): string {\n return padStart(val.toString(), 2, '0');\n }\n\n private getParticipantScores(event: EventModel): LiveAlertEvent | undefined {\n let liveAlert: LiveAlertEvent | undefined;\n const period = event.scoreboard.period ? event.scoreboard.period : { id: -1, name: '' };\n if (event.scoreboard.started) {\n switch (event.scoreboard.type) {\n case ScoreboardType.PeriodGame:\n const periodGameScore = event.scoreboard.getScore();\n if (periodGameScore) {\n liveAlert = new LiveAlertEvent(\n periodGameScore.participant1.total,\n periodGameScore.participant2.total,\n event.id,\n event.sport.id,\n event.participants,\n period,\n event.scoreboard.time,\n periodGameScore.turn,\n );\n }\n break;\n case ScoreboardType.PairGame:\n const pairGameScore = event.scoreboard.getScore();\n if (pairGameScore) {\n liveAlert = new LiveAlertEvent(\n pairGameScore.participant1,\n pairGameScore.participant2,\n event.id,\n event.sport.id,\n event.participants,\n period,\n this.getTime(event.scoreboard),\n pairGameScore.currentlyServing,\n );\n }\n break;\n case ScoreboardType.SetGame:\n const setGameScore = event.scoreboard.getScore();\n if (setGameScore) {\n liveAlert = new LiveAlertEvent(\n setGameScore.participant1WonSets,\n setGameScore.participant2WonSets,\n event.id,\n event.sport.id,\n event.participants,\n period,\n event.scoreboard.time,\n setGameScore.currentlyServing,\n );\n }\n break;\n case ScoreboardType.BaseballGame:\n const setGameScoreboard = event.scoreboard.getScore();\n if (setGameScoreboard) {\n liveAlert = new LiveAlertEvent(\n Number(setGameScoreboard.participant1.points),\n Number(setGameScoreboard.participant2.points),\n event.id,\n event.sport.id,\n event.participants,\n period,\n event.scoreboard.time,\n setGameScoreboard.currentlyServing,\n );\n }\n break;\n }\n }\n\n return liveAlert;\n }\n\n private isDuplicateAlert(eventId: string, message: Message): boolean {\n const duplicateAlert = (alert: LiveAlertMessage) =>\n alert.eventId === eventId &&\n (alert.order === message.order || (alert.text === message.text && message.type === this.endOfQuarterOrPeriodId));\n\n return this.alerts.some(duplicateAlert) || this.queuedAlerts.some(duplicateAlert);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { isNil } from 'lodash-es';\n\nimport { FeatureTab, LiveAlertMessage } from './showcase.model';\nimport { TrackShowcase } from './showcase.tracking.model';\n\n@Injectable()\nexport class ShowcaseTrackingService {\n private actionEventByMediaTabs = {\n [EventDetailsColumnType.Stats]: 'stats tab',\n [EventDetailsColumnType.Animation]: 'animation tab',\n [EventDetailsColumnType.Video]: 'video tab',\n };\n\n private actionEventByHeaderNavTabs: Record = {\n [FeatureTab.Statistics]: 'stats tab',\n [FeatureTab.Simulation]: 'animation tab',\n [FeatureTab.Video]: 'video tab',\n [FeatureTab.Scoreboard]: '',\n };\n\n constructor(private trackingService: TrackingService) {}\n trackTabsInteractionForMedia(eventActiveId: EventDetailsColumnType, event: EventModel): void {\n this.trackTabsInteraction(event, this.actionEventByMediaTabs[eventActiveId]);\n }\n\n trackTabsInteractionForHeader(eventActiveId: FeatureTab, event: EventModel): void {\n this.trackTabsInteraction(event, this.actionEventByHeaderNavTabs[eventActiveId]);\n }\n\n trackEventPageClick(event: EventModel, index: number): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Module Interactions',\n actionEvent: 'click',\n positionEvent: event.name,\n locationEvent: NOT_APPLICABLE,\n eventDetails: 'showcase event',\n sportId: event.sport.id,\n eventId: event.id,\n position: index,\n });\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackHeaderExpandOrCollapseClick(event: EventModel, collapse: boolean): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Module Interactions',\n actionEvent: 'click',\n positionEvent: event.name,\n locationEvent: NOT_APPLICABLE,\n eventDetails: collapse ? 'collapse' : 'expand',\n sportId: event.sport.id,\n eventId: event.id,\n });\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackEventSwitcherEventClick(event: EventModel, index: number): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Event Switcher',\n actionEvent: 'click',\n positionEvent: event.name,\n locationEvent: NOT_APPLICABLE,\n eventDetails: 'Event Switcher',\n sportId: event.sport.id,\n eventId: event.id,\n position: index,\n });\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackGameAlertsEventRedirecting(alertMessage: LiveAlertMessage): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Game Alerts',\n actionEvent: 'click',\n positionEvent: alertMessage.event,\n locationEvent: NOT_APPLICABLE,\n eventDetails: 'Game Alerts',\n sportId: alertMessage.sportId,\n eventId: alertMessage.eventId,\n });\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackExpandGameAlerts(expanded: boolean): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Game Alerts',\n actionEvent: 'click',\n positionEvent: NOT_APPLICABLE,\n locationEvent: NOT_APPLICABLE,\n eventDetails: expanded ? 'expand' : 'collapse',\n });\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n private getTrackData(data: {\n labelEvent: string;\n actionEvent: string;\n positionEvent: string;\n locationEvent: string;\n eventDetails: string;\n sportId?: number;\n eventId?: string;\n position?: number;\n }): Partial {\n const trackingData: Partial = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Showcase Module',\n [trackingConstants.COMPONENT_LABEL_EVENT]: data.labelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: data.actionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: data.positionEvent,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: data.locationEvent,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: data.eventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n\n if (!isNil(data.sportId)) {\n trackingData[trackingConstants.SPORT_ID] = data.sportId.toString();\n }\n\n if (!isNil(data.eventId)) {\n trackingData[trackingConstants.SPORT_EVENT_ID] = data.eventId;\n }\n\n if (!isNil(data.position)) {\n //@ts-ignore allow dynamic accessor property\n trackingData[trackingConstants.COMPONENT_CONTENT_POSITION] = data.position.toString();\n }\n\n return trackingData;\n }\n\n private trackTabsInteraction(event: EventModel, tabTracking: string): void {\n const trackingData = this.getTrackData({\n labelEvent: 'Module Interactions',\n actionEvent: 'click',\n positionEvent: event.name,\n locationEvent: NOT_APPLICABLE,\n eventDetails: tabTracking,\n sportId: event.sport.id,\n eventId: event.id,\n });\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n}\n","
\n
\n {{ alert.event }} {{ alert.team }}\n
\n
\n \n {{ messageInfo.message }} \n \n
\n
\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { LiveAlertMessage } from '../showcase.model';\nimport { ShowcaseService } from '../showcase.service';\nimport { ShowcaseTrackingService } from '../showcase.tracking.service';\n\n@Component({\n selector: 'ms-live-alert-item',\n templateUrl: 'live-alert-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LiveAlertItemComponent {\n @Input() alert: LiveAlertMessage;\n @HostBinding('class') className = 'alert-message';\n constructor(\n private showcaseService: ShowcaseService,\n private showcaseTrackingService: ShowcaseTrackingService,\n ) {}\n\n goto(liveAlertMessage: LiveAlertMessage, event: Event): void {\n this.showcaseService.eventSelectedFromTabBar = false;\n event.stopPropagation();\n this.showcaseService.select(liveAlertMessage.eventId);\n this.showcaseService.selectAlert();\n this.showcaseTrackingService.trackGameAlertsEventRedirecting(liveAlertMessage);\n }\n}\n","
\n @if (animationAlert) {\n \n }\n
\n@if (lastAlert) {\n
\n \n @if (hasAlertsForExpand) {\n \n \n \n }\n
\n}\n@if (expanded && hasAlertsForExpand) {\n \n @for (alert of alerts | slice: 1; track alert.eventId) {\n \n }\n \n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, OnChanges, OnDestroy, ViewChild } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { isEmpty } from 'lodash-es';\nimport { NgScrollbar } from 'ngx-scrollbar';\n\nimport { LiveAlertMessage, ShowcaseConstants } from '../showcase.model';\nimport { ShowcaseTrackingService } from '../showcase.tracking.service';\nimport { LiveAlertManager } from './live-alert-manager.service';\n\n@Component({\n selector: 'ms-live-alert-list',\n templateUrl: 'live-alert-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LiveAlertListComponent implements OnChanges, OnDestroy {\n animationAlert: LiveAlertMessage;\n lastAlert: LiveAlertMessage | undefined;\n expanded: boolean;\n animate = false;\n alerts: LiveAlertMessage[] = [];\n private startInterval = false;\n @ViewChild(NgScrollbar) alertList: NgScrollbar;\n @HostBinding('class') className = 'alert-message-list';\n @HostBinding('class.alerts-multiple') hasAlertsForExpand = false;\n @HostBinding('class.alerts-none') noAlerts = true;\n private alertsInterval?: () => void;\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private timerService: TimerService,\n private showcaseTrackingService: ShowcaseTrackingService,\n private liveAlertManager: LiveAlertManager,\n ) {\n this.setHasAlertsForExpand();\n this.liveAlertManager.alertsEmptied.pipe(takeUntilDestroyed()).subscribe(() => this.setHasAlertsForExpand());\n this.liveAlertManager.newAlert.pipe(takeUntilDestroyed()).subscribe((newAlert) => {\n if (newAlert && !this.liveAlertManager.alerts.some((alert) => alert.eventId === newAlert.eventId && alert.order === newAlert.order)) {\n this.processNewAlert(newAlert);\n } else {\n this.animate = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.stopInterval();\n }\n\n private stopInterval = () => {\n if (this.alertsInterval) {\n this.startInterval = false;\n this.alertsInterval();\n }\n };\n\n private displayNewAlert(newAlert: LiveAlertMessage | undefined): void {\n if (newAlert) {\n this.animate = true;\n this.animationAlert = newAlert;\n this.changeDetector.markForCheck();\n this.timerService.setTimeout(() => {\n this.animate = false;\n this.liveAlertManager.alerts.unshift(newAlert);\n this.liveAlertManager.queuedAlerts.shift();\n this.setHasAlertsForExpand();\n if (!this.liveAlertManager.queuedAlerts.length) {\n this.stopInterval();\n } else if (!this.startInterval && this.liveAlertManager.queuedAlerts.length) {\n this.createInterval();\n }\n }, ShowcaseConstants.ANIMATIONTIME);\n }\n }\n\n private createInterval(): void {\n this.startInterval = true;\n this.alertsInterval = this.timerService.setInterval(() => {\n this.displayNewAlert(this.liveAlertManager.queuedAlerts[0]);\n }, ShowcaseConstants.TIMEDELAY);\n }\n\n private processNewAlert(newAlert: LiveAlertMessage): void {\n if (!this.animate && !this.startInterval) {\n this.displayNewAlert(newAlert);\n } else if (!this.startInterval && this.liveAlertManager.queuedAlerts.length) {\n this.createInterval();\n } else if (!this.liveAlertManager.queuedAlerts.length) {\n this.stopInterval();\n }\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (this.alertList) {\n this.alertList.update();\n }\n }\n\n toggleExpand(event: Event): void {\n if (!this.hasAlertsForExpand) {\n return;\n }\n\n this.expanded = !this.expanded;\n this.showcaseTrackingService.trackExpandGameAlerts(this.expanded);\n event.stopPropagation();\n }\n\n setHasAlertsForExpand(): void {\n this.alerts = this.liveAlertManager.alerts;\n this.lastAlert = undefined;\n this.noAlerts = true;\n this.hasAlertsForExpand = false;\n if (!isEmpty(this.alerts)) {\n this.noAlerts = false;\n this.lastAlert = this.alerts[0];\n this.hasAlertsForExpand = this.alerts.length > 1;\n }\n this.changeDetector.markForCheck();\n }\n}\n","@if (model?.name && optionGroup?.options) {\n
{{ model.name }}
\n}\n
\n @for (option of optionGroup?.options; track option.id; let index = $index) {\n \n @if (!optionGroup.online || !option.online) {\n \n } @else {\n @if ((optionGroup.balanced && (optionGroup.categoryAttribute || option.optionAttribute)) || viewType === viewTypeEnum.Default) {\n
\n {{ getResultName(option, index) }}\n
\n }\n \n \n
\n }\n \n }\n\n","import { ChangeDetectionStrategy, Component, HostBinding, HostListener, Input, OnChanges, inject } from '@angular/core';\n\nimport { EventModel, EventOption, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { EpcotConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingSource } from '@frontend/sports/tracking/feature';\n\nimport { OptionGroupDetail, ViewType } from '../showcase.model';\n\n@Component({\n selector: 'ms-showcase-option-group',\n templateUrl: 'showcase-option-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShowcaseOptionGroupComponent implements OnChanges {\n viewTypeEnum = ViewType;\n @Input() event: EventModel;\n @Input() model: OptionGroupDetail;\n @Input() tracking: TrackingSource;\n @Input() viewType: ViewType;\n\n optionGroup: EventOptionGroup;\n optionTracking: string;\n\n @HostBinding('class') className = 'option-group';\n\n @HostListener('click', ['$event'])\n onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n epcotEnabled = inject(EpcotConfig).isEnabled;\n\n constructor(private sitecore: Sitecore) {}\n\n ngOnChanges(): void {\n this.optionGroup = this.model.optionGroup!;\n this.optionTracking = [this.tracking, 'showcase_trackingsource']\n .filter((segment) => segment)\n .join('/')\n .toLowerCase();\n }\n\n getResultName = (option: EventOption, index: number): string | undefined => {\n if (this.optionGroup.categoryAttribute) {\n const first = this.optionGroup.options.indexOf(option) === 0;\n const prefix = first ? this.sitecore.eventGrid.SixPack_TotalsOver : this.sitecore.eventGrid.SixPack_TotalsUnder;\n\n return `${prefix} ${this.optionGroup.categoryAttribute}`;\n } else {\n return this.viewType === ViewType.SixPack ? option.optionAttribute : option.overridenName || this.optionName(index);\n }\n };\n\n private optionName = (index: number): string => {\n return this.model.optionNames[index] || '';\n };\n}\n","\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { GridViewGroupingConfiguration } from '@cds/betting-offer/grouping/grid-view';\nimport { EventModel, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { ShowcaseConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TrackingSource } from '@frontend/sports/tracking/feature';\nimport { includes, isEmpty, keyBy, mapValues, zipObject } from 'lodash-es';\n\nimport { OptionGroupService } from '../../event-model/helpers/option-group.service';\nimport { OptionGroupDetail, ViewType } from '../showcase.model';\nimport { ShowcaseService } from '../showcase.service';\n\n@Component({\n selector: 'ms-option-group-container',\n templateUrl: 'option-group-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionGroupContainerComponent implements OnChanges {\n @Input() event: EventModel;\n @Input() tracking: TrackingSource;\n @Input() gridGroup?: { [key: string]: string };\n @Input() groupingConfig?: GridViewGroupingConfiguration;\n\n viewType: ViewType;\n\n @HostBinding()\n get class(): string {\n return this.getHostClass();\n }\n\n private readonly MAX_OPTION_GROUPS = 3;\n showcaseOptionGroups: OptionGroupDetail[];\n\n constructor(\n private optionGroupService: OptionGroupService,\n private showcaseService: ShowcaseService,\n private showcaseConfig: ShowcaseConfig,\n ) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.event) {\n this.viewType = includes(this.showcaseConfig.sixPackSportTypeIds, this.event.sport.id) ? ViewType.SixPack : ViewType.Default;\n this.mapOptionGroup();\n }\n }\n\n trackOptionGroup(index: number, optionGroup: OptionGroupDetail): string | number {\n return optionGroup.optionGroup?.gridGroups ? optionGroup.optionGroup.gridGroups.join(',') : index;\n }\n\n private mapOptionGroup(): void {\n if (isEmpty(this.gridGroup)) {\n this.showcaseOptionGroups = [];\n\n return;\n }\n const groupIds = this.showcaseService.getGridGroupIds(this.gridGroup);\n let mappedGroups: MappedGroup = {};\n\n if (this.viewType === ViewType.Default && this.groupingConfig?.groups.length) {\n const matchingGroups = keyBy(\n this.groupingConfig.groups.filter((g) => includes(groupIds, g.id)),\n (g) => g.id,\n );\n mappedGroups = mapValues(matchingGroups, (group) => ({ title: group.name, optionNames: group.optionNames }));\n } else if (this.viewType === ViewType.SixPack && this.groupingConfig?.sixPackGroups.length) {\n const matchingGroup = this.groupingConfig.sixPackGroups.filter((g) => this.hasMatchingGroupId(g.marketGroupIds, groupIds));\n if (matchingGroup.length) {\n const group = matchingGroup[0];\n const matchedGroup = zipObject(group.marketGroupIds, group.optionNames);\n mappedGroups = mapValues(matchedGroup, (value) => ({ title: value, optionNames: [] }));\n }\n }\n\n this.setOptionGroup(groupIds, mappedGroups);\n }\n\n private hasMatchingGroupId(marketGroupIds: string[], groupIds: string[]): boolean {\n return marketGroupIds.filter((mid) => includes(groupIds, mid)).length === groupIds.length;\n }\n\n private setOptionGroup(groupIds: string[], mappedGroups: MappedGroup): void {\n const optionGroups = groupIds.map((groupId) => {\n return {\n name:\n this.showcaseConfig.nextGoalMarketGroupId === groupId\n ? this.event.optionGroups.find((og) => og.gridGroups && og.gridGroups.some((g) => g === groupId))?.name\n : mappedGroups[groupId]?.title || '',\n optionGroup: this.getOptionGroup(this.event.optionGroups, groupId),\n optionNames: mappedGroups[groupId]?.optionNames || [],\n };\n });\n\n this.showcaseOptionGroups = optionGroups.filter((v) => v.optionGroup).slice(0, this.MAX_OPTION_GROUPS);\n }\n\n private getOptionGroup(eventOptionGroup: EventOptionGroup[], id: string): EventOptionGroup | undefined {\n return this.optionGroupService.get(eventOptionGroup, id);\n }\n\n private getHostClass(): string {\n return this.viewType === ViewType.SixPack ? 'six-pack-market-view' : 'default-market-view';\n }\n}\n\nexport interface MappedGroup {\n [groupId: string]: {\n title: string;\n optionNames: string[];\n };\n}\n","@if (showHeaderContent) {\n @if (tabs.length > 1) {\n \n @for (tab of tabs; track $index) {\n \n \n \n \n \n }\n \n }\n} @else {\n
\n
\n @if (hasStats) {\n
\n \n
\n }\n
\n
\n
\n
\n @if (hasAnimation) {\n
\n \n
\n }\n
\n
\n
\n
\n @if (hasVideo) {\n
\n \n
\n }\n
\n
\n}\n","import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventMediaHelperService } from '@frontend/sports/betting-offer/feature/media';\nimport { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { getAnimationIconForSport, getStatsIcon, getVideoIcon } from '@frontend/sports/common/core/feature/icon';\nimport { ThemeOptionsWithDefault } from '@frontend/sports/common/ui/shared';\nimport { GridMedia } from '@frontend/sports/grid/core/feature/model';\nimport { MediaEventSource } from '@frontend/sports/grid/media/feature/model';\nimport { MediaApiService } from '@frontend/sports/grid/media/feature/state';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\n\nimport { BetRadarStatisticsService } from '../../bet-radar/bet-radar-statistics.service';\nimport { HeaderNavigationService } from '../../event-details-common/header-navigation/header-navigation.service';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { ShowcaseService } from '../showcase.service';\nimport { ShowcaseTrackingService } from '../showcase.tracking.service';\n\n@Component({\n selector: 'ms-showcase-media',\n templateUrl: 'showcase-media.component.html',\n styleUrls: ['./showcase-media.component.scss'],\n})\nexport class ShowcaseMediaComponent implements OnChanges {\n private eventState = new Map();\n hasStats: boolean;\n hasVideo: boolean;\n hasAnimation: boolean;\n tabs: TabBarItem[];\n feature: TabBarItem;\n event: EventModel;\n media: GridMedia;\n mediaType = EventDetailsColumnType;\n stats: string;\n video: string;\n animation: string;\n isShowcaseModule: boolean;\n currentEventId = 'eventId';\n\n @HostBinding()\n get class(): string {\n const firstClass = this.getHostFirstClass();\n\n return [firstClass].join(' ');\n }\n\n readonly segmentedControlThemeInverse: ThemeOptionsWithDefault = {\n 'bwin-dark': false,\n 'giocodigitale': false,\n 'premium-dark': false,\n 'sports-interaction': false,\n 'sportingbet-2': false,\n 'mgm-4': false,\n 'default': true,\n };\n\n @Input() showHeaderContent: boolean;\n @Input() tabSelectedEvent: EventModel;\n @Output() videoPinToggle = new EventEmitter();\n @Output() featureChange = new EventEmitter();\n @Output() heightChange = new EventEmitter();\n @Input() showAlertScoreboard = false;\n\n constructor(\n private helper: EventMediaHelperService,\n private headerNavigation: HeaderNavigationService,\n private betRadarStatistics: BetRadarStatisticsService,\n private showcaseTrackingService: ShowcaseTrackingService,\n private showcaseService: ShowcaseService,\n private mediaApi: MediaApiService,\n ) {\n this.showcaseService.selectedAlertEvent.pipe(takeUntilDestroyed()).subscribe(() => (this.showAlertScoreboard = true));\n }\n\n async ngOnChanges(changes: SimpleChanges): Promise {\n if (\n (changes.tabSelectedEvent && changes.tabSelectedEvent.firstChange) ||\n (this.tabSelectedEvent && this.tabSelectedEvent.id !== this.eventState.get(this.currentEventId)) ||\n (this.showAlertScoreboard && this.showHeaderContent)\n ) {\n await this.checkMediaControls(this.tabSelectedEvent);\n this.showAlertScoreboard = false; // To avoid it to become true whenever any push update, which is no use after scoreboard tab is already active.\n }\n }\n\n private getHostFirstClass(): string {\n return this.showHeaderContent ? 'segmented-control-showcase-media-mobile' : 'showcase-media-desktop';\n }\n\n private async checkMediaControls(event: EventModel): Promise {\n this.hasStats = this.helper.hasStats(event);\n this.hasVideo = this.helper.hasVideo(event);\n this.hasAnimation = this.helper.hasAnimationOrSimulation(event);\n this.stats = getStatsIcon(false);\n this.video = getVideoIcon(false);\n this.animation = getAnimationIconForSport(event.sport.id, false);\n if (this.showHeaderContent) {\n this.tabs = await this.headerNavigation.init(event, true);\n }\n this.eventState.set(this.currentEventId, event.id);\n }\n\n tabSelectedmedia(event: number): void {\n const selectedTab = this.tabs.find((tab) => tab.id === event);\n this.trackTabSelectedMedia(event);\n this.headerNavigation.updateSelected(selectedTab);\n }\n\n activateMedia(event: MouseEvent, activeType: EventDetailsColumnType): void {\n const isActive =\n activeType === EventDetailsColumnType.Stats ||\n activeType === EventDetailsColumnType.Video ||\n activeType === EventDetailsColumnType.Animation;\n\n if (isActive) {\n this.selectMediaStyles(activeType);\n this.setEventId(this.tabSelectedEvent.id, activeType);\n if (activeType === EventDetailsColumnType.Stats) {\n if (this.tabSelectedEvent.statsId) {\n this.betRadarStatistics.open(this.tabSelectedEvent.statsId);\n }\n }\n }\n this.trackActivateMedia(activeType);\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private selectMediaStyles(activeType: EventDetailsColumnType): void {\n this.stats = getStatsIcon(activeType === EventDetailsColumnType.Stats);\n this.video = getVideoIcon(activeType === EventDetailsColumnType.Video);\n this.animation = getAnimationIconForSport(this.tabSelectedEvent.sport.id, activeType === EventDetailsColumnType.Animation);\n }\n\n private trackActivateMedia(activeType: EventDetailsColumnType): void {\n this.showcaseTrackingService.trackTabsInteractionForMedia(activeType, this.tabSelectedEvent);\n }\n\n private trackTabSelectedMedia(event: number): void {\n this.showcaseTrackingService.trackTabsInteractionForHeader(event, this.tabSelectedEvent);\n }\n\n private setEventId(eventId: string, tab: EventDetailsColumnType): void {\n this.mediaApi.setEventId(eventId, MediaEventSource.Grid, tab, TrackingVideoSource.ShowcaseModule);\n }\n}\n","
\n \n {{ vm.participant1Name }} \n \n \n
\n
\n {{ isEpcotEnabled ? '@' : '-' }}\n \n
\n
\n
\n \n \n {{ showAwayIndicator ? sitecore.globalMessages.AwayIndicator : isEpcotEnabled ? '@' : '-' }}\n \n \n {{ vm.participant2Name }} \n
\n
\n\n
\n \n {{ sitecore.event.Live }}\n \n \n
\n","import { Component, Input, OnChanges } from '@angular/core';\n\nimport { FixtureViewType } from '@cds/betting-offer';\nimport {\n EventModel,\n EventParticipantType,\n PairGameScore,\n PeriodGameScore,\n ScoreboardType,\n SetGameScore,\n} from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\n\nimport { EpcotConfigService, EpcotModule } from '../../common/epcot-config.service';\n\nexport interface ScoreboardShowcaseViewModel {\n participant1Name: string;\n participant2Name: string;\n}\n@Component({\n selector: 'ms-showcase-scoreboard',\n templateUrl: 'showcase-scoreboard.component.html',\n})\nexport class ScoreboardShowcaseComponent implements OnChanges {\n @Input() event: EventModel;\n module = EpcotModule.Scoreboard;\n\n vm: ScoreboardShowcaseViewModel = {\n participant1Name: '',\n participant2Name: '',\n };\n\n participant1Score: number;\n participant2Score: number;\n private isUSFormat: boolean;\n showAwayIndicator: boolean;\n isEpcotEnabled = false;\n\n constructor(\n public sitecore: Sitecore,\n private epcotConfigService: EpcotConfigService,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled(this.module);\n }\n\n private getParticipantsName(index: number): string {\n return this.event.participants[index].shortName || this.event.participants[index].name;\n }\n\n private isParticipant1AwayTeam(): boolean {\n return this.isUSFormat && this.event.participants[0].type === EventParticipantType.Away;\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.isUSFormat = this.event.viewType === FixtureViewType.American;\n this.showAwayIndicator = this.isParticipant1AwayTeam();\n this.vm = {\n participant1Name: this.getParticipantsName(0),\n participant2Name: this.getParticipantsName(1),\n };\n\n if (this.event.scoreboard.started) {\n switch (this.event.scoreboard.type) {\n case ScoreboardType.PeriodGame:\n const periodGameScore = this.event.scoreboard.getScore()!;\n this.participant1Score = periodGameScore.participant1.total;\n this.participant2Score = periodGameScore.participant2.total;\n break;\n case ScoreboardType.PairGame:\n const pairGameScore = this.event.scoreboard.getScore()!;\n this.participant1Score = pairGameScore.participant1;\n this.participant2Score = pairGameScore.participant2;\n break;\n case ScoreboardType.SetGame:\n const setGameScore = this.event.scoreboard.getScore()!;\n this.participant1Score = setGameScore.participant1WonSets;\n this.participant2Score = setGameScore.participant2WonSets;\n break;\n case ScoreboardType.BaseballGame:\n const baseBallScore = this.event.scoreboard.getScore()!;\n this.participant1Score = Number(baseBallScore.participant1.points);\n this.participant2Score = Number(baseBallScore.participant2.points);\n break;\n }\n }\n }\n}\n","\n \n\n\n\n \n\n","import { Component, HostBinding, Input, OnChanges, ViewChild } from '@angular/core';\n\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\n\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { ShowcaseEventModel } from '../showcase.model';\nimport { ShowcaseService } from '../showcase.service';\nimport { ShowcaseTrackingService } from '../showcase.tracking.service';\n\n@Component({\n selector: 'ms-showcase-tab-bar',\n templateUrl: 'showcase-tab-bar.component.html',\n})\nexport class TabsShowcaseComponent implements OnChanges {\n @Input() events: ShowcaseEventModel[];\n @Input() scrollSize = 200;\n @Input() scrollEnabled = true;\n @Input() stretch = false;\n @Input() selectedEventId: string;\n @Input() scrollNeeded: boolean;\n activeEventid: string;\n\n @HostBinding('class') className = 'tab-bar';\n\n @ViewChild(ScrollAdapterComponent) scrollAdapter: ScrollAdapterComponent;\n\n constructor(\n private timer: TimerService,\n private showcaseService: ShowcaseService,\n private showcaseTrackingService: ShowcaseTrackingService,\n ) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (this.scrollEnabled && changes.events && !changes.events.firstChange) {\n this.timer.setTimeout(() => this.scrollAdapter.setArrows());\n }\n if ((changes.selectedEventId || changes.scrollNeeded) && !this.showcaseService.eventSelectedFromTabBar) {\n this.timer.setTimeout(() => this.scrollAdapter.updatedScrollPosition());\n }\n if (changes.selectedEventId) {\n this.activeEventid = changes.selectedEventId.currentValue;\n }\n }\n\n selected(domEvent: Event, event: ShowcaseEventModel, index: number): void {\n domEvent.preventDefault();\n this.showcaseService.eventSelectedFromTabBar = true;\n this.showcaseService.select(event.event.id);\n this.showcaseTrackingService.trackEventSwitcherEventClick(event.event, index);\n }\n\n trackTabsBy(index: number, tab: TabBarItem): number {\n return tab.id;\n }\n}\n","@if (showModule) {\n
\n
\n {{ title }}\n
\n @if (collapse) {\n \n \n \n } @else {\n \n }\n
\n\n @if (!collapse && selectedEvent) {\n @if (moduleData.events.length > 1) {\n
\n \n
\n }\n
\n
\n
\n
\n
\n
\n \n @if (showCompetitionLogo) {\n \n } @else {\n \n \n \n }\n \n {{ selectedEvent.league.name }} \n
\n \n
\n
\n @if (showHeaderContent) {\n \n \n } @else {\n \n \n }\n
\n
\n @if (selectedEvent.optionGroups?.length) {\n
\n \n \n
\n }\n
\n @if (moduleData.showSpecialContents && ((tiles$ | async)?.length || crmBannerPromotions?.length)) {\n
\n @if ((tiles$ | async)?.length) {\n \n } @else {\n \n \n }\n
\n }\n
\n
\n }\n}\n","import { Component, DestroyRef, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, SafeStyle } from '@angular/platform-browser';\n\nimport { GridViewGroupingConfiguration } from '@cds/betting-offer/grouping/grid-view';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { EpcotConfig, ImagesConfig, ScoreboardBackgroundConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { GridSubscriptionService } from '@frontend/sports/event-subscription/feature/grid-subscription';\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { clone } from 'lodash-es';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, filter, map, of, switchMap } from 'rxjs';\n\nimport { ImageQualityService } from '../common/image-quality.service';\nimport { Promotion, TrackingSource } from '../crm-offer-data/crm-offer.model';\nimport { CrmPromotionProviderService } from '../crm-promotion/crm-promotion-provider.service';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { HeaderContentDensity } from '../event-details-common/event-details-common.models';\nimport { HeaderNavigationService } from '../event-details-common/header-navigation/header-navigation.service';\nimport { ScoreboardSubscriptionService } from '../event-subscription/scoreboard-subscription.service';\nimport { HighLightsMarqueeBinding, HighlightsMarqueeComponentLoaderService } from '../highlights-marquee/highlights-marquee-component-loader.service';\nimport { HighlightsMarqueePage } from '../highlights-marquee/highlights-marquee-page.enum';\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { MarqueeTileService } from '../highlights-marquee/marquee-tile.service';\nimport { MarqueeService } from '../highlights-marquee/marquee.service';\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\nimport { EventLoadService } from './event-load.service';\nimport { LiveAlertManager } from './live-alert/live-alert-manager.service';\nimport { FeatureTab, LiveAlertMessage, ShowcaseEventModel, ShowcaseModuleData } from './showcase.model';\nimport { ShowcaseService } from './showcase.service';\nimport { ShowcaseTrackingService } from './showcase.tracking.service';\n\n@Component({\n selector: 'ms-showcase',\n templateUrl: 'showcase.component.html',\n providers: [ShowcaseTrackingService],\n})\nexport class ShowcaseComponent implements OnInit, OnDestroy, OnChanges {\n collapse = false;\n title: string;\n animationAlert: LiveAlertMessage;\n showHeaderContent = false;\n page = HighlightsMarqueePage.Lobby;\n showModule = false;\n selectedEvent: EventModel;\n mediaEvent: EventModel;\n feature?: TabBarItem;\n crmBannerPromotions: Promotion[] = [];\n tiles$ = new BehaviorSubject([]);\n showCompetitionLogo: boolean;\n gridGroup?: { [key: string]: string };\n scoreboardBgColor = { 'background-color': '' };\n private eventSubscriptions?: EventSubscription;\n @Input() moduleData: ShowcaseModuleData;\n @Input() tracking?: string;\n @Output() showcaseDataLoaded = new EventEmitter();\n @HostBinding('class') className = 'showcase-container';\n @HostBinding('style.height.px') height?: number;\n @HostBinding('style.max-height.px') maxHeight?: number;\n\n bgImage?: SafeStyle;\n\n sizeDensity = HeaderContentDensity;\n\n tabContainerClasses: { [key: number]: string } = {\n [SportConstant.Soccer]: 'stats-container',\n };\n\n tabContainerBackgroundClasses: { [key: number]: string } = {\n [SportConstant.Soccer]: 'stats-background',\n };\n\n groupingConfig: GridViewGroupingConfiguration | undefined;\n\n epcotEnabled = inject(EpcotConfig).isEnabled;\n\n events: ShowcaseEventModel[] = [];\n marqueeComponent: ComponentProxy;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private gridSubscriptionService: GridSubscriptionService,\n private scoreboardSubscriptionService: ScoreboardSubscriptionService,\n private redirectHelperService: RedirectHelperService,\n private headerNavigation: HeaderNavigationService,\n private showcaseService: ShowcaseService,\n private sanitizer: DomSanitizer,\n public liveAlertManager: LiveAlertManager,\n private marqueeService: MarqueeService,\n private marqueeTileService: MarqueeTileService,\n private mediaService: MediaQueryService,\n private crmPromotionProvider: CrmPromotionProviderService,\n private showcaseTrackingService: ShowcaseTrackingService,\n private competitionLogoService: CompetitionLogosService,\n private eventLoadService: EventLoadService,\n private grouping: OfferGroupingService,\n private scoreboardBackgrounds: ScoreboardBackgroundConfig,\n private imagesConfig: ImagesConfig,\n private imageQualityService: ImageQualityService,\n private marqueeLoader: HighlightsMarqueeComponentLoaderService,\n ) {\n this.marqueeComponent = this.marqueeLoader.getHighlightsMarqueeComponent();\n }\n\n ngOnInit(): void {\n this.headerNavigation.selectedTab.pipe(filter(isDefined), takeUntilDestroyed(this.destroyRef)).subscribe((x) => this.featureTabSelected(x));\n this.showcaseService.selectedEvent\n .pipe(\n distinctUntilChanged(),\n map((eventId: string) => this.moduleData.events.find((showcaseEvent) => showcaseEvent.event.id === eventId)),\n switchMap((eventModel) => {\n return this.eventLoadService.getFullFixture(eventModel!, this.showcaseService.getGridGroupIds(eventModel?.gridGroup!));\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((response) => this.processResponse(response.event, response.isUpdatedEvent));\n\n this.mediaService\n .observe()\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.screenWidthChanged());\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.moduleData && this.moduleData?.events) {\n this.title = this.moduleData.title;\n this.events = this.moduleData.events;\n this.resubscribe();\n this.tabSelected();\n this.collapse = false;\n this.liveAlertManager.emptyList();\n }\n }\n\n ngOnDestroy(): void {\n this.unsubscribePushSubscription();\n this.liveAlertManager.emptyList();\n }\n\n private featureTabSelected(feature: TabBarItem): void {\n this.checkForMediaUpdates();\n this.feature = feature;\n this.tabChanged();\n }\n\n private screenWidthChanged = (): void => {\n this.showHeaderContent = this.mediaService.isActive('lt-lg');\n };\n\n goToEvent(): void {\n if (!this.showHeaderContent || this.feature?.id === FeatureTab.Scoreboard) {\n this.redirectHelperService.goToEvent(this.selectedEvent);\n this.showcaseTrackingService.trackEventPageClick(this.selectedEvent, this.selectedEventPosition);\n }\n }\n\n get selectedEventPosition(): number {\n const index = this.events.findIndex((e) => e.event.id === this.selectedEvent?.id);\n\n return index ?? 0;\n }\n\n private updateClasses(): void {\n const defaultClass = 'showcase-container';\n const isStarted = this.selectedEvent.scoreboard?.started;\n const newClass = isStarted ? 'live' : 'prematch';\n this.className = [defaultClass, newClass].join(' ');\n }\n\n private tabChanged(): void {\n if (this.selectedEvent) {\n const background = this.scoreboardBackgrounds.backgrounds.find((x) => x.sportId === this.selectedEvent.sport.id);\n if (this.feature?.id === FeatureTab.Simulation && background) {\n this.scoreboardBgColor = { 'background-color': background.outerColor };\n } else {\n this.scoreboardBgColor = { 'background-color': '' };\n }\n\n this.showcaseService.setParticipantsShirtColor(this.selectedEvent);\n }\n }\n\n private checkAndEnableShowCaseModule(): boolean {\n this.showModule = true;\n if (this.events.length === 0) {\n this.showModule = false;\n this.unsubscribePushSubscription();\n }\n\n return this.showModule;\n }\n\n tabSelected(event?: EventModel): void {\n if (!this.checkAndEnableShowCaseModule()) {\n this.showcaseDataLoaded.emit();\n\n return;\n }\n\n event = event || this.moduleData.events[0].event;\n\n const selectedEvent = this.moduleData.events.find((showcaseEvent) => showcaseEvent.event.id === event?.id);\n\n if (selectedEvent) {\n this.grouping\n .getGridGrouping(selectedEvent.event.sport.id)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((groupings) => {\n this.groupingConfig = groupings;\n const url = this.showcaseService.getBackgroundImageUrl(selectedEvent.event.sport.id);\n this.bgImage = this.getSanitizedImageUrl(url);\n\n this.showCompetitionLogo =\n this.competitionLogoService.hasLogo(selectedEvent.event.sport.id, selectedEvent.event.league.id) ||\n !!selectedEvent.event.league?.imageProfile?.logo;\n this.gridGroup = selectedEvent.gridGroup;\n this.selectedEvent = selectedEvent.event;\n this.mediaEvent = clone(selectedEvent.event);\n\n this.updateClasses();\n this.loadPromotions(this.selectedEvent.id);\n });\n }\n }\n\n private loadPromotions(eventId: string): void {\n if (!this.moduleData.showSpecialContents) {\n this.showcaseDataLoaded.emit();\n\n return;\n }\n const marqueeAvailable = this.marqueeTileService.hasForFixture(eventId);\n const marqueeTiles$ = marqueeAvailable ? this.marqueeService.loadMarquees(eventId) : of(undefined);\n\n combineLatest([marqueeTiles$, this.crmPromotionProvider.promotions$])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(([marqueeTiles, promotions]) => {\n marqueeTiles = marqueeTiles || [];\n this.tiles$.next(marqueeTiles);\n this.crmBannerPromotions = this.showcaseService.promotionChanged(promotions, this.selectedEvent);\n this.marqueeComponent.update({\n tiles: this.tiles$.value,\n promotionTiles: this.crmBannerPromotions,\n showLoader: true,\n page: this.page,\n promotionTrackingSource: TrackingSource.ShowCase,\n });\n this.showcaseDataLoaded.emit();\n });\n }\n\n private getSanitizedImageUrl(url?: string): SafeStyle | undefined {\n if (!url) {\n return undefined;\n }\n\n if (this.imagesConfig.imageQualityParams?.homePage?.showCase)\n url = this.imageQualityService.setImageQuality(url, this.imagesConfig.imageQualityParams.homePage.showCase);\n\n const appendValue = url.includes('?') ? '&p=width540' : '?p=width540';\n\n return this.sanitizer.bypassSecurityTrustStyle(`url(${url}${appendValue}`);\n }\n\n densityToggled(density: HeaderContentDensity): void {\n if (density !== HeaderContentDensity.Fullscreen) {\n this.tabChanged();\n }\n }\n\n toggle(): void {\n this.collapse = !this.collapse;\n this.showcaseService.eventSelectedFromTabBar = false;\n this.showcaseTrackingService.trackHeaderExpandOrCollapseClick(this.selectedEvent, this.collapse);\n }\n\n private unsubscribePushSubscription(): void {\n this.eventSubscriptions?.unsubscribe();\n }\n\n private resubscribe(): void {\n this.unsubscribePushSubscription();\n\n const callbacks = this.events.map((model, index) => ({\n event: clone(model.event),\n callback: this.getCallback(index),\n }));\n\n if (callbacks.length > 0) {\n this.eventSubscriptions = this.gridSubscriptionService.subscribe(callbacks);\n this.eventSubscriptions.add(this.scoreboardSubscriptionService.subscribe(callbacks));\n }\n }\n\n private getCallback(index: number): (updatedEvent: EventModel) => void {\n return (updatedEvent) => {\n if (!updatedEvent?.scoreboard) {\n return;\n }\n const oldShowcaseEvent = this.events.find((f) => f.event.id === updatedEvent.id);\n if (!oldShowcaseEvent?.event) {\n return;\n }\n const oldEvent = clone(oldShowcaseEvent.event);\n const newEvent = clone(updatedEvent);\n if (updatedEvent.scoreboard.messages && updatedEvent.optionGroups.length) {\n this.moduleData.events[index].event = newEvent;\n }\n if (updatedEvent.scoreboard.messages) {\n this.moduleData.events[index].event.scoreboard.messages = newEvent.scoreboard.messages;\n this.liveAlertManager.add(updatedEvent, oldEvent);\n if (updatedEvent.id === this.selectedEvent.id) {\n this.checkForMediaUpdates(newEvent);\n }\n }\n if (updatedEvent.optionGroups.length) {\n this.moduleData.events[index].event.optionGroups = newEvent.optionGroups;\n }\n if (updatedEvent.id === this.selectedEvent.id) {\n this.selectedEvent = newEvent;\n }\n };\n }\n\n private checkForMediaUpdates(newEvent?: EventModel): void {\n if (this.feature && this.feature.id !== 2) {\n this.mediaEvent = newEvent || this.selectedEvent;\n }\n }\n\n private processResponse = (event: EventModel, isUpdatedEvent: boolean): void => {\n this.moduleData.events.forEach((e) => {\n e.active = false;\n if (e.event.id === event.id) {\n e.active = true;\n e.event.optionGroups = event.optionGroups;\n }\n });\n if (isUpdatedEvent) {\n this.resubscribe();\n }\n this.tabSelected(event);\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FontResizerComponent } from '@frontend/sports/common/core/feature/font-resizer';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { SportsThemedSegmentedControlDirective } from '@frontend/sports/common/ui/sports-themed-segmented-control';\nimport { ValueSliderDirective } from '@frontend/sports/common/ui/value-slider';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { NativePriceFormatterPipe } from '@frontend/sports/odds/feature/native-price';\nimport { DsSegmentedControlModule } from '@frontend/ui/segmented-control';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\n\nimport { TranslationToStringPipe } from '../cds/translation.pipe';\nimport { CrmPromotionContainerComponent } from '../crm-promotion-container/crm-promotion-container.component';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { EventDetailsCommonModule } from '../event-details-common/event-details-common.module';\nimport { GridModule } from '../grid/grid.module';\nimport { EventPickComponent } from '../option-pick/event-pick.component';\nimport { TabBarModule } from '../tab-bar/tab-bar.module';\nimport { EventLoadService } from './event-load.service';\nimport { ScoreboardShowcaseComponent } from './event-switcher/showcase-scoreboard.component';\nimport { TabsShowcaseComponent } from './event-switcher/showcase-tab-bar.component';\nimport { LiveAlertItemComponent } from './live-alert/live-alert-item.component';\nimport { LiveAlertListComponent } from './live-alert/live-alert-list.component';\nimport { LiveAlertManager } from './live-alert/live-alert-manager.service';\nimport { OptionGroupContainerComponent } from './option-group/option-group-container.component';\nimport { ShowcaseOptionGroupComponent } from './option-group/showcase-option-group.component';\nimport { ShowcaseMediaComponent } from './showcase-media/showcase-media.component';\nimport { ShowcaseComponent } from './showcase.component';\nimport { ShowcaseTrackingService } from './showcase.tracking.service';\n\n@NgModule({\n imports: [\n CommonModule,\n TabBarModule,\n NgScrollbarModule,\n GridModule,\n CompetitionLogoComponent,\n TranslationToStringPipe,\n CrmPromotionContainerComponent,\n DirectivesModule,\n EventDetailsCommonModule,\n ComponentProxyDirective,\n FontResizerComponent,\n ValueSliderDirective,\n ScrollAdapterComponent,\n EventPickComponent,\n NativePriceFormatterPipe,\n DsSegmentedControlModule,\n SportsThemedSegmentedControlDirective,\n IconCustomComponent,\n ],\n declarations: [\n LiveAlertItemComponent,\n LiveAlertListComponent,\n OptionGroupContainerComponent,\n ScoreboardShowcaseComponent,\n ShowcaseComponent,\n ShowcaseMediaComponent,\n ShowcaseOptionGroupComponent,\n TabsShowcaseComponent,\n ],\n exports: [ShowcaseComponent],\n providers: [EventLoadService, LiveAlertManager, ShowcaseTrackingService],\n})\nexport class ShowcaseModule {}\n"],"names":["ShowcaseApi","constructor","cdsApiServiceFactory","cdsApi","endpoint","getShowcaseData","request","post","ɵɵinject","CDS_API_FACTORY","A","factory","ɵfac","providedIn","_ShowcaseApi","ShowcaseConstants","_ShowcaseConstants","TIMEDELAY","ANIMATIONTIME","Lobby","ViewType","FootballMessageIds","AmericanFootballMessageIds","BasketballMessageIds","BaseballMessageIds","IceHockeyMessageIds","BasketBallPeriodIds","TouchDownInfo","CustomMessage","LiveAlertEvent","participant1Score","participant2Score","eventId","sportId","participants","period","time","currentlyServing","length","team1Name","shortName","name","team2Name","FeatureTab","ShowcaseFixtureMapperService","fixtureFactory","mapShowcaseFixtures","fixtures","showcaseModuleItem","key","map","f","requestId","fixtureGroup","filter","sitecoreShowcaseModuleItem","find","v","contentSourceId","showcaseModuleTabEvents","fg","eventModelWithOptionGroup","fixture","item","event","active","title","events","showSpecialContents","eventModel","create","gridGroup","getGridGroupId","sport","id","fixtureGroups","g","FixtureFactory","_ShowcaseFixtureMapperService","ShowcaseService","config","crmPromotionMapper","showcaseFixtureMapperService","selectSubject","Subject","selectAlertSubject","backgroundImage","selectedEvent","asObservable","selectedAlertEvent","crmPromotions","optionGroups","eventSelectedFromTabBar","filterFixtureGroup","data","showcaseItem","fixturesGroup","getLobbySpecificFixtures","sitecoreData","backgrounds","image","assign","imageSrc","getLobbySpecificData","filterData","lobby","getLobbySpecificMappedData","showcaseModule","select","next","selectAlert","promotionChanged","model","getPromotionsForEvent","getBannerPromotions","getBackgroundImageUrl","getGridGroupIds","Object","keys","setParticipantsShirtColor","scoreboard","homeTeamColor","colors","undefined","awayTeamColor","shirtColor","Home","Sports","Competition","regionId","items","showOnHomeLobby","showOnSportsLobby","showOnCompetitionLobby","ShowcaseConfig","CrmPromotionMapperService","_ShowcaseService","ShowcaseRequestBuilderService","showcaseService","showcaseConfig","getRequestPayload","isShowcaseModuleEnabled","showcaseData","buildRequestForLobby","queries","getOnlyFirstAvailableOffer","flatten","m","tab","fixtureIds","fixtureId","gridGroupIds","join","scoreboardMode","offerMapping","state","buildRequestForOptionGroup","groupIds","_ShowcaseRequestBuilderService","EventLoadService","requestBuilderService","showcaseApi","getFullFixture","activeTabModel","_a","isFinished","pipe","eventData","isUpdatedEvent","of","response","optionMarkets","games","_EventLoadService","LiveAlertManager","sitecore","queuedAlerts","alerts","newAlertSubject","emptyAlertsSubject","endOfQuarterOrPeriodId","triggerNotification","newAlert","push","alertsEmptied","parseMessage","message","updatedEvent","oldEvent","teamName","eventTime","type","CustomMessageType","isDuplicateAlert","isTeam1Message","teamType","TeamType","Team01","isTeam2Message","Team02","parsedAlert","team","order","team1Score","team2Score","text","SportConstant","Soccer","messageType","getLiveAlertMessageTypes","Goal","FootballPeriodInfo","PenaltyShootout","showcaseMessages","Penalty","PenaltyScored","PenaltyMissed","RedCard","Custom","handleCustomMessages","Basketball","Messages","FirstQuarterIntermission","matchType","EndOfQ1","EndOf1H","SecondQuarterIntermission","EndOfQ2","EndOf2H","ThirdQuarterIntermission","EndOfQ3","FourthQuarterIntermission","EndOfQ4","Overtime","OTStart","End","MatchFinished","AmericanFootball","TouchDown","TwoPointConversion","PtConversion","replace","OnePointConversion","Safety","FieldGoal","Quarter","AmericanFootballPeriodInfo","IntermissionQ1","IntermissionQ2","IntermissionQ3","AmericanFootballQuarters","Finished","isCancelledTouchDown","TouchDownPointer","Icehockey","IceHockeyPeriodInfo","IntermissionPeriod1","EndOfP1","IntermissionPeriod2","EndOfP2","RegularTimeOver","EndOfP3","IceHockeyPeriods","Baseball","BattingSwitch","RunsScored","getParsedAlert","subMessages","upScore","Math","abs","upScoreTeam","checkMatchDecided","WinBy","UpBy","isHighlighted","Tie","viewType","CancelledTouchDown","CancelledGoal","team1Highlight","team2Highlight","withParticipantScore","timeValue","getLatestMessages","messages","differenceBy","checkChangesInScoreOrTurn","latestLiveEvent","oldLiveEvent","isEmpty","add","score","updatedEventLatestAlert","getParticipantScores","oldEventLatestAlert","ScoreboardType","PeriodGame","messageOrder","floor","random","icon","forEach","getTeamName","emptyList","getTime","timer","base","Date","now","DateProviderService","timeSpan","seconds","round","minutes","pad","val","padStart","toString","liveAlert","started","periodGameScore","getScore","participant1","total","participant2","turn","PairGame","pairGameScore","SetGame","setGameScore","participant1WonSets","participant2WonSets","BaseballGame","setGameScoreboard","Number","points","duplicateAlert","alert","some","Sitecore","_LiveAlertManager","ShowcaseTrackingService","trackingService","actionEventByMediaTabs","EventDetailsColumnType","Stats","Animation","Video","actionEventByHeaderNavTabs","Statistics","Simulation","Scoreboard","trackTabsInteractionForMedia","eventActiveId","trackTabsInteraction","trackTabsInteractionForHeader","trackEventPageClick","index","trackingData","getTrackData","labelEvent","actionEvent","positionEvent","locationEvent","NOT_APPLICABLE","eventDetails","position","track","trackingConstants","EVENT_TRACKING","trackHeaderExpandOrCollapseClick","collapse","trackEventSwitcherEventClick","trackGameAlertsEventRedirecting","alertMessage","trackExpandGameAlerts","expanded","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_LOCATION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_URL_CLICKED","isNil","SPORT_ID","SPORT_EVENT_ID","COMPONENT_CONTENT_POSITION","tabTracking","TrackingService","_ShowcaseTrackingService","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","_c0","messageInfo_r1","ɵɵtextInterpolate1","LiveAlertItemComponent","showcaseTrackingService","className","goto","liveAlertMessage","stopPropagation","ɵɵdirectiveInject","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵlistener","$event","ɵɵtemplate","LiveAlertItemComponent_ng_container_7_Template","ɵɵtextInterpolate","_LiveAlertItemComponent","ɵɵelement","d","ctx_r0","animationAlert","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","toggleExpand","LiveAlertListComponent_Conditional_2_Conditional_2_Template","ɵɵpureFunction3","_c1","animate","lastAlert","ɵɵconditional","hasAlertsForExpand","alert_r4","N","i0","_r3","ɵɵrepeaterCreate","LiveAlertListComponent_Conditional_3_For_2_Template","_forTrack0","ɵɵrepeater","ɵɵpipeBind2","LiveAlertListComponent","changeDetector","timerService","liveAlertManager","startInterval","noAlerts","stopInterval","alertsInterval","setHasAlertsForExpand","takeUntilDestroyed","subscribe","processNewAlert","ngOnDestroy","displayNewAlert","markForCheck","setTimeout","unshift","shift","createInterval","setInterval","ngOnChanges","changes","alertList","update","ChangeDetectorRef","TimerService","viewQuery","NgScrollbar","ɵɵclassProp","LiveAlertListComponent_Conditional_1_Template","LiveAlertListComponent_Conditional_2_Template","LiveAlertListComponent_Conditional_3_Template","K","Le","R","kt","_LiveAlertListComponent","getResultName","option_r3","ɵ$index_7_r4","ShowcaseOptionGroupComponent_For_3_Conditional_2_Conditional_0_Template","J","optionGroup","balanced","categoryAttribute","optionAttribute","viewTypeEnum","Default","SixPack","overridenName","ɵɵpipeBind1","nativePrice","ShowcaseOptionGroupComponent_For_3_Conditional_1_Template","ShowcaseOptionGroupComponent_For_3_Conditional_2_Template","optionTracking","tracking","online","ShowcaseOptionGroupComponent","onClick","preventDefault","epcotEnabled","inject","EpcotConfig","isEnabled","option","options","indexOf","eventGrid","SixPack_TotalsOver","SixPack_TotalsUnder","optionName","optionNames","segment","toLowerCase","G","ShowcaseOptionGroupComponent_Conditional_0_Template","ShowcaseOptionGroupComponent_For_3_Template","oi","Re","Jt","_ShowcaseOptionGroupComponent","optionGroup_r1","ctx_r1","OptionGroupContainerComponent","class","getHostClass","optionGroupService","MAX_OPTION_GROUPS","includes","sixPackSportTypeIds","mapOptionGroup","trackOptionGroup","gridGroups","_b","showcaseOptionGroups","mappedGroups","groupingConfig","groups","matchingGroups","keyBy","mapValues","group","sixPackGroups","matchingGroup","hasMatchingGroupId","marketGroupIds","matchedGroup","zipObject","value","setOptionGroup","mid","groupId","_c","nextGoalMarketGroupId","og","getOptionGroup","slice","eventOptionGroup","get","OptionGroupService","OptionGroupContainerComponent_ms_showcase_option_group_0_Template","_OptionGroupContainerComponent","tab_r3","ShowcaseMediaComponent_Conditional_0_Conditional_0_For_2_ng_template_1_Template","ɵɵtemplateRefExtractor","_r1","tabSelectedmedia","ShowcaseMediaComponent_Conditional_0_Conditional_0_For_2_Template","ɵɵrepeaterTrackByIndex","segmentedControlThemeInverse","tabs","ShowcaseMediaComponent_Conditional_0_Conditional_0_Template","_r4","activateMedia","mediaType","stats","_r5","animation","_r6","video","ShowcaseMediaComponent_Conditional_1_Conditional_2_Template","ShowcaseMediaComponent_Conditional_1_Conditional_5_Template","ShowcaseMediaComponent_Conditional_1_Conditional_8_Template","hasStats","hasAnimation","hasVideo","ShowcaseMediaComponent","getHostFirstClass","helper","headerNavigation","betRadarStatistics","mediaApi","eventState","Map","currentEventId","videoPinToggle","EventEmitter","featureChange","heightChange","showAlertScoreboard","__async","tabSelectedEvent","firstChange","showHeaderContent","checkMediaControls","hasAnimationOrSimulation","getStatsIcon","getVideoIcon","getAnimationIconForSport","init","set","selectedTab","trackTabSelectedMedia","updateSelected","activeType","selectMediaStyles","setEventId","statsId","open","trackActivateMedia","stopImmediatePropagation","MediaEventSource","Grid","TrackingVideoSource","ShowcaseModule","EventMediaHelperService","HeaderNavigationService","BetRadarStatisticsService","MediaApiService","ShowcaseMediaComponent_Conditional_0_Template","ShowcaseMediaComponent_Conditional_1_Template","Lt","Ft","Ti","_ShowcaseMediaComponent","isEpcotEnabled","showAwayIndicator","globalMessages","AwayIndicator","Live","ScoreboardShowcaseComponent","epcotConfigService","module","EpcotModule","vm","participant1Name","participant2Name","getParticipantsName","isParticipant1AwayTeam","isUSFormat","EventParticipantType","Away","baseBallScore","EpcotConfigService","y","inputs","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","ScoreboardShowcaseComponent_span_4_Template","ScoreboardShowcaseComponent_ng_template_5_Template","ScoreboardShowcaseComponent_i_11_Template","preMatch_r2","live","startDate","Ne","ci","li","_ScoreboardShowcaseComponent","TabsShowcaseComponent_ms_scroll_adapter_0_1_ng_template_0_Template","TabsShowcaseComponent_ms_scroll_adapter_0_1_Template","Ce","activeEventid","scrollSize","stretch","tabTemplate_r2","ctx_r3","tab_r5","$implicit","index_r6","selected","TabsShowcaseComponent_ng_template_1_ul_0_li_1_Template","trackTabsBy","TabsShowcaseComponent_ng_template_1_ul_0_Template","TabsShowcaseComponent","scrollEnabled","scrollAdapter","setArrows","selectedEventId","scrollNeeded","updatedScrollPosition","currentValue","domEvent","ScrollAdapterComponent","TabsShowcaseComponent_ms_scroll_adapter_0_Template","TabsShowcaseComponent_ng_template_1_Template","ce","yt","ei","he","_TabsShowcaseComponent","moduleData","league","imageProfile","ɵɵpropertyInterpolate1","goToEvent","densityToggled","mediaEvent","feature","sizeDensity","Medium","Small","ɵɵpureFunction2","selectedEventPosition","ɵɵelementContainer","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_17_Conditional_1_ng_container_0_Template","marqueeComponent","crmBannerPromotions","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_17_Conditional_1_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_17_Conditional_3_Template","tmp_3_0","tiles$","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_0_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_8_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_9_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_14_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_15_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_16_Template","ShowcaseComponent_Conditional_0_Conditional_5_Conditional_17_Template","ɵɵstyleProp","bgImage","tabContainerClasses","showCompetitionLogo","scoreboardBgColor","tabContainerBackgroundClasses","tmp_13_0","toggle","ShowcaseComponent_Conditional_0_Conditional_3_Template","ShowcaseComponent_Conditional_0_Conditional_4_Template","ShowcaseComponent_Conditional_0_Conditional_5_Template","ShowcaseComponent","gridSubscriptionService","scoreboardSubscriptionService","redirectHelperService","sanitizer","marqueeService","marqueeTileService","mediaService","crmPromotionProvider","competitionLogoService","eventLoadService","grouping","scoreboardBackgrounds","imagesConfig","imageQualityService","marqueeLoader","page","HighlightsMarqueePage","showModule","BehaviorSubject","showcaseDataLoaded","HeaderContentDensity","destroyRef","DestroyRef","screenWidthChanged","isActive","processResponse","e","resubscribe","tabSelected","getHighlightsMarqueeComponent","ngOnInit","isDefined","x","featureTabSelected","distinctUntilChanged","showcaseEvent","switchMap","observe","unsubscribePushSubscription","checkForMediaUpdates","tabChanged","findIndex","updateClasses","defaultClass","newClass","background","outerColor","checkAndEnableShowCaseModule","emit","getGridGrouping","groupings","url","getSanitizedImageUrl","hasLogo","logo","clone","loadPromotions","marqueeTiles$","hasForFixture","loadMarquees","combineLatest","promotions$","marqueeTiles","promotions","tiles","promotionTiles","showLoader","promotionTrackingSource","TrackingSource","ShowCase","imageQualityParams","homePage","showCase","setImageQuality","appendValue","bypassSecurityTrustStyle","density","Fullscreen","eventSubscriptions","unsubscribe","callbacks","callback","getCallback","oldShowcaseEvent","newEvent","GridSubscriptionService","ScoreboardSubscriptionService","RedirectHelperService","DomSanitizer","MarqueeService","MarqueeTileService","MediaQueryService","CrmPromotionProviderService","CompetitionLogosService","OfferGroupingService","ScoreboardBackgroundConfig","ImagesConfig","ImageQualityService","HighlightsMarqueeComponentLoaderService","height","maxHeight","ShowcaseComponent_Conditional_0_Template","Tt","Ve","Qe","vi","gi","pi","xt","_ShowcaseComponent","imports","CommonModule","TabBarModule","NgScrollbarModule","GridModule","CompetitionLogoComponent","CrmPromotionContainerComponent","DirectivesModule","EventDetailsCommonModule","EventPickComponent","DsSegmentedControlModule","IconCustomComponent","_ShowcaseModule"],"mappings":"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"}