{"version":3,"file":"teaser.feature-i42tr22p.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.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 { TeaserViewModel } from '@frontend/sports/types/components/teasers';\nimport { LinkViewModel } from '@frontend/sports/types/models/link';\n\nexport interface EnhancedTeaserViewModel extends TeaserViewModel {\n details?: any;\n extract?: boolean;\n jackpotbanner?: TeasersJackpotViewModel;\n options?: string[];\n originalTeasersCount?: number;\n showMore?: boolean;\n visibleTeaser?: boolean;\n}\n\nexport interface TeasersResponse {\n teasers: EnhancedTeaserViewModel[];\n}\n\nexport interface TeasersJackpotViewModel {\n icon?: string;\n title?: string;\n subtitle?: string;\n background?: string;\n jackpotGroup?: string;\n value?: number;\n link?: LinkViewModel;\n}\n\nexport enum Alignment {\n Right = 'Right',\n Left = 'Left',\n Center = 'Center',\n}\n","@if (teasers?.length > 0 || promotions?.length) {\n \n @for (promotion of promotions; track promotion.id; let position = $index) {\n \n \n \n }\n @for (teaser of teasers; track teaser.title; 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.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\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(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 readonly #window = inject(WINDOW);\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, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\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 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 { UserService } from '@frontend/sports/user/feature';\nimport { UserEvent } from '@frontend/vanilla/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, startWith, switchMap } from 'rxjs/operators';\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 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","c","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","w","ɵɵ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","ɵɵ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","_forTrack1","delay","slideMode","totalCount","navigationMode","arrowLeftRightValue","overlayArea","teasers","TeaserComponent","_window","constructor","urlHelper","eventBridge","nativeApp","tracking","elementRef","device","renderer","windowEvent","changeDetector","timer","sitecore","imagesConfig","imageQualityService","__privateAdd","className","currentSlideIndex","SlideshowMode","OneSlide","imageElements","teaserMaxHeight","teaserImageRatio","cropRange","min","max","arrows","width","height","marginOnThreeTeasers","marginOnOneTeasers","destroyRef","inject","DestroyRef","toggleSlideMode","isMobile","NavigationMode","Swipe","Arrows","containerWidth","teaserCount","ThreeSlides","__privateSet","WINDOW","isTablet","Calcutewidth","window","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","__privateGet","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","k","selectors","viewQuery","rf","ctx","Ee","ye","we","ɵɵ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","O","factory","ɵfac","providedIn","_TeaserUtilsService","TeasersService","apiService","teaserUtils","_doc","DOCUMENT","data","onAuthenticationChange$","startWith","switchMap","get","enhance","shareReplay","pageWidth","extended","addJackpotDetails","addSlideshowHack","body","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","K","image","htmlContents","ɵɵelementContainerStart","StaticTeaserWidgetComponent_ng_container_0_a_1_Template","StaticTeaserWidgetComponent_ng_container_0_div_2_Template","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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"}