{"version":3,"file":"chunk-ew2crev1.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.component.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.component.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 .filter((p) => !this.isNonRunner(p) && p.properties!.type !== ParticipantType.Favourite)\n .sort((prev, next) => (prev.properties!.rank || Number.MAX_VALUE) - (next.properties!.rank || Number.MAX_VALUE));\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 } 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 { CustomActiveStateDirective } from '@frontend/sports/common/ui/custom-active-state';\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: [CustomActiveStateDirective, 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(): 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","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","CustomActiveStateDirective","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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"}