{"version":3,"file":"chunk-e8y8mwlk.js","sources":["packages/sports/web/app/src/competition-list/competition-store.service.ts","packages/sports/web/app/src/competition-list/competition-tree.component.html","packages/sports/web/app/src/competition-list/competition-tree.component.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SessionStoreService } from '@frontend/vanilla/core';\nimport { cloneDeep } from 'lodash-es';\n\nimport { TreeItem } from '../common/item/item.model';\n\nexport enum TreeSource {\n Top,\n All,\n}\n\nexport interface TreeState {\n sport: number;\n top: boolean;\n all: boolean;\n children: (number | string)[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionStoreService {\n private readonly key = 'competition-tree';\n private state?: TreeState;\n\n constructor(private store: SessionStoreService) {\n this.state = this.store.get(this.key) || undefined;\n }\n\n init(sport: number): void {\n if (this.state && this.state.sport === sport) {\n return;\n }\n\n this.state = this.getDefault(sport);\n }\n\n get(sport: number): TreeState {\n return this.state && this.state.sport === sport ? cloneDeep(this.state) : this.getDefault(sport);\n }\n\n toggle(source: TreeSource, item?: TreeItem): void {\n if (!this.state) {\n throw new Error('State is not initialized');\n }\n\n if (source === TreeSource.Top) {\n this.state.top = !this.state.top;\n } else {\n if (item) {\n const index = this.state.children.indexOf(item.id);\n\n if (index !== -1 && !item.expanded) {\n this.state.children.splice(index, 1);\n } else if (index === -1 && item.expanded) {\n this.state.children.push(item.id);\n }\n } else {\n this.state.all = !this.state.all;\n }\n }\n\n this.setStore();\n }\n\n private getDefault(sport: number): TreeState {\n return {\n sport,\n top: true,\n all: true,\n children: [],\n };\n }\n\n private setStore(): void {\n this.store.set(this.key, this.state);\n }\n}\n","\n @if (isTopCompetition) {\n \n }\n \n @if (!item.icon && !showFavourite) {\n \n \n \n }\n \n @if (isPriceBoost(!!item.priceBoostCount)) {\n \n }\n @if (isPromoted(item)) {\n \n }\n \n @if (isLeagueOrVirtualGroup(item)) {\n @if (hasCompetitionLogo(item.sport, item.id, item.imageProfile)) {\n \n \n \n }\n }\n \n\n\n\n \n\n\n\n \n\n\n\n\n\n\n\n\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n Output,\n SimpleChange,\n SimpleChanges,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ImageProfile } from '@cds/betting-offer';\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { CalendarConfig, PrettyUrlsConfig, PriceBoostConfig, TimeFilterConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { ListItemComponent } from '@frontend/sports/common/ui/sports-list-items';\nimport { CompetitionLogoComponent, CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { TrackReferringACtionDirective, TrackingSource } from '@frontend/sports/tracking/feature';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { RxIf } from '@rx-angular/template/if';\nimport { isEqual } from 'lodash-es';\n\nimport { CalendarItemListComponent } from '../calendar/calendar-item-list.component';\nimport { CalendarPage, CalendarService } from '../calendar/calendar.service';\nimport { IntervalLink } from '../calendar/count-interval.service';\nimport { TimeFrameLocation } from '../calendar/time-filters-tracking.service';\nimport { ItemTreeComponent } from '../common/item/item-tree.component';\nimport { TreeItem } from '../common/item/item.model';\nimport { BadgeComponent } from '../crm-promotion/badge.component';\nimport { CrmPromotionProviderService, PromotionMap } from '../crm-promotion/crm-promotion-provider.service';\nimport { FavouriteLeagueToggleComponent } from '../favourites/toggle/favourite-league-toggle.component';\nimport { CompetitionRoute } from '../navigation/navigation.models';\nimport { PriceboostCountSignpostComponent } from '../shared-priceboost/Components/priceboost-count-signpost.component';\nimport { LeagueTreeItem, SportTreeState, VirtualGroupTreeItem } from './competition-list.models';\nimport { CompetitionStoreService, TreeSource } from './competition-store.service';\nimport { CompetitionTreeService } from './competition-tree.service';\n\n@Component({\n selector: 'ms-competition-tree',\n templateUrl: 'competition-tree.component.html',\n styleUrl: './competition-tree.component.scss',\n standalone: true,\n imports: [\n FavouriteLeagueToggleComponent,\n TooltipModule,\n PriceboostCountSignpostComponent,\n BadgeComponent,\n CompetitionLogoComponent,\n NgTemplateOutlet,\n ItemTreeComponent,\n RxIf,\n AutomationModule,\n CalendarItemListComponent,\n ListItemComponent,\n DsDivider,\n TrackReferringACtionDirective,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CompetitionTreeComponent implements OnChanges {\n @HostBinding('class') className = 'competition-tree';\n @Input() sport: CountItem;\n @Input() context?: CompetitionRoute;\n @Input() tournaments?: Tournament[];\n @Input() stateless = false;\n @Input() topCompetition = false;\n @Input() showFavourite = false;\n @Input() treeItemNavigation = false;\n @Input() eSportsLobby = false;\n @Output() treeItemClicked = new EventEmitter();\n readonly timeFrameLocation = TimeFrameLocation.CompetitionsPage;\n treeSource = TreeSource;\n favouriteTracking: TrackingSource = { source: 'Top Competition' };\n trackingValue = signal('M2_ListItemlinks');\n cleanedAfterTrack = signal(false);\n\n tree?: TreeItem;\n top?: TreeItem;\n all?: TreeItem;\n promoCompetitions: StringDictionary = {};\n calendarIntervals: IntervalLink[];\n\n constructor(\n private mapper: CompetitionTreeService,\n private store: CompetitionStoreService,\n private competitionLogoService: CompetitionLogosService,\n private crmPromotionProvider: CrmPromotionProviderService,\n private changeDetectorRef: ChangeDetectorRef,\n private calendar: CalendarService,\n private timeFilterConfig: TimeFilterConfig,\n private urlConfig: PrettyUrlsConfig,\n private calendarConfig: CalendarConfig,\n public priceBoostConfig: PriceBoostConfig,\n ) {\n this.crmPromotionProvider.promotionsMap$.pipe(takeUntilDestroyed()).subscribe((ids) => this.promotionMapChanged(ids));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const state = this.getState(false, this.eSportsLobby);\n this.calendarIntervals = [];\n if (this.isChanged(changes.sport, this.isSportEqual)) {\n this.tree = this.mapper.get(this.sport, state.context, this.eSportsLobby);\n this.top = !this.topCompetition ? this.mapper.getTopCompetitions(this.sport, this.tournaments || [], state.context) : undefined;\n } else if (this.isChanged(changes.tournaments)) {\n this.top = !this.topCompetition ? this.mapper.getTopCompetitions(this.sport, this.tournaments || [], state.context) : undefined;\n }\n\n if (this.isChanged(changes.context) || this.isChanged(changes.stateless) || this.isChanged(changes.eSportsLobby)) {\n this.tree = this.mapper.setState(this.tree, state);\n this.top = !this.topCompetition ? this.mapper.setState(this.top, this.getState(true)) : undefined;\n\n this.all = this.mapper.getAll(this.sport, state);\n }\n\n if (this.sport) {\n this.store.init(this.sport.id);\n }\n if (this.showCalendarTimeFilters(state)) {\n const sport = this.context ? { id: this.context.sport, name: this.context.sportName } : undefined;\n this.calendarIntervals = this.calendar.getCalendarLinks(CalendarPage.Competitions, sport as UrlParam);\n }\n }\n\n isLeagueOrVirtualGroup(item: TreeItem): boolean {\n return item instanceof LeagueTreeItem || item instanceof VirtualGroupTreeItem;\n }\n\n isPriceBoost(isCountPresent: boolean): boolean {\n return this.priceBoostConfig.isEnabled && isCountPresent;\n }\n\n getItemFavouriteId(item: TreeItem): string | number {\n if (item instanceof VirtualGroupTreeItem) {\n return item.favouriteId;\n } else if (item instanceof LeagueTreeItem) {\n return item.realCompetitionId || item.id;\n }\n\n return item.id;\n }\n\n toggled(source: TreeSource, tree: TreeItem, item: TreeItem): void {\n if (tree === this.tree) {\n this.tree = this.mapper.toggleExpanded(this.tree, item);\n }\n if (tree === this.top) {\n this.top = this.mapper.toggleExpanded(this.top, item);\n }\n\n this.changeDetectorRef.markForCheck();\n\n if (this.stateless) {\n return;\n }\n\n this.store.toggle(source, item);\n }\n\n toggleExpandedAll(item: TreeItem): void {\n this.all = this.mapper.toggleExpanded(this.all!, item);\n }\n\n hasCompetitionLogo(sportId: number, leagueId: number, imageProfile: ImageProfile): boolean {\n return !!imageProfile || this.competitionLogoService.hasLogo(sportId, leagueId);\n }\n\n isPromoted(item: TreeItem): boolean {\n return item instanceof LeagueTreeItem && item.isVirtual\n ? item.siblings!.some((id) => !!this.promoCompetitions[id])\n : !!this.promoCompetitions[item.id];\n }\n\n getSubTitle(showSubTitle: boolean, item: LeagueTreeItem): string | undefined {\n return showSubTitle && this.isLeagueOrVirtualGroup(item) ? item.region : undefined;\n }\n\n getCount(isTopCompetition: boolean, itemCount: number): number | undefined {\n return isTopCompetition ? undefined : itemCount;\n }\n\n private promotionMapChanged(map: PromotionMap): void {\n this.promoCompetitions = map.competitions;\n this.changeDetectorRef.markForCheck();\n }\n\n private isChanged = (change: SimpleChange, equality: (first: any, second: any) => boolean = isEqual) => {\n return change && !equality(change.currentValue, change.previousValue);\n };\n\n private isSportEqual = (first: CountItem, second: CountItem) => {\n if (first === undefined && second === undefined) {\n return true;\n }\n\n if (!first || !second || first.id !== second.id || first.children.length !== second.children.length) {\n return false;\n }\n\n if (!isEqual(first.counts, second.counts)) {\n return false;\n }\n\n for (let i = 0; i < first.children.length; i++) {\n if (!this.isSportEqual(first.children[i], second.children[i])) {\n return false;\n }\n }\n\n return true;\n };\n\n private getState(top: boolean = false, esportsLobby: boolean = false): SportTreeState {\n if (!this.sport) {\n return {};\n }\n\n const state = this.store.get(this.sport.id);\n const context = this.context || {};\n\n if (this.stateless) {\n state.top = false;\n state.all = this.topCompetition;\n state.children = [];\n context.sport = this.sport.id;\n }\n\n const treeState = {\n sport: context.sport,\n sportExpanded: top ? state.top : state.all,\n region: context.region,\n regionExpanded: top ? undefined : state.children,\n league: context.league,\n tournament: context.tournament,\n isVirtual: context.isVirtual,\n virtualCompetitionGroup: context.virtualCompetitionGroup,\n context: context.context,\n };\n\n //we need to adapt the treeState when on esportsLobby, as context is null and the functionality for \"1st expanded region\" does not work-\n //context is CompetitionRoute, and we cannot build if from EsportsLobby as we have multiple sports and competitions\n if (esportsLobby) {\n treeState.sport = this.sport.id;\n treeState.sportExpanded = false;\n treeState.regionExpanded = this.sport.children.length > 0 ? [this.sport.children[0].id] : [];\n }\n\n return treeState;\n }\n\n onTreeItemClick(item: TreeItem): void {\n this.cleanedAfterTrack.update(() => item.href?.indexOf('http') === 0 || false);\n this.treeItemClicked.emit(item);\n }\n\n private showCalendarTimeFilters(state: SportTreeState): boolean {\n return (\n state.context === this.urlConfig.translations.betting && this.timeFilterConfig.isTimeFilterEnabled && this.calendarConfig.showCalendarTab\n );\n }\n}\n"],"names":["TreeSource","CompetitionStoreService","constructor","store","key","state","get","undefined","init","sport","getDefault","cloneDeep","toggle","source","item","Error","Top","top","index","children","indexOf","id","expanded","splice","push","all","setStore","set","ɵɵinject","SessionStoreService","factory","ɵfac","providedIn","_CompetitionStoreService","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r2","getItemFavouriteId","item_r2","title","favouriteTracking_r5","priceBoostCount","imageProfile","ɵɵtemplate","CompetitionTreeComponent_ng_template_0_Conditional_6_Conditional_0_Template","ɵɵconditional","hasCompetitionLogo","CompetitionTreeComponent_ng_template_0_Conditional_0_Template","ɵɵlistener","ɵɵrestoreView","_r1","$implicit","ɵɵnextContext","ɵɵresetView","onTreeItemClick","CompetitionTreeComponent_ng_template_0_Conditional_2_Template","CompetitionTreeComponent_ng_template_0_Conditional_4_Template","CompetitionTreeComponent_ng_template_0_Conditional_5_Template","CompetitionTreeComponent_ng_template_0_Conditional_6_Template","isTopCompetition_r6","ɵɵclassProp","trackingValue","cleanedAfterTrack","getCount","count","treeItemNavigation","href","icon","active","getSubTitle","showFavourite","isPriceBoost","isPromoted","isLeagueOrVirtualGroup","ɵɵelementContainer","CompetitionTreeComponent_ng_template_2_ng_container_0_Template","leagueTemplate_r8","ɵɵpureFunction2","_c0","item_r7","favouriteTracking","CompetitionTreeComponent_ng_template_4_ng_container_0_Template","ɵɵpureFunction1","_c1","item_r9","$event","_r10","toggleExpandedAll","s","_c2","ɵɵpureFunction0","_c3","_r11","toggled","treeSource","_c4","topCompetitionTemplate_r12","calendarIntervals","timeFrameLocation","v","_r13","All","tree","ɵɵclassMap","eSportsLobby","_c5","treeCompetitionTemplate_r14","CompetitionTreeComponent","mapper","competitionLogoService","crmPromotionProvider","changeDetectorRef","calendar","timeFilterConfig","urlConfig","calendarConfig","priceBoostConfig","className","stateless","topCompetition","treeItemClicked","EventEmitter","TimeFrameLocation","CompetitionsPage","signal","promoCompetitions","isChanged","change","equality","isEqual","currentValue","previousValue","isSportEqual","first","second","length","counts","i","promotionsMap$","pipe","takeUntilDestroyed","subscribe","ids","promotionMapChanged","ngOnChanges","changes","getState","context","getTopCompetitions","tournaments","setState","getAll","showCalendarTimeFilters","name","sportName","getCalendarLinks","CalendarPage","Competitions","LeagueTreeItem","VirtualGroupTreeItem","isCountPresent","isEnabled","favouriteId","realCompetitionId","toggleExpanded","markForCheck","sportId","leagueId","hasLogo","isVirtual","siblings","some","showSubTitle","region","isTopCompetition","itemCount","map","competitions","esportsLobby","treeState","sportExpanded","regionExpanded","league","tournament","virtualCompetitionGroup","update","_a","emit","translations","betting","isTimeFilterEnabled","showCalendarTab","ɵɵdirectiveInject","CompetitionTreeService","CompetitionLogosService","CrmPromotionProviderService","ChangeDetectorRef","CalendarService","TimeFilterConfig","PrettyUrlsConfig","CalendarConfig","PriceBoostConfig","selectors","hostVars","hostBindings","rf","ctx","R","G","CompetitionTreeComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","CompetitionTreeComponent_ng_template_2_Template","CompetitionTreeComponent_ng_template_4_Template","CompetitionTreeComponent_ms_item_tree_6_Template","CompetitionTreeComponent_ms_item_tree_7_Template","CompetitionTreeComponent_ms_calendar_item_list_8_Template","CompetitionTreeComponent_ms_item_tree_9_Template","FavouriteLeagueToggleComponent","TooltipModule","PriceboostCountSignpostComponent","BadgeComponent","CompetitionLogoComponent","NgTemplateOutlet","ItemTreeComponent","RxIf","AutomationModule","AutomationDirective","CalendarItemListComponent","ListItemComponent","DsDivider","TrackReferringACtionDirective","styles","changeDetection","_CompetitionTreeComponent"],"mappings":"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"}