{"version":3,"file":"teaser.feature-hmir1vpd.js","sources":["packages/sports/web/app/src/teaser/teaser-image-preloader.ts","packages/sports/web/app/src/teaser/teaser.models.ts","packages/sports/web/app/src/teaser/teaser.component.html","packages/sports/web/app/src/teaser/teaser.component.ts","packages/sports/web/app/src/teaser/teaser.utils.service.ts","packages/sports/web/app/src/teaser/teasers.service.ts","packages/sports/web/app/src/teaser/rotating-teaser-widget.component.html","packages/sports/web/app/src/teaser/rotating-teaser-widget.component.ts","packages/sports/web/app/src/teaser/static-teaser-widget.component.html","packages/sports/web/app/src/teaser/static-teaser-widget.component.ts","packages/sports/web/app/src/teaser/widget-registration.service.ts","packages/sports/web/app/src/teaser/teaser.feature.ts"],"sourcesContent":["import { Promotion } from '../crm-offer-data/crm-offer.model';\n\nexport function preloadPromotionImage(promotion: Promotion, doc: Document): void {\n if (promotion?.banner?.heroImageUrl && !doc.head.querySelector(`link[href=\"${promotion.banner?.heroImageUrl}\"]`)) {\n const link = doc.createElement('link');\n const imageUrl = promotion.banner.heroImageUrl;\n link.rel = 'preload';\n link.href = imageUrl;\n link.as = 'image';\n doc.head.appendChild(link);\n }\n}\n","import { SportsJackpotBannerViewModel } from '@frontend/sports/types/components/banners/models';\nimport { TeaserViewModel } from '@frontend/sports/types/components/teasers';\n\nexport interface EnhancedTeaserViewModel extends TeaserViewModel {\n details?: any;\n extract?: boolean;\n jackpotBanner?: SportsJackpotBannerViewModel;\n options?: string[];\n originalTeasersCount?: number;\n showMore?: boolean;\n visibleTeaser?: boolean;\n}\n\nexport interface TeasersResponse {\n teasers: EnhancedTeaserViewModel[];\n}\n\nexport enum Alignment {\n Right = 'Right',\n Left = 'Left',\n Center = 'Center',\n}\n","@if (teasers?.length || promotions?.length) {\n \n @for (promotion of promotions; track promotion.id; let position = $index) {\n \n \n \n }\n @for (teaser of teasers; track i; let i = $index) {\n \n @if (teaser.visibleTeaser) {\n \n }\n @if (isCurrentSlide(i + promotions.length)) {\n \n \n \n {{ teaser.title }}\n \n {{ teaser.subtitle }}\n \n\n @if (!teaser.isPromotionalTeaser && teaser.displayOdds) {\n \n @for (option of teaser.options; track option) {\n {{ option }}\n }\n \n }\n @if (teaser.buttonText) {\n \n }\n \n \n \n }\n @if (teaser.jackPot && teaser.jackpotBanner) {\n \n \n \n }\n\n @if (teaser.info) {\n \n \n @if (teaser.extract) {\n \n }\n \n }\n @if (teaser.termsAndConditions) {\n \n {{ teaser.termsAndConditions }}\n \n }\n \n }\n \n}\n","import { NgClass, NgOptimizedImage, NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n QueryList,\n Renderer2,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ImagesConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { WindowEventService } from '@frontend/sports/common/core/utils/window-event';\nimport { ArrowDirection, NavigationMode, SlideComponent, SlideshowComponent, SlideshowMode } from '@frontend/sports/slideshow/feature';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { DsButton } from '@frontend/ui/button';\nimport { DeviceService, NativeAppService, WINDOW } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { BannerJackpotComponent } from '../banner/banner-jackpot.component';\nimport { ImageQualityService } from '../common/image-quality.service';\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { EventBridgeService } from '../event-bridge/event-bridge.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { Alignment, EnhancedTeaserViewModel } from './teaser.models';\n\n@Component({\n selector: 'ms-teaser',\n templateUrl: 'teaser.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n BannerJackpotComponent,\n CrmPromotionModule,\n NgOptimizedImage,\n NgClass,\n NgStyle,\n TrustPipe,\n IconCustomComponent,\n SlideshowComponent,\n SlideComponent,\n DsButton,\n ],\n standalone: true,\n})\nexport class TeaserComponent implements OnChanges, AfterViewInit {\n @Input() teasers: EnhancedTeaserViewModel[] = [];\n @Input() promotions: Promotion[] = [];\n @HostBinding('class') className = 'teaser teaser-list';\n\n currentSlideIndex = 0;\n\n slideMode = SlideshowMode.OneSlide;\n delay = 8000;\n\n @ViewChildren('slide') allSlides: QueryList;\n\n private imageElements: HTMLImageElement[] = [];\n private teaserMaxHeight = 240;\n private teaserImageRatio = 3.2;\n private cropRange = {\n min: 767,\n max: 932,\n };\n\n private arrows = {\n width: 50,\n height: 50,\n marginOnThreeTeasers: 16,\n marginOnOneTeasers: 4,\n };\n\n arrowLeftRightValue: number;\n maxSlideWidth = false;\n navigationMode: NavigationMode;\n containerWidth: number;\n overlayArea: {\n position: string;\n width: string;\n };\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly _window = inject(WINDOW);\n\n constructor(\n private urlHelper: UrlHelperService,\n private eventBridge: EventBridgeService,\n private nativeApp: NativeAppService,\n private tracking: TrackingService,\n private elementRef: ElementRef,\n private device: DeviceService,\n private renderer: Renderer2,\n private windowEvent: WindowEventService,\n private changeDetector: ChangeDetectorRef,\n private timer: TimerService,\n public sitecore: Sitecore,\n private imagesConfig: ImagesConfig,\n private imageQualityService: ImageQualityService,\n ) {\n if (!this.device.isMobile && !this.device.isTablet) {\n this.calcuteWidth(this._window.innerWidth);\n }\n\n this.device.orientation.pipe(takeUntilDestroyed()).subscribe(this.toggleSlideMode);\n }\n\n private calcuteWidth(resolution: any) {\n this.cropRange.max = resolution * 0.48;\n\n this.cropRange.min = resolution * 0.4;\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.toggleSlideMode();\n\n if (changes.teasers?.currentValue?.length) {\n this.teasers.forEach((t) => this.setTeaserLink(t));\n this.currentSlideIndex = 0;\n [0, 1, this.teasers.length - 1].forEach((index) => {\n if (this.teasers[index]) {\n this.teasers[index].visibleTeaser = true;\n }\n });\n }\n }\n\n ngAfterViewInit(): void {\n this.allSlides.forEach((slide: ElementRef) => this.imageElements.push(slide.nativeElement));\n this.setContainerWidth();\n\n this.windowEvent.resize\n .asObservable()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setContainerWidth());\n }\n\n infoClick(event: Event, teaser: EnhancedTeaserViewModel): void {\n event.preventDefault();\n teaser.extract = !teaser.extract;\n }\n\n teaserClick(event: Event, teaser: EnhancedTeaserViewModel, index: number): void {\n this.trackClick(teaser, index);\n }\n\n totalCount(): number {\n return this.teasers[0]?.originalTeasersCount || 0 + this.promotions.length;\n }\n\n private trackClick(teaser: EnhancedTeaserViewModel, index: number): void {\n const bannerPosition = index + this.promotions.length;\n\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Sports Teaser Banners',\n [trackingConstants.COMPONENT_LABEL_EVENT]: teaser.title ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: teaser.buttonText ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'CTA',\n [trackingConstants.COMPONENT_URL_CLICKED]: teaser.href ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: bannerPosition.toString(),\n };\n\n if (this.nativeApp.isNative && teaser.sliderGameId) {\n this.eventBridge.notifySliderGameOpening(teaser.sliderGameId);\n } else if (!this.nativeApp.isNative && !teaser.sliderGameId && !teaser.event && teaser.href) {\n this.tracking.track(trackingConstants.EVENT_CLICKS, trackingData);\n }\n }\n\n private setTeaserLink(teaser: EnhancedTeaserViewModel): void {\n if (teaser.event) {\n teaser.href = this.urlHelper.getEventUrl(teaser.event);\n }\n\n if (!teaser.href) {\n teaser.href = '#';\n }\n\n if (teaser.href.startsWith('/')) {\n teaser.href = this.urlHelper.getUrl(teaser.href);\n }\n\n const nav = this._window.navigator;\n\n if (!!nav.standalone || this.nativeApp.isNative) {\n teaser.target = '_self';\n }\n\n if (this.imagesConfig.imageQualityParams?.homePage?.rotatingTeaser)\n teaser.imageUrl = this.imageQualityService.setImageQuality(teaser.imageUrl, this.imagesConfig.imageQualityParams.homePage.rotatingTeaser);\n }\n\n private toggleSlideMode = () => {\n if (!this.device.isMobile) {\n this.navigationMode = NavigationMode.Arrows;\n } else {\n this.navigationMode = NavigationMode.Swipe;\n }\n\n if (this.containerWidth) {\n const teaserCount = this.teasers?.length + this.promotions.length;\n this.slideMode = this.containerWidth > this.cropRange.max && teaserCount > 1 ? SlideshowMode.ThreeSlides : SlideshowMode.OneSlide;\n }\n };\n\n setNextVisibleTeaserIndex(index: number): number {\n const wrapAroundToLastSlide = this.currentSlideIndex === 0 && index === this.teasers.length - 1;\n const wrapAroundToFirstSlide = this.currentSlideIndex === this.teasers.length - 1 && index === 0;\n\n if ((this.currentSlideIndex < index && !wrapAroundToLastSlide) || wrapAroundToFirstSlide) {\n return index + 1;\n }\n\n return index - 1;\n }\n\n slideChanged(index: number): void {\n const nextIndex = this.setNextVisibleTeaserIndex(index);\n\n if (this.teasers[nextIndex]) {\n this.teasers[nextIndex].visibleTeaser = true;\n }\n\n this.currentSlideIndex = index;\n this.changeDetector.detectChanges();\n }\n\n isCurrentSlide(slideIndex: number): boolean {\n return slideIndex === this.currentSlideIndex;\n }\n\n private setContainerWidth(): void {\n this.timer.setAnimationFrame(() => {\n const width = this.elementRef.nativeElement.clientWidth;\n\n if (width) {\n this.containerWidth = width;\n\n let teaserHeight = this.containerWidth / this.teaserImageRatio;\n\n if (teaserHeight >= this.teaserMaxHeight) {\n teaserHeight = this.teaserMaxHeight;\n }\n\n if (this.containerWidth > this.cropRange.min && this.containerWidth < this.cropRange.max) {\n this.imageElements.forEach((e) => this.setStyle(e, teaserHeight, true));\n } else {\n this.imageElements.forEach((e) => this.setStyle(e, teaserHeight));\n\n this.arrowLeftRightValue =\n (this.containerWidth - this.cropRange.min) / 2 - (this.arrows.marginOnThreeTeasers + this.arrows.width);\n }\n\n if (this.containerWidth > this.cropRange.max) {\n this.arrowLeftRightValue = (this.containerWidth - this.cropRange.min) / 2 - this.arrows.marginOnThreeTeasers - this.arrows.width;\n this.maxSlideWidth = true;\n } else {\n this.arrowLeftRightValue = this.arrows.marginOnOneTeasers;\n this.maxSlideWidth = false;\n }\n\n if (this.containerWidth > this.cropRange.min) {\n this.overlayArea = {\n position: `${(this.containerWidth - this.cropRange.min) / 2 + this.cropRange.min}px`,\n width: `${(this.containerWidth - this.cropRange.min) / 2}px`,\n };\n }\n }\n\n this.toggleSlideMode();\n this.changeDetector.detectChanges();\n });\n }\n\n private setStyle(el: HTMLElement, height: number, isCroppable?: boolean): void {\n if (isCroppable) {\n this.renderer.setStyle(el, 'width', `100%`);\n this.renderer.setStyle(el, 'height', `${height}px`);\n } else {\n this.renderer.setStyle(el, 'width', `${height * this.teaserImageRatio}px`);\n this.renderer.setStyle(el, 'height', `${height}px`);\n }\n }\n\n private getSelectedTeaser(): EnhancedTeaserViewModel | undefined {\n const teaserIndex = this.currentSlideIndex - this.promotions.length;\n\n return teaserIndex >= 0 ? this.teasers[teaserIndex] : undefined;\n }\n\n track(event?: { navigationMode: NavigationMode; direction: string }): void {\n const selectedTeaser = this.getSelectedTeaser();\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Sports Teaser Banners',\n ...(selectedTeaser && { [trackingConstants.COMPONENT_LABEL_EVENT]: selectedTeaser.title }),\n [trackingConstants.COMPONENT_ACTION_EVENT]: event ? 'Arrow Click' : 'CTA Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: `Teaser_${this.currentSlideIndex + 1}`,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: event\n ? `Arrow ${event.direction === ArrowDirection.Right ? 'Back' : 'Forward'} `\n : this.sitecore.globalMessages.BetNowBtnOnTeaser,\n };\n\n this.tracking.track(trackingConstants.EVENT_CLICKS, trackingData);\n }\n\n getTeaserAlignment(teaser: EnhancedTeaserViewModel): string {\n switch (teaser.textAlignment) {\n case Alignment.Left:\n return 'alignment-left';\n case Alignment.Right:\n return 'alignment-right';\n default:\n return 'alignment-center';\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { FixturePage, Result } from '@cds/betting-offer';\nimport { OfferMapping, ScoreboardMode } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { ExternalPriceFormatterService } from '@frontend/sports/odds/feature/native-price';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { Observable, catchError, map, of } from 'rxjs';\n\nimport { EnhancedTeaserViewModel } from './teaser.models';\n\n@Injectable({ providedIn: 'root' })\nexport class TeaserUtilsService {\n private teaserSizes = [320, 480, 540, 640, 720, 1080];\n private twoOptionPrefix = ['1', '2'];\n private threeOptionPrefix = ['1', 'X', '2'];\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private userService: UserService,\n loggerFactory: LoggerFactory,\n private externalPriceFormatter: ExternalPriceFormatterService,\n private bettingOffer: BettingOfferApi,\n ) {\n this.logger = loggerFactory.getLogger('TeaserUtilsService');\n }\n\n filter(teasers: EnhancedTeaserViewModel[]): EnhancedTeaserViewModel[] {\n if (teasers && teasers.filter) {\n return teasers.filter((teaser) => {\n if (teaser.isAuthenticated && !this.userService.isAuthenticated) {\n return false;\n }\n\n return !!teaser.imageUrl;\n });\n }\n\n return [];\n }\n\n extend(teasers: EnhancedTeaserViewModel[], screenWidth: number): Observable {\n const eventsId = teasers.filter((t) => t.event).map((t) => t.event!.id);\n const size = this.getTeaserSize(screenWidth);\n\n let eventsData: Observable = of(undefined);\n\n if (eventsId.length) {\n eventsData = this.bettingOffer.getFixtureList({\n fixtureIds: eventsId.join(','),\n scoreboardMode: ScoreboardMode.None,\n offerMapping: OfferMapping.MainMarkets,\n });\n }\n\n return eventsData.pipe(\n map((response) => this.process(teasers, response)),\n catchError((error) => {\n this.logError(error);\n\n return of(teasers);\n }),\n map((list) => this.applyDetail(list, size)),\n );\n }\n\n private getTeaserSize(screenWidth: number): number {\n if (this._window.devicePixelRatio && this._window.devicePixelRatio > 2) {\n // if the CSS pixel ratio is greater than 2, we double the requested width to reduce the gap between the requested width and the actual device pixels.\n // Without this adjustment, the image will appear too unsharp/blurry on devices with a small display but super high resolution.\n screenWidth *= 2;\n }\n\n return this.teaserSizes.find((x) => x >= screenWidth) || this.teaserSizes[this.teaserSizes.length - 1];\n }\n\n private process(teasers: EnhancedTeaserViewModel[], response: FixturePage | undefined): EnhancedTeaserViewModel[] {\n if (!response?.fixtures.length) {\n return teasers;\n }\n\n const findFixture = (event?: { id: string }) => response.fixtures.find((current) => !!event && current.id === event.id);\n\n return teasers\n .map((teaser) => ({ teaser, fixture: findFixture(teaser.event) }))\n .filter(({ teaser, fixture }) => !teaser.event || fixture)\n .map(({ teaser, fixture }) => {\n if (!fixture) {\n return teaser;\n }\n\n const market = fixture.games.pop();\n const options = market ? market.results : [];\n\n return Object.assign(teaser, {\n details: {\n league: { name: fixture.competition.name.value },\n sports: { name: fixture.sport.name.value },\n },\n showMore: true,\n options: this.buildTeaserOptionText(options),\n });\n });\n }\n\n private logError(error: Error): void {\n this.logger.error(error, 'Unable to fetch teasers');\n }\n\n private buildTeaserOptionText(options: Result[]): string[] {\n if (!options.length) {\n return [];\n }\n const prefixes = options.length === 3 ? this.threeOptionPrefix : this.twoOptionPrefix;\n\n return options.map((option, index) => `${prefixes[index]}-${this.externalPriceFormatter.format(option)}`);\n }\n\n private applyDetail(teasers: EnhancedTeaserViewModel[], size: number): EnhancedTeaserViewModel[] {\n return teasers.map((teaser) => ({\n ...teaser,\n subtitle: this.getSubtitle(teaser),\n imageUrl: `${teaser.imageUrl}?p=width${size}`,\n showMore: teaser.href ? true : teaser.showMore,\n }));\n }\n\n private getSubtitle(teaser: EnhancedTeaserViewModel): string {\n if (teaser.displayCountryLeague && teaser.event && teaser.details) {\n return teaser.details.sports.name + ' | ' + teaser.details.league.name;\n }\n\n return teaser.subtitle;\n }\n\n private readonly _window = inject(WINDOW);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { BannerType } from '@frontend/sports/types/components/banners/models';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { UserEvent } from '@frontend/vanilla/core';\nimport { Observable, catchError, map, of, shareReplay, startWith, switchMap } from 'rxjs';\n\nimport { EnhancedTeaserViewModel, TeasersResponse } from './teaser.models';\nimport { TeaserUtilsService } from './teaser.utils.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TeasersService {\n private readonly _doc = inject(DOCUMENT);\n\n readonly data = this.userService.onAuthenticationChange$.pipe(\n startWith({} as UserEvent),\n switchMap(() => this.apiService.get('teasers').pipe(catchError(() => of({ teasers: [] })))),\n switchMap((response) => this.enhance(response.teasers)),\n shareReplay(1),\n );\n\n constructor(\n private apiService: ApiService,\n private userService: UserService,\n private teaserUtils: TeaserUtilsService,\n ) {}\n\n enhance(teasers: EnhancedTeaserViewModel[]): Observable {\n if (!teasers) {\n return of([]);\n }\n\n teasers = this.teaserUtils.filter(teasers);\n\n return this.teaserUtils.extend(teasers, this.pageWidth).pipe(\n map((extended) => {\n this.addJackpotDetails(extended);\n\n return this.addSlideshowHack(teasers);\n }),\n );\n }\n\n private get pageWidth(): number {\n return this._doc.body.clientWidth;\n }\n\n private addJackpotDetails(teasers: EnhancedTeaserViewModel[]): void {\n teasers.forEach((t) => {\n if (t.jackPot) {\n t.jackpotBanner = {\n source: '', // TODO: what source??\n type: BannerType.Jackpot,\n icon: t.jackPot.icon,\n title: t.title,\n subtitle: t.subtitle,\n background: '',\n jackpotGroup: t.jackPot.jackpotGroup,\n value: t.jackPot.value,\n link: {\n link: t.link,\n target: t.target,\n href: t.href ?? '',\n popup: '',\n },\n };\n }\n });\n }\n\n private addSlideshowHack(teasers: EnhancedTeaserViewModel[]): EnhancedTeaserViewModel[] {\n const originalTeaserCount = teasers.length;\n const validTeaserCount = [2, 3];\n const needsDuplicationForMultiSlideshow = validTeaserCount.indexOf(originalTeaserCount) > -1;\n\n if (needsDuplicationForMultiSlideshow) {\n teasers = [...teasers, ...teasers];\n }\n\n teasers.forEach((teaser) => {\n teaser.originalTeasersCount = originalTeaserCount;\n });\n\n return teasers;\n }\n}\n","\n","import { DOCUMENT, NgIf } from '@angular/common';\nimport { Component, HostBinding, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { CrmConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RotatingTeaserPayload } from '@frontend/sports/types/components/widget/types';\nimport { tap } from 'rxjs';\n\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { CrmPromotionProviderService } from '../crm-promotion/crm-promotion-provider.service';\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\nimport { preloadPromotionImage } from './teaser-image-preloader';\nimport { TeaserComponent } from './teaser.component';\nimport { EnhancedTeaserViewModel } from './teaser.models';\nimport { TeasersService } from './teasers.service';\n\n@Component({\n selector: 'ms-rotating-teaser-widget',\n templateUrl: './rotating-teaser-widget.component.html',\n standalone: true,\n imports: [TeaserComponent, NgIf],\n})\nexport class RotatingTeaserWidgetComponent extends WidgetComponent {\n @HostBinding('class') className = 'rotating-teaser-widget';\n\n teasers: EnhancedTeaserViewModel[];\n teasersEnhancing = false;\n promotions: Promotion[];\n\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private teaserService: TeasersService,\n private crmConfig: CrmConfig,\n promoService: CrmPromotionProviderService,\n ) {\n super();\n promoService.promotions$.pipe(tap(this.setPromotions), takeUntilDestroyed(this.destroyRef)).subscribe(this.setHasData);\n }\n\n override onData({ teasers }: RotatingTeaserPayload): void {\n if (teasers?.length > 0 && this.hidden) {\n // pre-emptively display the template to let the ms-teaser component reserve the space\n // it will anyway reserve after the teasers are enhanced\n this.teasersEnhancing = true;\n this.setHasData();\n }\n this.teaserService.enhance(teasers).subscribe((processed) => {\n this.teasers = processed;\n this.teasersEnhancing = false;\n this.setHasData();\n });\n }\n\n private setPromotions = (list: Promotion[]) => {\n this.promotions = list.filter((promo) => promo.noFilters && promo.banner).slice(0, this.crmConfig.promotions.bannerCount.lobby);\n preloadPromotionImage(this.promotions[0], this._doc);\n };\n\n private setHasData = () => {\n this.hasData = this.teasersEnhancing || !!this.teasers?.length || !!this.promotions?.length;\n this.setWidgetLoaded();\n };\n}\n","\n \n \n \n \n\n","import { NgIf, NgOptimizedImage } from '@angular/common';\nimport { Component, HostBinding } from '@angular/core';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { MarketingViewModel } from '@frontend/sports/types/components/marketing';\nimport { isEmpty } from 'lodash-es';\n\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\n\n@Component({\n selector: 'ms-static-teaser-widget',\n templateUrl: './static-teaser-widget.component.html',\n styleUrls: ['./static-teaser-widget.component.scss'],\n standalone: true,\n imports: [NgOptimizedImage, NgIf, TrustPipe],\n})\nexport class StaticTeaserWidgetComponent extends WidgetComponent {\n @HostBinding('class') className = 'static-teaser-widget';\n\n trackingSource = 'Static Teaser';\n\n teaser: MarketingViewModel;\n image?: string;\n\n constructor(private trackingService: TrackingService) {\n super();\n }\n\n protected override onData(data: MarketingViewModel): void {\n this.teaser = data;\n if (this.teaser?.imageUrl) {\n this.image = `${this.teaser.imageUrl}?p=width540`;\n }\n\n this.hasData = !isEmpty(data);\n this.setWidgetLoaded();\n }\n\n trackBannerClicked(): void {\n this.trackingService.track(trackingConstants.EVENT_CLICKS, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Teaser Banners',\n [trackingConstants.COMPONENT_LABEL_EVENT]: this.trackingSource,\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'teaser',\n [trackingConstants.COMPONENT_URL_CLICKED]: this.teaser.href,\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 { RotatingTeaserWidgetComponent } from './rotating-teaser-widget.component';\nimport { StaticTeaserWidgetComponent } from './static-teaser-widget.component';\n\n@Injectable({ providedIn: 'root' })\nexport class WidgetRegistrationService implements OnFeatureInit {\n constructor(private registry: WidgetRegistryService) {}\n\n onFeatureInit(): void {\n this.registry.registerLazy(WidgetType.RotatingTeaser, RotatingTeaserWidgetComponent);\n this.registry.registerLazy(WidgetType.StaticTeaser, StaticTeaserWidgetComponent);\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistrationService } from './widget-registration.service';\n\nexport function provide() {\n return [runOnFeatureInit(WidgetRegistrationService)];\n}\n"],"names":["preloadPromotionImage","promotion","doc","_a","_b","banner","heroImageUrl","head","querySelector","link","createElement","imageUrl","rel","href","as","appendChild","Alignment","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c1","ctx_r1","maxSlideWidth","ɵɵadvance","promotion_r3","ɵ$index_4_r4","a","teaser_r6","ɵ$index_9_r7","promotions","length","ɵɵtext","ɵɵtextInterpolate","option_r9","ɵɵrepeaterCreate","TeaserComponent_Conditional_0_For_4_Conditional_2_Conditional_7_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","options","D","ɵɵlistener","ɵɵrestoreView","_r10","ɵɵnextContext","ɵɵresetView","track","ɵɵsanitizeUrl","ɵɵpipeBind2","buttonText","ɵɵsanitizeHtml","$event","_r8","ctx_r4","$implicit","$index","teaserClick","ɵɵtemplate","TeaserComponent_Conditional_0_For_4_Conditional_2_Conditional_7_Template","TeaserComponent_Conditional_0_For_4_Conditional_2_Conditional_8_Template","H","ɵɵclassProp","isPromotionalTeaser","displayOdds","title","subtitle","ɵɵpureFunction3","_c2","extract","textAlignment","getTeaserAlignment","_c3","ɵɵtextInterpolate1","ɵɵconditional","jackpotBanner","info","_r11","infoClick","TeaserComponent_Conditional_0_For_4_Conditional_4_Conditional_2_Template","_c4","termsAndConditions","TeaserComponent_Conditional_0_For_4_Conditional_1_Template","TeaserComponent_Conditional_0_For_4_Conditional_2_Template","TeaserComponent_Conditional_0_For_4_Conditional_3_Template","TeaserComponent_Conditional_0_For_4_Conditional_4_Template","TeaserComponent_Conditional_0_For_4_Conditional_5_Template","visibleTeaser","isCurrentSlide","jackPot","_r1","slideChanged","TeaserComponent_Conditional_0_For_2_Template","_forTrack0","TeaserComponent_Conditional_0_For_4_Template","ɵɵrepeaterTrackByIndex","delay","slideMode","totalCount","navigationMode","arrowLeftRightValue","overlayArea","teasers","TeaserComponent","constructor","urlHelper","eventBridge","nativeApp","tracking","elementRef","device","renderer","windowEvent","changeDetector","timer","sitecore","imagesConfig","imageQualityService","className","currentSlideIndex","SlideshowMode","OneSlide","imageElements","teaserMaxHeight","teaserImageRatio","cropRange","min","max","arrows","width","height","marginOnThreeTeasers","marginOnOneTeasers","destroyRef","inject","DestroyRef","_window","WINDOW","toggleSlideMode","isMobile","NavigationMode","Swipe","Arrows","containerWidth","teaserCount","ThreeSlides","isTablet","calcuteWidth","innerWidth","orientation","pipe","takeUntilDestroyed","subscribe","resolution","ngOnChanges","changes","currentValue","forEach","t","setTeaserLink","index","ngAfterViewInit","allSlides","slide","push","nativeElement","setContainerWidth","resize","asObservable","event","teaser","preventDefault","trackClick","originalTeasersCount","bannerPosition","trackingData","trackingConstants","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","NOT_APPLICABLE","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_LOCATION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_URL_CLICKED","COMPONENT_CONTENT_POSITION","toString","isNative","sliderGameId","notifySliderGameOpening","EVENT_CLICKS","getEventUrl","startsWith","getUrl","navigator","standalone","target","imageQualityParams","homePage","rotatingTeaser","setImageQuality","setNextVisibleTeaserIndex","wrapAroundToLastSlide","wrapAroundToFirstSlide","nextIndex","detectChanges","slideIndex","setAnimationFrame","clientWidth","teaserHeight","e","setStyle","position","el","isCroppable","getSelectedTeaser","teaserIndex","undefined","selectedTeaser","__spreadProps","__spreadValues","direction","ArrowDirection","Right","globalMessages","BetNowBtnOnTeaser","Left","ɵɵdirectiveInject","UrlHelperService","EventBridgeService","NativeAppService","TrackingService","ElementRef","DeviceService","Renderer2","WindowEventService","ChangeDetectorRef","TimerService","Sitecore","ImagesConfig","ImageQualityService","O","selectors","viewQuery","rf","ctx","Te","xe","Se","ɵɵclassMap","TeaserComponent_Conditional_0_Template","BannerJackpotComponent","CrmPromotionModule","BannerComponent","NgOptimizedImage","NgClass","NgStyle","TrustPipe","IconCustomComponent","SlideshowComponent","SlideComponent","DsButton","encapsulation","changeDetection","_TeaserComponent","TeaserUtilsService","userService","loggerFactory","externalPriceFormatter","bettingOffer","teaserSizes","twoOptionPrefix","threeOptionPrefix","logger","getLogger","filter","isAuthenticated","extend","screenWidth","eventsId","map","id","size","getTeaserSize","eventsData","of","getFixtureList","fixtureIds","join","scoreboardMode","offerMapping","response","process","catchError","error","logError","list","applyDetail","devicePixelRatio","find","x","fixtures","findFixture","current","fixture","market","games","pop","results","Object","assign","details","league","name","competition","value","sports","sport","showMore","buildTeaserOptionText","prefixes","option","format","getSubtitle","displayCountryLeague","ɵɵinject","UserService","LoggerFactory","ExternalPriceFormatterService","BettingOfferApi","factory","ɵfac","providedIn","_TeaserUtilsService","TeasersService","apiService","teaserUtils","_doc","DOCUMENT","data","onAuthenticationChange$","startWith","switchMap","get","enhance","shareReplay","pageWidth","extended","addJackpotDetails","addSlideshowHack","body","source","type","icon","background","jackpotGroup","popup","originalTeaserCount","indexOf","ApiService","_TeasersService","ctx_r0","RotatingTeaserWidgetComponent","WidgetComponent","teaserService","crmConfig","promoService","teasersEnhancing","setPromotions","promo","noFilters","slice","bannerCount","lobby","setHasData","hasData","setWidgetLoaded","promotions$","tap","onData","hidden","processed","CrmConfig","CrmPromotionProviderService","hostVars","hostBindings","RotatingTeaserWidgetComponent_ms_teaser_0_Template","NgIf","_RotatingTeaserWidgetComponent","trackBannerClicked","image","htmlContents","ɵɵelementContainerStart","StaticTeaserWidgetComponent_ng_container_0_a_1_Template","StaticTeaserWidgetComponent_ng_container_0_div_2_Template","ve","showHtmlContents","StaticTeaserWidgetComponent","trackingService","trackingSource","isEmpty","StaticTeaserWidgetComponent_ng_container_0_Template","styles","_StaticTeaserWidgetComponent","WidgetRegistrationService","registry","onFeatureInit","registerLazy","WidgetRegistryService","_WidgetRegistrationService","provide","runOnFeatureInit"],"mappings":"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"}