{"version":3,"file":"top-items-widget.feature-c1ll0vgg.js","sources":["packages/sports/web/app/src/competition-list/top-items-tracking.service.ts","packages/sports/web/app/src/competition-list/top-items-widget.service.ts","packages/sports/web/app/src/competition-list/top-items-widget.component.html","packages/sports/web/app/src/competition-list/top-items-widget.component.ts","packages/sports/web/app/src/competition-list/widget-registration.service.ts","packages/sports/web/app/src/competition-list/top-items-widget.feature.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { TopItemsType } from '@frontend/sports/types/components/widget/types';\n\nimport { TreeItem } from '../common/item/item.model';\n\n@Injectable()\nexport class TopItemsTrackingService {\n constructor(private trackingService: TrackingService) {}\n private trackingSourceMapping = {\n [TopItemsType.TopCompetitions]: 'Top Competitions',\n [TopItemsType.TopCountries]: 'Top Regions',\n [TopItemsType.TopSports]: 'Top Sports',\n };\n\n private trackingDetailsMapping = {\n [TopItemsType.TopCompetitions]: 'competition',\n [TopItemsType.TopCountries]: 'region',\n [TopItemsType.TopSports]: 'sport',\n };\n\n private trackingShowAllMapping = {\n [TopItemsType.TopCompetitions]: 'see all competitions',\n [TopItemsType.TopCountries]: 'see all regions',\n [TopItemsType.TopSports]: 'see all sports',\n };\n\n private trackingIdMapping = (id: number | string): { [key: string]: Partial } => ({\n [TopItemsType.TopCompetitions]: { [trackingConstants.SPORT_LEAGUE_ID]: id.toString() },\n [TopItemsType.TopCountries]: { [trackingConstants.REGION_ID]: id.toString() },\n [TopItemsType.TopSports]: { [trackingConstants.SPORT_ID]: id.toString() },\n });\n\n trackItemClicked(item: TreeItem, itemType: TopItemsType, index: number): void {\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Top Items Modules',\n [trackingConstants.COMPONENT_LABEL_EVENT]: this.trackingSourceMapping[itemType],\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.trackingDetailsMapping[itemType],\n [trackingConstants.COMPONENT_CONTENT_POSITION]: index.toString(),\n [trackingConstants.COMPONENT_URL_CLICKED]: item.href ?? NOT_APPLICABLE,\n ...this.trackingIdMapping(item.id)[itemType],\n };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackMoreClicked(itemType: TopItemsType): void {\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Top Items Modules',\n [trackingConstants.COMPONENT_LABEL_EVENT]: this.trackingSourceMapping[itemType],\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.trackingShowAllMapping[itemType],\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { TopItemsPayload, TopItemsType } from '@frontend/sports/types/components/widget/types';\nimport { cloneDeep, toInteger } from 'lodash-es';\nimport { Observable, forkJoin } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SportsCacheService } from '../client-caching/sports-cache.service';\nimport { TreeSeparatorItem } from '../common/item/item.model';\nimport { LazyTreeItem, SportTreeItem } from './competition-list.models';\nimport { CompetitionTreeService } from './competition-tree.service';\nimport { CompetitionListService } from './services/competition-list.service';\nimport { SportTreeService } from './sport-tree.service';\n\ninterface TreeDataSource {\n source?: CountItem | CountItem[];\n sports?: CountItem[];\n tournaments?: Tournament[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TopItemsWidgetService {\n constructor(\n private competitionList: CompetitionListService,\n private cache: SportsCacheService,\n private sitecore: Sitecore,\n private competitionMapper: CompetitionTreeService,\n private sportMapper: SportTreeService,\n ) {}\n\n buildItemTree(data: TopItemsPayload, sportId?: number): Observable<{ tree: SportTreeItem | undefined; type: TopItemsType }> {\n let data$: Observable;\n\n if (data.type === TopItemsType.TopSports) {\n data$ = this.getSportList();\n } else {\n data$ = this.getSport(sportId!);\n }\n\n return data$.pipe(\n map((itemData) => {\n return this.getSource(itemData?.source, itemData?.sports, itemData?.tournaments, data.type);\n }),\n map((tree) => ({ tree, type: data.type })),\n );\n }\n\n private getSport(sportId: number): Observable {\n return this.competitionList.getSportTree(sportId).pipe(\n map((result) => {\n if (!result?.sport) {\n return {};\n }\n\n return { source: result.sport, tournaments: result.tournaments ?? [] };\n }),\n );\n }\n\n private getSportList(): Observable {\n const lobbyConfig = this.sitecore.lobby;\n\n const topCount = toInteger(lobbyConfig.SortedSportsLeftColumnDisplayLimit);\n const topReorder = { id: SportConstant.Horses, location: toInteger(lobbyConfig.HorseRacingLeftColumnPosition) };\n\n return forkJoin([this.competitionList.getSportList(topCount, topReorder), this.cache.getSportList()]).pipe(\n map(([topSports, sports]) => {\n if (!topSports?.length) {\n return undefined;\n }\n\n return { source: topSports, sports };\n }),\n );\n }\n\n private getSource(\n source: CountItem | CountItem[] | undefined,\n sports: CountItem[] | undefined,\n tournaments: Tournament[] | undefined,\n type: TopItemsType,\n ): SportTreeItem | undefined {\n if (this.isItemList(source) && type === TopItemsType.TopSports && sports) {\n return this.getAllLeftNavSports(source, sports);\n }\n\n if (this.isSingleItem(source)) {\n return type === TopItemsType.TopCountries\n ? this.competitionMapper.getTopRegions(source)\n : this.competitionMapper.getTopCompetitions(source, tournaments);\n }\n\n return;\n }\n\n private getAllLeftNavSports(source: CountItem[], sports: CountItem[]): SportTreeItem {\n const topSports = this.sportMapper.getTop(this.filterExceptModifyFirstEsport(source));\n\n const azSports = this.sortSports(this.sportMapper.get(this.filterExceptModifyFirstEsport(sports), true));\n azSports.forEach((sport) => delete sport.count);\n\n const leftNavSports: SportTreeItem = new LazyTreeItem([], { urlMapper: () => '', countMapper: () => 0 });\n leftNavSports.title = topSports.title;\n leftNavSports.children = [...topSports.children, new TreeSeparatorItem(topSports.subTitle ?? ''), ...azSports];\n\n return leftNavSports;\n }\n\n private filterExceptModifyFirstEsport(source: CountItem[]): CountItem[] {\n const firstIndex = source.findIndex((sport) => sport.isEsport);\n\n if (firstIndex > -1) {\n const result = source.filter((sport) => !sport.isEsport);\n result.splice(firstIndex, 0, this.modifyEsportElement(source[firstIndex]));\n\n return result;\n }\n\n return source;\n }\n\n private modifyEsportElement(esport: CountItem): CountItem {\n const EsportsGroupElement = cloneDeep(esport);\n EsportsGroupElement.id = SportConstant.EsportsGroup;\n EsportsGroupElement.name = this.sitecore.eSports.ESports;\n EsportsGroupElement.icon = 'theme-e-sports';\n\n return EsportsGroupElement;\n }\n\n private isSingleItem(source: CountItem | CountItem[] | undefined): source is CountItem {\n return !Array.isArray(source);\n }\n\n private isItemList(source: CountItem | CountItem[] | undefined): source is CountItem[] {\n return Array.isArray(source);\n }\n\n private sortSports(items: SportTreeItem[]): SportTreeItem[] {\n return [...items].sort(this.byName);\n }\n\n private byName = (first: SportTreeItem, second: SportTreeItem): number => first.title.localeCompare(second.title);\n}\n","@if (viewData$ | async; as data) {\n @if (data.tree?.children.length) {\n \n @for (item of data.tree.children; track item) {\n \n \n }\n @if (data.tree.moreTitle) {\n \n \n }\n }\n}\n\n\n @if (isSeparator(item)) {\n
{{ item.title }}
\n } @else {\n \n \n @if (!isLeagueOrVirtualGroup(item)) {\n \n } @else if (isLeagueOrVirtualGroup(item) && !item.icon) {\n \n \n }\n \n @if (isLeagueOrVirtualGroup(item)) {\n @if (hasCompetitionLogo(item.sport, item.id, item.imageProfile)) {\n \n \n \n }\n
\n
\n
\n @if (isPriceBoost(!!item.priceBoostCount)) {\n \n }\n
\n @if (!item.region && promoMap[item.id]) {\n \n }\n
\n @if (promoMap[item.id]) {\n \n }\n
\n
\n
\n }\n \n }\n
\n","import { AsyncPipe, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, OnDestroy } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ImageProfile } from '@cds/betting-offer';\nimport { EpcotConfig, PriceBoostConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ListItemComponent } from '@frontend/sports/common/ui/sports-list-items';\nimport { CompetitionLogoComponent, CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { TopItemsPayload, TopItemsType } from '@frontend/sports/types/components/widget/types';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { ReplaySubject, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, tap } from 'rxjs/operators';\n\nimport { ItemComponent } from '../common/item/item.component';\nimport { TreeItem, TreeSeparatorItem } from '../common/item/item.model';\nimport { BadgeComponent } from '../crm-promotion/badge.component';\nimport { CrmPromotionProviderService, PromotionMap } from '../crm-promotion/crm-promotion-provider.service';\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { FavouriteLeagueToggleComponent } from '../favourites/toggle/favourite-league-toggle.component';\nimport { SharedPriceboostModule } from '../shared-priceboost/shared-priceboost.module';\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\nimport { LeagueTreeItem, VirtualGroupTreeItem } from './competition-list.models';\nimport { TopItemsTrackingService } from './top-items-tracking.service';\nimport { TopItemsWidgetService } from './top-items-widget.service';\n\n@Component({\n selector: 'ms-top-items-widget',\n templateUrl: './top-items-widget.component.html',\n styleUrls: ['./top-items-widget.component.scss'],\n providers: [TopItemsTrackingService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n NgClass,\n AsyncPipe,\n ItemComponent,\n BadgeComponent,\n NgTemplateOutlet,\n CrmPromotionModule,\n CompetitionLogoComponent,\n SharedPriceboostModule,\n FavouriteLeagueToggleComponent,\n ListItemComponent,\n DsNotificationBubble,\n IconCustomComponent,\n DsDivider,\n ],\n})\nexport class TopItemsWidgetComponent extends WidgetComponent implements OnDestroy {\n @HostBinding('class') className = 'top-items-widget list list-card';\n\n @HostBinding('class.epcot-enabled')\n get epcotEnabledClass() {\n return this.isEpcotEnabled;\n }\n\n isEpcotEnabled = false;\n\n private readonly widgetPayload$ = new ReplaySubject();\n\n private readonly promoMap$ = this.widgetPayload$.pipe(\n map((d) => d.type),\n distinctUntilChanged(),\n switchMap((type) => this.crmPromotionProvider.promotionsMap$.pipe(map((promoMap) => this.getPromotionsForType(promoMap, type)))),\n startWith({}),\n );\n\n private readonly tree$ = this.widgetPayload$.pipe(\n switchMap((data) => this.topItemsService.buildItemTree(data, this.route.snapshot.params.sport)),\n );\n\n readonly viewData$ = combineLatest([this.tree$, this.promoMap$]).pipe(\n tap(([topItems, _]) => {\n this.hasData = !!topItems.tree?.children.length;\n this.setWidgetLoaded();\n }),\n map(([topItems, promoMap]) => ({\n tree: topItems.tree,\n type: topItems.type,\n promoMap,\n })),\n );\n\n constructor(\n private topItemsService: TopItemsWidgetService,\n private route: ActivatedRoute,\n private trackingService: TopItemsTrackingService,\n private crmPromotionProvider: CrmPromotionProviderService,\n private competitionLogoService: CompetitionLogosService,\n private priceBoostConfig: PriceBoostConfig,\n private epcotConfig: EpcotConfig,\n ) {\n super();\n this.isEpcotEnabled = this.epcotConfig.isEnabled;\n }\n\n protected override onData(data: TopItemsPayload): void {\n this.widgetPayload$.next(data);\n }\n\n moreClicked(type: TopItemsType): void {\n this.trackingService.trackMoreClicked(type);\n }\n\n itemClicked(item: TreeItem, type: TopItemsType, index: number): void {\n this.trackingService.trackItemClicked(item, type, index);\n }\n\n hasCompetitionLogo(sportId: number, leagueId: number, imageProfile: ImageProfile): boolean {\n return !!imageProfile || this.competitionLogoService.hasLogo(sportId, leagueId);\n }\n\n isLeagueOrVirtualGroup(item: TreeItem): boolean {\n return item instanceof LeagueTreeItem || item instanceof VirtualGroupTreeItem;\n }\n\n getCount(item: TreeItem): number | undefined {\n return this.isLeagueOrVirtualGroup(item) ? undefined : item.count;\n }\n\n getIcon(item: TreeItem): string | undefined {\n return this.isLeagueOrVirtualGroup(item) ? item.icon : undefined;\n }\n\n getBorder(type: TopItemsType, lastItem: boolean): boolean {\n return !!(type == TopItemsType.TopSports && lastItem);\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 isSeparator(item: TreeItem): boolean {\n return item instanceof TreeSeparatorItem;\n }\n\n ngOnDestroy(): void {\n this.widgetPayload$.complete();\n }\n\n private getPromotionsForType = (promoMap: PromotionMap, type: TopItemsType) => {\n return type === TopItemsType.TopSports ? promoMap.sports : type === TopItemsType.TopCompetitions ? promoMap.competitions : {};\n };\n\n isPriceBoost(isCountPresent: boolean): boolean {\n return this.priceBoostConfig.isEnabled && isCountPresent;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { OnFeatureInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistryService } from '../widget/core/widget-registry.service';\nimport { TopItemsWidgetComponent } from './top-items-widget.component';\n\n@Injectable({ providedIn: 'root' })\nexport class WidgetRegistrationService implements OnFeatureInit {\n constructor(private registry: WidgetRegistryService) {}\n\n onFeatureInit(): void {\n this.registry.registerLazy(WidgetType.TopItems, TopItemsWidgetComponent);\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistrationService } from './widget-registration.service';\n\nexport const provide = (): Provider => {\n return runOnFeatureInit(WidgetRegistrationService);\n};\n"],"names":["TopItemsTrackingService","constructor","trackingService","trackingSourceMapping","trackingDetailsMapping","trackingShowAllMapping","trackingIdMapping","id","trackingConstants","SPORT_LEAGUE_ID","toString","REGION_ID","SPORT_ID","trackItemClicked","item","itemType","index","trackingData","__spreadValues","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_ACTION_EVENT","COMPONENT_POSITION_EVENT","NOT_APPLICABLE","COMPONENT_LOCATION_EVENT","COMPONENT_EVENT_DETAILS","COMPONENT_CONTENT_POSITION","COMPONENT_URL_CLICKED","href","track","EVENT_TRACKING","trackMoreClicked","ɵɵinject","TrackingService","factory","ɵfac","_TopItemsTrackingService","TopItemsWidgetService","competitionList","cache","sitecore","competitionMapper","sportMapper","byName","first","second","title","localeCompare","buildItemTree","data","sportId","data$","type","getSportList","getSport","pipe","map","itemData","getSource","source","sports","tournaments","tree","getSportTree","result","sport","lobbyConfig","lobby","topCount","toInteger","SortedSportsLeftColumnDisplayLimit","topReorder","SportConstant","Horses","location","HorseRacingLeftColumnPosition","forkJoin","topSports","length","isItemList","getAllLeftNavSports","isSingleItem","getTopRegions","getTopCompetitions","getTop","filterExceptModifyFirstEsport","azSports","sortSports","get","forEach","count","leftNavSports","LazyTreeItem","urlMapper","countMapper","children","TreeSeparatorItem","subTitle","firstIndex","findIndex","isEsport","filter","splice","modifyEsportElement","esport","EsportsGroupElement","cloneDeep","EsportsGroup","name","eSports","ESports","icon","Array","isArray","items","sort","CompetitionListService","SportsCacheService","Sitecore","CompetitionTreeService","SportTreeService","providedIn","_TopItemsWidgetService","ɵɵelementContainer","a","et","ɵɵproperty","leagueTemplate_r6","ɵɵpureFunction5","_c0","item_r1","data_r5","promoMap","$index_r2","ɵ$index_6_r3","ɵ$count_6_r4","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r7","ɵɵnextContext","ctx_r7","ɵɵresetView","moreClicked","ɵɵelementEnd","ɵɵadvance","moreTitle","ɵɵrepeaterCreate","TopItemsWidgetComponent_Conditional_0_Conditional_0_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵtemplate","TopItemsWidgetComponent_Conditional_0_Conditional_0_Conditional_3_Template","ɵɵrepeater","ɵɵconditional","TopItemsWidgetComponent_Conditional_0_Conditional_0_Template","ɵɵtext","ɵɵtextInterpolate","item_r9","ɵɵclassMap","getItemFavouriteId","imageProfile","priceBoostCount","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_0_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_4_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_5_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_4_Conditional_7_Template","hasCompetitionLogo","ɵɵpureFunction1","_c1","isPriceBoost","region","promoMap_r14","_c2","b","_r10","ctx_r10","$implicit","index_r12","type_r13","itemClicked","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_2_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_3_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Conditional_4_Template","getCount","getIcon","last_r15","isLeagueOrVirtualGroup","TopItemsWidgetComponent_ng_template_2_Conditional_0_Template","TopItemsWidgetComponent_ng_template_2_Conditional_1_Template","isSeparator","TopItemsWidgetComponent","WidgetComponent","epcotEnabledClass","isEpcotEnabled","topItemsService","route","crmPromotionProvider","competitionLogoService","priceBoostConfig","epcotConfig","className","widgetPayload$","ReplaySubject","promoMap$","d","distinctUntilChanged","switchMap","promotionsMap$","getPromotionsForType","startWith","tree$","snapshot","params","viewData$","combineLatest","tap","topItems","_","_a","hasData","setWidgetLoaded","competitions","isEnabled","onData","next","leagueId","hasLogo","LeagueTreeItem","VirtualGroupTreeItem","undefined","getBorder","lastItem","favouriteId","realCompetitionId","ngOnDestroy","complete","isCountPresent","ɵɵdirectiveInject","ActivatedRoute","CrmPromotionProviderService","CompetitionLogosService","PriceBoostConfig","EpcotConfig","Y","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","TopItemsWidgetComponent_Conditional_0_Template","pt","TopItemsWidgetComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","tmp_1_0","ɵɵpipeBind1","NgClass","AsyncPipe","ItemComponent","BadgeComponent","NgTemplateOutlet","CrmPromotionModule","CompetitionLogoComponent","SharedPriceboostModule","PriceboostCountSignpostComponent","FavouriteLeagueToggleComponent","ListItemComponent","DsDivider","styles","changeDetection","_TopItemsWidgetComponent","WidgetRegistrationService","registry","onFeatureInit","registerLazy","WidgetRegistryService","x","_WidgetRegistrationService","provide","runOnFeatureInit"],"mappings":"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"}