{"version":3,"file":"chunk-k5n5r1ee.js","sources":["packages/sports/libs/racing/feature/models/src/horse-race-sorting-direction.ts","packages/sports/libs/odds/feature/native-price/src/external-price-formatter.pipe.ts","packages/sports/libs/betting-offer/feature/fixture-factories/src/helpers/option-group-type.service.ts","packages/sports/web/app/src/option-group/market-help/market-help-tracking.service.ts","packages/sports/web/app/src/option-group/market-help/market-help.service.ts","packages/sports/web/app/src/option-group/market-help/market-help.html","packages/sports/web/app/src/option-group/market-help/market-help.component.ts","packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-sorting-helper.service.ts","packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-participant-helper.service.ts","packages/sports/web/app/src/option-pick/fixture-pick.component.ts","packages/sports/web/app/src/option-pick/pick.component.html","packages/sports/web/app/src/option-group/each-way-market-helper.service.ts"],"sourcesContent":["export enum HorseRaceSortingDirection {\n Odds = 'odds',\n CardNumber = 'card-number',\n StarRating = 'star-rating',\n AtoZ = 'AtoZ',\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { ExternalPriceFormatterService } from './external-price-formatter.service';\nimport { INativePrice } from './native-price';\n\n@Pipe({\n name: 'msExternalPriceFormatter',\n standalone: true,\n})\nexport class ExternalPriceFormatterPipe implements PipeTransform {\n private formatter = inject(ExternalPriceFormatterService);\n /**\n * Converts a price object of type `INativePrice` to an instance of NativePrice and format it with NativePriceFormatter, according to the specified user format.\n *\n * @param nativePrice - The input price of type `INativePrice` that needs to be converted.\n * @returns - The formatted price string.\n */\n transform(nativePrice: INativePrice | null | undefined): string {\n return this.formatter.format(nativePrice);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DisplayType } from '@cds/betting-offer';\nimport { EventOptionGroup, EventOptionGroupType, ExtendedDisplayType } from '@frontend/sports/betting-offer/feature/model';\nimport { MarketGroupingConfig } from '@frontend/sports/common/client-config-data-access';\n\nexport enum OptionGroupType {\n Regular = 'Regular',\n CorrectScore = 'CorrectScore',\n Period = 'Period',\n OverUnder = 'Over/Under',\n GoalScorer = 'GoalScorer',\n SixPack = 'SixPack',\n PlayerProps = 'PlayerProps',\n Spread = 'Spread',\n Scorecast = 'Scorecast',\n Wincast = 'Wincast',\n WincastParticipant = 'WincastParticipant',\n RaceTo = 'RaceTo',\n Outrights = 'Outrights',\n YesNo = 'YesNo',\n TotalScore = 'TotalScore',\n Head2Head = 'Head2Head',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n BTTS = 'BTTS',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n PrecreatedBuildABet = 'PrecreatedBuildABet',\n BetBuilderStandard = 'BetBuilderStandard',\n BetBuilderSixPack = 'BetBuilderSixPack',\n BetBuilderOverUnder = 'BetBuilderOverUnder',\n BetBuilderCorrectScore = 'BetBuilderCorrectScore',\n BetBuilderSpread = 'BetBuilderSpread',\n BetBuilderRaceTo = 'BetBuilderRaceTo',\n BetBuilderGoalScorer = 'BetBuilderGoalScorer',\n BetBuilderYesNo = 'BetBuilderYesNo',\n BetBuilderPlayerProps = 'BetBuilderPlayerProps',\n PlayerCombined = 'PlayerCombined',\n PlayerMilestone = 'PlayerMilestone',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n USGroupedList = 'USGroupedList',\n PlayerStats = 'PlayerStats',\n PlayerOutcome = 'PlayerOutcome',\n PlayerMilestoneOverUnder = 'PlayerMilestoneOverUnder',\n}\n\n@Injectable({ providedIn: 'root' })\nexport class OptionGroupTypeService {\n constructor(private marketGroupingConfig: MarketGroupingConfig) {}\n\n // eslint-disable-next-line max-lines-per-function, complexity\n getOptionGroupType(optionGroup: EventOptionGroup): OptionGroupType {\n if (optionGroup.hasSubGroups(EventOptionGroupType.Period) && optionGroup.detailedGrouping?.displayType !== ExtendedDisplayType.BetBuilder) {\n return OptionGroupType.Period;\n }\n\n //TODO please consider refactoring\n // eslint-disable-next-line sonarjs/max-switch-cases\n switch (optionGroup.detailedGrouping?.displayType) {\n case DisplayType.CorrectScore:\n return OptionGroupType.CorrectScore;\n case DisplayType.GoalScorer:\n return OptionGroupType.GoalScorer;\n case DisplayType.OverUnder:\n return OptionGroupType.OverUnder;\n case ExtendedDisplayType.BetBuilder:\n return OptionGroupType.PrecreatedBuildABet;\n case ExtendedDisplayType.BetBuilderStandard:\n return OptionGroupType.BetBuilderStandard;\n case ExtendedDisplayType.BetBuilderSixPack:\n return OptionGroupType.BetBuilderSixPack;\n case ExtendedDisplayType.BetBuilderOverUnder:\n return OptionGroupType.BetBuilderOverUnder;\n case ExtendedDisplayType.BetBuilderCorrectScore:\n return OptionGroupType.BetBuilderCorrectScore;\n case ExtendedDisplayType.BetBuilderSpread:\n return OptionGroupType.BetBuilderSpread;\n case ExtendedDisplayType.BetBuilderRaceTo:\n return OptionGroupType.BetBuilderRaceTo;\n case ExtendedDisplayType.BetBuilderYesNo:\n return OptionGroupType.BetBuilderYesNo;\n case ExtendedDisplayType.BetBuilderGoalScorer:\n return OptionGroupType.BetBuilderGoalScorer;\n case ExtendedDisplayType.BetBuilderPlayerProps:\n return OptionGroupType.BetBuilderPlayerProps;\n case DisplayType.PlayerProps:\n return OptionGroupType.PlayerProps;\n case DisplayType.Regular:\n return OptionGroupType.Regular;\n case DisplayType.Head2HeadSixPack:\n case DisplayType.SixPack:\n return OptionGroupType.SixPack;\n case DisplayType.Spread:\n return OptionGroupType.Spread;\n case DisplayType.Scorecast:\n return OptionGroupType.Scorecast;\n case DisplayType.Wincast:\n return OptionGroupType.Wincast;\n case DisplayType.WincastParticipant:\n return OptionGroupType.WincastParticipant;\n case DisplayType.RaceTo:\n return OptionGroupType.RaceTo;\n case DisplayType.BTTS:\n return OptionGroupType.BTTS;\n case DisplayType.YesNo:\n return OptionGroupType.YesNo;\n case DisplayType.Outrights:\n return OptionGroupType.Outrights;\n case DisplayType.TotalScore:\n return OptionGroupType.TotalScore;\n case DisplayType.Head2Head:\n return OptionGroupType.Head2Head;\n case DisplayType.PlayerCombined:\n return OptionGroupType.PlayerCombined;\n case DisplayType.PlayerMilestone:\n return OptionGroupType.PlayerMilestone;\n case DisplayType.PlayerMilestoneOverUnder:\n return OptionGroupType.PlayerMilestoneOverUnder;\n case DisplayType.PlayerOutcome:\n return OptionGroupType.PlayerOutcome;\n case DisplayType.USGroupedList:\n if (this.marketGroupingConfig.displayTypes?.includes(optionGroup.detailedGrouping.displayType)) {\n return OptionGroupType.USGroupedList;\n }\n\n return OptionGroupType.Regular;\n case DisplayType.PlayerStats:\n return OptionGroupType.PlayerStats;\n default:\n return OptionGroupType.Regular;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EventOptionGroup, Tv2MarketParameters } from '@frontend/sports/betting-offer/feature/model';\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\n@Injectable({ providedIn: 'root' })\nexport class MarketHelpTrackingService {\n constructor(public trackingService: TrackingService) {}\n\n trackToggle(optionGroup: EventOptionGroup, expanded: boolean): void {\n const trackData = {\n [trackingConstants.COMPONENT_ACTION_EVENT]: `${expanded ? 'Expand' : 'Collapse'} Click`,\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.getPositionEvent(optionGroup),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: optionGroup.name,\n };\n\n this.track(trackData);\n }\n\n trackLink(optionGroup: EventOptionGroup, link: string): void {\n const trackData = {\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'More Info Link - Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.getPositionEvent(optionGroup),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: optionGroup.name,\n [trackingConstants.COMPONENT_URL_CLICKED]: link,\n };\n\n this.track(trackData);\n }\n\n private track(additionalTrackData: Partial): void {\n const fullTrackData = { ...this.getBaseTrackData(), ...additionalTrackData };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, fullTrackData);\n }\n\n private getBaseTrackData(): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Market Help',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Market Help',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: NOT_APPLICABLE,\n };\n }\n\n private getPositionEvent(optionGroup: EventOptionGroup): string {\n return optionGroup.parameters?.find((p) => p.key === Tv2MarketParameters.MarketType)?.value ?? this.parseId(optionGroup.id);\n }\n\n private parseId(id: string): string {\n const match = id.match('^((.*)-)?(\\\\d+)$');\n\n return match && match[3] ? match[3] : id;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { MarketHelpConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ExpiringCache, ExpiringCacheFactory } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { Observable } from 'rxjs';\n\nimport { IMarketHelpResponse } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class MarketHelpService {\n private cache: ExpiringCache;\n\n constructor(\n private apiService: ApiService,\n cacheFactory: ExpiringCacheFactory,\n config: MarketHelpConfig,\n ) {\n this.cache = cacheFactory.create(config.marketHelpCacheTimeout);\n }\n\n getHelp(key: string): Observable {\n const source = this.apiService.get('markethelp', {\n key,\n });\n\n return this.cache.getOrCreate(key, source);\n }\n}\n","@if (vm) {\n
\n @if (marketHelpConfig.marketHelpTextDisplayVersion === markethelpTextDisplayVersion.V1) {\n \n \n \n
\n @if (vm.text) {\n
{{ vm.text }}
\n } @else {\n
{{ noContentMessage }}
\n }\n @if (vm.link && vm.href) {\n \n }\n
\n } @else {\n \n }\n
\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Input, OnChanges, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { MarketHelpConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { EpcotModule } from '../../common/epcot-config.service';\nimport { EpcotNotificationComponent } from '../../common/epcotNotifications/notification.component';\nimport { MarketHelpTrackingService } from './market-help-tracking.service';\nimport { MarketHelpService } from './market-help.service';\nimport { IMarketHelpResponse } from './model';\n\nexport enum MarketHelpTextDisplayVersion {\n V1 = 'V1',\n V2 = 'V2',\n}\n@Component({\n selector: 'ms-market-help',\n templateUrl: './market-help.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EpcotNotificationComponent, IconCustomComponent],\n})\nexport class MarketHelpComponent implements OnChanges {\n @Input() optionGroup: EventOptionGroup;\n @Input() eventHelpText?: string;\n\n vm: IMarketHelpResponse;\n private fallbackItem: string;\n noContentMessage: string;\n module = EpcotModule.Errors;\n private readonly destroyRef = inject(DestroyRef);\n markethelpTextDisplayVersion = MarketHelpTextDisplayVersion;\n constructor(\n private marketHelpService: MarketHelpService,\n private changeDetectionRef: ChangeDetectorRef,\n private trackingService: MarketHelpTrackingService,\n public marketHelpConfig: MarketHelpConfig,\n private sitecore: Sitecore,\n ) {\n this.noContentMessage = this.sitecore.marketHelp.defaultMessage.NoContent;\n this.fallbackItem = marketHelpConfig.sitecoreFallbackItem;\n }\n\n ngOnChanges(): void {\n if (this.shouldLoadHelpText) {\n this.setEventHelp();\n\n return;\n }\n\n const marketHelpItem = this.optionGroup.detailedGrouping.marketHelpPath;\n this.loadHelp(marketHelpItem || this.fallbackItem);\n }\n\n track(): void {\n this.trackingService.trackLink(this.optionGroup, this.vm.href);\n }\n\n private loadHelp(marketHelpPath: string): void {\n this.marketHelpService\n .getHelp(marketHelpPath)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((model) => {\n this.vm = model;\n this.changeDetectionRef.markForCheck();\n });\n }\n\n private get shouldLoadHelpText(): boolean {\n return !!this.eventHelpText;\n }\n\n private setEventHelp(): void {\n this.vm = { text: this.eventHelpText || '', href: '', link: '', target: '' };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Participant, ParticipantOption, ParticipantPriceType, ParticipantType } from '@cds/betting-offer';\nimport { EventOption } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { NativePrice } from '@frontend/sports/odds/feature/native-price';\nimport {\n FixtureParticipantPriceMap,\n GreyhoundParticipantDictionary,\n GreyhoundParticipantInfo,\n HorseRaceFavouritePrefixes,\n HorseRaceSortingDirection,\n V3FixtureParticipantPriceMap,\n WinGameParticipant,\n} from '@frontend/sports/racing/feature/models';\nimport { groupBy } from 'lodash-es';\n\n@Injectable()\nexport class HorsesFixtureSortingHelper {\n constructor(public siteCore: Sitecore) {}\n /**\n * sorting of the participants based on the prices supplied\n *\n * @param participants\n * @param prices\n * @returns\n *\n * @memberOf HorsesFixtureSortingHelper\n */\n sortParticipants(participants: TParticipant[], prices: FixtureParticipantPriceMap): TParticipant[] {\n // TODO: Get rid of casting once V2 and Horses fixture are uniform\n const horsesRunners = this.getHorsesRunners(participants, prices);\n\n const noPriceHorses = participants.filter((p) => !prices[p.id]);\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n\n return horsesRunners.concat(noPriceHorses).concat(favouritesOnly);\n }\n\n /**\n * Sorting of the participants. Win market odds first, starting price after (sorted by raceCardNumber)\n *\n * @param participants\n * @param prices\n * @returns\n *\n * @memberOf HorsesFixtureSortingHelper\n */\n sortParticipantsByWinMarket(\n participants: WinGameParticipant[],\n options: FixtureParticipantPriceMap | V3FixtureParticipantPriceMap,\n isSortByParticipantId = false,\n ): WinGameParticipant[] {\n const raceRunners = this.getSortByOddsAndType(participants, options, isSortByParticipantId);\n const noPriceHorses = participants.filter((p) => !options[p.id]);\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n\n return raceRunners.concat(noPriceHorses).concat(favouritesOnly);\n }\n\n private getHorsesRunners(\n participants: TParticipant[],\n options: FixtureParticipantPriceMap | V3FixtureParticipantPriceMap,\n ): TParticipant[] {\n const optionV3 = options as V3FixtureParticipantPriceMap;\n const optionV1 = options as FixtureParticipantPriceMap;\n\n return participants\n .filter(this.validParticipant)\n .filter((p) => options[p.id])\n .map((p) => ({\n ...p,\n nativePrice: optionV3[p.id]!.nativePrice || NativePrice.fromNativePrice(optionV1[p.id]!.price),\n }))\n .sort((a, b) => this.comparePrice(a.nativePrice, b.nativePrice));\n }\n\n sortV3Participants(\n participants: TParticipant[],\n options: V3FixtureParticipantPriceMap,\n includeNoPriceFavHorses: boolean = true,\n ): TParticipant[] {\n const raceRunners = this.getHorsesRunners(participants, options);\n\n return this.getHorsesParticipants(participants, options, includeNoPriceFavHorses, raceRunners);\n }\n\n getFavouriteParticipantWithNames(participants: WinGameParticipant[], favoriteCount: number): WinGameParticipant[] {\n const favouriteParticipants: WinGameParticipant[] = [];\n const groupByPrice = groupBy(participants, (p) => p.nativePrice);\n let currentParticipantIndex = 0;\n\n Object.keys(groupByPrice).forEach((price, groupIndex) => {\n if (currentParticipantIndex < favoriteCount) {\n const participantsWithSamePrice = groupByPrice[price];\n const favouritePrefix = this.getFavouritePrefix(participantsWithSamePrice.length);\n const { updatedParticipants, updatedIndex } = this.getUpdatedParticipantsWithName(\n participantsWithSamePrice,\n currentParticipantIndex,\n groupIndex,\n favouritePrefix,\n );\n favouriteParticipants.push(...updatedParticipants);\n currentParticipantIndex = updatedIndex;\n }\n });\n\n return favouriteParticipants;\n }\n\n private getUpdatedParticipantsWithName(\n participantsWithSamePrice: WinGameParticipant[],\n currentParticipantIndex: number,\n groupIndex: number,\n favouritePrefix: string,\n ): { updatedParticipants: WinGameParticipant[]; updatedIndex: number } {\n participantsWithSamePrice.forEach((participant) => {\n participant.favouriteRank =\n this.siteCore.horseRacing.raceResulted[(favouritePrefix + (groupIndex + 1)) as keyof typeof this.siteCore.horseRacing.raceResulted];\n currentParticipantIndex++;\n });\n\n return { updatedParticipants: participantsWithSamePrice, updatedIndex: currentParticipantIndex };\n }\n\n private getFavouritePrefix(length: number): string {\n switch (length) {\n case 1:\n return HorseRaceFavouritePrefixes.Favourite;\n case 2:\n return HorseRaceFavouritePrefixes.FavouriteJoint;\n default:\n return HorseRaceFavouritePrefixes.FavouriteCo;\n }\n }\n\n private getHorsesParticipants(\n participants: TParticipant[],\n options: V3FixtureParticipantPriceMap,\n includeNoPriceFavHorses: boolean,\n horsesRunners: TParticipant[],\n ): TParticipant[] {\n if (includeNoPriceFavHorses) {\n const noPriceHorses = participants.filter((p) => !options[p.id] && p.properties!.type !== ParticipantType.Favourite);\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n\n horsesRunners = horsesRunners.concat(noPriceHorses).concat(favouritesOnly);\n }\n\n return horsesRunners;\n }\n\n sortOptionParticipantsByWinMarket(\n participants: TParticipant[],\n options: V3FixtureParticipantPriceMap,\n includeNoPriceFavHorses: boolean = true,\n ): TParticipant[] {\n const raceRunners = this.getSortByOddsAndType(participants, options);\n\n return this.getHorsesParticipants(participants, options, includeNoPriceFavHorses, raceRunners);\n }\n\n private getSortByOddsAndType(\n participants: TParticipant[],\n options: V3FixtureParticipantPriceMap | FixtureParticipantPriceMap,\n isSortByParticipantId = false,\n ): TParticipant[] {\n const optionV1 = options as FixtureParticipantPriceMap;\n const optionV3 = options as V3FixtureParticipantPriceMap;\n return participants\n .filter(this.validParticipant)\n .filter((p) => options[p.id] || (p.properties?.associatedFixtureParticipantId && options[p.properties.associatedFixtureParticipantId]))\n .sort((a, b) => {\n const isV3Fixture = this.getOption(optionV3, a)?.nativePrice;\n const sortByOddsAndType = isV3Fixture\n ? this.sortV3ByOddsAndType(this.getOption(optionV3, a)!, this.getOption(optionV3, b)!)\n : this.sortByOddsAndType(optionV1[a.id]!, optionV1[b.id]!);\n if (sortByOddsAndType === 0) {\n if (isSortByParticipantId) {\n return a.participantId - b.participantId;\n }\n\n return a.properties!.raceCardNumber! - b.properties!.raceCardNumber!;\n }\n\n return sortByOddsAndType;\n });\n }\n\n private getOption(options: V3FixtureParticipantPriceMap, participant: WinGameParticipant): Nullable {\n if (options[participant.id]) {\n return options[participant.id];\n }\n if (participant.properties?.associatedFixtureParticipantId) {\n return options[participant.properties.associatedFixtureParticipantId];\n }\n return null;\n }\n\n /**\n * Sorting of the participants by odds or raceCardNumber\n *\n * @param participants\n * @param prices\n * @returns\n *\n * @memberOf HorsesFixtureSortingHelper\n */\n sortParticipantsByRaceCardNumber(participants: TParticipant[]): TParticipant[] {\n const raceRunners = participants.filter(this.validParticipant).sort((a, b) => a.properties!.raceCardNumber! - b.properties!.raceCardNumber!);\n\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n\n return raceRunners.concat(favouritesOnly);\n }\n\n sortParticipantsBy(\n participants: TParticipant[],\n prices: FixtureParticipantPriceMap,\n sortBy: HorseRaceSortingDirection,\n ): WinGameParticipant[] {\n if (sortBy === HorseRaceSortingDirection.Odds) {\n return this.sortParticipantsByWinMarket(participants, prices);\n }\n\n return this.sortParticipantsByRaceCardNumber(participants);\n }\n\n sortV3ParticipantsBy(\n participants: TParticipant[],\n prices: V3FixtureParticipantPriceMap,\n sortBy: HorseRaceSortingDirection,\n ): TParticipant[] {\n if (sortBy === HorseRaceSortingDirection.Odds) {\n return this.sortOptionParticipantsByWinMarket(\n participants.filter((p) => prices[p.id]),\n prices,\n );\n }\n\n return this.sortParticipantsByRaceCardNumber(participants.filter((p) => prices[p.id]));\n }\n\n sortParticipantsByTrap(\n participants: TParticipant[],\n prices: FixtureParticipantPriceMap | V3FixtureParticipantPriceMap,\n sortBy: HorseRaceSortingDirection,\n ): WinGameParticipant[] {\n if (sortBy === HorseRaceSortingDirection.Odds) {\n return this.sortParticipantsByWinMarket(participants, prices);\n }\n\n return this.sortParticipantsByTrapNumber(participants);\n }\n\n private sortByOddsAndType(a: ParticipantOption, b: ParticipantOption): number {\n if (a.priceType === ParticipantPriceType.StartingPrice && b.priceType === ParticipantPriceType.StartingPrice) {\n return 0;\n } else if (a.priceType === ParticipantPriceType.StartingPrice) {\n return 1;\n } else if (b.priceType === ParticipantPriceType.StartingPrice) {\n return -1;\n }\n\n return this.comparePrice(NativePrice.fromNativePrice(a.price), NativePrice.fromNativePrice(b.price));\n }\n\n private sortV3ByOddsAndType(a: EventOption, b: EventOption): number {\n if (a.participantPriceType === ParticipantPriceType.StartingPrice && b.participantPriceType === ParticipantPriceType.StartingPrice) {\n return 0;\n } else if (a.participantPriceType === ParticipantPriceType.StartingPrice) {\n return 1;\n } else if (b.participantPriceType === ParticipantPriceType.StartingPrice) {\n return -1;\n }\n\n return this.comparePrice(a.nativePrice, b.nativePrice);\n }\n\n private validParticipant(participant: Participant): boolean {\n return (\n participant.properties!.type === ParticipantType.Horse ||\n participant.properties!.type === ParticipantType.Golfer ||\n participant.properties!.type === ParticipantType.Trap ||\n participant.properties!.type === ParticipantType.Dog\n );\n }\n\n private filterAndOrderFavorites(participants: TParticipant[]): TParticipant[] {\n return participants.filter((p) => p.properties!.type === ParticipantType.Favourite).sort((a, b) => a.participantId - b.participantId);\n }\n\n private comparePrice(first: NativePrice, second: NativePrice): number {\n return (first.isEmpty() && second.isEmpty()) || first.isEmpty() || first.greaterThan(second)\n ? 1\n : second.isEmpty()\n ? -1\n : first.lessThan(second)\n ? -1\n : 0;\n }\n\n sortParticipantsByTrapNumber(participants: WinGameParticipant[]): WinGameParticipant[] {\n const raceRunners = participants.filter(this.validParticipant).sort((a, b) => a.participantId - b.participantId);\n\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n\n return raceRunners.concat(favouritesOnly);\n }\n\n sortParticipantsByTrapNumberOfParticipant(\n participants: WinGameParticipant[],\n participantsMapping: { [id: number]: GreyhoundParticipantInfo },\n ): WinGameParticipant[] {\n const raceRunners = participants\n .filter(this.validParticipant)\n .sort(\n (a, b) =>\n (a.properties?.type === ParticipantType.Trap ? a.participantId : participantsMapping[a.participantId].trapNumber!) -\n (b.properties?.type === ParticipantType.Trap ? b.participantId : participantsMapping[b.participantId].trapNumber!),\n );\n\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n return raceRunners.concat(favouritesOnly);\n }\n\n sortParticipantsAlphabetically(\n participants: WinGameParticipant[],\n greyhoundTrapDogMapping: GreyhoundParticipantDictionary,\n ): WinGameParticipant[] {\n const raceRunners = participants\n .filter(this.validParticipant)\n .sort((a, b) =>\n greyhoundTrapDogMapping[a.participantId].greyhoundName.localeCompare(greyhoundTrapDogMapping[b.participantId].greyhoundName),\n );\n\n const favouritesOnly = this.filterAndOrderFavorites(participants);\n return raceRunners.concat(favouritesOnly);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DisplayType,\n Participant,\n ParticipantMarketType,\n ParticipantPriceStatus,\n ParticipantPriceType,\n ParticipantStatus,\n ParticipantType,\n} from '@cds/betting-offer';\nimport { FixturePricingState } from '@cds/betting-offer/add-ons';\nimport { EasyBetView } from '@cds/betting-offer/domain-specific/horse-racing/racing-post';\nimport { EventOption, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { RacingConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { toDictionary } from '@frontend/sports/common/core/utils/collection';\nimport { NumberDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { translationToStr } from '@frontend/sports/common/core/utils/translations';\nimport {\n EasyBetViewStats,\n HorseParticipantInfo,\n ParticipantFixture,\n WinGameFixture,\n WinGameParticipant,\n} from '@frontend/sports/racing/feature/models';\nimport { EasyBetViewOption } from '@frontend/sports/types/components/features';\nimport { RacingTerminal } from '@frontend/sports/types/components/sitecore';\nimport { V2OptionMarketXCastPickId, V2ParticipantPickId } from 'packages/sports/common/betslip/core/picks/pick-id';\n\nimport { ParticipantPickType } from '../../betslip-base/models/pick-models';\nimport { HorsesFixturePricingHelper } from './horses-fixture-pricing-helper.service';\nimport { HorsesFixtureSortingHelper } from './horses-fixture-sorting-helper.service';\n\n@Injectable()\nexport class HorsesFixtureParticipantHelper {\n constructor(\n private horsesFixturePricingHelper: HorsesFixturePricingHelper,\n private horsesFixtureSortingHelper: HorsesFixtureSortingHelper,\n private racingConfig: RacingConfig,\n private sitecore: Sitecore,\n ) {}\n\n /**\n * Formats comma separated list of fixture participants\n *\n * @param fixture Horses fixture\n */\n getCombinedNonRunners(fixture: WinGameFixture, isGreyhounds = false): string {\n if (fixture.isOptionBet && isGreyhounds) {\n let d = this.getNonRunnersList(fixture);\n d = this.removeTrapNonrunners(d);\n return d\n .map((nonrunner) => {\n if (nonrunner.properties?.type !== ParticipantType.Trap && nonrunner.properties?.associatedFixtureParticipantId !== undefined) {\n return `${fixture.participants.find((fp) => fp.id === nonrunner.properties?.associatedFixtureParticipantId)!.participantId} ${translationToStr(nonrunner.name)}`;\n } else {\n return `${nonrunner.participantId} ${this.sitecore.greyhoundRacing.messages.VacantGreyHound}`;\n }\n })\n .join(', ');\n }\n\n return this.getNonRunnersList(fixture)\n .sort((a, b) => (a.properties!.raceCardNumber || 0) - (b.properties!.raceCardNumber || 0))\n .map((fp) => `${fp.properties!.raceCardNumber} ${translationToStr(fp.name)}`)\n .join(', ');\n }\n\n removeTrapNonrunners(participants: WinGameParticipant[]): WinGameParticipant[] {\n participants.forEach((p) => {\n let nonrunner = participants.find((x) => x.id === p.properties?.associatedFixtureParticipantId);\n\n if (nonrunner?.properties?.type === ParticipantType.Trap) {\n participants.splice(participants.indexOf(nonrunner), 1);\n }\n });\n return participants;\n }\n\n isNonRunner(participant: WinGameParticipant): boolean {\n return participant.status === ParticipantStatus.NonRunner || participant.status === ParticipantStatus.Withdrawn;\n }\n\n /**\n * Fixture participants non runners\n *\n * @param fixture Horses fixture\n */\n getNonRunnersList>(fixture: TFixture): TParticipant[] {\n return fixture.participants.filter((fp) => this.isNonRunner(fp));\n }\n\n getRunnersCount(fixture: WinGameFixture): number {\n return fixture.participants\n .filter(\n (fp) =>\n fp.properties!.type !== ParticipantType.Favourite &&\n fp.status !== ParticipantStatus.NonRunner &&\n fp.status !== ParticipantStatus.Withdrawn &&\n fp.status !== ParticipantStatus.ReservedRunner,\n )\n .filter((x) => x.properties!.type === ParticipantType.Horse || x.properties!.type === ParticipantType.Trap).length;\n }\n\n getPlacedParticipants(fixture: WinGameFixture): WinGameParticipant[] {\n let participants = fixture.participants\n .sort((prev, next) => (prev.properties!.rank || Number.MAX_VALUE) - (next.properties!.rank || Number.MAX_VALUE))\n .filter((p) => !this.isNonRunner(p) && p.properties!.type !== ParticipantType.Favourite);\n\n return participants;\n }\n\n /**\n * Returns participants that have status NotDefined or Finished.\n * It also checks that at least some of the prices are not Hidden.\n *\n * @param {Participant[]} participants\n * @param {MarketType} marketType\n * @returns {Participant[]}\n * @memberof HorsesFixtureParticipantHelper\n */\n\n getParticipants(participants: TParticipant[]): TParticipant[] {\n return participants.filter(\n (fp) =>\n (fp.status === ParticipantStatus.NotDefined || fp.status === ParticipantStatus.Finished) &&\n (!fp.options.length || fp.options.some((option) => option.participantPriceStatus !== ParticipantPriceStatus.Hidden)),\n );\n }\n\n /**\n * Returns favourite horses for resulted race based on number of Favorites defined for fixture (0, 1 or 2)\n * If race is not resulted, returns null\n *\n * @param fixture Horses fixture\n */\n\n getResultedFavourites>(\n fixture: TFixture,\n ): TParticipant[] {\n if (fixture.addons.pricingState !== FixturePricingState.Resulted && !fixture.addons.isResulted) {\n return [];\n }\n\n const finishedParticipants = fixture.participants.filter((p) => p.status === ParticipantStatus.Finished);\n const prices = this.horsesFixturePricingHelper.getPrices(fixture, ParticipantMarketType.Win, ParticipantPriceType.Fixed);\n const sortedByPrice = this.horsesFixtureSortingHelper.sortParticipants(finishedParticipants, prices);\n const favoriteCount = fixture.participants.filter((p) => p.properties!.type === ParticipantType.Favourite).length;\n\n return sortedByPrice.slice(0, favoriteCount);\n }\n\n favouriteResultedOptionParticipants(fixture: WinGameFixture): WinGameParticipant[] {\n const optionGroups = fixture.optionGroups.filter((t) => t.detailedGrouping.displayType === DisplayType.Wincast);\n const finishedParticipants = fixture.participants.filter((p) => p.status === ParticipantStatus.Finished);\n const options = this.horsesFixturePricingHelper.getOptionPrices(fixture, optionGroups[0], ParticipantPriceType.Fixed);\n const sortedByPrice = this.horsesFixtureSortingHelper.sortV3Participants(finishedParticipants, options);\n const favoriteCount = fixture.participants.filter((p) => p.properties!.type === ParticipantType.Favourite).length;\n\n return this.horsesFixtureSortingHelper.getFavouriteParticipantWithNames(sortedByPrice, favoriteCount);\n }\n\n /**\n * True if at least one fixture participant has silk url available, otherwise false\n *\n * @param fixture Fixture to check\n */\n areSilksAvailable(fixture: WinGameFixture): boolean {\n return fixture.participants.some((fp) => (fp.properties!.silk && fp.properties!.silk.length > 0) || false);\n }\n\n getHorseRaceInfo(participant: WinGameParticipant): HorseParticipantInfo {\n return {\n raceCardNumber: participant.properties!.raceCardNumber,\n drawNumber: participant.properties!.drawNumber,\n jockey: participant.properties!.jockey || participant.timeformInfo?.jockeyName || '',\n trainer: participant.properties!.trainer || participant.timeformInfo?.trainerName || '',\n silkUrl: participant.timeformInfo?.silkUrl || '',\n silkDescription: participant.timeformInfo?.silkDescription || '',\n isFavorite: participant.properties!.type === ParticipantType.Favourite,\n ratingStars: participant.timeformInfo?.ratingStars,\n };\n }\n\n buildParticipantRecentResults(participants: WinGameParticipant[], isGreyHoundsRacing?: boolean): NumberDictionary {\n const participantForm: NumberDictionary = [];\n const lowerResult = 0;\n const thirdResult = 3;\n const allowedLimit = 5;\n\n participants.map((p) => {\n const racingForm = isGreyHoundsRacing ? p.racingPostInfo?.greyhoundsData?.form : p.racingPostInfo?.horseData?.form;\n if (racingForm && racingForm !== '-') {\n const recentResults = racingForm\n .split('')\n .filter((form) => Number(form) !== lowerResult)\n .map((s) => {\n if (isNaN(Number(s))) {\n return s;\n } else if (Number(s) <= thirdResult) {\n //below cast is added just to avoid object index issues\n return this.sitecore.horseRacing.common[Number(s) as unknown as '1'];\n } else {\n return `${Number(s) + this.sitecore.horseRacing.common.nth}`;\n }\n });\n\n if (recentResults.length > allowedLimit) {\n recentResults.splice(lowerResult, recentResults.length - allowedLimit);\n }\n participantForm[p.id] = recentResults;\n } else {\n participantForm[p.id] = [];\n }\n });\n\n return participantForm;\n }\n\n getEasyBetViewData(\n easyBetViewOptions: EasyBetView[],\n isGreyhounds: boolean = false,\n ): {\n [attributeName: string]: EasyBetViewStats;\n } {\n const runnerStats: { [attributeName: string]: EasyBetViewStats } = {};\n easyBetViewOptions?.forEach((x) => {\n runnerStats[x.easyBetViewKey] = this.easyBetWayMapping(x.easyBetViewValue, isGreyhounds);\n });\n\n return runnerStats;\n }\n\n easyBetWayMapping(easyBetViewValue: number, isGreyhounds: boolean = false): EasyBetViewStats {\n if (isGreyhounds) {\n const mappedValue = this.racingConfig.greyhoundsEasyBetViewOptions.find((x) => this.checkRange(easyBetViewValue, x));\n\n return { color: mappedValue!.color, grade: mappedValue!.grade };\n } else {\n const horseRacingMappedValue = this.racingConfig.easyBetViewOptions.find((x) => this.checkRange(easyBetViewValue, x));\n\n return {\n color: horseRacingMappedValue!.color,\n label: this.sitecore.horseRacing.racingTerminal[horseRacingMappedValue!.siteCoreText as keyof RacingTerminal],\n };\n }\n }\n\n private checkRange(actualValue: number, easyBetViewOption: EasyBetViewOption): boolean {\n if (easyBetViewOption.lowerLimit && easyBetViewOption.upperLimit) {\n return easyBetViewOption.lowerLimit <= actualValue && actualValue < easyBetViewOption.upperLimit;\n } else if (easyBetViewOption.lowerLimit) {\n return easyBetViewOption.lowerLimit <= actualValue;\n } else if (easyBetViewOption.upperLimit) {\n return actualValue < easyBetViewOption.upperLimit;\n }\n\n return false;\n }\n\n checkForTopRating(participants: T[]): T[] {\n const maxRating = Math.max(...participants.map((p) => p.racingPostInfo?.horseData.starRating || 0));\n participants.forEach((p) => {\n if (p.racingPostInfo) {\n p.racingPostInfo.horseData.hasTopStarRating = maxRating > 0 ? p.racingPostInfo?.horseData.starRating === maxRating : false;\n }\n });\n\n return participants;\n }\n\n getParticipantOptionGroups(optionGroup: EventOptionGroup, participants: WinGameParticipant[]): { [id: number]: EventOption[] } {\n const participantOptionGroups: { [id: number]: EventOption[] } = {};\n\n optionGroup.options.forEach((op: EventOption) => {\n const participant = participants.find((x) => x.id === op.optionPlayerId);\n if (participant) {\n if (!participantOptionGroups[participant.id]) {\n participantOptionGroups[participant.id] = [];\n }\n op.online = this.horsesFixturePricingHelper.isV3WinOptionAvailable(op);\n\n participantOptionGroups[participant.id].push(op);\n }\n });\n\n return participantOptionGroups;\n }\n\n buildWinParticipantOptionGroups(fixture: WinGameFixture): { [id: string]: EventOption[] } {\n let participantOptionGroups = {};\n const participants = this.getParticipants(fixture.participants);\n const optionGroups = fixture.optionGroups.filter((t) => t.detailedGrouping.displayType === DisplayType.Wincast);\n if (optionGroups && optionGroups.length) {\n participantOptionGroups = this.getParticipantOptionGroups(optionGroups[0], participants);\n }\n\n return participantOptionGroups;\n }\n\n createOptionPick(\n fixture: WinGameFixture,\n participants: WinGameParticipant[],\n marketType: ParticipantMarketType,\n betType: ParticipantPickType,\n participantOptionGroups: { [id: string]: EventOption[] },\n optionGroup?: EventOptionGroup,\n ): V2OptionMarketXCastPickId | void {\n const marketId = optionGroup?.name === marketType ? Number(optionGroup?.id) : null;\n if (marketId == null) {\n return;\n }\n const optionsOrder = toDictionary(\n participants,\n (p) => participantOptionGroups[p.id][0].id,\n (_, index) => index + 1,\n );\n const priceOrder = toDictionary(\n participants,\n (p) => participantOptionGroups[p.id][0].priceId!,\n (_, index) => index + 1,\n );\n\n return new V2OptionMarketXCastPickId(fixture.id, marketId, optionsOrder, priceOrder, betType);\n }\n\n createParticipantPick(\n fixture: WinGameFixture,\n participants: WinGameParticipant[],\n marketType: ParticipantMarketType,\n betType: ParticipantPickType,\n ): V2ParticipantPickId | void {\n const marketId = this.getMarketId(participants, marketType);\n if (marketId == null) {\n return;\n }\n const participantOrder = toDictionary(\n participants,\n (p) => p.id,\n (_, index) => index + 1,\n );\n\n return new V2ParticipantPickId(fixture.id, marketId, participantOrder, betType);\n }\n\n private getMarketId(participants: WinGameParticipant[], marketType: ParticipantMarketType): number | undefined {\n return participants\n .flatMap((p) => p.options)\n .filter((o) => o.marketType === marketType)\n .map((o) => o.marketId)[0];\n }\n\n getOptionMarketPlaceTerms(optionGroup: EventOptionGroup): number | null {\n const placeterm = {\n isEachWay: optionGroup.isEachWay || false,\n placeTerms: optionGroup.placeTerms,\n };\n\n if (!placeterm?.isEachWay) {\n return null;\n }\n\n return placeterm.placeTerms ? placeterm.placeTerms.places : null;\n }\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectorRef, Component, Inject, Input, OnChanges, Optional } from '@angular/core';\n\nimport { ParticipantOption, ParticipantPriceType } from '@cds/betting-offer';\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { exhaustiveCheckGuard } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { NativePrice } from '@frontend/sports/odds/feature/native-price';\nimport { WinGameFixture, WinGameParticipant } from '@frontend/sports/racing/feature/models';\nimport { Store } from '@ngrx/store';\nimport { ExternalBetslipActions } from 'packages/sports/common/betslip/core/external-betslip-actions';\nimport { V2WinPickId } from 'packages/sports/common/betslip/core/picks/pick-id';\nimport { PriceType } from 'packages/sports/common/betslip/core/picks/pick-models';\nimport { BetslipIntegrationService } from 'packages/sports/common/betslip/integration/betslip-integration.service';\nimport {\n BETSLIP_LINE_SWITCHER_INJECTION_TOKEN,\n ILineSwitcherPickHandlerService,\n} from 'packages/sports/common/betslip/integration/services/line-switcher-pick-handler.service';\n\nimport { GeolocationCheckService } from '../geo-location/geo-location-check.service';\nimport { HorsesFixturePricingHelper } from '../horse-racing-shared/services/horses-fixture-pricing-helper.service';\nimport { OptionIndicatorDirective } from './option-indicator.directive';\nimport { PickSourceProvider } from './pick-source.provider';\nimport { PickComponent } from './pick.component';\n\n@Component({\n selector: 'ms-fixture-pick',\n templateUrl: 'pick.component.html',\n standalone: true,\n imports: [NgClass, OptionIndicatorDirective, AutomationModule, AsyncPipe],\n})\nexport class FixturePickComponent extends PickComponent implements OnChanges {\n @Input() participant: WinGameParticipant;\n @Input() fixture: WinGameFixture;\n @Input() option: ParticipantOption;\n @Input() enablePriceTypeCheck = false;\n @Input() parentLinkedEventId?: string;\n @Input() trackingOptions?: { [key: string]: string };\n\n override pickId: V2WinPickId;\n\n constructor(\n geolocationCheckService: GeolocationCheckService,\n private horsesFixturePricingHelper: HorsesFixturePricingHelper,\n private pickSourceProvider: PickSourceProvider,\n betslipIntegration: BetslipIntegrationService,\n private store: Store,\n changeDetection: ChangeDetectorRef,\n @Inject(BETSLIP_LINE_SWITCHER_INJECTION_TOKEN) @Optional() lineSwitcherPickHandlerService: ILineSwitcherPickHandlerService | null,\n ) {\n super(geolocationCheckService, betslipIntegration, changeDetection, lineSwitcherPickHandlerService);\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.state.locked = this.horsesFixturePricingHelper.isPriceLocked(this.fixture, this.participant, this.option);\n this.setPickId(this.createPickId(), this.enablePriceTypeCheck ? this.getPriceType(this.option.priceType) : undefined);\n }\n\n private createPickId(): V2WinPickId {\n return new V2WinPickId(this.fixture.id, this.option.marketId, this.participant.id);\n }\n\n get price(): NativePrice {\n return NativePrice.fromNativePrice(this.option.price);\n }\n\n get priceId(): number | undefined {\n return this.option.price.id;\n }\n\n protected addPick(): void {\n const pickSource = this.pickSourceProvider.get(\n this.trackingSource,\n this.trackingPosition,\n undefined,\n undefined,\n undefined,\n undefined,\n this.trackingOptions,\n );\n this.pickId.parentLinkedEventId = this.parentLinkedEventId;\n\n this.store.dispatch(\n ExternalBetslipActions.addPick({\n pickId: this.pickId,\n tracking: pickSource,\n priceId: this.option.price.id,\n parentLinkedEventId: this.parentLinkedEventId,\n }),\n );\n }\n\n protected removePick(): void {\n this.store.dispatch(ExternalBetslipActions.removePick({ pickId: this.pickId }));\n }\n\n private getPriceType(priceType: ParticipantPriceType): PriceType {\n switch (priceType) {\n case ParticipantPriceType.Fixed:\n return PriceType.Fixed;\n case ParticipantPriceType.NoPrice:\n return PriceType.NoPrice;\n case ParticipantPriceType.StartingPrice:\n return PriceType.StartingPrice;\n default:\n return exhaustiveCheckGuard(priceType);\n }\n }\n}\n","\n \n\n","import { Injectable } from '@angular/core';\n\nimport { PlaceTerm } from '@bpos/v1/my-bets';\nimport { DisplayType, Fixture, OptionMarket, Participant, ParticipantMarketType, ParticipantPriceType, PlaceTerms } from '@cds/betting-offer';\nimport { EventModel, EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { WinGameFixture } from '@frontend/sports/racing/feature/models';\nimport { BetslipPick } from 'packages/sports/common/betslip/core/picks/betslip-pick';\nimport { BetslipV2OptionMarketPick } from 'packages/sports/common/betslip/core/picks/betslip-v2-option-market-pick';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EachWayMarketHelperService {\n constructor(public sitecore: Sitecore) {}\n\n calculateEachWayTerms = (term: PlaceTerms | PlaceTerm) =>\n 'fraction' in term\n ? this.calculateEachWayTermText(term.numberOfFirstPlaces, term.fraction.numerator, term.fraction.denominator)\n : this.calculateEachWayTermText(term.places, term.numerator, term.denominator);\n\n getWinMarketName(optionGroup: EventOptionGroup, event: EventModel): string | undefined {\n if (optionGroup.isEachWay && optionGroup.placeTerms) {\n const winMarketName = this.sitecore.event.Win;\n const placeTerms = this.calculateEachWayTerms(optionGroup.placeTerms);\n\n return `${winMarketName} & EW ${placeTerms}`;\n }\n\n if (optionGroup.linkedSibling && event.winGameLinkedFixture) {\n const winMarketName = this.getParticipantWinMarketName(event.winGameLinkedFixture);\n\n return winMarketName ?? '';\n }\n\n return undefined;\n }\n\n getWinMarketNameFromPick(pick: BetslipPick): string | undefined {\n if (pick instanceof BetslipV2OptionMarketPick && pick.isEachWay && pick.market.placeTerms) {\n const winMarketName = this.sitecore.event.Win;\n const placeTerms = this.calculateEachWayTerms(pick.market.placeTerms);\n\n return `${winMarketName} & EW ${placeTerms}`;\n }\n\n return undefined;\n }\n\n getParticipantWinMarketName(fixture: WinGameFixture | Fixture, nextRaces: boolean = false, isOptionBet?: boolean): string | null {\n const market = isOptionBet ? this.getOptionMarketWinOptions(fixture.optionMarkets)[0] : this.findWinOptions(fixture.participants)[0] || null;\n\n if (!market) {\n return null;\n }\n\n const marketName = this.sitecore.horseRacing.markets.WinShort;\n if (nextRaces) {\n return market.isEachWay ? `EW ${this.calculateEachWayTerms(market.placeTerms)}` : `${marketName}`;\n }\n\n return market.isEachWay ? `${marketName} & EW (${this.calculateEachWayTerms(market.placeTerms)})` : `${marketName}`;\n }\n\n findWinOptions(participants: Participant[]): { isEachWay: boolean; placeTerms: PlaceTerms }[] {\n return participants\n .flatMap((p) => p.options)\n .filter((o) => o.marketType === ParticipantMarketType.Win && o.priceType === ParticipantPriceType.Fixed)\n .map((m) => ({\n isEachWay: m.properties.isEachWay || false,\n placeTerms: m.properties.placeTerms,\n }));\n }\n\n getOptionMarketWinOptions(optionMarkets: OptionMarket[]): { isEachWay: boolean; placeTerms: PlaceTerms }[] {\n return optionMarkets\n .filter((o) => o.grouping.detailed[0].displayType === DisplayType.Wincast)\n .map((m) => ({\n isEachWay: m.isEachWay || false,\n placeTerms: m.placeTerms,\n }));\n }\n\n private calculateEachWayTermText(places: number, numerator: number, denominator: number): string {\n const placesText = [...Array(places)].map((_, i) => i + 1).join('-');\n\n return `${numerator}/${denominator} ${placesText}`;\n }\n}\n"],"names":["HorseRaceSortingDirection","ExternalPriceFormatterPipe","constructor","formatter","inject","ExternalPriceFormatterService","transform","nativePrice","format","re","pure","standalone","_ExternalPriceFormatterPipe","OptionGroupType","OptionGroupTypeService","marketGroupingConfig","getOptionGroupType","optionGroup","_a","_b","_c","hasSubGroups","EventOptionGroupType","Period","detailedGrouping","displayType","ExtendedDisplayType","BetBuilder","CorrectScore","GoalScorer","OverUnder","PrecreatedBuildABet","BetBuilderStandard","BetBuilderSixPack","BetBuilderOverUnder","BetBuilderCorrectScore","BetBuilderSpread","BetBuilderRaceTo","BetBuilderYesNo","BetBuilderGoalScorer","BetBuilderPlayerProps","PlayerProps","Regular","SixPack","Spread","Scorecast","Wincast","WincastParticipant","RaceTo","BTTS","YesNo","Outrights","TotalScore","Head2Head","PlayerCombined","PlayerMilestone","PlayerMilestoneOverUnder","PlayerOutcome","displayTypes","includes","USGroupedList","PlayerStats","ɵɵinject","MarketGroupingConfig","factory","ɵfac","providedIn","_OptionGroupTypeService","MarketHelpTrackingService","trackingService","trackToggle","expanded","trackData","trackingConstants","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","getPositionEvent","COMPONENT_LOCATION_EVENT","name","track","trackLink","link","COMPONENT_URL_CLICKED","additionalTrackData","fullTrackData","__spreadValues","getBaseTrackData","EVENT_TRACKING","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","NOT_APPLICABLE","COMPONENT_EVENT_DETAILS","parameters","find","p","key","Tv2MarketParameters","MarketType","value","parseId","id","match","TrackingService","P","_MarketHelpTrackingService","MarketHelpService","apiService","cacheFactory","config","cache","create","marketHelpCacheTimeout","getHelp","source","get","getOrCreate","ApiService","ExpiringCacheFactory","MarketHelpConfig","_MarketHelpService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","vm","text","C","noContentMessage","q","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","ɵɵproperty","href","ɵɵsanitizeUrl","ɵɵelement","ɵɵtemplate","MarketHelpComponent_Conditional_0_Conditional_1_Conditional_3_Template","MarketHelpComponent_Conditional_0_Conditional_1_Conditional_4_Template","MarketHelpComponent_Conditional_0_Conditional_1_Conditional_5_Template","ɵɵconditional","_r3","tmp_2_0","undefined","ɵɵpureFunction3","_c0","target","MarketHelpComponent_Conditional_0_Conditional_1_Template","MarketHelpComponent_Conditional_0_Conditional_2_Template","marketHelpConfig","marketHelpTextDisplayVersion","markethelpTextDisplayVersion","V1","MarketHelpTextDisplayVersion","MarketHelpComponent","marketHelpService","changeDetectionRef","sitecore","module","EpcotModule","Errors","destroyRef","DestroyRef","marketHelp","defaultMessage","NoContent","fallbackItem","sitecoreFallbackItem","ngOnChanges","shouldLoadHelpText","setEventHelp","marketHelpItem","marketHelpPath","loadHelp","pipe","takeUntilDestroyed","subscribe","model","markForCheck","eventHelpText","ɵɵdirectiveInject","ChangeDetectorRef","Sitecore","selectors","inputs","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","MarketHelpComponent_Conditional_0_Template","EpcotNotificationComponent","IconCustomComponent","encapsulation","changeDetection","_MarketHelpComponent","HorsesFixtureSortingHelper","siteCore","sortParticipants","participants","prices","horsesRunners","getHorsesRunners","noPriceHorses","filter","favouritesOnly","filterAndOrderFavorites","concat","sortParticipantsByWinMarket","options","isSortByParticipantId","raceRunners","getSortByOddsAndType","optionV3","optionV1","validParticipant","map","__spreadProps","NativePrice","fromNativePrice","price","sort","a","b","comparePrice","sortV3Participants","includeNoPriceFavHorses","getHorsesParticipants","getFavouriteParticipantWithNames","favoriteCount","favouriteParticipants","groupByPrice","groupBy","currentParticipantIndex","Object","keys","forEach","groupIndex","participantsWithSamePrice","favouritePrefix","getFavouritePrefix","length","updatedParticipants","updatedIndex","getUpdatedParticipantsWithName","push","participant","favouriteRank","horseRacing","raceResulted","HorseRaceFavouritePrefixes","Favourite","FavouriteJoint","FavouriteCo","properties","type","sortOptionParticipantsByWinMarket","associatedFixtureParticipantId","sortByOddsAndType","getOption","sortV3ByOddsAndType","participantId","raceCardNumber","sortParticipantsByRaceCardNumber","sortParticipantsBy","sortBy","Odds","sortV3ParticipantsBy","sortParticipantsByTrap","sortParticipantsByTrapNumber","priceType","participantPriceType","first","second","isEmpty","greaterThan","lessThan","sortParticipantsByTrapNumberOfParticipant","participantsMapping","trapNumber","sortParticipantsAlphabetically","greyhoundTrapDogMapping","greyhoundName","localeCompare","_HorsesFixtureSortingHelper","HorsesFixtureParticipantHelper","horsesFixturePricingHelper","horsesFixtureSortingHelper","racingConfig","getCombinedNonRunners","fixture","isGreyhounds","isOptionBet","d","getNonRunnersList","removeTrapNonrunners","nonrunner","fp","translationToStr","greyhoundRacing","messages","VacantGreyHound","join","x","splice","indexOf","isNonRunner","status","getRunnersCount","getPlacedParticipants","prev","next","rank","Number","MAX_VALUE","getParticipants","some","option","participantPriceStatus","getResultedFavourites","addons","pricingState","isResulted","finishedParticipants","getPrices","sortedByPrice","slice","favouriteResultedOptionParticipants","optionGroups","t","getOptionPrices","areSilksAvailable","silk","getHorseRaceInfo","_d","_e","drawNumber","jockey","timeformInfo","jockeyName","trainer","trainerName","silkUrl","silkDescription","isFavorite","ratingStars","buildParticipantRecentResults","isGreyHoundsRacing","participantForm","racingForm","racingPostInfo","greyhoundsData","form","horseData","recentResults","split","lowerResult","s","isNaN","thirdResult","common","nth","allowedLimit","getEasyBetViewData","easyBetViewOptions","runnerStats","easyBetViewKey","easyBetWayMapping","easyBetViewValue","mappedValue","greyhoundsEasyBetViewOptions","checkRange","color","grade","horseRacingMappedValue","label","racingTerminal","siteCoreText","actualValue","easyBetViewOption","lowerLimit","upperLimit","checkForTopRating","maxRating","Math","max","starRating","hasTopStarRating","getParticipantOptionGroups","participantOptionGroups","op","optionPlayerId","online","isV3WinOptionAvailable","buildWinParticipantOptionGroups","createOptionPick","marketType","betType","marketId","optionsOrder","toDictionary","_","index","priceOrder","priceId","V2OptionMarketXCastPickId","createParticipantPick","getMarketId","participantOrder","V2ParticipantPickId","flatMap","o","getOptionMarketPlaceTerms","placeterm","isEachWay","placeTerms","places","HorsesFixturePricingHelper","RacingConfig","_HorsesFixtureParticipantHelper","FixturePickComponent","PickComponent","geolocationCheckService","pickSourceProvider","betslipIntegration","store","lineSwitcherPickHandlerService","enablePriceTypeCheck","changes","state","locked","isPriceLocked","setPickId","createPickId","getPriceType","V2WinPickId","addPick","pickSource","trackingSource","trackingPosition","trackingOptions","pickId","parentLinkedEventId","dispatch","ExternalBetslipActions","tracking","removePick","PriceType","Fixed","NoPrice","StartingPrice","exhaustiveCheckGuard","GeolocationCheckService","PickSourceProvider","BetslipIntegrationService","Store","BETSLIP_LINE_SWITCHER_INJECTION_TOKEN","ɵɵInheritDefinitionFeature","ngContentSelectors","ue","pickClick","ɵɵprojection","ɵɵclassProp","selected","disableOdds","ɵɵpipeBind1","lineSwitcherCurrentSelection$","enableOptionIndicator","toString","OptionIndicatorDirective","AutomationModule","AutomationDirective","AsyncPipe","_FixturePickComponent","EachWayMarketHelperService","calculateEachWayTerms","term","calculateEachWayTermText","numberOfFirstPlaces","fraction","numerator","denominator","getWinMarketName","event","winMarketName","Win","linkedSibling","winGameLinkedFixture","getParticipantWinMarketName","getWinMarketNameFromPick","pick","BetslipV2OptionMarketPick","market","nextRaces","getOptionMarketWinOptions","optionMarkets","findWinOptions","marketName","markets","WinShort","m","grouping","detailed","placesText","Array","i","_EachWayMarketHelperService"],"mappings":"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"}