{"version":3,"file":"chunk-ipx8h4st.js","sources":["packages/sports/web/app/src/match-simulation/match-simulation.service.ts","packages/sports/web/app/src/match-simulation/match-simulation.html","packages/sports/web/app/src/match-simulation/match-simulation.component.ts","packages/sports/web/app/src/animation/animation-component-loader.service.ts","packages/sports/web/app/src/video-stream/video-stream-component-loader.service.ts","packages/sports/libs/common/core/feature/icon/src/lib/icon.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { MediaConfig } from '@frontend/sports/common/client-config-data-access';\nimport { interpolateSingleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { Page } from '@frontend/vanilla/core';\n\nimport { MatchSimulationUrlOptions } from './match-simulation.models';\n\n@Injectable({ providedIn: 'root' })\nexport class MatchSimulationService {\n private localePath: string;\n private stylePath: string;\n private imagePath: string;\n\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private mediaConfig: MediaConfig,\n private page: Page,\n ) {\n this.localePath = this.getAbsolutePath('/ClientDist/browser/assets/simulation/localizations');\n this.stylePath = this.getAbsolutePath('/ClientDist/browser/assets/simulation/styles/bundle.css');\n this.imagePath = this.getAbsolutePath('/{lang}/sports/api/simulation/getimageconfig');\n }\n\n getMatchSimulationUrl(options?: MatchSimulationUrlOptions): any {\n if (!options || !options.runningBallDataId) {\n return '';\n }\n\n const url = interpolateSingleBracesString(this.mediaConfig.matchSimulation.url, {\n partnerId: this.mediaConfig.matchSimulation.partnerId,\n userId: this.mediaConfig.matchSimulation.userId ?? '',\n eventId: options.runningBallDataId,\n homeTeam: this.encodePlayerName(options.homeTeam),\n awayTeam: this.encodePlayerName(options.awayTeam),\n width: options.width,\n height: options.height,\n lang: this.page.lang.substring(0, 2),\n csspath: this.stylePath,\n locdiff: this.localePath,\n imageconfig: this.imagePath,\n });\n\n return url;\n }\n\n private encodePlayerName(name?: string): string {\n if (!name) {\n return '';\n }\n\n return Array.prototype.map\n .call(name, (letter: string) => {\n return letter === ' ' ? '%C2%A0' : encodeURIComponent(letter);\n })\n .join('');\n }\n\n private getAbsolutePath(url: string): string {\n // https://grack.com/blog/2009/11/17/absolutizing-url-in-javascript/\n // Get absolute path\n const div = this._doc.createElement('div');\n div.innerHTML = '';\n (div.firstChild).href = url.replace('{lang}', this.page.lang); // Ensures that the href is properly escaped\n // eslint-disable-next-line no-self-assign\n div.innerHTML = div.innerHTML; // Run the current innerHTML back through the parser\n\n return (div.firstChild).href;\n }\n}\n","@if (url) {\n \n \n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { isEqual, round } from 'lodash-es';\nimport { distinctUntilChanged, filter, map, merge, skip } from 'rxjs';\n\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { Slide } from './match-simulation.models';\nimport { MatchSimulationService } from './match-simulation.service';\n\ninterface Size {\n width: number;\n height: number;\n}\n\n@Component({\n selector: 'ms-match-simulation',\n templateUrl: 'match-simulation.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TrustPipe],\n})\nexport class MatchSimulationComponent implements OnInit, OnChanges {\n @Input() homeTeam: string;\n @Input() awayTeam: string;\n @Input() runningBall: string;\n @Input() inColumn = false;\n @Input() size?: Size;\n @Input() isColumnReSize = true;\n\n @HostBinding('class') className = 'match-simulation';\n\n url: Nullable = null;\n ratio = 438 / 600;\n base = { width: 320, height: 205 };\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private simulationService: MatchSimulationService,\n private dispatcher: DispatcherService,\n private timerService: TimerService,\n private columnService: ColumnLayoutService,\n private changeDetector: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n if (!this.isColumnReSize) {\n return;\n }\n merge(\n this.columnService.rightColumnSizeChanged,\n this.dispatcher.on('SLIDE_SET').pipe(\n filter((slide) => slide.params.slideName === 'match-simulation'),\n skip(1),\n ),\n )\n .pipe(\n map(() => this.getSize()),\n distinctUntilChanged(isEqual),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((size) => {\n this.size = size;\n this.updateUrl(this.getUrl(size.width, size.height));\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!this.size) {\n this.size = this.getSize();\n }\n if (changes.runningBall) {\n this.updateUrl(this.getUrl(this.size.width, this.size.height));\n }\n }\n\n private getUrl(width: number, height: number): string {\n return this.simulationService.getMatchSimulationUrl({\n width,\n height,\n runningBallDataId: this.runningBall,\n homeTeam: this.homeTeam,\n awayTeam: this.awayTeam,\n });\n }\n\n private getSize(): Size {\n const mobileModeWidth = this.columnService.currentCenterColumnSize.width > 430 ? 430 : this.columnService.currentCenterColumnSize.width;\n const width = this.inColumn ? this.columnService.currentRightColumnSize.width : mobileModeWidth;\n\n if (width) {\n return { width: round(width), height: round(width * this.ratio) };\n } else {\n return this.base;\n }\n }\n\n private updateUrl(url: string): void {\n // DeveloperLog - Chapter 1 - Entry 1.\n // We have to use ng-if here because otherwise setting the src of the iFrame multiple times, adds it to the browser history :/\n this.url = null;\n this.timerService.setTimeout(() => {\n this.url = url;\n this.changeDetector.markForCheck();\n });\n }\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { EventModel, EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\n\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { AnimationModule } from './animation.module';\n\nexport interface EventAnimationBinding {\n event: EventModel;\n scoreboard: EventScoreboard;\n inColumn?: boolean;\n isTerminal?: boolean;\n showSticky?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AnimationComponentLoaderService extends ComponentLoaderService {\n moduleName = 'AnimationModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getAnimationComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.animationComponent, 'event-animations');\n }\n\n getModule(): Promise> {\n return import('./animation.module').then((m) => m.AnimationModule);\n }\n}\n","import { EventEmitter, Injectable, Type } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\n\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { VideoStreamModule } from './video-stream.module';\n\nexport interface EventVideoStreamBinding {\n event: EventModel;\n inColumn?: boolean;\n autoplay?: boolean;\n isExpanded: boolean;\n isExpandEnabled: boolean;\n trackingSource: string;\n showVideoPin: boolean;\n videoPinToggle: EventEmitter;\n toggleMediaExpand: EventEmitter;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VideoStreamComponentLoaderService extends ComponentLoaderService {\n moduleName = 'VideoStreamModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getVideoStreamComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.videoStreamComponent);\n }\n\n getModule(): Promise> {\n return import('./video-stream.module').then((m) => m.VideoStreamModule);\n }\n}\n","// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\n\nconst animationIcons = {\n [SportConstant.Soccer]: true,\n [SportConstant.Basketball]: true,\n [SportConstant.Tennis]: true,\n [SportConstant.Icehockey]: true,\n [SportConstant.Golf]: true,\n};\n\nexport function getAnimationIconForSport(sportId: number, active: boolean): string {\n return `sports-${animationIcons[sportId as keyof typeof animationIcons] ? sportId : SportConstant.Soccer}-match${active ? '-active' : ''}`;\n}\nexport function getVideoIcon(active: boolean): string {\n return active ? 'sports-video-active' : 'sports-video';\n}\nexport function getStatsIcon(active: boolean): string {\n return active ? 'sports-stats-active' : 'sports-stats';\n}\nexport function getAdvancedStatsIcon(active: boolean): string {\n return active ? 'sports-stats-advanced active' : 'sports-stats-advanced';\n}\n"],"names":["MatchSimulationService","constructor","mediaConfig","page","_doc","inject","DOCUMENT","localePath","getAbsolutePath","stylePath","imagePath","getMatchSimulationUrl","options","runningBallDataId","interpolateSingleBracesString","matchSimulation","url","partnerId","userId","eventId","homeTeam","encodePlayerName","awayTeam","width","height","lang","substring","csspath","locdiff","imageconfig","name","Array","prototype","map","call","letter","encodeURIComponent","join","div","createElement","innerHTML","firstChild","href","replace","ɵɵinject","MediaConfig","Page","factory","ɵfac","providedIn","_MatchSimulationService","ɵɵelement","ɵɵpropertyInterpolate","ctx_r0","size","ɵɵproperty","ɵɵpipeBind2","ɵɵsanitizeResourceUrl","MatchSimulationComponent","simulationService","dispatcher","timerService","columnService","changeDetector","inColumn","isColumnReSize","className","ratio","base","destroyRef","DestroyRef","ngOnInit","merge","rightColumnSizeChanged","on","pipe","filter","slide","params","slideName","skip","getSize","distinctUntilChanged","isEqual","takeUntilDestroyed","subscribe","updateUrl","getUrl","ngOnChanges","changes","runningBall","mobileModeWidth","currentCenterColumnSize","currentRightColumnSize","round","setTimeout","markForCheck","ɵɵdirectiveInject","DispatcherService","TimerService","ColumnLayoutService","ChangeDetectorRef","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵtemplate","MatchSimulationComponent_Conditional_0_Template","ɵɵconditional","TrustPipe","encapsulation","changeDetection","_MatchSimulationComponent","AnimationComponentLoaderService","ComponentLoaderService","moduleLoader","loggerFactory","moduleName","getAnimationComponent","getComponentProxy","module","animationComponent","getModule","then","m","AnimationModule","ModuleLoaderService","LoggerFactory","_AnimationComponentLoaderService","VideoStreamComponentLoaderService","getVideoStreamComponent","videoStreamComponent","VideoStreamModule","_VideoStreamComponentLoaderService","animationIcons","SportConstant","Soccer","Basketball","Tennis","Icehockey","Golf","getAnimationIconForSport","sportId","active","getVideoIcon","getStatsIcon"],"mappings":"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"}