{"version":3,"file":"chunk-jen5e5vz.js","sources":["packages/sports/web/app/src/highlights-marquee/highlights-marquee-component-loader.service.ts","packages/sports/web/app/src/crm-promotion-container/crm-promotion-container.component.html","packages/sports/web/app/src/crm-promotion-container/crm-promotion-container.component.ts","packages/sports/web/app/src/crm-promotion-container/crm-promotion-container.module.ts"],"sourcesContent":["import { EventEmitter, Injectable, Type } from '@angular/core';\n\nimport { EventModel, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { TrackingSource as TrackingSourceData } from '@frontend/sports/tracking/feature';\nimport { MarqueeBackgroundContainerConfig } from '@frontend/sports/types/components/content';\nimport { MarqueeLink } from '@frontend/sports/types/components/widget/types';\n\nimport { SourceOfPick } from '../betslip-base/models/pick-models';\nimport { Promotion, TrackingSource } from '../crm-offer-data/crm-offer.model';\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport type { HighlightsMarqueePage } from './highlights-marquee-page.enum';\nimport type { HighlightsMarqueeComponent } from './highlights-marquee.component';\nimport type { HighlightsMarqueeModule } from './highlights-marquee.module';\nimport type { FixtureTile, ScoreDetails, TileOrPromotion } from './marquee-tile.model';\n\nexport interface HighLightsMarqueeBinding {\n tiles: TileOrPromotion[];\n promotionTiles: Promotion[];\n preventNavigation: boolean;\n showLoader: boolean;\n scrollingSpeed: { [key: string]: string };\n promotionTrackingSource: TrackingSource;\n page?: HighlightsMarqueePage;\n backgroundContainerConfig: MarqueeBackgroundContainerConfig;\n globalLinkConfig: MarqueeLink;\n allowedSportsWithLogo: number[];\n}\n\nexport interface OptionGroupBinding {\n event: EventModel;\n optionGroup: EventOptionGroup;\n isOneWaySpecial: boolean;\n optionNames?: string[];\n showDropDown: boolean;\n hasImage: boolean;\n tracking: TrackingSourceData;\n disableOdds: boolean;\n isPriceBoosted: boolean;\n sourceOfPick: SourceOfPick;\n}\nexport interface BetNowButtonBinding {\n event: EventModel;\n}\nexport interface OddIncrementDecrementBinding {\n position: number;\n participantScore: number;\n participantLiveScore: number;\n changeScoreEvent: EventEmitter;\n}\n\nexport interface SpecialMarqueeBadgeBinding {\n tile: FixtureTile;\n showIcon?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HighlightsMarqueeComponentLoaderService extends ComponentLoaderService {\n moduleName = 'HighlightsMarqueeModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getHighlightsMarqueeComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.highlightsMarqueeComponent);\n }\n\n getBetNowButtonComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.betNowButtonComponent);\n }\n\n getModule(): Promise> {\n return import('./highlights-marquee.module').then((m) => m.HighlightsMarqueeModule);\n }\n}\n","\n \n\n\n \n\n","import { AfterContentInit, Component, DestroyRef, ElementRef, HostBinding, Input, OnChanges, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { fromEvent } from 'rxjs';\n\nimport { Promotion, TrackingSource } from '../crm-offer-data/crm-offer.model';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { HighLightsMarqueeBinding, HighlightsMarqueeComponentLoaderService } from '../highlights-marquee/highlights-marquee-component-loader.service';\n\n@Component({\n selector: 'ms-crm-promotion-container',\n templateUrl: 'crm-promotion-container.component.html',\n})\nexport class CrmPromotionContainerComponent implements OnChanges, AfterContentInit {\n @HostBinding('class.height-increase-allowed') heightIncreaseAllowedClass: boolean;\n @HostBinding('class.show-card-shadow') showCardShadowClass: boolean;\n @HostBinding('class.single') singleBannerClass: boolean;\n @HostBinding('class.double') doubleBannerClass: boolean;\n @HostBinding('class.multi') multiBannerClass: boolean;\n\n @Input() heightIncreaseAllowed?: boolean;\n @Input() showCardShadow?: boolean;\n @Input() promotions: Promotion[] = [];\n @Input() trackingSource = TrackingSource.Teaser;\n\n private doubleBannerMarqueeBreakpointPx = 565;\n scrollingSpeed = { ['default']: 'moderate' };\n marqueeComponent: ComponentProxy;\n showMarquee = false;\n private readonly destroyRef = inject(DestroyRef);\n readonly #window = inject(WINDOW);\n\n constructor(\n private elementRef: ElementRef,\n private marqueeLoader: HighlightsMarqueeComponentLoaderService,\n ) {\n this.marqueeComponent = this.marqueeLoader.getHighlightsMarqueeComponent();\n this.marqueeComponent.update({ scrollingSpeed: this.scrollingSpeed });\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n const change = changes.promotions;\n\n if (!change) {\n return;\n }\n\n this.heightIncreaseAllowedClass = !!this.heightIncreaseAllowed;\n this.showCardShadowClass = !!this.showCardShadow;\n this.singleBannerClass = this.promotions.length === 1;\n this.doubleBannerClass = this.promotions.length === 2;\n this.multiBannerClass = this.promotions.length > 2;\n this.showMarquee = this.promotions.length >= 2;\n this.marqueeComponent.update({\n promotionTiles: this.promotions,\n });\n this.setClasses();\n }\n\n trackPromoBy(index: number, item: Promotion): string {\n return item.id;\n }\n\n ngAfterContentInit(): void {\n fromEvent(this.#window, 'resize')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setClasses());\n }\n\n private setClasses(): void {\n if (this.promotions.length !== 2) {\n return;\n }\n\n this.doubleBannerClass = this.elementRef.nativeElement.offsetWidth > this.doubleBannerMarqueeBreakpointPx;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { CrmPromotionContainerComponent } from './crm-promotion-container.component';\n\n@NgModule({\n imports: [CommonModule, CrmPromotionModule, ComponentProxyDirective],\n declarations: [CrmPromotionContainerComponent],\n exports: [CrmPromotionContainerComponent],\n})\nexport class CrmPromotionContainerModule {}\n"],"names":["HighlightsMarqueeComponentLoaderService","ComponentLoaderService","constructor","moduleLoader","loggerFactory","moduleName","getHighlightsMarqueeComponent","getComponentProxy","module","highlightsMarqueeComponent","getBetNowButtonComponent","betNowButtonComponent","getModule","then","m","HighlightsMarqueeModule","ɵɵinject","ModuleLoaderService","LoggerFactory","x","factory","ɵfac","providedIn","_HighlightsMarqueeComponentLoaderService","ɵɵelement","c","ɵɵproperty","promotion_r1","position_r2","ctx_r2","trackingSource","ɵɵelementContainerStart","ɵɵtemplate","CrmPromotionContainerComponent_ng_container_0_ms_crm_promotion_banner_1_Template","ɵɵadvance","promotions","trackPromoBy","ɵɵelementContainer","CrmPromotionContainerComponent_ng_container_1_ng_container_1_Template","marqueeComponent","CrmPromotionContainerComponent","_window","elementRef","marqueeLoader","__privateAdd","TrackingSource","Teaser","doubleBannerMarqueeBreakpointPx","scrollingSpeed","showMarquee","destroyRef","inject","DestroyRef","__privateSet","WINDOW","update","ngOnChanges","changes","heightIncreaseAllowedClass","heightIncreaseAllowed","showCardShadowClass","showCardShadow","singleBannerClass","length","doubleBannerClass","multiBannerClass","promotionTiles","setClasses","index","item","id","ngAfterContentInit","fromEvent","__privateGet","pipe","takeUntilDestroyed","subscribe","nativeElement","offsetWidth","ɵɵdirectiveInject","ElementRef","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassProp","M","CrmPromotionContainerComponent_ng_container_0_Template","CrmPromotionContainerComponent_ng_container_1_Template","b","F","A","O","_CrmPromotionContainerComponent","CrmPromotionContainerModule","CommonModule","CrmPromotionModule","_CrmPromotionContainerModule"],"mappings":"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"}