{"version":3,"file":"media.feature-ee2fpety.js","sources":["packages/sports/web/app/src/media/animations.ts","packages/sports/web/app/src/media/media-component-map.service.ts","packages/sports/web/app/src/common/dynamic-components-loader.service.ts","packages/sports/web/app/src/common/dynamic-icon-loader.component.ts","packages/sports/web/app/src/media/empty-media.html","packages/sports/web/app/src/media/empty-media.component.ts","packages/sports/web/app/src/media/scroll-to-active.directive.ts","packages/sports/web/app/src/media/event-selector.html","packages/sports/web/app/src/media/event-selector.component.ts","packages/sports/web/app/src/media/unpin-info.component.ts","packages/sports/web/app/src/media/unpin-info.html","packages/sports/web/app/src/media/video-pin.component.ts","packages/sports/web/app/src/media/video-pin.html","packages/sports/web/app/src/media/media-components.module.ts","packages/sports/web/app/src/media/media-tracking.service.ts","packages/sports/web/app/src/media/media.html","packages/sports/web/app/src/media/media.component.ts","packages/sports/web/app/src/media/media-widget.registration.ts","packages/sports/web/app/src/media/media.feature.ts"],"sourcesContent":["import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const toggleAnimations = [\n    trigger('toggleAnimation', [\n        transition(':enter', [\n            style({ 'max-height': `0px`, 'opacity': 0 }),\n            animate('500ms ease-in-out', style({ 'max-height': `500px`, 'opacity': 1 })),\n        ]),\n        transition(':leave', [\n            style({ 'opacity': 1, 'max-height': `500px`, 'height': '{{mediaHeight}}', 'filter': 'blur(2px)' }),\n            animate('300ms ease-in-out', style({ 'max-height': `0px`, 'opacity': 0 })),\n        ]),\n    ]),\n];\n","import { Injectable } from '@angular/core';\n\nimport { EventMediaHelperService } from '@frontend/sports/betting-offer/feature/media';\nimport { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { MediaConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { getAnimationIconForSport, getVideoIcon } from '@frontend/sports/common/core/feature/icon';\nimport { EventSwitcherItem, MediaModuleContextPage } from '@frontend/sports/grid/media/feature/model';\nimport { MediaState } from '@frontend/sports/grid/media/feature/state';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\nimport { findIndex } from 'lodash-es';\n\nimport { EventDetailsHelperService } from '../event-details-common/event-details-helper.service';\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\n\nexport interface MediaComponentState {\n    isAnimationAvailable: boolean;\n    isStatsExpanderVisible: boolean;\n    isEventLive: boolean;\n    isEventDetailPage: boolean;\n    isExpanded: boolean;\n    isLocationAllowsExpand: boolean;\n    restoreExpandState: boolean;\n    isDefaultExpanded: boolean;\n    collapsed: boolean;\n    tabs: TabBarItem[];\n    videoEventId: string | null;\n    videoEvent: EventModel | null;\n    animationEvent: EventModel | null;\n    statisticsEvent: EventModel | null;\n    activeTab: EventDetailsColumnType;\n    videoDropdownEvents: EventSwitcherItem[];\n    videoPinned: boolean;\n    videoUnpinInfoVisible: boolean;\n    videoAutoplay: boolean;\n    videoPlaying: boolean;\n    pinEnabled: boolean;\n    hasEventOnMedia: boolean;\n    trackingSource: TrackingVideoSource;\n    pendingEsport?: EventModel;\n}\n\n@Injectable()\nexport class MediaComponentMapService {\n    private readonly defaultBackgroundColor = 'black';\n\n    constructor(\n        private eventDetailsHelper: EventDetailsHelperService,\n        private eventMediaHelperService: EventMediaHelperService,\n        private mediaConfig: MediaConfig,\n    ) {}\n\n    mapContent(mediaState: MediaState): MediaComponentState {\n        const animationEvent = mediaState.animation.eventId ? mediaState.eventInfos[mediaState.animation.eventId].event : null;\n        const statisticsEvent = mediaState.statistics.eventId ? mediaState.eventInfos[mediaState.statistics.eventId].event : null;\n        const videoEvent = mediaState.video.eventId ? mediaState.eventInfos[mediaState.video.eventId].event : null;\n        const isAnimationAvailable = !!animationEvent && this.eventMediaHelperService.hasAnimation(animationEvent);\n        const isStatsExpanderVisible = !(statisticsEvent && statisticsEvent.sport.id === SportConstant.Soccer);\n        const isEventLive = videoEvent ? videoEvent.live : false;\n        let hasSecondEventStream = false;\n        if (mediaState.context.eventId && Object.keys(mediaState.eventInfos).length > 1) {\n            const secondEvent = mediaState.eventInfos[mediaState.context.eventId];\n            if (secondEvent) {\n                hasSecondEventStream = secondEvent.event.stream !== undefined;\n            }\n        }\n\n        const isEventDetailPage = mediaState.context.page === MediaModuleContextPage.EventDetails;\n        const collapsed = mediaState.isCollapsed;\n\n        return {\n            trackingSource: mediaState.video.trackingSource,\n            isAnimationAvailable,\n            isStatsExpanderVisible,\n            isEventLive,\n            isEventDetailPage,\n            isExpanded: mediaState.mediaExpandState.isExpanded,\n            isLocationAllowsExpand: mediaState.mediaExpandState.isLocationAllowsExpand,\n            restoreExpandState: mediaState.mediaExpandState.restoreExpandState,\n            isDefaultExpanded: mediaState.mediaExpandState.isDefaultExpanded,\n            collapsed,\n            videoEventId: mediaState.video.eventId,\n            videoEvent,\n            animationEvent,\n            statisticsEvent,\n            activeTab:\n                !this.mediaConfig.showVideoStreaming && mediaState.activeTab === EventDetailsColumnType.Video\n                    ? EventDetailsColumnType.Animation\n                    : mediaState.activeTab,\n            videoDropdownEvents: mediaState.video.dropdownEvents,\n            videoPinned: mediaState.video.pinned,\n            videoUnpinInfoVisible: mediaState.video.unpinInfoVisible && hasSecondEventStream,\n            videoAutoplay: mediaState.video.autoplay,\n            videoPlaying: mediaState.video.playing && mediaState.activeTab === EventDetailsColumnType.Video && videoEvent !== null,\n            tabs: this.mapTabs(mediaState),\n            pinEnabled: !!mediaState.video.eventId && mediaState.video.pinEnabled,\n            hasEventOnMedia: Object.keys(mediaState.eventInfos).length > 0,\n            pendingEsport: mediaState.pendingEsport,\n        };\n    }\n\n    mapTabs(mediaState: MediaState): TabBarItem[] {\n        const tabs: TabBarItem[] = [];\n        const sportId = mediaState.animation.eventId ? mediaState.eventInfos[mediaState.animation.eventId].event.sport.id : SportConstant.Soccer;\n        const eventId = mediaState.statistics.eventId ? mediaState.eventInfos[mediaState.statistics.eventId].event : null;\n        if (this.mediaConfig.showVideoStreaming) {\n            tabs.push({\n                id: EventDetailsColumnType.Video,\n                title: mediaState.video.pinned ? '<span class=\"theme-pin-pinned\"></span>' : '',\n                icon: getVideoIcon(false),\n            });\n        }\n        tabs.push({\n            id: EventDetailsColumnType.Animation,\n            title: '',\n            icon: getAnimationIconForSport(sportId, false),\n            disabled: mediaState.animation.eventId\n                ? !this.eventMediaHelperService.hasAnimationOrSimulation(mediaState.eventInfos[mediaState.animation.eventId].event)\n                : true,\n        });\n        tabs.push({\n            id: EventDetailsColumnType.Stats,\n            title: '',\n            icon: 'sports-stats',\n            disabled: mediaState.statistics.eventId\n                ? !(\n                      this.eventDetailsHelper.hasStats(eventId) ||\n                      (this.eventDetailsHelper.hasBetRadarMappingID(eventId) && this.mediaConfig.showStatsCenterButton)\n                  )\n                : true,\n        });\n\n        let activeIndex = findIndex(tabs, (tab) => tab.id === mediaState.activeTab);\n\n        if (activeIndex < 0) {\n            activeIndex = 0;\n        }\n        tabs[activeIndex].active = true;\n\n        return tabs;\n    }\n\n    getBackgroundcolor(mediaState: MediaComponentState, type: EventDetailsColumnType): string {\n        if (type === EventDetailsColumnType.Video) {\n            return this.getBackground(mediaState.videoEvent, true);\n        } else if (type === EventDetailsColumnType.Animation) {\n            return this.getBackground(mediaState.animationEvent, mediaState.isAnimationAvailable);\n        } else if (type === EventDetailsColumnType.Stats) {\n            return this.getBackground(mediaState.statisticsEvent, false);\n        } else {\n            return this.getBackground(mediaState.animationEvent, false);\n        }\n    }\n\n    private getBackground(animationEvent: EventModel | null, isAnimationAvailable: boolean): string {\n        if (animationEvent === null) {\n            return this.defaultBackgroundColor;\n        }\n\n        return this.eventDetailsHelper.getBackgroundColor(animationEvent, isAnimationAvailable) || this.defaultBackgroundColor;\n    }\n}\n","import {\n    AfterViewInit,\n    Directive,\n    ElementRef,\n    EnvironmentInjector,\n    Injectable,\n    InjectionToken,\n    Injector,\n    Type,\n    createComponent,\n    inject,\n    reflectComponentType,\n} from '@angular/core';\n\nexport const DYNAMIC_COMPONENT = new InjectionToken<{\n    selector: string;\n    componentType: Type<any>;\n}>('component');\n\n@Injectable()\nexport class DynamicComponentsLoaderService {\n    private components = new Map<string, Type<any>>();\n\n    private providedComponents =\n        inject<\n            Array<{\n                selector: string;\n                componentType: Type<any>;\n            }>\n        >(DYNAMIC_COMPONENT, { optional: true }) ?? [];\n\n    allComponents = () => {\n        let componentList = [];\n        for (let [key, value] of this.components.entries()) {\n            componentList.push({ selector: key, componentType: value });\n        }\n        return componentList;\n    };\n\n    constructor() {\n        this.providedComponents.forEach((x) => this.register(x.selector, x.componentType));\n    }\n\n    register(selector: string, componentClass: Type<any>) {\n        this.components.set(selector, componentClass);\n    }\n\n    get(selector: string) {\n        return this.components.get(selector);\n    }\n}\n\n@Directive({\n    standalone: true,\n    selector: '[msRenderDynamic]',\n})\nexport class RenderDynamicDirective implements AfterViewInit {\n    elementRef = inject(ElementRef);\n    injector = inject(Injector);\n    envInjector = inject(EnvironmentInjector);\n\n    dynamicComponents = inject(DynamicComponentsLoaderService);\n\n    ngAfterViewInit() {\n        const allComponents = this.dynamicComponents.allComponents();\n\n        allComponents.forEach((component) => {\n            const element = this.elementRef.nativeElement as HTMLElement;\n            const foundElements = Array.from(element.querySelectorAll(component.selector));\n\n            for (let elementHost of foundElements) {\n                if (elementHost) {\n                    const cmp = createComponent(component.componentType, {\n                        hostElement: elementHost,\n                        elementInjector: this.injector,\n                        environmentInjector: this.envInjector,\n                    });\n\n                    const cmpMirror = reflectComponentType(component.componentType);\n\n                    Array.from(elementHost.attributes).forEach((attribute) => {\n                        if (cmpMirror && attribute.name !== 'ng-version') {\n                            const inputExists = cmpMirror.inputs.some((x) => x.propName === attribute.name);\n                            if (inputExists) {\n                                cmp.setInput(attribute.name, attribute.value);\n                            }\n                        }\n                    });\n\n                    cmp.changeDetectorRef.detectChanges();\n                }\n            }\n        });\n    }\n}\n\nexport function provideDynamicComponents(components: Array<{ selector: string; componentType: Type<any> }>) {\n    return [\n        DynamicComponentsLoaderService,\n        ...components.map((cmp) => {\n            return {\n                provide: DYNAMIC_COMPONENT,\n                useValue: {\n                    selector: cmp.selector,\n                    componentType: cmp.componentType,\n                },\n                multi: true,\n            };\n        }),\n    ];\n}\n","import { Component, computed, inject, input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { RenderDynamicDirective, provideDynamicComponents } from './dynamic-components-loader.service';\n\n@Component({\n    selector: 'ms-dynamic-icon',\n    standalone: true,\n    imports: [RenderDynamicDirective],\n    template: `<span msRenderDynamic [innerHTML]=\"parsedHtml()\"></span>`,\n    providers: [provideDynamicComponents([{ selector: 'vn-icon', componentType: IconCustomComponent }])],\n})\nexport class DynamicIconComponent {\n    html = input.required<string>();\n    sanitizer = inject(DomSanitizer);\n\n    parsedHtml = computed(() => {\n        return this.sanitizer.bypassSecurityTrustHtml(this.html());\n    });\n}\n","<ng-container *msShowInEpcot=\"{ showInEpcot: false, module: module }\">\n    @if (isEventSelected) {\n        <vn-icon name=\"theme-info-i\" size=\"12\" />\n    }\n    <ms-dynamic-icon [html]=\"message()\" />\n</ng-container>\n<ng-container *msShowInEpcot=\"{ showInEpcot: true, module: module }\">\n    @if (isEventSelected) {\n        <ms-epcot-notification [message]=\"message()\" [notificationType]=\"'info'\" />\n    } @else {\n        <ms-dynamic-icon [html]=\"message()\" />\n    }\n</ng-container>\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, computed } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { EpcotModule } from '../common/epcot-config.service';\n\n@Component({\n    selector: 'ms-empty-media',\n    templateUrl: 'empty-media.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EmptyMediaComponent {\n    @Input() isEventSelected: boolean;\n    @Input() isEventLive: boolean;\n    @Input() emptyList: boolean;\n    @Input() isExpanded: boolean;\n    module = EpcotModule.Statsindicator;\n    @HostBinding('class') className = 'empty-media';\n\n    message = computed(() => {\n        if (this.isEventSelected) {\n            return this.isEventLive ? this.sitecore.media.NoLiveStreamingForEvent : this.sitecore.media.NoLiveStreamingForEventPrematch;\n        } else {\n            return (this.emptyList ? this.sitecore.media.SelectAnimationFromLiveEvents : this.sitecore.media.SelectMediaFromList)\n                .replace('{{videoIcon}}', '<span class=\"icon-container\"><vn-icon name=\"sports-video\" size=\"16\" /></span>')\n                .replace('{{animationIcon}}', '<span class=\"icon-container\"><vn-icon name=\"sports-4-match\" size=\"16\" /></span>');\n        }\n    });\n\n    constructor(public sitecore: Sitecore) {}\n}\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\n\n@Directive({\n    selector: '[msScrollToActive]',\n})\nexport class ScrollToActiveDirective implements AfterViewInit {\n    constructor(\n        private element: ElementRef,\n        private timer: TimerService,\n    ) {}\n\n    ngAfterViewInit(): void {\n        const child = this.element.nativeElement.querySelector('.active') as HTMLElement;\n        if (!child) {\n            return;\n        }\n\n        this.timer.setAnimationFrame(() => {\n            this.element.nativeElement.scrollTop = child.offsetTop - this.element.nativeElement.clientHeight / 2 + child.clientHeight / 2;\n        });\n    }\n}\n","<div class=\"header\" [class.collapsed]=\"collapsed\" [ngClass]=\"{ dropcontentavailable: !!eventsList.length }\" (click)=\"toggleSelector()\">\n    <div class=\"header-title\">\n        @if (selectedEvent) {\n            <vn-icon class=\"icon\" size=\"16\" [name]=\"'sports-' + selectedEvent!.sportId\" />\n            <div class=\"selected\">{{ !!selectedEvent && selectedEvent!.name }}</div>\n        }\n\n        @if (!selectedEvent) {\n            {{ selectorTitle }}\n        }\n    </div>\n    @if (!!eventsList.length) {\n        <ms-expansion-panel [collapsed]=\"collapsed\"></ms-expansion-panel>\n    }\n</div>\n@if (!collapsed && !!eventsList.length) {\n    <div class=\"content\" [ngClass]=\"containerHeight\">\n        <div class=\"list\" msScrollToActive (scroll)=\"scrolled($event)\">\n            @for (item of eventsList; track $index) {\n                <div class=\"group\">\n                    <vn-icon class=\"icon\" size=\"12\" [name]=\"'sports-' + item.id\" />\n                    <div class=\"title\">{{ item.name }}</div>\n                </div>\n                @for (child of item.children; track $index) {\n                    <div class=\"option\" [class.active]=\"selectedEventId && child.id === selectedEventId\" (click)=\"changed(child)\">\n                        <div>{{ child.name }}</div>\n                    </div>\n                }\n            }\n        </div>\n    </div>\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\nimport { EventDetailsColumnType } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { EventSwitcherEventItem, EventSwitcherItem, MediaEventSource } from '@frontend/sports/grid/media/feature/model';\nimport { IMediaRootState, MediaApiActions } from '@frontend/sports/grid/media/feature/state';\nimport { TrackingService, TrackingVideoSource, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { Store } from '@ngrx/store';\n\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { RightColumnSize } from '../layout/layout.model';\nimport { Actions } from './actions';\n\nconst containerHeightMap = {\n    [RightColumnSize.ExtraLarge]: 'size-xl',\n    [RightColumnSize.Large]: 'size-l',\n};\n\n@Component({\n    selector: 'ms-event-selector',\n    templateUrl: 'event-selector.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EventSelectorComponent implements OnInit, OnChanges {\n    @Input() eventsList: EventSwitcherItem[];\n    @Input() selectedEventId: string | null;\n    @HostBinding('class') className = 'event-selector';\n\n    collapsed = true;\n    selectedEvent: { id: string; name: string; sportId: number } | null = null;\n    containerHeight = '';\n    selectorTitle: string;\n\n    constructor(\n        public sitecore: Sitecore,\n        private elementRef: ElementRef,\n        private trackingService: TrackingService,\n        private adaptiveLayoutService: AdaptiveLayoutService,\n        private store: Store<IMediaRootState>,\n    ) {}\n\n    @HostListener('window:click', ['$event'])\n    clickout(event: any): void {\n        if (!this.elementRef.nativeElement.contains(event.target)) {\n            this.collapsed = true;\n        }\n    }\n\n    ngOnInit(): void {\n        this.getDropdownHeight();\n    }\n\n    /// <remarks>In case we are setting an event in the dropdown but cannot find it in the list, we will refresh the dropdown content(maybe stalled data).\n    /// If we still cannot find it after that, it means that the event is expired. In this case we will unset the event from Video tab</remarks>\n    ngOnChanges(changes: SimpleChanges): void {\n        this.selectorTitle = this.eventsList.length ? this.sitecore.media.EventSelectorTitle : this.sitecore.media.NoLiveStreamingEvents;\n        this.selectedEvent = null;\n        if (this.selectedEventId === null) {\n            return;\n        }\n\n        for (const sport of this.eventsList) {\n            if (!sport.children) {\n                continue;\n            }\n\n            const event = sport.children.find((child) => child.id === this.selectedEventId);\n            if (event) {\n                this.selectedEvent = { id: event.id.toString(), name: event.name, sportId: +sport.id };\n                break;\n            }\n        }\n\n        if (changes.selectedEventId) {\n            if (this.selectedEvent === null) {\n                this.fetchVideoEvents();\n            }\n\n            if (changes.selectedEventId.currentValue !== changes.selectedEventId.previousValue) {\n                this.collapsed = true;\n            }\n\n            return;\n        }\n\n        if (!!this.selectedEventId && !this.selectedEvent) {\n            this.unsetEvent();\n        }\n    }\n\n    getDropdownHeight(): void {\n        if (this.selectedEventId !== null) {\n            //TODO any index issue, probably a defect, please investigate\n            //@ts-ignore this looks wrong, below we use ColumnSize enum, but the map object is using RightColumnSize\n            this.containerHeight = containerHeightMap[this.adaptiveLayoutService.current.rightColumnSize] || '';\n        }\n    }\n\n    changed(event: EventSwitcherEventItem): void {\n        this.toggleSelector();\n        if (event.id !== this.selectedEventId) {\n            this.trackingService.track(trackingConstants.EVENT_MEDIA, {\n                [trackingConstants.COMPONENT_SITE_ELEMENT_INTERCATIONS]: 'MediaModule_EventSwitcher_EventChanged',\n            });\n            this.setDropdownEvent(event.id.toString());\n        }\n    }\n\n    toggleSelector(): void {\n        this.collapsed = !this.collapsed;\n        this.getDropdownHeight();\n    }\n\n    scrolled(event: Event): void {\n        event.stopPropagation();\n    }\n\n    private fetchVideoEvents(): void {\n        this.store.dispatch(Actions.fetchVideoEvents());\n    }\n\n    private unsetEvent(): void {\n        this.store.dispatch(Actions.unsetEvent({ columnType: EventDetailsColumnType.Video }));\n    }\n\n    private setDropdownEvent(eventId: string): void {\n        this.store.dispatch(\n            MediaApiActions.setEventId({\n                payload: {\n                    eventId,\n                    source: MediaEventSource.EventSwitcher,\n                    tab: EventDetailsColumnType.Video,\n                    trackingVideoSource: TrackingVideoSource.EventSwitcher,\n                },\n            }),\n        );\n    }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\n\nimport { Actions } from './actions';\n\n@Component({\n    selector: 'ms-unpin-info',\n    templateUrl: 'unpin-info.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class UnpinInfoComponent {\n    @HostBinding('class') className = 'unpin-info';\n\n    constructor(\n        public sitecore: Sitecore,\n        private store: Store,\n    ) {}\n\n    close(): void {\n        this.closeInfoMessage();\n    }\n\n    private closeInfoMessage(): void {\n        this.store.dispatch(Actions.acceptUnpinInfoMessage());\n    }\n}\n","<div class=\"unpin-info-message-close\" (click)=\"close()\">\n    <vn-icon name=\"theme-ex\" size=\"11\" />\n</div>\n<span>{{ sitecore.media.UnpinOnboarding }}</span>\n<div class=\"unpin-info-message-arrow\"></div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output, computed } from '@angular/core';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\n\n@Component({\n    selector: 'ms-video-pin',\n    templateUrl: 'video-pin.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VideoPinComponent {\n    @HostBinding('class.pinned')\n    @Input()\n    isPinned: boolean;\n\n    @HostBinding('class.video-pin')\n    class = true;\n\n    @HostBinding('class.disabled')\n    @Input()\n    disabled: boolean;\n\n    @Output()\n    toggle = new EventEmitter<void>();\n\n    @HostListener('click')\n    onClick(): void {\n        if (!this.disabled) {\n            this.toggle.emit();\n        }\n    }\n\n    readonly isEpcotEnabled = computed(() => this.epcotConfigService.isEnabled());\n\n    constructor(private epcotConfigService: EpcotConfigService) {}\n}\n","<vn-icon\n    class=\"pin-icon\"\n    [class.pin-pinned]=\"isPinned\"\n    [name]=\"isPinned ? 'theme-pin-pinned' : 'theme-pin-unpinned'\"\n    [size]=\"isEpcotEnabled() ? '14' : '16'\" />\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { RenderDynamicDirective } from '../common/dynamic-components-loader.service';\nimport { DynamicIconComponent } from '../common/dynamic-icon-loader.component';\nimport { ShowInEpcotDirective } from '../common/epcot-config.directive';\nimport { EpcotNotificationComponent } from '../common/epcotNotifications/notification.component';\nimport { ExpansionPanelComponent } from '../common/expansion-panel/expansion-panel.component';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { TabBarModule } from '../tab-bar/tab-bar.module';\nimport { EmptyMediaComponent } from './empty-media.component';\nimport { EventSelectorComponent } from './event-selector.component';\nimport { ScrollToActiveDirective } from './scroll-to-active.directive';\nimport { UnpinInfoComponent } from './unpin-info.component';\nimport { VideoPinComponent } from './video-pin.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        DirectivesModule,\n        ShowInEpcotDirective,\n        EpcotNotificationComponent,\n        TabBarModule,\n        ExpansionPanelComponent,\n        IconCustomComponent,\n        RenderDynamicDirective,\n        DynamicIconComponent,\n    ],\n    declarations: [EmptyMediaComponent, EventSelectorComponent, VideoPinComponent, ScrollToActiveDirective, UnpinInfoComponent],\n    exports: [\n        DirectivesModule,\n        TabBarModule,\n        EmptyMediaComponent,\n        EventSelectorComponent,\n        VideoPinComponent,\n        ScrollToActiveDirective,\n        UnpinInfoComponent,\n    ],\n})\nexport class MediaComponentsModule {}\n","import { Injectable } from '@angular/core';\n\nimport { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class MediaTrackingService {\n    private mediaTabs = {\n        [EventDetailsColumnType.Stats]: 'stats tab',\n        [EventDetailsColumnType.Animation]: 'animation tab',\n        [EventDetailsColumnType.Video]: 'video tab',\n    };\n\n    constructor(private trackingService: TrackingService) {}\n\n    trackTabClick(eventActiveId: EventDetailsColumnType, event: EventModel | null, index: number): void {\n        if (!event) {\n            return;\n        }\n\n        const trackingData = {\n            ...this.baseTracking,\n            [trackingConstants.COMPONENT_ACTION_EVENT]: 'click',\n            [trackingConstants.COMPONENT_EVENT_DETAILS]: this.mediaTabs[eventActiveId] ?? NOT_APPLICABLE,\n            [trackingConstants.SPORT_ID]: event.sport.id.toString(),\n            [trackingConstants.SPORT_EVENT_ID]: event.id.toString(),\n            [trackingConstants.COMPONENT_CONTENT_POSITION]: index.toString(),\n        };\n\n        this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n    }\n\n    trackPanelToggle(isCollapsed: boolean): void {\n        const trackingData = {\n            ...this.baseTracking,\n            [trackingConstants.COMPONENT_ACTION_EVENT]: isCollapsed ? 'Expand' : 'Collapse',\n        };\n\n        this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n    }\n\n    trackPin(isPinned: boolean): void {\n        const trackingData = {\n            ...this.baseTracking,\n            [trackingConstants.COMPONENT_ACTION_EVENT]: isPinned ? 'unpin' : 'pin',\n            [trackingConstants.COMPONENT_EVENT_DETAILS]: 'video',\n        };\n\n        this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n    }\n\n    private get baseTracking(): TrackData {\n        return {\n            [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Media Module',\n            [trackingConstants.COMPONENT_LABEL_EVENT]: 'Media Module Interactions',\n            [trackingConstants.COMPONENT_ACTION_EVENT]: NOT_APPLICABLE,\n            [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n            [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n            [trackingConstants.COMPONENT_EVENT_DETAILS]: NOT_APPLICABLE,\n            [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n        };\n    }\n}\n","@if (!!mediaState) {\n    <div class=\"event-details-column\">\n        <div class=\"options-panel\" [ngClass]=\"{ collapsed: mediaState.collapsed }\">\n            <div class=\"media-header\">{{ sitecore.media.Title }}</div>\n            <ms-tab-bar [tabs]=\"mediaState.tabs\" [scrollEnabled]=\"false\" (select)=\"tabSelected($event)\"></ms-tab-bar>\n            <ms-expansion-panel\n                class=\"expansion-panel\"\n                [collapsed]=\"mediaState.collapsed\"\n                (panelToggle)=\"panelToggled(mediaState.collapsed)\"></ms-expansion-panel>\n        </div>\n        @if (!mediaState.collapsed) {\n            <div\n                id=\"mediaContainer\"\n                class=\"content-container media-container\"\n                aria-haspopup=\"true\"\n                [@toggleAnimation]=\"{ value: undefined, params: { mediaHeight: mediaHeight + 'px' } }\">\n                @if (isExpandedMediaEnabled && !mediaState.videoPlaying) {\n                    <div\n                        class=\"media-expander\"\n                        [ngClass]=\"{ 'media-expander--visible': deviceService.isTablet }\"\n                        [msClassAutoRemove]=\"'media-expander--mobile-expand'\"\n                        [msClassAutoRemoveTime]=\"EXPAND_BUTTON_FADE_TIME\"\n                        (click)=\"toggleExpand(!mediaState.isExpanded)\"\n                        [(msClassAutoRemoveIsClassVisible)]=\"isMobileExpand\">\n                        <span class=\"media-fullscreen\">\n                            <vn-icon size=\"15\" [name]=\"mediaState.isExpanded ? 'theme-fullscreen-exit' : 'theme-fullscreen'\" />\n                        </span>\n                    </div>\n                }\n                @switch (mediaState.activeTab) {\n                    @case (tabType.Video) {\n                        <div class=\"event-selector-container\">\n                            <ms-event-selector\n                                [eventsList]=\"mediaState.videoDropdownEvents\"\n                                [selectedEventId]=\"mediaState.videoEventId\"></ms-event-selector>\n                            <ms-video-pin\n                                [isPinned]=\"!!mediaState.videoPinned\"\n                                [disabled]=\"!mediaState.pinEnabled\"\n                                (toggle)=\"togglePin(!!mediaState.videoPinned)\"></ms-video-pin>\n                            @if (mediaState.videoUnpinInfoVisible) {\n                                <ms-unpin-info></ms-unpin-info>\n                            }\n                        </div>\n                        <div\n                            class=\"video-container\"\n                            [ngClass]=\"getBackground(mediaState, tabType.Video)\"\n                            [ngStyle]=\"videoAndAnimationBgColor\"\n                            [style.height]=\"streamingMessageHeight\">\n                            @if (mediaState.videoEvent && (!mediaState.pendingEsport || mediaState.videoPinned)) {\n                                <ng-container *msComponentProxy=\"videoStreamComponent\"> </ng-container>\n                            }\n                            @if (isOnEventDetails && mediaState.pendingEsport && !mediaState.videoEvent) {\n                                <ms-video-stream-button disabled [event]=\"mediaState.pendingEsport\" [isEventPending]=\"true\"></ms-video-stream-button>\n                            }\n                        </div>\n                        @if (!mediaState.videoEvent && !mediaState.pendingEsport) {\n                            <ms-empty-media\n                                [isEventSelected]=\"mediaState.isEventDetailPage || mediaState.hasEventOnMedia\"\n                                [emptyList]=\"mediaState.videoDropdownEvents.length < 1\"\n                                [isEventLive]=\"mediaState.isEventLive\"></ms-empty-media>\n                        }\n                    }\n                    @case (tabType.Animation) {\n                        <div class=\"animation\" [ngClass]=\"getBackground(mediaState, tabType.Animation)\" [ngStyle]=\"videoAndAnimationBgColor\">\n                            @if (!isAnimationDisabled()) {\n                                @if (!mediaState.isAnimationAvailable) {\n                                    <ms-match-simulation\n                                        [runningBall]=\"mediaState.animationEvent?.runningBallDataId\"\n                                        [awayTeam]=\"(mediaState.animationEvent?.participants)[1].name\"\n                                        [homeTeam]=\"(mediaState.animationEvent?.participants)[0].name\"\n                                        [inColumn]=\"true\"></ms-match-simulation>\n                                } @else {\n                                    <ng-container *msComponentProxy=\"animationComponent\"></ng-container>\n                                }\n                            } @else {\n                                <ms-empty-media [emptyList]=\"true\"></ms-empty-media>\n                            }\n                        </div>\n                    }\n                    @case (tabType.Stats) {\n                        <div [ngClass]=\"getBackground(mediaState, tabType.Stats)\" [ngStyle]=\"statsBgColor\">\n                            @if (mediaState.statisticsEvent) {\n                                <ndc-dynamic\n                                    [ndcDynamicComponent]=\"eventStatisticsComponent$ | async\"\n                                    [ndcDynamicInputs]=\"{ event: mediaState.statisticsEvent, inColumn: true }\"\n                                    [ndcDynamicOutputs]=\"eventStatisticsComponentOutputs\" />\n                            }\n                        </div>\n                    }\n                }\n            </div>\n        }\n    </div>\n}\n","import { AsyncPipe, DOCUMENT, NgClass, NgStyle } from '@angular/common';\nimport { Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { EventDetailsColumnType, EventModel, isBespokeSport } from '@frontend/sports/betting-offer/feature/model';\nimport { ShortNameModule, ShortTeamNamesService } from '@frontend/sports/betting-offer/feature/short-team-names';\nimport { MediaConfig, ScoreboardBackgroundConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { MediaTab } from '@frontend/sports/grid/media/feature/model';\nimport { IMediaRootState, MediaState, mediaStateSelector } from '@frontend/sports/grid/media/feature/state';\nimport { TrackingService, TrackingVideoSource, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { DeviceService, MediaQueryService } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { Store } from '@ngrx/store';\nimport { round } from 'lodash-es';\nimport { DynamicComponent, DynamicIoDirective } from 'ng-dynamic-component';\nimport { Observable, defer, map } from 'rxjs';\n\nimport { AnimationComponentLoaderService, EventAnimationBinding } from '../animation/animation-component-loader.service';\nimport { ExpansionPanelComponent } from '../common/expansion-panel/expansion-panel.component';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { ColumnSize } from '../layout/layout.model';\nimport { MatchSimulationComponent } from '../match-simulation/match-simulation.component';\nimport { TabBarEvent } from '../tab-bar/tab-bar.models';\nimport { VideoStreamButtonComponent } from '../video-stream/video-stream-button/video-stream-button.component';\nimport { EventVideoStreamBinding, VideoStreamComponentLoaderService } from '../video-stream/video-stream-component-loader.service';\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\nimport { Actions } from './actions';\nimport { toggleAnimations } from './animations';\nimport { MediaComponentMapService, MediaComponentState } from './media-component-map.service';\nimport { MediaComponentsModule } from './media-components.module';\nimport { MediaTrackingService } from './media-tracking.service';\n\nclass TrackingEventNames {\n    /* eslint-disable @typescript-eslint/naming-convention, no-underscore-dangle, id-blacklist, id-match */\n    static readonly MediaModule_Animation_Tab_Click = 'MediaModule_Animation_Tab_Click';\n    static readonly MediaModule_Video_Tab_Click = 'MediaModule_Video_Tab_Click';\n    static readonly MediaModule_Stats_Tab_Click = (sportId: number): string => `Bet_Radar_GridStats_MediaModule_SB_ ${sportId}_Click`;\n}\n\nconst tabClickTrackingEvent = {\n    [EventDetailsColumnType.Video]: TrackingEventNames.MediaModule_Video_Tab_Click,\n    [EventDetailsColumnType.Animation]: TrackingEventNames.MediaModule_Animation_Tab_Click,\n    [EventDetailsColumnType.Stats]: (sportId: number) => TrackingEventNames.MediaModule_Stats_Tab_Click(sportId),\n};\n\n@Component({\n    selector: 'ms-media',\n    templateUrl: 'media.html',\n    providers: [MediaComponentMapService, MediaTrackingService], // additionally registering dedicated tracking\n    // service, to make sure modular-tracking.service overrides tracking.service\n    animations: [toggleAnimations],\n    standalone: true,\n    imports: [\n        DynamicIoDirective,\n        DynamicComponent,\n        MediaComponentsModule,\n        AsyncPipe,\n        NgClass,\n        NgStyle,\n        ExpansionPanelComponent,\n        MatchSimulationComponent,\n        ComponentProxyDirective,\n        VideoStreamButtonComponent,\n        IconCustomComponent,\n    ],\n})\nexport class MediaComponent extends WidgetComponent<never> implements OnInit, OnDestroy {\n    tabType = EventDetailsColumnType;\n    mediaState: MediaComponentState;\n    statsCollapsed = true;\n    sportType = SportConstant;\n    isExpandedMediaEnabled: boolean;\n    isMobileExpand: boolean;\n\n    readonly EXPAND_BUTTON_FADE_TIME = 500; // 0.5 sec\n\n    private mediaState$: Observable<MediaState>;\n    trackingSource = '';\n    private readonly trackingMap = {\n        [EventDetailsColumnType.Video]: 'VideoTab',\n        [EventDetailsColumnType.Stats]: 'StatsTab',\n        [EventDetailsColumnType.Animation]: 'AnimationTab',\n    };\n\n    private mediaSize = new Map<string, { target?: string; width: number }[]>([\n        [ColumnSize.ExtraLarge, [{ width: 550 }]],\n        [ColumnSize.Large, [{ width: 440 }]],\n        [ColumnSize.Default, [{ target: 'gt-mw', width: 375 }, { width: 350 }]],\n    ]);\n\n    eventStatisticsComponent$ = defer(() => import('../statistics/event-statistics.component')).pipe(map((c) => c.EventStatisticsComponent));\n\n    eventStatisticsComponentOutputs = {\n        toggle: (expand: boolean) => this.onFootballStatExpand(expand),\n    };\n\n    private readonly _doc = inject(DOCUMENT);\n\n    constructor(\n        public sitecore: Sitecore,\n        public deviceService: DeviceService,\n        private trackingService: TrackingService,\n        private mapperService: MediaComponentMapService,\n        private mediaConfig: MediaConfig,\n        private scrollContainer: ScrollContainerService,\n        private routerEventsService: RouterEventsService,\n        private mediaService: MediaQueryService,\n        private competitionLogosService: CompetitionLogosService,\n        private scoreboardBackgrounds: ScoreboardBackgroundConfig,\n        private shortTeamNamesService: ShortTeamNamesService,\n        loader: AnimationComponentLoaderService,\n        private store: Store<IMediaRootState>,\n        private mediaTrackingService: MediaTrackingService,\n        videoLoader: VideoStreamComponentLoaderService,\n        private layoutService: AdaptiveLayoutService,\n    ) {\n        super();\n        this.mediaState$ = store.select(mediaStateSelector);\n        this.animationComponent = loader.getAnimationComponent();\n        this.videoStreamComponent = videoLoader.getVideoStreamComponent();\n        this.videoStreamComponent.subscribeToOutputs({ toggleMediaExpand: this.toggleMediaExpand });\n    }\n\n    sportId: number | null;\n    isStatsExpanded = false;\n    isLiveEvent: boolean | null;\n    videoAndAnimationBgColor = {};\n    statsBgColor = { 'background-image': '' };\n    mediaHeight = 0;\n    animationComponent: ComponentProxy<EventAnimationBinding>;\n    videoStreamComponent: ComponentProxy<EventVideoStreamBinding>;\n    private isEsport: boolean;\n    streamingMessageHeight?: string;\n    isOnEventDetails: boolean;\n\n    ngOnInit(): void {\n        this.init();\n\n        this.mediaState$\n            .pipe(\n                map((mediaState: MediaState) => {\n                    this.sportId = this.getSportId(mediaState);\n\n                    const videoEvent = mediaState.video.eventId ? mediaState.eventInfos[mediaState.video.eventId].event : null;\n                    this.isEsport = !!videoEvent?.sport.isEsport;\n\n                    const statisticsEvent = mediaState.statistics.eventId ? mediaState.eventInfos[mediaState.statistics.eventId].event : null;\n                    this.isLiveEvent = statisticsEvent && statisticsEvent.live;\n\n                    return this.mapperService.mapContent(mediaState);\n                }),\n                takeUntilDestroyed(this.destroyRef),\n            )\n            .subscribe((mediaComponentState) => {\n                const previous = this.mediaState;\n                const last = mediaComponentState;\n                if (last.trackingSource !== TrackingVideoSource.Default) {\n                    this.trackingSource = last.trackingSource;\n                }\n\n                const scrollToTop =\n                    !previous ||\n                    last.activeTab !== previous.activeTab ||\n                    (last.animationEvent && last.animationEvent.id) !== (previous.animationEvent && previous.animationEvent.id) ||\n                    (last.statisticsEvent && last.statisticsEvent.id) !== (previous.statisticsEvent && previous.statisticsEvent.id) ||\n                    last.videoEventId !== previous.videoEventId;\n\n                if (scrollToTop) {\n                    this.scrollContainer.scrollTo(0, 0);\n                }\n                this.mediaState = mediaComponentState;\n                this.statsCollapsed = mediaComponentState.isStatsExpanderVisible;\n\n                this.setShortNames();\n                this.setBackGroundColor();\n                this.setAnimation();\n                this.setVideoStream();\n                this.setStreamMessageHeight();\n            });\n\n        this.routerEventsService.currentActivationEnd\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe((event) => this.onCurrentActivationEnd(event));\n\n        this.mediaService\n            .observe()\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe(() => this.madiaSizeChanged());\n\n        this.setBackGroundColor();\n        this.setStreamMessageHeight();\n    }\n\n    isAnimationDisabled(): boolean {\n        return this.mediaState.tabs.findIndex((tab) => tab.id === EventDetailsColumnType.Animation && tab.disabled) > -1;\n    }\n\n    private setShortNames(): void {\n        const event = this.mediaState.animationEvent;\n\n        if (!event || !this.competitionLogosService.getLogoUrl(event.sport.id, event.league.id) || !event.participants.length) {\n            return;\n        }\n\n        if (\n            event.participants.length > 0 &&\n            this.shortTeamNamesService.shouldUseShortName(event.participants[0], event.sport.id, event.league.id, ShortNameModule.Grids)\n        ) {\n            this.setShortName('01', 0);\n        }\n\n        if (\n            event.participants.length > 1 &&\n            this.shortTeamNamesService.shouldUseShortName(event.participants[1], event.sport.id, event.league.id, ShortNameModule.Grids)\n        ) {\n            this.setShortName('02', 1);\n        }\n    }\n\n    private setShortName(player: string, index: number): void {\n        const scoreboard = this.mediaState.animationEvent!.scoreboard as any;\n        const participants = this.mediaState.animationEvent!.participants;\n\n        const val = participants[index].shortName;\n\n        if (scoreboard.playerInfo) {\n            scoreboard.playerInfo.players[player].teamName = val;\n        }\n\n        if (scoreboard.score?.playerInfo) {\n            scoreboard.score.playerInfo.players[player].teamName = val;\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.toggleMediaModule(false);\n    }\n\n    tabSelected(event: TabBarEvent<EventDetailsColumnType>): void {\n        const mediaTab: MediaTab = { tabId: event.active.id, trackingSource: TrackingVideoSource.Default };\n        const tabIndex = this.mediaState.tabs.findIndex((tab) => tab.id === mediaTab.tabId);\n        if (tabClickTrackingEvent[event.active.id]) {\n            mediaTab.trackingSource = TrackingVideoSource.MediaColumn;\n\n            const mapEventObjByTabs: Record<EventDetailsColumnType, EventModel | null> = {\n                [EventDetailsColumnType.Stats]: this.mediaState.statisticsEvent,\n                [EventDetailsColumnType.Animation]: this.mediaState.animationEvent,\n                [EventDetailsColumnType.Video]: this.mediaState.videoEvent,\n            };\n\n            this.mediaTrackingService.trackTabClick(event.active.id, mapEventObjByTabs[event.active.id], tabIndex);\n        }\n\n        if (!event.active.disabled) {\n            this.toggleCollapsedState(this.mediaState.tabs.length === 1 ? !this.mediaState.collapsed : false);\n            this.updateActiveTab(mediaTab);\n        }\n        this.setAnimationHeight();\n    }\n\n    panelToggled(collapsed: boolean): void {\n        this.mediaTrackingService.trackPanelToggle(collapsed);\n        this.toggleCollapsedState(!collapsed);\n        this.setAnimationHeight();\n    }\n\n    statsToggled(): void {\n        this.statsCollapsed = !this.statsCollapsed;\n    }\n\n    getBackground(mediaState: MediaComponentState, type: EventDetailsColumnType): string {\n        if (type === EventDetailsColumnType.Animation) {\n            const animationHeight = mediaState.isAnimationAvailable ? 'animation-height' : '';\n\n            return animationHeight + ' ' + this.mapperService.getBackgroundcolor(mediaState, type);\n        } else if (type === EventDetailsColumnType.Stats) {\n            const statsClass = 'stats-column';\n            const collapsedClass = !this.isStatsExpanded ? 'prematch-collapsed' : '';\n\n            return statsClass + ' ' + collapsedClass + ' ' + this.mapperService.getBackgroundcolor(mediaState, type);\n        }\n\n        return this.mapperService.getBackgroundcolor(mediaState, type);\n    }\n\n    onFootballStatExpand(expand: boolean): void {\n        this.isStatsExpanded = expand;\n    }\n\n    madiaSizeChanged(): void {\n        this.store.dispatch(Actions.breakpointChanged());\n    }\n\n    togglePin(isPinned: boolean): void {\n        this.mediaTrackingService.trackPin(isPinned);\n        this.store.dispatch(Actions.togglePin({ value: !isPinned }));\n    }\n\n    toggleMediaExpand = () => {\n        this.toggleExpand(!this.mediaState.isExpanded);\n    };\n\n    toggleExpand(restoreExpandState: boolean): void {\n        if (this.deviceService.isMobile) {\n            this.isMobileExpand = true;\n        }\n\n        const state = this.mediaState.isExpanded ? 'Collapse' : 'Expand';\n        let activeTab = this.trackingMap[this.mediaState.activeTab];\n\n        if (!this.mediaState.videoEvent && activeTab === this.trackingMap[EventDetailsColumnType.Video]) {\n            activeTab = 'MediaTab';\n        }\n\n        this.trackingService.track(trackingConstants.EVENT_MEDIA, {\n            [trackingConstants.COMPONENT_SITE_ELEMENT_INTERCATIONS]: `MediaModule_${state}_${activeTab}`,\n        });\n\n        this.store.dispatch(Actions.toggleExpand({ value: restoreExpandState }));\n    }\n\n    private setAnimationHeight() {\n        setTimeout(() => {\n            const ele = this._doc.getElementById('mediaContainer');\n            const divHeight = ele?.offsetHeight || 0;\n            this.mediaHeight = divHeight;\n        }, 500);\n    }\n\n    private setAnimation(): void {\n        const event = this.mediaState.animationEvent;\n\n        if (event) {\n            this.animationComponent.update({ event, scoreboard: event.scoreboard, inColumn: true });\n        }\n    }\n\n    private init(): void {\n        this.store.dispatch(Actions.init());\n    }\n\n    private toggleMediaModule(enabled: boolean): void {\n        this.store.dispatch(Actions.toggleMediaModule({ value: enabled }));\n    }\n\n    private updateActiveTab(mediaTab: MediaTab): void {\n        this.store.dispatch(Actions.setActiveTab({ tab: mediaTab }));\n    }\n\n    private toggleCollapsedState(isCollapsed: boolean): void {\n        this.store.dispatch(Actions.toggleCollapsedState({ value: isCollapsed }));\n    }\n\n    private setAvailableExpandLocation(): void {\n        this.store.dispatch(Actions.setAvailableExpandLocation({ value: this.isExpandedMediaEnabled }));\n    }\n\n    private onCurrentActivationEnd(event: Optional<ActivationEnd>): void {\n        const snapshot = event?.snapshot;\n        const routeTag = snapshot?.data['tag'];\n        const sportId = snapshot?.data['model']?.model?.sport?.id ?? 0;\n        this.isOnEventDetails = routeTag === RouteTag.EventDetails;\n\n        if (sportId === this.sportType.Golf && this.isOnEventDetails) {\n            this.mediaState.isDefaultExpanded = true;\n        } else {\n            this.mediaState.isDefaultExpanded = false;\n        }\n\n        this.isExpandedMediaEnabled =\n            this.mediaConfig.isExpandedMediaEnabled && this.mediaConfig.expandedMediaEnabledLocations.indexOf(routeTag) > -1;\n\n        // Reset/restore column width\n        if (\n            (this.mediaState.isExpanded && !this.isExpandedMediaEnabled) ||\n            (this.mediaState.restoreExpandState && this.isExpandedMediaEnabled && !this.mediaState.isExpanded) ||\n            (this.mediaState.isDefaultExpanded && this.isExpandedMediaEnabled && !this.mediaState.isExpanded)\n        ) {\n            this.toggleExpand(true);\n        }\n\n        if (this.isExpandedMediaEnabled !== this.mediaState.isLocationAllowsExpand) {\n            this.setAvailableExpandLocation();\n        }\n\n        this.setStreamMessageHeight();\n    }\n\n    private setBackGroundColor = (): void => {\n        if (this.mediaState.pendingEsport) {\n            this.isEsport = !!this.mediaState.pendingEsport.sport.isEsport;\n            this.sportId = this.mediaState.pendingEsport.sport.id;\n        }\n\n        const isBeSpokeSport = isBespokeSport(this.sportId || 0, this.isEsport);\n        const background = this.scoreboardBackgrounds.backgrounds.find((x) => x.sportId === this.sportId && isBeSpokeSport);\n        if (background) {\n            const gradient = { 'background-image': `radial-gradient(circle 115px at top, ${background.innerColor}, ${background.outerColor})` };\n\n            this.videoAndAnimationBgColor = this.isEsport ? gradient : { background: background.outerColor };\n            this.statsBgColor = gradient;\n        } else {\n            this.videoAndAnimationBgColor = { background: '' };\n            this.statsBgColor = { 'background-image': '' };\n        }\n    };\n\n    private getSportId(mediaState: MediaState): number {\n        if (mediaState.statistics.eventId) {\n            return mediaState.eventInfos[mediaState.statistics.eventId].event.sport.id;\n        } else if (mediaState.animation.eventId) {\n            return mediaState.eventInfos[mediaState.animation.eventId].event.sport.id;\n        } else if (mediaState.video.eventId) {\n            return mediaState.eventInfos[mediaState.video.eventId].event.sport.id;\n        }\n\n        return 0;\n    }\n\n    private setVideoStream(): void {\n        const event = this.mediaState.videoEvent;\n\n        if (event) {\n            this.videoStreamComponent.update({\n                event,\n                inColumn: true,\n                autoplay: this.mediaState.videoAutoplay,\n                isExpanded: this.mediaState.isExpanded,\n                isExpandEnabled: this.isExpandedMediaEnabled,\n                trackingSource: this.trackingSource,\n            });\n        }\n    }\n\n    private setStreamMessageHeight(): void {\n        if (this.isOnEventDetails && this.mediaState.pendingEsport) {\n            const sizes = this.mediaSize.get(this.layoutService.current.rightColumnSize) || [];\n            for (const size of sizes) {\n                if (!size.target || this.mediaService.isActive(size.target)) {\n                    this.streamingMessageHeight = `${round((size.width * 9) / 16)}px`;\n                    break;\n                }\n            }\n        } else {\n            this.streamingMessageHeight = undefined;\n        }\n    }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { OnFeatureInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistryService } from '../widget/core/widget-registry.service';\nimport { MediaComponent } from './media.component';\n\n@Injectable({ providedIn: 'root' })\nexport class MediaWidgetRegistration implements OnFeatureInit {\n    constructor(private widgetRegistry: WidgetRegistryService) {}\n\n    onFeatureInit() {\n        this.widgetRegistry.registerLazy(WidgetType.Media, MediaComponent);\n    }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { MediaWidgetRegistration } from './media-widget.registration';\n\nexport function provide() {\n    return [runOnFeatureInit(MediaWidgetRegistration)];\n}\n"],"names":["toggleAnimations","trigger","transition","style","animate","MediaComponentMapService","constructor","eventDetailsHelper","eventMediaHelperService","mediaConfig","defaultBackgroundColor","mapContent","mediaState","animationEvent","animation","eventId","eventInfos","event","statisticsEvent","statistics","videoEvent","video","isAnimationAvailable","hasAnimation","isStatsExpanderVisible","sport","id","SportConstant","Soccer","isEventLive","live","hasSecondEventStream","context","Object","keys","length","secondEvent","stream","undefined","isEventDetailPage","page","MediaModuleContextPage","EventDetails","collapsed","isCollapsed","trackingSource","isExpanded","mediaExpandState","isLocationAllowsExpand","restoreExpandState","isDefaultExpanded","videoEventId","activeTab","showVideoStreaming","EventDetailsColumnType","Video","Animation","videoDropdownEvents","dropdownEvents","videoPinned","pinned","videoUnpinInfoVisible","unpinInfoVisible","videoAutoplay","autoplay","videoPlaying","playing","tabs","mapTabs","pinEnabled","hasEventOnMedia","pendingEsport","sportId","push","title","icon","getVideoIcon","getAnimationIconForSport","disabled","hasAnimationOrSimulation","Stats","hasStats","hasBetRadarMappingID","showStatsCenterButton","activeIndex","findIndex","tab","active","getBackgroundcolor","type","getBackground","getBackgroundColor","ɵɵinject","EventDetailsHelperService","EventMediaHelperService","MediaConfig","factory","ɵfac","_MediaComponentMapService","DYNAMIC_COMPONENT","InjectionToken","DynamicComponentsLoaderService","components","Map","providedComponents","inject","optional","allComponents","componentList","key","value","entries","selector","componentType","forEach","x","register","componentClass","set","get","_DynamicComponentsLoaderService","RenderDynamicDirective","elementRef","ElementRef","injector","Injector","envInjector","EnvironmentInjector","dynamicComponents","ngAfterViewInit","component","element","nativeElement","foundElements","Array","from","querySelectorAll","elementHost","cmp","createComponent","hostElement","elementInjector","environmentInjector","cmpMirror","reflectComponentType","attributes","attribute","name","inputs","some","propName","setInput","changeDetectorRef","detectChanges","ie","selectors","standalone","_RenderDynamicDirective","provideDynamicComponents","map","provide","useValue","multi","DynamicIconComponent","html","input","required","sanitizer","DomSanitizer","parsedHtml","computed","bypassSecurityTrustHtml","T","features","ɵɵProvidersFeature","IconCustomComponent","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵproperty","ɵɵsanitizeHtml","encapsulation","_DynamicIconComponent","ɵɵelementContainerStart","ɵɵtemplate","EmptyMediaComponent_ng_container_0_Conditional_1_Template","Ee","d","ɵɵadvance","ɵɵconditional","ctx_r0","isEventSelected","message","EmptyMediaComponent_ng_container_1_Conditional_1_Template","EmptyMediaComponent_ng_container_1_Conditional_2_Template","EmptyMediaComponent","sitecore","module","EpcotModule","Statsindicator","className","media","NoLiveStreamingForEvent","NoLiveStreamingForEventPrematch","emptyList","SelectAnimationFromLiveEvents","SelectMediaFromList","replace","n","ɵɵdirectiveInject","Sitecore","hostVars","hostBindings","ɵɵclassMap","EmptyMediaComponent_ng_container_0_Template","EmptyMediaComponent_ng_container_1_Template","ɵɵpureFunction1","_c0","_c1","_EmptyMediaComponent","ScrollToActiveDirective","timer","child","querySelector","setAnimationFrame","scrollTop","offsetTop","clientHeight","TimerService","_ScrollToActiveDirective","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","selectedEvent","ɵɵtextInterpolate","ɵɵtextInterpolate1","selectorTitle","P","ɵɵlistener","child_r4","ɵɵrestoreView","_r3","$implicit","ɵɵnextContext","ɵɵresetView","changed","ɵɵclassProp","selectedEventId","ɵɵrepeaterCreate","EventSelectorComponent_Conditional_5_For_3_For_5_Template","ɵɵrepeaterTrackByIndex","item_r5","ɵɵrepeater","children","$event","_r2","scrolled","EventSelectorComponent_Conditional_5_For_3_Template","containerHeight","eventsList","containerHeightMap","RightColumnSize","ExtraLarge","Large","EventSelectorComponent","trackingService","adaptiveLayoutService","store","clickout","contains","target","ngOnInit","getDropdownHeight","ngOnChanges","changes","EventSelectorTitle","NoLiveStreamingEvents","find","toString","fetchVideoEvents","currentValue","previousValue","unsetEvent","current","rightColumnSize","toggleSelector","track","trackingConstants","EVENT_MEDIA","COMPONENT_SITE_ELEMENT_INTERCATIONS","setDropdownEvent","stopPropagation","dispatch","Actions","columnType","MediaApiActions","setEventId","payload","source","MediaEventSource","EventSwitcher","trackingVideoSource","TrackingVideoSource","TrackingService","AdaptiveLayoutService","Store","ɵɵresolveWindow","EventSelectorComponent_Conditional_2_Template","EventSelectorComponent_Conditional_3_Template","EventSelectorComponent_Conditional_4_Template","EventSelectorComponent_Conditional_5_Template","ae","$","S","_EventSelectorComponent","UnpinInfoComponent","close","closeInfoMessage","acceptUnpinInfoMessage","UnpinOnboarding","_UnpinInfoComponent","VideoPinComponent","onClick","toggle","emit","epcotConfigService","class","EventEmitter","isEpcotEnabled","isEnabled","EpcotConfigService","isPinned","_VideoPinComponent","MediaComponentsModule","we","Ne","CommonModule","DirectivesModule","EpcotNotificationComponent","TabBarModule","ExpansionPanelComponent","_MediaComponentsModule","MediaTrackingService","mediaTabs","trackTabClick","eventActiveId","index","trackingData","__spreadProps","__spreadValues","baseTracking","COMPONENT_ACTION_EVENT","COMPONENT_EVENT_DETAILS","NOT_APPLICABLE","SPORT_ID","SPORT_EVENT_ID","COMPONENT_CONTENT_POSITION","EVENT_TRACKING","trackPanelToggle","trackPin","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_LOCATION_EVENT","COMPONENT_URL_CLICKED","providedIn","_MediaTrackingService","ctx_r1","toggleExpand","ɵɵtwoWayListener","i0","ɵɵtwoWayBindingSet","isMobileExpand","_c3","deviceService","isTablet","EXPAND_BUTTON_FADE_TIME","ɵɵtwoWayProperty","ɵɵelementContainer","MediaComponent_Conditional_0_Conditional_6_Case_2_Conditional_5_ng_container_0_Template","videoStreamComponent","_r4","togglePin","MediaComponent_Conditional_0_Conditional_6_Case_2_Conditional_3_Template","MediaComponent_Conditional_0_Conditional_6_Case_2_Conditional_5_Template","MediaComponent_Conditional_0_Conditional_6_Case_2_Conditional_6_Template","MediaComponent_Conditional_0_Conditional_6_Case_2_Conditional_7_Template","ɵɵstyleProp","streamingMessageHeight","tabType","videoAndAnimationBgColor","isOnEventDetails","runningBallDataId","participants","MediaComponent_Conditional_0_Conditional_6_Case_3_Conditional_1_Conditional_1_ng_container_0_Template","animationComponent","MediaComponent_Conditional_0_Conditional_6_Case_3_Conditional_1_Conditional_0_Template","MediaComponent_Conditional_0_Conditional_6_Case_3_Conditional_1_Conditional_1_Template","MediaComponent_Conditional_0_Conditional_6_Case_3_Conditional_1_Template","MediaComponent_Conditional_0_Conditional_6_Case_3_Conditional_2_Template","isAnimationDisabled","ɵɵpipeBind1","eventStatisticsComponent$","_c4","eventStatisticsComponentOutputs","MediaComponent_Conditional_0_Conditional_6_Case_4_Conditional_1_Template","statsBgColor","MediaComponent_Conditional_0_Conditional_6_Conditional_1_Template","MediaComponent_Conditional_0_Conditional_6_Case_2_Template","MediaComponent_Conditional_0_Conditional_6_Case_3_Template","MediaComponent_Conditional_0_Conditional_6_Case_4_Template","_c2","mediaHeight","isExpandedMediaEnabled","tmp_4_0","_r1","tabSelected","panelToggled","MediaComponent_Conditional_0_Conditional_6_Template","Title","TrackingEventNames","_TrackingEventNames","MediaModule_Animation_Tab_Click","MediaModule_Video_Tab_Click","MediaModule_Stats_Tab_Click","tabClickTrackingEvent","MediaComponent","WidgetComponent","mapperService","scrollContainer","routerEventsService","mediaService","competitionLogosService","scoreboardBackgrounds","shortTeamNamesService","loader","mediaTrackingService","videoLoader","layoutService","statsCollapsed","sportType","trackingMap","mediaSize","ColumnSize","width","Default","defer","pipe","c","EventStatisticsComponent","expand","onFootballStatExpand","_doc","DOCUMENT","isStatsExpanded","toggleMediaExpand","setBackGroundColor","isEsport","isBeSpokeSport","isBespokeSport","background","backgrounds","gradient","innerColor","outerColor","mediaState$","select","mediaStateSelector","getAnimationComponent","getVideoStreamComponent","subscribeToOutputs","init","getSportId","isLiveEvent","takeUntilDestroyed","destroyRef","subscribe","mediaComponentState","previous","last","scrollTo","setShortNames","setAnimation","setVideoStream","setStreamMessageHeight","currentActivationEnd","onCurrentActivationEnd","observe","madiaSizeChanged","getLogoUrl","league","shouldUseShortName","ShortNameModule","Grids","setShortName","player","_a","scoreboard","val","shortName","playerInfo","players","teamName","score","ngOnDestroy","toggleMediaModule","mediaTab","tabId","tabIndex","MediaColumn","mapEventObjByTabs","toggleCollapsedState","updateActiveTab","setAnimationHeight","statsToggled","statsClass","collapsedClass","breakpointChanged","isMobile","state","setTimeout","ele","getElementById","divHeight","offsetHeight","update","inColumn","enabled","setActiveTab","setAvailableExpandLocation","_b","_c","snapshot","routeTag","data","model","RouteTag","Golf","expandedMediaEnabledLocations","indexOf","isExpandEnabled","sizes","size","isActive","round","DeviceService","ScrollContainerService","RouterEventsService","MediaQueryService","CompetitionLogosService","ScoreboardBackgroundConfig","ShortTeamNamesService","AnimationComponentLoaderService","VideoStreamComponentLoaderService","ɵɵInheritDefinitionFeature","MediaComponent_Conditional_0_Template","DynamicIoDirective","DynamicComponent","ClassAutoRemoveDirective","TabBarComponent","AsyncPipe","NgClass","NgStyle","MatchSimulationComponent","ComponentProxyDirective","VideoStreamButtonComponent","_MediaComponent","MediaWidgetRegistration","widgetRegistry","onFeatureInit","registerLazy","WidgetRegistryService","V","_MediaWidgetRegistration","runOnFeatureInit"],"mappings":"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"}