{"version":3,"file":"teaser.feature-gt64yojv.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 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.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\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, 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 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","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","V","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","selectors","viewQuery","rf","ctx","ɵɵclassMap","fe","b","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","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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"}