{"version":3,"file":"chunk-ig8nuzqi.js","sources":["packages/sports/web/app/src/cds/translation.pipe.ts","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 { Pipe, PipeTransform } from '@angular/core';\n\nimport type { Translation } from '@cds/betting-offer';\n\n@Pipe({\n name: 'msTranslate',\n standalone: true,\n})\nexport class TranslationToStringPipe implements PipeTransform {\n transform(value: Translation): string {\n return (value && (value.short || value.value)) || '';\n }\n}\n","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":["TranslationToStringPipe","transform","value","short","h","pure","standalone","_TranslationToStringPipe","HorsesFixtureTranslationHelper","constructor","sitecore","stringInterpolationPipe","marketTranslations","horseRacing","markets","translateMarketView","market","getTranslatedMarketName","marketType","places","optionName","RacingOptionMarketTypes","WinEw","WinEW","BettingWithout","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","l","_HorsesFixtureMarketHelper"],"mappings":"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"}