{"version":3,"file":"tabbed-grid.feature-hm0x6imv.js","sources":["packages/sports/web/app/src/tabbed-grid/tabbed-grid-navigation.service.ts","packages/sports/web/app/src/tabbed-grid/tabbed-grid-tracking.service.ts","packages/sports/web/app/src/tabbed-grid/tabbed-grid-widget.component.html","packages/sports/web/app/src/tabbed-grid/tabbed-grid-widget.component.ts","packages/sports/web/app/src/tabbed-grid/widget-registration.service.ts","packages/sports/web/app/src/tabbed-grid/tabbed-grid.feature.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { GroupItemType } from '@cds/betting-offer';\nimport { WidgetContext } from '@frontend/sports/types/components/widget';\nimport { TabbedGridNavigationContext, TabbedGridPayload, WidgetNavigation } from '@frontend/sports/types/components/widget/types';\nimport { sum, toNumber } from 'lodash-es';\n\nimport { WidgetTabBarMapperService } from '../widget/common/widget-tab-bar-mapper-registry.service';\nimport { WidgetTabBarDisplay, WidgetTabBarItem } from '../widget/common/widget-tab-bar.component';\nimport { DisplayOptions } from './tabbed-grid.model';\n\nexport interface TabbedGridTabBarItem extends WidgetTabBarItem {\n group: {\n count?: number;\n type: GroupItemType;\n name?: string;\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TabbedGridNavigationService extends WidgetTabBarMapperService {\n getCount(navigation: WidgetNavigation[], navigationContext?: TabbedGridNavigationContext): number {\n return sum(navigation.map((n) => n.count ?? 0));\n }\n\n map(widgetId: string, navigation?: WidgetNavigation[], navigationContext?: TabbedGridNavigationContext): TabbedGridTabBarItem[] {\n if (!navigation?.length) {\n return [];\n }\n\n return navigation.map((item) => this.mapItem(item, widgetId, navigationContext));\n }\n\n get(widgetId: string, payload: TabbedGridPayload): TabbedGridTabBarItem[][] {\n const navigationContext: TabbedGridNavigationContext = {\n competition: payload.competitionNavigationDisplay,\n sport: payload.sportsNavigationDisplay,\n };\n\n const primary = this.map(widgetId, payload.navigation ?? [], navigationContext);\n const secondary = this.map(widgetId, payload.secondaryNavigation ?? [], navigationContext);\n\n primary.forEach((item) => this.mapActive(item, payload.primaryActiveNavigation, payload));\n secondary.forEach((item) => this.mapActive(item, payload.secondaryActiveNavigation, payload));\n\n if (primary.length && !primary.find((item) => item.active)) {\n primary[0].active = true;\n }\n\n if (secondary.length && !secondary.find((item) => item.active)) {\n secondary[0].active = true;\n }\n\n return [primary, secondary];\n }\n\n private getNavigationDsiplay(navigationContext?: TabbedGridNavigationContext): { [key: string]: string } | undefined {\n if (!navigationContext) {\n return;\n }\n\n return {\n [GroupItemType.Competition]: navigationContext.competition!,\n [GroupItemType.Sport]: navigationContext.sport!,\n };\n }\n\n private mapItem(item: WidgetNavigation, widgetId: string, navigationContext?: TabbedGridNavigationContext): TabbedGridTabBarItem {\n const { title, icon, display } = this.getView(item, this.getNavigationDsiplay(navigationContext));\n\n return {\n context: this.getContext(item),\n display,\n title,\n id: this.getId(widgetId, item),\n itemId: this.getIdentifier(item),\n widgetId,\n icon,\n group: {\n count: item.count,\n type: item.type,\n name: item.name,\n },\n sportId: item.sport?.id,\n };\n }\n\n private getIdentifier(item: WidgetNavigation): number | string {\n switch (item.type) {\n case GroupItemType.Competition:\n case GroupItemType.Sport:\n return toNumber(item.id);\n default:\n return item.id;\n }\n }\n\n private mapActive(item: TabbedGridTabBarItem, activeId: string | undefined, payload: TabbedGridPayload): void {\n const { competition, sport, stage } = payload.fixtures[0];\n const active = activeId ? item.itemId.toString() === activeId : undefined;\n\n // for match list module with grouping we get the active item per navigation on the payload\n // while for existing implementations, like the lobby live/lobby upcomming/sport lobby\n // we still have to decide the active item depending on the fixture information\n\n if (active !== undefined) {\n item.active = active;\n } else {\n switch (item.group.type) {\n case GroupItemType.Competition:\n item.active = competition.id === item.itemId || competition.parentLeagueId === item.itemId;\n break;\n case GroupItemType.FixtureState:\n item.active = stage === item.id;\n break;\n default:\n item.active = sport.id === item.itemId;\n break;\n }\n }\n }\n\n private getView(\n item: WidgetNavigation,\n navigationDisplay?: { [key: string]: string },\n ): { title?: string; icon: string; display: WidgetTabBarDisplay } {\n let display = WidgetTabBarDisplay.Default;\n let title: string | undefined = '';\n\n const config = navigationDisplay?.[item.type];\n let icon: string[] = [];\n\n switch (item.type) {\n case GroupItemType.Competition:\n icon.push(`country-icon`);\n icon.push(`c${item.region?.id}`);\n break;\n case GroupItemType.Sport:\n icon.push(`sports-${item.id}`);\n break;\n }\n\n if (config !== DisplayOptions.IconOnly) {\n title = item.name;\n }\n\n switch (config) {\n case DisplayOptions.NameWithLogo:\n display = WidgetTabBarDisplay.Logo;\n break;\n case DisplayOptions.IconOnly:\n display = WidgetTabBarDisplay.Icon;\n icon.push('icon-only');\n break;\n case DisplayOptions.NameWithIcon:\n case DisplayOptions.NameWithFlag:\n display = WidgetTabBarDisplay.Icon;\n break;\n case DisplayOptions.NameOnly:\n icon = [];\n break;\n default:\n icon.slice(0, icon.length);\n break;\n }\n\n return { title, icon: icon.join(' '), display };\n }\n\n private getContext(item: WidgetNavigation): Partial {\n switch (item.type) {\n case GroupItemType.Competition:\n return { competitionId: toNumber(item.id), sportId: item.sport?.id };\n case GroupItemType.FixtureState:\n return { fixtureState: item.id };\n case GroupItemType.Sport:\n return { sportId: toNumber(item.id) };\n default:\n return {};\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GroupItemType } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { ModularConfigAccessorService } from '../widget/core/modular-config-accessor.service';\nimport { TabbedGridTabBarItem } from './tabbed-grid-navigation.service';\nimport { TabbedChevronClickTrackingData } from './tabbed-grid.model';\n\n@Injectable()\nexport class TabbedGridTrackingService {\n private active?: TabbedGridTabBarItem;\n\n constructor(\n private trackingService: TrackingService,\n private accessorService: ModularConfigAccessorService,\n ) {}\n\n getTrackingValueForMatchList(item: TabbedGridTabBarItem): string {\n this.active = item;\n\n switch (item.group.type) {\n case GroupItemType.Sport:\n return `sport/${item.itemId}`;\n case GroupItemType.Competition:\n return `competition/${item.itemId}`;\n default:\n return `affiliation/${item.itemId}`;\n }\n }\n\n trackTabSelected(item: TabbedGridTabBarItem, index: number): void {\n this.active = item;\n\n const trackingObject: Record = {\n ...this.getPartialTrackingObject(),\n ...this.accessorService.getWidget()?.trackingData,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: item.title,\n [trackingConstants.COMPONENT_POSITION_EVENT]: item.group.type?.toString(),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.getTrackingLocationByType(),\n [trackingConstants.COMPONENT_CONTENT_POSITION]: index.toString(),\n };\n\n switch (item.group.type) {\n case GroupItemType.Sport:\n trackingObject[trackingConstants.SPORT_ID] = item.itemId.toString();\n break;\n case GroupItemType.Competition:\n trackingObject[trackingConstants.SPORT_LEAGUE_ID] = item.itemId.toString();\n break;\n default:\n trackingObject[trackingConstants.COMPONENT_POSITION_EVENT] = 'Affiliation';\n trackingObject[trackingConstants.COMPONENT_EVENT_DETAILS] = item.itemId.toString();\n break;\n }\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingObject);\n }\n\n trackLinkClick(details: TabbedChevronClickTrackingData): void {\n const trackingObject = {\n ...this.getPartialTrackingObject(),\n ...this.accessorService.getWidget()?.trackingData,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: details.eventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: details.urlClicked,\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.getTrackingLocationByType(),\n };\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingObject);\n }\n\n trackEventClick(event: EventModel, index: number): void {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n ...this.getPartialTrackingObject(),\n ...this.accessorService.getWidget()?.trackingData,\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: index.toString(),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.getTrackingLocationByType() ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'sport event',\n [trackingConstants.SPORT_EVENT_ID]: event.id,\n [trackingConstants.SPORT_ID]: event.sport.id.toString(),\n });\n }\n\n private getTrackingLocationByType(): string | undefined {\n if (this.active) {\n switch (this.active.group.type) {\n case GroupItemType.Sport:\n return this.getTrackingLocationEvent(this.active.group.type, this.active.itemId);\n case GroupItemType.Competition:\n return this.getTrackingLocationEvent(this.active.group.type, this.active.itemId);\n default:\n return this.getTrackingLocationEvent('Affiliation', this.active.itemId);\n }\n }\n\n return undefined;\n }\n\n private getTrackingLocationEvent(type: string, id: string | number): string {\n return [this.accessorService.getPage(), this.accessorService.getWidget()?.templateName, type, id]\n .filter((segment) => segment)\n .join('/')\n .toLowerCase();\n }\n\n private getPartialTrackingObject(): { [key: string]: string } {\n return {\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'sport events',\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: `${this.accessorService.getPage()?.toLowerCase()} grid widgets`,\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n };\n }\n}\n","\n@if (!hidden) {\n @if (!parent) {\n \n @if (headerChevronLink) {\n \n \n \n }\n \n }\n\n @if (showPrimaryNavigation) {\n @if (showPrimaryNavAsPill) {\n \n } @else {\n \n }\n }\n\n @if (secondaryNavigation?.length) {\n \n }\n\n @if (grid | async; as gridModel) {\n \n } @else {\n \n }\n\n @if (link && linkTitle) {\n
\n \n \n
\n }\n\n @if (hasMore) {\n \n }\n}\n\n\n \n {{ primaryActiveTab?.title }}\n\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport { ChangeDetectorRef, Component, HostBinding, OnDestroy } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Fixture, GroupItemType } from '@cds/betting-offer';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { CDNCachingConfig, GridConfig, MatchListConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, ItemType, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { interpolateDoubleBracesString, interpolateSingleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { GridGrouping } from '@frontend/sports/grid/core/feature/model';\nimport { ObservableGrid, ObservableGridFactory } from '@frontend/sports/grid/core/feature/observables';\nimport { IGridRootState } from '@frontend/sports/grid/core/feature/store';\nimport { CustomLoadingIndicatorService, ILoadingIndicatorHandler, LoadingIndicatorModule } from '@frontend/sports/loading-indicator-feature';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { TitleIconOptions } from '@frontend/sports/types/components/content';\nimport { WidgetContext, WidgetPage, WidgetType } from '@frontend/sports/types/components/widget';\nimport { TabbedGridLink, TabbedGridLinkTarget, TabbedGridPayload, TabbedGridType } from '@frontend/sports/types/components/widget/types';\nimport { PrimaryNavigationDisplayType } from '@frontend/sports/types/configuration';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { Store } from '@ngrx/store';\nimport { Observable, of } from 'rxjs';\nimport { distinctUntilChanged, filter, finalize, map } from 'rxjs/operators';\n\nimport { SportsCacheService } from '../client-caching/sports-cache.service';\nimport { ErrorComponent } from '../common/error/error.component';\nimport { ItemComponent } from '../common/item/item.component';\nimport { DropdownModule } from '../dropdown/dropdown.module';\nimport { CompetitionGridActions } from '../event-list-shared/sport/competitions/competition-grid.actions';\nimport { GridModule } from '../grid/grid.module';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { SignpostTypeService } from '../shared-priceboost/Services/signpost-type.service';\nimport { SignpostType } from '../shared-priceboost/signpost.model';\nimport { LinkConfig } from '../top-events/top-events.model';\nimport { WidgetCommonModule } from '../widget/common/widget-common.module';\nimport { WidgetContextService } from '../widget/common/widget-context.service';\nimport { WidgetNavigationService } from '../widget/common/widget-navigation.service';\nimport { WidgetPillComponent } from '../widget/common/widget-pill.component';\nimport { WidgetTabBarItem } from '../widget/common/widget-tab-bar.component';\nimport { ComposableParentPayload } from '../widget/composable/composable-widget.component';\nimport { ModularConfigAccessorService } from '../widget/core/modular-config-accessor.service';\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\nimport { TabbedGridNavigationService, TabbedGridTabBarItem } from './tabbed-grid-navigation.service';\nimport { TabbedGridTrackingService } from './tabbed-grid-tracking.service';\nimport { MatchListItem } from './tabbed-grid.model';\n\nconst token = 'TABBED_GRID';\n\n@Component({\n standalone: true,\n imports: [\n AsyncPipe,\n NgClass,\n WidgetCommonModule,\n LoadingIndicatorModule,\n CompetitionLogoComponent,\n GridModule,\n DropdownModule,\n ErrorComponent,\n ItemComponent,\n TrustPipe,\n WidgetPillComponent,\n IconCustomComponent,\n ],\n selector: 'ms-tabbed-grid-widget',\n templateUrl: './tabbed-grid-widget.component.html',\n providers: [TabbedGridTrackingService, SignpostTypeService],\n})\nexport class TabbedGridWidgetComponent extends WidgetComponent implements OnDestroy {\n @HostBinding('class') className = 'tabbed-grid-widget grid-wrapper';\n\n link?: string;\n linkCount?: number;\n linkTitle?: string;\n globalLink?: string;\n globalLinkTitle?: string;\n headerChevronLink: string | undefined;\n\n title: string;\n titleIcon: string;\n titleLogo: boolean;\n titleData: MatchListItem;\n\n tracking: string;\n hideMarketSwitcher = false;\n hideGridTitle = true;\n stretchTab = false;\n hasMore = false;\n moreLoading = false;\n\n primaryNavigation: TabbedGridTabBarItem[] = [];\n secondaryNavigation: TabbedGridTabBarItem[] = [];\n showFirstLevelNavigation: boolean;\n /**\n * Indicates if parent widget (e.g. composable widget) is displaying navigation of tabbed grid.\n * In such case tabbed grid navigation is hidden and only content is displayed.\n */\n parentIsHandlingNavigation = false;\n\n grid: ObservableGrid;\n groupTypeCompetition = GroupItemType.Competition;\n primaryActiveTab?: TabbedGridTabBarItem;\n isAllTabEnabled: boolean;\n gridHeaderOverride?: string;\n headerLinkConfig: LinkConfig;\n showPrimaryNavAsPill = false;\n\n private gridType: TabbedGridType;\n private linkConfig?: TabbedGridLink;\n private globalLinkConfig: TabbedGridLink;\n private activeNavigation?: TabbedGridTabBarItem;\n private readonly shouldIncludePayload = this.cdnCachingConfig.widgets.includes(WidgetType.TabbedGrid);\n\n constructor(\n public sitecore: Sitecore,\n private gridConfig: GridConfig,\n private urlHelper: UrlHelperService,\n private deviceService: DeviceService,\n private matchListConfig: MatchListConfig,\n private gridFactory: ObservableGridFactory,\n private contextService: WidgetContextService,\n private trackingService: TabbedGridTrackingService,\n private loadingIndicatorService: CustomLoadingIndicatorService,\n private accessorService: ModularConfigAccessorService,\n private navigationService: TabbedGridNavigationService,\n private sportCache: SportsCacheService,\n private changeRef: ChangeDetectorRef,\n private store: Store,\n private signpostTypeService: SignpostTypeService,\n private cdnCachingConfig: CDNCachingConfig,\n private widgetNavigationService: WidgetNavigationService,\n ) {\n super();\n this.showPrimaryNavAsPill = this.gridConfig.primaryNavigationType === PrimaryNavigationDisplayType.Pill;\n }\n\n ngOnDestroy(): void {\n this.grid?.destroy();\n }\n\n protected override onData(data: TabbedGridPayload, isWidgetRefresh: boolean): void {\n if (!data?.fixtures?.length) {\n this.getData(isWidgetRefresh).subscribe(this.mapData);\n } else {\n this.mapData(data);\n }\n }\n\n private mapData = (payload: TabbedGridPayload) => {\n if (!payload?.fixtures?.length) {\n this.hasData = false;\n this.setWidgetLoaded();\n this.logEmptyData();\n\n return;\n }\n\n this.title = this.interpolateTitle(payload.title ?? '', payload.fixtures[0]);\n this.linkConfig = payload.bottomLink;\n this.hideMarketSwitcher = payload.hideMarketSwitcher;\n this.titleIcon = payload.titleIcon;\n this.titleLogo = payload.titleIcon === TitleIconOptions.CompetitionLogo;\n this.globalLinkConfig = payload.globalLink;\n this.gridType = payload.gridType;\n this.signpostTypeService.signpostType = this.gridType === TabbedGridType.CompetitionGrid ? SignpostType.PriceBoost : SignpostType.None;\n\n this.hasMore = payload.enablePaging ? payload.fixtures.length < (payload.navigation?.[0].count ?? 0) : false;\n\n this.setTabs(payload);\n this.setGrid(payload);\n this.setLink(payload);\n this.setTracking(payload.fixtures);\n this.setHeaderChevronLink(payload.showChevron, payload.fixtures[0]);\n\n this.titleData = this.getDataForTitleIcon(payload.fixtures[0]);\n this.setMarketSwitcherVisibility();\n this.setGlobalLink(payload.fixtures[0]);\n this.deviceService.orientation\n .pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef))\n .subscribe((orientation) => this.setGridTitleVisibility(orientation));\n this.showFirstLevelNavigation = this.secondaryNavigation?.length ? this.primaryNavigation?.length > 0 : this.primaryNavigation?.length > 1;\n this.gridHeaderOverride = payload.gridHeaderOverride;\n };\n\n protected override onParentData(payload: ComposableParentPayload): void {\n this.parentIsHandlingNavigation = payload.mergeNavigation;\n this.isAllTabEnabled = payload.isAllTabEnabled;\n }\n\n get showPrimaryNavigation(): boolean {\n return this.showFirstLevelNavigation && !this.parentIsHandlingNavigation;\n }\n\n loadMore(): void {\n if (!this.hasMore || this.moreLoading) {\n return;\n }\n\n this.moreLoading = true;\n\n const currentCount = this.grid.getState().groups.reduce((total, group) => total + group.count, 0);\n\n this.contextService\n .getWidget({ ...this.getContext(), skip: currentCount })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(({ payload }) => {\n if (payload) {\n this.hasMore = currentCount + payload.fixtures.length < (payload.navigation?.[0].count ?? 0);\n\n const grid = this.grid.getState();\n this.store.dispatch(CompetitionGridActions.addEvents({ payload: { id: grid.id, fixtures: payload.fixtures } }));\n\n this.moreLoading = false;\n }\n });\n }\n\n override getContext(): Partial {\n const context = super.getContext();\n\n return !this.shouldIncludePayload ? context : { ...context, shouldIncludePayload: this.shouldIncludePayload };\n }\n\n private getData(isWidgetRefresh: boolean): Observable {\n return this.contextService.getWidget(this.getContext(), !isWidgetRefresh).pipe(\n filter(({ payload }) => payload !== undefined),\n map(({ payload }) => payload as TabbedGridPayload),\n takeUntilDestroyed(this.destroyRef),\n );\n }\n\n primaryNavigationSelected(tabEvent: WidgetTabBarItem): void {\n if (tabEvent) {\n this.primaryNavigation = this.primaryNavigation.map((item) => ({\n ...item,\n active: item.id === tabEvent.id,\n }));\n this.setGridAndLinks(true);\n }\n }\n\n secondaryNavigationSelected(): void {\n this.setGridAndLinks(false);\n }\n\n linkClick(isGlobalLink: boolean = false): void {\n this.trackingService.trackLinkClick({\n eventDetails: isGlobalLink ? 'global link' : 'show more',\n urlClicked: isGlobalLink ? this.globalLink : this.link,\n });\n }\n\n eventClicked({ event, index }: { event: EventModel; index: number }): void {\n this.trackingService.trackEventClick(event, index);\n }\n\n get showMoreMessage(): string {\n return this.moreLoading ? '' : this.sitecore.event.MoreEvents;\n }\n\n private setMarketSwitcherVisibility(): void {\n if (!this.deviceService.isMobile || (this.deviceService.isTablet && this.deviceService.currentOrientation === 'landscape')) {\n this.hideMarketSwitcher = false;\n } else if (this.secondaryNavigation.length) {\n this.hideMarketSwitcher = true;\n }\n }\n\n private setGrid({ fixtures, disabledFixtureSorting, gridType, showNonGridable }: TabbedGridPayload): void {\n const generateGrid = (moreGrouping?: boolean) => {\n this.grid?.destroy();\n\n if (!fixtures?.length) {\n return;\n }\n\n const primaryActive = this.getPrimaryActive();\n const secondaryActive = this.getSecondaryActive();\n this.primaryActiveTab = primaryActive;\n\n let id = primaryActive?.itemId ?? '';\n\n if (secondaryActive) {\n id += `/${secondaryActive.itemId}`;\n }\n\n this.grid = this.gridFactory.fromResponse(`${this.config.id}/${id}`, fixtures, {\n grouping: gridType === TabbedGridType.CompetitionGrid ? GridGrouping.Date : GridGrouping.None,\n disableGroupSorting: disabledFixtureSorting,\n moreGrouping,\n });\n\n this.hasData = true;\n this.setWidgetLoaded();\n\n if (this.config.refreshable) {\n return;\n }\n };\n\n if (showNonGridable) {\n this.hasNonGridable()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((hasNonGridable) => {\n generateGrid(hasNonGridable);\n });\n } else {\n generateGrid();\n }\n }\n\n private hasNonGridable(): Observable {\n const context = { ...this.contextService.getContext(), ...this.getWidgetContext() };\n\n if (!context.sportId) {\n return of(false);\n }\n\n return this.sportCache.getSport(context.sportId).pipe(\n map((sport) => {\n if (!sport) {\n return false;\n }\n\n const countItem = this.getCountItem(context, sport);\n\n return (countItem?.counts.nonGridable ?? 0) > 0;\n }),\n );\n }\n\n private getCountItem(context: Partial, sport: CountItem): CountItem | undefined {\n if (context.virtualCompetitionGroupId) {\n return children(sport, ItemType.VirtualCompetitionGroup).find((item) => item.id === context.virtualCompetitionGroupId);\n }\n\n if (context.competitionId) {\n return children(sport, ItemType.Competition).find((item) => item.id === context.competitionId);\n }\n\n if (context.virtualCompetitionId) {\n return children(sport, ItemType.Competition).find((item) => item.isVirtual && item.id === context.virtualCompetitionId);\n }\n\n if (context.tournamentId) {\n return children(sport, ItemType.Tournament).find((item) => item.id === context.tournamentId);\n }\n\n if (context.regionId) {\n return children(sport, ItemType.Region).find((item) => item.id === context.regionId);\n }\n\n return children(sport, ItemType.Sport).find((item) => item.id === context.sportId);\n }\n\n private setTabs(payload: TabbedGridPayload): void {\n const [firstLevel, secondLevel] = this.navigationService.get(this.config.id, payload);\n\n this.primaryNavigation = firstLevel;\n this.secondaryNavigation = secondLevel;\n\n this.stretchTab = this.primaryNavigation?.[0]?.group.type === GroupItemType.FixtureState;\n }\n\n private getDataForTitleIcon(fixture: Fixture): MatchListItem {\n switch (this.titleIcon) {\n case TitleIconOptions.SportIcon:\n return {\n id: fixture.sport.id.toString(),\n title: fixture.sport.name.value,\n icon: `sports-${fixture.sport.id}`,\n };\n case TitleIconOptions.CompetitionLogo:\n case TitleIconOptions.CompetitionFlag:\n return {\n id: fixture.competition.id.toString(),\n title: fixture.competition.name.value,\n icon: `country-icon c${fixture.region.id}`,\n sportId: fixture.sport.id,\n };\n default:\n return { id: '', title: '' };\n }\n }\n\n private getPrimaryActive(): TabbedGridTabBarItem | undefined {\n return this.primaryNavigation.find((item) => item.active);\n }\n\n private getSecondaryActive(): TabbedGridTabBarItem | undefined {\n return this.secondaryNavigation.find((item) => item.active);\n }\n\n private setGridAndLinks(isSwitchOnFirstLevelTab: boolean): void {\n let loadingIndicator: ILoadingIndicatorHandler | undefined;\n\n if (this.matchListConfig.showLoader) {\n loadingIndicator = this.loadingIndicatorService.start(token);\n }\n\n this.contextService\n .getWidget(this.getWidgetContext(isSwitchOnFirstLevelTab, true))\n .pipe(\n finalize(() => loadingIndicator?.done()),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ payload }) => {\n if (payload) {\n if (isSwitchOnFirstLevelTab) {\n const [, secondary] = this.navigationService.get(this.config.id, payload);\n this.secondaryNavigation = secondary;\n }\n this.setGrid(payload);\n this.setMarketSwitcherVisibility();\n this.linkConfig = payload.bottomLink;\n this.setLink(payload);\n this.setTracking(payload.fixtures);\n this.changeRef.markForCheck();\n }\n });\n }\n\n private getWidgetContext(primaryTabSwtich: boolean = false, tabSwitch: boolean = false): Partial {\n const primaryActive = this.getPrimaryActive();\n let secondaryActive;\n\n if (!primaryTabSwtich) {\n secondaryActive = this.getSecondaryActive();\n }\n\n let request = super.getContext();\n request = !this.shouldIncludePayload ? request : { ...request, shouldIncludePayload: this.shouldIncludePayload };\n\n if (primaryActive) {\n request = { ...request, ...primaryActive.context };\n }\n if (secondaryActive) {\n request = { ...request, ...secondaryActive.context };\n }\n\n if (tabSwitch) {\n if (secondaryActive) {\n const secondLevelTabIndex = this.secondaryNavigation.findIndex((tab) => tab.active);\n this.trackingService.trackTabSelected(secondaryActive, secondLevelTabIndex);\n } else if (primaryActive) {\n const firstLevelTabIndex = this.primaryNavigation.findIndex((tab) => tab.active);\n this.trackingService.trackTabSelected(primaryActive, firstLevelTabIndex);\n }\n }\n\n return request;\n }\n\n private setLink({ fixtures }: TabbedGridPayload): void {\n if (!this.linkConfig?.visible) {\n this.link = this.linkCount = this.linkTitle = undefined;\n\n return;\n }\n\n const primaryActive = this.getPrimaryActive();\n const secondaryActive = this.getSecondaryActive();\n\n if (!this.secondaryNavigation?.length) {\n this.activeNavigation = primaryActive;\n } else {\n this.activeNavigation = secondaryActive;\n\n if (this.activeNavigation?.group.type === GroupItemType.FixtureState) {\n this.activeNavigation = primaryActive;\n }\n }\n\n if (this.activeNavigation) {\n const param =\n this.activeNavigation.group.type === GroupItemType.FixtureState\n ? { id: this.activeNavigation.itemId, name: this.activeNavigation.itemId.toString() }\n : { id: this.activeNavigation.itemId, name: this.activeNavigation.group.name! };\n\n this.setLinkAndTitle(param, fixtures?.[0]);\n }\n }\n\n private setLinkAndTitle(param: UrlParam, firstFixture: Fixture | undefined): void {\n const navigationInfo = this.widgetNavigationService.getNavigationInfo(param, this.linkConfig, firstFixture);\n this.link = navigationInfo?.link;\n this.linkTitle = navigationInfo?.title;\n if (this.linkConfig?.target === TabbedGridLinkTarget.SportLive || this.linkConfig?.target === TabbedGridLinkTarget.SportLobby) {\n this.linkCount = this.activeNavigation?.group.count ?? 0;\n }\n }\n\n private setGlobalLink(firstFixture: Fixture): void {\n if (this.globalLinkConfig?.visible && firstFixture) {\n switch (this.globalLinkConfig.target) {\n case TabbedGridLinkTarget.SportLobby:\n const param = {\n id: firstFixture.sport.id,\n name: firstFixture.sport.name.value,\n };\n this.globalLink = this.urlHelper.getSportUrl(param);\n break;\n case TabbedGridLinkTarget.CompetitionLobby:\n this.globalLink = this.widgetNavigationService.getCompetitionData(firstFixture);\n break;\n default:\n this.globalLink = this.globalLinkConfig.linkOverride ? this.globalLinkConfig.linkOverride : undefined;\n }\n this.globalLinkTitle = interpolateSingleBracesString(\n this.globalLinkConfig.title,\n {\n sport: firstFixture.sport.name.value,\n competition: firstFixture.competition.name.value,\n },\n false,\n );\n } else {\n this.globalLink = undefined;\n this.globalLinkTitle = undefined;\n }\n\n this.headerLinkConfig = {\n link: this.globalLink,\n linkText: this.globalLinkTitle,\n };\n }\n\n private setTracking(fixtures: Fixture[] | undefined): void {\n const firstLevelNavItemActiveTab = this.primaryNavigation?.find((tab) => tab.active);\n const secondLevelNavItemActiveTab = this.secondaryNavigation?.find((tab) => tab.active);\n if (secondLevelNavItemActiveTab) {\n this.tracking = this.trackingService.getTrackingValueForMatchList(secondLevelNavItemActiveTab);\n\n return;\n }\n if (firstLevelNavItemActiveTab) {\n this.tracking = this.trackingService.getTrackingValueForMatchList(firstLevelNavItemActiveTab);\n\n return;\n }\n if (fixtures?.length) {\n this.tracking = `sport/${fixtures?.[0].sport.id}`;\n }\n }\n\n private setGridTitleVisibility(currentOrientation: string) {\n const activePage = this.accessorService.getPage();\n if (!activePage) {\n return;\n }\n const isMarketPillsEnabled =\n this.gridConfig.isMarketPillsEnabled &&\n this.deviceService.isMobilePhone &&\n currentOrientation !== 'landscape' &&\n !this.hideMarketSwitcher;\n\n const homeLobbyTitleVisibility = isMarketPillsEnabled || this.gridConfig.hideGridTitle;\n const nonMatchlistTitleVisibility = activePage === WidgetPage.HomeLobby ? homeLobbyTitleVisibility : false;\n const isInComposable = this.parent?.type === WidgetType.Composable;\n\n if (this.gridType === TabbedGridType.CompetitionGrid) {\n this.hideGridTitle = true;\n } else if (isInComposable && this.isAllTabEnabled) {\n this.hideGridTitle = false;\n } else {\n this.hideGridTitle = this.gridType === TabbedGridType.MatchListGrid || nonMatchlistTitleVisibility;\n }\n this.changeRef.markForCheck();\n }\n\n private interpolateTitle(title: string, firstFixture: Fixture | undefined): string {\n const competition = firstFixture?.virtualCompetition?.name?.value ?? firstFixture?.competition?.name?.value ?? '';\n\n return interpolateDoubleBracesString(title, { competition });\n }\n\n private setHeaderChevronLink(showChevron: boolean, firstFixture: Fixture): void {\n if (this.primaryNavigation.length && !this.secondaryNavigation.length) {\n const urlParam: UrlParam =\n this.primaryNavigation.length === 1\n ? {\n id: this.primaryNavigation?.[0].itemId,\n name: this.primaryNavigation?.[0].group.name!,\n }\n : {\n id: firstFixture.sport.id,\n name: firstFixture.sport.name.value,\n };\n const config: TabbedGridLink | undefined =\n this.primaryNavigation.length === 1 ? this.linkConfig : ({ target: TabbedGridLinkTarget.SportLobby } as TabbedGridLink);\n this.headerChevronLink = showChevron ? this.widgetNavigationService.getNavigationInfo(urlParam, config, firstFixture)?.link : undefined;\n }\n }\n\n headerNavigationHandler() {\n this.widgetNavigationService.headerNavigationHandler(this.headerChevronLink);\n this.trackingService.trackLinkClick({ eventDetails: `${this.title}-chevron icon`, urlClicked: this.headerChevronLink });\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 { WidgetTabBarMapperRegistryService } from '../widget/common/widget-tab-bar-mapper-registry.service';\nimport { WidgetRegistryService } from '../widget/core/widget-registry.service';\nimport { TabbedGridNavigationService } from './tabbed-grid-navigation.service';\nimport { TabbedGridWidgetComponent } from './tabbed-grid-widget.component';\n\n@Injectable()\nexport class WidgetRegistrationService implements OnFeatureInit {\n constructor(\n private registry: WidgetRegistryService,\n private navigationRegistry: WidgetTabBarMapperRegistryService,\n private navigationMapper: TabbedGridNavigationService,\n ) {}\n\n onFeatureInit(): void {\n this.registry.registerLazy(WidgetType.TabbedGrid, TabbedGridWidgetComponent);\n this.navigationRegistry.register(WidgetType.TabbedGrid, this.navigationMapper);\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistrationService } from './widget-registration.service';\n\nexport function provide() {\n return [runOnFeatureInit(WidgetRegistrationService)];\n}\n"],"names":["TabbedGridNavigationService","WidgetTabBarMapperService","getCount","navigation","navigationContext","sum","map","n","count","widgetId","length","item","mapItem","get","payload","competition","competitionNavigationDisplay","sport","sportsNavigationDisplay","primary","secondary","secondaryNavigation","forEach","mapActive","primaryActiveNavigation","secondaryActiveNavigation","find","active","getNavigationDsiplay","_a","title","icon","display","getView","context","getContext","id","getId","itemId","getIdentifier","group","type","name","sportId","toNumber","activeId","stage","fixtures","toString","undefined","parentLeagueId","navigationDisplay","WidgetTabBarDisplay","Default","config","push","region","Logo","Icon","slice","join","competitionId","fixtureState","oi","__ngFactoryType__","factory","ɵfac","providedIn","_TabbedGridNavigationService","TabbedGridTrackingService","constructor","trackingService","accessorService","getTrackingValueForMatchList","trackTabSelected","index","_b","trackingObject","__spreadProps","__spreadValues","getPartialTrackingObject","getWidget","trackingData","trackingConstants","COMPONENT_EVENT_DETAILS","COMPONENT_POSITION_EVENT","COMPONENT_LOCATION_EVENT","getTrackingLocationByType","COMPONENT_CONTENT_POSITION","SPORT_ID","SPORT_LEAGUE_ID","track","EVENT_TRACKING","trackLinkClick","details","eventDetails","COMPONENT_URL_CLICKED","urlClicked","NOT_APPLICABLE","trackEventClick","event","SPORT_EVENT_ID","getTrackingLocationEvent","getPage","templateName","filter","segment","toLowerCase","COMPONENT_LABEL_EVENT","COMPONENT_CATEGORY_EVENT","COMPONENT_ACTION_EVENT","ɵɵinject","TrackingService","ModularConfigAccessorService","O","_TabbedGridTrackingService","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","headerNavigationHandler","ɵɵtemplate","TabbedGridWidgetComponent_Conditional_1_Conditional_0_Conditional_1_Template","ɵɵproperty","ɵɵpureFunction1","_c0","headerChevronLink","titleIcon","headerLinkConfig","titleData","ɵɵadvance","ɵɵconditional","$event","_r3","primaryNavigationSelected","h","primaryNavigation","S","_r4","stretchTab","TabbedGridWidgetComponent_Conditional_1_Conditional_1_Conditional_0_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_1_Conditional_1_Template","showPrimaryNavAsPill","_r5","secondaryNavigationSelected","_r6","eventClicked","li","ctx","tracking","hideMarketSwitcher","hideGridTitle","primaryActiveTab","groupTypeCompetition","header_r7","gridHeaderOverride","sitecore","ErrNoEventsPerSport","_r8","linkClick","linkCount","link","ɵɵpipeBind2","linkTitle","ɵɵsanitizeHtml","_r9","loadMore","ɵɵtext","TabbedGridWidgetComponent_Conditional_1_Conditional_7_Conditional_3_Template","ɵɵclassProp","moreLoading","ɵɵtextInterpolate","showMoreMessage","TabbedGridWidgetComponent_Conditional_1_Conditional_0_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_1_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_2_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_3_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_5_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_6_Template","TabbedGridWidgetComponent_Conditional_1_Conditional_7_Template","parent","showPrimaryNavigation","tmp_5_0","ɵɵpipeBind1","grid","hasMore","token","TabbedGridWidgetComponent","WidgetComponent","gridConfig","urlHelper","deviceService","matchListConfig","gridFactory","contextService","loadingIndicatorService","navigationService","sportCache","changeRef","store","signpostTypeService","cdnCachingConfig","widgetNavigationService","className","parentIsHandlingNavigation","shouldIncludePayload","widgets","includes","mapData","_c","_d","_e","hasData","setWidgetLoaded","logEmptyData","interpolateTitle","linkConfig","bottomLink","titleLogo","globalLinkConfig","globalLink","gridType","signpostType","SignpostType","PriceBoost","None","enablePaging","setTabs","setGrid","setLink","setTracking","setHeaderChevronLink","showChevron","getDataForTitleIcon","setMarketSwitcherVisibility","setGlobalLink","orientation","pipe","distinctUntilChanged","takeUntilDestroyed","destroyRef","subscribe","setGridTitleVisibility","showFirstLevelNavigation","primaryNavigationType","ngOnDestroy","destroy","onData","data","isWidgetRefresh","getData","onParentData","mergeNavigation","isAllTabEnabled","currentCount","getState","groups","reduce","total","skip","dispatch","CompetitionGridActions","addEvents","tabEvent","setGridAndLinks","isGlobalLink","MoreEvents","isMobile","isTablet","currentOrientation","disabledFixtureSorting","showNonGridable","generateGrid","moreGrouping","primaryActive","getPrimaryActive","secondaryActive","getSecondaryActive","fromResponse","grouping","GridGrouping","Date","disableGroupSorting","refreshable","hasNonGridable","getWidgetContext","getSport","countItem","getCountItem","counts","nonGridable","of","virtualCompetitionGroupId","children","ItemType","VirtualCompetitionGroup","Competition","virtualCompetitionId","isVirtual","tournamentId","Tournament","regionId","Region","Sport","firstLevel","secondLevel","fixture","value","isSwitchOnFirstLevelTab","loadingIndicator","showLoader","start","finalize","done","markForCheck","primaryTabSwtich","tabSwitch","request","secondLevelTabIndex","findIndex","tab","firstLevelTabIndex","visible","activeNavigation","param","setLinkAndTitle","firstFixture","navigationInfo","getNavigationInfo","target","getSportUrl","getCompetitionData","linkOverride","globalLinkTitle","interpolateSingleBracesString","linkText","firstLevelNavItemActiveTab","secondLevelNavItemActiveTab","activePage","homeLobbyTitleVisibility","isMarketPillsEnabled","isMobilePhone","nonMatchlistTitleVisibility","isInComposable","virtualCompetition","interpolateDoubleBracesString","urlParam","ɵɵdirectiveInject","Sitecore","GridConfig","UrlHelperService","DeviceService","MatchListConfig","ObservableGridFactory","WidgetContextService","CustomLoadingIndicatorService","SportsCacheService","ChangeDetectorRef","Store","SignpostTypeService","CDNCachingConfig","WidgetNavigationService","selectors","hostVars","hostBindings","rf","ɵɵclassMap","gi","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","TabbedGridWidgetComponent_Conditional_1_Template","TabbedGridWidgetComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","hidden","AsyncPipe","NgClass","WidgetCommonModule","WidgetTabBarComponent","WidgetHeaderComponent","LoadingIndicatorModule","LoadingIndicatorComponent","CompetitionLogoComponent","GridModule","GridComponent","DropdownModule","ErrorComponent","ItemComponent","TrustPipe","WidgetPillComponent","IconCustomComponent","encapsulation","_TabbedGridWidgetComponent","WidgetRegistrationService","registry","navigationRegistry","navigationMapper","onFeatureInit","registerLazy","register","WidgetRegistryService","WidgetTabBarMapperRegistryService","_WidgetRegistrationService","provide","runOnFeatureInit"],"mappings":"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"}