{"version":3,"file":"chunk-nmezmpph.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\n BTTS = 'BTTS',\n\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\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 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 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","ie","pure","_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","x","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","Z","ɵɵ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","A","selectors","inputs","features","ɵɵNgOnChangesFeature","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","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","ce","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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"}