{"version":3,"file":"chunk-w2i2zjg9.js","sources":["packages/sports/libs/event-subscription/feature/detailed-event-subscription/src/detailed-event-subscription.service.ts","packages/sports/web/app/src/layout/bottom-offset.service.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { FixtureStage } from '@cds/betting-offer';\nimport { MessageType } from '@cds/push';\nimport { BetBuilderOfferUpdateCommand } from '@cds/push/bet-builder-commands';\nimport {\n FixtureUpdateCommand,\n GameDeleteCommand,\n GameUpdateCommand,\n OptionMarketDeleteCommand,\n OptionMarketUpdateCommand,\n ParticipantUpdateCommand,\n} from '@cds/push/fixture-commands';\nimport { DetailedFixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { ConnectionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BetBuilderSubscription, CdsPushService, CdsSubscription, FixtureAllSubscription } from '@frontend/sports/content-distribution/feature';\nimport { BaseSubscriptionService, MessageCallback, MessageHandler } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { updateBetbuilderPrecreatedGroup } from '@frontend/sports/event-subscription/feature/precreated-group-commands';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class DetailedEventSubscriptionService extends BaseSubscriptionService {\n constructor(\n private fixtureFactory: DetailedFixtureFactory,\n push: CdsPushService,\n protected connection: ConnectionConfig,\n private groupingService: OfferGroupingService,\n ) {\n super(push);\n }\n\n protected getContextSubscriptions(event: EventModel, callback: MessageCallback): CdsSubscription[] {\n const subscriptions: CdsSubscription[] = [this.getSubscription(callback, event.id, event.offerContext)];\n\n if (event.precreatedOptionGroups?.length) {\n const betBuilderSubscriptions = event.precreatedOptionGroups\n .filter((g) => g.builderOptionPricing && g.builderOptionPricing.groupId)\n .map((g) => new BetBuilderSubscription([g.builderOptionPricing.groupId], callback));\n subscriptions.push(...betBuilderSubscriptions);\n }\n\n if (event.splitFixtureIds) {\n subscriptions.push(...event.splitFixtureIds.map((split) => this.getSubscription(callback, split)));\n }\n if (event.winGameLinkedFixture) {\n subscriptions.push(this.getSubscription(callback, event.winGameLinkedFixture.id, event.winGameLinkedFixture.contexts));\n }\n\n return subscriptions;\n }\n\n private getSubscription(callback: MessageCallback, eventId: string, contexts?: string[]): FixtureAllSubscription {\n return new FixtureAllSubscription(contexts, eventId, this.connection.culture, callback);\n }\n\n protected getHandlers(): Map> {\n const handlers = new Map>();\n\n handlers.set(MessageType.GameDelete, (evt, cmd) => this.deleteOptionGroup(evt, cmd as GameDeleteCommand & OptionMarketDeleteCommand));\n handlers.set(MessageType.GameUpdate, (evt, cmd) => this.updateOptionGroup(evt, cmd as GameUpdateCommand & OptionMarketUpdateCommand));\n handlers.set(MessageType.OptionMarketDelete, (evt, cmd) => this.deleteOptionGroup(evt, cmd as GameDeleteCommand & OptionMarketDeleteCommand));\n handlers.set(MessageType.OptionMarketUpdate, (evt, cmd) => this.updateOptionGroup(evt, cmd as GameUpdateCommand & OptionMarketUpdateCommand));\n handlers.set(MessageType.FixtureUpdate, (evt, cmd) => this.updateFixture(evt, cmd as FixtureUpdateCommand));\n handlers.set(MessageType.ParticipantUpdate, (evt, cmd) => this.updateWinGameLinkedFixture(evt, cmd as ParticipantUpdateCommand));\n handlers.set(MessageType.BetBuilderOfferUpdate, (evt, cmd) => this.updateBetbuilderPrecreatedOffer(evt, cmd as BetBuilderOfferUpdateCommand));\n\n return handlers;\n }\n\n private deleteOptionGroup(event: EventModel, command: GameDeleteCommand & OptionMarketDeleteCommand): Observable {\n return this.groupingService.getFixtureGroupingForEventModel(event).pipe(\n map((grouping) => {\n const optionGroupId = command.gameId || command.marketId;\n this.fixtureFactory.deleteOptionGroup(event, optionGroupId, grouping);\n\n return event;\n }),\n );\n }\n\n private updateOptionGroup(event: EventModel, command: GameUpdateCommand & OptionMarketUpdateCommand): Observable {\n return this.groupingService.getFixtureGroupingForEventModel(event).pipe(\n map((grouping) => {\n const optionGroup = command.game || command.optionMarket;\n this.fixtureFactory.updateOptionGroup(event, optionGroup, command.fixtureId, grouping);\n\n return event;\n }),\n );\n }\n\n private updateWinGameLinkedFixture(event: EventModel, command: ParticipantUpdateCommand): EventModel {\n if (command.fixtureId === event.winGameLinkedFixture?.id) {\n const winGameLinkedFixture = { ...event.winGameLinkedFixture };\n const participantToUpdate = winGameLinkedFixture.participants.find((p) => p.id === command.participant.id);\n if (participantToUpdate) {\n participantToUpdate.options = command.participant.options ?? [];\n // eslint-disable-next-line no-param-reassign\n event.winGameLinkedFixture = winGameLinkedFixture;\n }\n }\n\n return event;\n }\n\n private updateFixture(event: EventModel, command: FixtureUpdateCommand): EventModel {\n // eslint-disable-next-line no-param-reassign\n event.live = command.stage === FixtureStage.Live;\n\n return event;\n }\n\n private updateBetbuilderPrecreatedOffer(event: EventModel, command: BetBuilderOfferUpdateCommand): EventModel {\n if (event.precreatedOptionGroups && command.sgpId) {\n updateBetbuilderPrecreatedGroup(event, command.sgpId, command.odds, command.suspensionState, command.legs);\n }\n\n return event;\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n// Used to expose an offset that is used by some components(QB/full sheet overlay)\n// to set the bottom padding/margins, so that the content doesn't get covered\n\n// REMARK: currently set only by QuickBet. In case other scenarios are added please rename the class/methods accordingly\n@Injectable({ providedIn: 'root' })\nexport class BottomOffsetService {\n private readonly defaultOffset = 0;\n readonly bottomOffset = signal(this.defaultOffset);\n\n setBottomOffset(bottomOffset: number): void {\n this.bottomOffset.set(bottomOffset);\n }\n\n resetBottomOffset(): void {\n this.bottomOffset.set(this.defaultOffset);\n }\n}\n"],"names":["DetailedEventSubscriptionService","BaseSubscriptionService","constructor","fixtureFactory","push","connection","groupingService","getContextSubscriptions","event","callback","_a","subscriptions","getSubscription","id","offerContext","precreatedOptionGroups","length","betBuilderSubscriptions","filter","g","builderOptionPricing","groupId","map","BetBuilderSubscription","splitFixtureIds","split","winGameLinkedFixture","contexts","eventId","FixtureAllSubscription","culture","getHandlers","handlers","Map","set","evt","cmd","deleteOptionGroup","updateOptionGroup","updateFixture","updateWinGameLinkedFixture","updateBetbuilderPrecreatedOffer","command","getFixtureGroupingForEventModel","pipe","grouping","optionGroupId","gameId","marketId","optionGroup","game","optionMarket","fixtureId","__spreadValues","participantToUpdate","participants","find","p","participant","options","live","stage","sgpId","updateBetbuilderPrecreatedGroup","odds","suspensionState","legs","ɵɵinject","DetailedFixtureFactory","CdsPushService","ConnectionConfig","OfferGroupingService","a","factory","ɵfac","providedIn","_DetailedEventSubscriptionService","BottomOffsetService","defaultOffset","bottomOffset","signal","setBottomOffset","resetBottomOffset","_BottomOffsetService"],"mappings":"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"}