{"version":3,"file":"chunk-cqfbk0i7.js","sources":["packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-translation-helper.service.ts","packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-market-helper.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { PropType } from '@frontend/sports/common/core/utils/extended-types';\nimport { StringInterpolationPipe } from '@frontend/sports/common/core/utils/string-interpolation';\nimport { MarketView, RacingOptionMarketTypes } from '@frontend/sports/racing/feature/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HorsesFixtureTranslationHelper {\n private readonly marketTranslations: PropType, 'markets'>;\n\n constructor(\n sitecore: Sitecore,\n private stringInterpolationPipe: StringInterpolationPipe,\n ) {\n this.marketTranslations = sitecore.horseRacing.markets;\n }\n\n translateMarketView(market: MarketView): string {\n return this.marketTranslations[market as keyof typeof this.marketTranslations] || '';\n }\n\n getTranslatedMarketName(marketType: string, places?: string, optionName?: string): string {\n switch (marketType) {\n case RacingOptionMarketTypes.WinEw:\n return this.marketTranslations.WinEW;\n case RacingOptionMarketTypes.BettingWithout:\n return this.stringInterpolationPipe.transform(this.marketTranslations.BettingWithout, {\n count: optionName!,\n });\n case RacingOptionMarketTypes.ToFinishX: {\n if (places === '2') return this.marketTranslations.ToFinish2;\n else if (places === '3') return this.marketTranslations.ToFinish3;\n else return this.marketTranslations.ToFinish4;\n }\n case RacingOptionMarketTypes.TopX: {\n if (places === '2') return this.marketTranslations.TopFinish2;\n else if (places === '3') return this.marketTranslations.TopFinish3;\n else return this.marketTranslations.TopFinish4;\n }\n case RacingOptionMarketTypes.WinEwExtraPlace:\n const optionNames = optionName!.split(' ');\n\n return this.stringInterpolationPipe.transform(this.marketTranslations.WinEwExtraplace, {\n places: optionNames[0],\n terms: optionNames[1],\n });\n case RacingOptionMarketTypes.Forecast:\n return this.marketTranslations.Forecast;\n case RacingOptionMarketTypes.Tricast:\n return this.marketTranslations.Tricast;\n case RacingOptionMarketTypes.FreeFormed:\n return this.marketTranslations.Specials;\n case RacingOptionMarketTypes.InsuranceX: {\n if (places === '2') return this.marketTranslations.Insurance2Places;\n else if (places === '3') return this.marketTranslations.Insurance3Places;\n else return this.marketTranslations.Insurance4Places;\n }\n\n case RacingOptionMarketTypes.WinByXlengths: {\n if (places === '1') return this.marketTranslations.WinBy1Lengths;\n else return this.marketTranslations.WinBy3Lengths;\n }\n case RacingOptionMarketTypes.WinnerByHowFar:\n return this.marketTranslations.WinnerByHowFar;\n\n case RacingOptionMarketTypes.InsideVsOutside:\n return this.marketTranslations.InsideVsOutside;\n\n case RacingOptionMarketTypes.OddsVsEvens:\n return this.marketTranslations.OddsVsEvens;\n\n case RacingOptionMarketTypes.TrapWinner:\n return this.marketTranslations.TrapWinner;\n\n default:\n return marketType;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ParticipantMarketStatus, ParticipantMarketType, ParticipantPriceType } from '@cds/betting-offer';\nimport { MarketView, RaceMarketViewModel, WinGameFixture, WinGameParticipant } from '@frontend/sports/racing/feature/models';\nimport { orderBy, uniqBy } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { HorsesFixtureTranslationHelper } from './horses-fixture-translation-helper.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HorsesFixtureMarketHelper {\n private event = new BehaviorSubject('');\n scrollEvent = this.event.asObservable();\n\n constructor(private horsesFixtureTranslationHelper: HorsesFixtureTranslationHelper) {}\n\n isWinMarketFixedOddsLocked(fixture: WinGameFixture): boolean {\n return this.getParticipants(fixture.participants, false);\n }\n\n private getParticipants(participants: WinGameParticipant[], areWinMarketsSuspended: boolean): boolean {\n return participants\n .flatMap((p) => p.options)\n .filter((o) => {\n if (areWinMarketsSuspended) {\n return o.marketType === ParticipantMarketType.Win;\n } else {\n return o.marketType === ParticipantMarketType.Win && o.priceType === ParticipantPriceType.Fixed;\n }\n })\n .every((o) => {\n if (areWinMarketsSuspended) {\n return o.marketStatus === ParticipantMarketStatus.Suspended;\n } else {\n return o.marketStatus !== ParticipantMarketStatus.Visible;\n }\n });\n }\n\n getMarkets(fixture: WinGameFixture): RaceMarketViewModel[] {\n return this.getMarketData(fixture, false) as RaceMarketViewModel[];\n }\n\n getMarketsTabs(fixture: WinGameFixture): TabBarItem[] {\n return this.getMarketData(fixture, true) as TabBarItem[];\n }\n\n private getMarketData(fixture: WinGameFixture, isTabs: boolean): (RaceMarketViewModel | TabBarItem)[] {\n const marketConfig: { [key: string]: { view: MarketView; order: number } } = {\n [ParticipantMarketType.Win]: {\n view: MarketView.Win,\n order: 1,\n },\n [ParticipantMarketType.Forecast]: {\n view: MarketView.Forecast,\n order: 2,\n },\n [ParticipantMarketType.Tricast]: {\n view: MarketView.Tricast,\n order: 3,\n },\n };\n\n let options = fixture.participants.flatMap((o) => o.options).filter((o) => !!marketConfig[o.marketType]);\n options = uniqBy(options, (a) => a.marketType);\n options = orderBy(options, (o) => marketConfig[o.marketType].order);\n\n const markets: (TabBarItem | RaceMarketViewModel)[] = !isTabs\n ? options.map((m) => ({\n view: marketConfig[m.marketType].view,\n name: this.horsesFixtureTranslationHelper.translateMarketView(marketConfig[m.marketType].view),\n }))\n : options.map((market, index) => ({\n id: market.id,\n active: index === 0,\n title: this.horsesFixtureTranslationHelper.translateMarketView(marketConfig[market.marketType].view),\n attribute: marketConfig[market.marketType].view,\n }));\n\n if (!isTabs && fixture.optionMarkets.length > 0) {\n (markets as RaceMarketViewModel[]).push({\n view: MarketView.Specials,\n name: this.horsesFixtureTranslationHelper.translateMarketView(MarketView.Specials),\n } as RaceMarketViewModel);\n }\n\n return markets;\n }\n\n getDerivedMarkets(fixture: WinGameFixture): TabBarItem[] {\n if (!fixture || !fixture.optionSets) {\n return [];\n }\n\n const marketTabs: TabBarItem[] = fixture.optionSets.map((optionSet, index) => ({\n id: optionSet.id,\n title: optionSet.name,\n active: index === 0,\n marketTabOrder: optionSet.id,\n }));\n\n return marketTabs;\n }\n\n checkRacingOptionMarketTypes(racingOptionMarketType: string, marketType?: string): boolean {\n return marketType === racingOptionMarketType;\n }\n}\n"],"names":["HorsesFixtureTranslationHelper","constructor","sitecore","stringInterpolationPipe","marketTranslations","horseRacing","markets","translateMarketView","market","getTranslatedMarketName","marketType","places","optionName","RacingOptionMarketTypes","WinEw","WinEW","BettingWithout","transform","count","ToFinishX","ToFinish2","ToFinish3","ToFinish4","TopX","TopFinish2","TopFinish3","TopFinish4","WinEwExtraPlace","optionNames","split","WinEwExtraplace","terms","Forecast","Tricast","FreeFormed","Specials","InsuranceX","Insurance2Places","Insurance3Places","Insurance4Places","WinByXlengths","WinBy1Lengths","WinBy3Lengths","WinnerByHowFar","InsideVsOutside","OddsVsEvens","TrapWinner","ɵɵinject","Sitecore","StringInterpolationPipe","factory","ɵfac","providedIn","_HorsesFixtureTranslationHelper","HorsesFixtureMarketHelper","horsesFixtureTranslationHelper","event","BehaviorSubject","scrollEvent","asObservable","isWinMarketFixedOddsLocked","fixture","getParticipants","participants","areWinMarketsSuspended","flatMap","p","options","filter","o","priceType","every","marketStatus","getMarkets","getMarketData","getMarketsTabs","isTabs","marketConfig","view","MarketView","Win","order","uniqBy","a","orderBy","map","index","id","active","title","attribute","m","name","optionMarkets","length","push","getDerivedMarkets","optionSets","optionSet","marketTabOrder","checkRacingOptionMarketTypes","racingOptionMarketType","_HorsesFixtureMarketHelper"],"mappings":"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"}