{"version":3,"file":"chunk-n5qv7ids.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/event-switcher/showcase-scoreboard.html","packages/sports/web/app/src/showcase/event-switcher/showcase-scoreboard.component.ts","packages/sports/web/app/src/showcase/showcase.tracking.service.ts","packages/sports/web/app/src/showcase/event-switcher/showcase-tab-bar.html","packages/sports/web/app/src/showcase/event-switcher/showcase-tab-bar.component.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-item.html","packages/sports/web/app/src/showcase/live-alert/live-alert-item.component.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-manager.service.ts","packages/sports/web/app/src/showcase/live-alert/live-alert-list.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.html","packages/sports/web/app/src/showcase/option-group/option-group-container.component.ts","packages/sports/web/app/src/showcase/showcase-media/showcase-media.html","packages/sports/web/app/src/showcase/showcase-media/showcase-media.component.ts","packages/sports/web/app/src/showcase/showcase.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<ShowcaseData | undefined> {\n        return this.cdsApi.post<ShowcaseData>(`/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 <ShowcaseModuleData>{};\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<string>();\n    private selectAlertSubject = new Subject<void>();\n    private backgroundImage: Record<string, string> = {};\n\n    readonly selectedEvent: Observable<string> = 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, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\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(activeTabModel: ShowcaseEventModel, groupIds: string[]): Observable<{ event: EventModel; isUpdatedEvent: boolean }> {\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(fixtureId: string, groupIds: string[]): Observable<{ event: EventModel | undefined; isUpdatedEvent: boolean }> {\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","<div class=\"showcase-scoreboard-participants-score\">\n    <span class=\"showcase-scoreboard-participants\">\n        <span class=\"participant-name\"> {{ vm.participant1Name }} </span>\n        <span class=\"showcase-scoreboard-live\" *ngIf=\"event.scoreboard && event.scoreboard.started; else preMatch\">\n            <span class=\"score\">\n                <div [msValueSlider]=\"participant1Score\"></div>\n            </span>\n            {{ isEpcotEnabled ? '@' : '-' }}\n            <span class=\"score\">\n                <div [msValueSlider]=\"participant2Score\"></div>\n            </span>\n        </span>\n        <ng-template #preMatch>\n            <span class=\"away-indicator-showcase\">\n                {{ showAwayIndicator ? sitecore.globalMessages.AwayIndicator : isEpcotEnabled ? '@' : '-' }}\n            </span>\n        </ng-template>\n        <span class=\"participant-name\"> {{ vm.participant2Name }} </span>\n    </span>\n</div>\n\n<div class=\"showcase-scoreboard-timer\">\n    <span class=\"grid-event-info\">\n        <i class=\"live-icon\" *ngIf=\"event.scoreboard && event.scoreboard.started\">{{ sitecore.event.Live }}</i>\n        <ms-event-timer class=\"grid-event-timer\" [live]=\"event.live\" [start]=\"event.startDate\" [scoreboard]=\"event.scoreboard\"> </ms-event-timer>\n    </span>\n</div>\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.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<ScoreboardShowcaseComponent>): 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<PeriodGameScore>()!;\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<PairGameScore>()!;\n                    this.participant1Score = pairGameScore.participant1;\n                    this.participant2Score = pairGameScore.participant2;\n                    break;\n                case ScoreboardType.SetGame:\n                    const setGameScore = this.event.scoreboard.getScore<SetGameScore>()!;\n                    this.participant1Score = setGameScore.participant1WonSets;\n                    this.participant2Score = setGameScore.participant2WonSets;\n                    break;\n                case ScoreboardType.BaseballGame:\n                    const baseBallScore = this.event.scoreboard.getScore<SetGameScore>()!;\n                    this.participant1Score = Number(baseBallScore.participant1.points);\n                    this.participant2Score = Number(baseBallScore.participant2.points);\n                    break;\n            }\n        }\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<FeatureTab, string> = {\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<TrackShowcase> {\n        const trackingData: Partial<TrackShowcase> = {\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","<ms-scroll-adapter *ngIf=\"scrollEnabled; else tabTemplate\" [msScrollSelectedInView]=\"activeEventid\" [scrollSize]=\"scrollSize\" [stretch]=\"stretch\">\n    <ng-template *ngTemplateOutlet=\"tabTemplate\"></ng-template>\n</ms-scroll-adapter>\n\n<ng-template #tabTemplate>\n    <ul class=\"tab-bar-container\" *ngIf=\"events?.length\">\n        <li\n            class=\"tab-bar-item\"\n            *ngFor=\"let tab of events; trackBy: trackTabsBy; let index = index\"\n            [class.active]=\"tab.active\"\n            [attr.data-menu-item-id]=\"tab.event.id\">\n            <a (click)=\"selected($event, tab, index)\">\n                <ms-showcase-scoreboard [event]=\"tab.event\"></ms-showcase-scoreboard>\n            </a>\n        </li>\n    </ul>\n</ng-template>\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.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<TabsShowcaseComponent>): 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","<div class=\"notification\" (click)=\"goto(alert, $event)\">\n    <div class=\"first-row\">\n        <span class=\"event\">{{ alert.event }}</span> <span class=\"team\"> {{ alert.team }}</span>\n    </div>\n    <div class=\"second-row\">\n        <ng-container *ngFor=\"let messageInfo of alert.messageType\">\n            <span class=\"message\" [ngClass]=\"{ highlight: messageInfo.isHighlighted }\">{{ messageInfo.message }} </span>\n        </ng-container>\n    </div>\n</div>\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.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","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<LiveAlertMessage>();\n    private emptyAlertsSubject = new Subject<Array<LiveAlertMessage>>();\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<LiveAlertMessage> {\n        return this.newAlertSubject.asObservable();\n    }\n\n    get alertsEmptied(): Observable<Array<LiveAlertMessage>> {\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<PeriodGameScore>();\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<PairGameScore>();\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<SetGameScore>();\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<SetGameScore>();\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","<div class=\"alert-animation\" [ngClass]=\"{ 'expanded': expanded, 'slide-in': animate, 'slide-out': !animate }\">\n    @if (animationAlert) {\n        <ms-live-alert-item [alert]=\"animationAlert\"></ms-live-alert-item>\n    }\n</div>\n@if (lastAlert) {\n    <div class=\"alert-last\" [ngClass]=\"{ 'expanded': expanded, 'fade-out': animate, 'fade-in': !animate }\">\n        <ms-live-alert-item [alert]=\"lastAlert\"></ms-live-alert-item>\n        @if (hasAlertsForExpand) {\n            <span (click)=\"toggleExpand($event)\">\n                <vn-icon class=\"arrow\" size=\"12\" [name]=\"expanded ? 'theme-up' : 'theme-down'\"></vn-icon>\n            </span>\n        }\n    </div>\n}\n@if (expanded && hasAlertsForExpand) {\n    <ng-scrollbar class=\"alert-list ng-scrollbar-compact\" [viewportPropagateMouseMove]=\"false\" (click)=\"$event.stopPropagation()\">\n        @for (alert of alerts | slice: 1; track alert.eventId) {\n            <ms-live-alert-item [alert]=\"alert\"> </ms-live-alert-item>\n        }\n    </ng-scrollbar>\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.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<LiveAlertListComponent>): 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    <div class=\"name\">{{ model.name }}</div>\n}\n<div [ngClass]=\"viewType === viewTypeEnum.SixPack ? 'column-view' : 'row-view'\">\n    @for (option of optionGroup?.options; track option.id; let index = $index) {\n        <ms-event-pick\n            [option]=\"option\"\n            [event]=\"event\"\n            [optionGroup]=\"optionGroup\"\n            [trackingSource]=\"optionTracking\"\n            [trackingPosition]=\"tracking?.position\"\n            [ngClass]=\"!optionGroup.online || !option.online ? 'grid-option-selectable offline' : 'grid-option-selectable'\">\n            @if (!optionGroup.online || !option.online) {\n                <vn-icon name=\"theme-locked-i\" [size]=\"13\"></vn-icon>\n            } @else {\n                @if ((optionGroup.balanced && (optionGroup.categoryAttribute || option.optionAttribute)) || viewType === viewTypeEnum.Default) {\n                    <div class=\"option-attribute\">\n                        {{ getResultName(option, index) }}\n                    </div>\n                }\n                <div\n                    [ngClass]=\"\n                        (viewType === viewTypeEnum.SixPack &&\n                            (!optionGroup.balanced || !(optionGroup.categoryAttribute || option.optionAttribute))) ||\n                        !(option.overridenName || option.name)\n                            ? 'option-position result-odds option-value'\n                            : 'result-odds option-value'\n                    \">\n                    <ms-font-resizer defaultSize=\"1\" maxChars=\"8\" [value]=\"option.nativePrice | msNativePriceFormatter\"></ms-font-resizer>\n                </div>\n            }\n        </ms-event-pick>\n    }\n</div>\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","<ng-container *ngIf=\"showcaseOptionGroups?.length\">\n    <ms-showcase-option-group\n        *ngFor=\"let optionGroup of showcaseOptionGroups; trackBy: trackOptionGroup; let index = index\"\n        [model]=\"optionGroup\"\n        [event]=\"event\"\n        [tracking]=\"tracking\"\n        [viewType]=\"viewType\">\n    </ms-showcase-option-group>\n</ng-container>\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.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<OptionGroupContainerComponent>): 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: EventOptionGroup): string {\n        return optionGroup.gridGroups ? optionGroup.gridGroups.join(',') : '';\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        <ds-segmented-control\n            msThemedSegmentedControl\n            [themeInverse]=\"segmentedControlThemeInverse\"\n            [fullWidth]=\"false\"\n            (activeOptionChange)=\"tabSelectedmedia($event)\">\n            @for (tab of tabs; track $index) {\n                <ds-segmented-option [name]=\"tab.id\" [title]=\"tab.title\">\n                    <ng-template #dsTemplate>\n                        <vn-icon size=\"14\" [name]=\"tab.icon\"></vn-icon>\n                    </ng-template>\n                </ds-segmented-option>\n            }\n        </ds-segmented-control>\n    }\n} @else {\n    <div class=\"stats-icon\">\n        <div class=\"icon\">\n            @if (hasStats) {\n                <div (click)=\"activateMedia($event, mediaType.Stats)\">\n                    <vn-icon class=\"media-stats-icon\" size=\"16\" [name]=\"stats\"></vn-icon>\n                </div>\n            }\n        </div>\n    </div>\n    <div class=\"media media-animation-icon\">\n        <div class=\"icon\">\n            @if (hasAnimation) {\n                <div (click)=\"activateMedia($event, mediaType.Animation)\">\n                    <vn-icon size=\"16\" [name]=\"animation\"></vn-icon>\n                </div>\n            }\n        </div>\n    </div>\n    <div class=\"media media-video-icon\">\n        <div class=\"icon\">\n            @if (hasVideo) {\n                <div (click)=\"activateMedia($event, mediaType.Video)\">\n                    <vn-icon size=\"16\" [name]=\"video\"></vn-icon>\n                </div>\n            }\n        </div>\n    </div>\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.html',\n    styleUrls: ['./showcase-media.component.scss'],\n})\nexport class ShowcaseMediaComponent implements OnChanges {\n    private eventState = new Map<string, string>();\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<boolean> = {\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<boolean>();\n    @Output() featureChange = new EventEmitter<number>();\n    @Output() heightChange = new EventEmitter<number>();\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<void> {\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<void> {\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","@if (showModule) {\n    <div class=\"showcase-header\" [ngClass]=\"collapse ? 'collapse' : 'expand'\" (click)=\"toggle()\">\n        <div class=\"header-title\" [ngClass]=\"{ 'full-width': !(liveAlertManager.queuedAlerts.length || liveAlertManager.alerts.length) }\">\n            {{ title }}\n        </div>\n        @if (collapse) {\n            <span class=\"arrow\">\n                <vn-icon name=\"theme-down\" size=\"12\"></vn-icon>\n            </span>\n        } @else {\n            <ms-live-alert-list></ms-live-alert-list>\n        }\n    </div>\n\n    @if (!collapse && selectedEvent) {\n        @if (moduleData.events.length > 1) {\n            <div class=\"showcase-subheader\">\n                <ms-showcase-tab-bar [events]=\"moduleData.events\" [scrollEnabled]=\"true\" [selectedEventId]=\"selectedEvent.id\"> </ms-showcase-tab-bar>\n            </div>\n        }\n        <div class=\"showcase-content-container\" [style.background-image]=\"bgImage\">\n            <div class=\"showcase-content-container-overlay\">\n                <div class=\"showcase-scoreboard-market\">\n                    <div class=\"showcase-scoreboard-container\" [ngClass]=\"tabContainerClasses[feature?.id] || ''\">\n                        <div class=\"league-title-media\">\n                            <div class=\"league-title-logo\">\n                                <span class=\"league-logo\">\n                                    @if (showCompetitionLogo) {\n                                        <ms-competition-logo\n                                            [sportId]=\"selectedEvent.sport.id\"\n                                            [leagueId]=\"selectedEvent.league.id\"\n                                            [imageProfile]=\"selectedEvent.league.imageProfile\"></ms-competition-logo>\n                                    } @else {\n                                        <span class=\"icon\">\n                                            <vn-icon name=\"sports-{{ selectedEvent.sport.id }}\" [size]=\"epcotEnabled ? 16 : 12\"></vn-icon>\n                                        </span>\n                                    }\n                                </span>\n                                <span class=\"league-name\"> {{ selectedEvent.league.name }} </span>\n                            </div>\n                            <ms-showcase-media [showHeaderContent]=\"showHeaderContent\" [tabSelectedEvent]=\"mediaEvent\"> </ms-showcase-media>\n                        </div>\n                        <div class=\"scoreboard-background\" [ngStyle]=\"scoreboardBgColor\" [ngClass]=\"tabContainerBackgroundClasses[feature?.id] || ''\">\n                            @if (showHeaderContent) {\n                                <ms-header-content\n                                    [event]=\"mediaEvent\"\n                                    [feature]=\"feature\"\n                                    [isShowcase]=\"true\"\n                                    (click)=\"goToEvent()\"\n                                    (toggle)=\"densityToggled($event)\">\n                                </ms-header-content>\n                            } @else {\n                                <ms-scoreboard\n                                    [isShowcase]=\"true\"\n                                    [event]=\"selectedEvent\"\n                                    [size]=\"selectedEvent.scoreboard && selectedEvent.scoreboard.started ? sizeDensity.Medium : sizeDensity.Small\"\n                                    [hideTimer]=\"false\"\n                                    (click)=\"goToEvent()\">\n                                </ms-scoreboard>\n                            }\n                        </div>\n                    </div>\n                    @if (selectedEvent.optionGroups?.length) {\n                        <div class=\"showcase-market-container\">\n                            <ms-option-group-container\n                                [gridGroup]=\"gridGroup\"\n                                [event]=\"selectedEvent\"\n                                [tracking]=\"{ source: tracking, position: selectedEventPosition }\"\n                                [groupingConfig]=\"groupingConfig\">\n                            </ms-option-group-container>\n                        </div>\n                    }\n                </div>\n                @if (moduleData.showSpecialContents && ((tiles$ | async)?.length || crmBannerPromotions?.length)) {\n                    <div class=\"showcase-promotion-container\">\n                        @if ((tiles$ | async)?.length) {\n                            <ng-container *msComponentProxy=\"marqueeComponent\"> </ng-container>\n                        } @else {\n                            <ms-crm-promotion-container [promotions]=\"crmBannerPromotions\" [trackingSource]=\"'ShowCase'\">\n                            </ms-crm-promotion-container>\n                        }\n                    </div>\n                }\n            </div>\n        </div>\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, of } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\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.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<Tile[]>([]);\n    showCompetitionLogo: boolean;\n    gridGroup?: { [key: string]: string };\n    scoreboardBgColor = { 'background-color': '' };\n    private eventSubscriptions?: EventSubscription<EventModel>;\n    @Input() moduleData: ShowcaseModuleData;\n    @Input() tracking?: string;\n    @Output() showcaseDataLoaded = new EventEmitter<void>();\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<HighLightsMarqueeBinding>;\n    private readonly destroyRef = inject(DestroyRef);\n\n    constructor(\n        private gridSubscriptionService: GridSubscriptionService,\n        private scoreboardSubscriptionService: ScoreboardSubscriptionService<EventModel>,\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<ShowcaseComponent>): 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 { CrmPromotionContainerModule } from '../crm-promotion-container/crm-promotion-container.module';\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        CrmPromotionContainerModule,\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","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","d","ɵɵadvance","ɵɵproperty","ctx_r0","ɵɵtextInterpolate1","isEpcotEnabled","showAwayIndicator","sitecore","globalMessages","AwayIndicator","ɵɵtextInterpolate","Live","ScoreboardShowcaseComponent","epcotConfigService","module","EpcotModule","Scoreboard","vm","participant1Name","participant2Name","isEnabled","getParticipantsName","index","isParticipant1AwayTeam","isUSFormat","type","EventParticipantType","Away","ngOnChanges","changes","viewType","started","ScoreboardType","PeriodGame","periodGameScore","getScore","participant1","total","participant2","PairGame","pairGameScore","SetGame","setGameScore","participant1WonSets","participant2WonSets","BaseballGame","baseBallScore","Number","points","ɵɵdirectiveInject","Sitecore","EpcotConfigService","y","selectors","inputs","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ScoreboardShowcaseComponent_span_4_Template","ScoreboardShowcaseComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","ScoreboardShowcaseComponent_i_11_Template","preMatch_r2","live","startDate","le","ai","ci","_ScoreboardShowcaseComponent","ShowcaseTrackingService","trackingService","actionEventByMediaTabs","EventDetailsColumnType","Stats","Animation","Video","actionEventByHeaderNavTabs","Statistics","Simulation","trackTabsInteractionForMedia","eventActiveId","trackTabsInteraction","trackTabsInteractionForHeader","trackEventPageClick","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","toString","SPORT_EVENT_ID","COMPONENT_CONTENT_POSITION","tabTracking","TrackingService","_ShowcaseTrackingService","TabsShowcaseComponent_ms_scroll_adapter_0_1_ng_template_0_Template","TabsShowcaseComponent_ms_scroll_adapter_0_1_Template","activeEventid","scrollSize","stretch","tabTemplate_r2","ɵɵlistener","$event","ctx_r3","ɵɵrestoreView","_r3","tab_r5","$implicit","index_r6","ɵɵnextContext","ɵɵresetView","selected","ɵɵclassProp","TabsShowcaseComponent_ng_template_1_ul_0_li_1_Template","trackTabsBy","TabsShowcaseComponent_ng_template_1_ul_0_Template","TabsShowcaseComponent","timer","showcaseTrackingService","scrollEnabled","className","firstChange","setTimeout","scrollAdapter","setArrows","selectedEventId","scrollNeeded","updatedScrollPosition","currentValue","domEvent","preventDefault","TimerService","viewQuery","ScrollAdapterComponent","ɵɵclassMap","TabsShowcaseComponent_ms_scroll_adapter_0_Template","TabsShowcaseComponent_ng_template_1_Template","Ce","ce","Tt","Zt","qe","_TabsShowcaseComponent","ɵɵelementContainerStart","ɵɵpureFunction1","_c0","messageInfo_r1","isHighlighted","message","LiveAlertItemComponent","goto","liveAlertMessage","stopPropagation","hostVars","hostBindings","alert","LiveAlertItemComponent_ng_container_7_Template","team","messageType","K","_LiveAlertItemComponent","LiveAlertManager","queuedAlerts","alerts","newAlertSubject","emptyAlertsSubject","endOfQuarterOrPeriodId","triggerNotification","newAlert","push","alertsEmptied","parseMessage","updatedEvent","oldEvent","teamName","eventTime","CustomMessageType","isDuplicateAlert","isTeam1Message","teamType","TeamType","Team01","isTeam2Message","Team02","parsedAlert","order","team1Score","team2Score","text","SportConstant","Soccer","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","Tie","CancelledTouchDown","CancelledGoal","team1Highlight","team2Highlight","withParticipantScore","timeValue","getLatestMessages","messages","differenceBy","checkChangesInScoreOrTurn","latestLiveEvent","oldLiveEvent","isEmpty","add","score","updatedEventLatestAlert","getParticipantScores","oldEventLatestAlert","messageOrder","floor","random","icon","forEach","getTeamName","emptyList","getTime","base","Date","now","DateProviderService","timeSpan","seconds","round","minutes","pad","val","padStart","liveAlert","turn","setGameScoreboard","duplicateAlert","some","_LiveAlertManager","animationAlert","_r2","toggleExpand","LiveAlertListComponent_Conditional_2_Conditional_2_Template","ɵɵpureFunction3","_c1","animate","lastAlert","ɵɵconditional","hasAlertsForExpand","alert_r4","N","i0","ɵɵ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","unshift","shift","createInterval","setInterval","alertList","update","ChangeDetectorRef","Ge","NgScrollbar","LiveAlertListComponent_Conditional_1_Template","LiveAlertListComponent_Conditional_2_Template","LiveAlertListComponent_Conditional_3_Template","je","R","xt","_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","epcotEnabled","inject","EpcotConfig","option","options","indexOf","eventGrid","SixPack_TotalsOver","SixPack_TotalsUnder","optionName","optionNames","segment","toLowerCase","G","ShowcaseOptionGroupComponent_Conditional_0_Template","ShowcaseOptionGroupComponent_For_3_Template","ii","Qe","Xt","_ShowcaseOptionGroupComponent","optionGroup_r1","ctx_r1","OptionGroupContainerComponent_ng_container_0_ms_showcase_option_group_1_Template","showcaseOptionGroups","trackOptionGroup","OptionGroupContainerComponent","class","getHostClass","optionGroupService","MAX_OPTION_GROUPS","includes","sixPackSportTypeIds","mapOptionGroup","gridGroups","_b","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_ng_container_0_Template","_OptionGroupContainerComponent","tab_r3","ShowcaseMediaComponent_Conditional_0_Conditional_0_For_2_ng_template_1_Template","_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","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","Ft","Dt","ki","_ShowcaseMediaComponent","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","St","ShowcaseComponent_Conditional_0_Template","bt","Re","di","wi","_i","li","yt","_ShowcaseComponent","ht","mt","imports","CommonModule","TabBarModule","NgScrollbarModule","GridModule","CompetitionLogoComponent","CrmPromotionContainerModule","DirectivesModule","EventDetailsCommonModule","EventPickComponent","DsSegmentedControlModule","IconCustomComponent","_ShowcaseModule"],"mappings":"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"}