{"version":3,"file":"chunk-gyfv6o80.js","sources":["packages/sports/web/app/src/event-list-shared/coupons/coupon.model.ts","packages/sports/web/app/src/event-list-shared/coupons/coupons.utils.service.ts","packages/sports/web/app/src/dependency/master-detail-dependency.service.ts","packages/sports/web/app/src/cds/coupon-api.service.ts","packages/sports/web/app/src/event-list-shared/coupons/bet-builder/betbuilder-coupon.service.ts","packages/sports/web/app/src/event-list-shared/coupons/coupon.service.ts"],"sourcesContent":["import { FixturePage } from '@cds/betting-offer';\nimport { SportModel } from '@frontend/sports/betting-offer/feature/model';\nimport { CountItem, LeagueItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { GridSorting } from '@frontend/sports/grid/core/feature/model';\n\nexport enum CouponType {\n BetBuilder = -1,\n MultiBuilder,\n Regular,\n FormCoupon,\n}\n\nexport interface Coupon {\n id: number;\n title: string;\n description: string;\n active?: boolean;\n type: CouponType;\n gridGroups?: string[];\n landingPageImageUrl?: string;\n detailsPageImageUrl?: string;\n bgColor?: string;\n textColor?: string;\n order?: number;\n isFormCoupon: boolean;\n couponType?: string;\n showMarketSwitcher?: boolean;\n sortByPrice?: boolean;\n couponTag?: string;\n offerSelection?: string;\n}\n\nexport interface CouponList {\n coupons: Coupon[];\n sport: SportModel;\n counts?: CountItem;\n}\n\nexport interface CouponDetail extends Coupon {\n sport: SportModel;\n sorting?: GridSorting;\n page: FixturePage;\n competition?: number;\n virtualCompetitionData?: LeagueItem;\n}\n","import { Injectable } from '@angular/core';\n\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\n\nimport { CouponUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { Coupon, CouponType } from './coupon.model';\n\n@Injectable({ providedIn: 'root' })\nexport class CouponsUtilsService {\n constructor(private urlHelper: UrlHelperService) {}\n\n getUrl(coupon: Coupon, sport: UrlParam, region?: UrlParam, league?: UrlParam): string {\n const isCompetitionCoupon = !!(region && league);\n\n // coupon title was undefined on qa\n if (!coupon.title && !isCompetitionCoupon) {\n return this.urlHelper.getCouponUrl(sport);\n }\n\n const param = coupon.id === CouponType.BetBuilder ? CouponUrlParam.BetBuilder : { id: coupon.id, name: coupon.title };\n\n return isCompetitionCoupon ? this.urlHelper.getCompetitionCouponUrl(sport, param, region, league) : this.urlHelper.getCouponUrl(sport, param);\n }\n}\n","import { Type } from '@angular/core';\nimport { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nimport { Observable, map, of, switchMap, tap } from 'rxjs';\n\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { LayoutColumn } from '../layout/layout.model';\n\nexport interface MasterDetailComponent {\n component: Type;\n map: (data?: TMaster) => any;\n}\n\nexport interface MasterDetailState {\n master?: TMaster;\n detail?: TDetail;\n}\n\nexport abstract class MasterDetailDependencyService {\n private state?: MasterDetailState;\n private redirect?: boolean;\n\n constructor(protected layoutService: ColumnLayoutService) {}\n\n abstract getData(route: ActivatedRouteSnapshot, detail?: TDetail): Observable;\n abstract getPreResolvedData(route: ActivatedRouteSnapshot): Observable;\n abstract getDetailData(route: ActivatedRouteSnapshot, master?: TMaster): Observable;\n abstract getPreResolvedDetailData(route: ActivatedRouteSnapshot): Observable;\n abstract getComponents(): MasterDetailComponent[];\n\n abstract getRouteParams?(): Params;\n\n updateState(state: MasterDetailState): void {}\n\n shouldUpdateMasterCache(master: TMaster, route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n shouldUpdateDetailCache(detail: TDetail, route: ActivatedRouteSnapshot): boolean {\n return true;\n }\n\n getContext(route: ActivatedRouteSnapshot, detail?: TDetail): Observable {\n if (this.state && this.state.master && detail && !this.shouldUpdateMasterCache(this.state.master, route)) {\n this.updateState(this.toState(this.state.master, detail));\n\n return of(this.state.master);\n }\n\n return this.getData(route, detail).pipe(\n switchMap((result) => {\n if (!detail && (this.redirect = this.hasDependency(route, result))) {\n // we do not set the dependency here as the router will navigate to the fallback route and\n // after the child route is loaded it will register the dependency\n return this.getChildContext(route, result).pipe(map((data) => this.toState(result, data)));\n }\n\n return of(this.toState(result));\n }),\n tap((result) => {\n if (detail || result.detail) {\n this.state = result;\n }\n }),\n map((result) => result.master),\n );\n }\n\n getCacheData(): TMaster | undefined {\n if (!this.state) {\n return;\n }\n\n return this.state.master;\n }\n\n getChildContext(route: ActivatedRouteSnapshot, master?: TMaster): Observable {\n if (this.state && this.state.detail && !this.shouldUpdateDetailCache(this.state.detail, route)) {\n this.registerDependency(this.state.master);\n\n return of(this.state.detail).pipe(tap(() => (this.state!.detail = undefined)));\n }\n\n return this.getDetailData(route, master).pipe(\n switchMap((result) => {\n if (!master && (this.redirect = this.hasDependency(route, result))) {\n return this.getContext(route, result).pipe(\n tap((data) => this.registerDependency(data)),\n map((data) => this.toState(data, result)),\n );\n }\n\n return of(this.toState(undefined, result));\n }),\n tap((result) => {\n if (master) {\n this.state = result;\n }\n }),\n map((result) => result.detail),\n );\n }\n\n shouldRedirect(): boolean {\n return !!this.redirect;\n }\n\n deregister(): void {\n this.getComponents().forEach((registration) => this.layoutService.remove(registration.component, LayoutColumn.Left));\n }\n\n private toState(master?: TMaster, detail?: TDetail): MasterDetailState {\n return {\n master,\n detail,\n };\n }\n\n protected hasDependency(route: ActivatedRouteSnapshot, result?: TMaster | TDetail): boolean {\n return this.layoutService.layout.shouldHaveLeftColumn && !!result;\n }\n\n registerDependency(state?: TMaster): void {\n if (!state) {\n this.deregister();\n\n return;\n }\n\n this.getComponents().forEach((registration) =>\n this.layoutService.register({\n component: registration.component,\n inputs: registration.map(state),\n location: LayoutColumn.Left,\n }),\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { Coupon, CouponPage, CouponSubType } from '@cds/betting-offer/domain-specific/coupons';\nimport { FixtureFormMode, ScoreboardMode, SortByCriteria } from '@cds/query-objects';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class CouponApi {\n private cdsApi: BaseCdsApi;\n\n constructor(@Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/coupons' });\n }\n\n getCoupons(\n sportId: number,\n couponSubType: CouponSubType = CouponSubType.Regular,\n competitionId?: number,\n virtualCompetitionId?: number,\n ): Observable {\n return this.cdsApi.get('', { sportId, couponSubType, competitionId, virtualCompetitionId });\n }\n\n getMultiBuilderCoupons(maxCouponCount: number): Observable {\n return this.cdsApi.get('', { couponsubtype: 'multibuilder', maxCouponCount });\n }\n\n getCoupon(\n sportIds: string,\n couponId: number,\n skip: number = 0,\n take: number = 10,\n sortBy: SortByCriteria = SortByCriteria.StartDate,\n statisticsModes?: string,\n form?: FixtureFormMode,\n interval?: { from?: string; to?: string },\n couponsubtype: CouponSubType = CouponSubType.Regular,\n competitionIds?: string,\n virtualCompetitionId?: string,\n ): Observable {\n return this.cdsApi.get('/fixtures', {\n sportIds,\n couponId,\n skip,\n take,\n sortBy,\n fixtureForm: form,\n from: interval?.from,\n to: interval?.to,\n couponSubType: couponsubtype,\n competitionIds,\n virtualCompetitionId,\n statisticsModes,\n scoreboardMode: ScoreboardMode.Slim,\n });\n }\n\n getMultiBuilderCoupon(\n couponId: number,\n fromDate: Date,\n toDate: Date,\n sortBy: SortByCriteria = SortByCriteria.StartDate,\n take: number = 15,\n fixtureForm?: FixtureFormMode,\n statisticsModes?: string,\n ): Observable {\n return this.cdsApi.get('/fixtures', {\n couponId,\n sortBy,\n From: fromDate.toJSON(),\n To: toDate.toJSON(),\n take,\n fixtureForm,\n statisticsModes,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetBuilderConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, forkJoin, map, of } from 'rxjs';\n\nimport { BetBuilderConfigService } from '../../../betbuilder/services/betbuilder-config.service';\nimport { BetBuilderApi } from '../../../cds/betbuilder-api.service';\nimport { CouponType } from '../coupon.model';\nimport { BetBuilderDetail } from './bet-builder-detail.model';\n\n@Injectable({ providedIn: 'root' })\nexport class BetBuilderCouponService {\n constructor(\n private betBuilderConfig: BetBuilderConfig,\n private betBuilderConfigService: BetBuilderConfigService,\n private betBuilderApi: BetBuilderApi,\n ) {}\n\n getDetailCoupon(sport?: number, competitionId?: number): Observable {\n const betbuilderEnabledForSport = sport && this.betBuilderConfigService.isBetBuilderEnabled(sport);\n if (!betbuilderEnabledForSport) {\n return of(undefined);\n }\n const sources = [];\n sources.push(this.betBuilderApi.getFixtures(sport, 0, this.betBuilderConfig.pageSize, competitionId));\n if (this.betBuilderConfig.isPrecreatedBetBuilderEnabled) {\n sources.push(this.betBuilderApi.getPromotedMarkets(sport, 1, this.betBuilderConfig.pageSize, competitionId));\n }\n\n return forkJoin(sources).pipe(\n map(([fixture, tiles]) => {\n return {\n fixture: fixture!,\n tiles: tiles!,\n type: CouponType.BetBuilder,\n competitionId,\n } as BetBuilderDetail;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { FixtureForm } from '@cds/betting-offer/add-ons';\nimport { Coupon as CdsCoupon, CouponPage, CouponSubType } from '@cds/betting-offer/domain-specific/coupons';\nimport { FixtureFormMode, SortByCriteria } from '@cds/query-objects';\nimport { SportModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ClientCachingConfig, LayoutNavigationConfig, PrettyUrlsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { ItemType, LeagueItem, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { ExpiringCache } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { GridSorting } from '@frontend/sports/grid/core/feature/model';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { DeviceService, NativeAppService } from '@frontend/vanilla/core';\nimport { isArray, toInteger, toNumber } from 'lodash-es';\nimport { Observable, iif, map, of, switchMap, tap } from 'rxjs';\n\nimport { BetBuilderConfigService } from '../../betbuilder/services/betbuilder-config.service';\nimport { CalendarService } from '../../calendar/calendar.service';\nimport { CouponApi } from '../../cds/coupon-api.service';\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { MasterDetailComponent, MasterDetailDependencyService, MasterDetailState } from '../../dependency/master-detail-dependency.service';\nimport { ColumnLayoutService } from '../../layout/column-layout.service';\nimport { TopNavigationVersion } from '../../navigation-core/navigation-core.models';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\nimport { StatisticsConfigService } from '../../statistics/statistics-config.service';\nimport { SortingStateService } from '../sport/services/sorting-state.service';\nimport { BetBuilderDetail } from './bet-builder/bet-builder-detail.model';\nimport { BetBuilderCouponService } from './bet-builder/betbuilder-coupon.service';\nimport { CouponListComponent } from './coupon-list.component';\nimport { Coupon, CouponDetail, CouponList, CouponType } from './coupon.model';\n\n@Injectable({ providedIn: 'root' })\nexport class CouponService extends MasterDetailDependencyService {\n private cache: ExpiringCache;\n\n constructor(\n private sitecore: Sitecore,\n private routerEvents: RouterEventsService,\n private sportCacheService: SportsCacheService,\n private sortingStore: SortingStateService,\n private urlConfig: PrettyUrlsConfig,\n private device: DeviceService,\n private couponApiService: CouponApi,\n private betBuilderService: BetBuilderCouponService,\n private betBuilderConfigService: BetBuilderConfigService,\n private nativeAppService: NativeAppService,\n layoutService: ColumnLayoutService,\n clientCachingConfig: ClientCachingConfig,\n private calendar: CalendarService,\n private layoutNavConfig: LayoutNavigationConfig,\n private competitionRoute: CompetitionRouteService,\n private statisticsConfigService: StatisticsConfigService,\n ) {\n super(layoutService);\n\n this.cache = new ExpiringCache(clientCachingConfig.couponListTimeout);\n\n this.routerEvents.currentActivationEnd.pipe(takeUntilDestroyed()).subscribe((route) => {\n if (route && route.snapshot.data.tag !== RouteTag.Coupons && route.snapshot.data.tag !== RouteTag.CouponDetails) {\n this.deregister();\n }\n });\n }\n\n getRouteParams: undefined;\n\n getData(route: ActivatedRouteSnapshot, detail?: CouponDetail): Observable {\n const routeParams = this.competitionRoute.params();\n const { sport, competition, virtualCompetition } = this.getParam(route, routeParams);\n\n if (!sport) {\n throw new Error('Sport should be defined');\n }\n\n const isBetbuilderEnabled = this.betBuilderConfigService.isBetBuilderEnabled(sport);\n\n const betBuilder = {\n id: CouponType.BetBuilder,\n title: this.sitecore.betBuilder.messages?.BetBuilderEventsTitle ?? '',\n description: this.sitecore.betBuilder.messages?.BetBuilderEventsTitle ?? '',\n type: CouponType.BetBuilder,\n isFormCoupon: false,\n showMarketSwitcher: false,\n };\n\n const couponSubType = this.nativeAppService.isTerminal ? CouponSubType.Retail : CouponSubType.Regular;\n const source = this.couponApiService.getCoupons(sport, couponSubType, competition, virtualCompetition).pipe(\n map((coupons) => {\n const mapped = !coupons?.length ? [] : coupons.map((coupon) => this.getCouponModel(coupon));\n const target: number = detail ? this.getCouponId(detail) : toNumber(this.getDetailTarget(mapped)?.id);\n\n if (isBetbuilderEnabled) {\n if (this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V3) {\n mapped.push(betBuilder);\n } else if (this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V2 && coupons?.length) {\n mapped.unshift(betBuilder);\n }\n }\n\n return {\n coupons: mapped.map((coupon) => ({ ...coupon, active: coupon.id === target })),\n };\n }),\n switchMap((couponList) =>\n iif(() => couponList.coupons.length > 0, this.sportCacheService.getSport(sport), of(undefined)).pipe(\n map((sportItem) => {\n if (!sportItem) {\n return;\n }\n\n const competitionContext = !!(competition || virtualCompetition);\n const countCompetition = children(sportItem, ItemType.Competition).find((c) => c.id === (competition || virtualCompetition));\n const shouldRemoveBetbuilder = !!(countCompetition && (!countCompetition.meta.betBuilder || countCompetition.isVirtual));\n\n if ((!sportItem.meta.betBuilder && !competitionContext) || (competitionContext && shouldRemoveBetbuilder)) {\n const betBuilderIndex = couponList.coupons.findIndex((c) => c.id === CouponType.BetBuilder);\n if (betBuilderIndex >= 0) {\n couponList.coupons.splice(betBuilderIndex, 1);\n }\n }\n\n return { ...couponList, sport: { id: sport, name: sportItem.name }, counts: sportItem } as CouponList;\n }),\n ),\n ),\n );\n\n const casheSuff = competition ? `-${competition}` : virtualCompetition ? `-v-${virtualCompetition}` : '';\n\n return this.cache.getOrCreate(`coupons-${sport}${casheSuff}`, source).pipe(\n tap((result) => {\n if (result?.coupons.length) {\n let target: number | undefined;\n\n if (detail) {\n target = this.getCouponId(detail);\n }\n\n result.coupons.forEach((coupon) => (coupon.active = coupon.id === target));\n }\n }),\n );\n }\n\n getPreResolvedData(route: ActivatedRouteSnapshot): Observable {\n return of(undefined);\n }\n\n override updateState(state: MasterDetailState): void {\n if (!state.master || !state.detail) {\n return;\n }\n\n state.master.coupons.forEach((coupon) => (coupon.active = coupon.id === this.getCouponId(state.detail!)));\n }\n\n override shouldUpdateDetailCache(detail: CouponDetail, route: ActivatedRouteSnapshot): boolean {\n const { couponId } = this.getParam(route);\n\n return ('id' in detail && detail.id !== couponId) || (couponId === CouponType.BetBuilder && !('fixture' in detail));\n }\n\n getDetailData(route: ActivatedRouteSnapshot, master?: CouponList | undefined): Observable {\n const routeParams = this.competitionRoute.params();\n const { couponId, sport, competition, virtualCompetition } = this.getParam(route, routeParams);\n const fallback = this.getDetailFallback(master);\n\n const target = fallback ? (fallback.id as number) : couponId;\n if (!target) {\n return of(undefined);\n }\n\n if (target === CouponType.BetBuilder) {\n if (virtualCompetition) {\n return of(undefined);\n }\n\n return this.betBuilderService.getDetailCoupon(sport, competition);\n }\n\n const interval = this.calendar.getTimeInterval(route.params.context);\n\n return this.getData(route).pipe(\n switchMap((couponList) => {\n const coupon: Coupon | undefined = couponList?.coupons.find((each) => each.id === target);\n if (!coupon) {\n return of(undefined);\n }\n coupon.active = true;\n if (coupon.type === CouponType.FormCoupon) {\n return this.getDetailCoupon(target, coupon.type, sport, FixtureFormMode.Overall, interval); // coupon-detail\n }\n\n let virtualCompetitionData: LeagueItem | undefined;\n if (virtualCompetition) {\n const competitions = couponList?.counts ? children([couponList?.counts], ItemType.Competition) : [];\n virtualCompetitionData = competitions.find((c) => c.id === virtualCompetition && c.isVirtual);\n }\n\n return this.getDetailCoupon(target, coupon.type, sport, undefined, interval, competition, virtualCompetitionData);\n }),\n );\n }\n\n override getPreResolvedDetailData(route: ActivatedRouteSnapshot): Observable {\n return of(undefined);\n }\n\n getComponents(): MasterDetailComponent[] {\n return [{ component: CouponListComponent, map: (master?: CouponList) => ({ list: master }) }];\n }\n\n getDetailFallback(overview?: CouponList): UrlParam | undefined {\n if (!overview?.coupons.length) {\n return;\n }\n\n const target = this.getDetailTarget(overview.coupons);\n\n if (target) {\n return { id: target.id, name: target.title };\n }\n\n return;\n }\n\n getCoupon(\n sportIds: string,\n couponId: number,\n couponsubtype?: CouponSubType,\n skip: number = 0,\n take: number = 10,\n sortBy: SortByCriteria = SortByCriteria.StartDate,\n form?: FixtureFormMode,\n interval?: { from?: string; to?: string },\n competition?: number,\n virtualCompetition?: number,\n ): Observable {\n const competitionIds = competition ? `${competition}` : undefined;\n const virtualCompetitionIds = virtualCompetition ? `${virtualCompetition}` : undefined;\n const statisticsModes = this.statisticsConfigService.getStatisticsModesBySportId(toInteger(sportIds));\n const coupon = this.couponApiService.getCoupon(\n sportIds,\n couponId,\n skip,\n take,\n sortBy,\n statisticsModes,\n form,\n interval,\n couponsubtype,\n competitionIds,\n virtualCompetitionIds,\n );\n\n if (coupon && form) {\n return this.adaptFixtureFormModel(coupon as Observable, form);\n }\n\n return coupon;\n }\n\n protected override hasDependency(route: ActivatedRouteSnapshot, master: CouponList | undefined): boolean {\n const param = this.getParam(route);\n\n if (this.device.isRobot && !param.couponId) {\n return false;\n }\n\n return super.hasDependency(route, master);\n }\n\n private adaptFixtureFormModel(couponPage: Observable, formMode?: FixtureFormMode): Observable {\n const filterForm = (fixtureForm: FixtureForm, filter: (keyof FixtureForm)[]) => {\n for (const key in fixtureForm) {\n const typedKey = key as keyof FixtureForm;\n if (!filter.includes(key as keyof FixtureForm)) {\n //TODO any index issue, please investigate if below line is needed\n //@ts-ignore below line doesn't make sense, but kept it to ensure no changes are happening to the behavior\n fixtureForm[key] = undefined;\n }\n if (fixtureForm[typedKey]) {\n fixtureForm[typedKey]!.outcomes = fixtureForm[typedKey]!.outcomes.reverse();\n }\n }\n };\n\n return couponPage.pipe(\n map((coupon) =>\n coupon.fixturePage.fixtures.reduce((result, fixture) => {\n if (fixture.addons && fixture.addons.fixtureStatistics?.fixtureForm) {\n const selectedForm: { [mode in FixtureFormMode]: (keyof FixtureForm)[] } = {\n [FixtureFormMode.All]: ['overallAwayTeamForm', 'overallHomeTeamForm'],\n [FixtureFormMode.Overall]: ['overallAwayTeamForm', 'overallHomeTeamForm'],\n [FixtureFormMode.Home]: ['homeTeamHomeForm'],\n [FixtureFormMode.Away]: ['awayTeamAwayForm'],\n [FixtureFormMode.None]: [],\n };\n filterForm(fixture.addons.fixtureStatistics?.fixtureForm, selectedForm[formMode || FixtureFormMode.Overall]);\n }\n\n return result;\n }, coupon),\n ),\n );\n }\n\n private getCouponId(detail: CouponDetail | BetBuilderDetail): number {\n return detail.id ?? detail.type;\n }\n\n protected getDetailCoupon(\n id: number,\n type: CouponType,\n sport?: number,\n formType?: FixtureFormMode,\n interval?: { from?: string; to?: string },\n competition?: number,\n virtualCompetitionData?: LeagueItem,\n ): Observable {\n if (!sport) {\n return of(undefined);\n }\n\n const sorting = this.mapSorting(sport, type, formType);\n const criteria = this.getCriteria(sorting, type);\n const couponSubType = this.nativeAppService.isTerminal ? CouponSubType.Retail : CouponSubType.Regular;\n\n return this.getCoupon(sport.toString(), id, couponSubType, 0, 30, criteria, formType, interval, competition, virtualCompetitionData?.id).pipe(\n map((current) => {\n if (!current?.coupon) {\n return;\n }\n let sportItem: SportModel;\n if (\n !current.fixturePage.fixtures.length ||\n (current.fixturePage.fixtures.length > 0 && current.fixturePage.fixtures[0].sport.id !== sport)\n ) {\n sportItem = {\n id: sport,\n name: '',\n virtual: false,\n };\n } else {\n sportItem = this.getSportModel(current.fixturePage.fixtures[0]);\n }\n\n return {\n id: current.coupon.id,\n title: current.coupon.title,\n description: current.coupon.shortDescription,\n gridGroups: current.coupon.gridGroups,\n sport: sportItem,\n page: current.fixturePage,\n type,\n sorting,\n bgColor: current.coupon.backgroundColor,\n textColor: current.coupon.titleTextColor,\n detailsPageImageUrl: current.coupon.detailsPageBackgroundImage,\n landingPageImageUrl: current.coupon.landingPageBackgroundImage,\n order: current.coupon.order,\n isFormCoupon: current.coupon.isFormCoupon,\n couponType: current.coupon.contentType,\n offerSelection: current.coupon.offerSelection,\n showMarketSwitcher: current.coupon.showMarketSwitcher,\n competition,\n virtualCompetitionData,\n sortByPrice: current.coupon.sortByPrice,\n } as CouponDetail;\n }),\n );\n }\n\n private getCriteria(sorting: GridSorting, type: CouponType): SortByCriteria {\n let criteria = SortByCriteria.Tags;\n\n if (sorting === GridSorting.Time) {\n criteria = SortByCriteria.StartDate;\n }\n\n if (type === CouponType.FormCoupon) {\n criteria = SortByCriteria.FixtureForm;\n }\n\n return criteria;\n }\n\n private getDetailTarget(list: Coupon[]): Coupon | undefined {\n return list.filter((coupon) => coupon.type !== CouponType.BetBuilder).shift();\n }\n\n private getCouponModel(coupon: CdsCoupon): Coupon {\n return {\n id: coupon.id,\n title: coupon.title,\n description: coupon.shortDescription,\n type: this.mapCouponType(coupon),\n bgColor: coupon.backgroundColor,\n textColor: coupon.titleTextColor,\n detailsPageImageUrl: coupon.detailsPageBackgroundImage,\n landingPageImageUrl: coupon.landingPageBackgroundImage,\n order: coupon.order,\n isFormCoupon: coupon.isFormCoupon,\n couponType: coupon.contentType,\n offerSelection: coupon.offerSelection,\n showMarketSwitcher: coupon.showMarketSwitcher,\n sortByPrice: coupon.sortByPrice,\n couponTag: coupon.couponTag ?? 'Other',\n };\n }\n\n private getParam(\n route: ActivatedRouteSnapshot,\n params?: CompetitionRoute,\n ): { sport?: number; couponId?: number; competition?: number; virtualCompetition?: number } {\n const getInteger = (value?: string) => toInteger(value) || undefined;\n\n let routeLeague: number | undefined;\n if (params?.league) {\n routeLeague = isArray(params.league) ? params.league[0] : params.league;\n }\n\n return {\n sport: getInteger(route.params.sport),\n couponId:\n route.routeConfig && route.routeConfig.path === this.urlConfig.translations.betBuilder\n ? CouponType.BetBuilder\n : getInteger(route.params.coupon),\n competition: !params?.isVirtual ? routeLeague : undefined,\n virtualCompetition: params?.isVirtual ? routeLeague : undefined,\n };\n }\n\n protected getSportModel(fixture: Fixture): SportModel {\n return {\n id: fixture.sport.id,\n name: fixture.sport.name.value,\n virtual: fixture.isVirtual,\n };\n }\n\n private mapSorting(sport: number, type: CouponType, fixtureFormType: string | undefined): GridSorting {\n if (type === CouponType.FormCoupon) {\n switch (fixtureFormType) {\n case FixtureFormMode.Away:\n return GridSorting.AwayForm;\n case FixtureFormMode.Overall:\n return GridSorting.OverallForm;\n case FixtureFormMode.Home:\n default:\n return GridSorting.HomeForm;\n }\n }\n\n return this.sortingStore.get('coupons', sport) || GridSorting.Competition;\n }\n\n private mapCouponType(coupon: CdsCoupon): CouponType {\n if (coupon.isFormCoupon === true) {\n return CouponType.FormCoupon;\n } else {\n return CouponType.Regular;\n }\n }\n}\n"],"names":["CouponType","CouponsUtilsService","constructor","urlHelper","getUrl","coupon","sport","region","league","isCompetitionCoupon","title","getCouponUrl","param","id","BetBuilder","CouponUrlParam","name","getCompetitionCouponUrl","ɵɵinject","UrlHelperService","factory","ɵfac","providedIn","_CouponsUtilsService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","A","ɵɵadvance","ɵɵtextInterpolate1","ctx_r2","sitecore","betBuilder","messages","NewBadge","ɵɵtemplate","CouponListComponent_div_0_For_2_Conditional_1_Conditional_1_Template","ɵɵconditional","showBetbuilderNewBadge","ɵɵlistener","item_r2","ɵɵrestoreView","_r1","$implicit","ɵɵnextContext","ɵɵresetView","trackCouponClick","CouponListComponent_div_0_For_2_Conditional_1_Template","ɵɵproperty","getTracking","cleanedAfterTrack","epcotEnabled","active","getTitle","utilsService","ɵ$index_5_r4","ɵ$count_5_r5","ɵɵrepeaterCreate","CouponListComponent_div_0_For_2_Template","_forTrack0","ɵɵrepeater","coupons","ɵɵelement","noCoupons","CouponListComponent","_a","OnRouteResolve","route","liveButton","betBuilderConfig","trackingService","betBuilderConfigService","epcotConfigService","couponType","render$","Subject","showLoader$","pipe","map","startWith","className","signal","isEnabled","list","value","length","replace","onRouteResolved","model","addLiveButton","counts","type","undefined","ngOnDestroy","removeLiveButton","ngOnInit","Boolean","isBetBuilderEnabled","isBetBuilderNewBadgeEnabledForSport","includes","update","indexOf","FormCoupon","triggerEventWithCleaning","trackingConstants","EVENT_TRACKING","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","NOT_APPLICABLE","COMPONENT_LOCATION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_URL_CLICKED","SPORT_ID","toString","ɵɵdirectiveInject","Sitecore","ActivatedRoute","LiveNowLinkRegisterService","BetBuilderConfig","TrackingService","BetBuilderConfigService","EpcotConfigService","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","CouponListComponent_div_0_Template","CouponListComponent_ms_component_loader_1_Template","CouponListComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","be","empty_r6","RxIf","ListItemComponent","ErrorComponent","ComponentLoaderComponent","TrackReferringACtionDirective","encapsulation","__decorate","HooksWireup","__metadata","CouponApi","cdsApiServiceFactory","cdsApi","endpoint","getCoupons","sportId","couponSubType","competitionId","virtualCompetitionId","get","getMultiBuilderCoupons","maxCouponCount","couponsubtype","getCoupon","sportIds","couponId","skip","take","sortBy","statisticsModes","form","interval","competitionIds","fixtureForm","from","to","scoreboardMode","getMultiBuilderCoupon","fromDate","toDate","From","toJSON","To","CDS_API_FACTORY","_CouponApi","MasterDetailDependencyService","layoutService","updateState","state","shouldUpdateMasterCache","master","shouldUpdateDetailCache","detail","getContext","toState","of","getData","switchMap","result","redirect","hasDependency","getChildContext","data","tap","getCacheData","registerDependency","getDetailData","shouldRedirect","deregister","getComponents","forEach","registration","remove","component","LayoutColumn","Left","layout","shouldHaveLeftColumn","register","inputs","location","BetBuilderCouponService","betBuilderApi","getDetailCoupon","sources","push","getFixtures","pageSize","isPrecreatedBetBuilderEnabled","getPromotedMarkets","forkJoin","fixture","tiles","BetBuilderApi","_BetBuilderCouponService","CouponService","routerEvents","sportCacheService","sortingStore","urlConfig","device","couponApiService","betBuilderService","nativeAppService","clientCachingConfig","calendar","layoutNavConfig","competitionRoute","statisticsConfigService","cache","ExpiringCache","couponListTimeout","currentActivationEnd","takeUntilDestroyed","subscribe","snapshot","tag","RouteTag","Coupons","CouponDetails","_b","routeParams","params","competition","virtualCompetition","getParam","Error","isBetbuilderEnabled","BetBuilderEventsTitle","description","isFormCoupon","showMarketSwitcher","isTerminal","source","mapped","getCouponModel","target","getCouponId","toNumber","getDetailTarget","topNavigationVersion","TopNavigationVersion","V3","V2","unshift","__spreadProps","__spreadValues","couponList","iif","getSport","sportItem","competitionContext","countCompetition","children","ItemType","Competition","find","c","shouldRemoveBetbuilder","meta","isVirtual","betBuilderIndex","findIndex","splice","casheSuff","getOrCreate","getPreResolvedData","fallback","getDetailFallback","getTimeInterval","context","each","virtualCompetitionData","getPreResolvedDetailData","overview","virtualCompetitionIds","getStatisticsModesBySportId","toInteger","adaptFixtureFormModel","isRobot","couponPage","formMode","filterForm","filter","key","typedKey","outcomes","reverse","fixturePage","fixtures","reduce","addons","fixtureStatistics","selectedForm","formType","sorting","mapSorting","criteria","getCriteria","current","virtual","getSportModel","shortDescription","gridGroups","page","bgColor","backgroundColor","textColor","titleTextColor","detailsPageImageUrl","detailsPageBackgroundImage","landingPageImageUrl","landingPageBackgroundImage","order","contentType","offerSelection","sortByPrice","GridSorting","Time","shift","mapCouponType","couponTag","getInteger","routeLeague","isArray","routeConfig","path","translations","fixtureFormType","AwayForm","OverallForm","HomeForm","Regular","RouterEventsService","SportsCacheService","SortingStateService","PrettyUrlsConfig","DeviceService","NativeAppService","ColumnLayoutService","ClientCachingConfig","CalendarService","LayoutNavigationConfig","CompetitionRouteService","StatisticsConfigService","x","_CouponService"],"mappings":"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"}