{"version":3,"file":"main-THGFBIGO.js","sources":["packages/sports/libs/common/ui/sports-themed-pills/src/lib/sports-themed-pills.directive.ts","packages/sports/web/app/src/navigation/top-navigation/main-items.html","packages/sports/web/app/src/navigation/top-navigation/main-items.component.ts","packages/sports/web/app/src/navigation/navigation-items-mapper.ts","packages/sports/web/app/src/navigation/providers/base-navigation-items.provider.ts","packages/sports/web/app/src/navigation/providers/fixed-navigation-items.provider.ts","packages/sports/web/app/src/navigation/providers/last-selected-sport.provider.ts","packages/sports/web/app/src/navigation/providers/sport-navigation-items.provider.ts","packages/sports/web/app/src/navigation/providers/top-navigation-items.provider.ts","packages/sports/web/app/src/navigation/navigation.service.ts","packages/sports/web/app/src/navigation/top-navigation/navigation.html","packages/sports/web/app/src/navigation/top-navigation/navigation.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-page.model.ts","packages/sports/web/app/src/skeleton-ui/skeleton-marquee.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-marquee.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-betslip.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-betslip.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-events.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-events.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-minigames.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-minigames.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-topsports.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-topsports.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-grid.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-grid.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-main-desktop.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-main-desktop.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-main-mobile.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-main-mobile.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-sports-base.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-sports-base.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton-livepage.component.html","packages/sports/web/app/src/skeleton-ui/skeleton-livepage.component.ts","packages/sports/web/app/src/skeleton-ui/skeleton.module.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs-visibility.service.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs.service.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs.html","packages/sports/web/app/src/breadcrumbs/breadcrumbs.component.ts","packages/sports/web/app/src/sub-navigation/sub-navigation.service.ts","packages/sports/web/app/src/sub-navigation/sub-navigation.component.html","packages/sports/web/app/src/sub-navigation/sub-navigation.component.ts","packages/sports/web/app/src/bootstrap/sitemap-module-loader.service.ts","packages/sports/web/app/src/bootstrap/slot-layout.bootstrap.service.ts","packages/sports/web/app/src/skeleton-ui/skeleton.service.ts","packages/sports/web/app/src/betslip/betslip-digital-component-loader.service.ts","packages/sports/web/app/src/print/print.module.ts","packages/sports/web/app/src/ui-manager/ui-state-helper.ts","packages/sports/web/app/src/ui-manager/ui-manager.service.ts","packages/sports/web/app/src/ui-manager/ui-manager.state.ts","node_modules/ngx-scrollbar/fesm2022/ngx-scrollbar-smooth-scroll.mjs","node_modules/ngx-scrollbar/fesm2022/ngx-scrollbar.mjs","packages/sports/libs/tooltip-feature/src/lib/tooltip.service.ts","packages/sports/libs/tooltip-feature/src/lib/general-tooltip.component.ts","packages/sports/libs/tooltip-feature/src/lib/general-tooltip.html","packages/sports/libs/tooltip-feature/src/lib/inline-tooltip.component.ts","packages/sports/libs/tooltip-feature/src/lib/onboarding-tooltip.component.ts","packages/sports/libs/tooltip-feature/src/lib/onboarding-tooltip.component.html","packages/sports/libs/tooltip-feature/src/lib/tooltip.module.ts","packages/sports/web/app/src/layout/column.component.ts","packages/sports/web/app/src/ui-manager/ui-manager.component.ts","packages/sports/web/app/src/update-mobile-number/model/update-mobile-number.model.ts","packages/sports/web/app/src/update-mobile-number/pipes/format-phone-number.pipe.ts","packages/sports/web/app/src/update-mobile-number/update-mobile-number-tracking.service.ts","packages/sports/web/app/src/update-mobile-number/update-mobile-number.component.html","packages/sports/web/app/src/update-mobile-number/update-mobile-number.component.ts","packages/sports/web/app/src/update-mobile-number/update-mobile-number.service.ts","packages/sports/web/app/src/seo/content-box.html","packages/sports/web/app/src/seo/content-box.component.ts","packages/sports/web/app/src/main/main-column.component.ts","packages/sports/web/app/src/main/main-column.component.html","packages/sports/web/app/src/main/main.component.html","packages/sports/web/app/src/main/main.component.ts","packages/sports/web/app/src/router/pretty-url-language-switcher.provider.ts","packages/sports/common/betslip/modules/settings/digital-actions.ts","packages/sports/common/betslip/modules/result/actions.ts","packages/sports/common/betslip/modules/types/actions.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-banner.service.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-formatters.service.ts","packages/sports/web/app/src/horse-racing-shared/helpers.ts","packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-helper.service.ts","packages/vanilla/lib/features/player-attributes/src/player-attributes.service.ts","packages/vanilla/lib/features/player-attributes/src/player-attributes-dsl-values-provider.ts","packages/vanilla/lib/features/player-attributes/src/player-attributes.feature.ts","node_modules/@angular/cdk/fesm2022/observers/private.mjs","packages/sports/libs/user/feature/src/store/state.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-token-factory.service.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-token-loader.service.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-token-provider.service.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.factory.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-data.service.ts","packages/sports/web/app/src/marketsubtype-logo/marketsubtype-logo-display.strategy.ts","packages/sports/web/app/src/store-persist/state-storage.model.ts","packages/sports/web/app/src/store-persist/state-storage.module.ts","packages/sports/common/betslip/integration/betslip-digital-module-loader.service.ts","packages/sports/common/betslip/integration/external-affiliate.effects.ts","packages/design-system/ui/tooltip/src/tooltip.utils.ts","packages/design-system/ui/tooltip/src/tooltip.directives.ts","packages/design-system/ui/tooltip/src/tooltip.component.html","packages/design-system/ui/tooltip/src/tooltip.component.ts","packages/design-system/ui/tooltip/src/index.ts","packages/sports/common/betslip/modules/betting-preference/odd-changes-confirmation/odds-changes-confirmation-tracking.service.ts","packages/sports/common/betslip/modules/betting-preference/odd-changes-confirmation/odd-changes-confirmation.component.html","packages/sports/common/betslip/modules/betting-preference/odd-changes-confirmation/odd-changes-confirmation.component.ts","packages/sports/common/betslip/modules/betting-preference/odd-changes-confirmation/odd-changes-confirmation.service.ts","packages/sports/common/betslip/modules/quick-bet/quick-bet-actions.ts","packages/sports/common/betslip/integration/external-betslip-effects.ts","packages/sports/common/betslip/integration/betslip-digital-integration.module.ts","packages/sports/web/app/src/bootstrap/launch-darkly-flag-manager.service.ts","packages/sports/web/app/src/common/date-checker.service.ts","packages/sports/web/app/src/user/services/reality-check.service.ts","packages/sports/common/betslip/modules/reward-tokens/validators.ts","packages/sports/web/app/src/best-odds-guarantee/services/classic-best-odds-guaranteed.service.ts","packages/sports/web/app/src/best-odds-guarantee/services/fixture-best-odds-guaranteed-token-validator.service.ts","packages/sports/common/betslip/base/store/helpers.ts","packages/sports/web/app/src/betslip-base/models/odds-acceptance.enum.ts","packages/sports/libs/common/core/utils/performance/src/lib/performance.ts","packages/sports/web/app/src/video-stream/video-stream.models.ts","packages/vanilla/tracking-feature/src/tracking.client-config.ts","packages/vanilla/tracking-feature/src/tracking-value-getters.service.ts","packages/vanilla/tracking-feature/src/tracking.models.ts","packages/vanilla/tracking-feature/src/data-layer-tracking.service.ts","packages/vanilla/tracking-feature/src/page-view-data-provider.ts","packages/vanilla/tracking-feature/src/page-view-tracking.service.ts","packages/vanilla/tracking-feature/src/run-after-lcp.token.ts","packages/vanilla/tracking-feature/src/gtm.service.ts","packages/vanilla/tracking-feature/src/data-layer-proxy.service.ts","packages/vanilla/tracking-feature/src/partytown.service.ts","packages/vanilla/tracking-feature/src/tag-manager.service.ts","packages/vanilla/tracking-feature/src/utm-service.ts","packages/vanilla/tracking-feature/src/tracking-bootstrap.service.ts","packages/vanilla/tracking-feature/src/tracking.feature.ts","packages/vanilla/lib/shared/product-menu/src/product-menu.client-config.ts","packages/vanilla/lib/shared/product-menu/src/product-menu.service.ts","node_modules/@angular/platform-browser/fesm2022/animations/async.mjs","packages/loaders-lib/src/loader-styles.service.ts","packages/loaders-lib/src/module.service.ts","packages/loaders-lib/src/loaders.models.ts","packages/loaders-lib/src/loader.service.ts","packages/loaders-lib/src/loaders-bootstrap.service.ts","packages/loaders-lib/src/loaders-map.ts","packages/loaders-lib/src/loaders.feature.ts","packages/loaders-lib/routes/vanilla-lazy-routes.ts","packages/loaders-lib/routes/vanilla-secondary-routes.ts","packages/sports/libs/host-app/sports-product/feature/sports-product-service/src/sports-dynamic-injector.provider.ts","packages/sports/web/app/src/esports/esports-breadcrumbs.resolver.ts","packages/sports/libs/user/feature/src/services/user-service-watcher.service.ts","packages/sports/libs/user/feature/src/store/reducer.ts","packages/sports/libs/user/feature/src/store/user.provider.ts","packages/sports/libs/user/feature/src/services/user-account-id-cookie.service.ts","packages/sports/libs/common/core/feature/browser/src/lib/scrollbar-options.provider.ts","packages/sports/web/app/src/router/not-authenticated-guard.service.ts","packages/sports/web/app/src/esports-web-internal.routes.ts","packages/sports/web/app/src/main/gtm.service.ts","packages/sports/web/app/src/calendar/calendar-breadcrumbs.resolver.ts","packages/sports/web/app/src/event-list-shared/sport/overview/sport-list-overview.resolver.ts","packages/sports/web/app/src/event-list-shared/sport/sport-redirect.guard.ts","packages/sports/web/app/src/event-list-shared/sport/sport-sub-navigation.resolve.ts","packages/sports/web/app/src/event-list-shared/sport/standings-page.resolver.ts","packages/sports/web/app/src/home/home-breadcrumbs.resolver.ts","packages/sports/web/app/src/multi-sports/multi-sports-breadcrumbs.resolver.ts","packages/sports/web/app/src/my-bets/my-bets-pre-resolver.service.ts","packages/sports/web/app/src/router/multi-sports-hub.guard.ts","packages/sports/web/app/src/router/outside-sports.guard.ts","packages/sports/web/app/src/sports-web-internal.routes.ts","packages/sports/web/app/src/app-routing.module.ts","packages/sports/environments/environment.prod.ts","packages/sports/web/app/src/banner/banner-widget.loader.ts","packages/sports/web/app/src/bet-column/bet-column.loader.ts","packages/sports/web/app/src/bet-generator-shared/bet-generator.loader.ts","packages/sports/web/app/src/calendar/time-filters-widget.loader.ts","packages/sports/web/app/src/competition-list/top-items.loader.ts","packages/sports/web/app/src/crm-promotion-widget/crm-promotion-widget.loader.ts","packages/sports/web/app/src/event-list-shared/sport/standings-widget.loader.ts","packages/sports/web/app/src/favourites-widget/favourites-widget.loader.ts","packages/sports/web/app/src/geo-location/geo-location.loader.ts","packages/sports/web/app/src/hidden-market/hidden-market.loader.ts","packages/sports/web/app/src/lazy-features/lazy-styles.config.ts","packages/sports/web/app/src/highlights-marquee/highlights-marquee.loader.ts","packages/sports/web/app/src/main/main.loader.ts","packages/sports/web/app/src/media/media.loader.ts","packages/sports/web/app/src/minigames/minigames.loader.ts","packages/sports/web/app/src/next-to-go/next-to-go.loader.ts","packages/sports/web/app/src/outrights-grid/outrights-grid.loader.ts","packages/sports/web/app/src/panic-button/panic-button.loader.ts","packages/sports/web/app/src/popular-bets/popular-multi-bets-widget/popular-multi-bets.loader.ts","packages/sports/web/app/src/priceboost/price-boost.loader.ts","packages/sports/web/app/src/quick-links/quicklink.loader.ts","packages/sports/web/app/src/scoreboard-carousel/scoreboard-carousel.loader.ts","packages/sports/web/app/src/showcase/showcase.loader.ts","packages/sports/web/app/src/sport-tree/sport-tree.loader.ts","packages/sports/web/app/src/story-content/story-content.loader.ts","packages/sports/web/app/src/tabbed-grid/tabbed-grid.loader.ts","packages/sports/web/app/src/teaser/teaser.loader.ts","packages/sports/web/app/src/top-events/top-events.loader.ts","packages/sports/web/app/src/widget/composable/widget-composable.loader.ts","packages/sports/web/app/src/lazy-features/lazy-features.provider.ts","packages/sports/web/app/src/host-app/sports-web-integration.provider.ts","packages/sports/libs/tracking/feature/network-profiler/src/network-performance-page-view-data-provider.ts","packages/sports/libs/tracking/feature/network-profiler/src/tracking.provider.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-refresh-trigger.service.ts","packages/sports/web/app/src/best-odds-guarantee/services/global-best-odds-guarantee-availability.service.ts","packages/sports/web/app/src/best-odds-guarantee/services/bog-token-provider.service.ts","packages/sports/web/app/src/best-odds-guarantee/services/token-based-best-odds-guaranteed.service.ts","packages/sports/web/app/src/best-odds-guarantee/services/best-odds-guaranteed-factory.service.ts","packages/sports/web/app/src/best-odds-guarantee/best-odds.provider.ts","packages/sports/web/app/src/bootstrap/run-on-sports-web.provider.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs-bootstrap.ts","packages/sports/web/app/src/dont-accept-stake-option-settings/modal-pop-up-info.component.ts","packages/sports/web/app/src/dont-accept-stake-option-settings/modal-pop-up-info.component.html","packages/sports/web/app/src/dont-accept-stake-option-settings/odd-accept-mode-filter.service.ts","packages/sports/web/app/src/native-alerts/native-event-subscription.service.ts","packages/sports/web/app/src/schema-markup/schema-markup.bootstrap.service.ts","packages/sports/web/app/src/settings/settings.service.ts","packages/sports/web/app/src/sub-navigation/sub-navigation.bootstrap.ts","packages/sports/web/app/src/reward-tokens/reward-tokens-container.component.html","packages/sports/web/app/src/reward-tokens/reward-tokens-container.component.ts","packages/sports/web/app/src/reward-tokens/widget-registration.service.ts","packages/sports/web/app/src/bootstrap/animation-disable.service.ts","packages/sports/web/app/src/bootstrap/background-worker-manager.service.ts","packages/sports/web/app/src/bootstrap/bottom-nav-bootstrap.service.ts","packages/sports/web/app/src/critical-error/critical-error.service.ts","packages/sports/web/app/src/bootstrap/critical-error-bootstrap.service.ts","packages/sports/web/app/src/betfinder/betfinder-component-loader.service.ts","packages/sports/web/app/src/bootstrap/initialize-popup.service.ts","packages/sports/web/app/src/intro/info-pages.service.ts","packages/sports/web/app/src/intro/intro-pages.service.ts","packages/sports/web/app/src/bootstrap/intro-pages-bootstrap.ts","packages/sports/web/app/src/bottom-nav/betslip-bar-container.component.ts","packages/sports/web/app/src/breadcrumbs/breadcrumb-layout.provider.ts","packages/sports/web/app/src/critical-error/critical-error.html","packages/sports/web/app/src/critical-error/critical-error.component.ts","packages/sports/web/app/src/layout/device-layout.provider.ts","packages/sports/web/app/src/layout/right-column-layout.provider.ts","packages/sports/web/app/src/layout/route-layout.provider.ts","packages/sports/web/app/src/sports-product-menu/sports-product-menu.enum.ts","packages/sports/web/app/src/sub-navigation/sub-navigation-layout.provider.ts","packages/sports/web/app/src/bootstrap/sports-product-menu-loader.service.ts","packages/sports/web/app/src/bootstrap/layout-bootstrap.service.ts","packages/sports/web/app/src/bootstrap/lazy-sports-config-loader.service.ts","packages/sports/web/app/src/bootstrap/orientation-change.service.ts","packages/sports/web/libs/core/feature/mobile-helper/src/lib/mobile-helper.service.ts","packages/sports/web/app/src/bootstrap/set-feature-styles.service.ts","packages/sports/web/app/src/bootstrap/toggle-bottom-nav.service.ts","packages/sports/web/app/src/bootstrap/sports-web-bootstrap.service.ts","packages/sports/web/app/src/bootstrap/sports-web-bootstrap.provider.ts","packages/sports/web/app/src/data-refresh/route-refresh.service.ts","packages/sports/web/app/src/data-refresh/data-refresh.provider.ts","packages/sports/web/app/src/esports/esports-live-button.service.ts","packages/sports/web/app/src/esports/esports-refresh-trigger.ts","packages/sports/web/app/src/esports/esports-refresh-registration.service.ts","packages/sports/web/app/src/esports/esports.provider.ts","packages/sports/web/app/src/event-bridge/web-bridge.service.ts","packages/sports/web/app/src/event-bridge/event-bridge.provider.ts","packages/sports/web/app/src/event-list-shared/sport/overview/sport-live-button.service.ts","packages/sports/web/app/src/event-list-shared/sport/overview/sport-navigation-highlight.service.ts","packages/sports/web/app/src/event-list-shared/sport/widget-registration.service.ts","packages/sports/web/app/src/event-list-shared/event-list-providers.ts","packages/sports/web/app/src/highlights-marquee/marquee-widget-skeleton.component.ts","packages/sports/web/app/src/highlights-marquee/marquee-widget-skeleton.provider.ts","packages/sports/web/app/src/home/home-navigation-highlight.service.ts","packages/sports/web/app/src/home/home-refresh-trigger.ts","packages/sports/web/app/src/home/widget-registration.service.ts","packages/sports/web/app/src/home/home.provider.ts","packages/sports/web/app/src/http-interceptors/api-versioning-interceptor.ts","packages/sports/web/app/src/http-interceptors/connection-lost.interceptor.ts","packages/sports/web/app/src/http-interceptors/duplicate-betplacement.interceptor.ts","packages/sports/web/app/src/http-interceptors/session-expiration.interceptor.ts","packages/sports/web/app/src/http-interceptors/sports-http-interceptors.provider.ts","packages/sports/web/app/src/layout/layout-refresh.provider.ts","packages/sports/web/app/src/layout/layout.provider.ts","packages/sports/web/app/src/layout/patched-media-observer.ts","packages/sports/web/app/src/marketsubtype-logo/marketsubtype-logo-hide.provider.ts","packages/sports/web/app/src/media/media-state-storage.ts","packages/sports/web/app/src/media/media.epic.ts","packages/sports/web/app/src/media/unpin-info.service.ts","packages/sports/web/app/src/media/media.reducer.ts","packages/sports/web/app/src/media/media.provider.ts","packages/sports/web/app/src/native-api/native-api.provider.ts","packages/sports/web/app/src/ngrx-reports/effects/ngrx-reports.effect.ts","packages/sports/web/app/src/ngrx-reports/ngrx-reports.provider.ts","packages/sports/web/app/src/numpad/store/numpad.state.ts","packages/sports/web/app/src/numpad/store/reducer.ts","packages/sports/web/app/src/numpad/numpad.provider.ts","packages/sports/web/app/src/perf-cdk/run-after-lcp.provider.ts","packages/sports/web/app/src/router/pretty-url-page-view-data.provider.ts","packages/sports/web/app/src/router/pretty-url-route-processor.service.ts","packages/sports/web/app/src/router/root-injector.service.ts","packages/sports/web/app/src/store-persist/store-persist-actions.ts","packages/sports/web/app/src/store-persist/store-persist.effects.ts","packages/sports/web/app/src/store-persist/state-storage-root.provider.ts","packages/sports/web/app/src/ui-manager/ui-state-storage.ts","packages/sports/web/app/src/ui-manager/ui-manager.epic.ts","packages/sports/web/app/src/ui-manager/ui-manager.reducer.ts","packages/sports/web/app/src/ui-manager/ui-manager.provider.ts","packages/sports/web/app/src/provide.ts","packages/sports/web/app/src/app.module.ts","packages/sports/web/app/src/view-transition/view-transition.constants.ts","packages/sports/web/app/src/view-transition/browser-back-detection/strategies/navigation-api-back-detection.strategy.ts","packages/sports/web/app/src/view-transition/browser-back-detection/browser-back-detection.service.ts","packages/sports/web/app/src/view-transition/native-transition-detection/strategies/history-api-native-transition-detection.strategy.ts","packages/sports/web/app/src/view-transition/native-transition-detection/strategies/navigation-api-native-transition-detection.strategy.ts","packages/sports/web/app/src/view-transition/native-transition-detection/native-transition-detection.service.ts","packages/sports/web/app/src/view-transition/view-transition-navigation.helper.ts","packages/sports/web/app/src/view-transition/view-transition.ts","packages/sports/web/app/src/sports-router.ts","packages/sports/web/app/src/main.ts"],"sourcesContent":["import { Directive, Input, OnInit, inject } from '@angular/core';\n\nimport { ThemeInverse, injectCurrentTheme } from '@frontend/sports/common/ui/shared';\nimport { DsPill } from '@frontend/ui/pill';\n\nimport { PillSize, PillVariant } from './types';\n\n@Directive({\n selector: '[msThemedPills]',\n standalone: true,\n})\nexport class SportsThemedPillsDirective implements OnInit {\n @Input() themedPillSize?: PillSize;\n @Input() themedPillVariant?: PillVariant;\n @Input() themedInverse?: ThemeInverse;\n currentTheme = injectCurrentTheme();\n pill: DsPill = inject(DsPill, {\n self: true,\n });\n\n ngOnInit(): void {\n const variant = this.themedPillVariant?.[this.currentTheme];\n if (variant) {\n this.pill.variant = variant;\n }\n\n const size = this.themedPillSize?.[this.currentTheme];\n if (size) {\n this.pill.size = size;\n }\n\n const inverse = this.themedInverse?.[this.currentTheme];\n if (inverse) {\n this.pill.inverse = inverse.isInverse;\n }\n }\n}\n","@if (isEpcotEnabled) {\n \n
\n
\n @for (item of filteredItems; track item.name) {\n
\n \n @if (item.class) {\n \n }\n\n {{ item.text }}\n \n \n\n @if (item.parameters.tooltip === 'true') {\n @if (item.toolTip) {\n \n }\n }\n
\n }\n
\n
\n
\n} @else {\n
\n @for (item of filteredItems; track item.name) {\n \n }\n
\n}\n","import { Component, ElementRef, Input, NgZone, OnChanges, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ScrollingSizeConfig, TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ResizeObserverService } from '@frontend/sports/common/core/utils/dom';\nimport { SportsTheme, ThemeInverse } from '@frontend/sports/common/ui/shared';\nimport { MenuAction, MenuActionsService, MenuDisplayMode, MenuItemsService } from '@frontend/vanilla/core';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { cloneDeep, sumBy } from 'lodash-es';\nimport { distinctUntilChanged, map, take } from 'rxjs';\n\nimport { CharsetSizeService } from '../../common/charset-size.service';\nimport { EventBridgeService } from '../../event-bridge/event-bridge.service';\nimport { AdaptiveLayoutService } from '../../layout/adaptive-layout.service';\nimport { PopupManager, PopupTypes } from '../../popup/popup-manager.service';\nimport { NavigationRouterService } from '../navigation-router.service';\nimport { TrackNavArea } from '../navigation-tracking.model';\nimport { SizedNavigationItem, TopMenuContentItem } from '../navigation.models';\n\nenum PopupType {\n Sports = 'sports',\n ProductMenu = 'product-menu',\n}\n\n@Component({\n selector: 'ms-main-items',\n templateUrl: 'main-items.html',\n standalone: false,\n})\nexport class MainItemsComponent implements OnChanges {\n @Input() items: TopMenuContentItem[];\n @Input() compactItems: boolean;\n @Input() isEpcotEnabled: boolean;\n\n tracking = TrackNavArea;\n scrollSize: number;\n filteredItems: TopMenuContentItem[];\n liveCount = '0';\n scrolled = signal(false);\n inverseThemes: SportsTheme[] = ['mgm-4'];\n themeInverseIndicator: ThemeInverse;\n\n private menuWidth: number;\n private menuMargin = 24;\n private itemSeparator = 24;\n private itemIcon = 21;\n private itemMargin = 24;\n private itemCompact = 65;\n private isV2Navigation: boolean;\n\n private ngZone = inject(NgZone);\n\n private get sportsPopupOpen(): boolean {\n return this.popupManager.isPopupOpen(PopupType.Sports);\n }\n\n constructor(\n private layoutService: AdaptiveLayoutService,\n private navigationRouter: NavigationRouterService,\n private scrollingConfig: ScrollingSizeConfig,\n private popupManager: PopupManager,\n private eventBridgeService: EventBridgeService,\n private menuActionService: MenuActionsService,\n private resizeObserver: ResizeObserverService,\n private elementRef: ElementRef,\n private charsetService: CharsetSizeService,\n public navigationConfig: TopNavigationConfig,\n private menuItemService: MenuItemsService,\n private strategy: RxStrategyProvider,\n ) {\n this.isV2Navigation = !!this.navigationConfig.topNavigationItems?.length;\n this.scrollSize = this.scrollingConfig.topNavScrollSize || 200;\n this.resizeObserver\n .observe(this.elementRef)\n .pipe(\n map((change) => change.contentRect.width),\n distinctUntilChanged(),\n takeUntilDestroyed(),\n )\n .subscribe((width) => {\n this.menuWidth = width;\n this.fit();\n });\n\n this.themeInverseIndicator = {\n 'mgm-4': { isInverse: true },\n };\n }\n\n ngOnChanges(): void {\n this.fit();\n }\n\n itemClick(event: Event, item: TopMenuContentItem): void {\n if (item.popup && this.isActive(this.tracking.NavTop, item.name)) {\n this.popupManager.close();\n\n return;\n }\n\n if (item.popup) {\n event.preventDefault();\n this.strategy\n .schedule(\n () => {\n switch (item.popup) {\n case PopupType.Sports:\n this.openSportsPopup(item);\n break;\n case PopupType.ProductMenu:\n this.menuActionService.invoke(MenuAction.TOGGLE_PRODUCT_MENU, '', [\n undefined,\n undefined,\n { 'animate-from': 'bottom' },\n ]);\n break;\n default:\n this.popupManager.open(item.popup);\n }\n },\n { scope: this, patchZone: this.ngZone },\n )\n .pipe(take(1))\n .subscribe();\n }\n\n this.eventBridgeService.navigationClick(TrackNavArea.NavTop, item.ccbKey);\n }\n\n private openSportsPopup(item: TopMenuContentItem): void {\n if (this.sportsPopupMode) {\n this.popupManager.open(item.popup);\n this.navigationRouter.setNavigation(item.name);\n } else {\n this.switchPopup();\n }\n }\n\n isActive(selection: string, itemName: string): boolean {\n return this.menuItemService.isActive(selection, itemName);\n }\n\n onScrolled(): void {\n this.scrolled.set(true);\n }\n\n get sportsPopupMode(): boolean {\n return this.layoutService.current.showDesktopAZSports;\n }\n\n private fit(): void {\n if (!this.items) {\n return;\n }\n\n this.trySwitchPopup();\n\n this.filteredItems = cloneDeep(this.items);\n\n if (this.sportsPopupMode && this.menuWidth) {\n const sizes = this.filteredItems.map((item) => ({ item, width: this.getItemWidth(item) }));\n let sports = sizes.filter((current) => current.item.isSport && current.item.name !== this.navigationRouter.activeNavigation);\n const total = this.menuMargin + sumBy(sizes, (s) => s.width);\n\n if (this.isV2Navigation) {\n sports = sizes.filter((current) => !current.item.isFixed);\n }\n\n this.filterNavigation(sports, total);\n }\n\n this.scrolled.set(false);\n }\n\n private filterNavigation(navItems: SizedNavigationItem[], total: number): void {\n while (total > this.menuWidth && navItems.length) {\n const lastItem = navItems.pop();\n\n if (lastItem) {\n total -= lastItem.width;\n this.filteredItems.splice(this.filteredItems.indexOf(lastItem.item), 1);\n }\n }\n }\n\n private trySwitchPopup(): void {\n if (!this.sportsPopupMode && this.sportsPopupOpen) {\n this.switchPopup();\n }\n }\n\n private switchPopup(): void {\n this.menuActionService.invoke(MenuAction.TOGGLE_PRODUCT_MENU, '');\n this.popupManager.closeAll();\n }\n\n private getItemWidth(item: TopMenuContentItem): number {\n if (this.compactItems) {\n return this.itemCompact;\n }\n\n return (\n this.itemIcon +\n this.itemMargin +\n this.charsetService.getAverageSize() * item.text.length +\n (item.class?.includes('separator') ? this.itemSeparator : 0)\n );\n }\n\n protected readonly MenuDisplayMode = MenuDisplayMode;\n}\n","import { Injectable } from '@angular/core';\n\nimport { LiveSectionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { trackingConstants } from '@frontend/sports/tracking/feature';\nimport { NavigationBarItem } from '@frontend/sports/types/models/navigation-bar';\nimport { MenuItemsService } from '@frontend/vanilla/core';\n\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { LiveUrlParam, UrlHelperService } from '../navigation-core/url-helper.service';\nimport { TrackNavArea } from './navigation-tracking.model';\nimport { TopMenuContentItem } from './navigation.models';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface LiveSportListModel extends BaseLiveSportsModel {}\n\nexport interface BaseLiveSportsModel {\n sports: CountItem[];\n tab: LiveUrlParam;\n videoEventCount: number;\n}\n\nexport interface NavigationMappingOptions {\n keepLiveItem?: boolean;\n isFixedItem?: boolean;\n}\n\nexport interface NavigationSportItem {\n id: number;\n name: string;\n separator?: boolean;\n isVirtual?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationItemsMapper {\n private topNavItemsToHideInMobile: string[] = ['all', 'mybets'];\n liveCounts = 0;\n constructor(\n private layoutService: AdaptiveLayoutService,\n private urlHelper: UrlHelperService,\n private liveConfig: LiveSectionConfig,\n private menuService: MenuItemsService,\n ) {}\n\n mapItems(items: NavigationBarItem[], sportsCountText: string, options?: NavigationMappingOptions): TopMenuContentItem[] {\n return items\n .filter((item) => item?.link)\n .filter((item) => !this.layoutService.current.bottomNavigation || !this.topNavItemsToHideInMobile.some((s) => s === item.activeName))\n .map((item) => {\n const pageNameFromUrl = this.urlHelper.getLastSegment(item.link ?? '');\n const pageName = item.trackingPagename || pageNameFromUrl;\n const badgeTextlength = sportsCountText.length;\n const className = this.getClassName(badgeTextlength);\n const topMenuItem = {\n name: item.activeName || pageNameFromUrl,\n text: item.title,\n url: item.isPopup ? '' : this.urlHelper.getUrl(item.link),\n popup: item.isPopup ? item.link : '',\n class: `${item.icon}`,\n isSpecial: item.isSpecial,\n trackEvent: this.getTrackingData(pageName),\n parameters: this.getTooltipParams(item),\n isSport: item.isSport,\n resources: {},\n ccbKey: item.ccbKey,\n isFixed: options?.isFixedItem,\n hasSeparator: item.icon ? item.icon.indexOf('before-separator') >= 0 : false,\n };\n\n if (item.iconSrc) {\n topMenuItem.image = {\n src: item.iconSrc,\n };\n }\n if (item.showBadge && item.activeName !== 'live') {\n this.setBadge(item.activeName || pageNameFromUrl, item.badgeText, 'topnav-new-badge');\n }\n if (this.liveConfig.showLiveBadgeCount.includes('BOTTOM') && sportsCountText) {\n this.setBadgeBottom('live', sportsCountText, 'live-counts-refresh bottomnav-new-badge-live-count ' + className);\n }\n if (this.liveConfig.showLiveBadgeCount.includes('TOP') && sportsCountText && item.activeName === 'live') {\n this.setBadge(\n item.activeName || pageNameFromUrl,\n sportsCountText,\n 'live-counts-refresh topnav-new-badge-live-count ' + className,\n );\n }\n\n return topMenuItem;\n });\n }\n\n buildSportMenuItem(sport: NavigationSportItem): TopMenuContentItem {\n const sportId = sport.id.toString();\n const hasSeparator = sport.separator;\n\n return {\n name: sportId,\n text: sport.name,\n url: sport?.isVirtual ? this.urlHelper.getVirtualSportUrl(sport) : this.urlHelper.getSportUrl(sport),\n class: `sports-${sportId}`,\n trackEvent: this.getTrackingData(sportId),\n parameters: {},\n resources: {},\n isSport: true,\n hasSeparator,\n };\n }\n\n getTrackingData(pageName: string): { eventName: string; data: any } {\n return {\n eventName: trackingConstants.EVENT_NAVIGATION_MENUS,\n data: { [trackingConstants.PAGE_NAVIGATION_MENUS]: this.getTrackingValue(pageName, TrackNavArea.NavTop) },\n };\n }\n\n private getTrackingValue(trackingPagename: string, preFix?: string): string {\n return preFix ? `${preFix.toString()}_${trackingPagename}` : trackingPagename;\n }\n\n private getTooltipParams(item: NavigationBarItem): { [key: string]: string } {\n if (item.tooltip && item.tooltipClass) {\n return {\n 'tooltip': item.tooltip,\n 'tooltip-class': item.tooltipClass,\n };\n }\n\n return {};\n }\n\n private setBadge(itemName: string, badgeText: string | undefined, cssClass?: string): void {\n this.menuService.setCounter(TrackNavArea.NavTop, itemName, badgeText, cssClass);\n }\n\n private setBadgeBottom(itemName: string, badgeText: string | undefined, cssClass?: string): void {\n this.menuService.setCounter(TrackNavArea.NavBottom, itemName, badgeText, cssClass);\n }\n\n private getClassName(count: number): string {\n switch (count) {\n case 2:\n return 'livebadge-fontsize-sm';\n case 1:\n return 'livebadge-fontsize-md';\n case 0:\n return 'livebadge-fontsize-lg';\n default:\n return 'livebadge-fontsize-default';\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Observable, map, startWith } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BaseNavigationItemsProvider {\n readonly hasLiveItems$: Observable;\n\n constructor(protected sportsCache: SportsCacheService) {\n this.hasLiveItems$ = this.sportsCache.getSportList().pipe(\n map((items: CountItem[]) => {\n return items.some((item) => item.counts.live);\n }),\n startWith(false),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore, TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DslService } from '@frontend/vanilla/core';\nimport { Observable, combineLatest, defer, map, of, startWith, switchMap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { NavigationItemsMapper } from '../navigation-items-mapper';\nimport { TopMenuContentItem } from '../navigation.models';\nimport { BaseNavigationItemsProvider } from './base-navigation-items.provider';\n\n@Injectable({ providedIn: 'root' })\nexport class FixedNavigationItemsProvider extends BaseNavigationItemsProvider {\n readonly navigationItems$: Observable;\n\n constructor(\n private navigationConfig: TopNavigationConfig,\n private dslService: DslService,\n protected mapper: NavigationItemsMapper,\n protected override sportsCache: SportsCacheService,\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {\n super(sportsCache);\n\n const evaluatedItems$ = defer(() =>\n of(this.navigationConfig.topNavigationItems?.length ? this.navigationConfig.fixedItems : this.navigationConfig.afterSports),\n ).pipe(switchMap((data) => this.dslService.evaluateContent(data)));\n\n this.navigationItems$ = combineLatest([evaluatedItems$, this.hasLiveItems$]).pipe(\n map(([items, hasLive]) => {\n const options = {\n hasLive,\n isFixedItem: true,\n };\n\n return this.mapper.mapItems(items, '', options);\n }),\n startWith([]),\n );\n }\n\n public getDefaultItems(): TopMenuContentItem[] {\n return [\n {\n name: 'betfinder',\n text: this.sitecore.globalMessages.Search,\n url: '',\n class: 'theme-search before-separator',\n trackEvent: this.mapper.getTrackingData('Search'),\n parameters: {},\n resources: {},\n popup: 'betfinder',\n },\n {\n name: 'favourites',\n text: this.sitecore.globalMessages.Favourites,\n url: this.urlHelper.getFavouriteUrl(),\n class: 'sports-favourites',\n trackEvent: this.mapper.getTrackingData('Favourites'),\n parameters: {},\n resources: {},\n },\n {\n name: 'mybets',\n text: this.sitecore.globalMessages.MyBetsTitle,\n url: this.urlHelper.getMyBetsUrl(),\n class: 'theme-mybets',\n trackEvent: this.mapper.getTrackingData('MyBets'),\n parameters: {},\n resources: {},\n },\n ];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ItemType, isItemType } from '@frontend/sports/common/core/data-access/sport-model';\nimport { SessionStoreService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { NavigationItemsMapper } from '../navigation-items-mapper';\nimport { NavigationRouterService } from '../navigation-router.service';\nimport { TopMenuContentItem } from '../navigation.models';\n\n@Injectable({ providedIn: 'root' })\nexport class LastSelectedSportProvider {\n private readonly lastSport = new BehaviorSubject(undefined);\n private readonly storeKey: string = 'navigation-last-sport';\n\n lastSport$: Observable = this.lastSport.asObservable();\n\n constructor(\n private sessionStore: SessionStoreService,\n private navigationRouter: NavigationRouterService,\n private sportService: SportsCacheService,\n private mapper: NavigationItemsMapper,\n private navigationConfig: TopNavigationConfig,\n ) {\n if (this.lastSelectedSport) {\n this.mapSport(this.lastSelectedSport);\n }\n\n this.navigationRouter.selectedSport$.subscribe((sportId) => this.mapSport(sportId));\n }\n\n private set sport(sport: number) {\n this.sessionStore.set(this.storeKey, sport);\n }\n\n private get lastSelectedSport(): number | undefined {\n return this.sessionStore.get(this.storeKey) || undefined;\n }\n\n private mapSport(sportId: number): void {\n this.sport = sportId;\n\n combineLatest([this.sportService.getSportList(), this.navigationConfig.whenReady])\n .pipe(\n map(([sports]) => {\n const sportItem = sports.find((sport) => sport.id === sportId);\n\n if (isItemType(sportItem, ItemType.Sport)) {\n const hasSeparator = this.navigationConfig.sportsConfig?.selectedSport.useBeforeSeparator;\n\n const currentSport = this.mapper.buildSportMenuItem({\n id: sportId,\n name: sportItem.name,\n separator: hasSeparator,\n isVirtual: sportItem.isVirtual,\n });\n this.lastSport.next(currentSport);\n }\n }),\n )\n .subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, takeTop } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Observable, map, shareReplay, startWith } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { NavigationItemsMapper } from '../navigation-items-mapper';\nimport { TopMenuContentItem } from '../navigation.models';\nimport { BaseNavigationItemsProvider } from './base-navigation-items.provider';\n\n@Injectable({ providedIn: 'root' })\nexport class SportNavigationItemsProvider extends BaseNavigationItemsProvider {\n readonly sportItems$: Observable;\n\n constructor(\n private navigationConfig: TopNavigationConfig,\n private mapper: NavigationItemsMapper,\n protected override sportsCache: SportsCacheService,\n ) {\n super(sportsCache);\n\n this.sportItems$ = this.sportsCache.getSportList().pipe(\n map((items) => this.mapItems(items)),\n startWith([]),\n shareReplay(),\n );\n }\n\n public getSportsItems(maxSports: number): Observable {\n return this.sportsCache.getSportList().pipe(map((items) => this.mapItems(items, maxSports)));\n }\n\n private mapItems(items: CountItem[], maxSports?: number): TopMenuContentItem[] {\n maxSports = maxSports === undefined ? this.maxSports : maxSports;\n\n if (maxSports < 1) {\n return [];\n }\n\n if (!this.isV2Navigation) {\n const beforeSports = this.navigationConfig.beforeSports.map((sport) => sport.activeName);\n items = items.filter((item) => !beforeSports.includes(item.id.toString()));\n }\n\n const topSports = takeTop(items, maxSports);\n\n return topSports.map((item, index) =>\n this.mapper.buildSportMenuItem({\n id: item.id,\n name: item.name,\n separator: this.hasSeparator(index, this.isV2Navigation),\n isVirtual: item.isVirtual,\n }),\n );\n }\n\n private get isV2Navigation() {\n return !!this.navigationConfig.topNavigationItems?.length;\n }\n\n private get maxSports() {\n return this.isV2Navigation ? this.navigationConfig.sportsConfig.topSportsCount : this.navigationConfig.maxSports;\n }\n\n private hasSeparator(index: number, isV2Navigation: boolean) {\n const isFirstItem = index === 0;\n\n return isV2Navigation ? this.navigationConfig.sportsConfig?.topSports.useBeforeSeparator && isFirstItem : isFirstItem;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore, TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { NavigationBarItem } from '@frontend/sports/types/models/navigation-bar';\nimport { DslService, MediaQueryService } from '@frontend/vanilla/core';\nimport produce from 'immer';\nimport { Observable, combineLatest, map, startWith, switchMap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { AdaptiveLayoutService } from '../../layout/adaptive-layout.service';\nimport { UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { NavigationItemsMapper } from '../navigation-items-mapper';\nimport { TopMenuContentItem } from '../navigation.models';\nimport { BaseNavigationItemsProvider } from './base-navigation-items.provider';\n\n@Injectable({ providedIn: 'root' })\nexport class TopNavigationItemsProvider extends BaseNavigationItemsProvider {\n readonly navigationItems$: Observable;\n\n constructor(\n private navigationConfig: TopNavigationConfig,\n private dslService: DslService,\n private mapper: NavigationItemsMapper,\n protected override sportsCache: SportsCacheService,\n private urlHelper: UrlHelperService,\n private sitecore: Sitecore,\n private layoutService: AdaptiveLayoutService,\n private mediaQueryService: MediaQueryService,\n ) {\n super(sportsCache);\n\n const siteCoreReady$ = this.sitecore.whenReady;\n\n const evaluatedItems$ = this.navigationConfig.whenReady.pipe(\n map(() =>\n this.navigationConfig.topNavigationItems?.length ? this.navigationConfig.topNavigationItems : this.navigationConfig.beforeSports,\n ),\n switchMap((data) => this.dslService.evaluateContent(data)),\n );\n\n const liveSportCount$ = this.getLiveSportsList();\n\n this.navigationItems$ = combineLatest([evaluatedItems$, this.hasLiveItems$, liveSportCount$, siteCoreReady$]).pipe(\n map(([items, keepLiveItem, liveSportCount]) => {\n const liveCountText = this.formatLiveCounts(liveSportCount);\n const options = {\n keepLiveItem,\n isFixedItem: false,\n };\n\n const liveItem = items.filter((item) => item.activeName === 'live');\n if (this.isLiveButtonBadgeVisible(liveItem) && liveSportCount > 0) {\n liveItem[0].badgeText = liveCountText;\n }\n const isV2Navigation = !!this.navigationConfig.topNavigationItems?.length;\n\n const itemsToReturn = isV2Navigation\n ? this.mapper.mapItems(items, liveCountText, options)\n : this.getFallbackItems(items, liveCountText, keepLiveItem);\n\n return produce([], () => itemsToReturn);\n }),\n startWith([]),\n );\n }\n\n public getDefaultItems(): Observable {\n const isDesktop = this.mediaQueryService.isActive('gt-md');\n const home = this.getHomeMenuItem();\n\n return this.hasLiveItems$.pipe(\n map((keepLive) => {\n const items: TopMenuContentItem[] = [];\n\n if (isDesktop && home) {\n items.push(home);\n }\n\n if (keepLive) {\n items.push({\n name: 'live',\n text: this.sitecore.globalMessages.NavLive,\n url: this.urlHelper.getLiveUrl(),\n class: 'theme-live',\n trackEvent: this.mapper.getTrackingData('live'),\n parameters: {},\n resources: {},\n });\n }\n\n items.push({\n name: 'all',\n text: this.sitecore.globalMessages.NavAllSports,\n url: isDesktop ? '' : this.urlHelper.getAtoZUrl(),\n class: 'theme-menu',\n trackEvent: this.mapper.getTrackingData('all'),\n parameters: {},\n resources: {},\n popup: isDesktop ? 'sports' : '',\n });\n\n return items;\n }),\n );\n }\n\n private getFallbackItems(items: NavigationBarItem[], sportsCountText: string, keepLiveItem: boolean): TopMenuContentItem[] {\n const home = this.getHomeMenuItem();\n const beforeSports = this.mapper.mapItems(items, sportsCountText, { keepLiveItem });\n\n return home ? [home, ...beforeSports] : [...beforeSports];\n }\n\n // TODO: should be removed when only V2 is used on prod.\n getHomeMenuItem(): TopMenuContentItem | undefined {\n if (this.layoutService.current.bottomNavigation) {\n return;\n }\n\n return {\n name: 'home',\n text: this.sitecore.globalMessages.NavHome,\n url: this.urlHelper.getHomeUrl(),\n class: 'theme-home',\n trackEvent: this.mapper.getTrackingData('home'),\n parameters: {},\n resources: {},\n };\n }\n\n getLiveSportsList(): Observable {\n return this.sportsCache.getSportList().pipe(\n map((sportList) => {\n const liveCount = sportList.map((s) => s.counts.live).reduce((acc, count) => acc + count, 0);\n\n return liveCount;\n }),\n );\n }\n\n formatLiveCounts(liveCount: number) {\n let counts = '';\n if (liveCount > 99) {\n counts = '99+';\n } else if (liveCount > 0) counts = liveCount.toString();\n\n return counts;\n }\n\n isLiveButtonBadgeVisible(liveItem: NavigationBarItem[]) {\n if (liveItem?.length && liveItem[0]?.showBadge) return true;\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { Observable, ReplaySubject, Subject, combineLatest, distinctUntilChanged, first, map, of, switchMap } from 'rxjs';\n\nimport { TopMenuContentItem } from './navigation.models';\nimport { FixedNavigationItemsProvider } from './providers/fixed-navigation-items.provider';\nimport { LastSelectedSportProvider } from './providers/last-selected-sport.provider';\nimport { SportNavigationItemsProvider } from './providers/sport-navigation-items.provider';\nimport { TopNavigationItemsProvider } from './providers/top-navigation-items.provider';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private readonly _topNavigation$ = new ReplaySubject(1);\n readonly topNavigation$ = this._topNavigation$.asObservable();\n\n private separatorMarker = 'before-separator';\n\n private readonly init$ = new Subject();\n\n constructor(\n private navigationConfig: TopNavigationConfig,\n private trackingService: TrackingService,\n private topItemsProvider: TopNavigationItemsProvider,\n private fixedItemsProvider: FixedNavigationItemsProvider,\n private sportsItemsProvider: SportNavigationItemsProvider,\n private lastSportProvider: LastSelectedSportProvider,\n ) {\n combineLatest([this.init$, this.navigationConfig.whenReady])\n .pipe(\n first(),\n switchMap(() =>\n combineLatest([\n this.topItemsProvider.navigationItems$.pipe(distinctUntilLengthChanged()),\n this.fixedItemsProvider.navigationItems$.pipe(distinctUntilLengthChanged()),\n this.sportsItemsProvider.sportItems$.pipe(distinctUntilLengthChanged()),\n this.lastSportProvider.lastSport$.pipe(distinctUntilChanged((prev, next) => next?.name === prev?.name)),\n ]),\n ),\n switchMap(([topNavigationItems, fixedItems, sportsItems, selectedSport]) => {\n if (this.useFallbackNavigation(topNavigationItems, fixedItems, sportsItems)) {\n return this.getDefaultItems(selectedSport);\n }\n return of(this.buildNavigation(topNavigationItems, fixedItems, sportsItems, selectedSport));\n }),\n takeUntilDestroyed(),\n )\n .subscribe((items) => this._topNavigation$.next(items));\n }\n\n init() {\n this.init$.next();\n }\n\n tracking(trackingPagename?: string, preFix?: string): void {\n if (!trackingPagename) {\n return;\n }\n const value = this.getTrackingValue(trackingPagename, preFix);\n\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_NAVIGATION_MENUS]: value,\n });\n }\n\n private getDefaultItems(selectedSport?: TopMenuContentItem): Observable {\n return combineLatest([this.topItemsProvider.getDefaultItems(), this.sportsItemsProvider.getSportsItems(7)]).pipe(\n map(([topDefaultItems, sportsDefaultItems]) =>\n this.buildNavigation(topDefaultItems, this.fixedItemsProvider.getDefaultItems(), sportsDefaultItems, selectedSport),\n ),\n );\n }\n\n private useFallbackNavigation(mainItems: TopMenuContentItem[], fixedItems: TopMenuContentItem[], sportsItems: TopMenuContentItem[]) {\n const emptyMainMenuOrOnlyHomeItem = mainItems?.length <= 1;\n return emptyMainMenuOrOnlyHomeItem && !fixedItems?.length && !sportsItems?.length;\n }\n\n private buildNavigation(\n mainItems: TopMenuContentItem[],\n fixedItems: TopMenuContentItem[],\n sportsItems: TopMenuContentItem[],\n sport?: TopMenuContentItem,\n ): TopMenuContentItem[] {\n const isV2Navigation = !!this.navigationConfig.topNavigationItems?.length;\n if (isV2Navigation) {\n const allItems = [...mainItems, ...fixedItems];\n const { sportsIndex, selectedSportIndex } = this.recalculateIndexes(allItems);\n\n if (sportsIndex >= 0) {\n const beforeSports = allItems.slice(0, sportsIndex);\n const afterSports = allItems.slice(sportsIndex, allItems.length);\n\n const topNavigationItems = [...beforeSports, ...sportsItems, ...afterSports];\n\n this.addSelectedSport(topNavigationItems, isV2Navigation, sport, selectedSportIndex);\n\n return topNavigationItems;\n } else {\n this.addSelectedSport(allItems, isV2Navigation, sport, selectedSportIndex);\n\n return allItems;\n }\n } else {\n const topNavigationItems = [...mainItems, ...sportsItems, ...fixedItems];\n\n this.addSelectedSport(topNavigationItems, isV2Navigation, sport);\n\n return topNavigationItems;\n }\n }\n\n private recalculateIndexes(items: TopMenuContentItem[]): { sportsIndex: number; selectedSportIndex: number } {\n const sportsIndex = this.navigationConfig.sportsConfig.topSports.index;\n const selectedSportIndex = this.navigationConfig.sportsConfig.selectedSport.index;\n const allConfigItems = [...this.navigationConfig.topNavigationItems, ...this.navigationConfig.fixedItems];\n\n let sportsIndexUpdated = sportsIndex;\n let selectedSportIndexUpdated = selectedSportIndex;\n\n allConfigItems.forEach((item, index) => {\n if ((item.condition || !item.activeName) && !items.some((i) => i.name === item.activeName)) {\n if (index < sportsIndex) {\n sportsIndexUpdated--;\n }\n\n if (index < selectedSportIndex) {\n selectedSportIndexUpdated--;\n }\n }\n });\n\n return { sportsIndex: sportsIndexUpdated, selectedSportIndex: selectedSportIndexUpdated };\n }\n\n private addSelectedSport(items: TopMenuContentItem[], isV2Navigation: boolean, sport?: TopMenuContentItem, index = -1): void {\n if (sport && !items.some((item) => item.name === sport.name)) {\n if (isV2Navigation && index >= 0) {\n items.splice(index, 0, ...[sport]);\n } else if (!isV2Navigation) {\n // find the item with separator's index in afterSports array and insert selected sport right before it\n const selectedSportIndex = items.findIndex((i) => i.class.indexOf(this.separatorMarker) > -1);\n\n items.splice(selectedSportIndex, 0, ...[sport]);\n }\n }\n }\n\n private getTrackingValue(trackingPagename: string, preFix?: string): string {\n return preFix ? `${preFix.toString()}_${trackingPagename}` : trackingPagename;\n }\n}\n\nexport function distinctUntilLengthChanged() {\n return distinctUntilChanged((prev, next) => prev.length === next.length);\n}\n","
\n \n @if (navigation.topNavigation$ | async; as topNavigation) {\n \n }\n \n
\n
\n","import { Component, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { EpcotConfig, TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportsProductService } from '@frontend/sports/host-app/sports-product/feature/sports-product-service';\nimport { Observable, map } from 'rxjs';\n\nimport { AdaptiveLayoutService } from '../../layout/adaptive-layout.service';\nimport { NavigationService } from '../navigation.service';\n\n@Component({\n selector: 'ms-navigation',\n templateUrl: 'navigation.html',\n standalone: false,\n})\nexport class NavigationComponent {\n viewModel$: Observable<{ showSeparator: boolean; isDesktopNavCompact: boolean }>;\n isEpcotEnabled: boolean;\n\n readonly showNavigation: Signal;\n\n constructor(\n public layout: AdaptiveLayoutService,\n public navigation: NavigationService,\n public config: TopNavigationConfig,\n public epcotConfig: EpcotConfig,\n public sportsProductService: SportsProductService,\n ) {\n this.viewModel$ = config.whenReady.pipe(\n map(() => ({\n showSeparator: config.isDesktopNavigationCompact && !!config.topNavigationItems?.length,\n isDesktopNavCompact: config.isDesktopNavigationCompact,\n })),\n );\n this.isEpcotEnabled = this.epcotConfig.isEnabled;\n\n this.showNavigation = toSignal(this.sportsProductService.isSportsProductActive$, { requireSync: true });\n }\n}\n","export enum SkeletonPage {\n Home = 'Home',\n Event = 'Event',\n Favourites = 'Favourite',\n Live = 'Live',\n Coupon = 'Coupon',\n Competition = 'Competition',\n UpComing = 'Upcoming',\n Racing = 'Racing',\n RacingTomorrow = 'RacingTomorrow',\n RacingForecast = 'RacingForecast',\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ms-skeleton-marquee',\n templateUrl: './skeleton-marquee.component.html',\n standalone: false,\n})\nexport class SkeletonMarqueeComponent {}\n","
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n","import { Component, HostBinding } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'ms-skeleton-betslip',\n templateUrl: './skeleton-betslip.component.html',\n standalone: false,\n})\nexport class SkeletonBetslipComponent {\n @HostBinding('class') className = 'sk-betslip-container sk-b-rad5 sk-p-12';\n\n constructor(public device: DeviceService) {}\n}\n","
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'ms-skeleton-events',\n templateUrl: './skeleton-events.component.html',\n standalone: false,\n})\nexport class SkeletonEventsComponent {\n constructor(public device: DeviceService) {}\n\n private readonly ids = [1, 4, 5, 8, 9];\n private readonly mIds = [1, 3, 5, 7, 9];\n\n getEventOrderId(id: number): boolean {\n if (this.device.isMobile && !this.device.isTablet) {\n return this.mIds.some((x) => x === id);\n }\n\n return this.ids.some((x) => x === id);\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'ms-skeleton-minigames',\n templateUrl: './skeleton-minigames.component.html',\n standalone: false,\n})\nexport class SkeletonMinigamesComponent {\n @HostBinding('class') className = 'sk-minigames-container sk-b-rad5';\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'ms-skeleton-top-sports',\n templateUrl: './skeleton-topsports.component.html',\n standalone: false,\n})\nexport class SkeletonTopsportsComponent {\n @HostBinding('class') className = 'sk-top-events-container sk-p-12 sk-b-rad5';\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'ms-skeleton-grid',\n templateUrl: './skeleton-grid.component.html',\n standalone: false,\n})\nexport class SkeletonGridComponent {\n @HostBinding('class') className = 'sk-gird-container sk-b-rad5';\n @Input() isHorseRaceForecast = false;\n constructor(public device: DeviceService) {}\n\n teams = [\n { team1: 'team1', team2: 'team2' },\n { team1: 'team3', team2: 'team4' },\n { team1: 'team5', team2: 'team6' },\n { team1: 'team3', team2: 'team4' },\n ];\n\n get isMobileOrRacingForecast(): boolean {\n return this.isHorseRaceForecast || (this.device.isMobile && !this.device.isTablet);\n }\n}\n","\n
\n
\n \n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { SkeletonPage } from './skeleton-page.model';\n\n@Component({\n selector: 'ms-skeleton-main-desktop',\n templateUrl: './skeleton-main-desktop.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkeletonMainDestopComponent {\n @Input() pageName: SkeletonPage;\n skeletonPage = SkeletonPage;\n constructor(public device: DeviceService) {}\n}\n","\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SkeletonPage } from './skeleton-page.model';\n\n@Component({\n selector: 'ms-skeleton-main-mobile',\n templateUrl: './skeleton-main-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkeletonMainMobileComponent {\n @Input() pageName: SkeletonPage;\n skeletonPage = SkeletonPage;\n}\n"," \n \n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { SkeletonPage } from './skeleton-page.model';\n\n@Component({\n selector: 'ms-skeleton-sports-base',\n templateUrl: './skeleton-sports-base.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class SkeletonSportsBaseComponent {\n @Input() pageName: SkeletonPage;\n @HostBinding('class') className = 'sk-sports-skeleton-base bg-schedule-skeleton';\n\n constructor(public device: DeviceService) {}\n}\n","\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n \n
\n
\n","import { Component, HostBinding, Input } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { SkeletonPage } from './skeleton-page.model';\n\n@Component({\n selector: 'ms-skeleton-livepage',\n templateUrl: './skeleton-livepage.component.html',\n standalone: false,\n})\nexport class SkeletonLivepageComponent {\n @Input() pageName: SkeletonPage;\n skeletonPage = SkeletonPage;\n @HostBinding('class') className = 'sk-sports-skeleton-base';\n constructor(public device: DeviceService) {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkeletonSportsBaseComponent } from '../skeleton-ui/skeleton-sports-base.component';\nimport { SkeletonBetslipComponent } from './skeleton-betslip.component';\nimport { SkeletonEventsComponent } from './skeleton-events.component';\nimport { SkeletonGridComponent } from './skeleton-grid.component';\nimport { SkeletonLivepageComponent } from './skeleton-livepage.component';\nimport { SkeletonMainDestopComponent } from './skeleton-main-desktop.component';\nimport { SkeletonMainMobileComponent } from './skeleton-main-mobile.component';\nimport { SkeletonMarqueeComponent } from './skeleton-marquee.component';\nimport { SkeletonMinigamesComponent } from './skeleton-minigames.component';\nimport { SkeletonTopsportsComponent } from './skeleton-topsports.component';\n\n@NgModule({\n declarations: [\n SkeletonMarqueeComponent,\n SkeletonBetslipComponent,\n SkeletonEventsComponent,\n SkeletonMinigamesComponent,\n SkeletonEventsComponent,\n SkeletonTopsportsComponent,\n SkeletonGridComponent,\n SkeletonMainDestopComponent,\n SkeletonMainMobileComponent,\n SkeletonLivepageComponent,\n SkeletonSportsBaseComponent,\n ],\n exports: [SkeletonSportsBaseComponent, SkeletonMainDestopComponent, SkeletonMainMobileComponent, SkeletonLivepageComponent],\n imports: [CommonModule],\n})\nexport class SkeletonModule {}\n","import { Injectable } from '@angular/core';\nimport { ActivationEnd } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { filterSports, filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { Observable, Subject, filter } from 'rxjs';\n\nimport { BreadcrumbModel } from './breadcrumb.models';\nimport { BreadcrumbSlot, BreadcrumbsSlotService } from './breadcrumbs-slot.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbRouteVisibilityService {\n private _minimumItemsForRoute = 2;\n private largeScreen = false;\n private _visibility$ = new Subject();\n private currentBreadcrumbSlot?: BreadcrumbSlot;\n\n constructor(\n routerEvents: RouterEventsService,\n private mediaService: MediaQueryService,\n breadcrumbSlot: BreadcrumbsSlotService,\n ) {\n routerEvents.currentActivationEnd\n .pipe(\n filter((e) => !!e),\n filterSports(),\n )\n .subscribe((e: any) => this.onRouteChanged(e));\n breadcrumbSlot.slotRegistered$.pipe(filterSportsEmitLast()).subscribe((slot) => this.onSlotChanged(slot));\n mediaService.observe().pipe(filterSportsEmitLast()).subscribe(this.screenWidthChanged);\n }\n\n get visibility$(): Observable {\n return this._visibility$.asObservable();\n }\n\n isVisible(breadcrumbs: BreadcrumbModel[]): boolean {\n const ignoreBreadcrumb = !(breadcrumbs.length === 1 && breadcrumbs[0].ignoreBreadcrumb === true);\n\n return (\n (breadcrumbs.length >= this.minimumItems || Boolean(this.currentBreadcrumbSlot && this.currentBreadcrumbSlot.required)) &&\n ignoreBreadcrumb\n );\n }\n\n /**\n * When the screen is small, we always show breadcrumbs if any are there.\n * Otherwise we show only if there are at least 2 items.\n *\n * @readonly\n * @private\n * @type {number}\n * @memberof BreadcrumbRouteVisibilityService\n */\n private get minimumItems(): number {\n return this.largeScreen ? this._minimumItemsForRoute : 1;\n }\n\n private onRouteChanged(event: ActivationEnd): void {\n const singleItemPages = [RouteTag.EventDetails, RouteTag.Live];\n this._minimumItemsForRoute = singleItemPages.some((s) => s === event.snapshot.data.tag) ? 1 : 2;\n this._visibility$.next();\n }\n\n private screenWidthChanged = (): void => {\n this.largeScreen = this.mediaService.isActive('gt-md');\n this._visibility$.next();\n };\n\n private onSlotChanged(slot?: BreadcrumbSlot): void {\n this.currentBreadcrumbSlot = slot;\n this._visibility$.next();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { BreadcrumbModel } from './breadcrumb.models';\nimport { BreadcrumbRouteVisibilityService } from './breadcrumbs-visibility.service';\n\nexport interface Breadcrumbs {\n breadcrumbs: BreadcrumbModel[];\n visible: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbsService {\n LEAGUE_TYPES = {\n league: [4, 7, 11, 12, 16, 18, 21, 22, 23, 27, 28, 31, 32, 36, 49, 52, 60, 61, 62, 70, 71, 88],\n tournament: [5, 13, 24, 33, 34, 35, 38, 44, 45, 47, 48, 50, 53, 56, 58, 63, 67, 68, 69, 74, 75, 76, 77, 87, 90, 93],\n race: [6, 10, 14, 15, 29, 30, 37, 39, 40, 41, 42, 43, 46, 51, 54, 55, 91],\n competition: [9, 17, 26, 57, 59, 64, 65, 66, 72, 73, 78, 89, 80, 81, 82, 83, 84, 85, 86, 89, 92, 94, 95, 96, 100],\n };\n\n // View details\n types = {\n AZ: 'AZ',\n REGION: 'REGION',\n SPORT: 'SPORT',\n LEAGUE: 'LEAGUE',\n TOPLEAGUE: 'TOPLEAGUE',\n FILTER: 'FILTER',\n };\n\n private _breadcrumbs$ = new BehaviorSubject({ breadcrumbs: [], visible: false });\n\n constructor(private breadcrumbVisibility: BreadcrumbRouteVisibilityService) {\n this.breadcrumbVisibility.visibility$.pipe(filterSportsEmitLast()).subscribe(this.onBreadcrumbVisibilityChange);\n }\n\n get breadcrumbs$(): Observable {\n return this._breadcrumbs$.asObservable();\n }\n\n setBreadcrumbs(breadcrumbs: BreadcrumbModel[]): void {\n this._breadcrumbs$.next({ breadcrumbs, visible: this.breadcrumbVisibility.isVisible(breadcrumbs) });\n }\n\n private onBreadcrumbVisibilityChange = (): void => {\n const breadcrumbs = this._breadcrumbs$.value.breadcrumbs;\n this.setBreadcrumbs(breadcrumbs);\n };\n}\n","
\n \n
\n
\n
\n \n \n \n \n \n \n
\n
\n\n\n\n\n \n \n {{ crumb.title }}\n\n","import { DOCUMENT, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n ViewChild,\n ViewContainerRef,\n afterNextRender,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { UrlSerializer, createUrlTreeFromSnapshot } from '@angular/router';\n\nimport { LayoutNavigationConfig, LiveSectionConfig, TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { SportsProductService } from '@frontend/sports/host-app/sports-product/feature/sports-product-service';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { DsTouchClickDirective } from '@frontend/ui/shared';\nimport { MenuItemsService } from '@frontend/vanilla/core';\nimport { isEqual, omit } from 'lodash-es';\nimport { combineLatest, filter, map } from 'rxjs';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { NavigationCoreModule } from '../navigation-core/navigation-core.module';\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { TrackNavArea } from '../navigation/navigation-tracking.model';\nimport { TopNavigationItemsProvider } from '../navigation/providers/top-navigation-items.provider';\nimport { BreadcrumbModel } from './breadcrumb.models';\nimport { BreadcrumbSlot, BreadcrumbsSlotService } from './breadcrumbs-slot.service';\nimport { Breadcrumbs, BreadcrumbsService } from './breadcrumbs.service';\n\n@Component({\n selector: 'ms-breadcrumbs',\n templateUrl: 'breadcrumbs.html',\n imports: [NavigationCoreModule, DirectivesModule, CompetitionLogoComponent, NgTemplateOutlet, NgIf, NgFor, NgClass, DsTouchClickDirective],\n})\nexport class BreadcrumbsComponent implements AfterViewInit {\n @HostBinding('class') className = 'breadcrumb';\n @HostBinding('class.hidden') hidden = true;\n\n @ViewChild('breadcrumbSlot', { read: ViewContainerRef, static: true })\n slotRef?: ViewContainerRef;\n\n items: BreadcrumbModel[] = [];\n hideMidSectionBreadCrumbItems: boolean;\n\n private routeHistory: { lastNonEdpUrl?: string; currentTag?: RouteTag } = {};\n\n private readonly _doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private urlHelper: UrlHelperService,\n private redirectHelper: RedirectHelperService,\n private breadcrumbsSlot: BreadcrumbsSlotService,\n private changeDetector: ChangeDetectorRef,\n private trackingService: TrackingService,\n private layoutNavigationConfig: LayoutNavigationConfig,\n private menuService: MenuItemsService,\n private liveConfig: LiveSectionConfig,\n private topNavigationItemsProvider: TopNavigationItemsProvider,\n private topNavigationConfig: TopNavigationConfig,\n sportsProductService: SportsProductService,\n breadcrumbService: BreadcrumbsService,\n adaptiveLayout: AdaptiveLayoutService,\n routerEvents: RouterEventsService,\n urlSerializer: UrlSerializer,\n epcotConfig: EpcotConfigService,\n ) {\n breadcrumbsSlot.slotRegistered$.pipe(takeUntilDestroyed()).subscribe(this.initSlotComponent);\n\n const isBreadcrumbNavHidden$ = adaptiveLayout.stateChange$.pipe(\n takeUntilDestroyed(),\n map((state) => state && !state.breadcrumbNavigation),\n );\n const isSportsActive$ = sportsProductService.isSportsProductActive$;\n\n combineLatest([isBreadcrumbNavHidden$, isSportsActive$]).subscribe(\n ([isBreadcrumbNavHidden, isSportsActive]) => (this.hidden = isBreadcrumbNavHidden || !isSportsActive),\n );\n this.hideMidSectionBreadCrumbItems = this.layoutNavigationConfig.hideMidSectionBreadCrumbItems;\n breadcrumbService.breadcrumbs$.pipe(takeUntilDestroyed()).subscribe(this.breadcrumbChanged);\n\n const isEpcotToggleVisible = epcotConfig.isEnabled() && (adaptiveLayout.current.headerSubNavigation || adaptiveLayout.current.columns < 3);\n if (isEpcotToggleVisible) {\n routerEvents.currentActivationEnd.pipe(filter(isDefined), takeUntilDestroyed()).subscribe((e) => {\n this.routeHistory.currentTag = e.snapshot.data?.tag;\n\n if (e.snapshot.data?.tag !== RouteTag.EventDetails) {\n this.routeHistory.lastNonEdpUrl = urlSerializer.serialize(\n createUrlTreeFromSnapshot(e.snapshot, [], omit(e.snapshot.queryParams, 'popup')),\n );\n }\n });\n }\n\n afterNextRender(() => {\n this.topNavigationConfig.whenReady.subscribe(() => {\n if (this.liveConfig.showLiveBadgeCount.includes('BOTTOM')) {\n this.setLiveCounts();\n }\n });\n });\n }\n\n ngAfterViewInit(): void {\n if (this.breadcrumbsSlot.registeredComponent) {\n this.initSlotComponent(this.breadcrumbsSlot.registeredComponent);\n } else {\n this.slotRef!.clear();\n }\n }\n\n goBack(): void {\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_NAVIGATION_MENUS]: `${TrackNavArea.NavBreadcrumb}_Back`,\n });\n this.redirectHelper.goBack(this.routeHistory.currentTag === RouteTag.EventDetails ? this.routeHistory.lastNonEdpUrl : undefined);\n }\n\n private breadcrumbChanged = (model: Breadcrumbs) => {\n if (!isEqual(this.items, model.breadcrumbs)) {\n this.items = model.breadcrumbs.map((crumb) => this.mapCrumb(crumb));\n if (this.hideMidSectionBreadCrumbItems && this.items.length > 2) {\n this.items.splice(1, this.items.length - 2);\n }\n }\n };\n\n selected(active: BreadcrumbModel): void {\n if (active.ignoreBrowserHistory && active.url) {\n this.redirectHelper.goToPage(active.url, active.ignoreBrowserHistory);\n }\n }\n\n private mapCrumb(crumb: BreadcrumbModel): BreadcrumbModel {\n return {\n ...crumb,\n url: this.urlHelper.getAbsolute(this.urlHelper.getUrl(crumb.url)),\n };\n }\n\n private initSlotComponent = (data?: BreadcrumbSlot): void => {\n if (!this.slotRef) {\n return;\n }\n\n this.slotRef.clear();\n\n if (!data) {\n return;\n }\n\n const component = this.slotRef.createComponent(data.component);\n\n if (data.inputs) {\n Object.keys(data.inputs).forEach((key) => (component.instance[key] = data.inputs[key]));\n }\n\n this.changeDetector.detectChanges();\n };\n\n private setBadgeBottom(itemName: string, badgeText: string | undefined, cssClass?: string): void {\n this.menuService.setCounter(TrackNavArea.NavBottom, itemName, badgeText, cssClass);\n }\n\n private refreshLiveCount() {\n this.topNavigationItemsProvider.getLiveSportsList().subscribe((liveCount) => {\n const elements = this._doc.getElementsByClassName('live-counts-refresh');\n if (elements.length > 0) {\n Array.from(elements).forEach((element) => {\n element.innerHTML = this.topNavigationItemsProvider.formatLiveCounts(liveCount);\n });\n }\n });\n }\n\n private setLiveCounts() {\n this.topNavigationItemsProvider.getLiveSportsList().subscribe((liveCount) => {\n const count = this.topNavigationItemsProvider.formatLiveCounts(liveCount);\n const className = this.getClassName(count);\n this.setBadgeBottom('live', count, `live-counts-refresh bottomnav-new-badge-live-count ${className}`);\n });\n this.refreshLiveCountTimer();\n }\n\n private getClassName(count: string): string {\n switch (count.length) {\n case 2:\n return 'livebadge-fontsize-sm';\n case 1:\n return 'livebadge-fontsize-md';\n case 0:\n return 'livebadge-fontsize-lg';\n default:\n return 'livebadge-fontsize-default';\n }\n }\n\n private refreshLiveCountTimer() {\n const timeout = setInterval(() => {\n this.refreshLiveCount();\n }, 60000);\n this.destroyRef.onDestroy(() => clearTimeout(timeout));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TabsGroupSizesType } from '@frontend/ui/tabsgroup';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SubNavigationItem } from './sub-navigation.models';\n\n@Injectable({ providedIn: 'root' })\nexport class SubNavigationService {\n private _tabs$ = new BehaviorSubject([]);\n private _fullWidth$ = new BehaviorSubject(false);\n private _tabSize$ = new BehaviorSubject('large');\n\n get tabs$(): Observable {\n return this._tabs$.asObservable();\n }\n\n get tabSize$(): Observable {\n return this._tabSize$.asObservable();\n }\n\n get fullWidth$(): Observable {\n return this._fullWidth$.asObservable();\n }\n\n setTabs(items: SubNavigationItem[]): void {\n this._tabs$.next(items);\n }\n\n setTabSize(tabSize: TabsGroupSizesType): void {\n this._tabSize$.next(tabSize);\n }\n\n setFullWith(fullWidth: boolean): void {\n this._fullWidth$.next(fullWidth);\n }\n}\n","@if (!adaptiveLayout.current.headerSubNavigationHidden) {\n @if (isMobilePhone && isMyBetsTabRedesignEnabled && (isMyBetsRoute$ | async)) {\n
\n \n
\n } @else {\n \n @for (tab of tabs; track tab.id) {\n @if (tab.id !== subNavigation.LiveInSportPage) {\n \n \n \n @if (tab.iconClass) {\n \n } @else if (tab.icon) {\n \n }\n\n {{ tab.title }}\n @if (tab.count) {\n \n {{ tab.count }}\n \n }\n \n \n \n } @else {\n \n \n @if (tab.count) {\n \n {{ tab.count }}\n \n }\n {{ tab.title }}\n @if (tab.icon) {\n \n }\n \n }\n }\n \n }\n\n @if (showDivider) {\n \n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, HostBinding } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EpcotConfig, MyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { SportsTheme, injectCurrentTheme } from '@frontend/sports/common/ui/shared';\nimport { LinkDirective } from '@frontend/sports/common/ui/sports-themed-pills';\nimport { SelectedTabItem, SportsThemedTabsDirective, ThemeSize } from '@frontend/sports/common/ui/sports-themed-tab-group';\nimport { DsButton } from '@frontend/ui/button';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { DsSegmentedControlModule } from '@frontend/ui/segmented-control';\nimport { DsTabsModule, TabsGroupSizesType } from '@frontend/ui/tabsgroup';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { Observable, distinctUntilChanged, map } from 'rxjs';\n\nimport { SubNavigation } from '../event-list-shared/sport/sport-sub-navigation.service';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { MyBetsModule } from '../my-bets/my-bets.module';\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { TrackNavArea } from '../navigation/navigation-tracking.model';\nimport { NavigationService } from '../navigation/navigation.service';\nimport { TabBarModule } from '../tab-bar/tab-bar.module';\nimport { MyBetsSubNavigationComponent } from './mybets-sub-navigation/my-bets-sub-navigation.component';\nimport { SubNavigationItem } from './sub-navigation.models';\nimport { SubNavigationService } from './sub-navigation.service';\n\n@Component({\n selector: 'ms-sub-navigation',\n templateUrl: 'sub-navigation.component.html',\n styleUrls: ['sub-navigation.component.scss'],\n imports: [\n TabBarModule,\n MyBetsModule,\n DsTabsModule,\n DsNotificationBubble,\n DsButton,\n IconCustomComponent,\n SpeculativeLinkDirective,\n LinkDirective,\n DsDivider,\n CommonModule,\n SportsThemedTabsDirective,\n DsSegmentedControlModule,\n MyBetsSubNavigationComponent,\n ],\n})\nexport class SubNavigationComponent {\n tabs: SubNavigationItem[] = [];\n selectedTab: SubNavigationItem;\n readonly currentTheme = injectCurrentTheme();\n readonly inverseThemes: SportsTheme[] = ['mgm-4', 'giocodigitale'];\n readonly excludedDividerThemes: SportsTheme[] = ['mgm-4', 'sports-interaction', 'party-poker', 'party-casino'];\n readonly tabInverse: boolean;\n @HostBinding('class.epcot-enabled') readonly isEpcotEnabled: boolean = this.epcotConfig.isEnabled;\n readonly showDivider: boolean;\n\n subNavigation = SubNavigation;\n tabSize: TabsGroupSizesType;\n isLiveButtonEnabled: boolean;\n isLargeTab: boolean;\n isFullWidth: boolean;\n themedTabSize: ThemeSize;\n isMyBetsTabRedesignEnabled = this.myBetsConfig.isMyBetTabRedesignEnabled;\n isMyBetsRoute$: Observable;\n\n constructor(\n private subnavigation: SubNavigationService,\n public adaptiveLayout: AdaptiveLayoutService,\n private urlHelperService: UrlHelperService,\n private navigationService: NavigationService,\n private redirectHelperService: RedirectHelperService,\n private deviceService: DeviceService,\n private myBetsConfig: MyBetsConfig,\n private routerEventsService: RouterEventsService,\n private epcotConfig: EpcotConfig,\n ) {\n this.subnavigation.tabs$.pipe(takeUntilDestroyed()).subscribe(this.tabsChanged);\n this.tabInverse = this.inverseThemes.includes(this.currentTheme);\n this.showDivider = !this.excludedDividerThemes.includes(this.currentTheme);\n this.subnavigation.tabSize$.pipe(takeUntilDestroyed()).subscribe((tabSize) => {\n this.tabSize = tabSize;\n this.isLargeTab = tabSize === 'large';\n });\n this.subnavigation.fullWidth$.subscribe((fullWidth) => {\n this.isFullWidth = fullWidth;\n });\n this.themedTabSize = {\n 'betboo-br': 'small',\n 'sportingbet-br': 'small',\n };\n this.isMyBetsRoute$ = this.routerEventsService.currentActivationEnd.pipe(\n map((activationEnd) => activationEnd?.snapshot.data['tag'] === RouteTag.MyBets),\n distinctUntilChanged(),\n );\n }\n\n get isMobilePhone(): boolean {\n return this.deviceService.isMobilePhone;\n }\n\n get active(): SubNavigationItem {\n return this.tabs.find((tab) => tab.active) ?? this.tabs[0];\n }\n\n get liveInSportTab(): SubNavigationItem | undefined {\n return this.tabs.find((tab) => tab.id === this.subNavigation.LiveInSportPage);\n }\n\n click(tab: SubNavigationItem): void {\n this.clickEvent(tab);\n }\n\n selected(selectedTab: SelectedTabItem): void {\n this.tabs = this.tabs.map((item) => {\n item.active = item.id.toString() === selectedTab.name;\n\n if (item.active) {\n this.selectedTab = item;\n }\n return {\n ...item,\n };\n });\n this.clickEvent(this.selectedTab);\n }\n\n clickEvent(tab: SubNavigationItem): void {\n if (tab.url) {\n this.redirectHelperService.goToPage(tab.url, tab.ignoreBrowserHistory);\n\n const url = this.urlHelperService.getLastSegment(tab.url);\n this.navigationService.tracking(url, TrackNavArea.NavSub);\n }\n }\n\n private tabsChanged = (newTabs: SubNavigationItem[]): void => {\n this.tabs.length = 0;\n this.tabs.push(...newTabs);\n this.isLiveButtonEnabled = !!this.liveInSportTab;\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, forkJoin, from, map } from 'rxjs';\n\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\nimport { SitemapModule } from '../sitemap/sitemap.module';\n\n@Injectable({ providedIn: 'root' })\nexport class SitemapModuleLoaderService {\n private readonly styleSheet = 'sitemap';\n\n constructor(\n private moduleLoader: ModuleLoaderService,\n private stylesLazyLoadingService: StylesLazyLoadingService,\n ) {}\n\n loadAndInitModule(): Observable {\n const moduleLoader = this.moduleLoader.loadModule('SitemapModule', () =>\n import(/* webpackChunkName: \"ms-sitemap\" */ '../sitemap/sitemap.module').then((m) => m.SitemapModule),\n );\n const stylesLoader = from(this.stylesLazyLoadingService.lazyLoad(this.styleSheet));\n\n return forkJoin([moduleLoader, stylesLoader]).pipe(map(([ref, _]) => ref.instance));\n }\n}\n","import { Injectable, Injector, Type } from '@angular/core';\nimport { ActivationEnd } from '@angular/router';\n\nimport { LayoutNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { BreadcrumbsComponent } from '../breadcrumbs/breadcrumbs.component';\nimport { SlotComponentOptions, SlotLayoutService } from '../layout/slot-layout.service';\nimport { TopNavigationVersion } from '../navigation-core/navigation-core.models';\nimport { NavigationService } from '../navigation/navigation.service';\nimport { NavigationComponent } from '../navigation/top-navigation/navigation.component';\nimport { SubNavigationComponent } from '../sub-navigation/sub-navigation.component';\nimport { SitemapModuleLoaderService } from './sitemap-module-loader.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SlotLayoutRouteOverrideService implements OnAppInit {\n private initialSettings?: SlotComponentOptions;\n private component: Type;\n\n constructor(\n private injector: Injector,\n private routerEvents: RouterEventsService,\n private slotLayout: SlotLayoutService,\n private layoutNavConfig: LayoutNavigationConfig,\n private sitemapModuleLoaderService: SitemapModuleLoaderService,\n private navService: NavigationService,\n ) {}\n\n onAppInit(): void | Promise {\n this.slotLayout.setup();\n this.slotLayout.register(BreadcrumbsComponent, { order: 10 });\n\n if (this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V2) {\n this.navService.init();\n this.slotLayout.register(NavigationComponent, { order: 0, fixed: true });\n this.slotLayout.register(SubNavigationComponent, { order: 100, fixed: true });\n this.routerEvents.currentActivationEnd.subscribe((e) => this.routeChanged(e));\n } else if (this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V3) {\n this.sitemapModuleLoaderService.loadAndInitModule().subscribe((module) => {\n const initService = this.injector.get(module.sitemapBootstrapService);\n if (initService) {\n initService.resolversMap = module.sitemapResolversMap;\n initService.onAppInit();\n }\n this.slotLayout.register(module.sitemapComponent, { order: 0, fixed: true });\n this.slotLayout.register(SubNavigationComponent, { order: 100, fixed: true });\n this.routerEvents.currentActivationEnd.subscribe((e) => this.routeChanged(e));\n });\n }\n }\n\n private routeChanged(event?: ActivationEnd): void {\n if (!event) {\n return;\n }\n\n if (event.snapshot.data && event.snapshot.data.tag === RouteTag.HorseRaceDetails) {\n this.override(SubNavigationComponent, { fixed: false });\n } else {\n this.destroy();\n }\n }\n\n override(component: Type, options: SlotComponentOptions): void {\n if (this.initialSettings) {\n return;\n }\n\n this.component = component;\n this.initialSettings = this.slotLayout.getConfig(component);\n\n if (!this.initialSettings) {\n throw new Error(`Could not override component ${component} - as it was not registered`);\n }\n\n this.slotLayout.override(component, options);\n }\n\n private destroy(): void {\n if (this.initialSettings) {\n this.slotLayout.override(this.component, this.initialSettings);\n this.initialSettings = undefined;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';\n\nimport { PrettyUrlsConfig, SkeletonConfig } from '@frontend/sports/common/client-config-data-access';\nimport { filterSports, filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { DeviceService, Page } from '@frontend/vanilla/core';\nimport { BehaviorSubject, EMPTY, Observable, delay, distinctUntilChanged, filter, of, switchMap, withLatestFrom } from 'rxjs';\n\nimport { SlotLayoutRouteOverrideService } from '../bootstrap/slot-layout.bootstrap.service';\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\nimport { SkeletonPage } from '../skeleton-ui/skeleton-page.model';\nimport { SubNavigationComponent } from '../sub-navigation/sub-navigation.component';\n\n@Injectable({ providedIn: 'root' })\nexport class SkeletonService {\n private skeletonOutput$ = new BehaviorSubject(undefined);\n\n get skeletonPage$(): Observable {\n return this.skeletonOutput$.asObservable();\n }\n\n private readonly homeLogo = `/${this.page.lang}`;\n private readonly homeRgx = new RegExp(`/${this.page.lang}` + '/sports$');\n private readonly eventRgx = new RegExp(`/${this.page.lang}` + '/sports/' + this.urlConfig.translations.events + '$');\n private readonly horseRacing = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?-29');\n private readonly horseRacingHome = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?-29$');\n private readonly compeRgx = new RegExp(`/${this.page.lang}` + '/sports/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[a-zA-Z]+/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/');\n private readonly firstCouponVisit = new RegExp(`/${this.page.lang}` + '/sports/[A-Za-z0-9]+-[0-9]+/[a-zA-Z]');\n private readonly secondCouponVisit = new RegExp(\n `/${this.page.lang}` + '/sports/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[a-zA-Z]+/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)',\n );\n\n private readonly styleSheet = 'skeleton-ui';\n\n private readonly sportsHomePage = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?$');\n private readonly horseRacingForecast = new RegExp(\n `/${this.page.lang}` + '/sports/+([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/+([A-Za-z0-9]+(-[A-Za-z0-9]+)+)',\n );\n\n private readonly subLivePage = new RegExp(`/${this.page.lang}` + '/sports/live/[A-Za-z0-9]+-[0-9]$');\n\n constructor(\n private router: Router,\n private urlConfig: PrettyUrlsConfig,\n private device: DeviceService,\n private skeletonConfig: SkeletonConfig,\n private slotLayoutRouteOverrideService: SlotLayoutRouteOverrideService,\n private stylesService: StylesLazyLoadingService,\n private page: Page,\n ) {\n if (this.skeletonConfig.isEnabled) {\n this.stylesService.lazyLoad(this.styleSheet);\n this.initRouteListener();\n }\n }\n\n private initRouteListener(): void {\n this.router.events\n .pipe(\n filterSports(),\n filter((e) => this.isValid(e)),\n withLatestFrom(this.skeletonOutput$),\n switchMap(([e, current]: any) => {\n if (e instanceof NavigationStart) {\n return of(this.getPage(e.url)).pipe(delay(current === undefined ? this.skeletonConfig.skeletonAniminationStartAt : 0));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n )\n .subscribe((e) => this.skeletonOutput$.next(e));\n this.skeletonOutput$\n .pipe(\n filter((e) => e !== undefined),\n filterSportsEmitLast(),\n switchMap((_) => of(EMPTY).pipe(delay(this.skeletonConfig.maxtimeToSkeletonDuration))),\n )\n .subscribe((_) => this.skeletonOutput$.next(undefined));\n }\n\n private isValid(e: any): boolean {\n if (e instanceof NavigationStart || e instanceof NavigationCancel || e instanceof NavigationEnd || e instanceof NavigationError) {\n return true;\n }\n\n return false;\n }\n\n private getPage(url: string): SkeletonPage | undefined {\n if (url === undefined || this.eventRgx.test(url)) return undefined;\n url = decodeURI(url.toLowerCase());\n if (this.homeLogo.toLowerCase() === url) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n if (url.includes(this.urlConfig.translations.multiBuilder) || url.includes(this.urlConfig.translations.myBets)) return undefined;\n\n if (this.homeRgx.test(url) && this.device.isMobile) {\n return SkeletonPage.Home;\n }\n\n if (this.horseRacing.test(url)) {\n if (this.horseRacingHome.test(url) && !this.device.isMobile && !this.device.isTablet) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n }\n\n if (url.includes(this.urlConfig.translations.tomorrow)) {\n return SkeletonPage.RacingTomorrow;\n }\n\n if (this.horseRacingForecast.test(url)) {\n return SkeletonPage.RacingForecast;\n }\n\n if (url.includes(this.urlConfig.translations.today)) {\n return SkeletonPage.Racing;\n }\n\n return SkeletonPage.Racing;\n }\n\n if (this.device.isMobile && this.device.isTablet) {\n if (url.includes(this.urlConfig.translations.live + '/')) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting)) {\n return SkeletonPage.Favourites;\n }\n\n return SkeletonPage.Live;\n }\n\n if (\n url.includes(this.urlConfig.translations.calendar) ||\n url.includes(this.urlConfig.translations.today) ||\n url.includes(this.urlConfig.translations.coupons)\n ) {\n return SkeletonPage.Coupon;\n }\n }\n\n if (this.device.isMobile && !this.device.isTablet) {\n if (\n url.includes(this.urlConfig.translations.calendar) ||\n url.includes(this.urlConfig.translations.in30minutes) ||\n url.includes(this.urlConfig.translations.in60minutes) ||\n url.includes(this.urlConfig.translations.in180minutes) ||\n url.includes(this.urlConfig.translations.next2days) ||\n url.includes(this.urlConfig.translations.next3days) ||\n url.includes(this.urlConfig.translations.after2days) ||\n url.includes(this.urlConfig.translations.after3days) ||\n url.includes(this.urlConfig.translations.today) ||\n url.includes(this.urlConfig.translations.next5days) ||\n url.includes(this.urlConfig.translations.midWeek) ||\n url.includes(this.urlConfig.translations.tomorrow) ||\n url.includes(this.urlConfig.translations.future)\n ) {\n return SkeletonPage.UpComing;\n }\n if (url.includes(this.urlConfig.translations.live + '/')) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting)) {\n return SkeletonPage.UpComing;\n }\n\n return SkeletonPage.Live;\n }\n\n if (url.includes(this.urlConfig.translations.competitions)) {\n const validate1 = this.firstCouponVisit.test(url);\n const validate2 = this.secondCouponVisit.test(url);\n if (url.includes(this.urlConfig.translations.favourites)) {\n return SkeletonPage.Favourites;\n }\n if (validate1 && !validate2) {\n return SkeletonPage.Competition;\n }\n if (validate1 && validate2) {\n return SkeletonPage.UpComing;\n }\n }\n if (url.includes(this.urlConfig.translations.coupons)) {\n const validate1 = this.firstCouponVisit.test(url);\n const validate2 = this.secondCouponVisit.test(url);\n if (validate1 && !validate2) {\n return SkeletonPage.Coupon;\n }\n if (validate1 && validate2) {\n return SkeletonPage.UpComing;\n }\n }\n if (url.includes(this.urlConfig.translations.competitions)) {\n return SkeletonPage.Competition;\n }\n if (this.compeRgx.test(url)) {\n return SkeletonPage.UpComing;\n }\n }\n\n if (this.compeRgx.test(url)) {\n return SkeletonPage.Competition;\n }\n\n if (url.includes(this.urlConfig.translations.competitions)) {\n return SkeletonPage.Competition;\n } else if (\n url.includes(this.urlConfig.translations.coupons) ||\n url.includes(this.urlConfig.translations.in30minutes) ||\n url.includes(this.urlConfig.translations.in60minutes) ||\n url.includes(this.urlConfig.translations.in180minutes) ||\n url.includes(this.urlConfig.translations.next2days) ||\n url.includes(this.urlConfig.translations.next3days) ||\n url.includes(this.urlConfig.translations.after2days) ||\n url.includes(this.urlConfig.translations.after3days) ||\n url.includes(this.urlConfig.translations.next5days) ||\n url.includes(this.urlConfig.translations.midWeek)\n ) {\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.live + '/') && !url.includes(this.urlConfig.translations.teamPages)) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting) || this.subLivePage.test(url)) {\n return SkeletonPage.Favourites;\n }\n\n return SkeletonPage.Live;\n } else if (url.includes('sports/' + this.urlConfig.translations.calendar) || url.includes('sports/' + this.urlConfig.translations.today)) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.calendar) || url.includes(this.urlConfig.translations.today)) {\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.favourites)) {\n const favCompetion = this.urlConfig.translations.favourites + '/' + this.urlConfig.translations.competitions;\n if (url.includes(favCompetion)) {\n return SkeletonPage.UpComing;\n } else {\n return SkeletonPage.Favourites;\n }\n } else if (url.includes(this.urlConfig.translations.events)) {\n return SkeletonPage.Event;\n } else if (url.includes(this.urlConfig.translations.upcoming)) {\n return SkeletonPage.UpComing;\n } else if (url.includes(this.urlConfig.translations.tomorrow) || url.includes(this.urlConfig.translations.future)) {\n return SkeletonPage.Favourites;\n } else {\n if (this.homeRgx.test(url) && !this.device.isMobile) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n\n if (this.sportsHomePage.test(url)) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n }\n\n return undefined;\n }\n}\n","import { EventEmitter, Injectable, Type } from '@angular/core';\n\nimport { SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { BetslipDigitalModule } from 'packages/sports/common/betslip/digital/betslip-digital.module';\n\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\n\nexport interface RightColumnBinding {\n inColumn: boolean;\n}\n\nexport interface EditMyBetAddPicksContainerMobileComponentBinding {\n picksContainerBottomOffset: EventEmitter;\n}\n\nexport interface BetslipBarComponentBindings {\n barClick: EventEmitter;\n myBetsClick: EventEmitter;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BetslipDigitalComponentLoaderService extends ComponentLoaderService {\n moduleName = 'BetslipDigitalModule';\n\n constructor(\n moduleLoader: ModuleLoaderService,\n loggerFactory: LoggerFactory,\n private sportsUserSettings: SportsUserSettings,\n ) {\n super(moduleLoader, loggerFactory);\n }\n\n getBetslipComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.betslipComponent, undefined, this.sportsUserSettings);\n }\n\n getEditBetComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.editBetComponent, undefined, this.sportsUserSettings);\n }\n\n getQuickBetComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.quickBetContainerComponent, undefined, this.sportsUserSettings);\n }\n\n getEditBetAddPicksContainerMobileComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.editBetAddPicksContainerMobileComponent, undefined, this.sportsUserSettings);\n }\n\n getModule(): Promise> {\n return import(/* webpackChunkName: \"betslip-digital\" */ 'packages/sports/common/betslip/digital/betslip-digital.module').then(\n (m) => m.BetslipDigitalModule,\n );\n }\n\n getRewardTokensComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.rewardTokensBannerComponent, undefined, this.sportsUserSettings);\n }\n\n getBetslipReturnsMessageComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.betslipReturnsMessagesComponent, undefined, this.sportsUserSettings);\n }\n\n getBetslipBarComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.betslipBarComponent, undefined, this.sportsUserSettings);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { LoadingIndicatorModule } from '@frontend/sports/loading-indicator-feature';\n\nimport { PrintLoadingIndicatorComponent } from './print-loading-indicator.component';\n\n@NgModule({\n imports: [RouterModule, LoadingIndicatorModule],\n declarations: [PrintLoadingIndicatorComponent],\n})\nexport class PrintModule {}\n","import { IUiState } from './ui-manager.state';\nimport { UiStates } from './ui-states.enum';\n\nexport const hasUiState = (uiState: IUiState, state: UiStates): boolean => {\n return containsUiState(uiState.states, state);\n};\n\nexport const containsUiState = (states: UiStates[], state: UiStates): boolean => {\n return states.some((s) => s === state);\n};\n","import { Injectable } from '@angular/core';\n\nimport { IUiChangeHandler } from './ui-change-handler';\nimport { IUiState } from './ui-manager.state';\n\n@Injectable({ providedIn: 'root' })\nexport class UiManagerService {\n private handlers: IUiChangeHandler[] = [];\n\n registerUiHandler(handler: IUiChangeHandler): void {\n this.handlers.push(handler);\n }\n\n async updateUi(prev: IUiState, next: IUiState): Promise {\n for (const handler of this.handlers) {\n handler.updateUi(prev, next);\n }\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport { IRootState } from '../store/root.state';\nimport { UiStates } from './ui-states.enum';\n\nexport interface IUiState {\n states: UiStates[];\n}\n\nexport const defaultUiState: IUiState = {\n states: [UiStates.Home],\n};\n\nexport const uiFeatureKey = 'ui';\n\nexport interface IUiRootState extends IRootState {\n ui: IUiState;\n}\n\nexport const uiStateSelector = createFeatureSelector('ui');\n\nexport const isSheetViewOpen = createSelector(uiStateSelector, (ui: IUiState) => ui.states.some((state) => state === UiStates.SheetViewOpened));\n","import * as i0 from '@angular/core';\nimport { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, Directive, NgModule } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { getRtlScrollAxisType } from '@angular/cdk/platform';\nimport { Subject, merge, fromEvent, Observable, animationFrameScheduler, of } from 'rxjs';\nimport { take, expand, takeWhile, takeUntil, finalize } from 'rxjs/operators';\n\n/**\r\n * https://github.com/gre/bezier-easing\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n */\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nconst NEWTON_ITERATIONS = 4;\nconst NEWTON_MIN_SLOPE = 0.001;\nconst SUBDIVISION_PRECISION = 0.0000001;\nconst SUBDIVISION_MAX_ITERATIONS = 10;\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nconst float32ArraySupported = typeof Float32Array === 'function';\nfunction A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n}\nfunction C(aA1) {\n return 3.0 * aA1;\n}\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX,\n currentT,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < NEWTON_ITERATIONS; ++i) {\n let currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n let currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nfunction LinearEasing(x) {\n return x;\n}\nfunction bezier(mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n // Precompute samples table\n let sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n let lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n // Interpolate to provide an initial guess for t\n let dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n let guessForT = intervalStart + dist * kSampleStepSize;\n let initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return function BezierEasing(x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n}\n;\nconst SMOOTH_SCROLL_OPTIONS = new InjectionToken('SMOOTH_SCROLL_OPTIONS');\n\n// @dynamic\nlet SmoothScrollManager = /*#__PURE__*/(() => {\n class SmoothScrollManager {\n get _w() {\n return this._document.defaultView;\n }\n /**\r\n * Timing method\r\n */\n get _now() {\n return this._w.performance && this._w.performance.now ? this._w.performance.now.bind(this._w.performance) : Date.now;\n }\n constructor(_document, _platform, customDefaultOptions) {\n this._document = _document;\n this._platform = _platform;\n // Keeps track of the ongoing SmoothScroll functions so they can be handled in case of duplication.\n // Each scrolled element gets a destroyer stream which gets deleted immediately after it completes.\n // Purpose: If user called a scroll function again on the same element before the scrolls completes,\n // it cancels the ongoing scroll and starts a new one\n this._onGoingScrolls = new Map();\n this._defaultOptions = {\n duration: 468,\n easing: {\n x1: 0.42,\n y1: 0,\n x2: 0.58,\n y2: 1\n },\n ...customDefaultOptions\n };\n }\n /**\r\n * changes scroll position inside an element\r\n */\n _scrollElement(el, x, y) {\n el.scrollLeft = x;\n el.scrollTop = y;\n }\n /**\r\n * Handles a given parameter of type HTMLElement, ElementRef or selector\r\n */\n _getElement(el, parent) {\n if (typeof el === 'string') {\n return (parent || this._document).querySelector(el);\n }\n return coerceElement(el);\n }\n /**\r\n * Initializes a destroyer stream, re-initializes it if the element is already being scrolled\r\n */\n _initSmoothScroll(el) {\n if (this._onGoingScrolls.has(el)) {\n this._onGoingScrolls.get(el).next();\n }\n return this._onGoingScrolls.set(el, new Subject()).get(el);\n }\n /**\r\n * Checks if smooth scroll has reached, cleans up the smooth scroll stream and resolves its promise\r\n */\n _isFinished(context, destroyed, resolve) {\n if (context.currentX !== context.x || context.currentY !== context.y) {\n return true;\n }\n destroyed.next();\n resolve();\n return false;\n }\n /**\r\n * Terminates an ongoing smooth scroll\r\n */\n _interrupted(el, destroyed) {\n return merge(fromEvent(el, 'wheel', {\n passive: true,\n capture: true\n }), fromEvent(el, 'touchmove', {\n passive: true,\n capture: true\n }), destroyed).pipe(take(1));\n }\n /**\r\n * Deletes the destroyer function, runs if the smooth scroll has finished or interrupted\r\n */\n _destroy(el, destroyed) {\n destroyed.complete();\n this._onGoingScrolls.delete(el);\n }\n /**\r\n * A function called recursively that, given a context, steps through scrolling\r\n */\n _step(context) {\n return new Observable(subscriber => {\n let elapsed = (this._now() - context.startTime) / context.duration;\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n // apply easing to elapsed time\n const value = context.easing(elapsed);\n context.currentX = context.startX + (context.x - context.startX) * value;\n context.currentY = context.startY + (context.y - context.startY) * value;\n this._scrollElement(context.scrollable, context.currentX, context.currentY);\n // Proceed to the step\n animationFrameScheduler.schedule(() => subscriber.next(context));\n });\n }\n _applyScrollToOptions(el, options) {\n if (!options.duration) {\n this._scrollElement(el, options.left, options.top);\n return Promise.resolve();\n }\n // Initialize a destroyer stream, reinitialize it if the element is already being scrolled\n const destroyed = this._initSmoothScroll(el);\n const context = {\n scrollable: el,\n startTime: this._now(),\n startX: el.scrollLeft,\n startY: el.scrollTop,\n x: options.left == null ? el.scrollLeft : ~~options.left,\n y: options.top == null ? el.scrollTop : ~~options.top,\n duration: options.duration,\n easing: bezier(options.easing.x1, options.easing.y1, options.easing.x2, options.easing.y2)\n };\n return new Promise(resolve => {\n // Scroll each step recursively\n of(null).pipe(expand(() => this._step(context).pipe(takeWhile(currContext => this._isFinished(currContext, destroyed, resolve)))), takeUntil(this._interrupted(el, destroyed)), finalize(() => this._destroy(el, destroyed))).subscribe();\n });\n }\n /**\r\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\r\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\r\n * left and right always refer to the left and right side of the scrolling container irrespective\r\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\r\n * in an RTL context.\r\n * @param scrollable element\r\n * @param customOptions specified the offsets to scroll to.\r\n */\n scrollTo(scrollable, customOptions) {\n if (isPlatformBrowser(this._platform)) {\n const el = this._getElement(scrollable);\n const isRtl = getComputedStyle(el).direction === 'rtl';\n const rtlScrollAxisType = getRtlScrollAxisType();\n const options = {\n ...this._defaultOptions,\n ...customOptions,\n ...{\n // Rewrite start & end offsets as right or left offsets.\n left: customOptions.left == null ? isRtl ? customOptions.end : customOptions.start : customOptions.left,\n right: customOptions.right == null ? isRtl ? customOptions.start : customOptions.end : customOptions.right\n }\n };\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top = el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && rtlScrollAxisType !== 0 /* RtlScrollAxisType.NORMAL */) {\n if (options.left != null) {\n options.right = el.scrollWidth - el.clientWidth - options.left;\n }\n if (rtlScrollAxisType === 2 /* RtlScrollAxisType.INVERTED */) {\n options.left = options.right;\n } else if (rtlScrollAxisType === 1 /* RtlScrollAxisType.NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n } else {\n if (options.right != null) {\n options.left = el.scrollWidth - el.clientWidth - options.right;\n }\n }\n return this._applyScrollToOptions(el, options);\n }\n return Promise.resolve();\n }\n /**\r\n * Scroll to element by reference or selector\r\n */\n scrollToElement(scrollable, target, customOptions = {}) {\n const scrollableEl = this._getElement(scrollable);\n const targetEl = this._getElement(target, scrollableEl);\n const options = {\n ...customOptions,\n ...{\n left: targetEl.offsetLeft + (customOptions.left || 0),\n top: targetEl.offsetTop + (customOptions.top || 0)\n }\n };\n return targetEl ? this.scrollTo(scrollableEl, options) : Promise.resolve();\n }\n static {\n this.ɵfac = function SmoothScrollManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SmoothScrollManager)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(SMOOTH_SCROLL_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SmoothScrollManager,\n factory: SmoothScrollManager.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return SmoothScrollManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SmoothScroll = /*#__PURE__*/(() => {\n class SmoothScroll {\n constructor(element, smoothScroll) {\n this.element = element;\n this.smoothScroll = smoothScroll;\n }\n scrollTo(options) {\n return this.smoothScroll.scrollTo(this.element, options);\n }\n scrollToElement(target, options) {\n return this.smoothScroll.scrollToElement(this.element, target, options);\n }\n static {\n this.ɵfac = function SmoothScroll_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SmoothScroll)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SmoothScrollManager));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SmoothScroll,\n selectors: [[\"\", \"smoothScroll\", \"\"], [\"\", \"smooth-scroll\", \"\"]],\n exportAs: [\"smoothScroll\"],\n standalone: false\n });\n }\n }\n return SmoothScroll;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SmoothScrollModule = /*#__PURE__*/(() => {\n class SmoothScrollModule {\n static {\n this.ɵfac = function SmoothScrollModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SmoothScrollModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SmoothScrollModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return SmoothScrollModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { SMOOTH_SCROLL_OPTIONS, SmoothScroll, SmoothScrollManager, SmoothScrollModule };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, Injectable, Optional, Inject, RendererStyleFlags2, Input, EventEmitter, Output, Component, ChangeDetectionStrategy, ViewChild, ElementRef, ContentChild, NgModule } from '@angular/core';\nimport * as i4 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i3 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { PortalModule } from '@angular/cdk/portal';\nimport * as i2 from '@angular/cdk/platform';\nimport { getRtlScrollAxisType, PlatformModule } from '@angular/cdk/platform';\nimport * as i2$1 from 'ngx-scrollbar/smooth-scroll';\nimport { SmoothScrollModule } from 'ngx-scrollbar/smooth-scroll';\nimport { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Observable, fromEvent, merge, BehaviorSubject, Subscription, EMPTY, of, Subject, animationFrameScheduler } from 'rxjs';\nimport { tap, map, takeUntil, switchMap, debounceTime, distinctUntilChanged, pluck, mergeMap, pairwise, filter, auditTime } from 'rxjs/operators';\nconst _c0 = [\"scrollbarY\"];\nconst _c1 = [\"scrollbarX\"];\nconst _c2 = [\"*\"];\nfunction NgScrollbar_ng_container_5_scrollbar_x_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"scrollbar-x\", null, 0);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"scrollable\", ctx_r0.state.isHorizontallyScrollable)(\"fit\", ctx_r0.state.verticalUsed);\n }\n}\nfunction NgScrollbar_ng_container_5_scrollbar_y_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"scrollbar-y\", null, 1);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"scrollable\", ctx_r0.state.isVerticallyScrollable)(\"fit\", ctx_r0.state.horizontalUsed);\n }\n}\nfunction NgScrollbar_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, NgScrollbar_ng_container_5_scrollbar_x_1_Template, 2, 2, \"scrollbar-x\", 5)(2, NgScrollbar_ng_container_5_scrollbar_y_2_Template, 2, 2, \"scrollbar-y\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.state.horizontalUsed);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.state.verticalUsed);\n }\n}\nfunction preventSelection(doc) {\n return tap(() => {\n doc.onselectstart = () => false;\n });\n}\nfunction enableSelection(doc) {\n return tap(() => {\n doc.onselectstart = null;\n });\n}\nfunction stopPropagation() {\n return tap(e => e.stopPropagation());\n}\n/**\r\n * Check if pointer is within scrollbar bounds\r\n */\nfunction isWithinBounds(e, rect) {\n return e.clientX >= rect.left && e.clientX <= rect.left + rect.width && e.clientY >= rect.top && e.clientY <= rect.top + rect.height;\n}\nlet ScrollViewport = /*#__PURE__*/(() => {\n class ScrollViewport {\n // Get viewport size, clientHeight or clientWidth\n get clientHeight() {\n return this.nativeElement.clientHeight;\n }\n get clientWidth() {\n return this.nativeElement.clientWidth;\n }\n get scrollHeight() {\n return this.nativeElement.scrollHeight;\n }\n get scrollWidth() {\n return this.nativeElement.scrollWidth;\n }\n // Get viewport scroll offset, scrollTop or scrollLeft\n get scrollTop() {\n return this.nativeElement.scrollTop;\n }\n get scrollLeft() {\n return this.nativeElement.scrollLeft;\n }\n // Get the available scrollable size\n get scrollMaxX() {\n return this.scrollWidth - this.clientWidth;\n }\n get scrollMaxY() {\n return this.scrollHeight - this.clientHeight;\n }\n get contentHeight() {\n return this.contentWrapperElement?.clientHeight || 0;\n }\n get contentWidth() {\n return this.contentWrapperElement?.clientWidth || 0;\n }\n constructor(viewPort) {\n this.viewPort = viewPort;\n this.nativeElement = viewPort.nativeElement;\n }\n /**\r\n * Activate viewport pointer events such as 'hovered' and 'clicked' events\r\n */\n activatePointerEvents(propagate, destroyed) {\n this.hovered = new Observable(subscriber => {\n // Stream that emits when pointer is moved over the viewport (used to set the hovered state)\n const mouseMoveStream = fromEvent(this.nativeElement, 'mousemove', {\n passive: true\n });\n const mouseMove = propagate ? mouseMoveStream : mouseMoveStream.pipe(stopPropagation());\n // Stream that emits when pointer leaves the viewport (used to remove the hovered state)\n const mouseLeave = fromEvent(this.nativeElement, 'mouseleave', {\n passive: true\n }).pipe(map(() => false));\n merge(mouseMove, mouseLeave).pipe(tap(e => subscriber.next(e)), takeUntil(destroyed)).subscribe();\n });\n this.clicked = new Observable(subscriber => {\n const mouseDown = fromEvent(this.nativeElement, 'mousedown', {\n passive: true\n }).pipe(tap(e => subscriber.next(e)));\n const mouseUp = fromEvent(this.nativeElement, 'mouseup', {\n passive: true\n }).pipe(tap(() => subscriber.next(false)));\n mouseDown.pipe(switchMap(() => mouseUp), takeUntil(destroyed)).subscribe();\n });\n }\n /**\r\n * Set this directive as a non-functional wrapper, called when a custom viewport is used\r\n */\n setAsWrapper() {\n // In this case the default viewport and the default content wrapper will act as a mask\n this.nativeElement.className = 'ng-native-scrollbar-hider ng-scroll-layer';\n if (this.nativeElement.firstElementChild) {\n this.nativeElement.firstElementChild.className = 'ng-scroll-layer';\n }\n }\n /**\r\n * Set this directive as the viewport, called when no custom viewport is used\r\n */\n setAsViewport(customClassName) {\n this.nativeElement.className = `ng-native-scrollbar-hider ng-scroll-viewport ${customClassName}`;\n // Check if the custom viewport has only one child and set it as the content wrapper\n if (this.nativeElement.firstElementChild) {\n this.contentWrapperElement = this.nativeElement.firstElementChild;\n this.contentWrapperElement.classList.add('ng-scroll-content');\n }\n }\n /**\r\n * Scroll viewport vertically\r\n */\n scrollYTo(value) {\n this.nativeElement.scrollTop = value;\n }\n /**\r\n * Scroll viewport horizontally\r\n */\n scrollXTo(value) {\n this.nativeElement.scrollLeft = value;\n }\n static {\n this.ɵfac = function ScrollViewport_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollViewport)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ScrollViewport,\n selectors: [[\"\", \"scrollViewport\", \"\"]],\n standalone: false\n });\n }\n }\n return ScrollViewport;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgScrollbarBase = /*#__PURE__*/(() => {\n class NgScrollbarBase {\n static {\n this.ɵfac = function NgScrollbarBase_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgScrollbarBase)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgScrollbarBase,\n standalone: false\n });\n }\n }\n return NgScrollbarBase;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst NG_SCROLLBAR_OPTIONS = new InjectionToken('NG_SCROLLBAR_OPTIONS');\nconst defaultOptions = {\n viewClass: '',\n trackClass: '',\n thumbClass: '',\n track: 'vertical',\n appearance: 'compact',\n visibility: 'native',\n position: 'native',\n pointerEventsMethod: 'viewport',\n trackClickScrollDuration: 300,\n minThumbSize: 20,\n windowResizeDebounce: 0,\n sensorDebounce: 0,\n scrollAuditTime: 0,\n viewportPropagateMouseMove: true,\n autoHeightDisabled: true,\n autoWidthDisabled: true,\n sensorDisabled: false,\n pointerEventsDisabled: false\n};\nlet ScrollbarManager = /*#__PURE__*/(() => {\n class ScrollbarManager {\n constructor(options) {\n this.globalOptions = options ? {\n ...defaultOptions,\n ...options\n } : defaultOptions;\n this.rtlScrollAxisType = getRtlScrollAxisType();\n }\n static {\n this.ɵfac = function ScrollbarManager_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollbarManager)(i0.ɵɵinject(NG_SCROLLBAR_OPTIONS, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollbarManager,\n factory: ScrollbarManager.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return ScrollbarManager;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NativeScrollbarSizeFactory = /*#__PURE__*/(() => {\n class NativeScrollbarSizeFactory {\n constructor(document, manager, platform) {\n this.document = document;\n this.manager = manager;\n this.platform = platform;\n this._scrollbarSize = new BehaviorSubject(this.getNativeScrollbarSize());\n this.scrollbarSize = this._scrollbarSize.asObservable();\n // Calculate native scrollbar size on window resize event, because the size changes if use zoomed in/out\n if (platform.isBrowser) {\n fromEvent(this.document.defaultView, 'resize', {\n passive: true\n }).pipe(debounceTime(this.manager.globalOptions.windowResizeDebounce), map(() => this.getNativeScrollbarSize()), distinctUntilChanged(), tap(size => this._scrollbarSize.next(size))).subscribe();\n }\n }\n /**\r\n * Get native scrollbar size\r\n */\n getNativeScrollbarSize() {\n // Avoid executing browser code in server side rendering\n if (!this.platform.isBrowser) {\n return 0;\n }\n // Hide iOS browsers native scrollbar\n if (this.platform.IOS) {\n return 6;\n }\n const box = this.document.createElement('div');\n box.className = 'ng-scrollbar-measure';\n box.style.left = '0px';\n box.style.overflow = 'scroll';\n box.style.position = 'fixed';\n box.style.top = '-9999px';\n this.document.body.appendChild(box);\n const size = box.getBoundingClientRect().right;\n this.document.body.removeChild(box);\n return size;\n }\n static {\n this.ɵfac = function NativeScrollbarSizeFactory_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NativeScrollbarSizeFactory)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(ScrollbarManager), i0.ɵɵinject(i2.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NativeScrollbarSizeFactory,\n factory: NativeScrollbarSizeFactory.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return NativeScrollbarSizeFactory;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet HideNativeScrollbar = /*#__PURE__*/(() => {\n class HideNativeScrollbar {\n constructor(el, renderer, hideNativeScrollbar) {\n this.renderer = renderer;\n this.hideNativeScrollbar = hideNativeScrollbar;\n this._subscriber = Subscription.EMPTY;\n this._subscriber = hideNativeScrollbar.scrollbarSize.subscribe(size => {\n this.renderer.setStyle(el.nativeElement, '--native-scrollbar-size', `-${size}px`, RendererStyleFlags2.DashCase);\n });\n }\n ngOnDestroy() {\n this._subscriber.unsubscribe();\n }\n static {\n this.ɵfac = function HideNativeScrollbar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HideNativeScrollbar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(NativeScrollbarSizeFactory));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: HideNativeScrollbar,\n selectors: [[\"\", \"hideNativeScrollbar\", \"\"]],\n standalone: false\n });\n }\n }\n return HideNativeScrollbar;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgAttr = /*#__PURE__*/(() => {\n class NgAttr {\n constructor(el) {\n this.el = el;\n }\n set ngAttr(attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n this.el.nativeElement.setAttribute(key, value);\n }\n }\n static {\n this.ɵfac = function NgAttr_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgAttr)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgAttr,\n selectors: [[\"\", \"ngAttr\", \"\"]],\n inputs: {\n ngAttr: \"ngAttr\"\n },\n standalone: false\n });\n }\n }\n return NgAttr;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ResizeSensor = /*#__PURE__*/(() => {\n class ResizeSensor {\n /** Debounce interval for emitting the changes. */\n get debounce() {\n return this._debounce;\n }\n set debounce(value) {\n this._debounce = coerceNumberProperty(value);\n this._subscribe();\n }\n /** Whether ResizeObserver is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._disabled ? this._unsubscribe() : this._subscribe();\n }\n constructor(zone, platform, scrollbar) {\n this.zone = zone;\n this.platform = platform;\n this.scrollbar = scrollbar;\n this._disabled = false;\n this._currentSubscription = null;\n this.event = new EventEmitter();\n if (!scrollbar) {\n throw new Error('[NgScrollbar Resize Sensor Directive]: Host element must be an NgScrollbar component.');\n }\n }\n ngAfterContentInit() {\n if (!this._currentSubscription && !this._disabled) {\n this._subscribe();\n }\n }\n ngOnDestroy() {\n this._unsubscribe();\n }\n _subscribe() {\n this._unsubscribe();\n if (this.platform.isBrowser) {\n const stream = new Observable(observer => {\n this._resizeObserver = new ResizeObserver(e => observer.next(e));\n this._resizeObserver.observe(this.scrollbar.viewport.nativeElement);\n if (this.scrollbar.viewport.contentWrapperElement) {\n this._resizeObserver.observe(this.scrollbar.viewport.contentWrapperElement);\n }\n });\n this.zone.runOutsideAngular(() => {\n this._currentSubscription = (this._debounce ? stream.pipe(debounceTime(this._debounce)) : stream).subscribe(this.event);\n });\n }\n }\n _unsubscribe() {\n this._resizeObserver?.disconnect();\n this._currentSubscription?.unsubscribe();\n }\n static {\n this.ɵfac = function ResizeSensor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ResizeSensor)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(NgScrollbarBase));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ResizeSensor,\n selectors: [[\"\", \"resizeSensor\", \"\"]],\n inputs: {\n debounce: [0, \"sensorDebounce\", \"debounce\"],\n disabled: [0, \"sensorDisabled\", \"disabled\"]\n },\n outputs: {\n event: \"resizeSensor\"\n },\n standalone: false\n });\n }\n }\n return ResizeSensor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// @dynamic\nlet TrackAdapter = /*#__PURE__*/(() => {\n class TrackAdapter {\n // Stream that emits when the track element is clicked\n get clicked() {\n const mouseDown = fromEvent(this.trackElement, 'mousedown', {\n passive: true\n }).pipe(stopPropagation(), preventSelection(this.document));\n const mouseup = fromEvent(this.document, 'mouseup', {\n passive: true\n }).pipe(stopPropagation(), enableSelection(this.document), switchMap(() => EMPTY));\n return merge(mouseDown, mouseup);\n }\n // Get track client rect\n get clientRect() {\n return this.trackElement.getBoundingClientRect();\n }\n constructor(cmp, trackElement, document) {\n this.cmp = cmp;\n this.trackElement = trackElement;\n this.document = document;\n }\n /**\r\n * Stream that emits when scrollbar track is clicked\r\n */\n onTrackClicked(e, thumbSize, scrollSize) {\n return of(e).pipe(pluck(this.pageProperty),\n // Calculate scrollTo position\n map(pageOffset => {\n const clickOffset = pageOffset - this.offset;\n const offset = clickOffset - thumbSize / 2;\n const ratio = offset / this.size;\n return ratio * scrollSize;\n }),\n // Smooth scroll to position\n tap(value => {\n this.cmp.scrollTo({\n ...this.mapToScrollToOption(value),\n duration: coerceNumberProperty(this.cmp.trackClickScrollDuration)\n });\n }));\n }\n static {\n this.ɵfac = function TrackAdapter_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TrackAdapter)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(HTMLElement), i0.ɵɵdirectiveInject(Document));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TrackAdapter,\n standalone: false\n });\n }\n }\n return TrackAdapter;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TrackXDirective = /*#__PURE__*/(() => {\n class TrackXDirective extends TrackAdapter {\n get pageProperty() {\n return 'pageX';\n }\n get offset() {\n return this.clientRect.left;\n }\n get size() {\n return this.trackElement.clientWidth;\n }\n constructor(cmp, trackElement, document) {\n super(cmp, trackElement.nativeElement, document);\n this.cmp = cmp;\n this.document = document;\n }\n mapToScrollToOption(value) {\n return {\n left: value\n };\n }\n static {\n this.ɵfac = function TrackXDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TrackXDirective)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TrackXDirective,\n selectors: [[\"\", \"scrollbarTrackX\", \"\"]],\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return TrackXDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TrackYDirective = /*#__PURE__*/(() => {\n class TrackYDirective extends TrackAdapter {\n get pageProperty() {\n return 'pageY';\n }\n get offset() {\n return this.clientRect.top;\n }\n get size() {\n return this.trackElement.clientHeight;\n }\n constructor(cmp, trackElement, document) {\n super(cmp, trackElement.nativeElement, document);\n this.cmp = cmp;\n this.document = document;\n }\n mapToScrollToOption(value) {\n return {\n top: value\n };\n }\n static {\n this.ɵfac = function TrackYDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TrackYDirective)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TrackYDirective,\n selectors: [[\"\", \"scrollbarTrackY\", \"\"]],\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return TrackYDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// @dynamic\nlet ThumbAdapter = /*#__PURE__*/(() => {\n class ThumbAdapter {\n get trackMax() {\n return this.track.size - this.size;\n }\n // Get thumb client rect\n get clientRect() {\n return this.thumbElement.getBoundingClientRect();\n }\n // Stream that emits when scrollbar thumb is clicked\n get clicked() {\n return fromEvent(this.thumbElement, 'mousedown', {\n passive: true\n }).pipe(stopPropagation());\n }\n constructor(cmp, track, thumbElement, document) {\n this.cmp = cmp;\n this.track = track;\n this.thumbElement = thumbElement;\n this.document = document;\n // Stream that emits dragging state\n this._dragging = new Subject();\n this.dragging = this._dragging.pipe(distinctUntilChanged());\n }\n // Calculate and update thumb position and size\n update() {\n const size = calculateThumbSize(this.track.size, this.viewportScrollSize, this.cmp.minThumbSize);\n const position = calculateThumbPosition(this.viewportScrollOffset, this.viewportScrollMax, this.trackMax);\n animationFrameScheduler.schedule(() => this.updateStyles(this.handleDirection(position, this.trackMax), size));\n }\n /**\r\n * Stream that emits the 'scrollTo' position when a scrollbar thumb element is dragged\r\n * This function is called by thumb drag event using viewport or scrollbar pointer events\r\n */\n dragged(event) {\n let trackMaxStart;\n let scrollMaxStart;\n const dragStart = of(event).pipe(preventSelection(this.document), tap(() => {\n // Capture scrollMax and trackMax once\n trackMaxStart = this.trackMax;\n scrollMaxStart = this.viewportScrollMax;\n this.setDragging(true);\n }));\n const dragging = fromEvent(this.document, 'mousemove', {\n capture: true,\n passive: true\n }).pipe(stopPropagation());\n const dragEnd = fromEvent(this.document, 'mouseup', {\n capture: true\n }).pipe(stopPropagation(), enableSelection(this.document), tap(() => this.setDragging(false)));\n return dragStart.pipe(pluck(this.pageProperty), map(pageOffset => pageOffset - this.dragStartOffset), mergeMap(mouseDownOffset => dragging.pipe(pluck(this.clientProperty),\n // Calculate how far the pointer is from the top/left of the scrollbar (minus the dragOffset).\n map(mouseOffset => mouseOffset - this.track.offset), map(offset => scrollMaxStart * (offset - mouseDownOffset) / trackMaxStart), map(position => this.handleDrag(position, scrollMaxStart)), tap(position => this.scrollTo(position)), takeUntil(dragEnd))));\n }\n static {\n this.ɵfac = function ThumbAdapter_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ThumbAdapter)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(TrackAdapter), i0.ɵɵdirectiveInject(HTMLElement), i0.ɵɵdirectiveInject(Document));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ThumbAdapter,\n outputs: {\n dragging: \"dragging\"\n },\n standalone: false\n });\n }\n }\n return ThumbAdapter;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\r\n * Calculate scrollbar thumb size\r\n */\nfunction calculateThumbSize(trackSize, contentSize, minThumbSize) {\n const scrollbarRatio = trackSize / contentSize;\n const thumbSize = scrollbarRatio * trackSize;\n return Math.max(~~thumbSize, minThumbSize);\n}\n/**\r\n * Calculate scrollbar thumb position\r\n */\nfunction calculateThumbPosition(scrollPosition, scrollMax, trackMax) {\n return scrollPosition * trackMax / scrollMax;\n}\nlet ThumbXDirective = /*#__PURE__*/(() => {\n class ThumbXDirective extends ThumbAdapter {\n get clientProperty() {\n return 'clientX';\n }\n get pageProperty() {\n return 'pageX';\n }\n get viewportScrollSize() {\n return this.cmp.viewport.scrollWidth;\n }\n get viewportScrollOffset() {\n return this.cmp.viewport.scrollLeft;\n }\n get viewportScrollMax() {\n return this.cmp.viewport.scrollMaxX;\n }\n get dragStartOffset() {\n return this.clientRect.left + this.document.defaultView.pageXOffset || 0;\n }\n get size() {\n return this.thumbElement.clientWidth;\n }\n constructor(cmp, track, element, document, dir) {\n super(cmp, track, element.nativeElement, document);\n this.cmp = cmp;\n this.track = track;\n this.element = element;\n this.document = document;\n this.dir = dir;\n }\n updateStyles(position, size) {\n this.thumbElement.style.width = `${size}px`;\n this.thumbElement.style.transform = `translate3d(${position}px, 0, 0)`;\n }\n handleDrag(position, scrollMax) {\n if (this.dir.value === 'rtl') {\n if (this.cmp.manager.rtlScrollAxisType === 1 /* RtlScrollAxisType.NEGATED */) {\n return position - scrollMax;\n }\n if (this.cmp.manager.rtlScrollAxisType === 2 /* RtlScrollAxisType.INVERTED */) {\n return scrollMax - position;\n }\n // Keeping this as a memo\n // if (this.rtlScrollAxisType === RtlScrollAxisType.NORMAL) {\n // return position;\n // }\n }\n return position;\n }\n handleDirection(position, trackMax) {\n if (this.dir.value === 'rtl') {\n if (this.cmp.manager.rtlScrollAxisType === 2 /* RtlScrollAxisType.INVERTED */) {\n return -position;\n }\n if (this.cmp.manager.rtlScrollAxisType === 0 /* RtlScrollAxisType.NORMAL */) {\n return position - trackMax;\n }\n // Keeping this as a memo\n // if (this.rtlScrollAxisType === RtlScrollAxisType.NEGATED) {\n // return position;\n // }\n }\n return position;\n }\n setDragging(value) {\n this.cmp.setDragging({\n horizontalDragging: value\n });\n }\n scrollTo(position) {\n this.cmp.viewport.scrollXTo(position);\n }\n static {\n this.ɵfac = function ThumbXDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ThumbXDirective)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(TrackXDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i3.Directionality));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ThumbXDirective,\n selectors: [[\"\", \"scrollbarThumbX\", \"\"]],\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return ThumbXDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ThumbYDirective = /*#__PURE__*/(() => {\n class ThumbYDirective extends ThumbAdapter {\n get pageProperty() {\n return 'pageY';\n }\n get viewportScrollSize() {\n return this.cmp.viewport.scrollHeight;\n }\n get viewportScrollOffset() {\n return this.cmp.viewport.scrollTop;\n }\n get viewportScrollMax() {\n return this.cmp.viewport.scrollMaxY;\n }\n get clientProperty() {\n return 'clientY';\n }\n get dragStartOffset() {\n return this.clientRect.top + this.document.defaultView.pageYOffset || 0;\n }\n get size() {\n return this.thumbElement.clientHeight;\n }\n constructor(cmp, track, element, document) {\n super(cmp, track, element.nativeElement, document);\n this.cmp = cmp;\n this.track = track;\n this.element = element;\n this.document = document;\n }\n updateStyles(position, size) {\n this.thumbElement.style.height = `${size}px`;\n this.thumbElement.style.transform = `translate3d(0px, ${position}px, 0)`;\n }\n handleDrag(position) {\n return position;\n }\n handleDirection(position) {\n return position;\n }\n setDragging(value) {\n this.cmp.setDragging({\n verticalDragging: value\n });\n }\n scrollTo(position) {\n this.cmp.viewport.scrollYTo(position);\n }\n static {\n this.ɵfac = function ThumbYDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ThumbYDirective)(i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(TrackYDirective), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ThumbYDirective,\n selectors: [[\"\", \"scrollbarThumbY\", \"\"]],\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return ThumbYDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// @dynamic\nlet Scrollbar = /*#__PURE__*/(() => {\n class Scrollbar {\n constructor(el, cmp, platform, document, zone) {\n this.el = el;\n this.cmp = cmp;\n this.platform = platform;\n this.document = document;\n this.zone = zone;\n // Stream that emits to unsubscribe from all streams\n this.destroyed = new Subject();\n }\n /**\r\n * Activate scrollbar pointer events\r\n */\n activatePointerEvents() {\n // Stream that emits when scrollbar thumb is dragged\n let thumbDragEvent;\n // Stream that emits when scrollbar track is clicked\n let trackClickEvent;\n // Stream that emits when scrollbar track is hovered\n let trackHoveredEvent;\n // Set the method used for the pointer events option\n if (this.cmp.pointerEventsMethod === 'viewport') {\n // Pointer events using the viewport\n this.viewportTrackClicked = new Subject();\n this.viewportThumbClicked = new Subject();\n // Activate the pointer events of the viewport directive\n this.cmp.viewport.activatePointerEvents(this.cmp.viewportPropagateMouseMove, this.destroyed);\n // Set streams\n thumbDragEvent = this.viewportThumbClicked;\n trackClickEvent = this.viewportTrackClicked;\n trackHoveredEvent = this.cmp.viewport.hovered.pipe(\n // Check if track is hovered\n map(e => e ? isWithinBounds(e, this.el.getBoundingClientRect()) : false), distinctUntilChanged(),\n // Enable / disable text selection\n tap(hovered => this.document.onselectstart = hovered ? () => false : null));\n this.cmp.viewport.clicked.pipe(tap(e => {\n if (e) {\n if (isWithinBounds(e, this.thumb.clientRect)) {\n this.viewportThumbClicked.next(e);\n } else if (isWithinBounds(e, this.track.clientRect)) {\n this.cmp.setClicked(true);\n this.viewportTrackClicked.next(e);\n }\n } else {\n this.cmp.setClicked(false);\n }\n }), takeUntil(this.destroyed)).subscribe();\n } else {\n // Pointer events method is using 'scrollbar'\n thumbDragEvent = this.thumb.clicked;\n trackClickEvent = this.track.clicked;\n trackHoveredEvent = this.hovered;\n }\n return merge(\n // Activate scrollbar hovered event\n trackHoveredEvent.pipe(tap(e => this.setHovered(e))),\n // Activate scrollbar thumb drag event\n thumbDragEvent.pipe(switchMap(e => this.thumb.dragged(e))),\n // Activate scrollbar track click event\n trackClickEvent.pipe(switchMap(e => this.track.onTrackClicked(e, this.thumb.size, this.viewportScrollSize))));\n }\n // Stream that emits when the track element is hovered\n get hovered() {\n const mouseEnter = fromEvent(this.el, 'mouseenter', {\n passive: true\n }).pipe(stopPropagation(), map(() => true));\n const mouseLeave = fromEvent(this.el, 'mouseleave', {\n passive: true\n }).pipe(stopPropagation(), map(() => false));\n return merge(mouseEnter, mouseLeave);\n }\n ngOnInit() {\n this.zone.runOutsideAngular(() => {\n // Activate pointer events on Desktop only\n if (!(this.platform.IOS || this.platform.ANDROID) && !this.cmp.pointerEventsDisabled) {\n this.activatePointerEvents().pipe(takeUntil(this.destroyed)).subscribe();\n }\n // Update scrollbar thumb when viewport is scrolled and when scrollbar component is updated\n merge(this.cmp.scrolled, this.cmp.updated).pipe(tap(() => this.thumb?.update()), takeUntil(this.destroyed)).subscribe();\n });\n }\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n // Clean up viewport streams if used\n if (this.viewportThumbClicked && this.viewportTrackClicked) {\n this.viewportTrackClicked.complete();\n this.viewportThumbClicked.complete();\n }\n }\n static {\n this.ɵfac = function Scrollbar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Scrollbar)(i0.ɵɵdirectiveInject(HTMLElement), i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(Document), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Scrollbar,\n standalone: false\n });\n }\n }\n return Scrollbar;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ScrollbarY = /*#__PURE__*/(() => {\n class ScrollbarY extends Scrollbar {\n get viewportScrollSize() {\n return this.cmp.viewport.scrollHeight;\n }\n constructor(el, cmp, platform, document, zone) {\n super(el.nativeElement, cmp, platform, document, zone);\n this.cmp = cmp;\n this.platform = platform;\n this.document = document;\n this.zone = zone;\n }\n setHovered(value) {\n this.cmp.setHovered({\n verticalHovered: value\n });\n }\n static {\n this.ɵfac = function ScrollbarY_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollbarY)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ScrollbarY,\n selectors: [[\"scrollbar-y\"]],\n viewQuery: function ScrollbarY_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TrackYDirective, 7);\n i0.ɵɵviewQuery(ThumbYDirective, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.track = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.thumb = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function ScrollbarY_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"scrollbar-control\", true);\n }\n },\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 6,\n consts: [[\"scrollbarTrackY\", \"\"], [\"scrollbarThumbY\", \"\"]],\n template: function ScrollbarY_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate1(\"ng-scrollbar-track \", ctx.cmp.trackClass, \"\");\n i0.ɵɵadvance();\n i0.ɵɵclassMapInterpolate1(\"ng-scrollbar-thumb \", ctx.cmp.thumbClass, \"\");\n }\n },\n dependencies: [ThumbYDirective, TrackYDirective],\n styles: [\".ng-scrollbar-wrapper>scrollbar-y.scrollbar-control{width:var(--vertical-scrollbar-total-size)} .ng-scrollbar-wrapper>scrollbar-y.scrollbar-control>.ng-scrollbar-track{width:var(--vertical-scrollbar-size);height:calc(100% - var(--scrollbar-padding) * 2)} .ng-scrollbar-wrapper>scrollbar-y.scrollbar-control>.ng-scrollbar-track>.ng-scrollbar-thumb{height:0;width:100%} .ng-scrollbar-wrapper[verticalHovered=true]>scrollbar-y.scrollbar-control .ng-scrollbar-thumb, .ng-scrollbar-wrapper[verticalDragging=true]>scrollbar-y.scrollbar-control .ng-scrollbar-thumb{background-color:var(--scrollbar-thumb-hover-color)} .ng-scrollbar-wrapper[deactivated=false]>scrollbar-y.scrollbar-control{top:0;bottom:0} .ng-scrollbar-wrapper[deactivated=false][dir=ltr]>scrollbar-y.scrollbar-control{right:0;left:unset} .ng-scrollbar-wrapper[deactivated=false][dir=ltr][position=invertY]>scrollbar-y.scrollbar-control, .ng-scrollbar-wrapper[deactivated=false][dir=ltr][position=invertAll]>scrollbar-y.scrollbar-control{left:0;right:unset} .ng-scrollbar-wrapper[deactivated=false][dir=rtl]>scrollbar-y.scrollbar-control{left:0;right:unset} .ng-scrollbar-wrapper[deactivated=false][dir=rtl][position=invertY]>scrollbar-y.scrollbar-control, .ng-scrollbar-wrapper[deactivated=false][dir=rtl][position=invertAll]>scrollbar-y.scrollbar-control{left:unset;right:0} .ng-scrollbar-wrapper[deactivated=false][track=all]>scrollbar-y.scrollbar-control[fit=true]{bottom:var(--scrollbar-total-size);top:0} .ng-scrollbar-wrapper[deactivated=false][track=all][position=invertX]>scrollbar-y.scrollbar-control[fit=true], .ng-scrollbar-wrapper[deactivated=false][track=all][position=invertAll]>scrollbar-y.scrollbar-control[fit=true]{top:var(--scrollbar-total-size);bottom:0}\"],\n changeDetection: 0\n });\n }\n }\n return ScrollbarY;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ScrollbarX = /*#__PURE__*/(() => {\n class ScrollbarX extends Scrollbar {\n get viewportScrollSize() {\n return this.cmp.viewport.scrollWidth;\n }\n constructor(el, cmp, platform, document, zone) {\n super(el.nativeElement, cmp, platform, document, zone);\n this.cmp = cmp;\n this.platform = platform;\n this.document = document;\n this.zone = zone;\n }\n setHovered(value) {\n this.cmp.setHovered({\n horizontalHovered: value\n });\n }\n static {\n this.ɵfac = function ScrollbarX_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ScrollbarX)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NgScrollbarBase), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ScrollbarX,\n selectors: [[\"scrollbar-x\"]],\n viewQuery: function ScrollbarX_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TrackXDirective, 7);\n i0.ɵɵviewQuery(ThumbXDirective, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.track = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.thumb = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function ScrollbarX_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"scrollbar-control\", true);\n }\n },\n standalone: false,\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 6,\n consts: [[\"scrollbarTrackX\", \"\"], [\"scrollbarThumbX\", \"\"]],\n template: function ScrollbarX_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate1(\"ng-scrollbar-track \", ctx.cmp.trackClass, \"\");\n i0.ɵɵadvance();\n i0.ɵɵclassMapInterpolate1(\"ng-scrollbar-thumb \", ctx.cmp.thumbClass, \"\");\n }\n },\n dependencies: [ThumbXDirective, TrackXDirective],\n styles: [\".ng-scrollbar-wrapper>scrollbar-x.scrollbar-control{height:var(--horizontal-scrollbar-total-size)} .ng-scrollbar-wrapper>scrollbar-x.scrollbar-control>.ng-scrollbar-track{height:var(--horizontal-scrollbar-size);width:calc(100% - var(--scrollbar-padding) * 2)} .ng-scrollbar-wrapper>scrollbar-x.scrollbar-control>.ng-scrollbar-track>.ng-scrollbar-thumb{width:0;height:100%} .ng-scrollbar-wrapper[horizontalHovered=true]>scrollbar-x.scrollbar-control .ng-scrollbar-thumb, .ng-scrollbar-wrapper[horizontalDragging=true]>scrollbar-x.scrollbar-control .ng-scrollbar-thumb{background-color:var(--scrollbar-thumb-hover-color)} .ng-scrollbar-wrapper[position=invertX]>scrollbar-x.scrollbar-control, .ng-scrollbar-wrapper[position=invertAll]>scrollbar-x.scrollbar-control{top:0;bottom:unset} .ng-scrollbar-wrapper[deactivated=false]>scrollbar-x.scrollbar-control{left:0;right:0;bottom:0;top:unset} .ng-scrollbar-wrapper[deactivated=false][position=invertX]>scrollbar-x.scrollbar-control, .ng-scrollbar-wrapper[deactivated=false][position=invertAll]>scrollbar-x.scrollbar-control{top:0;bottom:unset} .ng-scrollbar-wrapper[deactivated=false][track=all][dir=ltr]>scrollbar-x.scrollbar-control[fit=true]{right:var(--scrollbar-total-size);left:0} .ng-scrollbar-wrapper[deactivated=false][track=all][dir=ltr][position=invertY]>scrollbar-x.scrollbar-control[fit=true], .ng-scrollbar-wrapper[deactivated=false][track=all][dir=ltr][position=invertAll]>scrollbar-x.scrollbar-control[fit=true]{left:var(--scrollbar-total-size);right:0} .ng-scrollbar-wrapper[deactivated=false][track=all][dir=rtl]>scrollbar-x.scrollbar-control[fit=true]{left:var(--scrollbar-total-size);right:0} .ng-scrollbar-wrapper[deactivated=false][track=all][dir=rtl][position=invertY]>scrollbar-x.scrollbar-control[fit=true], .ng-scrollbar-wrapper[deactivated=false][track=all][dir=rtl][position=invertAll]>scrollbar-x.scrollbar-control[fit=true]{right:var(--scrollbar-total-size);left:0}\"],\n changeDetection: 0\n });\n }\n }\n return ScrollbarX;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgScrollbar = /*#__PURE__*/(() => {\n class NgScrollbar {\n /** Disable custom scrollbar and switch back to native scrollbar */\n get disabled() {\n return this._disabled;\n }\n set disabled(disabled) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n /** Whether ResizeObserver is disabled */\n get sensorDisabled() {\n return this._sensorDisabled;\n }\n set sensorDisabled(disabled) {\n this._sensorDisabled = coerceBooleanProperty(disabled);\n }\n /** A flag used to enable/disable the scrollbar thumb dragged event */\n get pointerEventsDisabled() {\n return this._pointerEventsDisabled;\n }\n set pointerEventsDisabled(disabled) {\n this._pointerEventsDisabled = coerceBooleanProperty(disabled);\n }\n /** Enable viewport mousemove event propagation (only when pointerEventsMethod=\"viewport\") */\n get viewportPropagateMouseMove() {\n return this._viewportPropagateMouseMove;\n }\n set viewportPropagateMouseMove(disabled) {\n this._viewportPropagateMouseMove = coerceBooleanProperty(disabled);\n }\n /** Disable auto-height */\n get autoHeightDisabled() {\n return this._autoHeightDisabled;\n }\n set autoHeightDisabled(disabled) {\n this._autoHeightDisabled = coerceBooleanProperty(disabled);\n }\n /** Disable auto-width */\n get autoWidthDisabled() {\n return this._autoWidthDisabled;\n }\n set autoWidthDisabled(disabled) {\n this._autoWidthDisabled = coerceBooleanProperty(disabled);\n }\n get nativeElement() {\n return this.el.nativeElement;\n }\n constructor(el, zone, changeDetectorRef, dir, smoothScroll, manager) {\n this.el = el;\n this.zone = zone;\n this.changeDetectorRef = changeDetectorRef;\n this.dir = dir;\n this.smoothScroll = smoothScroll;\n this.manager = manager;\n this._disabled = false;\n this._sensorDisabled = this.manager.globalOptions.sensorDisabled;\n this._pointerEventsDisabled = this.manager.globalOptions.pointerEventsDisabled;\n this._autoHeightDisabled = this.manager.globalOptions.autoHeightDisabled;\n this._autoWidthDisabled = this.manager.globalOptions.autoWidthDisabled;\n this._viewportPropagateMouseMove = this.manager.globalOptions.viewportPropagateMouseMove;\n /** A class forwarded to scrollable viewport element */\n this.viewClass = this.manager.globalOptions.viewClass;\n /** A class forwarded to the scrollbar track element */\n this.trackClass = this.manager.globalOptions.trackClass;\n /** A class forwarded to the scrollbar thumb element */\n this.thumbClass = this.manager.globalOptions.thumbClass;\n /** Minimum scrollbar thumb size */\n this.minThumbSize = this.manager.globalOptions.minThumbSize;\n /** The duration which the scrolling takes to reach its target when scrollbar rail is clicked */\n this.trackClickScrollDuration = this.manager.globalOptions.trackClickScrollDuration;\n /**\r\n * Sets the pointer events method\r\n * Use viewport pointer events to handle dragging and track click (This makes scrolling work when mouse is over the scrollbar)\r\n * Use scrollbar pointer events to handle dragging and track click\r\n */\n this.pointerEventsMethod = this.manager.globalOptions.pointerEventsMethod;\n /**\r\n * Sets the supported scroll track of the viewport, there are 3 options:\r\n *\r\n * - `vertical` Use both vertical and horizontal scrollbar\r\n * - `horizontal` Use both vertical and horizontal scrollbar\r\n * - `all` Use both vertical and horizontal scrollbar\r\n */\n this.track = this.manager.globalOptions.track;\n /**\r\n * When to show the scrollbar, and there are 3 options:\r\n *\r\n * - `native` (default) Scrollbar will be visible when viewport is scrollable like with native scrollbar\r\n * - `hover` Scrollbars are hidden by default, only visible on scrolling or hovering\r\n * - `always` Scrollbars are always shown even if the viewport is not scrollable\r\n */\n this.visibility = this.manager.globalOptions.visibility;\n /**\r\n * Sets the appearance of the scrollbar, there are 2 options:\r\n *\r\n * - `standard` (default) scrollbar space will be reserved just like with native scrollbar.\r\n * - `compact` scrollbar doesn't reserve any space, they are placed over the viewport.\r\n */\n this.appearance = this.manager.globalOptions.appearance;\n /**\r\n * Sets the position of each scrollbar, there are 4 options:\r\n *\r\n * - `native` (Default) Use the default position like in native scrollbar.\r\n * - `invertY` Inverts vertical scrollbar position\r\n * - `invertX` Inverts Horizontal scrollbar position\r\n * - `invertAll` Inverts both scrollbar positions\r\n */\n this.position = this.manager.globalOptions.position;\n /** Debounce interval for detecting changes via ResizeObserver */\n this.sensorDebounce = this.manager.globalOptions.sensorDebounce;\n /** Scroll Audit Time */\n this.scrollAuditTime = this.manager.globalOptions.scrollAuditTime;\n /** Steam that emits when scrollbar is updated */\n this.updated = new EventEmitter();\n /** Set of attributes added on the scrollbar wrapper */\n this.state = {};\n /** Stream that destroys components' observables */\n this.destroyed = new Subject();\n }\n /**\r\n * Update local state with each change detection\r\n */\n updateState() {\n let verticalUsed = false;\n let horizontalUsed = false;\n let isVerticallyScrollable = false;\n let isHorizontallyScrollable = false;\n // Check if vertical scrollbar should be displayed\n if (this.track === 'all' || this.track === 'vertical') {\n isVerticallyScrollable = this.viewport.scrollHeight > this.viewport.clientHeight;\n verticalUsed = this.visibility === 'always' || isVerticallyScrollable;\n }\n // Check if horizontal scrollbar should be displayed\n if (this.track === 'all' || this.track === 'horizontal') {\n isHorizontallyScrollable = this.viewport.scrollWidth > this.viewport.clientWidth;\n horizontalUsed = this.visibility === 'always' || isHorizontallyScrollable;\n }\n // Update inner wrapper attributes\n this.setState({\n position: this.position,\n track: this.track,\n appearance: this.appearance,\n visibility: this.visibility,\n deactivated: this.disabled,\n dir: this.dir.value,\n pointerEventsMethod: this.pointerEventsMethod,\n verticalUsed,\n horizontalUsed,\n isVerticallyScrollable,\n isHorizontallyScrollable\n });\n }\n setState(state) {\n this.state = {\n ...this.state,\n ...state\n };\n this.changeDetectorRef.detectChanges();\n }\n getScrolledByDirection(property) {\n let event;\n return this.scrolled.pipe(tap(e => event = e), pluck('target', property), pairwise(), filter(([prev, curr]) => prev !== curr), map(() => event));\n }\n /**\r\n * Set hovered state if a scrollbar is being hovered\r\n */\n setHovered(hovered) {\n this.zone.run(() => this.setState({\n ...hovered\n }));\n }\n /**\r\n * Set dragging state if a scrollbar is being dragged\r\n */\n setDragging(dragging) {\n this.zone.run(() => this.setState({\n ...dragging\n }));\n }\n /**\r\n * Set clicked state if a scrollbar track is being click\r\n */\n setClicked(scrollbarClicked) {\n this.zone.run(() => this.setState({\n scrollbarClicked\n }));\n }\n ngOnInit() {\n // Set the viewport based on user choice\n this.zone.runOutsideAngular(() => {\n if (this.customViewPort) {\n this.viewport = this.customViewPort;\n this.defaultViewPort.setAsWrapper();\n } else {\n this.viewport = this.defaultViewPort;\n }\n // Activate the selected viewport\n this.viewport.setAsViewport(this.viewClass);\n let scrollStream = fromEvent(this.viewport.nativeElement, 'scroll', {\n passive: true\n });\n // Throttle scroll event if 'scrollAuditTime' is set\n scrollStream = this.scrollAuditTime ? scrollStream.pipe(auditTime(this.scrollAuditTime)) : scrollStream;\n // Initialize scroll streams\n this.scrolled = scrollStream.pipe(takeUntil(this.destroyed));\n this.verticalScrolled = this.getScrolledByDirection('scrollTop');\n this.horizontalScrolled = this.getScrolledByDirection('scrollLeft');\n });\n }\n ngOnChanges(changes) {\n // Update only when the viewport is initialized\n if (this.viewport) {\n this.update();\n }\n }\n ngAfterViewInit() {\n // Initial update\n this.update();\n // Update on dir changes\n this.dir.change.pipe(tap(() => this.update()), takeUntil(this.destroyed)).subscribe();\n }\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n /**\r\n * Update local state and the internal scrollbar controls\r\n */\n update() {\n if (!this.autoHeightDisabled) {\n this.updateHeight();\n }\n if (!this.autoWidthDisabled) {\n this.updateWidth();\n }\n // Re-evaluate the state after setting height or width\n this.updateState();\n this.updated.next();\n }\n /**\r\n * Smooth scroll functions\r\n */\n scrollTo(options) {\n return this.smoothScroll.scrollTo(this.viewport.nativeElement, options);\n }\n /**\r\n * Scroll to element by reference or selector\r\n */\n scrollToElement(target, options) {\n return this.smoothScroll.scrollToElement(this.viewport.nativeElement, target, options);\n }\n updateHeight() {\n // Auto-height: Set component height to content height\n if (this.appearance === 'standard' && this.scrollbarX) {\n // if scrollbar-x is displayed in standard mode\n this.nativeElement.style.height = `${this.viewport.contentHeight + this.scrollbarX.nativeElement.clientHeight}px`;\n } else {\n this.nativeElement.style.height = `${this.viewport.contentHeight}px`;\n }\n }\n updateWidth() {\n // Auto-width: Set component minWidth to content width\n if (this.appearance === 'standard' && this.scrollbarY) {\n // if scrollbar-y is displayed in standard mode\n this.nativeElement.style.width = `${this.viewport.contentWidth + this.scrollbarY.nativeElement.clientWidth}px`;\n } else {\n this.nativeElement.style.width = `${this.viewport.contentWidth}px`;\n }\n }\n static {\n this.ɵfac = function NgScrollbar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgScrollbar)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.Directionality), i0.ɵɵdirectiveInject(i2$1.SmoothScrollManager), i0.ɵɵdirectiveInject(ScrollbarManager));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgScrollbar,\n selectors: [[\"ng-scrollbar\"]],\n contentQueries: function NgScrollbar_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, ScrollViewport, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customViewPort = _t.first);\n }\n },\n viewQuery: function NgScrollbar_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5, ElementRef);\n i0.ɵɵviewQuery(_c1, 5, ElementRef);\n i0.ɵɵviewQuery(ScrollViewport, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollbarY = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollbarX = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.defaultViewPort = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgScrollbar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng-scrollbar\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n sensorDisabled: \"sensorDisabled\",\n pointerEventsDisabled: \"pointerEventsDisabled\",\n viewportPropagateMouseMove: \"viewportPropagateMouseMove\",\n autoHeightDisabled: \"autoHeightDisabled\",\n autoWidthDisabled: \"autoWidthDisabled\",\n viewClass: \"viewClass\",\n trackClass: \"trackClass\",\n thumbClass: \"thumbClass\",\n minThumbSize: \"minThumbSize\",\n trackClickScrollDuration: \"trackClickScrollDuration\",\n pointerEventsMethod: \"pointerEventsMethod\",\n track: \"track\",\n visibility: \"visibility\",\n appearance: \"appearance\",\n position: \"position\",\n sensorDebounce: \"sensorDebounce\",\n scrollAuditTime: \"scrollAuditTime\"\n },\n outputs: {\n updated: \"updated\"\n },\n exportAs: [\"ngScrollbar\"],\n standalone: false,\n features: [i0.ɵɵProvidersFeature([{\n provide: NgScrollbarBase,\n useExisting: NgScrollbar\n }]), i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c2,\n decls: 6,\n vars: 4,\n consts: [[\"scrollbarX\", \"\"], [\"scrollbarY\", \"\"], [1, \"ng-scrollbar-wrapper\", 3, \"ngAttr\"], [1, \"ng-scroll-viewport-wrapper\", 3, \"resizeSensor\", \"sensorDebounce\", \"sensorDisabled\"], [\"scrollViewport\", \"\", \"hideNativeScrollbar\", \"\"], [4, \"ngIf\"]],\n template: function NgScrollbar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"div\", 3);\n i0.ɵɵlistener(\"resizeSensor\", function NgScrollbar_Template_div_resizeSensor_1_listener() {\n return ctx.update();\n });\n i0.ɵɵelementStart(2, \"div\", 4)(3, \"div\");\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(5, NgScrollbar_ng_container_5_Template, 3, 2, \"ng-container\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngAttr\", ctx.state);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"sensorDebounce\", ctx.sensorDebounce)(\"sensorDisabled\", ctx.sensorDisabled);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", !ctx.disabled);\n }\n },\n dependencies: [i4.NgIf, ScrollViewport, HideNativeScrollbar, NgAttr, ResizeSensor, ScrollbarY, ScrollbarX],\n styles: [\".ng-scrollbar-measure{scrollbar-width:none;-ms-overflow-style:none} .ng-scrollbar-measure::-webkit-scrollbar{display:none}[_nghost-%COMP%]{--scrollbar-border-radius: 7px;--scrollbar-padding: 4px;--scrollbar-track-color: transparent;--scrollbar-thumb-color: rgba(0, 0, 0, .2);--scrollbar-thumb-hover-color: var(--scrollbar-thumb-color);--scrollbar-size: 5px;--scrollbar-hover-size: var(--scrollbar-size);--scrollbar-overscroll-behavior: initial;--scrollbar-transition-duration: .4s;--scrollbar-transition-delay: .8s;--scrollbar-thumb-transition: height ease-out .15s, width ease-out .15s;--scrollbar-track-transition: height ease-out .15s, width ease-out .15s;display:block;position:relative;height:100%;max-height:100%;max-width:100%;box-sizing:content-box!important}[_nghost-%COMP%] > .ng-scrollbar-wrapper[_ngcontent-%COMP%]{--scrollbar-total-size: calc(var(--scrollbar-size) + var(--scrollbar-padding) * 2);--vertical-scrollbar-size: var(--scrollbar-size);--horizontal-scrollbar-size: var(--scrollbar-size);--vertical-scrollbar-total-size: calc(var(--vertical-scrollbar-size) + var(--scrollbar-padding) * 2);--horizontal-scrollbar-total-size: calc(var(--horizontal-scrollbar-size) + var(--scrollbar-padding) * 2)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalHovered=true][_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalDragging=true][_ngcontent-%COMP%]{--vertical-scrollbar-size: var(--scrollbar-hover-size);--vertical-scrollbar-total-size: calc(var(--vertical-scrollbar-size) + var(--scrollbar-padding) * 2);cursor:default}[_nghost-%COMP%] > .ng-scrollbar-wrapper[horizontalHovered=true][_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[horizontalDragging=true][_ngcontent-%COMP%]{--horizontal-scrollbar-size: var(--scrollbar-hover-size);--horizontal-scrollbar-total-size: calc(var(--horizontal-scrollbar-size) + var(--scrollbar-padding) * 2);cursor:default}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=ltr][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{left:0;right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=rtl][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{left:var(--scrollbar-total-size);right:0}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-left:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-left:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=ltr][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=ltr][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{left:var(--scrollbar-total-size);right:0}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-left:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=ltr][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-left:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=rtl][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=rtl][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{left:0;right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertY][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][verticalUsed=true][position=invertAll][dir=rtl][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-right:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{top:0;bottom:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-bottom:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-bottom:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertX][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertAll][pointerEventsMethod=scrollbar][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{top:var(--scrollbar-total-size);bottom:0}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertX][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertX][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertAll][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertAll][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{padding-top:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertX][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertX][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertAll][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%] > .ng-scroll-content[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][appearance=standard][horizontalUsed=true][position=invertAll][pointerEventsMethod=viewport][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport>.ng-scroll-content{padding-top:var(--scrollbar-total-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{scrollbar-width:none;-ms-overflow-style:none}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%]::-webkit-scrollbar, [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport::-webkit-scrollbar{display:none}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-native-scrollbar-hider[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-native-scrollbar-hider{bottom:var(--native-scrollbar-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][verticalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-native-scrollbar-hider[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][verticalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-native-scrollbar-hider{left:0;right:var(--native-scrollbar-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][verticalUsed=true][dir=rtl][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-native-scrollbar-hider[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][verticalUsed=true][dir=rtl][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-native-scrollbar-hider{right:0;left:var(--native-scrollbar-size)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][visibility=hover][_ngcontent-%COMP%] > .scrollbar-control[_ngcontent-%COMP%]{opacity:0;transition-property:opacity;transition-duration:var(--scrollbar-transition-duration);transition-delay:var(--scrollbar-transition-delay)}[_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][visibility=hover][_ngcontent-%COMP%]:hover > .scrollbar-control[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][visibility=hover][_ngcontent-%COMP%]:active > .scrollbar-control[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[deactivated=false][visibility=hover][_ngcontent-%COMP%]:focus > .scrollbar-control[_ngcontent-%COMP%]{opacity:1;transition-duration:var(--scrollbar-transition-duration);transition-delay:0ms}[_nghost-%COMP%] > .ng-scrollbar-wrapper[horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{overflow-x:auto;overflow-y:hidden}[_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{overflow-y:auto;overflow-x:hidden}[_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalUsed=true][horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > .ng-scroll-viewport[_ngcontent-%COMP%], [_nghost-%COMP%] > .ng-scrollbar-wrapper[verticalUsed=true][horizontalUsed=true][_ngcontent-%COMP%] > .ng-scroll-viewport-wrapper[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > *[_ngcontent-%COMP%] > .ng-scroll-viewport{overflow:auto}.ng-scroll-viewport-wrapper[_ngcontent-%COMP%]{overflow:hidden}.ng-scroll-viewport[_ngcontent-%COMP%]{-webkit-overflow-scrolling:touch;contain:strict;will-change:scroll-position;overscroll-behavior:var(--scrollbar-overscroll-behavior)} .ng-scroll-content{display:inline-block;min-width:100%}.ng-scrollbar-wrapper[_ngcontent-%COMP%], .ng-scroll-viewport-wrapper[_ngcontent-%COMP%], .ng-scroll-layer[_ngcontent-%COMP%], .ng-scroll-viewport{position:absolute;inset:0}\", \".ng-scrollbar-wrapper[pointerEventsMethod=viewport]>.scrollbar-control{pointer-events:none} .ng-scrollbar-wrapper[horizontalDragging=true]>.ng-scroll-viewport-wrapper>.ng-scroll-viewport, .ng-scrollbar-wrapper[horizontalDragging=true]>.ng-scroll-viewport-wrapper>*>*> .ng-scroll-viewport, .ng-scrollbar-wrapper[verticalDragging=true]>.ng-scroll-viewport-wrapper>.ng-scroll-viewport, .ng-scrollbar-wrapper[verticalDragging=true]>.ng-scroll-viewport-wrapper>*>*> .ng-scroll-viewport, .ng-scrollbar-wrapper[scrollbarClicked=true]>.ng-scroll-viewport-wrapper>.ng-scroll-viewport, .ng-scrollbar-wrapper[scrollbarClicked=true]>.ng-scroll-viewport-wrapper>*>*> .ng-scroll-viewport{-webkit-user-select:none;-moz-user-select:none;user-select:none} .ng-scrollbar-wrapper>.scrollbar-control{position:absolute;display:flex;justify-content:center;align-items:center;transition:var(--scrollbar-track-transition)} .ng-scrollbar-wrapper>.scrollbar-control[scrollable=false] .ng-scrollbar-thumb{display:none} .ng-scrollbar-track{height:100%;width:100%;z-index:1;border-radius:var(--scrollbar-border-radius);background-color:var(--scrollbar-track-color);overflow:hidden;transition:var(--scrollbar-track-transition);cursor:default} .ng-scrollbar-thumb{box-sizing:border-box;position:relative;border-radius:inherit;background-color:var(--scrollbar-thumb-color);transform:translateZ(0);transition:var(--scrollbar-thumb-transition)}\"],\n changeDetection: 0\n });\n }\n }\n return NgScrollbar;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgScrollbarModule = /*#__PURE__*/(() => {\n class NgScrollbarModule {\n static withConfig(options) {\n return {\n ngModule: NgScrollbarModule,\n providers: [{\n provide: NG_SCROLLBAR_OPTIONS,\n useValue: options\n }]\n };\n }\n static {\n this.ɵfac = function NgScrollbarModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgScrollbarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgScrollbarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, BidiModule, PortalModule, PlatformModule, SmoothScrollModule]\n });\n }\n }\n return NgScrollbarModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\r\n * Public API Surface of ngx-scrollbar\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NG_SCROLLBAR_OPTIONS, NgScrollbar, NgScrollbarModule, ScrollViewport, ScrollbarManager };\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { Observable, Subject } from 'rxjs';\n\nexport interface TooltipData {\n content: ElementRef[];\n reference: ElementRef;\n cssClass: string;\n tooltipPlacement: string;\n hideOnScroll: boolean;\n showOnLoad: boolean;\n appendContent: boolean;\n}\nexport interface TooltipRequest {\n data?: TooltipData;\n visible: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TooltipService {\n private _tooltipRequested: Subject = new Subject();\n\n get visibility(): Observable {\n return this._tooltipRequested.asObservable();\n }\n\n constructor(private device: DeviceService) {}\n\n show(options: TooltipData): void {\n if (this.device.isTouch && !options.showOnLoad) {\n return;\n }\n\n this._tooltipRequested.next({ visible: true, data: options });\n }\n\n hide(showOnLoad: boolean): void {\n if (this.device.isTouch && !showOnLoad) {\n return;\n }\n\n this._tooltipRequested.next({ visible: false });\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Component, DestroyRef, ElementRef, OnInit, ViewChild, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { NgxPopperjsDirective, NgxPopperjsPlacements, NgxPopperjsTriggers } from 'ngx-popperjs';\nimport { distinctUntilKeyChanged } from 'rxjs';\n\nimport { TooltipData, TooltipService } from './tooltip.service';\n\n@Component({\n selector: 'ms-general-tooltip',\n templateUrl: 'general-tooltip.html',\n standalone: false,\n})\nexport class GeneralTooltipComponent implements OnInit {\n tooltipPlacement: NgxPopperjsPlacements;\n hideOnScroll: boolean;\n private destroyRef = inject(DestroyRef);\n private readonly _window = inject(WINDOW);\n\n @ViewChild('tooltipMessage', { static: true }) tooltipMessage: ElementRef;\n @ViewChild(NgxPopperjsDirective, { static: true }) tooltipController: NgxPopperjsDirective | undefined;\n\n constructor(private tooltip: TooltipService) {}\n\n NgxPopperjsTriggers = NgxPopperjsTriggers;\n private visible = false;\n\n ngOnInit(): void {\n this.tooltip.visibility.pipe(distinctUntilKeyChanged('visible'), takeUntilDestroyed(this.destroyRef)).subscribe((request) => {\n if (!this.tooltipController) {\n return;\n }\n\n if (request.visible && request.data && request.data.content && request.data.reference) {\n this.tooltipController.targetElement = request.data.reference.nativeElement as HTMLElement;\n this.tooltipController.applyClass = request.data.cssClass;\n this.setContent(request.data);\n this.tooltipPlacement = request.data.tooltipPlacement as NgxPopperjsPlacements;\n this.hideOnScroll = request.data.hideOnScroll;\n this.visible = true;\n\n this._window.setTimeout(() => this.visible && this.tooltipController!.show());\n } else if (this.visible) {\n this.visible = false;\n this.tooltipController.hide();\n }\n });\n }\n\n private setContent(data: TooltipData): void {\n if (data.appendContent) {\n this.tooltipMessage.nativeElement.innerHTML = '';\n data.content.map((c) => this.tooltipMessage.nativeElement.appendChild(c.nativeElement) as HTMLElement);\n } else {\n this.tooltipMessage.nativeElement.innerHTML = data.content\n .map((c) => {\n const nativeElement = c.nativeElement as HTMLElement;\n return nativeElement.innerHTML;\n })\n .join('
');\n }\n }\n}\n","\n \n","import { AfterViewInit, ChangeDetectionStrategy, Component, ContentChildren, ElementRef, HostListener, Input, QueryList } from '@angular/core';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\nimport { TooltipService } from './tooltip.service';\n\n@Component({\n selector: 'ms-inline-tooltip',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InlineTooltipComponent implements AfterViewInit {\n @Input() showOnlyIfOverflowed = true;\n @Input() applyClass = 'inline-tooltip-msg';\n @Input() tooltipPlacement = 'right';\n @Input() hideOnScroll = true;\n @Input() showOnLoad = false;\n @Input() appendContent = false;\n\n @ContentChildren('tooltipContent', { descendants: true, read: ElementRef }) tooltipContent: QueryList>;\n\n private elements: HTMLElement[] = [];\n\n constructor(\n private elementRef: ElementRef,\n private tooltip: TooltipService,\n private deviceService: DeviceService,\n ) {}\n\n @HostListener('mouseenter')\n onHover(): void {\n this.showTooltip(this.isTooltipVisible());\n }\n\n @HostListener('mouseleave')\n nohover(): void {\n this.tooltip.hide(this.showOnLoad);\n }\n\n ngAfterViewInit(): void {\n this.showTooltip(this.showOnLoad);\n }\n\n private showTooltip(show: boolean): void {\n if (!show) {\n return;\n }\n\n this.tooltip.show({\n reference: this.elementRef,\n content: this.tooltipContent.toArray(),\n cssClass: this.applyClass,\n tooltipPlacement: this.tooltipPlacement,\n hideOnScroll: this.hideOnScroll,\n showOnLoad: this.showOnLoad,\n appendContent: this.appendContent,\n });\n }\n\n private isTooltipVisible(): boolean {\n if (this.deviceService.isTouch || this.showOnLoad) {\n return false;\n }\n return !(this.showOnlyIfOverflowed && !this.isOverflowed());\n }\n\n private isOverflowed(): boolean {\n if (this.elements.length === 0) {\n this.elements = this.tooltipContent.toArray().map((x) => x.nativeElement);\n }\n\n return this.elements.some((el) => el.offsetWidth < el.scrollWidth || el.offsetHeight + 1 < el.scrollHeight);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'ms-onboarding-tooltip',\n templateUrl: './onboarding-tooltip.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class OnboardingTooltipComponent {\n @Input() message: string;\n @Input() showHelp = false;\n @Output() closeClicked = new EventEmitter();\n @HostBinding('class') className = `onboarding-tooltip`;\n @HostBinding('class.hidden') get hidden(): boolean {\n return !this.showHelp;\n }\n\n closeHelp(): void {\n this.showHelp = false;\n this.closeClicked.emit();\n }\n}\n","
{{ message }}
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NgxPopperjsModule } from 'ngx-popperjs';\n\nimport { GeneralTooltipComponent } from './general-tooltip.component';\nimport { InlineTooltipComponent } from './inline-tooltip.component';\nimport { OnboardingTooltipComponent } from './onboarding-tooltip.component';\n\n@NgModule({\n imports: [CommonModule, NgxPopperjsModule, InlineTooltipComponent],\n declarations: [GeneralTooltipComponent, OnboardingTooltipComponent],\n exports: [InlineTooltipComponent, GeneralTooltipComponent, OnboardingTooltipComponent],\n})\nexport class TooltipModule {}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n DestroyRef,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ElementProvider } from '@frontend/sports/common/core/utils/element-provider';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { LOADING_INDICATOR, LoadingIndicatorComponent } from '@frontend/sports/loading-indicator-feature';\nimport { MODAL_DIALOG_CONTAINER } from '@frontend/sports/modal/feature';\nimport { filter, merge } from 'rxjs';\n\nimport { ColumnLayoutService } from './column-layout.service';\nimport { ColumnComponentRegistration, ColumnComponentRemoval, LayoutColumn } from './layout.model';\n\ninterface IContainerContents {\n componentRef: ComponentRef;\n indicatorRef: ComponentRef;\n}\n\n@Component({\n selector: 'ms-column',\n template: `
`,\n providers: [ScrollContainerService],\n standalone: true,\n})\nexport class ColumnComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() location: LayoutColumn;\n @HostBinding('class') className = 'column-wrapper';\n @ViewChild('columnContainer', { static: true }) columnContainerRef: ElementRef;\n @ViewChild('container', { read: ViewContainerRef, static: true })\n containerRef: ViewContainerRef;\n\n private requestedComponents: ColumnComponentRegistration[] = [];\n private columnContainerProvider: ElementProvider;\n private readonly componentInstances: Map = new Map(); // \n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private layoutManager: ColumnLayoutService,\n private changeDetector: ChangeDetectorRef,\n private injector: Injector,\n private scrollContainer: ScrollContainerService,\n ) {}\n\n ngOnInit(): void {\n this.requestedComponents = this.layoutManager.layout.registeredComponents().filter((c) => c.location === this.location);\n\n merge(this.layoutManager.componentRegistered, this.layoutManager.componentUpdated$)\n .pipe(\n filter((c) => c.location === this.location),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(this.initializeComponent);\n\n this.layoutManager.componentRemoved\n .pipe(\n filter((c) => c.location === this.location),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(this.removeComponent);\n }\n\n ngAfterViewInit(): void {\n if (!this.containerRef || !this.columnContainerRef) {\n return;\n }\n\n this.columnContainerProvider = new ElementProvider(this.columnContainerRef);\n\n if (this.requestedComponents.length) {\n this.requestedComponents.forEach(this.initOrUpdateComponent);\n }\n\n this.scrollContainer.setTarget(this.columnContainerRef.nativeElement.parentElement);\n\n this.changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.unregisterComponentInstances();\n }\n\n private initializeComponent = (component: ColumnComponentRegistration | undefined) => {\n if (!component) {\n return;\n }\n if (!this.containerRef) {\n this.requestedComponents.push(component);\n\n return;\n }\n\n this.initOrUpdateComponent(component);\n this.changeDetector.detectChanges();\n };\n\n private initOrUpdateComponent = (data: ColumnComponentRegistration): void => {\n let containerContents = this.componentInstances.get(data.component);\n if (!containerContents) {\n containerContents = this.createComponent(data);\n }\n\n if (data.inputs) {\n Object.keys(data.inputs).forEach((key) => {\n containerContents!.componentRef.instance[key] = data.inputs[key];\n });\n }\n };\n\n private createComponent = (data: ColumnComponentRegistration): IContainerContents => {\n const injector = this.createCustomInjector();\n const componentRef = this.containerRef.createComponent(data.component, { index: 0, injector });\n const indicatorRef = this.createIndicator(injector);\n\n const containerContents: IContainerContents = {\n componentRef,\n indicatorRef,\n };\n\n this.componentInstances.set(data.component, containerContents);\n\n return containerContents;\n };\n\n private createCustomInjector = (): Injector => {\n return Injector.create({\n providers: [\n { provide: MODAL_DIALOG_CONTAINER, useValue: this.columnContainerProvider },\n { provide: LOADING_INDICATOR, useValue: this.location.toString() },\n ],\n parent: this.injector,\n });\n };\n\n private createIndicator = (injector: Injector): ComponentRef => {\n return this.containerRef.createComponent(LoadingIndicatorComponent, { index: 0, injector });\n };\n\n private removeComponent = (data: ColumnComponentRemoval): void => {\n const containerContents = this.componentInstances.get(data.component);\n if (containerContents) {\n const componentIndex = this.containerRef.indexOf(containerContents.componentRef.hostView);\n if (componentIndex > -1) {\n this.containerRef.remove(componentIndex);\n }\n\n const indicatorIndex = this.containerRef.indexOf(containerContents.indicatorRef.hostView);\n if (indicatorIndex > -1) {\n this.containerRef.remove(indicatorIndex);\n }\n\n this.componentInstances.delete(data.component);\n }\n };\n\n private unregisterComponentInstances(): void {\n this.componentInstances.clear();\n }\n}\n","import { Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Store } from '@ngrx/store';\nimport { Observable, distinctUntilChanged } from 'rxjs';\n\nimport { AdaptiveLayoutService, AdaptiveLayoutState } from '../layout/adaptive-layout.service';\nimport { UiManagerActions } from './ui-manager.actions';\nimport { UiManagerService } from './ui-manager.service';\nimport { IUiRootState, IUiState, uiStateSelector } from './ui-manager.state';\nimport { hasUiState } from './ui-state-helper';\nimport { UiStates } from './ui-states.enum';\n\n@Component({\n selector: 'ms-ui-manager',\n template: '',\n standalone: true,\n})\nexport class UiManagerComponent implements OnInit {\n uiState$: Observable;\n currentState: IUiState;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private uiManagerService: UiManagerService,\n private adaptiveLayoutService: AdaptiveLayoutService,\n private store: Store,\n ) {\n this.uiState$ = store.select(uiStateSelector);\n }\n\n ngOnInit(): void {\n this.uiState$\n .pipe(\n distinctUntilChanged((prev, next) => {\n return prev === next;\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((state) => {\n this.uiManagerService.updateUi(this.currentState, state);\n this.currentState = state;\n });\n this.adaptiveLayoutService.stateChange$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((next: AdaptiveLayoutState) => {\n this.updateUiStateFromAdaptiveLayout(next);\n });\n }\n\n private updateUiStateFromAdaptiveLayout(state: AdaptiveLayoutState): void {\n if (state.hasRightColumn && !hasUiState(this.currentState, UiStates.RightColumnVisible)) {\n this.store.dispatch(UiManagerActions.addState({ state: UiStates.RightColumnVisible }));\n }\n if (!state.hasRightColumn && hasUiState(this.currentState, UiStates.RightColumnVisible)) {\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.RightColumnVisible }));\n }\n }\n}\n","export interface MobileNumberAcknowledgement {\n [key: string]: number;\n}\n\nexport enum UpdateMobileNumber {\n PopupIdentifier = 'update-mobile-number',\n StorageItemIdentifier = 'mobile-number-notification',\n}\nexport interface ButtonClickEventData {\n details: string;\n url?: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'msFormatPhoneNumber',\n standalone: true,\n})\nexport class FormatPhoneNumberPipe implements PipeTransform {\n MOBILE_NUMBER_MATCHER = /^(\\d{3})(\\d{3})(\\d{4})$/;\n\n transform(value: string): string {\n const cleaned = value.replace(/\\D/g, '');\n const match = cleaned.match(this.MOBILE_NUMBER_MATCHER);\n\n if (match?.length) {\n return '(' + match[1] + ') ' + match[2] + '-' + match[3];\n }\n\n return value;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { ButtonClickEventData } from './model/update-mobile-number.model';\n\n@Injectable()\nexport class UpdateMobileNumberTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackPopupShown(): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingValues.Load,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: TrackingValues.Details,\n [trackingConstants.COMPONENT_URL_CLICKED]: TrackingValues.NotApplicable,\n };\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, trackingData);\n }\n\n trackButtonClick(eventData: ButtonClickEventData): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingValues.Click,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: eventData.details,\n [trackingConstants.COMPONENT_URL_CLICKED]: eventData.url || TrackingValues.NotApplicable,\n };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n getBaseTrackingData(): TrackData {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: TrackingValues.Mfa,\n [trackingConstants.COMPONENT_LABEL_EVENT]: TrackingValues.MfaSetup,\n [trackingConstants.COMPONENT_POSITION_EVENT]: TrackingValues.Na,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: TrackingValues.Details,\n };\n }\n}\n\nexport enum TrackingValues {\n Mfa = 'mfa',\n MfaSetup = 'mfa setup',\n Click = 'click',\n Load = 'load',\n Na = 'na',\n Details = 'mobile number verification popup',\n Confirm = 'confirm',\n UpdateMobileNumber = 'update mobile number',\n NotApplicable = 'not applicable',\n Update = 'update',\n}\n","
\n
\n @if (mobileNumberConfirmationConfig$ | async; as config) {\n
\n {{ config.dialogHeading }}\n
\n
\n
\n
{{ config.propertyName }}
\n
{{ mobileNumber ?? '' | msFormatPhoneNumber }}
\n
\n
\n
\n
{{ config.multiFactorAuthMessage }}
\n
{{ config.updateMobileMessage }}
\n
\n
\n \n \n
\n
\n }\n
\n
\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\n\nimport { SitecoreMobileConfirmationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DsButton } from '@frontend/ui/button';\nimport { ProductHomepagesConfig, WINDOW } from '@frontend/vanilla/core';\nimport { Observable, map } from 'rxjs';\n\nimport { LocalStorageService } from '../common/local-storage.service';\nimport { MobileNumberAcknowledgement, UpdateMobileNumber } from './model/update-mobile-number.model';\nimport { FormatPhoneNumberPipe } from './pipes/format-phone-number.pipe';\nimport { TrackingValues, UpdateMobileNumberTrackingService } from './update-mobile-number-tracking.service';\n\n@Component({\n selector: 'ms-update-mobile-number',\n templateUrl: './update-mobile-number.component.html',\n styleUrls: ['./update-mobile-number.component.scss'],\n imports: [FormatPhoneNumberPipe, DsButton, AsyncPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UpdateMobileNumberTrackingService],\n})\nexport class UpdateMobileNumberComponent implements OnInit {\n mobileNumber: string | null;\n accountId: string;\n redirectURL: string;\n mobileNumberConfirmationConfig$: Observable;\n\n constructor(\n private userService: UserService,\n private localStorageService: LocalStorageService,\n private activeModal: ActiveModal,\n private mobileNumberConfig: SitecoreMobileConfirmationConfig,\n private productHomepagesConfig: ProductHomepagesConfig,\n private updateMobileNumberTrackingService: UpdateMobileNumberTrackingService,\n ) {\n this.mobileNumberConfirmationConfig$ = this.mobileNumberConfig.whenReady.pipe(\n map(() => {\n this.redirectURL = this.mobileNumberConfig.updatePhoneNumberURL;\n return this.mobileNumberConfig;\n }),\n );\n }\n\n ngOnInit(): void {\n this.updateMobileNumberTrackingService.trackPopupShown();\n this.mobileNumber = this.userService.getUserMobileNumber();\n this.accountId = this.userService.accountId ?? '';\n }\n\n confirmMobileNumber(): void {\n this.updateMobileNumberTrackingService.trackButtonClick({ details: TrackingValues.Confirm });\n this.closePopup();\n this.saveUserAction();\n }\n\n updateMobileNumber(): void {\n const url = `${this.productHomepagesConfig.portal}${this.redirectURL}`;\n this.saveUserAction();\n this.updateMobileNumberTrackingService.trackButtonClick({ details: TrackingValues.UpdateMobileNumber, url: url });\n this._window.location.href = url;\n }\n\n private closePopup(): void {\n this.activeModal.close();\n }\n\n private saveUserAction(): void {\n const savedAcknowledgementList: MobileNumberAcknowledgement | null = this.localStorageService.getItemObject(\n UpdateMobileNumber.StorageItemIdentifier,\n );\n const acknowledgementList: MobileNumberAcknowledgement = savedAcknowledgementList ?? {};\n acknowledgementList[this.accountId] = new Date().getTime();\n this.localStorageService.saveItem(UpdateMobileNumber.StorageItemIdentifier, acknowledgementList);\n }\n\n private readonly _window = inject(WINDOW);\n}\n","import { Injectable } from '@angular/core';\n\nimport { MobileConfirmationNotificationClientConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ModalDialogService } from '@frontend/sports/modal/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Store } from '@ngrx/store';\n\nimport { LocalStorageService } from '../common/local-storage.service';\nimport { IUiRootState, uiStateSelector } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport { MobileNumberAcknowledgement, UpdateMobileNumber } from './model/update-mobile-number.model';\nimport { UpdateMobileNumberComponent } from './update-mobile-number.component';\n\n@Injectable({ providedIn: 'root' })\nexport class UpdateMobileNumberService {\n private isEnabled: boolean;\n private confirmationInterval: number;\n uiStates: UiStates[];\n\n constructor(\n private modalDialogService: ModalDialogService,\n private localStorageService: LocalStorageService,\n private userService: UserService,\n private mobileConfirmationNotificationsConfig: MobileConfirmationNotificationClientConfig,\n private store: Store,\n ) {\n this.store.select(uiStateSelector).subscribe((ui) => (this.uiStates = ui.states));\n\n this.mobileConfirmationNotificationsConfig.whenReady.subscribe(() => {\n this.isEnabled = this.mobileConfirmationNotificationsConfig.isEnabled;\n this.confirmationInterval = this.mobileConfirmationNotificationsConfig.confirmationIntervalMilliseconds;\n });\n }\n\n launchMobileNumberConfirmationPopup(): void {\n this.modalDialogService.openDialog(UpdateMobileNumberComponent, {\n settings: {\n cssClass: UpdateMobileNumber.PopupIdentifier,\n showDialogHeader: false,\n hideCloseButton: true,\n isModalDialog: true,\n showCloseBtnText: true,\n },\n });\n }\n\n showMobileNumberConfirmation(): boolean {\n if (!this.isEnabled || this.uiStates.includes(UiStates.QuickBet)) {\n return false;\n }\n\n const mobileNumberAcknowledgement: MobileNumberAcknowledgement | null = this.localStorageService.getItemObject(\n UpdateMobileNumber.StorageItemIdentifier,\n );\n\n if (!mobileNumberAcknowledgement) {\n return true;\n }\n\n const savedTime: number = mobileNumberAcknowledgement[this.userService.accountId!];\n if (!savedTime) {\n return true;\n }\n return this.isDifferenceExceedingTimespan(new Date(savedTime));\n }\n\n private isDifferenceExceedingTimespan(date: Date): boolean {\n const differenceInMillis = this.calculateTimeDifference(date);\n return differenceInMillis > this.confirmationInterval;\n }\n\n private calculateTimeDifference(date: Date): number {\n return Math.abs(new Date().getTime() - date.getTime());\n }\n}\n","@if (header && content && !routeChanging) {\n @if (!isPartialCollapsible) {\n
\n
\n @if (primaryHeader) {\n

{{ header }}

\n } @else {\n

{{ header }}

\n }\n
\n @if (collapsed) {\n \n } @else {\n \n }\n
\n
\n
\n
\n } @else {\n
\n
\n
{{ header }}
\n
\n \n
\n
\n
\n \n
\n }\n}\n","import { ChangeDetectorRef, Component, DestroyRef, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DomSanitizer, Meta, SafeHtml, Title } from '@angular/platform-browser';\nimport { ActivatedRouteSnapshot, ActivationStart, Router } from '@angular/router';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { SeoConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { DeviceService, MediaQueryService } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { assign, includes } from 'lodash-es';\nimport { Observable, distinctUntilChanged, filter, from, map, switchMap } from 'rxjs';\n\nimport { SeoContentService } from './seo-content.service';\nimport { SeoContentApiResponse } from './seo.models';\n\n@Component({\n selector: 'ms-content-box',\n templateUrl: 'content-box.html',\n imports: [IconCustomComponent],\n})\nexport class ContentBoxComponent implements OnInit {\n routeChanging = false;\n header: string;\n primaryHeader: boolean;\n content: SafeHtml;\n collapsed = false;\n userClicked = false;\n isPartialCollapsible: boolean;\n private readonly tagName = 'description';\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public sitecore: Sitecore,\n private seoContentService: SeoContentService,\n private routerEventsService: RouterEventsService,\n private router: Router,\n private meta: Meta,\n private title: Title,\n private seoConfig: SeoConfig,\n private changeDetectionRef: ChangeDetectorRef,\n device: DeviceService,\n mediaService: MediaQueryService,\n private _sanitizer: DomSanitizer,\n ) {\n mediaService\n .observe()\n .pipe(\n filter(() => !this.userClicked && !device.isRobot),\n map((queries) => 'gt-md' in queries.breakpoints && queries.breakpoints['gt-md']),\n distinctUntilChanged(),\n takeUntilDestroyed(),\n )\n .subscribe(() => (this.collapsed = true));\n\n this.isPartialCollapsible = this.seoConfig.isPartialCollapsibleContentEnabled;\n }\n\n ngOnInit(): void {\n this.router.events\n .pipe(\n filter((e) => e instanceof ActivationStart),\n distinctUntilChanged(),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => (this.routeChanging = true));\n\n this.meta.addTag({ name: this.tagName });\n this.loadSeoTagWhenRouteActivated();\n }\n\n toggle(): void {\n this.collapsed = !this.collapsed;\n this.userClicked = true;\n }\n\n private loadSeoTagWhenRouteActivated(): void {\n this.routerEventsService.currentActivationEnd\n .pipe(\n filter(isDefined),\n switchMap((e) => from(this.getSeoContent(e.snapshot))),\n filter(isDefined),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((seoContent) => {\n this.routeChanging = false;\n\n this.header = seoContent.header || '';\n this.content = seoContent.content ? this._sanitizer.bypassSecurityTrustHtml(seoContent.content) : '';\n this.primaryHeader = !seoContent.h1Included;\n\n this.title.setTitle(seoContent.metaTitle || '');\n this.meta.updateTag({ name: this.tagName, content: seoContent.metaDescription || '' });\n this.changeDetectionRef.markForCheck();\n });\n }\n\n private getSeoContent(routeSnapshot: ActivatedRouteSnapshot): Observable {\n this.cleanContent();\n\n if (routeSnapshot.data.tag === RouteTag.EventDetails) {\n const event = routeSnapshot.data.model.model as EventModel;\n if (event) {\n return this.seoContentService.getForEventDetails({\n lobby: false,\n live: event.live,\n highlights: false,\n allSports: false,\n sport: event.sport.id,\n region: event.region.id,\n league: event.league && event.league.id,\n event: event.id,\n });\n }\n }\n\n const params = assign({ path: routeSnapshot.url.map((segment) => `/${segment}`).join('') }, routeSnapshot.params);\n const tagOf = (...sources: RouteTag[]) => includes(sources, routeSnapshot.data.tag);\n\n return this.seoContentService.getSeoContent(params, {\n liveHighlights: tagOf(RouteTag.LiveHighlights),\n sportsList: tagOf(RouteTag.LiveAll, RouteTag.SportList),\n sportsLobby: tagOf(RouteTag.Lobby),\n virtual: tagOf(RouteTag.VirtualFixture),\n live: tagOf(\n RouteTag.Live,\n RouteTag.LiveAll,\n RouteTag.LiveVideo,\n RouteTag.LiveHighlights,\n RouteTag.LiveSport,\n RouteTag.LiveEsports,\n RouteTag.LiveRegion,\n ),\n liveVideo: tagOf(RouteTag.LiveVideo),\n esportsLobby: tagOf(RouteTag.EsportsLobby),\n esportsHighlights: tagOf(RouteTag.LiveEsports),\n multiSportsLobby: tagOf(RouteTag.MultiSportsLobby),\n });\n }\n\n private cleanContent(): void {\n this.header = '';\n this.content = '';\n }\n}\n","import { ChangeDetectorRef, Component, OnInit, inject } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\nimport { DynamicLayoutSlotComponent, HtmlNode } from '@frontend/vanilla/core';\nimport { take } from 'rxjs';\n\nimport { GridBreakpointService } from '../grid/grid-breakpoint.service';\nimport { SlotLayoutService } from '../layout/slot-layout.service';\nimport { MainContentLoaded } from '../perf-cdk/main-content-loaded.service';\nimport { ContentBoxComponent } from '../seo/content-box.component';\n\n@Component({\n selector: 'ms-main-column',\n templateUrl: './main-column.component.html',\n providers: [GridBreakpointService],\n imports: [DynamicLayoutSlotComponent, RouterOutlet, ContentBoxComponent],\n})\nexport class MainColumnComponent implements OnInit {\n private readonly htmlNode = inject(HtmlNode);\n\n constructor(\n private slotLayoutService: SlotLayoutService,\n private changeDetectorRef: ChangeDetectorRef,\n private mainContentLoaded: MainContentLoaded,\n ) {}\n\n ngOnInit(): void {\n this.slotLayoutService.innerFooterLoaded$.pipe(take(1)).subscribe((_) => this.changeDetectorRef.markForCheck());\n }\n\n setMainVisible(): void {\n this.mainContentLoaded.setLoaded();\n this.htmlNode.setCssClass('main-activated', true);\n }\n}\n","\n
\n\n\n","
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n\n \n \n \n\n \n
\n\n
\n @if (skeletonPage) {\n \n }\n
\n","import { AsyncPipe, DOCUMENT, NgComponentOutlet, NgIf } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n HostBinding,\n NgZone,\n OnDestroy,\n OnInit,\n QueryList,\n ViewChild,\n ViewChildren,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { AppConfig, BetslipConfig, Sitecore, SkeletonConfig, StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ScrollFreezeService } from '@frontend/sports/common/core/feature/scroll-freeze';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { TooltipModule } from '@frontend/sports/tooltip-feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, HtmlNode, ProductHomepagesConfig, WINDOW } from '@frontend/vanilla/core';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { difference } from 'lodash-es';\nimport { NgScrollbar, NgScrollbarModule } from 'ngx-scrollbar';\nimport { BetslipIntegrationService } from 'packages/sports/common/betslip/integration/betslip-integration.service';\nimport { Observable, defer, distinctUntilKeyChanged, map, merge, of, pairwise, startWith, switchMap } from 'rxjs';\n\nimport {\n BetslipDigitalComponentLoaderService,\n EditMyBetAddPicksContainerMobileComponentBinding,\n} from '../betslip/betslip-digital-component-loader.service';\nimport { EpcotConfigService, EpcotModule } from '../common/epcot-config.service';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { ColumnComponent } from '../layout/column.component';\nimport { LayoutColumn } from '../layout/layout.model';\nimport { SlotLayoutService } from '../layout/slot-layout.service';\nimport { PrintModule } from '../print/print.module';\nimport { equalParamsAndUrlSegments } from '../router/router.exports';\nimport { SkeletonPage } from '../skeleton-ui/skeleton-page.model';\nimport { SkeletonModule } from '../skeleton-ui/skeleton.module';\nimport { SkeletonService } from '../skeleton-ui/skeleton.service';\nimport { UiManagerComponent } from '../ui-manager/ui-manager.component';\nimport { UpdateMobileNumberService } from '../update-mobile-number/update-mobile-number.service';\nimport { WidgetCoreModule } from '../widget/core/widget-core.module';\nimport { MainColumnComponent } from './main-column.component';\n\n@Component({\n selector: 'ms-main',\n templateUrl: 'main.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ComponentProxyDirective,\n NgIf,\n TooltipModule,\n SkeletonModule,\n WidgetCoreModule,\n NgScrollbarModule,\n MainColumnComponent,\n AsyncPipe,\n PrintModule,\n NgComponentOutlet,\n UiManagerComponent,\n ColumnComponent,\n ],\n})\nexport class MainComponent implements AfterViewInit, OnDestroy, OnInit {\n private MESSAGES_COLLAPSE_THRESHOLD = 75;\n private MESSAGES_COLLAPSE_CLASS = 'content-messages-hidden';\n private readonly _window = inject(WINDOW);\n\n column = LayoutColumn;\n useCustomScrollbar: boolean;\n useCustomLayout: boolean;\n disableScroll = false;\n skeletonPage: SkeletonPage | undefined;\n @HostBinding('class') className = 'main-container ds-scrollbar';\n @HostBinding('class.epcot-enabled')\n get epcotEnabledClass() {\n return this.isEpcotEnabled;\n }\n\n @ViewChildren(NgScrollbar) columnRef: QueryList;\n @ViewChild('centerColumn', { read: NgScrollbar }) centerRef: NgScrollbar;\n\n private htmlClasses: string[] = [];\n quickBetComponent: ComponentProxy;\n readonly showQuickBet$: Observable;\n readonly showQuickBetBuilder$: Observable;\n betslipReturnsMessageComponent: ComponentProxy;\n editBetAddPicksContainerMobileComponent: ComponentProxy;\n isEpcotEnabled = false;\n private readonly _doc = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n printContainerComponent$ = defer(() => import('../print/print-container.component')).pipe(map((i) => i.PrintContainerComponent));\n\n constructor(\n public betslipConfig: BetslipConfig,\n public scrollFreeze: ScrollFreezeService,\n public columnLayout: ColumnLayoutService,\n public device: DeviceService,\n private scrollContainer: ScrollContainerService,\n private slotLayout: SlotLayoutService,\n private html: HtmlNode,\n private betslipLoader: BetslipDigitalComponentLoaderService,\n adaptiveLayout: AdaptiveLayoutService,\n toaster: ToasterService,\n routerEvent: RouterEventsService,\n private userService: UserService,\n private siteCore: Sitecore,\n private productHomepagesConfig: ProductHomepagesConfig,\n private stakeConfig: StakeConfig,\n betslipIntegrationService: BetslipIntegrationService,\n private epcotConfigService: EpcotConfigService,\n private changeRef: ChangeDetectorRef,\n private skeletonService: SkeletonService,\n public skeletonConfig: SkeletonConfig,\n private rxStrategy: RxStrategyProvider,\n private ngZone: NgZone,\n private updateMobileNumberService: UpdateMobileNumberService,\n private appConfig: AppConfig,\n ) {\n this.userService.onUserLogInWithSettings$.pipe(takeUntilDestroyed()).subscribe(() => {\n if (this.updateMobileNumberService.showMobileNumberConfirmation()) {\n this.updateMobileNumberService.launchMobileNumberConfirmationPopup();\n }\n this.checkStakeLimit();\n this.rxStrategy.scheduleCD(this.changeRef, { scope: this, patchZone: this.ngZone });\n });\n\n if (skeletonConfig.isEnabled && !device.isRobot) {\n this.skeletonService.skeletonPage$?.pipe(takeUntilDestroyed()).subscribe((page: SkeletonPage | undefined) => {\n if (page !== SkeletonPage.Live) {\n this.skeletonPage = page;\n this.rxStrategy.scheduleCD(this.changeRef, { scope: this, patchZone: this.ngZone });\n }\n });\n }\n\n this.quickBetComponent = this.betslipLoader.getQuickBetComponent();\n this.showQuickBet$ = betslipIntegrationService.shouldShowQuickBet$();\n this.showQuickBetBuilder$ = betslipIntegrationService.shouldShowQuickBetBuilder$();\n this.betslipReturnsMessageComponent = this.betslipLoader.getBetslipReturnsMessageComponent();\n\n this.editBetAddPicksContainerMobileComponent = this.betslipLoader.getEditBetAddPicksContainerMobileComponent();\n this.editBetAddPicksContainerMobileComponent.subscribeToOutputs({ picksContainerBottomOffset: this.picksContainerOffsetChanged });\n\n this.html.setCssClass('product-sports', true);\n this.html.setCssClass('header-sticky', false);\n this.html.setCssClass('event-details-page', false);\n this.html.setCssClass('horse-racing', false);\n this.html.setCssClass('view-transitions', this.appConfig.viewTransitionsEnabled);\n\n adaptiveLayout.stateChange$.pipe(distinctUntilKeyChanged('htmlClasses'), takeUntilDestroyed()).subscribe((state) => {\n // distinct htmlClasses means that also the cardContent flag changed as it is used to calculate the classes\n this.useCustomScrollbar = !!state.cardContent && !device.isMobile && !device.isRobot;\n this.useCustomLayout = !!state.cardContent;\n\n this.html.setCssClass('scrollable-content', this.useCustomScrollbar);\n\n this.setScrollEventTarget();\n this.setCssClasses(state.htmlClasses);\n this.rxStrategy.scheduleCD(this.changeRef, { scope: this, patchZone: this.ngZone });\n });\n\n routerEvent.currentActivationStart.pipe(takeUntilDestroyed()).subscribe((route) => {\n this.disableScroll = route?.snapshot.data?.disableScroll;\n toaster.dismiss();\n this.rxStrategy.scheduleCD(this.changeRef, { scope: this, patchZone: this.ngZone });\n });\n\n routerEvent.currentActivationEnd\n .pipe(startWith(undefined), pairwise(), takeUntilDestroyed())\n .subscribe(([previousActivationEnd, currentActivationEnd]) => {\n if (!previousActivationEnd) {\n return;\n }\n\n if (this.isPopupNavigation(previousActivationEnd.snapshot, currentActivationEnd!.snapshot)) {\n return;\n }\n\n const navigationHappened = !equalParamsAndUrlSegments(previousActivationEnd.snapshot, currentActivationEnd!.snapshot);\n if (navigationHappened) {\n requestAnimationFrame(() => this.scrollContainer.scrollTo(0, 0));\n }\n });\n\n this.isEpcotEnabled = this.epcotConfigService.isEnabled(EpcotModule.Betslip);\n }\n\n get isScrollFrozen(): boolean {\n return this.scrollFreeze.isScrollFrozen;\n }\n\n ngOnInit(): void {\n /** Coming back from the login will leave the components not swaped back to the inner column so we double check the layout si correct*/\n this.slotLayout.swapComponents();\n this.checkStakeLimit();\n }\n\n ngOnDestroy(): void {\n this.slotLayout.restore();\n this.html.setCssClass('product-sports', false);\n this.html.setCssClass('scrollable-content', false);\n }\n\n ngAfterViewInit(): void {\n this.setScrollEventTarget();\n\n this.columnLayout.resetMeasurement();\n\n merge(of(undefined), this.columnRef.changes)\n .pipe(\n map(() => this.columnRef.map((scrollbar) => scrollbar.scrolled)),\n switchMap((events) => merge(...events)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((event) => {\n this.scrolled(event);\n this.rxStrategy.scheduleCD(this.changeRef, { scope: this, patchZone: this.ngZone });\n });\n }\n\n private hasPopup(routeSnapshot: ActivatedRouteSnapshot | undefined) {\n return Boolean(routeSnapshot?.queryParams.popup);\n }\n\n private isPopupNavigation(\n previousActivation: ActivatedRouteSnapshot | undefined,\n currentActivation: ActivatedRouteSnapshot | undefined,\n ): boolean {\n return this.hasPopup(currentActivation) || this.hasPopup(previousActivation);\n }\n\n private scrolled(event: Event): void {\n if (event.target instanceof Element) {\n const messagesVisible = event.target.scrollTop < this.MESSAGES_COLLAPSE_THRESHOLD;\n\n if (this.html.hasCssClass(this.MESSAGES_COLLAPSE_CLASS) === messagesVisible) {\n this.html.setCssClass(this.MESSAGES_COLLAPSE_CLASS, !messagesVisible);\n }\n }\n }\n\n private picksContainerOffsetChanged = (bottomOffset: number): void => {\n if (this.centerRef) {\n const content = this.centerRef.viewport.nativeElement.firstChild;\n\n if (content instanceof HTMLElement) {\n content.style.paddingBottom = `${bottomOffset}px`;\n }\n }\n };\n\n private setScrollEventTarget(): void {\n if (this.useCustomLayout && this.centerRef) {\n this.scrollContainer.setTarget(this.centerRef.viewport?.nativeElement);\n } else {\n this.scrollContainer.setTarget(this._doc.scrollingElement || this._window, this._window);\n }\n }\n\n private setCssClasses(cssClasses: string[]): void {\n const toRemove = difference(this.htmlClasses, cssClasses);\n toRemove.forEach((htmlClass) => this.html.setCssClass(htmlClass, false));\n\n const toAdd = difference(cssClasses, this.htmlClasses);\n toAdd.forEach((htmlClass) => this.html.setCssClass(htmlClass, true));\n\n this.htmlClasses = cssClasses;\n }\n\n private checkStakeLimit(): void {\n if (this.userService.isAuthenticated && this.stakeConfig.checkUserStakeLimit && !this.userService.getIsStakeLimitSet()) {\n this._window.location.href = this.productHomepagesConfig.portal + this.siteCore.globalMessages.StakeLimitUrl;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { ParsedUrl } from '@frontend/vanilla/core';\nimport { LanguageSwitcherUrlsProvider } from '@frontend/vanilla/features/language-switcher';\nimport { toPairs } from 'lodash-es';\nimport { Observable, map } from 'rxjs';\n\nimport { UrlResponse } from './url.model';\n\n@Injectable()\nexport class PrettyUrlLanguageSwitcherProvider implements LanguageSwitcherUrlsProvider {\n constructor(private api: ApiService) {}\n\n getUrls(url: ParsedUrl, languages: string[]): Observable> {\n return this.api\n .get('url', {\n url: url.url(),\n sourceLanguage: url.culture,\n targetLanguages: languages.join(','),\n })\n .pipe(map((result) => new Map(toPairs(result.data))));\n }\n}\n","import { optionalProps } from '@frontend/sports/common/core/utils/redux';\nimport { createAction } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\n\nexport default class DigitalSettingsActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/digital/settings`;\n\n private static readonly OPEN_SETTINGS = `${DigitalSettingsActions.ACTION_SCHEMA}/OPEN_SETTINGS`;\n private static readonly CLOSE_SETTINGS = `${DigitalSettingsActions.ACTION_SCHEMA}/CLOSE_SETTINGS`;\n\n static openSettings = createAction(DigitalSettingsActions.OPEN_SETTINGS);\n static closeSettings = createAction(DigitalSettingsActions.CLOSE_SETTINGS, optionalProps<{ trackEvent?: boolean }>());\n}\n","import { DecisionSource } from '@bpos/v1/over-ask';\nimport { createAction, props } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\n\nexport class BetslipResultActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/result`;\n\n private static readonly CLOSE = `${BetslipResultActions.ACTION_SCHEMA}/CLOSE`;\n\n private static readonly GO_TO_MY_BETS = `${BetslipResultActions.ACTION_SCHEMA}/GO_TO_MY_BETS`;\n\n private static readonly CLEAR_RESULT = `${BetslipResultActions.ACTION_SCHEMA}/CLEAR_RESULT`;\n\n private static readonly KEEP_PLACED_BETS_IN_BETSLIP = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_BETSLIP`;\n\n private static readonly SHOW_BET_STATION_RESULT = `${BetslipResultActions.ACTION_SCHEMA}/SHOW_BET_STATION_RESULT`;\n\n private static readonly DECISION_SOURCE = `${BetslipResultActions.ACTION_SCHEMA}/IS_DECISION_SOURCE_AUTO`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_SINGLE = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_SINGLE`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_COMBO = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_COMBO`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_SYSTEM = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_SYSTEM`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_TEASER = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_TEASER`;\n\n /**\n * Called when closing result screen, e.g. navigate to my bets from result.\n */\n static close = createAction(BetslipResultActions.CLOSE);\n\n static goToMyBets = createAction(BetslipResultActions.GO_TO_MY_BETS);\n\n static keepPlacedBetsInBetslip = createAction(BetslipResultActions.KEEP_PLACED_BETS_IN_BETSLIP, props<{ keepPlacedBetsInBetslip: boolean }>());\n\n static keepPlacedBetsInLinearSingle = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_SINGLE,\n props<{ keepPlacedBetsInLinearSingle: boolean }>(),\n );\n\n static keepPlacedBetsInLinearCombo = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_COMBO,\n props<{ keepPlacedBetsInLinearCombo: boolean }>(),\n );\n\n static keepPlacedBetsInLinearSystem = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_SYSTEM,\n props<{ systemKey: string; keepPlacedBetsInLinearSystem: boolean }>(),\n );\n\n static keepPlacedBetsInLinearBetBuilder = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER,\n props<{ groupId: string; keepPlacedBetsInLinearBetBuilder: boolean }>(),\n );\n\n static keepPlacedBetsInLinearTeaser = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_TEASER,\n props<{ keepPlacedBetsInLinearTeaser: boolean }>(),\n );\n\n static decisionSource = createAction(\n BetslipResultActions.DECISION_SOURCE,\n props<{ decisionSource?: DecisionSource; isOfferModified: boolean }>(),\n );\n\n /**\n * Show modal on Betstation eg: Bet Placed. Would you like to retain your selection(s)?\n */\n static showBetStationResult = createAction(BetslipResultActions.SHOW_BET_STATION_RESULT);\n\n static clearResult = createAction(BetslipResultActions.CLEAR_RESULT);\n}\n","import { createAction, props } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\nimport { BetslipType } from '../../core/betslip-type';\nimport { LinearTypes } from '../../core/linear-types';\nimport { PickId } from '../../core/picks/pick-id';\nimport { SystemSlipType } from '../bet-generation/slip-type';\nimport { IBetslipTypeState } from './state';\n\nexport class BetslipTypesActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/types`;\n\n private static readonly SET_EACH_WAY = `${BetslipTypesActions.ACTION_SCHEMA}/SET_EACH_WAY`;\n private static readonly POPULATE_FROM_STORAGE = `${BetslipTypesActions.ACTION_SCHEMA}/POPULATE_FROM_STORAGE`;\n private static readonly SET_ACTIVE_TYPES = `${BetslipTypesActions.ACTION_SCHEMA}/SET_ACTIVE_TYPES`;\n private static readonly SET_LINEAR_TYPES = `${BetslipTypesActions.ACTION_SCHEMA}/SET_LINEAR_TYPES`;\n private static readonly SET_SELECTED_TYPE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_SELECTED_TYPE`;\n private static readonly TRIGGER_AUTO_COMBO_SWITCH = `${BetslipTypesActions.ACTION_SCHEMA}/TRIGGER_AUTO_COMBO_SWITCH`;\n private static readonly SET_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_ORIGINAL_BASE`;\n private static readonly SET_FROM_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_FROM_ORIGINAL_BASE`;\n private static readonly SET_DEFAULT_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_DEFAULT_ORIGINAL_BASE`;\n private static readonly SET_SELECTED_BY_USER = `${BetslipTypesActions.ACTION_SCHEMA}/SET_SELECTED_BY_USER`;\n private static readonly CHECK_DEFAULT_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/CHECK_DEFAULT_STAKE`;\n\n private static readonly SET_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_STAKE`;\n\n private static readonly SET_DEFAULT_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_DEFAULT_STAKE`;\n\n /**\n * Sets each way state to all betslip types\n *\n * @param isEachWay isEachWay value.\n */\n static setEachWay = createAction(BetslipTypesActions.SET_EACH_WAY, props<{ isEachWay: boolean; pickIds?: PickId[] }>());\n\n /**\n * @description Invoked from the epic when startPopulateStore is executed (application init / page refresh).\n * Reducer will update the state with values from the session storage.\n * @param IBetslipTypeState betslip type state\n */\n static populateFromStorage = createAction(BetslipTypesActions.POPULATE_FROM_STORAGE, props<{ state: IBetslipTypeState }>());\n\n static setActiveTypes = createAction(BetslipTypesActions.SET_ACTIVE_TYPES, props<{ betslipTypes: BetslipType[] }>());\n\n static setSelectedType = createAction(\n BetslipTypesActions.SET_SELECTED_TYPE,\n // Previous type is a bit of a hack to fix a regression defect, there needs to be a proper implementation for it\n // The defect is related to handleToggleExistingBetslipSelectionsEffect because we are firing set selected type even when the type isnt changing.\n props<{ betslipType: BetslipType | null; systemInfo: SystemSlipType | null; selectedByUser: boolean; previousType?: BetslipType | null }>(),\n );\n\n static triggerAutoComboSwitch = createAction(BetslipTypesActions.TRIGGER_AUTO_COMBO_SWITCH);\n\n static setLinearTypes = createAction(BetslipTypesActions.SET_LINEAR_TYPES, props<{ types: LinearTypes }>());\n\n static setOriginalBase = createAction(BetslipTypesActions.SET_ORIGINAL_BASE);\n\n static setFromOriginalBase = createAction(BetslipTypesActions.SET_FROM_ORIGINAL_BASE);\n\n static setDefaultOriginalBase = createAction(BetslipTypesActions.SET_DEFAULT_ORIGINAL_BASE);\n static checkDefaultStake = createAction(\n BetslipTypesActions.CHECK_DEFAULT_STAKE,\n props<{ isValidComboBet: boolean; hasBetBuilderPicks: boolean; isQuickBetBuilder: boolean }>(),\n );\n\n static setSelectedByUser = createAction(BetslipTypesActions.SET_SELECTED_BY_USER, props<{ isSelectedByUser: boolean }>());\n\n static setStake = createAction(BetslipTypesActions.SET_STAKE, props<{ stake: number | null; silent?: boolean; stakeStr?: string }>());\n\n static setDefaultStake = createAction(BetslipTypesActions.SET_DEFAULT_STAKE, props<{ defaultStake?: number }>());\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { GameType } from '@bpos/v1/sports-promo';\nimport { CRMTokenImages, CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { Cards } from '@frontend/sports/types/components/sitecore';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, IntlService, LocalStoreService, NavigationService, OnAppInit } from '@frontend/vanilla/core';\nimport { RedirectHelperService } from 'packages/sports/web/app/src/navigation-core/redirect-helper.service';\nimport { SportUrlParam, UrlHelperService } from 'packages/sports/web/app/src/navigation-core/url-helper.service';\nimport { PromoHubUrlTokenType, RewardTokenImages, RewardTokenType } from 'packages/sports/web/app/src/tokens-base/token-base.models';\nimport { BehaviorSubject, Observable, Subject, take } from 'rxjs';\n\nimport { IRewardToken, RewardBannerTrackingConstants } from '../reward-tokens.model';\nimport { parseMarketType } from './reward-tokens.utils';\n\nexport interface TokenCategories {\n sportsCatergory?: string;\n liveCategory?: string;\n competitionsCategory?: string;\n meetingsCategory?: string;\n fixturesCategory?: string;\n marketsCategory?: string;\n marketTemplatesCategory?: string;\n marketParametersCategory?: string;\n optionsCategory?: string;\n prematchCategory?: string;\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class RewardTokensBannerService implements OnAppInit {\n private readonly _doc = inject(DOCUMENT);\n private readonly betRewardBannerDismissKey = 'IsBetRewardBannerDismissed';\n private readonly MINUTE = 60 * 1000;\n private readonly HOUR = 60 * this.MINUTE;\n private readonly DAY = 24 * this.HOUR;\n private _recentlyClickedToken$ = new BehaviorSubject(null);\n readonly recentlyClickedToken$ = this._recentlyClickedToken$.asObservable();\n private _isBannerExpaned = new Subject();\n private isBannerExpanded = false;\n isRewardDrawerEnabled = this.tokensConfig.tokens.isRewardDrawerEnabled;\n\n constructor(\n public sitecore: Sitecore,\n private userService: UserService,\n private localStoreService: LocalStoreService,\n private trackingService: TrackingService,\n private redirectHelperService: RedirectHelperService,\n private scrollContainer: ScrollContainerService,\n private navigationService: NavigationService,\n private urlHelperService: UrlHelperService,\n private deviceService: DeviceService,\n private crmTokenimage: CRMTokenImages,\n private intlService: IntlService,\n private tokensConfig: CrmConfig,\n ) {}\n\n onAppInit(): void {\n if (this.userService.isAuthenticated || !this.isBetRewardBannerDismissed()) {\n return;\n }\n\n this.userService.onUserLogin$.pipe(take(1)).subscribe(() => {\n this.setBetRewardBannerStorageKey(false);\n });\n }\n\n setBetRewardBannerStorageKey(isBetRewardBannerDismissed: boolean): void {\n this.localStoreService.set(this.betRewardBannerDismissKey, isBetRewardBannerDismissed);\n }\n\n isBetRewardBannerDismissed(): boolean {\n return this.localStoreService.get(this.betRewardBannerDismissKey) ?? false;\n }\n\n trackBetRewardBanner(\n action: RewardBannerTrackingConstants,\n baseTracking: { [key: string]: string },\n eventDetail: string,\n positionEvent?: string,\n url?: string,\n page?: string,\n ): void {\n this.trackingService.track(\n action === RewardBannerTrackingConstants.Load ? trackingConstants.EVENT_CONTENT_VIEW : trackingConstants.EVENT_TRACKING,\n {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: RewardBannerTrackingConstants.PromoHub,\n [trackingConstants.COMPONENT_LABEL_EVENT]: RewardBannerTrackingConstants.BetRewardsBanner,\n [trackingConstants.COMPONENT_ACTION_EVENT]: action,\n [trackingConstants.COMPONENT_POSITION_EVENT]: positionEvent ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]:\n action === RewardBannerTrackingConstants.Click ? RewardBannerTrackingConstants.BetRewardsBanner : (page ?? NOT_APPLICABLE),\n [trackingConstants.COMPONENT_EVENT_DETAILS]: eventDetail,\n [trackingConstants.COMPONENT_URL_CLICKED]: url ?? NOT_APPLICABLE,\n ...baseTracking,\n },\n );\n }\n\n betNowRedirect(token: IRewardToken): void {\n this.setRecentlyClicked(null);\n\n if (this.isRewardDrawerEnabled && token.url) {\n this.redirectHelperService.goToPage(token.url);\n } else {\n const fixturesCount = token.filter?.fixtures?.length;\n if (fixturesCount === 1) {\n // For racing fixture filter cretira there is no meeting details, so navigate to racing sport lobby page\n if ([SportConstant.Horses, SportConstant.Greyhounds].includes(token.filter.sports[0].id)) {\n this.redirectToSport(token);\n } else {\n this.redirectHelperService.goToEvent(token.filter.fixtures[0]);\n }\n } else if (token.filter?.competitions?.length === 1) {\n const competitionUrl = this.urlHelperService.getSportUrl(\n token.filter.sports[0],\n SportUrlParam.Betting,\n { id: '', name: '' },\n { id: token.filter.competitions[0].id, name: '' },\n );\n this.redirectHelperService.goToPage(competitionUrl);\n } else if (token.filter?.meetings?.length === 1) {\n const param = {\n id: token.filter.meetings[0].id,\n name: '',\n };\n this.redirectHelperService.goToRacing(token.filter.sports[0].id, param);\n } else if (token.filter?.gameType === GameType.InPlay) {\n this.redirectToLiveSport(token);\n } else {\n this.redirectToSport(token);\n }\n }\n }\n\n private homeRedirection(): void {\n const currentUrl = this.navigationService.location.path();\n const scrollHeight = this._doc.querySelector('.cards-module')?.scrollHeight;\n if (currentUrl === this.urlHelperService.getHomeUrl() && this.deviceService.isMobile && !this.isRewardDrawerEnabled) {\n this.scrollContainer.scrollTo(0, 0);\n this.scrollContainer.scrollToDelta(0, scrollHeight);\n } else if (this.deviceService.isMobile && this.isRewardDrawerEnabled) {\n this.setRecentlyClicked(null);\n this.toggleBannerExpansion();\n if (currentUrl === this.urlHelperService.getHomeUrl()) {\n this.scrollOnBetNow();\n }\n } else {\n this.redirectHelperService.goHome(undefined, true);\n }\n }\n\n private redirectToLiveSport(token: IRewardToken): void {\n const liveSportsCount = token.filter.sports?.length;\n if (liveSportsCount === 1) {\n this.redirectHelperService.goToLiveSport({ sport: token.filter.sports[0] });\n } else {\n this.redirectHelperService.goToLive();\n }\n }\n\n private redirectToSport(token: IRewardToken): void {\n const sportsCount = token.filter?.sports?.length;\n const currentUrl = this.navigationService.location.path();\n const scrollHeight = this._doc.querySelector('.cards-module')?.scrollHeight;\n\n if (sportsCount === 1) {\n if (currentUrl === this.urlHelperService.getSportUrl(token.filter.sports[0]) && this.deviceService.isMobile) {\n this.scrollContainer.scrollTo(0, 0);\n this.scrollContainer.scrollToDelta(0, scrollHeight);\n } else {\n this.redirectHelperService.goToSport(token.filter.sports[0]);\n }\n } else {\n this.setRecentlyClicked(token.userTokenId);\n this.homeRedirection();\n }\n }\n\n setTokenInfoUrl(promoHubUrlTokenType: string, userTokenId: string): void {\n const promoBaseUrl = this.sitecore.crmTokens.links.promotiondetails.url;\n const promoBaseUrlSeparator = promoBaseUrl?.endsWith('/') ? '' : '/';\n const tokenInfoUrl = `${promoBaseUrl}${promoBaseUrlSeparator}${promoHubUrlTokenType}/${userTokenId}`;\n this.redirectHelperService.goToPage(tokenInfoUrl);\n }\n\n getIconUrl(isRewardBannerView?: boolean): { [id: string]: string } {\n const isDarkMode = this.tokensConfig.tokens.enableDarkModeForRewardDrawer && isRewardBannerView;\n const rewardsIcons = {} as { [id: string]: string };\n\n rewardsIcons[RewardTokenType.FreeBet] = this.crmTokenimage.crmTokenImages.find(\n (x) => x.name === (isDarkMode ? RewardTokenImages.FreeBetDark : RewardTokenImages.FreeBet),\n )?.src!;\n rewardsIcons[RewardTokenType.OddsBoost] = this.crmTokenimage.crmTokenImages.find(\n (x) => x.name === (isDarkMode ? RewardTokenImages.OddsBoostDark : RewardTokenImages.OddsBoost),\n )?.src!;\n rewardsIcons[RewardTokenType.RiskFreeBet] = this.crmTokenimage.crmTokenImages.find(\n (x) => x.name === (isDarkMode ? RewardTokenImages.RiskFreeBetDark : RewardTokenImages.RiskFreeBet),\n )?.src!;\n rewardsIcons[RewardTokenType.BetAndGet] = this.crmTokenimage.crmTokenImages.find(\n (x) => x.name === (isDarkMode ? RewardTokenImages.BetAndGetDark : RewardTokenImages.BetAndGet),\n )?.src!;\n\n return rewardsIcons;\n }\n\n getTokenUrlDetails(token: IRewardToken): { tokenInfoUrl: string; tokenInfoLinkText: string; promoHubUrlTokenType: string } {\n const promoCtaLinks = this.sitecore.crmTokens.ctaLinks.promoCtaLinks;\n switch (token.rewardTokenType) {\n case RewardTokenType.FreeBet:\n return {\n tokenInfoUrl: this.getTokenUrl(promoCtaLinks.FreeBet, this.sitecore.crmTokens.cards.FreeBetsDetailsUrl, token),\n tokenInfoLinkText: this.sitecore.crmTokens.banner.FreebetDetailsLinkTitle,\n promoHubUrlTokenType: PromoHubUrlTokenType.FreeBet,\n };\n case RewardTokenType.RiskFreeBet:\n return {\n tokenInfoUrl: this.getTokenUrl(promoCtaLinks.RiskFreeBet, this.sitecore.crmTokens.cards.RiskFreeBetDetailsUrl, token),\n tokenInfoLinkText: this.sitecore.crmTokens.banner.BackupBetDetailsLinkTitle,\n promoHubUrlTokenType: PromoHubUrlTokenType.FreeBet,\n };\n case RewardTokenType.OddsBoost:\n return {\n tokenInfoUrl: this.getTokenUrl(promoCtaLinks.OddsBoost, this.sitecore.crmTokens.cards.OddBoostDetailsUrl, token),\n tokenInfoLinkText: this.sitecore.crmTokens.banner.OddsBoostDetailsLinkTitle,\n promoHubUrlTokenType: PromoHubUrlTokenType.FreeBet,\n };\n case RewardTokenType.BetAndGet:\n return {\n tokenInfoUrl: this.getTokenUrl(promoCtaLinks.BetAndGet, this.sitecore.crmTokens.cards.BetAndGetDetailsUrl, token),\n tokenInfoLinkText: this.sitecore.crmTokens.banner.BetAndGetDetailsLinkTitle,\n promoHubUrlTokenType: PromoHubUrlTokenType.FreeBet,\n };\n default:\n return { tokenInfoUrl: '', tokenInfoLinkText: '', promoHubUrlTokenType: PromoHubUrlTokenType.FreeBet };\n }\n }\n\n private getTokenUrl(promoHubUrlTokenType: string, tokenUrl: string, token: IRewardToken): string {\n const promoBaseUrl = this.sitecore.crmTokens.links.promotiondetails.url;\n const promoBaseUrlSeparator = promoBaseUrl?.endsWith('/') ? '' : '/';\n if (this.isRewardDrawerEnabled) {\n return interpolateDoubleBracesString(tokenUrl, {\n promoBaseUrl: promoBaseUrl ?? '',\n promoBaseUrlSeparator,\n userTokenId: token.userTokenId,\n });\n } else {\n return `${promoBaseUrl}${promoBaseUrlSeparator}${promoHubUrlTokenType}/${token.userTokenId}`;\n }\n }\n\n getTokenTitle(token: IRewardToken): string {\n switch (token.rewardTokenType) {\n case RewardTokenType.FreeBet:\n return token.customTitle ? token.customTitle : this.sitecore.crmTokens.messages.Freebet;\n case RewardTokenType.RiskFreeBet:\n return token.customTitle ? token.customTitle : this.sitecore.crmTokens.riskFree.card.DefaultTitle;\n case RewardTokenType.OddsBoost:\n if (token.tokenType === 'DEFAULT') {\n return this.sitecore.crmTokens.oddsBoost.card.OddsBoostTypeRegular;\n } else if (token.tokenType === 'MEGA') {\n return this.sitecore.crmTokens.oddsBoost.card.OddsBoostTypeMega;\n } else if (token.tokenType === 'SUPER') {\n return this.sitecore.crmTokens.oddsBoost.card.OddsBoostTypeSuper;\n } else {\n if (token.tokenType === 'CUSTOM' && token.customTitle) {\n return token.customTitle;\n }\n\n return this.sitecore.crmTokens.messages.OddsBoost;\n }\n case RewardTokenType.BetAndGet:\n return token.customTitle ? token.customTitle : this.sitecore.crmTokens.messages.BetAndGet;\n }\n\n return '';\n }\n\n getTokenCategories(token: IRewardToken): TokenCategories {\n const tokenCards: Cards = this.sitecore.crmTokens.cards;\n const result: TokenCategories = {};\n const separator = tokenCards.TokenCategoryDelimiter;\n const isLiveSport = token.filter?.gameType === GameType.InPlay;\n\n const sportsCount = token.filter?.sports?.length;\n if (sportsCount) {\n if (sportsCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.sport) {\n result.sportsCatergory = token.filter.sports.map((sport) => sport.name).join(separator);\n } else {\n result.sportsCatergory = tokenCards.TokenCategorySelectedSports;\n }\n if (isLiveSport) {\n result.liveCategory = tokenCards.Live;\n }\n\n const competitionsCount = token.filter?.competitions?.length;\n\n if (competitionsCount) {\n if (competitionsCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.competitions) {\n result.competitionsCategory = token.filter.competitions.map((competition) => competition.name).join(separator);\n } else {\n result.competitionsCategory = tokenCards.MultipleCompetitions;\n }\n }\n\n const meetingsCount = token.filter?.meetings?.length;\n\n if (meetingsCount) {\n if (meetingsCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.competitions) {\n result.meetingsCategory = token.filter.meetings.map((meeting) => meeting.name).join(separator);\n } else {\n result.meetingsCategory = tokenCards.MultipleCompetitions;\n }\n }\n\n const fixturesCount = token.filter?.fixtures?.length;\n\n if (fixturesCount) {\n if (fixturesCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.fixtures) {\n result.fixturesCategory = token.filter.fixtures.map((fixture) => fixture.name).join(separator);\n } else {\n result.fixturesCategory = tokenCards.TokenCategorySelectedEvents;\n }\n }\n\n const marketsCount = token.filter?.markets.length;\n\n if (marketsCount) {\n if (marketsCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.markets) {\n result.marketsCategory = token.filter.markets.map((market) => market.name).join(separator);\n } else {\n result.marketsCategory = tokenCards.TokenCategorySelectedMarkets;\n }\n }\n\n const marketTemplatesCount = token.filter?.marketTemplates.length;\n\n if (marketTemplatesCount) {\n if (marketTemplatesCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.templates) {\n result.marketTemplatesCategory = token.filter.marketTemplates.map((marketTemplate) => marketTemplate.name).join(separator);\n } else {\n result.marketTemplatesCategory = tokenCards.TokenCategorySelectedTemplates;\n }\n }\n\n const marketParametersCount = token.filter?.marketParameters.length;\n\n if (marketParametersCount) {\n if (marketParametersCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.templates) {\n const marketTypes = parseMarketType(token);\n result.marketParametersCategory = marketTypes.join(separator);\n } else {\n result.marketParametersCategory = tokenCards.TokenCategorySelectedParameters;\n }\n }\n\n const optionsCount = token.filter?.options.length;\n\n if (optionsCount) {\n if (optionsCount <= this.tokensConfig.tokens.displayCategoriesMaxValues.options) {\n result.optionsCategory = token.filter.options.map((option) => option.name).join(separator);\n } else {\n result.optionsCategory = tokenCards.TokenCategorySelectedSelections;\n }\n }\n } else {\n result.sportsCatergory = tokenCards.TokenCategoryAllSports;\n\n if (isLiveSport) {\n result.liveCategory = tokenCards.Live;\n }\n }\n\n return result;\n }\n\n getTokenExpires(expiryDate: Date): string {\n const now = DateProviderService.getDate();\n const today = DateProviderService.buildDate(now.getFullYear(), now.getMonth(), now.getDate() + 1);\n const tomorrow = DateProviderService.getDate(today.getTime() + this.DAY);\n const nowDate = DateProviderService.buildDate(now.getFullYear(), now.getMonth(), now.getDate());\n const expirDate = DateProviderService.buildDate(expiryDate.getFullYear(), expiryDate.getMonth(), expiryDate.getDate());\n const diffDay = expirDate.getTime() - nowDate.getTime();\n const diff = expiryDate.getTime() - now.getTime();\n const diffHours = diff / this.HOUR;\n if (this.isRewardDrawerEnabled) {\n return this.getRewardDrawerTokenExpires(diff, today, expiryDate, diffDay, tomorrow);\n }\n\n return this.getDefaultTokenExpires(diffHours, diffDay);\n }\n\n private getRewardDrawerTokenExpires(diff: number, today: Date, expiryDate: Date, diffDay: number, tomorrow: Date): string {\n if (diff < 0) {\n return this.sitecore.crmTokens.cards.TokenExpiredTemplate;\n }\n\n if (expiryDate < today) {\n return interpolateDoubleBracesString(this.sitecore.crmTokens.cards.TokenExpireTodayTemplate, {\n todayTime: this.intlService.formatDate(expiryDate, 'shortTime'),\n });\n }\n\n if (expiryDate < tomorrow) {\n return interpolateDoubleBracesString(this.sitecore.crmTokens.cards.TokenExpireTomorrowTemplate, {\n tomorrowTime: this.intlService.formatDate(expiryDate, 'shortTime'),\n });\n }\n\n if (diffDay <= this.DAY * 6) {\n return interpolateDoubleBracesString(this.sitecore.crmTokens.cards.TokenExpireDaysTemplate, {\n dayCount: diffDay / this.DAY,\n });\n }\n\n return this.intlService.formatDate(expiryDate, 'shortDate');\n }\n\n private getDefaultTokenExpires(diffHours: number, diffDay: number): string {\n if (diffHours < 0) {\n return this.sitecore.crmTokens.cards.TokenExpiredTemplate;\n }\n if (diffHours < 1) {\n return this.sitecore.crmTokens.cards.TokenExpireLessThanHourTemplate;\n }\n if (diffHours < 24) {\n return interpolateDoubleBracesString(this.sitecore.crmTokens.cards.TokenExpireHoursTemplate, {\n hoursCount: Math.floor(diffHours) + 1,\n });\n }\n\n return interpolateDoubleBracesString(this.sitecore.crmTokens.cards.TokenExpireDaysTemplate, {\n dayCount: diffDay / this.DAY,\n });\n }\n\n setDefaultValueForBannerExpanded(): void {\n this.isBannerExpanded = false;\n this._isBannerExpaned.next(this.isBannerExpanded);\n }\n\n setRecentlyClicked(userTokenId: string | null): void {\n if (this.isRewardDrawerEnabled) {\n this._recentlyClickedToken$.next(userTokenId);\n }\n }\n\n get isBannerExpanded$(): Observable {\n return this._isBannerExpaned.asObservable();\n }\n\n toggleBannerExpansion(): void {\n this.isBannerExpanded = !this.isBannerExpanded;\n this._isBannerExpaned.next(this.isBannerExpanded);\n }\n\n private scrollOnBetNow(): void {\n const marqueeHeight = this._doc.querySelector('ms-marquee-widget:last-of-type')?.getBoundingClientRect().bottom ?? 0;\n const fixedHeaderHeight =\n this._doc.querySelector('ms-sitemap')?.scrollHeight ?? this._doc.querySelector('vn-header')?.getBoundingClientRect().bottom ?? 0;\n this.scrollContainer.scrollToDelta(0, marqueeHeight - fixedHeaderHeight);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CrmPromotionReplaceParametersService } from 'packages/sports/web/app/src/crm-promotion/crm-promotion-replace-parameters.service';\n\nimport { IRewardToken } from '../reward-tokens.model';\n\n@Injectable({ providedIn: 'root' })\nexport class RewardTokensFormattersService {\n private currencySymbolReplacebleParam = '_{CurrencySymbol}_';\n private currencyCodeReplacebleParam = '_{Currency}_';\n\n constructor(private replaceParametersService: CrmPromotionReplaceParametersService) {}\n\n replaceCurrency(title: string, currencySymbol: string = '', currencyCode: string = ''): string {\n return title\n .replace(new RegExp(this.currencySymbolReplacebleParam, 'g'), currencySymbol)\n .replace(new RegExp(this.currencyCodeReplacebleParam, 'g'), currencyCode);\n }\n\n getTokenQuickViewReplaceValue(token: IRewardToken, replace: string | undefined): string {\n return replace\n ? this.replaceParametersService.replaceParameters(this.replaceCurrency(replace), token.replaceableParameters!, false, false, true)\n : '';\n }\n}\n","import { DayOfRaceDate } from '@cds/betting-offer/domain-specific/horse-racing';\nimport { RacingUrlParam } from '@frontend/sports/racing/feature/models';\n\nexport function getDayOfRace(dateAsString: string): DayOfRaceDate {\n const now = new Date();\n const tomorrowNow = new Date();\n tomorrowNow.setDate(tomorrowNow.getDate() + 1);\n const date = new Date(dateAsString);\n if (now.getUTCFullYear() === date.getUTCFullYear() && now.getUTCMonth() === date.getUTCMonth() && now.getUTCDate() === date.getUTCDate()) {\n // now utc date is equal to given date utc.\n return DayOfRaceDate.Today;\n }\n if (\n tomorrowNow.getUTCFullYear() === date.getUTCFullYear() &&\n tomorrowNow.getUTCMonth() === date.getUTCMonth() &&\n tomorrowNow.getUTCDate() === date.getUTCDate()\n ) {\n // now utc date is equal to given date utc.\n return DayOfRaceDate.Tomorrow;\n }\n\n return DayOfRaceDate.Today;\n}\n\nexport function convertDayOfRaceToUrlParam(dayOfRace: DayOfRaceDate): RacingUrlParam {\n switch (dayOfRace) {\n case DayOfRaceDate.Today:\n return RacingUrlParam.Today;\n case DayOfRaceDate.Tomorrow:\n return RacingUrlParam.Tomorrow;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixtureBase, FixtureType } from '@cds/betting-offer';\nimport { FixtureAddons, FixturePricingState } from '@cds/betting-offer/add-ons';\nimport { DayOfRaceDate } from '@cds/betting-offer/domain-specific/horse-racing';\nimport { EventOptionGroup } from '@frontend/sports/betting-offer/feature/model';\nimport { RacingConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { OptionMarketsFixture, ParticipantsFixture, WinGameFixture, WinGameFixturePreview } from '@frontend/sports/racing/feature/models';\nimport { RaceStatuses } from '@frontend/sports/types/components/sitecore';\nimport { IntlService } from '@frontend/vanilla/core';\n\nimport { getDayOfRace } from '../helpers';\n\nexport interface PricingStateFixture extends Pick {\n addons: Pick;\n}\n\nexport function updateStatus(fixture: WinGameFixturePreview, sitecore: Sitecore): string {\n if (fixture.addons.raceSummary) {\n const raceStatus = Object.getOwnPropertyNames(sitecore.horseRacing.raceStatuses).find(\n (o) => o.toUpperCase() === fixture.addons.raceSummary.toUpperCase().split(' ').join(''),\n );\n\n return raceStatus && sitecore.horseRacing.raceStatuses[raceStatus]\n ? sitecore.horseRacing.raceStatuses[raceStatus]\n : fixture.addons.raceSummary;\n } else {\n return '';\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HorsesFixtureHelper {\n constructor(\n private sitecore: Sitecore,\n private intlService: IntlService,\n private racingConfig: RacingConfig,\n ) {}\n\n static isTradable(fixture: PricingStateFixture): boolean {\n return (\n fixture.fixtureType !== FixtureType.DayOfRace ||\n fixture.addons.pricingState === FixturePricingState.None ||\n fixture.addons.pricingState === FixturePricingState.Priced\n );\n }\n\n filterSelectedMarketOptionGroup(fixture: WinGameFixture, selectedMarketId: number): EventOptionGroup[] {\n return fixture.optionGroups.filter((optionGroup) => optionGroup.detailedGrouping.marketSet === selectedMarketId);\n }\n\n updateStatus(fixture: WinGameFixture): string {\n if (fixture.addons.raceSummary) {\n const raceStatus = Object.getOwnPropertyNames(this.sitecore.horseRacing.raceStatuses).find(\n (o) => o.toUpperCase() === fixture.addons.raceSummary.toUpperCase().replaceAll(' ', ''),\n );\n\n return raceStatus ? this.sitecore.horseRacing.raceStatuses[raceStatus as keyof RaceStatuses] : '';\n } else {\n return '';\n }\n }\n\n checkIfBOGApplicable(fixture: WinGameFixture | OptionMarketsFixture | ParticipantsFixture): boolean | undefined {\n const day = getDayOfRace(fixture.startDate);\n if (day === DayOfRaceDate.Tomorrow || this.intlService.formatDate(fixture.startDate, 'HH:mm') <= this.racingConfig.bogTodayThresholdTime) {\n return false;\n }\n\n return fixture.addons.bestOddsGuarantee;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { PlayerAttributes } from './player-attributes.models';\n\n/**\n * @whatItDoes Provides player attributes.\n *\n * @description\n *\n * This service is used to get and refresh player attributes.\n *\n * @stable\n *\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PlayerAttributesService {\n private sharedFeaturesApiService = inject(SharedFeaturesApiService);\n private userService = inject(UserService);\n\n private playerAttributesEvents = new BehaviorSubject(null);\n private loaded: boolean;\n\n /**\n * Allows to subscribe to player attributes.\n */\n get playerAttributes(): Observable {\n this.load();\n\n return this.playerAttributesEvents;\n }\n\n /**\n * Refreshes the player attributes.\n *\n * @param cached - If true, the cached data will be used.\n */\n refresh(cached = true) {\n this.loaded = false;\n this.load(cached);\n }\n\n private load(cached = true) {\n if (this.userService.isAuthenticated && !this.loaded) {\n this.loaded = true;\n\n this.sharedFeaturesApiService\n .get('playerAttributes', { cached })\n .subscribe((response: PlayerAttributes) => this.playerAttributesEvents.next(response));\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DSL_NOT_READY, DslCacheService, DslRecordable, DslRecorderService, DslValuesProvider, UserService } from '@frontend/vanilla/core';\n\nimport { PlayerAttributes } from './player-attributes.models';\nimport { PlayerAttributesService } from './player-attributes.service';\n\n@Injectable()\nexport class PlayerAttributesDslValuesProvider implements DslValuesProvider {\n private playerAttributes: PlayerAttributes | null;\n private loaded = false;\n\n constructor(\n private dslRecorderService: DslRecorderService,\n private playerAttributesService: PlayerAttributesService,\n private userService: UserService,\n dslCacheService: DslCacheService,\n ) {\n this.playerAttributesService.playerAttributes.subscribe((playerAttributes: PlayerAttributes | null) => {\n this.playerAttributes = playerAttributes;\n dslCacheService.invalidate(['playerAttributes']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n return {\n PlayerAttributes: this.dslRecorderService\n .createRecordable('playerAttributes')\n .createFunction({\n name: 'GetAcknowledged',\n get: (key: string) => this.getCurrentValue('acknowledgement', key),\n deps: ['playerAttributes', 'user.isAuthenticated'],\n })\n .createFunction({\n name: 'GetVip',\n get: (key: string) => this.getCurrentValue('vip', key),\n deps: ['playerAttributes', 'user.isAuthenticated'],\n }),\n };\n }\n\n private getCurrentValue(type: 'vip' | 'acknowledgement', key: string): string {\n if (!this.userService.isAuthenticated) {\n return '';\n }\n\n if (!this.loaded) {\n this.loaded = true;\n this.playerAttributesService.refresh();\n }\n\n return this.playerAttributes ? (this.playerAttributes[type]?.[key]?.value ?? '') : DSL_NOT_READY;\n }\n}\n","import { registerLazyDslOnModuleInit } from '@frontend/vanilla/core';\n\nimport { PlayerAttributesDslValuesProvider } from './player-attributes-dsl-values-provider';\n\nexport function provide() {\n return [registerLazyDslOnModuleInit(PlayerAttributesDslValuesProvider)];\n}\n","import * as i0 from '@angular/core';\nimport { inject, NgZone, RendererFactory2, Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, shareReplay, takeUntil } from 'rxjs/operators';\n\n/**\n * Handler that logs \"ResizeObserver loop limit exceeded\" errors.\n * These errors are not shown in the Chrome console, so we log them to ensure developers are aware.\n * @param e The error\n */\nconst loopLimitExceededErrorHandler = e => {\n if (e instanceof ErrorEvent && e.message === 'ResizeObserver loop limit exceeded') {\n console.error(`${e.message}. This could indicate a performance issue with your app. See https://github.com/WICG/resize-observer/blob/master/explainer.md#error-handling`);\n }\n};\n/**\n * A shared ResizeObserver to be used for a particular box type (content-box, border-box, or\n * device-pixel-content-box)\n */\nclass SingleBoxSharedResizeObserver {\n _box;\n /** Stream that emits when the shared observer is destroyed. */\n _destroyed = /*#__PURE__*/new Subject();\n /** Stream of all events from the ResizeObserver. */\n _resizeSubject = /*#__PURE__*/new Subject();\n /** ResizeObserver used to observe element resize events. */\n _resizeObserver;\n /** A map of elements to streams of their resize events. */\n _elementObservables = /*#__PURE__*/new Map();\n constructor(/** The box type to observe for resizes. */\n _box) {\n this._box = _box;\n if (typeof ResizeObserver !== 'undefined') {\n this._resizeObserver = new ResizeObserver(entries => this._resizeSubject.next(entries));\n }\n }\n /**\n * Gets a stream of resize events for the given element.\n * @param target The element to observe.\n * @return The stream of resize events for the element.\n */\n observe(target) {\n if (!this._elementObservables.has(target)) {\n this._elementObservables.set(target, new Observable(observer => {\n const subscription = this._resizeSubject.subscribe(observer);\n this._resizeObserver?.observe(target, {\n box: this._box\n });\n return () => {\n this._resizeObserver?.unobserve(target);\n subscription.unsubscribe();\n this._elementObservables.delete(target);\n };\n }).pipe(filter(entries => entries.some(entry => entry.target === target)),\n // Share a replay of the last event so that subsequent calls to observe the same element\n // receive initial sizing info like the first one. Also enable ref counting so the\n // element will be automatically unobserved when there are no more subscriptions.\n shareReplay({\n bufferSize: 1,\n refCount: true\n }), takeUntil(this._destroyed)));\n }\n return this._elementObservables.get(target);\n }\n /** Destroys this instance. */\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._resizeSubject.complete();\n this._elementObservables.clear();\n }\n}\n/**\n * Allows observing resize events on multiple elements using a shared set of ResizeObserver.\n * Sharing a ResizeObserver instance is recommended for better performance (see\n * https://github.com/WICG/resize-observer/issues/59).\n *\n * Rather than share a single `ResizeObserver`, this class creates one `ResizeObserver` per type\n * of observed box ('content-box', 'border-box', and 'device-pixel-content-box'). This avoids\n * later calls to `observe` with a different box type from influencing the events dispatched to\n * earlier calls.\n */\nlet SharedResizeObserver = /*#__PURE__*/(() => {\n class SharedResizeObserver {\n _cleanupErrorListener;\n /** Map of box type to shared resize observer. */\n _observers = new Map();\n /** The Angular zone. */\n _ngZone = inject(NgZone);\n constructor() {\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n this._ngZone.runOutsideAngular(() => {\n const renderer = inject(RendererFactory2).createRenderer(null, null);\n this._cleanupErrorListener = renderer.listen('window', 'error', loopLimitExceededErrorHandler);\n });\n }\n }\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n this._cleanupErrorListener?.();\n }\n /**\n * Gets a stream of resize events for the given target element and box type.\n * @param target The element to observe for resizes.\n * @param options Options to pass to the `ResizeObserver`\n * @return The stream of resize events for the element.\n */\n observe(target, options) {\n const box = options?.box || 'content-box';\n if (!this._observers.has(box)) {\n this._observers.set(box, new SingleBoxSharedResizeObserver(box));\n }\n return this._observers.get(box).observe(target);\n }\n static ɵfac = function SharedResizeObserver_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SharedResizeObserver)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedResizeObserver,\n factory: SharedResizeObserver.ɵfac,\n providedIn: 'root'\n });\n }\n return SharedResizeObserver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SharedResizeObserver };\n","import { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\n\nimport { IConfigSettings, IUserBettingSettings } from '../model/user.models';\n\nexport const userFeatureKey = 'sports-user';\n\nexport interface IUserRootState {\n [userFeatureKey]: IUserState;\n}\n\nexport interface IUserState {\n isAuthenticated: boolean;\n bettingSettings: IUserBettingSettings;\n configSettings: IConfigSettings;\n walletLoaded: boolean;\n oddsFormat?: OddsDisplayFormat;\n}\n\nexport const defaultUserState: IUserState = {\n isAuthenticated: false,\n bettingSettings: {} satisfies IUserBettingSettings,\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n configSettings: {} as IConfigSettings,\n walletLoaded: false,\n};\n","import { Injectable } from '@angular/core';\n\nimport { BetSlipType } from '@bpos';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { flatten, keyBy, uniq } from 'lodash-es';\nimport { AccaBoostLadderItem, AccaBoostSportConfig, AccaBoostToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\n\nimport { PayoutType, RewardTokenType } from '../tokens-base/token-base.models';\nimport { AccaBoostLadderItemData, AccaBoostTokenData } from './acca-boost-data.model';\n\n@Injectable({ providedIn: 'root' })\nexport class AccaBoostTokenFactoryService {\n map(data: AccaBoostTokenData): AccaBoostToken {\n return {\n startDate: new Date(),\n payoutType: PayoutType.Bonus,\n tokenType: '',\n id: data.id.toString(),\n expiryDate: DateProviderService.getDate(data.validUntil),\n userTokenId: `acca-${data.id}`,\n rewardTokenType: RewardTokenType.AccaBoost,\n cmsItemId: data.sitecorePath,\n boostLadder: this.getDistinctLadderValues(data.boostLadder),\n minimumLegs: data.boostLadder[0].numberOfLegs,\n maxReward: data.maxReward.amount,\n priority: data.priority,\n countryCodes: data.countryCodes,\n filter: {\n minOddsPerLeg: data.minOddsPerLeg,\n sports: data.sports.map((s) => ({\n id: s.sportId,\n name: s.sportName,\n })),\n competitions: [],\n meetings: [],\n fixtures: [],\n marketTemplates: [],\n marketParameters: [],\n markets: [],\n options: [],\n betSlipType: BetSlipType.Combo,\n gameType: data.fixtureType,\n sportsConfigs: data.sports.reduce(\n (result, sportConfig) => {\n result[sportConfig.sportId] = {\n gridGroups: keyBy(uniq(flatten(sportConfig.gridGroupIds || []))),\n competitions: keyBy(uniq(flatten(sportConfig.competitionIds || []))),\n };\n\n return result;\n },\n {} as Record,\n ),\n schedule: {\n daysOfTheWeek: data.daysOfWeek,\n timesOfTheDay: [],\n },\n },\n };\n }\n\n private getDistinctLadderValues(boostLadder: AccaBoostLadderItemData[]): AccaBoostLadderItem[] {\n return boostLadder.reduce((result, item) => {\n const lastItem = result.length ? result[result.length - 1] : null;\n if (!lastItem || item.ratio !== lastItem.ratio) {\n result.push(item);\n }\n\n return result;\n }, [] as AccaBoostLadderItemData[]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { AccaBoostConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { ExpiringCache, ExpiringCacheFactory } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { AccaBoostToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { Observable, catchError, map, of } from 'rxjs';\n\nimport { AccaBoostSitecoreData, AccaBoostTokenData, AccaBoostTokensResponse } from './acca-boost-data.model';\nimport { AccaBoostTokenFactoryService } from './acca-boost-token-factory.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AccaBoostTokenLoaderService {\n private readonly tokenUrl = 'crmOffers/GetAccaBoost';\n private readonly configUrl = 'crmOffers/GetAccaBoostContent';\n private readonly configCache: ExpiringCache;\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private apiService: ApiService,\n private accaBoostConfig: AccaBoostConfig,\n private factoryService: AccaBoostTokenFactoryService,\n cacheFactory: ExpiringCacheFactory,\n loggerFactory: LoggerFactory,\n ) {\n this.configCache = cacheFactory.create(accaBoostConfig.sitecoreTokenDataCacheTime * 60);\n\n this.logger = loggerFactory.getLogger('AccaBoostTokenLoaderService');\n }\n\n // TODO: @Andriy this should not reference betslip project directly?\n loadTokens(): Observable {\n const source = this.accaBoostConfig.isEnabled ? this.fetchTokens() : of(undefined);\n\n return source.pipe(map((data) => (data ? this.mapTokens(data.tokens) : [])));\n }\n\n loadTokenData(sitecorePath: string): Observable {\n const source = this.apiService.get(this.configUrl, {\n sitecorePath,\n });\n\n return this.configCache.getOrCreate(sitecorePath, source);\n }\n\n private mapTokens(data: AccaBoostTokenData[]): AccaBoostToken[] {\n return data.map((token) => this.factoryService.map(token));\n }\n\n private fetchTokens(): Observable {\n return this.apiService.get(this.tokenUrl).pipe(\n catchError((err) => {\n this.logger.error(err, `AccaBoostTokenLoaderService - failed to get acca boost tokens.`);\n\n return of(undefined);\n }),\n );\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nimport { AccaBoostConfig } from '@frontend/sports/common/client-config-data-access';\nimport { OptionalNonRootToken } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { UserEvent, UserLoginEvent } from '@frontend/vanilla/core';\nimport { AccaBoostToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { EMPTY, Observable, ReplaySubject, Subject, concat, map, merge, of, startWith, switchMap } from 'rxjs';\n\nimport { AccaBoostTokenLoaderService } from './acca-boost-token-loader.service';\n\nexport const ACCA_BOOST_REFRESH_TRIGGER = new InjectionToken('ACCA_BOOST_REFRESH_TRIGGER');\n\nexport interface AccaBoostRefreshTrigger {\n getTrigger$(): Observable;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AccaBoostTokenProviderService {\n private readonly tokens = new ReplaySubject(1);\n private readonly manualRefresh$ = new Subject();\n\n readonly tokens$: Observable = this.tokens.asObservable();\n\n constructor(\n private userService: UserService,\n private accaBoostConfig: AccaBoostConfig,\n private loaderService: AccaBoostTokenLoaderService,\n @Optional() @Inject(OptionalNonRootToken(ACCA_BOOST_REFRESH_TRIGGER)) private autoRefreshTrigger: AccaBoostRefreshTrigger,\n ) {\n if (this.accaBoostConfig.isEnabled) {\n this.startGettingToken();\n } else {\n this.tokens.next([]);\n }\n }\n\n refresh(): void {\n this.manualRefresh$.next();\n }\n\n private startGettingToken(): void {\n const canShowTokens$ = this.userService.onAuthenticationChange$.pipe(\n filterSportsEmitLast(),\n map((event: UserEvent) => {\n return event instanceof UserLoginEvent || this.accaBoostConfig.allowUnAuthenticatedUsers;\n }),\n startWith(this.userService.isAuthenticated || this.accaBoostConfig.allowUnAuthenticatedUsers),\n );\n\n canShowTokens$\n .pipe(\n switchMap((canShowTokens) => {\n const loadOnRefresh$ = merge(this.manualRefresh$, this.autoRefreshTrigger?.getTrigger$() || EMPTY).pipe(\n switchMap(() => this.loadData()),\n );\n\n // when authenticated, load data and then subscribe to refreshing\n return canShowTokens ? concat(this.loadData(), loadOnRefresh$) : of([]);\n }),\n )\n .subscribe((data: AccaBoostToken[]) => {\n this.tokens.next(data);\n });\n }\n\n private loadData(): Observable {\n return this.loaderService.loadTokens().pipe(map((data) => data.sort(this.byPriority)));\n }\n\n private byPriority = (first: AccaBoostToken, second: AccaBoostToken): number => first.priority - second.priority;\n}\n","import { getCurrencySymbol } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { UserOddsFormatSettingsService, UserService } from '@frontend/sports/user/feature';\nimport { CrmPromotionReplaceParametersService } from 'packages/sports/web/app/src/crm-promotion/crm-promotion-replace-parameters.service';\nimport { BetAndGetTokenData, IRewardTokenData, TokenFilter } from 'packages/sports/web/app/src/tokens-base/token-base.models';\n\nimport { BetAndGetToken, FreeBetToken, IRewardToken, OddsBoostToken, RiskFreeToken, TokenOddsData } from '../reward-tokens.model';\nimport { RewardTokensFormattersService } from './reward-tokens-formatters.service';\nimport { isBetAndGetToken, isFreebetToken, isOddsBoostToken, isRiskFreeToken } from './reward-tokens.utils';\n\n@Injectable({ providedIn: 'root' })\nexport class RewardTokensFactory {\n currencySymbol: string;\n currencyCode: string;\n private readonly userOddsFormatSettingsService = inject(UserOddsFormatSettingsService);\n\n constructor(\n public sitecore: Sitecore,\n private replaceParametersService: CrmPromotionReplaceParametersService,\n private user: UserService,\n private tokenFormatterService: RewardTokensFormattersService,\n ) {}\n\n toModelList(tokensData: IRewardTokenData[]): IRewardToken[] {\n this.currencySymbol = getCurrencySymbol(this.user.currency, 'narrow');\n this.currencyCode = this.user.currency;\n const tokens = tokensData.map((t) => {\n let token: OddsBoostToken | RiskFreeToken | FreeBetToken | BetAndGetToken;\n\n if (isOddsBoostToken(t)) {\n token = this.mapBase(t) as OddsBoostToken;\n token.boostFactor = t.boostFactor;\n token.maximumStake = t.maximumStake;\n token.maxWinningsBoost = t.maxWinningsBoost;\n token.minimumStake = t.minimumStake;\n token.oddsBoostFormula = t.oddsBoostFormula;\n }\n if (isRiskFreeToken(t)) {\n token = this.mapBase(t) as RiskFreeToken;\n token.maximumPayout = t.maximumPayout;\n token.minimumStake = t.minimumStake;\n token.riskFreePercentage = t.riskFreePercentage;\n }\n if (isFreebetToken(t)) {\n token = this.mapBase(t) as FreeBetToken;\n token.amount = t.amount;\n }\n\n if (isBetAndGetToken(t)) {\n const betAndGetToken = t as BetAndGetTokenData;\n token = this.mapBase(t) as BetAndGetToken;\n token.payoutValue = betAndGetToken.payoutValue;\n token.rewardTriggerType = betAndGetToken.rewardTriggerType;\n token.percentagePayout = betAndGetToken.percentagePayout;\n token.maximumPayout = betAndGetToken.maximumPayout;\n token.minimumPayout = betAndGetToken.minimumPayout;\n token.betStatus = betAndGetToken.betStatus;\n token.minimumStake = betAndGetToken.minimumStake;\n token.buildABet = betAndGetToken.buildABet;\n token.subType = betAndGetToken.subType;\n token.isEarlyPayoutEnabled = betAndGetToken.isEarlyCashOut;\n }\n\n return token!;\n });\n\n return tokens;\n }\n\n // Update the value of SelectionLevelOdds and OverAllOdds based on user oddsFormat. We will not get this from CRM.\n private updateReplacebleParams(token: IRewardTokenData) {\n if (token.replaceableParameters) {\n const selectionOddsKey = token.replaceableParameters['#TOKEN_SELECTION_LEVEL_MIN_ODDS#'];\n const totalOddsKey = token.replaceableParameters['#TOKEN_MIN_OVERALL_ODDS#'];\n const userOddsFormat = this.userOddsFormatSettingsService.oddsFormat;\n const oddsFormat = userOddsFormat ? userOddsFormat : OddsDisplayFormat.EU;\n\n if (selectionOddsKey) {\n selectionOddsKey.value = this.getFormatedOdds(oddsFormat as OddsDisplayFormat, token.selectionLevelMinimumOdds);\n }\n\n if (totalOddsKey) {\n totalOddsKey.value = this.getFormatedOdds(oddsFormat as OddsDisplayFormat, token.minimumOdds);\n }\n }\n }\n\n private getFormatedOdds(oddsFormat: OddsDisplayFormat, tokenOdds: TokenOddsData | undefined): string {\n if (!tokenOdds) {\n return '';\n }\n\n switch (oddsFormat) {\n case OddsDisplayFormat.EU:\n return tokenOdds.european.toString();\n case OddsDisplayFormat.US:\n return tokenOdds.american.toString();\n case OddsDisplayFormat.UK:\n return tokenOdds.britishNumerator.toString() + '/' + tokenOdds.britishDenominator.toString();\n }\n }\n\n getTokenCustomDetails(token: IRewardTokenData): [string, string] {\n const title = token.customTitle\n ? this.replaceParametersService.replaceParameters(\n this.tokenFormatterService.replaceCurrency(token.customTitle, this.currencySymbol, this.currencyCode),\n token.replaceableParameters,\n true,\n true,\n true,\n )\n : '';\n const description = token.customDescription\n ? this.replaceParametersService.replaceParameters(\n this.tokenFormatterService.replaceCurrency(token.customDescription, this.currencySymbol, this.currencyCode),\n token.replaceableParameters,\n false,\n false,\n true,\n )\n : '';\n\n return [title, description];\n }\n\n private mapBase(t: IRewardTokenData): IRewardToken {\n const token = {};\n this.updateReplacebleParams(t);\n const [title, description] = this.getTokenCustomDetails(t);\n token.id = t.id;\n token.startDate = new Date(t.startDateUtc);\n token.expiryDate = new Date(t.expiryDateUtc);\n token.cmsItemId = t.cmsItemId;\n token.userTokenId = t.userTokenId;\n token.minimumLegs = t.minimumLegs;\n token.wageringMultiplier = t.wageringMultiplier;\n token.payoutType = t.payoutType;\n token.tokenType = t.tokenType;\n token.filter = this.mapFilter(t.filter);\n token.rewardTokenType = t.rewardTokenType;\n token.payoutExpiry = t.payoutExpiry;\n token.minOdds = t.minOdds;\n token.selectionLevelMinimumOdds = t.selectionLevelMinimumOdds;\n token.replaceableParameters = t.replaceableParameters;\n token.minimumOdds = t.minimumOdds;\n token.isBetBuilder = t.isBetBuilder;\n token.isSingleAndComboSelected = t.isSingleAndComboSelected;\n token.maximumOdds = t.maximumOdds;\n token.selectionLevelMaximumOdds = t.selectionLevelMaximumOdds;\n token.customMarketTypes = t.customMarketTypes;\n token.isIncrementalPayout = t.isIncrementalPayout;\n token.incrementalBetAmount = t.incrementalBetAmount;\n token.incrementalPayoutNoOfTimes = t.incrementalPayoutNoOfTimes;\n token.rewardTargetType = t.rewardTargetType;\n\n token.customTitle = title;\n token.customDescription = description;\n token.url = t.url;\n token.isVipExclusive = t.isVipExclusive;\n\n return token;\n }\n\n private mapFilter(filter: TokenFilter) {\n const newFilter: TokenFilter = { ...filter };\n\n newFilter.marketParameters = newFilter.marketParameters ?? [];\n newFilter.marketTemplates = newFilter.marketTemplates ?? [];\n newFilter.markets = newFilter.markets ?? [];\n newFilter.options = newFilter.options ?? [];\n\n return newFilter;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { AccaBoostTokenProviderService } from 'packages/sports/web/app/src/acca-boost-base/acca-boost-token-provider.service';\nimport { CrmOfferLoaderService } from 'packages/sports/web/app/src/crm-offer-data/crm-offer-loader.service';\nimport { IRewardTokenData } from 'packages/sports/web/app/src/tokens-base/token-base.models';\nimport { ReplaySubject, combineLatest, map } from 'rxjs';\n\nimport { IRewardToken } from '../reward-tokens.model';\nimport { RewardTokensFactory } from './reward-tokens.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class RewardTokensDataService {\n private readonly tokens$$ = new ReplaySubject(1);\n readonly tokens$ = this.tokens$$.asObservable();\n\n constructor(\n private crmOfferLoaderService: CrmOfferLoaderService,\n private rewardTokensFactory: RewardTokensFactory,\n private accaBoostTokenProvider: AccaBoostTokenProviderService,\n ) {}\n\n init(): void {\n const crmTokens$ = this.crmOfferLoaderService.tokens$.pipe(map(this.mapCrmTokens));\n const accaBoostTokens$ = this.accaBoostTokenProvider.tokens$;\n combineLatest([crmTokens$, accaBoostTokens$])\n .pipe(\n filterSportsEmitLast(),\n map(([crmTokens, accaBoostTokens]) => {\n return [...crmTokens, ...accaBoostTokens];\n }),\n )\n .subscribe((tokens) => this.tokens$$.next(tokens));\n }\n\n refreshCrmOffer(): void {\n this.crmOfferLoaderService.refresh();\n }\n\n refreshAccaOffer(): void {\n this.accaBoostTokenProvider.refresh();\n }\n\n private mapCrmTokens = (crmTokensData: IRewardTokenData[]): IRewardToken[] => {\n return this.rewardTokensFactory.toModelList(crmTokensData);\n };\n}\n","import { Injectable } from '@angular/core';\n\nexport abstract class MarketSubTypeLogoStrategy {\n abstract get shouldShowLogo(): boolean;\n}\n\n@Injectable()\nexport class MarketSubTypeLogoHideStrategy extends MarketSubTypeLogoStrategy {\n get shouldShowLogo(): boolean {\n return false;\n }\n}\n@Injectable()\nexport class MarketSubTypeLogoShowStrategy extends MarketSubTypeLogoStrategy {\n get shouldShowLogo(): boolean {\n return true;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ISavedState {}\n\nexport interface StateSaver {\n save(state: TState): TStateStorage;\n}\n\nexport interface StateLoader {\n load(state: TStateStorage | undefined): TState;\n}\n\nexport const _STATE_STORAGE_PERSIST_SERVICE = new InjectionToken('Internal state storage persist service - single instance');\n","import { Inject, InjectionToken, ModuleWithProviders, NgModule, Type } from '@angular/core';\n\nimport { StatePersistServiceRegistry } from './state-storage-persist-service.registry';\nimport { StateSaver, _STATE_STORAGE_PERSIST_SERVICE } from './state-storage.model';\n\n@NgModule({})\nexport class StateStorageFeatureModule {\n constructor(\n root: StatePersistServiceRegistry,\n @Inject(_STATE_STORAGE_PERSIST_SERVICE) statePersistServices: { feature: string; stateSaver: StateSaver }[],\n ) {\n for (const service of statePersistServices) {\n console.log('Register persist service for feature: ' + service.feature);\n root.register(service.feature, service.stateSaver);\n }\n }\n}\n\n@NgModule({})\nexport class StateStorageModule {\n static forFeature(\n feature: string,\n stateSaver: InjectionToken> | Type>,\n ): ModuleWithProviders {\n return {\n ngModule: StateStorageFeatureModule,\n providers: [\n {\n provide: _STATE_STORAGE_PERSIST_SERVICE,\n multi: true,\n useFactory: createStateSaver(feature),\n deps: [stateSaver],\n },\n ],\n };\n }\n}\n\nfunction createStateSaver(feature: string): (stateSaver: StateSaver) => { feature: string; stateSaver: StateSaver } {\n return (stateSaver: StateSaver) => {\n return {\n feature,\n stateSaver,\n };\n };\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport ModuleLoaderService from 'packages/sports/web/app/src/deferred/module-loader.service';\nimport { Observable, map } from 'rxjs';\n\nimport type { BetslipDigitalModule } from '../digital/betslip-digital.module';\n\n@Injectable()\nexport class BetslipDigitalModuleLoaderService {\n private readonly moduleLoader = inject(ModuleLoaderService);\n private readonly sportsUserSettings = inject(SportsUserSettings);\n\n loadBetslipModule(): Observable {\n return this.moduleLoader\n .loadModule(\n 'BetslipDigitalModule',\n () =>\n import(/* webpackChunkName: \"betslip-digital\" */ '../digital/betslip-digital.module').then(\n (module) => module.BetslipDigitalModule,\n ),\n this.sportsUserSettings,\n )\n .pipe(map((moduleRef) => moduleRef.instance));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { PicksView } from '@cds/betting-offer/domain-specific';\nimport { PicksRequest, Tv1PickData, Tv2PickData } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { NavigationService, UrlService } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { isEqual } from 'lodash-es';\nimport { OptionParams, OptionQuery, OptionRequest } from 'packages/sports/web/app/src/navigation-core/pick-uri.model';\nimport { PickUriService } from 'packages/sports/web/app/src/navigation-core/pick-uri.service';\nimport { distinctUntilChanged, filter, map, switchMap, tap } from 'rxjs';\n\nimport { IBetslipRootState } from '../base/store/state';\nimport { ExternalBetslipActions } from '../core/external-betslip-actions';\nimport { BetslipResultActions } from '../modules/result/actions';\n\nenum UriParam {\n Options = 'options',\n Stake = 'stake',\n Currency = 'currency',\n Type = 'type',\n Source = 'source',\n RefBet = 'refbet',\n Offersource = 'offerSource',\n}\n\n@Injectable()\nexport default class ExternalAffiliateEffects {\n constructor(\n private store: Store,\n private routerService: RouterEventsService,\n private pickUriService: PickUriService,\n private bettingService: BettingOfferApi,\n private userService: UserService,\n private navigationService: NavigationService,\n private urlService: UrlService,\n ) {\n this.listenToRouter();\n }\n\n private listenToRouter() {\n this.routerService.currentActivationEnd\n .pipe(\n filter(isDefined),\n map((route) => this.pickUriService.parse(route.snapshot.queryParams, this.userService.currency)),\n filter((request: OptionRequest) => request.query.length > 0),\n distinctUntilChanged(isEqual),\n switchMap((request: OptionRequest) =>\n this.bettingService.getPicksWithFallback(this.mapPicksRequest(request)).pipe(\n tap((picksView: PicksView | undefined) => {\n this.cleanUrl();\n\n if (!picksView?.fixturePage.fixtures.length) {\n this.store.dispatch(ExternalBetslipActions.shareBet());\n } else {\n this.store.dispatch(BetslipResultActions.close());\n this.store.dispatch(\n ExternalBetslipActions.requestAddAffiliatePicks({\n request,\n picksView,\n }),\n );\n }\n }),\n ),\n ),\n )\n .subscribe();\n }\n\n private cleanUrl(): void {\n const location = this.urlService.current();\n const params: (keyof OptionParams)[] = [\n UriParam.Options,\n UriParam.Stake,\n UriParam.Currency,\n UriParam.Type,\n UriParam.Source,\n UriParam.RefBet,\n UriParam.Offersource,\n ];\n\n for (const param of params) {\n location.search.delete(param);\n }\n\n this.navigationService.goTo(location, { replace: true });\n }\n\n private mapPicksRequest(request: OptionRequest): PicksRequest {\n const tv1Picks: Tv1PickData[] = [];\n const tv2Picks: Tv2PickData[] = [];\n\n const picksData = request.query.map((pick) => {\n if (pick.tv1Legs) {\n tv1Picks.push(...pick.tv1Legs);\n }\n\n if (pick.tv2Legs) {\n tv2Picks.push(...pick.tv2Legs);\n }\n\n if ((!pick.tv1Legs || pick.tv1Legs.length === 0) && (!pick.tv2Legs || pick.tv2Legs.length === 0)) {\n const offerSource = this.getOfferSource(pick, request.offerSource);\n const pickData = this.mapOptionQueryToPick(pick, offerSource);\n\n if (offerSource === OfferSource.V1) {\n tv1Picks.push(pickData as Tv1PickData);\n } else {\n tv2Picks.push(pickData as Tv2PickData);\n }\n }\n\n return {\n fixtureId: pick.fixture!, // contract on cds side should be updated\n gameId: pick.optionGroup,\n participantId: pick.option ? Math.abs(pick.option) : pick.option,\n optionMarketId: pick.optionGroup,\n resultId: pick.option,\n useLiveFallback: true,\n offerSource: this.getOfferSource(pick, request.offerSource),\n };\n });\n\n return {\n includeSourceFixturesForPrecreatedBuildABet: picksData.some((p) => p.offerSource.toLowerCase() === OfferSource.BetBuilder.toLowerCase()),\n tv1Picks,\n tv2Picks,\n };\n }\n\n private mapOptionQueryToPick(optionQuery: OptionQuery, offerSource: OfferSource): Tv1PickData | Tv2PickData {\n if (offerSource === OfferSource.V1) {\n const pickData: Tv1PickData = {\n fixtureId: optionQuery.fixture!,\n gameId: optionQuery.optionGroup,\n resultId: optionQuery.option,\n useLiveFallback: true,\n };\n\n return pickData;\n } else {\n const pickData: Tv2PickData = {\n fixtureId: optionQuery.fixture!,\n optionId: optionQuery.option,\n optionMarketId: optionQuery.optionGroup,\n participantId: optionQuery.option ? Math.abs(optionQuery.option) : optionQuery.option,\n isClassicBetBuilder: false,\n };\n\n if (offerSource === OfferSource.BetBuilder) {\n pickData.isClassicBetBuilder = true;\n }\n\n return pickData;\n }\n }\n\n private getOfferSource(pick: OptionQuery, offerSource?: string): OfferSource {\n if (offerSource?.toLowerCase() === OfferSource.BetBuilder.toLowerCase()) {\n return OfferSource.BetBuilder;\n }\n\n return pick.fixture?.includes(':') ? OfferSource.V2 : OfferSource.V1;\n }\n}\n","/**\n * This code follows the logic of the resize observer\n * with small adjustments\n */\nimport { Injectable, OnDestroy } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { filter, shareReplay, takeUntil } from 'rxjs/operators';\n\n/* eslint-disable unicorn/no-typeof-undefined, @typescript-eslint/no-non-null-assertion */\n\n/**\n * A shared IntersectionObserver to be used\n */\nclass SingleIntersectionObserver {\n /** Stream that emits when the shared observer is destroyed. */\n private _destroyed = new Subject();\n /** Stream of all events from the IntersectionObserver. */\n private _intersectionSubject = new Subject();\n /** IntersectionObserver used to observe element intersection events. */\n private _intersectionObserver?: IntersectionObserver;\n /** A map of elements to streams of their intersection events. */\n private _elementObservables = new Map>();\n\n constructor(\n /** The intersection options for the observer */\n _options: IntersectionObserverInit,\n ) {\n if (typeof IntersectionObserver !== 'undefined') {\n this._intersectionObserver = new IntersectionObserver((entries) => this._intersectionSubject.next(entries), _options);\n }\n }\n\n /**\n * Gets a stream of intersection events for the given element.\n * @param target The element to observe.\n * @return The stream of intersection events for the element.\n */\n observe(target: Element): Observable {\n if (!this._elementObservables.has(target)) {\n this._elementObservables.set(\n target,\n new Observable((observer) => {\n const subscription = this._intersectionSubject.subscribe(observer);\n this._intersectionObserver?.observe(target);\n return () => {\n this._intersectionObserver?.unobserve(target);\n subscription.unsubscribe();\n this._elementObservables.delete(target);\n };\n }).pipe(\n filter((entries) => entries.some((entry) => entry.target === target)),\n // Share a replay of the last event so that subsequent calls to observe the same element\n // receive initial intersection info like the first one. Also enable ref counting so the\n // element will be automatically unobserved when there are no more subscriptions.\n shareReplay({ bufferSize: 1, refCount: true }),\n takeUntil(this._destroyed),\n ),\n );\n }\n return this._elementObservables.get(target)!;\n }\n\n /** Destroys this instance. */\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._intersectionSubject.complete();\n this._elementObservables.clear();\n }\n}\n\n/**\n * Allows observing intersection events on multiple elements using a shared IntersectionObserver.\n * Sharing a IntersectionObserver instance is recommended for better performance.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedIntersectionObserver implements OnDestroy {\n /** Map of box type to shared intersection observer. */\n private _observers = new Map();\n\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n }\n\n /**\n * Gets a stream of intersection events for the given target element and box type.\n * @param target The element to observe for intersections.\n * @param options The init options of the observer\n * @return The stream of intersection events for the element.\n */\n observe(target: Element, options: IntersectionObserverInit): Observable {\n if (!this._observers.has(options)) {\n this._observers.set(options, new SingleIntersectionObserver(options));\n }\n return this._observers.get(options)!.observe(target);\n }\n}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport {\n ConnectedPosition,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollDispatcher,\n ScrollStrategy,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n InjectionToken,\n Injector,\n Input,\n NgZone,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SharedIntersectionObserver } from './tooltip.utils';\n\nexport const DS_TOOLTIP_POSITION_ARRAY = ['left', 'top', 'right', 'bottom'] as const;\nexport type DsTooltipPosition = (typeof DS_TOOLTIP_POSITION_ARRAY)[number];\nexport const DS_ARROW_POSITION_ARRAY = ['start', 'middle', 'end'] as const;\nexport type DsArrowPosition = (typeof DS_ARROW_POSITION_ARRAY)[number];\n\nexport interface OverlayRefWithData {\n ref: OverlayRef;\n data: {\n position: DsTooltipPosition;\n arrowPosition: DsArrowPosition;\n };\n}\n\nexport const OVERLAY_REF_WITH_DATA_TOKEN = new InjectionToken('OverlayRef with data');\n\n@Directive({\n selector: '[dsTooltipTriggerFor]',\n standalone: true,\n host: {\n '(click)': 'toggleTooltip($event)',\n },\n})\nexport class DsTooltipTrigger implements OnInit, OnDestroy, AfterViewInit {\n private overlay = inject(Overlay);\n private injector = inject(Injector);\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n private vcr = inject(ViewContainerRef);\n\n private readonly destroyRef = inject(DestroyRef);\n private sharedIntersectionObserver = inject(SharedIntersectionObserver);\n private sharedResizeObserver = inject(SharedResizeObserver);\n private _scrollDispatcher = inject(ScrollDispatcher);\n\n // internal signals\n private _isVisible = signal(false);\n private _isShown = signal(false);\n private _tooltipToggle = signal(false);\n\n readonly closeOutsideViewport = input(false, { transform: booleanAttribute });\n readonly autoOpen = input(false, { transform: booleanAttribute });\n readonly fullWidth = input(false, { transform: booleanAttribute });\n readonly position = input('top');\n readonly arrowPosition = input('start');\n\n /* We support full width only for top and bottom positioning\n * In case there is the requirement in future to show full width also for left and right,\n * then following question have to be answered:\n * - where to place tooltip on full width as it will go over the trigger\n * Then, one can remove this function and override left and right position in media query to follow logic of top or bottom\n * Then, one has to think, on how adjustArrowPositions know, that it is shown full width and where the arrow should be placed\n * */\n private _position = computed(() => {\n if (this.fullWidth() && this.position() !== 'top' && this.position() !== 'bottom') {\n console.warn('Invalid position for full width, defaulting to top');\n return 'top';\n } else {\n return this.position();\n }\n });\n\n readonly autoCloseTime = input(10_000);\n @Input('dsTooltipTriggerFor') content!: TemplateRef;\n readonly closeOnScroll = input(false, { transform: booleanAttribute });\n readonly hasBackdrop = input(false, { transform: booleanAttribute });\n readonly closeOnInteraction = input(false, { transform: booleanAttribute });\n readonly tooltipCustomClass = input('');\n\n private globalClickListener!: () => void;\n @Input()\n set tooltipToggle(value: boolean) {\n this._tooltipToggle.set(value);\n if (!this._overlayRef) {\n return;\n }\n if (value) {\n this.openTooltip();\n } else {\n this.closeTooltip();\n }\n }\n\n get tooltipToggle(): boolean {\n return this._tooltipToggle();\n }\n\n readonly tooltipToggleChange = output<{ isTooltipOpen: boolean; source: string }>();\n\n private autoCloseTimeout?: ReturnType;\n private backdropSubscription?: Subscription;\n private overlaySubscriptions = new Subscription();\n private attachmentsSubscription?: Subscription;\n private detachmentsSubscription?: Subscription;\n private resizeObserver!: ResizeObserver;\n private _lastObservedWidth = 0;\n _overlayRef?: OverlayRef;\n\n constructor() {\n /* This effect handles auto open true to open the first time tooltip is shown */\n effect(\n () => {\n const isVisible = this._isVisible();\n const isAutoOpen = this.autoOpen();\n const isShown = this._isShown();\n const tooltipToggle = this._tooltipToggle();\n\n const firstTimeAutoOpen = isAutoOpen && !isShown;\n\n if (isVisible && (tooltipToggle || firstTimeAutoOpen)) {\n // we also have to set the toggle to true if it is not opened but auto open is true\n if (!tooltipToggle) {\n this._tooltipToggle.set(true);\n }\n // Update signal before opening\n if (!isShown) {\n untracked(() => {\n this._isShown.set(true);\n });\n this.initializeAutoOpen(isAutoOpen);\n }\n }\n },\n { allowSignalWrites: true },\n );\n\n /* This effect closes the tooltip outside viewport if it is true */\n effect(\n () => {\n const isVisible = this._isVisible();\n const closeOutsideViewport = untracked(() => this.closeOutsideViewport());\n const isOpen = untracked(() => this._tooltipToggle());\n if (closeOutsideViewport && isOpen && !isVisible) {\n this.closeTooltip();\n this._tooltipToggle.set(false);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n ngOnInit(): void {\n this._overlayRef = this.createOverlay();\n\n this.sharedResizeObserver\n .observe(this._overlayRef.overlayElement, {})\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.ngZone.runOutsideAngular(() => {\n this.adjustArrowPosition();\n });\n });\n\n this.listenToOverlayState();\n\n /* Register observer to listen for viewport visibility*/\n this.sharedIntersectionObserver\n .observe(this.elementRef.nativeElement, { threshold: 1 })\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((changes) => {\n this._isVisible.set(changes[0].isIntersecting);\n });\n }\n\n private initializeAutoOpen(shouldAutoClose: boolean): void {\n this.ngZone.onStable.pipe(take(1)).subscribe(() => {\n if (!this._overlayRef?.hasAttached()) {\n this.openTooltip();\n setTimeout(() => this._overlayRef?.updatePosition(), 0);\n }\n });\n if (shouldAutoClose) {\n this.scheduleAutoClose(this.autoCloseTime() ?? 10_000);\n }\n }\n\n private adjustArrowPosition(): void {\n const overlayElement = this._overlayRef?.overlayElement;\n if (!this._overlayRef) {\n return;\n }\n\n if (overlayElement) {\n const arrowElement = overlayElement.querySelector('.ds-tooltip-arrow');\n if (!arrowElement) {\n return;\n }\n const tooltipContent = overlayElement.querySelector('ds-tooltip-content')?.getBoundingClientRect();\n if (!tooltipContent) {\n return;\n }\n\n const targetRect = (this.elementRef.nativeElement as HTMLElement).getBoundingClientRect();\n\n const arrowSize = arrowElement.getBoundingClientRect();\n if (arrowElement instanceof HTMLElement) {\n if (this._position() === 'top' || this._position() === 'bottom') {\n let leftOffset = targetRect.left + targetRect.width / 2 - tooltipContent.left - arrowSize.width / 2;\n // We restrict arrow to stay within the overlay element\n // A different option would be to hide arrow if it is outside. This has to be discussed with designers!\n leftOffset = Math.max(leftOffset, ARROW_OFFSET);\n leftOffset = Math.min(leftOffset, tooltipContent.width - CONTAINER_OFFSET - ARROW_OFFSET);\n\n arrowElement.style.left = `${leftOffset}px`;\n arrowElement.style.top = '';\n } else if (this._position() === 'left' || this._position() === 'right') {\n const topOffset = targetRect.top + targetRect.height / 2 - tooltipContent.top - arrowSize.height / 2;\n arrowElement.style.top = `${topOffset}px`;\n arrowElement.style.left = '';\n }\n }\n }\n }\n\n private listenToOverlayState(): void {\n if (!this._overlayRef) {\n return;\n }\n\n this.overlaySubscriptions.add(\n (this.attachmentsSubscription = this._overlayRef.attachments().subscribe(() => {\n this.tooltipToggleChange.emit({ isTooltipOpen: true, source: 'overlayAttachment' });\n })),\n );\n\n this.overlaySubscriptions.add(\n (this.detachmentsSubscription = this._overlayRef.detachments().subscribe(() => {\n this._tooltipToggle.set(false); // Update signal\n this.tooltipToggleChange.emit({ isTooltipOpen: false, source: 'overlayDetachment' });\n })),\n );\n }\n\n private createOverlay(): OverlayRef {\n const overlayConfig = this.getOverlayConfig();\n const panelClasses: string[] = [];\n if (this.fullWidth()) {\n panelClasses.push(`ds-tooltip-full-width`, `ds-tooltip-${this._position()}`);\n }\n // Add custom class if provided\n if (this.tooltipCustomClass) {\n panelClasses.push(this.tooltipCustomClass());\n }\n return this.overlay.create({ ...overlayConfig, panelClass: panelClasses });\n }\n\n private getOverlayConfig(): OverlayConfig & { backdropClass?: string } {\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(this.elementRef);\n\n let overlayPosition = getOverlayPosition(this._position(), this.arrowPosition());\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions([overlayPosition])\n .withFlexibleDimensions(false)\n .withViewportMargin(8)\n .withPush(true)\n .withScrollableContainers(scrollableAncestors);\n\n const scrollStrategy: ScrollStrategy = this.closeOnScroll()\n ? this.overlay.scrollStrategies.close()\n : this.overlay.scrollStrategies.reposition();\n\n return {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: this.hasBackdrop(),\n ...(this.hasBackdrop() && { backdropClass: 'cdk-overlay-transparent-backdrop' }),\n };\n }\n\n private scheduleAutoClose(delay: number): void {\n if (delay === 0) {\n return;\n } // Skip auto-close if 0\n this.ngZone.runOutsideAngular(() => {\n this.autoCloseTimeout = setTimeout(() => {\n this.ngZone.run(() => {\n if (this._overlayRef?.hasAttached()) {\n this.closeTooltip();\n }\n });\n }, delay);\n });\n }\n\n toggleTooltip(event: Event | null = null): void {\n event?.stopPropagation();\n\n if (this._overlayRef?.hasAttached()) {\n this._tooltipToggle.set(false);\n this.closeTooltip();\n } else {\n this._tooltipToggle.set(true);\n this.openTooltip();\n }\n }\n\n private openTooltip(): void {\n if (this._overlayRef?.hasAttached() || !this.content) {\n return;\n } // Prevent opening if already open or content is missing\n\n if (!this._overlayRef) {\n return;\n }\n\n const injector = Injector.create({\n providers: [\n {\n provide: OVERLAY_REF_WITH_DATA_TOKEN,\n useValue: {\n ref: this._overlayRef,\n data: { position: this._position(), arrowPosition: this.arrowPosition() },\n },\n },\n ],\n parent: this.injector,\n });\n\n const tooltipPortal = new TemplatePortal(this.content, this.vcr, null, injector);\n this._overlayRef?.attach(tooltipPortal);\n this.listenForCloseOnInteraction();\n\n if (this.hasBackdrop()) {\n this.listenForBackdropClick();\n }\n }\n\n private closeTooltip(): void {\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.detach();\n }\n this.removeCloseOnInteractionListener();\n this.backdropSubscription?.unsubscribe();\n }\n\n listenForCloseOnInteraction(): void {\n if (!this.closeOnInteraction) {\n return; // Skip if CloseOnInteraction is not enabled\n }\n\n this.globalClickListener = this.ngZone.runOutsideAngular(() => () => {\n document.addEventListener('click', this.handleCloseOnInteraction, true);\n document.addEventListener('touchmove', this.handleCloseOnInteraction, true);\n });\n\n this.globalClickListener();\n }\n\n removeCloseOnInteractionListener(): void {\n document.removeEventListener('click', this.handleCloseOnInteraction, true);\n document.removeEventListener('touchmove', this.handleCloseOnInteraction, true);\n }\n\n handleCloseOnInteraction = (event: MouseEvent | TouchEvent): void => {\n const clickTarget = event.target as HTMLElement;\n\n if (event.type === 'touchmove') {\n this.ngZone.run(() => this.closeTooltip());\n }\n\n if (\n this.elementRef.nativeElement instanceof HTMLElement &&\n !this.elementRef.nativeElement.contains(clickTarget) &&\n !this._overlayRef?.overlayElement?.contains(clickTarget)\n ) {\n this.ngZone.run(() => this.closeTooltip());\n }\n };\n\n listenForBackdropClick(): void {\n this.backdropSubscription = this._overlayRef?.backdropClick().subscribe(() => {\n this.closeTooltip();\n });\n }\n\n ngAfterViewInit(): void {\n const positionStrategy = this._overlayRef?.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n\n positionStrategy.positionChanges.subscribe(() => {\n this.adjustArrowPosition();\n });\n\n // Adjust position initially\n this.adjustArrowPosition();\n this.ngZone.runOutsideAngular(() => {\n this.resizeObserver = new ResizeObserver((entries) => this.onResize(entries));\n if (this._overlayRef?.overlayElement) {\n this.resizeObserver.observe(this._overlayRef.overlayElement);\n this._lastObservedWidth = this.elementRef.nativeElement.getBoundingClientRect().width;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.cleanupResources();\n this.removeCloseOnInteractionListener();\n if (this.resizeObserver) this.resizeObserver.disconnect();\n }\n\n private cleanupResources(): void {\n if (this.autoCloseTimeout) {\n this.ngZone.runOutsideAngular(() => clearTimeout(this.autoCloseTimeout));\n }\n this._overlayRef?.dispose();\n this.backdropSubscription?.unsubscribe();\n this.overlaySubscriptions.unsubscribe();\n this.attachmentsSubscription?.unsubscribe();\n this.detachmentsSubscription?.unsubscribe();\n }\n\n private onResize(entries: ResizeObserverEntry[]) {\n requestAnimationFrame(() => this.ngZone.run(() => this.handleResize(entries)));\n }\n\n private handleResize(entries: ResizeObserverEntry[]) {\n if (!this._tooltipToggle()) {\n return;\n }\n\n for (const entry of entries) {\n const newWidth = entry.contentRect.width;\n if (newWidth !== this._lastObservedWidth) {\n this._lastObservedWidth = newWidth;\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef?.updatePosition();\n this.adjustArrowPosition();\n }\n }\n }\n }\n}\n\n/*\n Offsets: one has to move the tooltip due to arrow which is out of bounding box by size of arrow\n This is for bottom and top, offsetY, and for left and right: offsetX\n\n The other offset is to move full container to fit arrow head to right position.\n\n Instead of offsets defined here one can also use a panel class, as the overlay computation\n is taking into account offsets and client bounding rects, both should be fine to be used.\n Has to be refactored if ARROW_SIZE should be dynamically controlled.\n*/\nconst ARROW_HEIGHT = 11;\nconst ARROW_WIDTH = 20;\nconst ARROW_OFFSET = 8;\nconst CONTAINER_OFFSET = ARROW_WIDTH / 2 + ARROW_OFFSET;\nconst TOOLTIP_POSITIONS: Record = {\n bottomstart: {\n offsetY: ARROW_HEIGHT,\n offsetX: -CONTAINER_OFFSET,\n originX: 'center',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n bottomend: {\n offsetY: ARROW_HEIGHT,\n offsetX: CONTAINER_OFFSET,\n originX: 'center',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n bottommiddle: { offsetY: ARROW_HEIGHT, originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n topstart: {\n offsetY: -ARROW_HEIGHT,\n offsetX: -CONTAINER_OFFSET,\n originX: 'center',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n topend: {\n offsetY: -ARROW_HEIGHT,\n offsetX: CONTAINER_OFFSET,\n originX: 'center',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n topmiddle: { offsetY: -ARROW_HEIGHT, originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },\n leftstart: {\n offsetX: -ARROW_HEIGHT,\n offsetY: -CONTAINER_OFFSET,\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'top',\n },\n leftend: {\n offsetX: -ARROW_HEIGHT,\n offsetY: CONTAINER_OFFSET,\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n leftmiddle: { offsetX: -ARROW_HEIGHT, originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },\n rightstart: {\n offsetX: ARROW_HEIGHT,\n offsetY: -CONTAINER_OFFSET,\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n },\n rightend: {\n offsetX: ARROW_HEIGHT,\n offsetY: CONTAINER_OFFSET,\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n rightmiddle: { offsetX: ARROW_HEIGHT, originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },\n};\n\nfunction getOverlayPosition(position: DsTooltipPosition, arrowPosition: DsArrowPosition): ConnectedPosition {\n const key = `${position}${arrowPosition}`; // Cast to valid key type\n return TOOLTIP_POSITIONS[key] || TOOLTIP_POSITIONS['topmiddle']; // Default fallback\n}\n","
\n \n \n \n \n \n @if (!customTooltip()) {\n
\n
\n
\n \n \n
\n \n \n
\n
\n \n
\n } @else {\n \n }\n\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, booleanAttribute, computed, inject, input, output } from '@angular/core';\n\nimport { DsTooltipTrigger, OVERLAY_REF_WITH_DATA_TOKEN } from './tooltip.directives';\n\nexport const DS_TOOLTIP_VARIANT_ARRAY = ['neutral', 'utility'] as const;\nexport type DsTooltipVariant = (typeof DS_TOOLTIP_VARIANT_ARRAY)[number];\n\n@Component({\n selector: 'ds-tooltip-content',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.customTooltip]': 'customTooltip()',\n },\n})\nexport class DsTooltipContent {\n inverse = input(false, { transform: booleanAttribute });\n private tooltipTrigger = inject(DsTooltipTrigger);\n\n protected overlay = inject(OVERLAY_REF_WITH_DATA_TOKEN);\n\n variant = input('neutral');\n fullWidth = input(false, { transform: booleanAttribute });\n fullWidthMode = input<'fullwidth' | 'fullwidthMargin'>('fullwidthMargin');\n customTooltip = input(false, { transform: booleanAttribute });\n\n protected containerClasses = `ds-tooltip-container`;\n\n protected outerContainerClasses = computed(() => {\n const positionClass = `ds-tooltip-${this.overlay.data.position}`;\n const arrowClass = `ds-tooltip-arrow-${this.overlay.data.arrowPosition}`;\n const fullWidthClass = this.fullWidth() ? 'ds-tooltip-full-width' : '';\n const inverse = this.inverse() ? 'ds-tooltip-inverse' : '';\n const fullWidthModeClass = this.fullWidthMode() === 'fullwidthMargin' ? 'ds-tooltip-fullwidth-margin' : '';\n const adjustedArrowClass =\n this.overlay.data.position === 'left' || this.overlay.data.position === 'right' ? `ds-tooltip-arrow-middle` : arrowClass; // Adjust arrow for side positions\n\n return `ds-tooltip-outer-container ds-tooltip-${this.variant()} ${positionClass} ${adjustedArrowClass} ${fullWidthClass} ${fullWidthModeClass} ${inverse}`;\n });\n\n readonly closed = output<{ type: string; source: string }>();\n @Input() ariaLabel = 'close icon';\n\n public closeTooltip(event: Event): void {\n if (this.overlay) {\n event.stopPropagation();\n this.closed.emit({ type: event.type, source: 'close' });\n this.tooltipTrigger.tooltipToggleChange.emit({ isTooltipOpen: false, source: 'close' });\n this.overlay.ref.detach();\n }\n }\n\n // Handle keydown events for accessibility\n public handleKeydown(event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.closeTooltip(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DsTooltipOnFocus } from './tooltip-events.directives';\nimport { DS_TOOLTIP_VARIANT_ARRAY, DsTooltipContent, DsTooltipVariant } from './tooltip.component';\nimport { DS_ARROW_POSITION_ARRAY, DS_TOOLTIP_POSITION_ARRAY, DsTooltipTrigger } from './tooltip.directives';\n\nexport {\n DS_ARROW_POSITION_ARRAY,\n DS_TOOLTIP_POSITION_ARRAY,\n DsTooltipContent,\n DsTooltipOnFocus,\n DsTooltipTrigger,\n DS_TOOLTIP_VARIANT_ARRAY,\n DsTooltipVariant,\n};\n\n@NgModule({\n imports: [DsTooltipContent, DsTooltipTrigger, DsTooltipOnFocus],\n exports: [DsTooltipContent, DsTooltipTrigger, DsTooltipOnFocus],\n})\nexport class DsTooltipModule {}\n","import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\n@Injectable()\nexport class OddsChangesConfirmationTrackingService {\n constructor(private trackingService: TrackingService) {}\n trackPopupShown(): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: trackingConstants.LOAD,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: TrackingValues.OddsChangesPopup,\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n };\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, trackingData);\n }\n\n trackTooltipClick(tooltipShown: boolean): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: tooltipShown ? TrackingValues.Click : trackingConstants.CLOSE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: TrackingValues.InfoIcon,\n [trackingConstants.COMPONENT_POSITION_EVENT]: TrackingValues.OddsChangesPopup,\n };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackSaveButtonClick(selectedValue: string | undefined): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingValues.Click,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: TrackingValues.Save,\n [trackingConstants.COMPONENT_POSITION_EVENT]: TrackingValues[selectedValue as keyof typeof TrackingValues],\n };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, trackingData);\n }\n\n trackSavePreferenceStatus(selectedValue: string | undefined, message: string, status: string): void {\n const trackingData: TrackData = {\n ...this.getBaseTrackingData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: status,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: message,\n [trackingConstants.COMPONENT_POSITION_EVENT]: TrackingValues[selectedValue as keyof typeof TrackingValues],\n };\n\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, trackingData);\n }\n\n getBaseTrackingData(): TrackData {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: TrackingValues.BetSlip,\n [trackingConstants.COMPONENT_LABEL_EVENT]: TrackingValues.OddsChanges,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: TrackingValues.OddsChangesPopup,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n }\n}\n\nexport enum TrackingValues {\n BetSlip = 'betslip',\n OddsChanges = 'odds changes',\n OddsChangesPopup = 'odds changes popup',\n Click = 'click',\n Save = 'Save',\n InfoIcon = 'info icon',\n Confirm = 'confirm',\n Success = 'success',\n Error = 'error',\n Any = 'accept any odds',\n Higher = 'accept only higher odds',\n No = \"don't accept odds changes\",\n}\n","@if (oddsPreferenceConfig$ | async; as oddsPreferenceConfig) {\n
\n
\n
{{ oddsPreferenceConfig.oddsPreferencePopupTitle }}
\n\n \n \n
\n
\n\n
\n
{{ oddsPreferenceConfig.description }}
\n
\n
\n \n @for (option of oddsOptions; track option) {\n \n \n
\n
{{ option.text }}
\n @if (option.subtext) {\n
{{ option.subtext }}
\n }\n
\n
\n\n \n \n \n \n \n }\n
\n
\n
\n\n \n {{ oddsPreferenceConfig.saveButton }}\n \n\n
{{ oddsPreferenceConfig.helperText }}
\n
\n \n\n \n \n \n
{{ oddsPreferenceConfig.tooltipText }}
\n
\n
\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { SitecoreOddsPreferenceConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\nimport { OddsAcceptance } from '@frontend/sports/types/betslip/request';\nimport { IUserBettingSettings, SyncUserSettingsService, UserSettingsService } from '@frontend/sports/user/feature';\nimport { DsButton } from '@frontend/ui/button';\nimport { DsListItem } from '@frontend/ui/list-item';\nimport { DsRadioModule } from '@frontend/ui/radio-button';\nimport { DsTooltipModule } from '@frontend/ui/tooltip';\nimport { ToastrQueueService, ToastrSchedule } from '@frontend/vanilla/core';\nimport { PlayerAttributesService } from '@frontend/vanilla/features/player-attributes';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { Observable, map, tap } from 'rxjs';\n\nimport { OddChangeConfirmationService } from './odd-changes-confirmation.service';\nimport { OddsChangesConfirmationTrackingService } from './odds-changes-confirmation-tracking.service';\n\ninterface OddsOption {\n id: string;\n text: string;\n subtext?: string;\n}\n\ninterface OddsPreference {\n acceptAnyOddsLabel: string;\n acceptAnyOddsSubtext: string;\n acceptOnlyHigherOddsLabel: string;\n acceptOnlyHigherOddsSubtext: string;\n description: string;\n dontAcceptOddChangesLabel: string;\n helperText: string;\n oddsPreferencePopupTitle: string;\n saveButton: string;\n tooltipText: string;\n oddChangePreferenceSuccess: string;\n oddChangePreferenceError: string;\n}\n\n@Component({\n selector: 'bs-odd-changes-confirmation',\n templateUrl: './odd-changes-confirmation.component.html',\n styleUrls: ['./odd-changes-confirmation.component.scss'],\n imports: [DsButton, DsTooltipModule, DsRadioModule, AsyncPipe, IconCustomComponent, DsListItem],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [OddsChangesConfirmationTrackingService],\n})\nexport class OddChangesConfirmationComponent implements OnInit {\n oddSelection: string | undefined;\n oddsOptions: OddsOption[] = [];\n\n settings: IUserBettingSettings;\n oddsPreferenceConfig$: Observable;\n oddsPreferenceString: OddsPreference;\n\n constructor(\n private bettingSettingsService: SyncUserSettingsService,\n private userSettings: UserSettingsService,\n private activeModal: ActiveModal,\n public oddsPreferenceConfig: SitecoreOddsPreferenceConfig,\n public oddsChangeTrackingService: OddsChangesConfirmationTrackingService,\n private toaster: ToastrQueueService,\n private oddChangeConfirmationService: OddChangeConfirmationService,\n private playerAttributesService: PlayerAttributesService,\n ) {\n this.oddsPreferenceConfig$ = this.oddsPreferenceConfig.whenReady.pipe(\n map(() => this.oddsPreferenceConfig),\n tap((config: SitecoreOddsPreferenceConfig) => {\n this.oddsPreferenceString = config;\n this.oddsOptions = [\n { id: OddsAcceptance.Any, text: config.acceptAnyOddsLabel, subtext: config.acceptAnyOddsSubtext },\n { id: OddsAcceptance.Higher, text: config.acceptOnlyHigherOddsLabel, subtext: config.acceptOnlyHigherOddsSubtext },\n { id: OddsAcceptance.No, text: config.dontAcceptOddChangesLabel, subtext: '' },\n ];\n }),\n );\n }\n\n ngOnInit() {\n this.settings = this.bettingSettingsService.bettingSettings;\n this.oddSelection = this.settings.oddsAcceptanceMode;\n this.oddsChangeTrackingService.trackPopupShown();\n }\n\n oddSelectionChange(oddsPreferenceValue: string) {\n this.oddSelection = oddsPreferenceValue;\n }\n\n saveOddPreference() {\n this.oddsChangeTrackingService.trackSaveButtonClick(this.oddSelection);\n this.userSettings\n .set({ oddsAcceptanceMode: this.oddSelection })\n .then(() => {\n this.toaster.add('OddChangePreferenceSuccess', { schedule: ToastrSchedule.Immediate });\n this.oddsChangeTrackingService.trackSavePreferenceStatus(\n this.oddSelection,\n this.oddsPreferenceString.oddChangePreferenceSuccess,\n 'success',\n );\n this.saveAcknowledgement();\n })\n .catch(() => {\n this.onSaveOddPreferenceFailure();\n });\n this.closePopup();\n }\n\n onSaveOddPreferenceFailure() {\n this.userSettings.set({ oddsAcceptanceMode: OddsAcceptance.No });\n\n this.toaster.add('OddChangePreferenceError', { schedule: ToastrSchedule.Immediate });\n\n this.oddsChangeTrackingService.trackSavePreferenceStatus(this.oddSelection, this.oddsPreferenceString.oddChangePreferenceError, 'error');\n }\n\n private closePopup(): void {\n this.activeModal.close();\n }\n\n closeTooltip() {\n this.oddsChangeTrackingService.trackTooltipClick(false);\n }\n\n openTooltip() {\n this.oddsChangeTrackingService.trackTooltipClick(true);\n }\n\n saveAcknowledgement() {\n this.oddChangeConfirmationService.updatePlayerPreference({ acknowledgement: { oddsChangePreference: true } }).subscribe({\n next: () => {\n this.playerAttributesService.refresh(false);\n },\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { OddsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ScrollFreezeServiceTypes } from '@frontend/sports/common/core/feature/scroll-freeze';\nimport { DialogSettings, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { RegistrationInfoService, UserService } from '@frontend/vanilla/core';\nimport { PlayerAttributesService } from '@frontend/vanilla/features/player-attributes';\nimport { PlayerAttributes } from 'packages/vanilla/lib/features/player-attributes/src/player-attributes.models';\nimport { map, of, take } from 'rxjs';\n\nimport { PlayerPreference } from './model/odd-changes-confirmation.model';\nimport { OddChangesConfirmationComponent } from './odd-changes-confirmation.component';\n\n@Injectable({ providedIn: 'root' })\nexport class OddChangeConfirmationService {\n private _modalRef: ModalRef;\n\n constructor(\n private apiService: ApiService,\n private modalDialogService: ModalDialogService,\n private userService: UserService,\n public oddsConfig: OddsConfig,\n private playerAttributesService: PlayerAttributesService,\n private registrationInfoService: RegistrationInfoService,\n ) {}\n\n openOddChangesConfirmationPopup() {\n this._modalRef = this.modalDialogService.openDialog(OddChangesConfirmationComponent, {\n settings: this.getModalSettings(),\n });\n }\n\n get modelRef(): ModalRef {\n return this._modalRef;\n }\n\n private getModalSettings(): DialogSettings {\n return {\n cssClass: 'odds-change-preference',\n isModalDialog: true,\n fit: true,\n hideCloseButton: true,\n scrollFreezeType: ScrollFreezeServiceTypes.All,\n };\n }\n\n updatePlayerPreference(playerPreference: PlayerPreference) {\n return this.apiService.post('playerpreference/updateplayerpreference', playerPreference, {\n cache: false,\n retryCount: 0,\n showSpinner: false,\n resolveWithFullResponse: true,\n });\n }\n\n isEligibleForOddsChangePopup() {\n if (\n !this.oddsConfig.displayOddsChangePreferencePopup ||\n !this.userService.isAuthenticated ||\n !this.oddsConfig.oddsChangePopupEligibilityDate\n ) {\n return of(false);\n }\n\n return this.registrationInfoService.registrationInformation.pipe(\n map((registrationInfo) => {\n if (registrationInfo?.date) {\n const eligibilityDate = new Date(this.oddsConfig.oddsChangePopupEligibilityDate!);\n const registrationDate = new Date(registrationInfo.date);\n return registrationDate.getTime() > eligibilityDate.getTime();\n }\n\n return false;\n }),\n );\n }\n\n checkAndOpenOddsChangePopup(): void {\n this.playerAttributesService.playerAttributes.pipe(take(1)).subscribe((playerAttributes: PlayerAttributes | null) => {\n if (playerAttributes) {\n const isAcknowledged = playerAttributes['acknowledgement']?.['oddsChangePreference']?.value;\n if (isAcknowledged === 'false' || !isAcknowledged) {\n this.openOddChangesConfirmationPopup();\n }\n }\n });\n }\n}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { createAction, props } from '@ngrx/store';\nimport { NumpadAction } from 'packages/sports/web/app/src/numpad/model';\n\nimport { PickId } from '../../core/picks/pick-id';\nimport { SlipId } from '../bet-generation/models';\nimport { FinishPlaceBetPayload, QueryPlaceStatusPayload } from '../betplacement/actions';\nimport { BetPlacementError } from '../validation/errors/bet-placement-error';\nimport { BetslipError } from '../validation/errors/betslip-error';\nimport { BetslipTypePickErrors } from '../validation/state';\nimport { selectTrackingDetails } from './quick-bet.selectors';\nimport { IQuickBetPlaceResultState, IQuickBetStakeState, QuickBetActionButtonState } from './quick-bet.state';\n\nexport interface IShowPickChangedWarningPayload {\n pickLocked: boolean;\n oddsChanged: boolean;\n isAcceptAndPlaceBetEnabled: boolean;\n}\n\nexport interface IPlaceBetPayload {\n requestId: string;\n}\n\nexport interface IClickPayload {\n requestId: string;\n state: QuickBetActionButtonState;\n}\n\nexport interface IHasClosedPickPayload {\n hasClosedPick: boolean;\n}\n\nexport interface IHasLockedPickPayload {\n hasLockedPick: boolean;\n}\n\nexport interface ISportcastOption {\n name: string;\n longId: string;\n}\n\nexport class QuickBetActions {\n static readonly ACTION_SCHEMA = '@quick-bet';\n\n private static readonly ADD_PICK = `${QuickBetActions.ACTION_SCHEMA}/ADD_PICK`;\n private static readonly REMOVE_PICK_BUTTON_CLICK = `${QuickBetActions.ACTION_SCHEMA}/REMOVE_PICK_BUTTON_CLICK`;\n private static readonly REMOVE_PICK = `${QuickBetActions.ACTION_SCHEMA}/REMOVE_PICK`;\n private static readonly REQUEST_REMOVE_MULTIPLE_PICKS = `${QuickBetActions.ACTION_SCHEMA}/REQUEST_REMOVE_MULTIPLE_PICKS`;\n private static readonly REMOVE_MULTIPLE_PICKS = `${QuickBetActions.ACTION_SCHEMA}/REMOVE_MULTIPLE_PICKS`;\n private static readonly INIT = `${QuickBetActions.ACTION_SCHEMA}/INIT`;\n private static readonly OPEN_QUICK_BET = `${QuickBetActions.ACTION_SCHEMA}/OPEN_QUICK_BET`;\n private static readonly CLOSE_QUICK_BET = `${QuickBetActions.ACTION_SCHEMA}/CLOSE_QUICK_BET`;\n private static readonly SHOW_QUICK_BET = `${QuickBetActions.ACTION_SCHEMA}/SHOW_QUICK_BET`;\n private static readonly HIDE_QUICK_BET = `${QuickBetActions.ACTION_SCHEMA}/HIDE_QUICK_BET`;\n private static readonly OPEN_CONFIRMATION = `${QuickBetActions.ACTION_SCHEMA}/OPEN_CONFIRMATION`;\n private static readonly CLOSE_CONFIRMATION = `${QuickBetActions.ACTION_SCHEMA}/CLOSE_CONFIRMATION`;\n private static readonly UPDATE_PLACE_BET_RESULT = `${QuickBetActions.ACTION_SCHEMA}/UPDATE_PLACE_BET_RESULT`;\n private static readonly CLOSE_QUICK_BET_UI = `${QuickBetActions.ACTION_SCHEMA}/CLOSE_QUICK_BET_UI`;\n private static readonly CLEAN_QUICK_BET_AFTER_CLOSE_UI = `${QuickBetActions.ACTION_SCHEMA}/CLEAN_QUICK_BET_AFTER_CLOSE_UI`;\n private static readonly CLOSE_QUICK_BET_UI_OVERLAY = `${QuickBetActions.ACTION_SCHEMA}/CLOSE_QUICK_BET_UI_OVERLAY`;\n private static readonly CHANGE_STAKE = `${QuickBetActions.ACTION_SCHEMA}/CHANGE_STAKE`;\n private static readonly UPDATE_STAKE = `${QuickBetActions.ACTION_SCHEMA}/UPDATE_STAKE`;\n private static readonly SET_STAKE_STATE = `${QuickBetActions.ACTION_SCHEMA}/SET_STAKE_STATE`;\n private static readonly NUMPAD_ACTION = `${QuickBetActions.ACTION_SCHEMA}/NUMPAD_ACTION`;\n private static readonly RESET_RESULT_STATE = '@betslip/quick-bet/RESET_RESULT_STATE';\n private static readonly RESET_UI_STATE = '@betslip/quick-bet/RESET_UI_STATE';\n private static readonly SET_ACTION_BUTTON = `${QuickBetActions.ACTION_SCHEMA}/SET_ACTION_BUTTON`;\n private static readonly SET_HAS_CLOSED_PICK = `${QuickBetActions.ACTION_SCHEMA}/SET_HAS_CLOSED_PICK`;\n private static readonly SET_HAS_LOCKED_PICK = `${QuickBetActions.ACTION_SCHEMA}/SET_HAS_LOCKED_PICK`;\n private static readonly PLACE_BET = `${QuickBetActions.ACTION_SCHEMA}/PLACE_BET`;\n private static readonly REQUEST_PLACE_BET = `${QuickBetActions.ACTION_SCHEMA}/REQUEST_PLACE_BET`;\n private static readonly ACCEPT_ODDS_CHANGES = `${QuickBetActions.ACTION_SCHEMA}/ACCEPT_ODDS_CHANGES`;\n private static readonly ACCEPT_MARKET_CLOSED_CHANGES = `${QuickBetActions.ACTION_SCHEMA}/ACCEPT_MARKET_CLOSED_CHANGES`;\n private static readonly SHOW_TECHNICAL_ERROR_DIALOG = `${QuickBetActions.ACTION_SCHEMA}/SHOW_TECHNICAL_ERROR_DIALOG`;\n private static readonly SHOW_PLACE_BET_ERROR_DIALOG = `${QuickBetActions.ACTION_SCHEMA}/SHOW_PLACE_BET_ERROR_DIALOG`;\n private static readonly SHOW_PLACE_BET_WARNING = `${QuickBetActions.ACTION_SCHEMA}/SHOW_PLACE_BET_WARNING`;\n private static readonly SHOW_PICK_CHANGED_WARNING = `${QuickBetActions.ACTION_SCHEMA}/SHOW_PICK_CHANGED_WARNING`;\n private static readonly ACTION_BUTTON_CLICK = `${QuickBetActions.ACTION_SCHEMA}/ACTION_BUTTON_CLICK`;\n private static readonly KEEP_OPEN = `${QuickBetActions.ACTION_SCHEMA}/KEEP_OPEN`;\n private static readonly DEPOSIT = `${QuickBetActions.ACTION_SCHEMA}/DEPOSIT`;\n private static readonly MAKE_DEPOSIT = `${QuickBetActions.ACTION_SCHEMA}/MAKE_DEPOSIT`;\n private static readonly DEPOSIT_AND_PLACE = `${QuickBetActions.ACTION_SCHEMA}/DEPOSIT_AND_PLACE`;\n private static readonly VIEW_BONUS = `${QuickBetActions.ACTION_SCHEMA}/VIEW_BONUS`;\n private static readonly LOGIN = `${QuickBetActions.ACTION_SCHEMA}/LOGIN`;\n private static readonly SHOW_HELP = `${QuickBetActions.ACTION_SCHEMA}/SHOW_HELP`;\n private static readonly HIDE_HELP = `${QuickBetActions.ACTION_SCHEMA}/HIDE_HELP`;\n private static readonly HELP_CLOSE_CLICK = `${QuickBetActions.ACTION_SCHEMA}/HELP_CLOSE_CLICK`;\n private static readonly SHOW_WALLET_SELECTOR = `${QuickBetActions.ACTION_SCHEMA}/SHOW_WALLET_SELECTOR`;\n private static readonly CLEAR_WARNINGS = `${QuickBetActions.ACTION_SCHEMA}/CLEAR_WARNINGS`;\n private static readonly FINISH_PLACE_BET = `${QuickBetActions.ACTION_SCHEMA}/FINISH_PLACE_BET`;\n private static readonly TRACK_BET_PLACEMENT_RESULT = `${QuickBetActions.ACTION_SCHEMA}/TRACK_BET_PLACEMENT_RESULT`;\n private static readonly INIT_BET_PLACEMENT = `${QuickBetActions.ACTION_SCHEMA}/INIT_BET_PLACEMENT`;\n private static readonly FINALIZE_BET_PLACEMENT = `${QuickBetActions.ACTION_SCHEMA}/FINALIZE_BET_PLACEMENT`;\n private static readonly PLACE_BET_RESPONSE_ERRORS = `${QuickBetActions.ACTION_SCHEMA}/PLACE_BET_RESPONSE_ERRORS`;\n private static readonly SET_DISPLAY_HELPER_TO_DEFAULT = `${QuickBetActions.ACTION_SCHEMA}/SET_DISPLAY_HELPER_TO_DEFAULT`;\n private static readonly REPLACE_PICK = `${QuickBetActions.ACTION_SCHEMA}/REPLACE_PICK`;\n private static readonly QUERY_PLACE_STATUS = `${QuickBetActions.ACTION_SCHEMA}/QUERY_PLACE_STATUS`;\n private static readonly SET_HIDDEN_BY_ERROR = `${QuickBetActions.ACTION_SCHEMA}/SET_HIDDEN_BY_ERROR`;\n private static readonly GO_TO_MY_BETS = `${QuickBetActions.ACTION_SCHEMA}/GO_TO_MY_BETS`;\n private static readonly CLOSE_RESULT_SCREEN = `${QuickBetActions.ACTION_SCHEMA}/CLOSE_RESULT_SCREEN`;\n private static readonly OPEN_BETSLIP = `${QuickBetActions.ACTION_SCHEMA}/OPEN_BETSLIP`;\n private static readonly RESET_ADDED_TO_BETSLIP = `${QuickBetActions.ACTION_SCHEMA}/RESET_ADDED_TO_BETSLIP`;\n private static readonly RESET_TO_PLACE_STATE = `${QuickBetActions.ACTION_SCHEMA}/RESET_TO_PLACE_STATE`;\n\n /** Handle picks */\n\n static addPick = createAction(QuickBetActions.ADD_PICK, props<{ pickId: PickId }>());\n static removePick = createAction(QuickBetActions.REMOVE_PICK, props<{ cleanBetslip: boolean; pickId: PickId }>());\n static requestRemoveMultiplePicks = createAction(QuickBetActions.REQUEST_REMOVE_MULTIPLE_PICKS, props<{ cleanBetslip: boolean }>());\n static removeMultiplePicks = createAction(QuickBetActions.REMOVE_MULTIPLE_PICKS, props<{ pickIds: PickId[] }>());\n static replacePick = createAction(QuickBetActions.REPLACE_PICK, props<{ oldPickId: PickId; newPickId: PickId }>());\n static removePickButtonClick = createAction(\n QuickBetActions.REMOVE_PICK_BUTTON_CLICK,\n props<{ trackingDetails: ReturnType }>(),\n );\n\n /** Action buttons */\n\n static actionButtonClick = createAction(QuickBetActions.ACTION_BUTTON_CLICK, pprops());\n static setActionButton = createAction(QuickBetActions.SET_ACTION_BUTTON, pprops());\n static makeDeposit = createAction(QuickBetActions.MAKE_DEPOSIT);\n static deposit = createAction(QuickBetActions.DEPOSIT);\n static depositAndBet = createAction(QuickBetActions.DEPOSIT_AND_PLACE, props<{ requestId: string }>());\n static viewBonus = createAction(QuickBetActions.VIEW_BONUS);\n static login = createAction(QuickBetActions.LOGIN);\n static acceptOddsChanges = createAction(QuickBetActions.ACCEPT_ODDS_CHANGES);\n static acceptMarketClosedChanges = createAction(QuickBetActions.ACCEPT_MARKET_CLOSED_CHANGES);\n static goToMyBets = createAction(QuickBetActions.GO_TO_MY_BETS, props<{ inPopup: boolean }>());\n\n /** UI state */\n\n static resetUiState = createAction(QuickBetActions.RESET_UI_STATE);\n static closeQuickbetUi = createAction(QuickBetActions.CLOSE_QUICK_BET_UI);\n static cleanQuickBetAfterCloseUI = createAction(QuickBetActions.CLEAN_QUICK_BET_AFTER_CLOSE_UI);\n static closeQuickBetUiOverlay = createAction(QuickBetActions.CLOSE_QUICK_BET_UI_OVERLAY, props<{ eventName: string | undefined }>());\n static closeQuickBet = createAction(QuickBetActions.CLOSE_QUICK_BET, props<{ cleanErrors?: boolean }>());\n static setDisplayHelperToDefault = createAction(QuickBetActions.SET_DISPLAY_HELPER_TO_DEFAULT);\n static init = createAction(QuickBetActions.INIT);\n static openQuickBet = createAction(QuickBetActions.OPEN_QUICK_BET);\n static showQuickBet = createAction(QuickBetActions.SHOW_QUICK_BET);\n static hideQuickBet = createAction(QuickBetActions.HIDE_QUICK_BET);\n static keepOpen = createAction(QuickBetActions.KEEP_OPEN, props<{ open: boolean }>());\n static showHelp = createAction(QuickBetActions.SHOW_HELP);\n static hideHelp = createAction(QuickBetActions.HIDE_HELP);\n static helpCloseClick = createAction(QuickBetActions.HELP_CLOSE_CLICK);\n static setHiddenByError = createAction(QuickBetActions.SET_HIDDEN_BY_ERROR, props<{ isHidden: boolean }>());\n static closeResultScreen = createAction(QuickBetActions.CLOSE_RESULT_SCREEN);\n\n /** Bet placement */\n\n static openConfirmation = createAction(QuickBetActions.OPEN_CONFIRMATION);\n static resetResultState = createAction(QuickBetActions.RESET_RESULT_STATE);\n static updatePlaceBetResult = createAction(QuickBetActions.UPDATE_PLACE_BET_RESULT, pprops());\n static closeConfirmation = createAction(QuickBetActions.CLOSE_CONFIRMATION);\n static placeBet = createAction(QuickBetActions.PLACE_BET, pprops());\n static requestPlaceBet = createAction(QuickBetActions.REQUEST_PLACE_BET, pprops());\n static showPlaceBetErrorDialog = createAction(QuickBetActions.SHOW_PLACE_BET_ERROR_DIALOG);\n static showPlaceBetWarning = createAction(QuickBetActions.SHOW_PLACE_BET_WARNING);\n static finishPlaceBet = createAction(QuickBetActions.FINISH_PLACE_BET, props());\n static trackBetPlacementResult = createAction(QuickBetActions.TRACK_BET_PLACEMENT_RESULT, props());\n static initBetPlacement = createAction(QuickBetActions.INIT_BET_PLACEMENT);\n static finalizeBetPlacement = createAction(QuickBetActions.FINALIZE_BET_PLACEMENT);\n static queryPlaceStatus = createAction(QuickBetActions.QUERY_PLACE_STATUS, props());\n static placeBetResponseErrors = createAction(\n QuickBetActions.PLACE_BET_RESPONSE_ERRORS,\n props<{ pickErrors: BetslipTypePickErrors; betslipErrors: BetslipError[]; slipErrors: Record }>(),\n );\n\n /** Stake handling */\n\n static changeStake = createAction(QuickBetActions.CHANGE_STAKE, props<{ stake: string; silent?: boolean }>());\n static updateStake = createAction(QuickBetActions.UPDATE_STAKE, props<{ stake: string; silent?: boolean }>());\n static setStakeState = createAction(QuickBetActions.SET_STAKE_STATE, props());\n static numpadAction = createAction(QuickBetActions.NUMPAD_ACTION, props<{ action: NumpadAction }>());\n static showWalletSelector = createAction(QuickBetActions.SHOW_WALLET_SELECTOR);\n\n /** Picks state */\n\n static setHasClosedPick = createAction(QuickBetActions.SET_HAS_CLOSED_PICK, pprops());\n static setHasLockedPick = createAction(QuickBetActions.SET_HAS_LOCKED_PICK, pprops());\n static showPickChangedWarning = createAction(QuickBetActions.SHOW_PICK_CHANGED_WARNING, pprops());\n static showTechnicalErrorDialog = createAction(QuickBetActions.SHOW_TECHNICAL_ERROR_DIALOG);\n static clearWarnings = createAction(QuickBetActions.CLEAR_WARNINGS);\n // fires when the betslip is open from QB(either \"Add to Betslip\" OR click on pick name)\n static openBetslip = createAction(QuickBetActions.OPEN_BETSLIP);\n // fires when we want to clean-up the state when returning from Betslip to QB, when QB was open before opening the betslip\n static resetAddedToBetslip = createAction(QuickBetActions.RESET_ADDED_TO_BETSLIP);\n // resets from Success state to Place state\n static resetToPlaceState = createAction(QuickBetActions.RESET_TO_PLACE_STATE);\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { OddsAcceptanceMode } from '@bpos';\nimport { UserActions } from '@frontend/sports/user/feature';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { concatMap, filter, from, ignoreElements, map, mergeMap, switchMap, tap, withLatestFrom } from 'rxjs';\n\nimport { betslipSelector } from '../base/store/selectors';\nimport { IBetslipRootState } from '../base/store/state';\nimport { BetslipState } from '../core/betslip-state';\nimport { BetslipType } from '../core/betslip-type';\nimport { ExternalBetslipActions, PickAddPayload } from '../core/external-betslip-actions';\nimport { BetslipModuleLoaderService } from '../integration/betslip-module-loader.service';\nimport { OddChangeConfirmationService } from '../modules/betting-preference/odd-changes-confirmation/odd-changes-confirmation.service';\nimport { EditBetActions } from '../modules/edit-bet/actions';\nimport { QuickBetActions } from '../modules/quick-bet/quick-bet-actions';\nimport { QuickBetUiState } from '../modules/quick-bet/quick-bet.state';\nimport { BetslipResultActions } from '../modules/result/actions';\nimport { BetslipTypesActions } from '../modules/types/actions';\nimport { BETSLIP_MODULE_LOADER_SERVICE } from './sports-injection-services';\n\n@Injectable()\nexport class ExternalBetslipEffects {\n constructor(\n private actions$: Actions,\n private store: Store,\n private oddChangeConfirmationService: OddChangeConfirmationService,\n @Inject(BETSLIP_MODULE_LOADER_SERVICE) private betslipLoaderModule: BetslipModuleLoaderService,\n ) {}\n\n closeResultOnAddPickEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n ExternalBetslipActions.addPick,\n ExternalBetslipActions.addMultiplePicks,\n ExternalBetslipActions.addBetBuilderPick,\n ExternalBetslipActions.addEntainUiBetBuilderPick,\n ExternalBetslipActions.requestAddAffiliatePicks,\n ExternalBetslipActions.addGroupPick,\n ),\n switchMap(() => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n withLatestFrom(this.store.select(betslipSelector)),\n filter(([_, currentState]) => currentState.base.state === BetslipState.Result),\n concatMap(([_, currentState]) => [\n BetslipTypesActions.setSelectedType({\n betslipType: null,\n selectedByUser: false,\n systemInfo: null,\n }),\n BetslipTypesActions.setActiveTypes({ betslipTypes: [] }),\n currentState.types.base.currentSelectedType === BetslipType.EditBet\n ? EditBetActions.exitEditBet()\n : BetslipResultActions.close(),\n ]),\n );\n }),\n );\n });\n\n closeQuickBetConfirmationOnAddPickEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n ExternalBetslipActions.addPick,\n ExternalBetslipActions.addMultiplePicks,\n ExternalBetslipActions.addBetBuilderPick,\n ExternalBetslipActions.addEntainUiBetBuilderPick,\n ExternalBetslipActions.requestAddAffiliatePicks,\n ExternalBetslipActions.addGroupPick,\n ),\n switchMap(() =>\n from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n withLatestFrom(this.store.select(betslipSelector)),\n filter(([_, currentState]) => currentState.quickBet.uiState === QuickBetUiState.Success),\n map(() => QuickBetActions.closeResultScreen()),\n ),\n ),\n );\n });\n\n handleAddPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addPick, ExternalBetslipActions.echoAddPick),\n switchMap((action) => {\n return this.getRequestAddPickActions([action]);\n }),\n );\n });\n\n handleOddsConfirmationPopupDisplay$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(\n ExternalBetslipActions.addPick,\n ExternalBetslipActions.addMultiplePicks,\n ExternalBetslipActions.addBetBuilderPick,\n ExternalBetslipActions.addEntainUiBetBuilderPick,\n ExternalBetslipActions.requestAddAffiliatePicks,\n ExternalBetslipActions.addGroupPick,\n ),\n switchMap(() =>\n this.oddChangeConfirmationService.isEligibleForOddsChangePopup().pipe(\n filter((isEligible) => isEligible),\n tap(() => this.oddChangeConfirmationService.checkAndOpenOddsChangePopup()),\n ),\n ),\n ignoreElements(),\n );\n },\n { dispatch: false },\n );\n\n handleAddPicksActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addMultiplePicks),\n switchMap((action) => {\n return this.getRequestAddPickActions(action.picks);\n }),\n );\n });\n\n handleAddGroupPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addGroupPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestAddGroupPick({\n payload: action.picks,\n headerTemplate: action.headerTemplate,\n });\n }),\n );\n }),\n );\n });\n\n handleAddBetBuilderPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addBetBuilderPick, ExternalBetslipActions.echoAddBetBuilderPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestAddBetBuilderPick({\n pickId: action.pickId,\n tracking: action.tracking,\n eventData: action.eventData,\n additionalInfo: action.additionalInfo,\n });\n }),\n );\n }),\n );\n });\n\n handleAddEntainUiBetBuilderPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addEntainUiBetBuilderPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestAddEntainUiBetBuilderPick({\n pickId: action.pickId,\n tracking: action.tracking,\n eventData: action.eventData,\n eventModel: action.eventModel,\n market: action.betBuilderOptionMarket,\n longId: [action.longId],\n });\n }),\n );\n }),\n );\n });\n\n handleRemoveEntainUIPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.removeEntainUiBetBuilderPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestRemoveEntainUiBetBuilderPick({\n pickId: action.pickId,\n longId: action.longId,\n eventId: action.eventId,\n });\n }),\n );\n }),\n );\n });\n\n handleCheckPrecreatedBABConversion$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.checkPrecreatedBABConversion),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.checkPrecreatedBABConversion({\n pickId: action.pickId,\n eventData: action.eventData,\n eventModel: action.eventModel,\n market: action.market,\n longId: action.longId,\n headerTemplate: action.headerTemplate,\n });\n }),\n );\n }),\n );\n });\n\n handleRemovePickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.removePick, ExternalBetslipActions.echoRemovePick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestRemovePick({ pickId: action.pickId });\n }),\n );\n }),\n );\n });\n\n handleRemovePicksFromGroupActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.removePicksFromGroup),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestRemovePicksFromGroup({ pickIds: action.pickIds });\n }),\n );\n }),\n );\n });\n\n handleAffiliateRequestActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.requestAddAffiliatePicks),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.addAffiliatePicks(action);\n }),\n );\n }),\n );\n });\n\n handleAffiliateShareBetRequestActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.shareBet),\n switchMap(() => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.shareAffiliatePicks();\n }),\n );\n }),\n );\n });\n\n handleRemoveMultiplePicksActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.removeMultiplePicks, ExternalBetslipActions.echoRemoveMultiplePicks),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.requestRemoveMultiplePicks({ pickIds: action.pickIds });\n }),\n );\n }),\n );\n });\n\n handleStartEditMyBetActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.startEditMyBet),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.EditBetActions.startEditMyBet({ payload: action.payload });\n }),\n );\n }),\n );\n });\n\n handleNotificationSettingUpdateActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(UserActions.updateState),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.SettingsActions.updateNotificationSettings({\n oddsAcceptance: action.settings.oddsAcceptanceMode ? action.settings.oddsAcceptanceMode : undefined,\n emailNotify: action.settings.betslipEmailNotification,\n appNotify: action.settings.betslipAppNotification,\n });\n }),\n );\n }),\n );\n });\n\n private getRequestAddPickActions(payload: PickAddPayload[]) {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n mergeMap((module) => [\n ...payload.map((y) =>\n module.BetslipPickActions.requestAddPick({\n pickId: y.pickId,\n tracking: y.tracking,\n priceId: y.priceId,\n isPriceBoosted: y.isPriceBoosted,\n groupInfo: y.groupInfo,\n parentLinkedEventId: y.parentLinkedEventId,\n isBetBuilderEnabled: y.isBetBuilder ?? false,\n }),\n ),\n module.RewardTokensActions.closeDialog(),\n ]),\n );\n }\n\n handleAddWebAppPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.addWebAppPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.addWebAppPick(action);\n }),\n );\n }),\n );\n });\n\n handleRemoveWebAppPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.removeWebAppPick),\n\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.removeWebAppPick(action);\n }),\n );\n }),\n );\n });\n\n handleSetRewardTokenActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.setBetstationFreeBetToken),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.RewardTokensActions.setBetstationFreeBetToken(action);\n }),\n );\n }),\n );\n });\n\n handleToggleWinPickActionEffect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ExternalBetslipActions.toggleWinPick),\n switchMap((action) => {\n return from(this.betslipLoaderModule.loadBetslipModule()).pipe(\n map((module) => {\n return module.BetslipPickActions.toggleWinPick({ pickId: action.pickId });\n }),\n );\n }),\n );\n });\n //\n // private loadPickFromApi(payload: IAddPickPayload): Observable {\n // \tconst pickId = pickIdFactory(payload.pickId);\n // \tconst effect = this;\n // \tconst request = this.betslipPicksRequestBuilder.buildRequestFromPickId([pickId]);\n // \treturn from(this.bettingOffer.getPicks(request)).pipe(\n // \t\tfilter(fp => Boolean(fp && fp.fixtures.length)),\n // \t\tconcatMap(function* (response: FixturePage | undefined): Iterable {\n // \t\t\tconst fixture = response!.fixtures[0];\n // \t\t\tif (fixture) {\n // \t\t\t\tlet priceId;\n // \t\t\t\tif (payload.extra.type === AddPickPayloadType.Race) {\n // \t\t\t\t\tpriceId = payload.extra.priceId;\n // \t\t\t\t}\n // \t\t\t\tconst betslipPick = effect.pickFactory.createPick(pickId, fixture, null, payload.extra.sourceOfBet, priceId);\n // \t\t\t\tif (!!betslipPick) {\n // \t\t\t\t\tyield PickActions.addedPick({ pick: betslipPick, pickId: betslipPick.id.toString(), priceId });\n // \t\t\t\t}\n // \t\t\t}\n // \t\t})\n // \t);\n // }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\n\nimport { BetslipHost } from '../core/external-betslip-actions';\nimport { BetslipDigitalModuleLoaderService } from './betslip-digital-module-loader.service';\nimport ExternalAffiliateEffects from './external-affiliate.effects';\nimport { ExternalBetslipEffects } from './external-betslip-effects';\nimport { BETSLIP_MODULE_LOADER_SERVICE } from './sports-injection-services';\n\n@NgModule({\n imports: [EffectsModule.forFeature([ExternalBetslipEffects, ExternalAffiliateEffects])],\n})\nexport class BetslipDigitalIntegrationModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: BetslipDigitalIntegrationModule,\n providers: [\n { provide: BetslipHost, useValue: BetslipHost.Digital },\n\n // services\n { provide: BETSLIP_MODULE_LOADER_SERVICE, useClass: BetslipDigitalModuleLoaderService },\n ],\n };\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { LocalStoreService, OnAppInit } from '@frontend/vanilla/core';\nimport { LaunchDarklyService } from '@frontend/vanilla/features/launch-darkly';\nimport { LDEvaluationDetail } from 'launchdarkly-js-client-sdk';\nimport { Observable, forkJoin, take } from 'rxjs';\n\nexport enum LDFeatureFlags {\n DisplayMode = 'DisplayMode',\n}\nexport const LD_FEATURE_FLAG_STORAGE_KEY = 'LdFeatureFlags';\nexport const LD_FEATURE_FLAGS = [LDFeatureFlags.DisplayMode];\n\n@Injectable({ providedIn: 'root' })\nexport class LaunchDarklyFlagManagerService implements OnAppInit {\n private localStoreService = inject(LocalStoreService);\n private launchDarklyService = inject(LaunchDarklyService);\n private featureFlagKeys$: Record> = {\n [LDFeatureFlags.DisplayMode]: this.launchDarklyService.getFlagOnly(LDFeatureFlags.DisplayMode).pipe(take(1)),\n };\n\n onAppInit() {\n forkJoin(this.featureFlagKeys$).subscribe((featureFlags) => {\n this.localStoreService.set(LD_FEATURE_FLAG_STORAGE_KEY, featureFlags);\n });\n }\n\n getFeatureFlag = (flagName: string) =>\n (this.localStoreService.get(LD_FEATURE_FLAG_STORAGE_KEY) as Record)?.[flagName];\n\n activateExperiment(key: string): Observable {\n return this.launchDarklyService.activateExperiment(key);\n }\n\n track(flag: LDFeatureFlags, key: string, value: number) {\n if (this.getFeatureFlag(flag) === undefined) {\n return;\n }\n\n this.launchDarklyService.client.track(key, null, value);\n }\n}\n","import { DateProviderService, Time, TimeOfDay } from '@frontend/sports/common/core/utils/date';\n\nexport abstract class DateCheckerService {\n static isDateReached(date: Date | string): boolean {\n const dateValue = date instanceof Date ? date : new Date(date);\n\n return DateProviderService.getDate() >= dateValue;\n }\n\n static isNowTimeOfDay(timeOfDay: TimeOfDay): boolean {\n const now = DateProviderService.getDate();\n\n const from = DateCheckerService.toDate(now, timeOfDay.from);\n const to = DateCheckerService.toDate(now, timeOfDay.to);\n\n return now >= from && now < to;\n }\n\n private static toDate(date: Date, time: Time): Date {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.hours, time.minutes, 0, 0);\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\n\nimport { RealityCheckConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { filterSportsEmitLast, fromSportsEnter, fromSportsLeave } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { ButtonType, DialogType, ModalDialogService } from '@frontend/sports/modal/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { first } from 'rxjs';\n\nexport enum RealityCheckEvent {\n OnLogin = 'OnLogin',\n OnBetPlacement = 'OnBetPlacement',\n OnBetPlacementWithDuration = 'OnBetPlacementWithDuration',\n}\n\nconst RealityCheckCookie = {\n RealityTime: '',\n FirstBetPlacement: '',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RealityCheckService implements OnAppInit {\n private readonly realityCheckTimerKey = 'REALITY_CHECK_TIMER';\n private readonly BET_PLACE_SUCCESS = 'BET_PLACE_SUCCESS';\n private isSubscribed = false;\n private remainingTime = 0;\n private _dialogText: string;\n private _buttonText: string;\n\n constructor(\n private userService: UserService,\n private modalDialogService: ModalDialogService,\n private sitecore: Sitecore,\n private cookieProvider: CookieProvider,\n private realityCheckConfig: RealityCheckConfig,\n private tickerService: TickerService,\n private dispatcher: DispatcherService,\n private zone: NgZone,\n ) {\n switch (this.realityCheckConfig.realityCheckEvent) {\n case RealityCheckEvent.OnBetPlacement:\n case RealityCheckEvent.OnBetPlacementWithDuration:\n this.dispatcher\n .on(this.BET_PLACE_SUCCESS)\n .pipe(first())\n .subscribe(() => {\n this.scheduleNotification();\n this.setFirstBetPlacementCookie();\n });\n\n break;\n case RealityCheckEvent.OnLogin:\n this.userService.onUserLogInWithSettings$.pipe(filterSportsEmitLast()).subscribe(() => this.scheduleNotification());\n break;\n }\n this.userService.onUserLogout$.pipe(filterSportsEmitLast()).subscribe(() => this.onUserLogout());\n }\n\n get dialogText() {\n if (this.realityCheckConfig.realityCheckEvent === RealityCheckEvent.OnBetPlacementWithDuration) {\n this._dialogText = this.sitecore.globalMessages.RealityCheckWithTimerMessage.replace(/{duration}/, this.getTimeDuration());\n }\n if (!this._dialogText) {\n this._dialogText = this.sitecore.globalMessages.RealityCheckMessage;\n }\n\n return this._dialogText;\n }\n\n get buttonText() {\n if (!this._buttonText) {\n this._buttonText = this.sitecore.globalMessages.RealityCheckButtonTitle;\n }\n\n return this._buttonText;\n }\n\n onAppInit(): void {\n if (this.cookieProvider.getCookie(this.realityCheckConfig.cookieName)) {\n const cookieObj = JSON.parse(this.cookieProvider.getCookie(this.realityCheckConfig.cookieName));\n RealityCheckCookie.FirstBetPlacement = cookieObj.FirstBetPlacement;\n }\n if (this.cookieRemainingTime) {\n this.scheduleNotification();\n fromSportsEnter().subscribe(() => this.scheduleNotification());\n fromSportsLeave().subscribe(() => this.unsubscribeTickerService());\n }\n }\n\n private onUserLogout(): void {\n if (this.isSubscribed) {\n this.tickerService.unsubscribe(this.realityCheckTimerKey);\n this.isSubscribed = false;\n }\n\n this.cookieProvider.deleteCookie(this.realityCheckConfig.cookieName);\n }\n\n private get realityCheckEnabled(): boolean {\n return Boolean(\n this.userService.isAuthenticated &&\n this.userService.jurisdiction &&\n this.realityCheckConfig.jurisdictions.some((j) => j === this.userService.jurisdiction),\n );\n }\n\n private showNotification(): void {\n this.updateRemainingTime();\n\n if (this.remainingTime > 0) {\n return;\n }\n\n const contentData = {\n type: DialogType.Info,\n title: '',\n firstParagraph: this.dialogText,\n secondParagraph: '',\n buttons: [\n {\n text: this.buttonText,\n type: ButtonType.Ok,\n },\n ],\n };\n\n this.zone.run(() =>\n this.modalDialogService.openMessage(contentData).result.then(() => {\n this.scheduleNotification();\n }),\n );\n }\n\n scheduleNotification(): void {\n if (!this.realityCheckEnabled) {\n return;\n }\n\n if (this.cookieRemainingTime > 0) {\n this.updateRemainingTime();\n } else {\n this.resetRemainingTime();\n }\n\n this.unsubscribeTickerService();\n\n this.tickerService.subscribe({\n id: this.realityCheckTimerKey,\n interval: TickerInterval.Minute,\n onTick: () => this.showNotification(),\n });\n\n this.isSubscribed = true;\n }\n\n private unsubscribeTickerService() {\n if (this.isSubscribed) {\n this.tickerService.unsubscribe(this.realityCheckTimerKey);\n }\n }\n\n private updateRemainingTime(): void {\n this.remainingTime = (this.cookieRemainingTime || this.realityCheckConfig.updateInterval) - 1;\n this.setRealityCookie(this.remainingTime);\n }\n\n private get cookieRemainingTime(): number {\n let remaingTime;\n if (this.cookieProvider.getCookie(this.realityCheckConfig.cookieName)) {\n const cookieObj = JSON.parse(this.cookieProvider.getCookie(this.realityCheckConfig.cookieName));\n remaingTime = cookieObj.RealityTime;\n }\n\n return Number(remaingTime);\n }\n\n private resetRemainingTime(): void {\n this.remainingTime = this.realityCheckConfig.updateInterval;\n this.setRealityCookie(this.remainingTime);\n }\n\n private setRealityCookie(value: number): void {\n RealityCheckCookie.RealityTime = value.toString();\n this.cookieProvider.setCookie(this.realityCheckConfig.cookieName, JSON.stringify(RealityCheckCookie), { expires: 1 });\n }\n\n setFirstBetPlacementCookie(): void {\n RealityCheckCookie.FirstBetPlacement = new Date().toString();\n if (this.cookieProvider.getCookie(this.realityCheckConfig.cookieName)) {\n const cookieObj = JSON.parse(this.cookieProvider.getCookie(this.realityCheckConfig.cookieName));\n if (cookieObj.FirstBetPlacement !== '') RealityCheckCookie.FirstBetPlacement = cookieObj.FirstBetPlacement;\n }\n this.cookieProvider.setCookie(this.realityCheckConfig.cookieName, JSON.stringify(RealityCheckCookie));\n }\n\n private getTimeDuration(): string {\n let betPlaceTime = new Date();\n if (this.cookieProvider.getCookie(this.realityCheckConfig.cookieName)) {\n const cookieObj = JSON.parse(this.cookieProvider.getCookie(this.realityCheckConfig.cookieName));\n betPlaceTime = new Date(cookieObj.FirstBetPlacement);\n }\n\n const diff = (new Date().getTime() - betPlaceTime.getTime()) / 1000;\n const diffMs = Math.max(Math.ceil(diff), 0);\n\n let hours = Math.floor(diffMs / (60 * 60));\n const minutes = Math.floor((diffMs / 60) % 60);\n if (minutes > 58) {\n hours += 1;\n }\n\n return hours.toString();\n }\n}\n","import { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { BestOddsFixtureLikeInput } from 'packages/sports/web/app/src/best-odds-guarantee/models/models';\nimport { DateCheckerService } from 'packages/sports/web/app/src/common/date-checker.service';\nimport { HorsesFixtureHelper } from 'packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-helper.service';\n\nimport { BestOddsGuaranteedToken, IRewardToken } from './reward-tokens.model';\n\nexport function isValidStartDate(token: IRewardToken): boolean {\n return DateCheckerService.isDateReached(token.startDate);\n}\n\nexport function isValidExpiryDate(token: IRewardToken): boolean {\n return !DateCheckerService.isDateReached(token.expiryDate);\n}\n\nexport function isValidDayOfWeek(token: IRewardToken): boolean {\n if (!token.filter.schedule?.daysOfTheWeek?.length) {\n return true;\n }\n\n const day = DateProviderService.getDayOfWeek();\n\n return token.filter.schedule.daysOfTheWeek.some((tokenDay) => tokenDay === day);\n}\n\nexport function isValidTimeOfDay(token: IRewardToken): boolean {\n if (!token.filter.schedule?.timesOfTheDay?.length) {\n return true;\n }\n\n return token.filter.schedule.timesOfTheDay.some((timeOfDay) => DateCheckerService.isNowTimeOfDay(timeOfDay));\n}\n\nexport function isValidSport(token: BestOddsGuaranteedToken, fixture: BestOddsFixtureLikeInput): boolean {\n if (!Object.keys(token.filter.sportsFilter).length) {\n return true;\n }\n\n const sport = token.filter.sportsFilter[fixture.sport.id];\n\n return (\n !!sport &&\n hasRestrictedId(sport.regions, fixture.region?.id) &&\n hasRestrictedId(sport.meetings, fixture.meeting?.id) &&\n hasRestrictedId(sport.competitions, fixture.competition?.id)\n );\n}\n\nexport function hasBestOddsGuaranteeFlag(fixture: BestOddsFixtureLikeInput): boolean {\n const cdsUnresulted = HorsesFixtureHelper.isTradable(fixture);\n\n return !!(fixture.addons.bestOddsGuarantee && cdsUnresulted) && !fixture.addons.isRaceOff;\n}\n\nfunction hasRestrictedId(filterIds: number[], contextId?: number): boolean {\n return !filterIds?.length || (!!contextId && filterIds.some((filterId) => filterId === contextId));\n}\n","import { Injectable } from '@angular/core';\n\nimport { RacingConfig } from '@frontend/sports/common/client-config-data-access';\nimport { hasBestOddsGuaranteeFlag } from 'packages/sports/common/betslip/modules/reward-tokens/validators';\nimport { Observable, of } from 'rxjs';\n\nimport { BestOddsFixtureLikeInput } from '../models/models';\nimport { BestOddsGuaranteedService } from './best-odds-guaranteed.service';\n\n/**\n * BogVersion allows selecting which BOG implementation is used on the label. At the moment two values are possible:\n * Classic (old one)\n * TokenBased (new one)\n *\n * This service implements old behavior of `BestOddsGuaranteedService`\n */\n@Injectable({ providedIn: 'root' })\nexport class ClassicBestOddsGuaranteedService extends BestOddsGuaranteedService {\n constructor(private racingConfig: RacingConfig) {\n super();\n }\n\n isFixtureEligible(fixture: BestOddsFixtureLikeInput): Observable {\n return of(!!this.racingConfig.isBOGEnabled && hasBestOddsGuaranteeFlag(fixture));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BestOddsGuaranteedToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport {\n hasBestOddsGuaranteeFlag,\n isValidDayOfWeek,\n isValidExpiryDate,\n isValidSport,\n isValidStartDate,\n isValidTimeOfDay,\n} from 'packages/sports/common/betslip/modules/reward-tokens/validators';\n\nimport { BestOddsFixtureLikeInput } from '../models/models';\n\n@Injectable({ providedIn: 'root' })\nexport class FixtureBestOddsGuaranteedTokenValidatorService {\n private validators: ((token: BestOddsGuaranteedToken, fixture: BestOddsFixtureLikeInput) => boolean)[] = [\n (token, fixture) => hasBestOddsGuaranteeFlag(fixture),\n isValidStartDate,\n isValidExpiryDate,\n isValidDayOfWeek,\n isValidTimeOfDay,\n isValidSport,\n ];\n\n validate(token: BestOddsGuaranteedToken, fixture: BestOddsFixtureLikeInput): boolean {\n return this.validators.every((validator) => validator(token, fixture));\n }\n}\n","import { Action, ActionReducer, ReducerTypes, createReducer } from '@ngrx/store';\nimport { ActionCreator } from '@ngrx/store/src/models';\nimport produce from 'immer';\n\nfunction convertReducer(reducer: ActionReducer): ActionReducer {\n return (state: TState | undefined, action: TAction) => {\n return produce(state, (draft: TState) => reducer(draft, action)) as TState;\n };\n}\n\nexport function createImmutableReducer(\n initialState: TState,\n ...ons: ReducerTypes[]\n): ActionReducer {\n const reducer = createReducer(initialState, ...ons);\n\n return convertReducer(reducer);\n}\n\nexport function combineReducers(\n initialState: TState,\n ...reducers: ActionReducer[]\n): ActionReducer {\n return (state = initialState, action) => {\n let newState = state;\n for (const reducer of reducers) {\n newState = reducer(newState, action);\n }\n\n return newState;\n };\n}\n","export enum OddsAcceptance {\n No = 'No',\n Any = 'Any',\n Higher = 'Higher',\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class PerformanceService {\n private _measurements = new Map();\n\n isLowTierDevice(benchmarkThreshold = 3): boolean {\n const measurement = this._measurements.get(benchmarkThreshold);\n\n if (measurement !== undefined) {\n return measurement;\n }\n\n const isSlow = isLowTierDevice(benchmarkThreshold);\n this._measurements.set(benchmarkThreshold, isSlow);\n\n return isSlow;\n }\n}\n\n/**\n * Runs simple benchmark to detect device performance\n *\n * devices with execution time >3ms considered as slow\n *\n * @param benchmarkThreshold - configurable threshold for execution time in ms\n */\nexport function isLowTierDevice(benchmarkThreshold = 3): boolean {\n return benchmark() > benchmarkThreshold;\n}\n\nfunction benchmark() {\n const start = performance.now();\n calculatePrimes(20000);\n\n return performance.now() - start;\n}\n\nfunction calculatePrimes(max: number) {\n const primes: number[] = [];\n\n for (let i = 1; i < max; i++) {\n if (isPrime(i)) primes.push(i);\n }\n\n return primes;\n}\n\nfunction isPrime(num: number) {\n for (let i = 2, s = Math.sqrt(num); i <= s; i++) {\n if (num % i === 0) {\n return false;\n }\n }\n\n return num > 1;\n}\n","import { StreamProvider } from '@cds/betting-offer/add-ons';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nexport enum VideoStreamStatus {\n Error,\n NotStarted,\n Started,\n NotEnoughMoney,\n}\n\nexport class VideoStreamResult {\n url: string;\n status: VideoStreamStatus;\n\n constructor(errorType: VideoStreamStatus = VideoStreamStatus.Error) {\n this.status = errorType;\n }\n}\n\nexport interface UnasResponse {\n data: {\n token: {\n _status: string;\n _url: string;\n };\n };\n}\n\nexport interface ImgApiResponse {\n statusCode: number;\n hlsUrl: string;\n}\n\nexport interface PerformMediaFormat {\n playerAlias: string;\n stream: {\n streamLaunchCode: string;\n };\n}\n\nexport interface PerformStatus {\n category: string;\n pageName: string;\n}\n\nexport interface PerformResponse {\n eventInfo: {\n availableMediaFormats: {\n mediaFormat: PerformMediaFormat | PerformMediaFormat[];\n };\n };\n}\n\nexport interface VideoStreamError {\n bubbles: boolean;\n cancelBubble: boolean;\n cancelable: boolean;\n composed: boolean;\n currentTarget: XMLHttpRequest;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n lengthComputable: boolean;\n loaded: number;\n path: Array;\n returnValue: boolean;\n srcElement: XMLHttpRequest;\n target: XMLHttpRequest;\n timeStamp: number;\n total: number;\n type: string;\n status: string;\n}\n\nexport enum PlaySource {\n Overlay = 'Overlay',\n PlayPauseButton = 'PlayPauseButton',\n}\nexport interface VideoDimension {\n height?: number;\n width?: number;\n}\n\nexport interface VideoAttributes extends VideoDimension {\n pinnable: boolean;\n}\n\nexport enum SelfExcludedCategories {\n Closed = 1,\n ClosedWithCoolOff = 2,\n}\n\nexport function showStreamingMessage(event: EventModel, hideWhenStarted?: boolean): boolean {\n const isTwitchEsport = !!event.sport.isEsport && event.stream?.provider === StreamProvider.Unikrn;\n\n if (!isTwitchEsport) {\n return false;\n }\n\n if (event.scoreboard.started) {\n if (!event.stream?.twitchChannel && !event.stream?.streamUrl) {\n return false;\n }\n\n return !hideWhenStarted;\n }\n\n return event.startDate.getTime() - Date.now() <= 60 * 60 * 1000;\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\nimport { ClientTagManager } from './tracking.models';\n\n@LazyClientConfig({ key: 'vnTracking', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: trackingConfigFactory,\n})\nexport class TrackingConfig extends LazyClientConfigBase {\n isEnabled: boolean;\n dataLayerName: string;\n notTrackedQueryStrings: string[];\n tagManagerRenderers: string[];\n eventCallbackTimeoutInMilliseconds: number;\n dataLayerUpdateTimeoutInMilliseconds: number;\n pageViewDataProviderTimeout: number;\n clientTagManagers: ClientTagManager[];\n clientInjectionExcludes: string[];\n allowlist: string[];\n benchmarkThreshold: number;\n blocklist: string[];\n deviceBlockEnabled: boolean;\n deviceConcurrency: number;\n deviceMemory: number;\n enableLogging: boolean;\n enableOmitting: boolean;\n omitAll: boolean;\n omitPercentage: number;\n schedulerEnabled: boolean;\n trackingDelay: number;\n delayGTM: number;\n enableGTM: boolean;\n}\n\nexport function trackingConfigFactory(service: LazyClientConfigService) {\n return service.get(TrackingConfig);\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n DeviceService,\n FrontendHelperService,\n NativeAppService,\n NavigationService,\n Page,\n ParsedUrl,\n UrlService,\n UserService,\n WINDOW,\n} from '@frontend/vanilla/core';\nimport { BalancePropertiesConfig } from '@frontend/vanilla/features/balance-properties';\nimport { firstValueFrom } from 'rxjs';\n\nimport { TrackingConfig } from './tracking.client-config';\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TrackingValueGettersService {\n private referrer: string;\n private entryUrl: ParsedUrl;\n readonly #window = inject(WINDOW);\n\n constructor(\n private trackingConfig: TrackingConfig,\n private user: UserService,\n private navigationService: NavigationService,\n private urlService: UrlService,\n private page: Page,\n private cookieService: CookieService,\n private deviceService: DeviceService,\n private nativeAppService: NativeAppService,\n private frontendHelperService: FrontendHelperService,\n private balancePropertiesConfig: BalancePropertiesConfig,\n ) {}\n\n accountId() {\n return this.user.accountId;\n }\n\n async userBalance() {\n if (this.user.isAuthenticated) {\n await firstValueFrom(this.balancePropertiesConfig.whenReady);\n return this.balancePropertiesConfig.balanceProperties.accountBalance;\n }\n return 0;\n }\n\n userCurrency() {\n return this.user.currency;\n }\n\n userCountry() {\n return this.user.country;\n }\n\n userGeoCountry() {\n return this.user.geoCountry;\n }\n\n userLoyalty() {\n return this.user.loyalty || '';\n }\n\n userCustomerId() {\n return this.user.customerId;\n }\n\n userSegmentId() {\n return this.user.segmentId;\n }\n\n userStage() {\n return this.user.lifeCycleStage || '';\n }\n\n userPrestage() {\n return this.user.eWarningVip || '';\n }\n\n userMicroSegmentId() {\n return this.user.microSegmentId;\n }\n\n userChurnRate() {\n return this.user.churnRate;\n }\n\n userFutureValue() {\n return this.user.futureValue;\n }\n\n userPotentialVip() {\n return this.user.potentialVip;\n }\n\n userAgent() {\n return this.#window.navigator.userAgent;\n }\n\n isAuthenticated() {\n return !!this.user.username;\n }\n\n async hasPositiveBalance() {\n if (this.user.isAuthenticated) {\n await firstValueFrom(this.balancePropertiesConfig.whenReady);\n return this.balancePropertiesConfig.balanceProperties.accountBalance > 0;\n }\n return false;\n }\n\n locationAbsUrl() {\n return this.removeNotTrackedQueryStrings(this.navigationService.location.absUrl(), true);\n }\n\n locationHost() {\n return this.navigationService.location.host();\n }\n\n locationPathQueryAndFragment() {\n return TrackingValueGettersService.removeLeadingSlashes(this.removeNotTrackedQueryStrings(this.navigationService.location.url(), false));\n }\n\n browserScreenResolution() {\n if (this.#window) {\n const { width, height } = this.deviceService.windowRect();\n return `${width}x${height}`;\n } else {\n return `${this.deviceService.displayWidth}x${this.deviceService.displayHeight}`;\n }\n }\n\n redirectedFrom() {\n return this.cookieService.get(CookieName.RedirexOriginal);\n }\n\n trackerID() {\n return this.cookieService.get(CookieName.TrackerId);\n }\n\n trackingAffiliate() {\n return this.cookieService.get(CookieName.TrackingAffiliate);\n }\n\n abTestGroup() {\n return this.cookieService.get(CookieName.MmcoreBwinvar);\n }\n\n pageName() {\n return this.getPageName();\n }\n\n pageReferrer() {\n return this.removeNotTrackedQueryStrings(this.referrer, true);\n }\n\n browserOrientation() {\n return this.deviceService.currentOrientation;\n }\n\n nativeMode() {\n return this.nativeAppService.nativeMode;\n }\n\n isTouch() {\n return this.deviceService.isTouch;\n }\n\n cpuCores() {\n return this.deviceService.cpuCores;\n }\n\n cpuMaxFrequency() {\n return this.deviceService.cpuMaxFrequency;\n }\n\n totalRam() {\n return this.deviceService.totalRam;\n }\n\n model() {\n return this.deviceService.model;\n }\n\n nightMode() {\n return `Night Mode ${parseInt(this.cookieService.get(CookieName.DarkMode)) > 0 ? 'ON' : 'OFF'}`;\n }\n\n userKnown() {\n return !!this.cookieService.get(CookieName.LastVisitor);\n }\n\n internalCampaign() {\n return this.navigationService.location.search.get('trid');\n }\n\n deviceId() {\n return this.cookieService.get(CookieName.DeviceId);\n }\n\n lang() {\n return this.page.languageCode;\n }\n\n culture() {\n return this.page.lang;\n }\n\n frontend() {\n return this.frontendHelperService.getFrontendDescription();\n }\n\n medium() {\n return this.getMedium();\n }\n\n domain() {\n return this.page.domain;\n }\n\n fullEntryUrl() {\n return this.entryUrl;\n }\n\n entryUrlReferrer() {\n return this.cookieService.get(CookieName.EntryUrlReferrer);\n }\n\n packageVersion(packageName: string) {\n const nativeWindow = this.#window;\n if (nativeWindow.VERSIONS) {\n return nativeWindow.VERSIONS[packageName];\n }\n }\n\n setReferrer(referrer: string) {\n this.referrer = referrer;\n }\n\n setEntryUrl(entryUrl: string) {\n this.entryUrl = this.urlService.parse(entryUrl);\n }\n\n terminalId() {\n return this.cookieService.get(CookieName.TerminalId);\n }\n\n shopId() {\n return this.cookieService.get(CookieName.ShopId) || '0';\n }\n\n terminalType() {\n return this.nativeAppService.applicationName;\n }\n\n isTerminal() {\n return this.nativeAppService.isTerminal;\n }\n\n private removeNotTrackedQueryStrings(url: string, absolute: boolean): string {\n if (!url) {\n return '';\n }\n\n const parsedUrl = this.urlService.parse(url);\n for (const notTrackedQueryString of this.trackingConfig.notTrackedQueryStrings || []) {\n parsedUrl.search.delete(notTrackedQueryString);\n }\n return decodeURIComponent(absolute ? parsedUrl.absUrl() : parsedUrl.url());\n }\n\n private getPageName() {\n const langPrefix = `/${this.page.lang}`;\n const path = this.navigationService.location.path();\n const lowerCasePath = path.toLowerCase();\n let pageName: string;\n if (lowerCasePath.indexOf(langPrefix) === 0) {\n const result = path.substring(langPrefix.length);\n if (result === '') {\n pageName = '/';\n } else {\n pageName = result;\n }\n } else {\n pageName = path;\n }\n\n pageName = TrackingValueGettersService.removeLeadingSlashes(pageName);\n return pageName;\n }\n\n private getMedium() {\n if (this.nativeAppService.nativeMode === 'Unknown') {\n if (this.deviceService.isTablet) return 'tablet web';\n else if (this.deviceService.isMobile) return 'mobile web';\n else return 'desktop web';\n }\n\n let os = '';\n if (this.nativeAppService.isNativeApp || this.nativeAppService.isNativeWrapper) {\n if (this.deviceService.isiOS) os = 'ios';\n if (this.deviceService.isChrome) os = 'android';\n }\n\n return `${this.nativeAppService.nativeMode} ${os}`;\n }\n\n private static removeLeadingSlashes(input: string) {\n return input.replace(/^\\/*/, '');\n }\n}\n","/**\n * Represents a client-side tag manager script configured in {@link TrackingConfig}.\n *\n * @stable\n */\nexport interface ClientTagManager {\n name: string;\n script: string;\n}\n\n/**\n * @stable\n */\nexport interface TrackingServiceOptions {\n timeout: number;\n}\n\n/**\n * @stable\n */\nexport interface EventNames {\n pageView: string;\n userLogout: string;\n}\n\n/**\n * @internal\n */\nexport const eventNames: EventNames = {\n pageView: 'pageView',\n userLogout: 'Event.Logout',\n};\n\n/**\n * @internal\n */\nexport interface CommunicationType {\n id: string;\n name: string;\n selected: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CommunicationSettings {\n settings: CommunicationType[];\n}\n\n/**\n * @internal\n */\nexport interface ContentItemTracking {\n event: string;\n data: { [key: string]: string };\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n LocalStoreKey,\n LocalStoreService,\n Logger,\n MenuContentItem,\n SharedFeaturesApiService,\n TimerService,\n TrackingServiceProvider,\n TriggerEventPromiseResult,\n WINDOW,\n WebAnalyticsEventType,\n WebAnalyticsEvents,\n WebWorkerService,\n WindowEvent,\n WorkerType,\n} from '@frontend/vanilla/core';\nimport { isObject, mapKeys, pickBy } from 'lodash-es';\n\nimport { TrackingValueGettersService } from './tracking-value-getters.service';\nimport { TrackingConfig } from './tracking.client-config';\nimport { CommunicationSettings, CommunicationType, ContentItemTracking, TrackingServiceOptions, eventNames } from './tracking.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DataLayerTrackingService implements TrackingServiceProvider {\n readonly #window = inject(WINDOW);\n\n constructor(\n private trackingValueGettersService: TrackingValueGettersService,\n private trackingConfig: TrackingConfig,\n private cookieService: CookieService,\n private apiService: SharedFeaturesApiService,\n private log: Logger,\n private timerService: TimerService,\n private localStoreService: LocalStoreService,\n webWorkerService: WebWorkerService,\n ) {\n // Create interval to update data layer when GTM script loads.\n webWorkerService.createWorker(WorkerType.DataLayerTrackingInterval, { interval: 500 }, () => {\n if (this.gtmLoaded) {\n this.processLocalStore();\n webWorkerService.removeWorker(WorkerType.DataLayerTrackingInterval);\n }\n });\n }\n\n private get gtmEnabled(): boolean {\n return this.trackingConfig.tagManagerRenderers.includes('GoogleTagManagerRenderer') && !!this.#window.google_tag_manager;\n }\n\n private get gtmLoaded(): boolean {\n return (\n this.#window.dataLayer?.some((x: { event: string }) => x.event === WindowEvent.VanillaGtmLoaded) &&\n this.#window.dataLayer?.some((x: { event: string }) => x.event === WindowEvent.GtmLoad)\n );\n }\n\n async addInitialValues() {\n this.updateDataLayerEntryInfo();\n await this.updateUserValues();\n this.updateDataLayer({\n 'browser.userAgent': this.trackingValueGettersService.userAgent(),\n 'browser.isTouch': this.trackingValueGettersService.isTouch(),\n 'page.trackerID': this.trackingValueGettersService.trackerID(),\n 'page.redirectedFrom': this.trackingValueGettersService.redirectedFrom(),\n 'page.nightModeStatus': this.trackingValueGettersService.nightMode(),\n 'page.language': this.trackingValueGettersService.lang(),\n 'page.culture': this.trackingValueGettersService.culture(),\n 'page.frontend': this.trackingValueGettersService.frontend(),\n 'page.domain': this.trackingValueGettersService.domain(),\n 'page.medium': this.trackingValueGettersService.medium(),\n 'native.nativeMode': this.trackingValueGettersService.nativeMode(),\n 'user.profile.dvID': this.trackingValueGettersService.deviceId(),\n 'user.session.internalCampaign': this.trackingValueGettersService.internalCampaign(),\n 'device.cpuCores': this.trackingValueGettersService.cpuCores(),\n 'device.cpuMaxFrequency': this.trackingValueGettersService.cpuMaxFrequency(),\n 'device.totalRam': this.trackingValueGettersService.totalRam(),\n 'device.model': this.trackingValueGettersService.model(),\n 'page.trackingAffiliate': this.trackingValueGettersService.trackingAffiliate(),\n 'browser.orientation': this.trackingValueGettersService.browserOrientation(),\n 'browser.screenResolution': this.trackingValueGettersService.browserScreenResolution(),\n });\n\n this.updateDataLayerSessionId();\n }\n\n async updateUserValues() {\n this.updateDataLayer({\n 'user.profile.accountID': this.trackingValueGettersService.accountId(),\n 'user.profile.bal': await this.trackingValueGettersService.userBalance(),\n 'user.profile.currency': this.trackingValueGettersService.userCurrency(),\n 'user.profile.country': this.trackingValueGettersService.userCountry(),\n 'user.profile.loyaltyStatus': this.trackingValueGettersService.userLoyalty(),\n 'user.profile.opid': this.trackingValueGettersService.userCustomerId(),\n 'user.profile.vid': this.trackingValueGettersService.userSegmentId(),\n 'user.profile.stage': this.trackingValueGettersService.userStage(),\n 'user.profile.prestage': this.trackingValueGettersService.userPrestage(),\n 'user.profile.mid': this.trackingValueGettersService.userMicroSegmentId(),\n 'user.profile.chid': this.trackingValueGettersService.userChurnRate(),\n 'user.profile.fvid': this.trackingValueGettersService.userFutureValue(),\n 'user.profile.pvid': this.trackingValueGettersService.userPotentialVip(),\n 'user.session.geoIPCountry': this.trackingValueGettersService.userGeoCountry(),\n 'user.session.abTestGroup': this.trackingValueGettersService.abTestGroup(),\n 'user.hasPositiveBalance': await this.trackingValueGettersService.hasPositiveBalance(),\n 'user.isAuthenticated': this.trackingValueGettersService.isAuthenticated(),\n 'user.isExisting': this.trackingValueGettersService.userKnown(),\n 'browser.orientation': this.trackingValueGettersService.browserOrientation(),\n 'browser.screenResolution': this.trackingValueGettersService.browserScreenResolution(),\n });\n }\n\n async updateDataLayer(data?: any): Promise {\n return new Promise((resolve) => {\n if (isObject(data) && !Array.isArray(data)) {\n if (this.gtmLoaded) {\n if (!this.trackingConfig.schedulerEnabled && this.trackingConfig.dataLayerUpdateTimeoutInMilliseconds) {\n this.timerService.scheduleIdleCallback(() => {\n this.#window[this.trackingConfig.dataLayerName].push(data);\n resolve();\n }, this.trackingConfig.dataLayerUpdateTimeoutInMilliseconds);\n } else {\n this.#window[this.trackingConfig.dataLayerName].push(data);\n resolve();\n }\n } else {\n const tracking = this.getDataFromStore();\n tracking.push(data);\n\n this.localStoreService.set(LocalStoreKey.Tracking, JSON.stringify(tracking));\n resolve();\n }\n }\n });\n }\n\n async trackEvents(item: MenuContentItem, eventType: WebAnalyticsEventType) {\n if (item.webAnalytics) {\n try {\n const parsedValue: WebAnalyticsEvents = JSON.parse(item.webAnalytics);\n\n switch (eventType) {\n case WebAnalyticsEventType.load:\n const load = parsedValue?.load;\n\n if (load) {\n await this.triggerEvent(load.eventName, load.data);\n }\n break;\n case WebAnalyticsEventType.click:\n const click = parsedValue?.click;\n\n if (click) {\n if (click.data['component.URLClicked'] === 'link') {\n click.data['component.URLClicked'] = item.url;\n }\n await this.triggerEvent(click.eventName, click.data);\n }\n break;\n case WebAnalyticsEventType.close:\n const close = parsedValue?.close;\n\n if (close) {\n await this.triggerEvent(close.eventName, close.data);\n }\n break;\n }\n } catch (error) {\n this.log.errorRemote(\n `Failed to parse or track WebAnalytics data from item:${item.name}. Provided WebAnalytics data:${item.webAnalytics}`,\n error,\n );\n }\n }\n }\n\n async triggerEvent(eventName: string, data?: any, options?: TrackingServiceOptions): Promise {\n // GTM must be enabled, not only loaded to make sure it's injected into a page via Vanilla's data layer tracking implementation.\n const eventTimeout = this.gtmEnabled ? options?.timeout || this.trackingConfig.eventCallbackTimeoutInMilliseconds : 0;\n\n return this.runWithTimeout(\n new Promise((resolve, reject) => {\n if (eventName.indexOf('error.') === 0) {\n // \"error.*\" eventName is reserved for errors reporting\n return reject('The \"error.*\" eventName is reserved for errors reporting');\n }\n\n if (!data || Object.keys(data).length === 0) {\n return reject('Tracking data is required');\n }\n\n if (eventName === eventNames.userLogout) {\n this.updateUserValues();\n }\n\n data = {\n event: eventName,\n ...data,\n };\n\n if (this.gtmEnabled) {\n data = {\n eventCallback: resolve.bind(null, TriggerEventPromiseResult.Normal),\n eventTimeout,\n ...data,\n };\n }\n\n this.updateDataLayer(data);\n\n // Tracking cleanup\n this.cookieService.remove(CookieName.RedirexOriginal);\n\n // Resolve immediately when GTM is not present (other tag managers don't support event callback)\n if (!this.gtmEnabled) {\n resolve(TriggerEventPromiseResult.Normal);\n }\n }),\n eventTimeout,\n );\n }\n\n async reportErrorObject(error: any) {\n return this.updateDataLayer({\n event: 'error',\n error,\n });\n }\n\n reportError(errorDetail: any) {\n this.updateDataLayer({\n event: encodeURIComponent(`error.${JSON.stringify(errorDetail)}`),\n });\n }\n\n trackContentItemEvent(parameters: { [name: string]: string } | undefined, parameterName: string) {\n const tracking = this.getContentItemTracking(parameters, parameterName);\n\n if (tracking) {\n this.triggerEvent(tracking.event, tracking.data);\n }\n }\n\n setReferrer(referrer: string) {\n this.trackingValueGettersService.setReferrer(referrer);\n }\n\n /**\n * Gets user communication settings and trigger the tracking event `Event.Functionality.Cts`\n * with data formatted as follows: **Email:Yes|Post:No|SMS:Yes|Phone:No**\n */\n updateUserContactabilityStatus() {\n this.apiService.get('communicationsettings').subscribe((data: CommunicationSettings) => {\n const cts = data.settings.map((c: CommunicationType) => `${c.name}:${c.selected ? 'Yes' : 'No'}`).join('|');\n this.triggerEvent('Event.Functionality.Cts', { 'user.profile.cts': cts }); //Format to Send: Email:Yes|Post:No|SMS:Yes|Phone:No.\n });\n }\n\n getContentItemTracking(parameters: { [name: string]: string } | undefined, parameterName: string): ContentItemTracking | null {\n parameters = parameters || {};\n const event = parameters[parameterName];\n\n if (!event) {\n return null;\n }\n\n const trackingDataPrefix = parameterName + '.';\n const data = mapKeys(\n pickBy(parameters, (_: string, k: string) => k.startsWith(trackingDataPrefix)),\n (_: string, k: string) => k.replace(trackingDataPrefix, ''),\n );\n\n return { event, data };\n }\n\n private getDataFromStore(): any[] {\n const trackingData = this.localStoreService.get(LocalStoreKey.Tracking);\n\n return trackingData ? JSON.parse(trackingData) : [];\n }\n\n private processLocalStore() {\n const trackings = this.getDataFromStore();\n\n if (trackings.length > 0) {\n trackings.forEach((data: any) => this.updateDataLayer(data));\n\n this.localStoreService.remove(LocalStoreKey.Tracking);\n }\n }\n\n private runWithTimeout(promise: Promise, timeout: number): Promise {\n return new Promise((resolve, reject) => {\n const timeoutId = this.timerService.scheduleIdleCallback(() => resolve(TriggerEventPromiseResult.Timeout), timeout);\n\n promise.then(\n (result: TriggerEventPromiseResult) => {\n timeoutId();\n resolve(result);\n },\n (error: any) => {\n timeoutId();\n reject(error);\n },\n );\n });\n }\n\n private updateDataLayerEntryInfo() {\n const entryUrl = this.cookieService.get(CookieName.EntryUrl);\n\n if (entryUrl) {\n this.trackingValueGettersService.setEntryUrl(entryUrl);\n this.updateDataLayer({\n event: 'v8Launch',\n v8: {\n tech: {\n build: this.trackingValueGettersService.packageVersion('@frontend/vanilla'),\n label: this.trackingValueGettersService.domain(),\n },\n entry: {\n url: this.trackingValueGettersService.fullEntryUrl().absUrl(),\n path: this.trackingValueGettersService.fullEntryUrl().path(),\n referrer: this.trackingValueGettersService.entryUrlReferrer(),\n utms: {\n source: this.trackingValueGettersService.fullEntryUrl().search.get('utm_source'),\n medium: this.trackingValueGettersService.fullEntryUrl().search.get('utm_medium'),\n campaign: this.trackingValueGettersService.fullEntryUrl().search.get('utm_campaign'),\n content: this.trackingValueGettersService.fullEntryUrl().search.get('utm_content'),\n keyword: this.trackingValueGettersService.fullEntryUrl().search.get('utm_term'),\n },\n },\n },\n });\n }\n }\n\n private updateDataLayerSessionId() {\n if (this.#window.hasOwnProperty('decibelInsight')) {\n this.#window.decibelInsight('ready', () => {\n this.updateDataLayer({ 'user.decibelID': this.#window.decibelInsight('getSessionId') });\n });\n } else {\n this.#window._da_ready = () => {\n this.updateDataLayer({ 'user.decibelID': this.#window.decibelInsight('getSessionId') });\n };\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PageViewContext, PageViewDataProvider, TrackingData } from '@frontend/vanilla/core';\nimport { Observable, of } from 'rxjs';\n\nimport { TrackingValueGettersService } from './tracking-value-getters.service';\n\n@Injectable()\nexport class DefaultPageViewDataProvider implements PageViewDataProvider {\n constructor(private valueGetters: TrackingValueGettersService) {}\n\n getData(context: PageViewContext = { navigationId: 0, utm: null }): Observable {\n let data: Record = {\n 'page.referrer': this.valueGetters.pageReferrer(),\n 'page.url': this.valueGetters.locationAbsUrl(),\n 'page.host': this.valueGetters.locationHost(),\n 'page.pathQueryAndFragment': this.valueGetters.locationPathQueryAndFragment(),\n 'page.name': this.valueGetters.pageName(),\n };\n\n if (this.valueGetters.isTerminal()) {\n data = {\n ...data,\n ...{\n 'page.terminalId': this.valueGetters.terminalId(),\n 'page.terminalType': this.valueGetters.terminalType(),\n 'page.shopId': this.valueGetters.shopId(),\n },\n };\n }\n\n if (context?.utm) {\n for (const key in context.utm) {\n if ((context.utm as any)[key]) {\n data[key.replace('utm_', 'utms.')] = (context.utm as any)[key];\n }\n }\n }\n\n return of(data);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport {\n PAGE_VIEW_DATA_PROVIDER,\n PageViewContext,\n PageViewDataProvider,\n ProductInjector,\n TrackingData,\n TrackingService,\n Utm,\n} from '@frontend/vanilla/core';\nimport { NEVER, Observable, combineLatest, of, race } from 'rxjs';\nimport { catchError, first, map, timeout } from 'rxjs/operators';\n\nimport { TrackingConfig } from './tracking.client-config';\nimport { eventNames } from './tracking.models';\n\nclass PageView {\n data: TrackingData | null;\n\n private dataCallback: (() => void) | undefined;\n\n constructor(dataSource: Observable) {\n dataSource.subscribe((data: TrackingData) => {\n this.data = data;\n\n if (this.dataCallback) {\n this.dataCallback();\n }\n });\n }\n\n onData(fn: () => void) {\n if (this.data) {\n fn();\n } else {\n this.dataCallback = fn;\n }\n }\n}\n\n@Injectable()\nexport class PageViewTrackingService {\n private pageViewQueue: PageView[] = [];\n\n constructor(\n private productInjector: ProductInjector,\n private trackingConfig: TrackingConfig,\n private trackingService: TrackingService,\n @Inject(PAGE_VIEW_DATA_PROVIDER) private currentDataProviders: PageViewDataProvider[],\n ) {}\n\n trackPageView(navigationId: number): void;\n trackPageView(utm: Utm): void;\n trackPageView(utm: Utm, navigationId: number): void;\n trackPageView(...args: any[]): void {\n const navigationId = this.toNumberOrDefault(args[0], this.toNumberOrDefault(args[1], 0));\n const context: PageViewContext = { navigationId, utm: args[0].utm_source === undefined ? {} : args[0] };\n const providers = Object.assign(this.productInjector.getMultiple(PAGE_VIEW_DATA_PROVIDER), this.currentDataProviders);\n const data = combineLatest(\n providers.map((p: PageViewDataProvider) => {\n return race(\n p.getData(context),\n NEVER.pipe(\n timeout(this.trackingConfig.pageViewDataProviderTimeout),\n catchError(() => of({})),\n ),\n ).pipe(first());\n }),\n ).pipe(\n map((data: TrackingData[]) => {\n return Object.assign({}, ...data);\n }),\n );\n const pageView = new PageView(data);\n this.pageViewQueue.push(pageView);\n\n pageView.onData(() => this.processPageViewQueue());\n }\n\n private processPageViewQueue() {\n while (true) {\n const pageView = this.pageViewQueue[0];\n\n if (!pageView || !pageView.data) {\n break;\n }\n this.trackingService.triggerEvent(eventNames.pageView, pageView.data);\n this.pageViewQueue.shift();\n }\n }\n\n private toNumberOrDefault = (v: any, d: number) => {\n const value = Number(v);\n\n return isNaN(value) ? d : v;\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type RunAfterLcpType = {\n runAfterLcp(fn: () => void): void;\n};\nexport const RUN_AFTER_LCP_TOKEN = new InjectionToken('lcp-token', {\n providedIn: 'root',\n factory: () => ({\n runAfterLcp(fn: () => void) {\n fn();\n },\n }),\n});\n","import { Injectable, inject } from '@angular/core';\n\nimport { TagManagerService, TimerService, WINDOW } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { RUN_AFTER_LCP_TOKEN } from './run-after-lcp.token';\nimport { TrackingConfig } from './tracking.client-config';\n\n@Injectable({ providedIn: 'root' })\nexport class GtmService {\n readonly #window = inject(WINDOW);\n private tagManagerService = inject(TagManagerService);\n private timerService = inject(TimerService);\n private gtmConfig = inject(TrackingConfig);\n private runAfterLcpToken = inject(RUN_AFTER_LCP_TOKEN);\n\n async renderGTMTag() {\n await firstValueFrom(this.gtmConfig.whenReady);\n if (this.gtmConfig?.enableGTM) {\n if (this.#window.partytown) {\n this.loadGTM();\n } else {\n this.runAfterLcpToken.runAfterLcp(() => {\n this.timerService.scheduleIdleCallback(() => this.loadGTM(), this.gtmConfig.delayGTM);\n });\n }\n }\n }\n\n private async loadGTM() {\n await firstValueFrom(this.tagManagerService.whenReady);\n this.tagManagerService.loadPartyTownGTM();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { TimerService, WINDOW, WindowEvent } from '@frontend/vanilla/core';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport { firstValueFrom } from 'rxjs';\n\nimport { TrackingConfig } from './tracking.client-config';\n\n@Injectable({ providedIn: 'root' })\nexport class DataLayerProxyService {\n private trackingConfig = inject(TrackingConfig);\n private timerService = inject(TimerService);\n private strategyProvider = inject(RxStrategyProvider);\n readonly #window = inject(WINDOW);\n\n private requiredEvents = [\n WindowEvent.VanillaGtmLoaded,\n WindowEvent.GtmLoad,\n 'webVital',\n 'gtm.js',\n 'webVital',\n 'OptanonLoaded',\n 'OneTrustLoaded',\n 'OneTrustGroupsUpdated',\n ];\n private patched = false;\n private schedulerEnabled = false;\n\n async patchDataLayer(forceSchedulerDisabled = false) {\n await firstValueFrom(this.trackingConfig.whenReady);\n this.schedulerEnabled = !forceSchedulerDisabled && this.trackingConfig.schedulerEnabled;\n\n if (\n !this.patched &&\n this.trackingConfig.isEnabled &&\n (this.trackingConfig.enableLogging || this.schedulerEnabled || this.trackingConfig.enableOmitting)\n ) {\n this.#window[this.trackingConfig.dataLayerName] = this.createDataLayerProxy(this.#window[this.trackingConfig.dataLayerName]);\n this.patched = true;\n }\n }\n\n // this proxy is here to make sure the `requestIdleCallback` is always\n // wrapped around the most outer function call\n // all gtm containers apply monkey-patches to the dataLayer.push method\n // while respecting already applied patches\n // we end up in a chain of overridden function bodies\n // to make sure the `requestIdleCallback` is the most outer function\n // we use a Proxy that keeps track of overrides to the `push` method\n private createDataLayerProxy(origDataLayer = []) {\n const idleWrapper = (fn: Function) => {\n this.timerService.scheduleIdleCallback(() => {\n // make sure that tracking is executed after the render queue is empty\n this.strategyProvider\n .schedule(() => fn(), {\n patchZone: false,\n strategy: 'idle',\n })\n .subscribe();\n }, this.trackingConfig.trackingDelay);\n\n return origDataLayer.length + 1;\n };\n\n const { enableOmitting, omitAll, enableLogging } = this.trackingConfig;\n const schedulerEnabled = this.schedulerEnabled;\n const blockDevice = this.trackingConfig.deviceBlockEnabled && this.isLowTierDevice();\n const isNextCallSuppressed = this.isNextCallSuppressed.bind(this);\n const allowlist = new Set(...(this.trackingConfig.allowlist || []), ...this.requiredEvents);\n const blocklist = new Set(this.trackingConfig.blocklist || []);\n const window = this.#window;\n const measureTask = measureTaskDuration;\n\n return new Proxy(origDataLayer, {\n set(target, key, newValue: unknown) {\n if (key === 'push') {\n target[key] = (...args: any) => {\n const eventName = args?.[0]?.event;\n\n const shouldBeOmitted =\n // check if omitting feature is enabled\n enableOmitting &&\n // not in allowlist\n !allowlist.has(eventName) &&\n // omit all OR in blocklist OR low tier device blocking enabled and device is slow OR percentage blocking enabled and event got in range\n (omitAll || blocklist.has(eventName) || blockDevice || isNextCallSuppressed());\n\n if (shouldBeOmitted) {\n return () => 0;\n }\n\n const callback: Function = () => {\n const work = (newValue as Function).bind(target, ...args);\n\n if (enableLogging || window.logTrackingPerformance) {\n return measureTask(work, args, eventName);\n }\n return work();\n };\n\n return schedulerEnabled ? idleWrapper(callback) : callback();\n };\n } else {\n target[key as any] = newValue;\n }\n\n return true;\n },\n });\n }\n\n private isLowTierDevice(): boolean {\n const deviceConcurrency = navigator.hardwareConcurrency;\n const minDeviceConcurrency = this.trackingConfig.deviceConcurrency;\n\n if (minDeviceConcurrency && deviceConcurrency && deviceConcurrency <= minDeviceConcurrency) {\n return true;\n }\n\n const minDeviceMemory = this.trackingConfig.deviceMemory;\n const deviceMemory = (navigator as { deviceMemory?: number }).deviceMemory;\n\n if (minDeviceMemory && deviceMemory && deviceMemory <= minDeviceMemory) {\n return true;\n }\n\n const benchmarkThreshold = this.trackingConfig.benchmarkThreshold;\n\n return !!(benchmarkThreshold && benchmark() > benchmarkThreshold);\n }\n\n private isNextCallSuppressed(): boolean {\n const omitPercentage = this.trackingConfig.omitPercentage;\n\n return !!omitPercentage && Math.random() * 100 <= omitPercentage;\n }\n}\n\nfunction isPrime(num: number): boolean {\n for (let i = 2, s = Math.sqrt(num); i <= s; i++) {\n if (num % i === 0) {\n return false;\n }\n }\n\n return num > 1;\n}\n\nfunction calculatePrimes(max: number): number[] {\n const primes: number[] = [];\n\n for (let i = 1; i < max; i++) {\n if (isPrime(i)) {\n primes.push(i);\n }\n }\n\n return primes;\n}\n\nfunction benchmark(): number {\n const start = performance.now();\n calculatePrimes(20_000);\n\n return performance.now() - start;\n}\n\nfunction measureTaskDuration(work: Function, args: unknown, eventName: string) {\n const startTime = performance.now();\n const name = eventName || '[anonymous event]';\n const startMark = `GTM Event ${name} start`;\n performance.mark(`GTM Event ${name} start`);\n const r = work();\n const endMark = `GTM Event ${name} end`;\n performance.mark(endMark);\n performance.measure(`GTM Event ${name}`, startMark, endMark);\n const endTime = performance.now();\n\n const runtime = Math.ceil(endTime - startTime);\n const color = runtime >= 100 ? 'red' : 'green';\n\n // eslint-disable-next-line no-console\n console.log(`Analytics tracking: ${name} took %c${runtime}ms`, `color: ${color}`, {\n withArgs: args,\n });\n\n return r;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, Injector, effect, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { CookieService, DeviceService, NavigationService, WINDOW } from '@frontend/vanilla/core';\nimport { debounceTime, distinctUntilChanged, fromEvent, interval, map, merge, startWith, switchMap } from 'rxjs';\n\nconst eventQueueKey = '_ptEventsQueue';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PartytownService {\n private deviceService = inject(DeviceService);\n private injector = inject(Injector);\n private navigationService = inject(NavigationService);\n private cookieService = inject(CookieService);\n private router = inject(Router);\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n private navigator = this.#window.navigator;\n private performance = this.#window.performance;\n\n readonly sharedStorageEnabled =\n this.#window.partytown &&\n this.#window.partytown.forward.some(\n (forward: string | [string, unknown]) =>\n forward === 'ptSharedStorage.set' || (Array.isArray(forward) && forward[0] === 'ptSharedStorage.set'),\n );\n readonly cookieStorageEnabled =\n this.#window.partytown &&\n this.#window.partytown.forward.some(\n (forward: string | [string, unknown]) =>\n forward === 'ptCookieStorage.set' || (Array.isArray(forward) && forward[0] === 'ptCookieStorage.set'),\n );\n\n private readonly ptSharedStorage: {\n set: (key: string, value: any) => void;\n } = this.#window.ptSharedStorage ?? {\n set: () => {},\n };\n\n private readonly ptWorkerLocation: {\n set: (location: Location) => void;\n } = this.#window.ptWorkerLocation ?? {\n set: () => {},\n };\n\n private readonly ptCookieStorage: {\n set: (cookies: string) => void;\n } = this.#window.ptCookieStorage ?? {\n set: () => {},\n };\n\n createEventReplayQueue() {\n const dataLayer = this.#window.dataLayer || [];\n replayEvents(dataLayer);\n const origPush = dataLayer.push;\n\n dataLayer.push = (...args: any) => {\n addToQueue(JSON.stringify(args));\n return origPush.apply(dataLayer, args);\n };\n }\n\n feedSharedStorage() {\n if (this.sharedStorageEnabled) {\n this.setStaticProps();\n\n this.createDimensionsEffect();\n\n this.subscribeToDynamicProps();\n }\n }\n\n feedCookieStorage() {\n if (this.cookieStorageEnabled) {\n this.cookieService.getCookieUpdates().subscribe((value) => {\n this.ptCookieStorage.set(value);\n });\n }\n }\n\n private getWindowOffsetUpdates() {\n return fromEvent(this.#window, 'scroll').pipe(debounceTime(50));\n }\n\n private setStaticProps() {\n // window props\n // ToDo: check if this patch doesn't break tracking\n // this.ptSharedStorage.set('window.opener', this.#window.opener);\n\n // document props\n this.ptSharedStorage.set('document.characterSet', this._doc.characterSet);\n this.ptSharedStorage.set('document.referrer', this._doc.referrer);\n this.ptSharedStorage.set('document.domain', this._doc.domain);\n // this.ptSharedStorage.set('document.prerendering', (this._doc as any).prerendering);\n\n // navigator props\n this.ptSharedStorage.set('window.navigator.loadPurpose', (this.navigator as any).loadPurpose);\n // this.ptSharedStorage.set('window.navigator.userLanguage', (this.navigator as any).userLanguage);\n this.ptSharedStorage.set('window.navigator.cookieEnabled', this.navigator.cookieEnabled);\n this.ptSharedStorage.set('window.navigator.cookieDeprecationLabel', (this.navigator as any).cookieDeprecationLabel);\n this.ptSharedStorage.set('window.navigator.vendor', this.navigator.vendor);\n this.ptSharedStorage.set('window.navigator.doNotTrack', this.navigator.doNotTrack);\n this.ptSharedStorage.set('window.navigator.maxTouchPoints', this.navigator.maxTouchPoints);\n this.ptSharedStorage.set('window.navigator.msDoNotTrack', (this.navigator as any)['msDoNotTrack']);\n\n // perf timings\n this.ptSharedStorage.set('performance.timeOrigin', this.performance.timeOrigin);\n this.ptSharedStorage.set('performancetiming.navigationStart', this.performance.timing.navigationStart);\n this.ptSharedStorage.set('performancetiming.redirectStart', this.performance.timing.redirectStart);\n this.ptSharedStorage.set('performancetiming.redirectEnd', this.performance.timing.redirectEnd);\n this.ptSharedStorage.set('performancetiming.fetchStart', this.performance.timing.fetchStart);\n this.ptSharedStorage.set('performancetiming.domainLookupStart', this.performance.timing.domainLookupStart);\n this.ptSharedStorage.set('performancetiming.domainLookupEnd', this.performance.timing.domainLookupEnd);\n this.ptSharedStorage.set('performancetiming.connectStart', this.performance.timing.connectStart);\n this.ptSharedStorage.set('performancetiming.secureConnectionStart', this.performance.timing.secureConnectionStart);\n this.ptSharedStorage.set('performancetiming.connectEnd', this.performance.timing.connectEnd);\n this.ptSharedStorage.set('performancetiming.requestStart', this.performance.timing.requestStart);\n this.ptSharedStorage.set('performancetiming.responseStart', this.performance.timing.responseStart);\n this.ptSharedStorage.set('performancetiming.responseEnd', this.performance.timing.responseEnd);\n this.ptSharedStorage.set('performancetiming.unloadEventStart', this.performance.timing.unloadEventStart);\n this.ptSharedStorage.set('performancetiming.unloadEventEnd', this.performance.timing.unloadEventEnd);\n this.ptSharedStorage.set('performancetiming.domLoading', this.performance.timing.domLoading);\n this.ptSharedStorage.set('performancetiming.domInteractive', this.performance.timing.domInteractive);\n this.ptSharedStorage.set('performancetiming.domContentLoadedEventStart', this.performance.timing.domContentLoadedEventStart);\n this.ptSharedStorage.set('performancetiming.domContentLoadedEventEnd', this.performance.timing.domContentLoadedEventEnd);\n this.ptSharedStorage.set('performancetiming.domComplete', this.performance.timing.domComplete);\n this.ptSharedStorage.set('performancetiming.loadEventStart', this.performance.timing.loadEventStart);\n this.ptSharedStorage.set('performancetiming.loadEventEnd', this.performance.timing.loadEventEnd);\n }\n\n private createDimensionsEffect() {\n effect(\n () => {\n const windowRect = this.deviceService.windowRect();\n const screenHeight = this.deviceService.visualViewportHeight();\n const screenWidth = this.deviceService.visualViewportWidth();\n\n // dimensions\n this.ptSharedStorage.set('screen.width', screenWidth);\n this.ptSharedStorage.set('screen.colorDepth', screen.colorDepth);\n this.ptSharedStorage.set('html.clientWidth', windowRect.width);\n this.ptSharedStorage.set('html.innerWidth', screenWidth);\n this.ptSharedStorage.set('html.scrollWidth', windowRect.width);\n this.ptSharedStorage.set('html.offsetWidth', windowRect.width);\n this.ptSharedStorage.set('html.offsetHeight', windowRect.height);\n this.ptSharedStorage.set('screen.height', screenHeight);\n this.ptSharedStorage.set('body.offsetHeight', windowRect.height);\n this.ptSharedStorage.set('body.scrollHeight', windowRect.height);\n this.ptSharedStorage.set('html.clientHeight', screenHeight);\n this.ptSharedStorage.set('html.innerHeight', screenHeight);\n this.ptSharedStorage.set('html.scrollHeight', windowRect.height);\n this.ptSharedStorage.set('window.innerWidth', windowRect.width);\n this.ptSharedStorage.set('window.innerHeight', windowRect.height);\n },\n { injector: this.injector },\n );\n }\n\n private subscribeToDynamicProps() {\n this.navigationService.locationChange\n .pipe(\n switchMap(() =>\n merge(\n // whenever queryParams change, update the route\n this.router.routerState.root.queryParamMap.pipe(startWith(this.router.routerState.root.snapshot.queryParamMap)),\n // We have to do polling here, as the angular router doesn't send us ANY\n // information that e.g. ?tab=score or ?market=5 changed\n // for the current hotfix state this is fine!\n interval(2500),\n ),\n ),\n startWith(true),\n map(() => this.#window.location.href),\n distinctUntilChanged(),\n )\n .subscribe(() => {\n this.ptWorkerLocation.set(this.#window.location);\n this.ptSharedStorage.set('document.title', this._doc.title);\n this.ptSharedStorage.set('window.location', this.#window.location);\n });\n\n this.getWindowOffsetUpdates()\n .pipe(startWith(true))\n .subscribe(() => {\n this.ptSharedStorage.set('window.pageYOffset', this.#window.pageYOffset);\n this.ptSharedStorage.set('window.scrollY', this.#window.scrollY);\n });\n }\n}\n\nconst getEventsQueue = (): string[] => {\n try {\n const savedEventsItem = localStorage.getItem(eventQueueKey);\n return savedEventsItem ? JSON.parse(savedEventsItem) : [];\n } catch (error) {\n console.error('Failed to parse events queue:', error);\n return [];\n }\n};\n\nconst addToQueue = (event: string) => {\n try {\n const eventsQueue = getEventsQueue();\n eventsQueue.push(event);\n localStorage.setItem(eventQueueKey, JSON.stringify(eventsQueue));\n } catch (error) {\n console.error('Failed to store event in a queue:', error);\n }\n};\n\nconst replayEvents = (dataLayer: unknown[]) => {\n try {\n const eventsQueue = getEventsQueue();\n\n eventsQueue.forEach((event) => {\n const parsedArgs = JSON.parse(event);\n dataLayer.push(...parsedArgs);\n });\n } catch (error) {\n console.error('Failed to restore events:', error);\n }\n\n localStorage.removeItem(eventQueueKey);\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, NgZone, inject } from '@angular/core';\n\nimport { WINDOW, WindowEvent } from '@frontend/vanilla/core';\nimport { fromEvent, take } from 'rxjs';\n\nimport { DataLayerProxyService } from './data-layer-proxy.service';\nimport { PartytownService } from './partytown.service';\nimport { TrackingConfig } from './tracking.client-config';\nimport { ClientTagManager } from './tracking.models';\n\n/**\n * @whatItDoes Injects all configured client-side tag manager scripts into the DOM.\n *\n * @description\n *\n * Client-side tag managers can be configured using TrackingConfig.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TagManagerService {\n private readonly _doc = inject(DOCUMENT);\n readonly #window = inject(WINDOW);\n private partytownService = inject(PartytownService);\n\n /**\n * @internal\n */\n constructor(\n private trackingConfig: TrackingConfig,\n private dataLayerProxy: DataLayerProxyService,\n private ngZone: NgZone,\n ) {}\n\n /** @internal */\n init() {\n if (!this.trackingConfig.isEnabled) {\n return;\n }\n\n const configured = this.trackingConfig.clientTagManagers || [];\n const excludes = this.trackingConfig.clientInjectionExcludes || [];\n\n configured.filter((current) => !excludes.includes(current.name)).forEach((current) => this.injectScript(current));\n }\n\n /** @stable */\n get availableClientTagManagers(): string[] {\n return (this.trackingConfig.clientTagManagers || []).map((t: ClientTagManager) => t.name);\n }\n\n /** Adds a tag manager init script for the given tag managerer renderer name to the script unless present.\n *\n * @stable\n */\n async load(rendererName: string, type?: string): Promise {\n const configured = this.trackingConfig.clientTagManagers || [];\n const tagManager = configured.find((current) => current.name === rendererName);\n\n if (!tagManager) {\n throw new Error(`Client TagManager \"${rendererName}\" does not exist.`);\n }\n\n const existing = this._doc.querySelector('#' + tagManager.name);\n\n if (existing) {\n return existing;\n }\n\n const forceSchedulerDisabled = type === 'text/partytown';\n\n await this.dataLayerProxy.patchDataLayer(forceSchedulerDisabled);\n return this.injectScript(tagManager, type);\n }\n\n private injectScript(tagManager: ClientTagManager, type = 'text/javascript'): Promise {\n const id = tagManager.name;\n const script = this._doc.createElement('script');\n script.async = true;\n script.id = id;\n script.text = tagManager.script;\n script.type = type;\n\n const promise = new Promise((resolve, reject) => {\n script.onload = () => resolve(script);\n script.onerror = () => reject(new Error(`Client TagManager \"${id}\" failed to load.`));\n });\n\n this._doc.body.append(script);\n\n return promise;\n }\n\n public loadPartyTownGTM() {\n const isDisabledLocally = localStorage.getItem('partytown-disabled') === '1';\n const isServiceWorkerSupported = 'serviceWorker' in navigator;\n if (isServiceWorkerSupported && !isDisabledLocally && this.#window.partytown && this.#window._ptReady) {\n this.#window._ptReady\n .then(() => {\n this.#window.dataLayer = this.#window.dataLayer ?? [];\n this.ngZone.runOutsideAngular(() => {\n this.partytownService.feedSharedStorage();\n this.partytownService.feedCookieStorage();\n fromEvent(this._doc, 'gtm_loaded')\n .pipe(take(1))\n .subscribe(() => {\n // tell tracking system gtm was loaded\n this.push({ event: WindowEvent.VanillaGtmLoaded });\n this.push({ event: WindowEvent.GtmLoad });\n if (this.#window.partytown.enableEventReplay) {\n setTimeout(() => {\n this.partytownService.createEventReplayQueue();\n }, 5000);\n }\n });\n\n this.load('GoogleTagManagerRenderer', 'text/partytown');\n\n if (this._doc.readyState === 'complete') {\n // we need to do that async, as the script injection also is async\n setTimeout(() => this.#window.dispatchEvent(new CustomEvent('ptupdate')));\n } else {\n this.#window.addEventListener('load', () => {\n setTimeout(() => {\n // notify partytown that we've added a new script\n this.#window.dispatchEvent(new CustomEvent('ptupdate'));\n });\n });\n }\n });\n })\n .catch(() => {\n this.load('GoogleTagManagerRenderer');\n });\n } else {\n this.load('GoogleTagManagerRenderer');\n }\n }\n\n private push(payload: object) {\n if (this.#window.dataLayer) {\n const dataLayer = this.#window.dataLayer;\n // workaround to don't trigger dataLayer.push\n // since it is patched by partytown and unnecessarily propagates data to the worker\n dataLayer[dataLayer.length] = payload;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { UrlService, Utm } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtmService {\n public static storageKey: string = 'utm';\n\n constructor(private urlService: UrlService) {}\n\n parseFromUrl(url: string): Utm {\n const queryParameters = this.urlService.parse(url).search;\n\n const utm: Utm = {\n utm_source: '',\n utm_medium: '',\n utm_campaign: '',\n utm_term: '',\n utm_content: '',\n utm_keyword: '',\n };\n\n queryParameters.keys().forEach((key) => {\n const value = queryParameters.get(key);\n if (key in utm && value !== null) {\n (utm as any)[key] = value;\n }\n });\n\n return utm;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, inject } from '@angular/core';\n\nimport {\n DeviceService,\n LocationChangeEvent,\n NavigationService,\n OnFeatureInit,\n TRACKING_SERVICE_PROVIDER,\n TagManagerService as TagManagerCoreService,\n TrackingService,\n TrackingServiceProvider,\n UserEvent,\n UserLoginEvent,\n UserService,\n WINDOW,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { GtmService } from './gtm.service';\nimport { PageViewTrackingService } from './page-view-tracking.service';\nimport { TagManagerService } from './tag-manager.service';\nimport { TrackingValueGettersService } from './tracking-value-getters.service';\nimport { TrackingConfig } from './tracking.client-config';\nimport { UtmService } from './utm-service';\n\n@Injectable()\nexport class TrackingBootstrapService implements OnFeatureInit {\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n private gtmService = inject(GtmService);\n\n constructor(\n private navigationService: NavigationService,\n private pageViewTrackingService: PageViewTrackingService,\n private user: UserService,\n private trackingConfig: TrackingConfig,\n private tagManagerService: TagManagerService,\n private valueGetters: TrackingValueGettersService,\n private utmService: UtmService,\n private deviceService: DeviceService,\n private trackingService: TrackingService,\n private tagManagerCoreService: TagManagerCoreService,\n @Inject(TRACKING_SERVICE_PROVIDER) private trackingServiceProvider: TrackingServiceProvider,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.trackingConfig.whenReady);\n if (!this.trackingConfig.isEnabled) {\n return;\n }\n\n this.gtmService.renderGTMTag();\n\n this.tagManagerCoreService.set(this.tagManagerService);\n this.trackingService.set(this.trackingServiceProvider);\n\n await this.trackingService.addInitialValues();\n\n // Browser data\n this.trackingServiceProvider.updateDataLayer({\n 'browser.screenResolution': this.valueGetters.browserScreenResolution(),\n });\n\n this.deviceService.orientation.subscribe(() => {\n this.trackingServiceProvider.updateDataLayer({\n 'browser.orientation': this.valueGetters.browserOrientation(),\n });\n });\n\n this.trackingServiceProvider.setReferrer(this._doc.referrer);\n this.pageViewTrackingService.trackPageView(this.utmService.parseFromUrl(this.#window.location.href));\n this.navigationService.locationChange.subscribe((e: LocationChangeEvent) => {\n if (e.previousUrl === e.nextUrl) {\n return;\n }\n\n this.trackingServiceProvider.setReferrer(e.previousUrl);\n this.pageViewTrackingService.trackPageView(this.utmService.parseFromUrl(e.nextUrl), e.id);\n });\n\n this.user.events.pipe(first((e: UserEvent) => e instanceof UserLoginEvent)).subscribe(() => {\n this.trackingServiceProvider.updateUserContactabilityStatus();\n });\n this.tagManagerService.init();\n }\n}\n","import { PAGE_VIEW_DATA_PROVIDER, TRACKING_SERVICE_PROVIDER, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { DataLayerTrackingService } from './data-layer-tracking.service';\nimport { DefaultPageViewDataProvider } from './page-view-data-provider';\nimport { PageViewTrackingService } from './page-view-tracking.service';\nimport { TrackingBootstrapService } from './tracking-bootstrap.service';\n\nexport function provide() {\n return [\n { provide: PAGE_VIEW_DATA_PROVIDER, useClass: DefaultPageViewDataProvider, multi: true },\n { provide: TRACKING_SERVICE_PROVIDER, useClass: DataLayerTrackingService },\n PageViewTrackingService,\n runOnFeatureInit(TrackingBootstrapService),\n ];\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService, MenuContentItem } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'vnProductMenu', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: productMenuContentFactory,\n})\nexport class ProductMenuConfig extends LazyClientConfigBase {\n tabs: MenuContentItem;\n apps: MenuContentItem;\n menu: MenuContentItem;\n header: MenuContentItem;\n numberOfApps: number;\n routerMode: boolean;\n v2: boolean;\n animateV1: boolean;\n hideTabsV1: boolean;\n showCloseButtonAsText: boolean;\n headerBarCssClass: string;\n closeButtonTextCssClass: string;\n}\n\nexport function productMenuContentFactory(service: LazyClientConfigService) {\n return service.get(ProductMenuConfig);\n}\n","import { Injectable, Type, signal } from '@angular/core';\n\nimport {\n DslService,\n EventsService,\n MenuContentItem,\n MenuItemsService,\n MenuSection,\n SessionStoreService,\n VanillaEventNames,\n} from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\n\nimport { ProductMenuConfig } from './product-menu.client-config';\n\nconst ProductMenuReturnUrlKey = 'vn.ProductMenuReturnUrl';\n\n/**\n * @whatItDoes Provides functionality to manipulate the product menu.\n *\n * @description\n *\n * # Overview\n *\n * This service provides functionality for manipulating the product menu:\n * - Toggle the menu\n * - Switch tab\n * - Open the menu as a page base on a route\n * - Set counter for menu item\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductMenuService {\n readonly apps = signal(null);\n readonly childTabs = signal(null);\n\n get initialized(): Observable {\n return this.initializedEvents;\n }\n\n get currentTab(): Observable {\n return this.tabEvents;\n }\n\n get routerModeReturnUrl(): string | null {\n return this.sessionStoreService.get(ProductMenuReturnUrlKey);\n }\n\n get routerMode(): boolean {\n return this.productMenuConfig.routerMode;\n }\n\n get v2(): boolean {\n return this.productMenuConfig.v2;\n }\n\n get content(): Observable {\n return this.contentEvents;\n }\n\n get tabCount(): number {\n return this.tabs.size;\n }\n\n private readonly childTabs$$ = new ReplaySubject(1);\n readonly childTabs$ = this.childTabs$$.asObservable();\n\n private readonly apps$$ = new ReplaySubject(1);\n readonly apps$ = this.apps$$.asObservable();\n\n private tabEvents = new BehaviorSubject(null);\n private productMenuComponents = new Map>();\n private contentEvents = new ReplaySubject(1);\n private tabs: Map = new Map();\n private initializedEvents: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private menuItemsService: MenuItemsService,\n private eventsService: EventsService,\n private productMenuConfig: ProductMenuConfig,\n private sessionStoreService: SessionStoreService,\n private dslService: DslService,\n ) {}\n\n init() {\n if (this.v2) {\n this.dslService.evaluateContent(this.productMenuConfig.menu).subscribe((c) => {\n this.initTabs(c);\n this.contentEvents.next(c);\n });\n } else {\n this.initTabs(this.productMenuConfig.tabs);\n\n if (this.productMenuConfig.tabs && this.productMenuConfig.tabs.children) {\n this.dslService.evaluateContent(this.productMenuConfig.tabs.children).subscribe((childTabs: MenuContentItem[]) => {\n this.childTabs$$.next(childTabs);\n this.childTabs.set(childTabs);\n });\n }\n\n this.dslService.evaluateContent(this.productMenuConfig.apps).subscribe((apps: MenuContentItem) => {\n this.apps$$.next(apps);\n this.apps.set(apps);\n });\n }\n }\n\n openTab(tabName: string | null) {\n const tab = (tabName && this.tabs.get(tabName)) || null;\n\n if (this.v2) {\n this.menuItemsService.setActive(MenuSection.ProductMenu, tab ? tab.name : null);\n } else {\n this.menuItemsService.setActive(MenuSection.ProductMenuTop, tab ? tab.name : null);\n }\n\n this.tabEvents.next(tab);\n }\n\n isTab(item: MenuContentItem): boolean {\n const tab = this.tabs.get(item.name);\n\n return tab === item;\n }\n\n setTabItemCounter(tabName: string, count: any, cssClass?: string) {\n this.menuItemsService.setCounter(this.v2 ? MenuSection.ProductMenu : MenuSection.ProductMenuTop, tabName, count, cssClass);\n }\n\n setItemCounter(itemName: string, count: any, cssClass?: string) {\n this.menuItemsService.setCounter(MenuSection.ProductMenu, itemName, count, cssClass);\n }\n\n /** Set a component type for menu item type. */\n setProductMenuComponent(itemType: string, component: Type) {\n this.productMenuComponents.set(itemType, component);\n }\n\n /** Gets a component type for menu item type. */\n getProductMenuComponent(itemType: string | undefined): Type | null {\n itemType = itemType || 'default';\n\n return this.productMenuComponents.get(itemType) || null;\n }\n\n /** Set a description text and cssClass of the product menu item. If descriptionCssClass is null it will falback to default css class used. */\n setItemDescription(itemName: string, description: string | null, descriptionCssClass: string | null) {\n this.menuItemsService.setDescription(MenuSection.ProductMenu, itemName, description);\n this.menuItemsService.setDescriptionCssClass(MenuSection.ProductMenu, itemName, descriptionCssClass);\n }\n\n /** toggle */\n toggle(\n open?: boolean,\n options?: {\n initialTab?: string;\n animateFrom?: 'left' | 'bottom';\n disableCloseAnimation?: boolean;\n },\n ) {\n this.eventsService.raise({\n eventName: VanillaEventNames.ProductMenuToggle,\n data: {\n open,\n options,\n },\n });\n }\n\n private initTabs(menu: MenuContentItem) {\n this.tabs.clear();\n\n const tabs = this.v2 ? menu.children.find((c: MenuContentItem) => c.name === 'tabs') : menu;\n\n if (tabs?.children) {\n tabs.children.forEach((c: MenuContentItem) => this.tabs.set(c.name, c));\n }\n\n this.initializedEvents.next(true);\n }\n}\n","/**\n * @license Angular v19.2.1\n * (c) 2010-2025 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, Injector, ɵRuntimeError, ɵChangeDetectionScheduler, Injectable, InjectionToken, ɵperformanceMarkFeature, makeEnvironmentProviders, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser';\nconst ANIMATION_PREFIX = '@';\nlet AsyncAnimationRendererFactory = /*#__PURE__*/(() => {\n class AsyncAnimationRendererFactory {\n doc;\n delegate;\n zone;\n animationType;\n moduleImpl;\n _rendererFactoryPromise = null;\n scheduler = null;\n injector = inject(Injector);\n loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true\n });\n _engine;\n /**\n *\n * @param moduleImpl allows to provide a mock implmentation (or will load the animation module)\n */\n constructor(doc, delegate, zone, animationType, moduleImpl) {\n this.doc = doc;\n this.delegate = delegate;\n this.zone = zone;\n this.animationType = animationType;\n this.moduleImpl = moduleImpl;\n }\n /** @nodoc */\n ngOnDestroy() {\n // When the root view is removed, the renderer defers the actual work to the\n // `TransitionAnimationEngine` to do this, and the `TransitionAnimationEngine` doesn't actually\n // remove the DOM node, but just calls `markElementAsRemoved()`. The actual DOM node is not\n // removed until `TransitionAnimationEngine` \"flushes\".\n // Note: we already flush on destroy within the `InjectableAnimationEngine`. The injectable\n // engine is not provided when async animations are used.\n this._engine?.flush();\n }\n /**\n * @internal\n */\n loadImpl() {\n // Note on the `.then(m => m)` part below: Closure compiler optimizations in g3 require\n // `.then` to be present for a dynamic import (or an import should be `await`ed) to detect\n // the set of imported symbols.\n const loadFn = () => this.moduleImpl ?? import('@angular/animations/browser').then(m => m);\n let moduleImplPromise;\n if (this.loadingSchedulerFn) {\n moduleImplPromise = this.loadingSchedulerFn(loadFn);\n } else {\n moduleImplPromise = loadFn();\n }\n return moduleImplPromise.catch(e => {\n throw new ɵRuntimeError(5300 /* RuntimeErrorCode.ANIMATION_RENDERER_ASYNC_LOADING_FAILURE */, (typeof ngDevMode === 'undefined' || ngDevMode) && 'Async loading for animations package was ' + 'enabled, but loading failed. Angular falls back to using regular rendering. ' + \"No animations will be displayed and their styles won't be applied.\");\n }).then(({\n ɵcreateEngine,\n ɵAnimationRendererFactory\n }) => {\n // We can't create the renderer yet because we might need the hostElement and the type\n // Both are provided in createRenderer().\n this._engine = ɵcreateEngine(this.animationType, this.doc);\n const rendererFactory = new ɵAnimationRendererFactory(this.delegate, this._engine, this.zone);\n this.delegate = rendererFactory;\n return rendererFactory;\n });\n }\n /**\n * This method is delegating the renderer creation to the factories.\n * It uses default factory while the animation factory isn't loaded\n * and will rely on the animation factory once it is loaded.\n *\n * Calling this method will trigger as side effect the loading of the animation module\n * if the renderered component uses animations.\n */\n createRenderer(hostElement, rendererType) {\n const renderer = this.delegate.createRenderer(hostElement, rendererType);\n if (renderer.ɵtype === 0 /* AnimationRendererType.Regular */) {\n // The factory is already loaded, this is an animation renderer\n return renderer;\n }\n // We need to prevent the DomRenderer to throw an error because of synthetic properties\n if (typeof renderer.throwOnSyntheticProps === 'boolean') {\n renderer.throwOnSyntheticProps = false;\n }\n // Using a dynamic renderer to switch the renderer implementation once the module is loaded.\n const dynamicRenderer = new DynamicDelegationRenderer(renderer);\n // Kick off the module loading if the component uses animations but the module hasn't been\n // loaded yet.\n if (rendererType?.data?.['animation'] && !this._rendererFactoryPromise) {\n this._rendererFactoryPromise = this.loadImpl();\n }\n this._rendererFactoryPromise?.then(animationRendererFactory => {\n const animationRenderer = animationRendererFactory.createRenderer(hostElement, rendererType);\n dynamicRenderer.use(animationRenderer);\n this.scheduler ??= this.injector.get(ɵChangeDetectionScheduler, null, {\n optional: true\n });\n this.scheduler?.notify(10 /* NotificationSource.AsyncAnimationsLoaded */);\n }).catch(e => {\n // Permanently use regular renderer when loading fails.\n dynamicRenderer.use(renderer);\n });\n return dynamicRenderer;\n }\n begin() {\n this.delegate.begin?.();\n }\n end() {\n this.delegate.end?.();\n }\n whenRenderingDone() {\n return this.delegate.whenRenderingDone?.() ?? Promise.resolve();\n }\n /**\n * Used during HMR to clear any cached data about a component.\n * @param componentId ID of the component that is being replaced.\n */\n componentReplaced(componentId) {\n // Flush the engine since the renderer destruction waits for animations to be done.\n this._engine?.flush();\n this.delegate.componentReplaced?.(componentId);\n }\n static ɵfac = function AsyncAnimationRendererFactory_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AsyncAnimationRendererFactory,\n factory: AsyncAnimationRendererFactory.ɵfac\n });\n }\n return AsyncAnimationRendererFactory;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * The class allows to dynamicly switch between different renderer implementations\n * by changing the delegate renderer.\n */\nclass DynamicDelegationRenderer {\n delegate;\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n replay = [];\n ɵtype = 1 /* AnimationRendererType.Delegated */;\n constructor(delegate) {\n this.delegate = delegate;\n }\n use(impl) {\n this.delegate = impl;\n if (this.replay !== null) {\n // Replay queued actions using the animation renderer to apply\n // all events and properties collected while loading was in progress.\n for (const fn of this.replay) {\n fn(impl);\n }\n // Set to `null` to indicate that the queue was processed\n // and we no longer need to collect events and properties.\n this.replay = null;\n }\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.replay = null;\n this.delegate.destroy();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n get destroyNode() {\n return this.delegate.destroyNode;\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n }\n insertBefore(parent, newChild, refChild, isMove) {\n this.delegate.insertBefore(parent, newChild, refChild, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.delegate.removeChild(parent, oldChild, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n // We need to keep track of animation properties set on default renderer\n // So we can also set them also on the animation renderer\n if (this.shouldReplay(name)) {\n this.replay.push(renderer => renderer.setProperty(el, name, value));\n }\n this.delegate.setProperty(el, name, value);\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback, options) {\n // We need to keep track of animation events registred by the default renderer\n // So we can also register them against the animation renderer\n if (this.shouldReplay(eventName)) {\n this.replay.push(renderer => renderer.listen(target, eventName, callback, options));\n }\n return this.delegate.listen(target, eventName, callback, options);\n }\n shouldReplay(propOrEventName) {\n //`null` indicates that we no longer need to collect events and properties\n return this.replay !== null && propOrEventName.startsWith(ANIMATION_PREFIX);\n }\n}\n/**\n * Provides a custom scheduler function for the async loading of the animation package.\n *\n * Private token for investigation purposes\n */\nconst ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN = /*#__PURE__*/new InjectionToken(ngDevMode ? 'async_animation_loading_scheduler_fn' : '');\n\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * When you use this function instead of the eager `provideAnimations()`, animations won't be\n * rendered until the renderer is loaded.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimationsAsync()\n * ]\n * });\n * ```\n *\n * @param type pass `'noop'` as argument to disable animations.\n *\n * @publicApi\n */\nfunction provideAnimationsAsync(type = 'animations') {\n ɵperformanceMarkFeature('NgAsyncAnimations');\n // Animations don't work on the server so we switch them over to no-op automatically.\n if (typeof ngServerMode !== 'undefined' && ngServerMode) {\n type = 'noop';\n }\n return makeEnvironmentProviders([{\n provide: RendererFactory2,\n useFactory: (doc, renderer, zone) => {\n return new AsyncAnimationRendererFactory(doc, renderer, zone, type);\n },\n deps: [DOCUMENT, ɵDomRendererFactory2, NgZone]\n }, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: type === 'noop' ? 'NoopAnimations' : 'BrowserAnimations'\n }]);\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { provideAnimationsAsync, ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, AsyncAnimationRendererFactory as ɵAsyncAnimationRendererFactory };\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, ContentService, HtmlNode, Page, StylesService, WebpackManifestService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { StyleOptions } from './loaders.client-config';\n\n/**\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LoaderStylesService {\n constructor(\n private webpackManifestService: WebpackManifestService,\n private page: Page,\n private stylesService: StylesService,\n private contentService: ContentService,\n private htmlNode: HtmlNode,\n ) {}\n\n async loadStyles(styles?: StyleOptions[]) {\n if (!styles) return;\n for await (const style of styles) {\n if (style.htmlCssClass) {\n this.htmlNode.setCssClass(style.htmlCssClass, true);\n }\n switch (style.type) {\n case 'url':\n await this.stylesService.loadStyle({ url: style.id, lazyLoad: 'Important' });\n break;\n case 'theme':\n let filename = this.getNewThemeFilename(style.id);\n let themesCssPath = await this.webpackManifestService.getEntry(filename);\n if (!themesCssPath) {\n filename = this.getOldThemeFilename(style.id);\n themesCssPath = await this.webpackManifestService.getEntry(filename);\n }\n if (themesCssPath) {\n await this.stylesService.loadStyle({ url: themesCssPath, lazyLoad: 'Important' });\n }\n break;\n case 'content':\n const path = `App-v1.0/LazyStyles/${style.id}`;\n const file = await firstValueFrom(this.contentService.getJson(path, { product: ClientConfigProductName.SF }));\n await this.stylesService.add(style.id, file.content);\n break;\n }\n }\n }\n //todo: remove when everyone migrated to esbuild\n private getOldThemeFilename(entry: string) {\n return `themes-${this.page.theme}-${entry}.css`;\n }\n\n private getNewThemeFilename(entry: string) {\n return `${this.page.theme}/themes-${this.page.theme}-${entry}.css`;\n }\n}\n","// noinspection SpellCheckingInspection\nimport { Injectable, InjectionToken, Injector } from '@angular/core';\n\nimport {\n DslEnvService,\n EVENT_PROCESSOR,\n EventContext,\n FEATURE_INIT_PROVIDER,\n LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER,\n LAZY_DSL_VALUES_PROVIDER,\n Logger,\n} from '@frontend/vanilla/core';\n\n/**\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ModuleService {\n constructor(\n private dslEnvService: DslEnvService,\n private log: Logger,\n ) {}\n\n getProviders(injector: Injector, token: InjectionToken, notFoundValue?: T[]): T[] {\n try {\n return injector.get(token, notFoundValue);\n } catch (e) {\n this.log.info('getProviders failed for injector with token', injector, token, e);\n return [];\n }\n }\n\n getProvider(injector: Injector, token: InjectionToken, notFoundValue?: T): T | null {\n try {\n return injector.get(token, notFoundValue);\n } catch (e) {\n this.log.info('getProvider failed with token', injector, token, e);\n return null;\n }\n }\n\n runBootstrappers(injector: Injector) {\n try {\n const bootstrappers = this.getProviders(injector, FEATURE_INIT_PROVIDER, []);\n\n for (const bootstrapper of bootstrappers) {\n bootstrapper.onFeatureInit();\n }\n } catch (e) {\n this.log.error('runBootstrappers failed for injector', injector, e);\n }\n }\n\n runEventProcessors(injector: Injector, context: EventContext) {\n try {\n const eventProcessors = this.getProviders(injector, EVENT_PROCESSOR, []);\n\n for (const eventProcessor of eventProcessors) {\n eventProcessor.process(context);\n }\n } catch (e) {\n this.log.error('runEventHandlers failed with context', injector, context, e);\n }\n }\n\n runDslProviders(injector: Injector) {\n try {\n const dslProviders = this.getProvider(injector, LAZY_DSL_VALUES_PROVIDER, null);\n\n if (dslProviders?.length) {\n this.dslEnvService.addToContext([...dslProviders]);\n }\n } catch (e) {\n this.log.error('runDslProviders failed', injector, e);\n }\n }\n\n runLaunchDarklyContextProvider(injector: Injector) {\n try {\n const contextProvider = this.getProvider(injector, LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER, null);\n\n if (contextProvider) {\n contextProvider.reloadContext();\n }\n } catch (e) {\n this.log.error('runLaunchDarklyContextProvider failed', injector, e);\n }\n }\n}\n","import { InjectionToken, Injector, Provider } from '@angular/core';\n\nimport { LoadOptions, StyleOptions } from './loaders.client-config';\n\n/**\n * Token used to provide your loader function.\n *\n * @experimental\n */\nexport const LOADER_FN_TOKEN = new InjectionToken('vn-loader-fn');\n\nexport interface LoaderFnConfig {\n id: string;\n loaderFn: () => Promise;\n additionalStylesFn?: (injector: Injector) => StyleOptions[] | undefined;\n product?: string;\n}\n\n/**\n * @whatItDoes Registers loader functions.\n *\n * @stable\n */\nexport function registerLoaderFn(config: LoaderFnConfig): Provider {\n return [\n {\n provide: LOADER_FN_TOKEN,\n multi: true,\n useValue: config,\n },\n ];\n}\n\nexport enum LoadState {\n Created = 'created',\n Scheduled = 'scheduled',\n Enabled = 'enabled',\n Loaded = 'loaded',\n}\n\nexport interface LoaderLoadOptions {\n id: string;\n loaderFn?: () => Promise;\n additionalStylesFn?: (injector: Injector) => StyleOptions[] | undefined;\n product?: string;\n state: LoadState;\n options: LoadOptions;\n}\n\nexport enum LoadStrategy {\n /** represents a strategy that is always fired first. triggered only once */\n Preload = 'preload',\n /** represents a strategy that is used when user just logged in (client side login). triggered only once */\n JustLoggedIn = 'just-loggedin',\n /** represents a strategy that is used when user was already logged in on server side. triggered only once */\n AlreadyLoggedIn = 'already-loggedin',\n /** union of just and already logged in. triggered only once */\n LoggedIn = 'loggedin',\n /** represents a strategy that is used document ready state is complete (similar to onload document event) . triggered only once*/\n Complete = 'complete',\n /** represents a strategy that is triggered on CCB, rtms or vanilla event. triggered multiple times */\n Event = 'event',\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, Injector, inject } from '@angular/core';\n\nimport {\n DslEnvService,\n DslService,\n EventContext,\n EventType,\n EventsService,\n Logger,\n NativeAppService,\n NativeEvent,\n NativeEventType,\n ProductService,\n RtmsMessage,\n RtmsService,\n SimpleEvent,\n UserEvent,\n UserLogoutEvent,\n UserPreHooksLoginEvent,\n UserService,\n VanillaEventNames,\n WebWorkerService,\n WindowEvent,\n} from '@frontend/vanilla/core';\nimport { Subject, first } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\n\nimport { LoaderStylesService } from './loader-styles.service';\nimport { LoadOptions, LoadersConfig, StyleOptions } from './loaders.client-config';\nimport { LOADER_FN_TOKEN, LoadState, LoadStrategy, LoaderFnConfig, LoaderLoadOptions } from './loaders.models';\nimport { ModuleService } from './module.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LoaderService {\n readonly loadDispatcher = new Subject();\n\n private readonly STYLES_LOADER_ID = 'styles';\n private readonly allLoaders: LoaderLoadOptions[] = [];\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n @Inject(LOADER_FN_TOKEN) private registeredLoaderFns: LoaderFnConfig[],\n private config: LoadersConfig,\n private dslService: DslService,\n private dslEnvService: DslEnvService,\n private user: UserService,\n private webWorkerService: WebWorkerService,\n private nativeAppService: NativeAppService,\n private logger: Logger,\n private rtmsService: RtmsService,\n private eventsService: EventsService,\n private moduleService: ModuleService,\n private nativeApp: NativeAppService,\n private loadStylesService: LoaderStylesService,\n private productService: ProductService,\n ) {}\n\n init() {\n this.initLoaders();\n\n this.loadDispatcher.subscribe((options: LoaderLoadOptions) => this.load(options));\n\n // start just logged-in strategy when user logs in (only once)\n this.user.events.pipe(first((e: UserEvent) => e instanceof UserPreHooksLoginEvent)).subscribe(() => {\n this.start(LoadStrategy.JustLoggedIn);\n this.start(LoadStrategy.LoggedIn);\n });\n this.user.events.pipe(first((e: UserEvent) => e instanceof UserLogoutEvent)).subscribe(() => {\n this.reset([LoadStrategy.JustLoggedIn, LoadStrategy.LoggedIn]);\n });\n\n // re-evaluate DSL conditions on any DSL or Product change\n this.dslEnvService.change.pipe(debounceTime(100)).subscribe(() => {\n this.restart();\n });\n\n this.productService.productChanged.subscribe(() => {\n this.restart();\n });\n\n // Vanilla events\n this.eventsService.events.subscribe((e: SimpleEvent) => {\n const event: EventContext = { name: e.eventName, type: EventType.Vanilla, data: e.data };\n this.startEventStrategy(event);\n });\n\n // RTMS events\n this.rtmsService.messages.subscribe((e: RtmsMessage) => {\n const event: EventContext = { name: e.type, type: EventType.Rtms, data: e.payload };\n this.startEventStrategy(event);\n });\n\n // Native events\n this.nativeAppService.eventsFromNative.subscribe((e: NativeEvent) => {\n const event: EventContext = { name: e.eventName, type: EventType.Native, data: e.parameters };\n this.startEventStrategy(event);\n });\n\n // preload always first\n this.start(LoadStrategy.Preload);\n\n // then loggedin, if authenticated\n if (this.user.isAuthenticated) {\n this.start(LoadStrategy.AlreadyLoggedIn);\n this.start(LoadStrategy.LoggedIn);\n }\n\n // then complete\n this._doc.addEventListener(WindowEvent.ReadyStateChange, () => this.runOnlyCompleteStrategy());\n this.runOnlyCompleteStrategy();\n }\n\n async loadFeature(featureId: string, featureImport: Promise, options: LoadOptions, additionalStyles?: StyleOptions[]) {\n const styles = this.mergeStyles(options.styles, additionalStyles);\n\n await Promise.all([\n featureImport.then((feature: any) => {\n const featureInjector = Injector.create({\n providers: feature.provide(),\n parent: this.getInjector(),\n });\n\n this.moduleService.runBootstrappers(featureInjector);\n this.moduleService.runDslProviders(featureInjector);\n this.moduleService.runLaunchDarklyContextProvider(featureInjector);\n\n if (options.eventContext) {\n this.moduleService.runEventProcessors(featureInjector, options.eventContext);\n }\n\n this.nativeApp.sendToNative({\n eventName: NativeEventType.FEATURE_LOADED,\n parameters: { featureId },\n });\n }),\n\n this.loadStylesService.loadStyles(styles),\n ]);\n }\n\n private runOnlyCompleteStrategy() {\n const strategy = this._doc.readyState;\n\n if (strategy === LoadStrategy.Complete) {\n this.start(strategy);\n }\n }\n\n private start(strategy: string) {\n const loaders = this.allLoaders.filter((l: LoaderLoadOptions) => l.options.strategy === strategy && l.state === LoadState.Created);\n for (const item of loaders) {\n item.state = LoadState.Scheduled;\n }\n if (loaders?.length > 0) {\n this.logger.info(`Scheduled ${loaders?.length} loader(s) with ${strategy} strategy.`);\n }\n\n this.evaluate(loaders);\n }\n\n private reset(strategies: string[]) {\n const loaders = this.allLoaders.filter((l: LoaderLoadOptions) => strategies.includes(l.options.strategy));\n\n for (const item of loaders) {\n item.state = LoadState.Created;\n }\n\n if (loaders?.length > 0) {\n this.logger.info(`${loaders?.length} loader(s) resetted after logout for strategies ${strategies.join('|')}.`);\n }\n }\n\n private startEventStrategy(event: EventContext) {\n const loaders = this.allLoaders.filter(\n (l: LoaderLoadOptions) => l.options.strategy == LoadStrategy.Event && l.options.events?.[event.type]?.includes(event.name),\n );\n\n if (loaders?.length > 0) {\n this.logger.info(`Found ${loaders?.length} event handler(s) for event.`, loaders, event);\n }\n\n loaders.forEach((loader: LoaderLoadOptions) => this.load(loader, event));\n }\n\n private restart() {\n const scheduled = this.allLoaders.filter(\n (l: LoaderLoadOptions) =>\n l.state === LoadState.Scheduled &&\n ![LoadStrategy.JustLoggedIn.toString(), LoadStrategy.LoggedIn.toString()].includes(l.options.strategy),\n );\n this.evaluate(scheduled);\n }\n\n private initLoaders() {\n for (const ruleId of Object.keys(this.config.rules)) {\n const loaderId = this.config.rules[ruleId]?.id ?? ruleId;\n const options = this.config.rules[ruleId]!;\n\n // styles are a special case\n if (loaderId === this.STYLES_LOADER_ID) {\n this.loadStylesService.loadStyles(options.styles).then();\n continue;\n }\n\n const loaderFnConfig = this.registeredLoaderFns.find((l: LoaderFnConfig) => l.id === loaderId);\n\n if (loaderFnConfig) {\n this.allLoaders.push({\n id: loaderId,\n loaderFn: loaderFnConfig.loaderFn,\n state: LoadState.Created,\n options,\n additionalStylesFn: loaderFnConfig.additionalStylesFn,\n product: loaderFnConfig.product,\n });\n }\n }\n }\n\n private evaluate(loaders: LoaderLoadOptions[]) {\n for (const loader of loaders) {\n this.dslService\n .evaluateExpression(loader.options.enabled)\n .pipe(\n first(),\n map((enabled) => enabled && this.checkLoaderEnabledForProduct(loader)),\n )\n .subscribe((enabled: boolean) => {\n if (enabled) {\n if (loader.state == LoadState.Scheduled) {\n loader.state = LoadState.Enabled;\n this.loadDispatcher.next(loader);\n }\n }\n this.eventsService.raise({ eventName: VanillaEventNames.FeatureEnabledStatus, data: { id: loader.id, enabled } });\n });\n }\n }\n\n private checkLoaderEnabledForProduct(loader: LoaderLoadOptions): boolean {\n return !this.productService.isSingleDomainApp || !loader.product || loader.product === this.productService.current.name;\n }\n\n private load(item: LoaderLoadOptions, eventContext?: EventContext) {\n if (!this.checkLoaderEnabledForProduct(item)) {\n return;\n }\n\n try {\n const options: LoadOptions = {\n ...item.options,\n };\n\n if (eventContext) {\n options.eventContext = eventContext;\n }\n\n if (options.delay) {\n this.webWorkerService.createWorker(item.id, { timeout: options.delay }, () => {\n this.runLoader(item, options);\n this.webWorkerService.removeWorker(item.id);\n });\n } else {\n this.runLoader(item, options);\n }\n } catch (error) {\n this.logger.errorRemote(`Failed to load ${item.id} feature`, error);\n }\n\n this.logger.info('Loaded:', item);\n }\n\n private runLoader(item: LoaderLoadOptions, options: LoadOptions) {\n if (item.loaderFn) {\n const additionalStyles = this.getAdditionalStyles(item);\n this.loadFeature(item.id, item.loaderFn(), options, additionalStyles);\n }\n\n item.state = LoadState.Loaded;\n }\n\n private getAdditionalStyles(item: LoaderLoadOptions): StyleOptions[] | undefined {\n if (!item.additionalStylesFn) {\n return undefined;\n }\n\n const injector = this.getInjector();\n\n return item.additionalStylesFn(injector);\n }\n\n private mergeStyles(optionStyles: StyleOptions[] | undefined, additionalStyles: StyleOptions[] | undefined): StyleOptions[] | undefined {\n if (optionStyles && !additionalStyles) {\n return optionStyles;\n }\n\n if (additionalStyles && !optionStyles) {\n return additionalStyles;\n }\n\n return optionStyles && additionalStyles ? [...optionStyles, ...additionalStyles] : undefined;\n }\n\n private getInjector(): Injector {\n return this.productService.current.injector;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { LoaderService } from './loader.service';\nimport { LoadersConfig } from './loaders.client-config';\n\n@Injectable()\nexport class LoadersBootstrapService implements OnAppInit {\n constructor(\n private config: LoadersConfig,\n private loaderService: LoaderService,\n ) {}\n\n async onAppInit() {\n await firstValueFrom(this.config.whenReady);\n this.loaderService.init();\n }\n}\n","export const VANILLA_LOADERS_MAP: { [key: string]: () => Promise } = {\n 'abuser-information': () => import('@frontend/vanilla/features/abuser-information'),\n 'account-menu': () => import('@frontend/vanilla/features/account-menu'),\n 'activity-popup': () => import('@frontend/vanilla/features/activity-popup'),\n 'affordability': () => import('@frontend/vanilla/features/affordability'),\n 'balance-breakdown': () => import('@frontend/vanilla/features/balance-breakdown'),\n 'balance-properties': () => import('@frontend/vanilla/features/balance-properties'),\n 'balance-refresh': () => import('@frontend/vanilla/features/balance-refresh'),\n 'balance-transfer': () => import('@frontend/vanilla/features/balance-transfer'),\n 'barcode-scanner': () => import('@frontend/vanilla/features/barcode-scanner'),\n 'betstation-hardware-fault': () => import('@frontend/vanilla/features/betstation-hardware-fault'),\n 'betting-status': () => import('@frontend/vanilla/features/betting-status'),\n 'bonus-award': () => import('@frontend/vanilla/features/bonus-award'),\n 'bonus-balance': () => import('@frontend/vanilla/features/bonus-balance'),\n 'bottom-nav': () => import('@frontend/vanilla/features/bottom-nav'),\n 'bottom-sheet': () => import('@frontend/vanilla/features/bottom-sheet'),\n 'cashier': () => import('@frontend/vanilla/features/cashier'),\n 'clock': () => import('@frontend/vanilla/features/clock'),\n 'connected-accounts': () => import('@frontend/vanilla/features/connected-accounts'),\n 'content': () => import('@frontend/vanilla/features/content'),\n 'content-messages': () => import('@frontend/vanilla/features/content-messages'),\n 'cookie-banner': () => import('@frontend/vanilla/features/cookie-banner'),\n 'cookie-consent': () => import('@frontend/vanilla/features/cookie-consent'),\n 'cookie-injector': () => import('@frontend/vanilla/features/cookie-injector'),\n 'css-overrides': () => import('@frontend/vanilla/features/css-overrides'),\n 'curfew-status': () => import('@frontend/vanilla/features/curfew-status'),\n 'debounce-buttons': () => import('@frontend/vanilla/features/debounce-buttons'),\n 'deposit-limit-exceeded': () => import('@frontend/vanilla/features/deposit-limit-exceeded'),\n 'deposit-limits': () => import('@frontend/vanilla/features/deposit-limits'),\n 'deposit-prompt': () => import('@frontend/vanilla/features/deposit-prompt'),\n 'deposit-session': () => import('@frontend/vanilla/features/deposit-session'),\n 'dialog': () => import('@frontend/vanilla/features/dialog'),\n 'document-upload-status': () => import('@frontend/vanilla/features/document-upload-status'),\n 'domain-specific-actions': () => import('@frontend/vanilla/features/domain-specific-actions'),\n 'dropdown-header': () => import('@frontend/vanilla/features/dropdown-header'),\n 'footer': () => import('@frontend/vanilla/features/footer'),\n 'gamification': () => import('@frontend/vanilla/features/gamification'),\n 'geolocation': () => import('@frontend/vanilla/features/geolocation'),\n 'global-search': () => import('@frontend/vanilla/features/global-search'),\n 'header': () => import('@frontend/vanilla/features/header'),\n 'header-bar': () => import('@frontend/vanilla/features/header-bar'),\n 'hint': () => import('@frontend/vanilla/features/hint'),\n 'html': () => import('@frontend/vanilla/features/html'),\n 'icons': () => import('@frontend/vanilla/shared/icons'),\n 'inactive': () => import('@frontend/vanilla/features/inactive'),\n 'inactivity-screen': () => import('@frontend/vanilla/features/inactivity-screen'),\n 'inbox': () => import('@frontend/vanilla/features/inbox'),\n 'jackpot-winner': () => import('@frontend/vanilla/features/jackpot-winner'),\n 'kyc': () => import('@frontend/vanilla/features/kyc'),\n 'label-switcher': () => import('@frontend/vanilla/features/label-switcher'),\n 'language-switcher': () => import('@frontend/vanilla/features/language-switcher'),\n 'last-session-info': () => import('@frontend/vanilla/features/last-session-info'),\n 'launch-darkly': () => import('@frontend/vanilla/features/launch-darkly'),\n 'license-info': () => import('@frontend/vanilla/features/license-info'),\n 'live-person': () => import('@frontend/vanilla/features/live-person'),\n 'login': () => import('@frontend/vanilla/features/login'),\n 'login-duration': () => import('@frontend/vanilla/features/login-duration'),\n 'login-new': () => import('@frontend/vanilla/features/login-new'),\n 'logout': () => import('@frontend/vanilla/features/logout'),\n 'loss-limits': () => import('@frontend/vanilla/features/loss-limits'),\n 'loyality-profile': () => import('@frontend/vanilla/features/loyality-profile'),\n 'loyalty-login': () => import('@frontend/vanilla/features/loyalty-login'),\n 'meta-tags': () => import('@frontend/vanilla/features/meta-tags'),\n 'moh-details': () => import('@frontend/vanilla/features/moh-details'),\n 'native-app': () => import('@frontend/vanilla/features/native-app'),\n 'navigation-layout': () => import('@frontend/vanilla/features/navigation-layout'),\n 'offer-button': () => import('@frontend/vanilla/features/offer-button'),\n 'offer-dsl': () => import('@frontend/vanilla/features/offer-dsl'),\n 'offers': () => import('@frontend/vanilla/features/offers'),\n 'offline': () => import('@frontend/vanilla/features/offline'),\n 'offline-page': () => import('@frontend/vanilla/features/offline-page'),\n 'overlay': () => import('@frontend/vanilla/features/overlay'),\n 'overlay-messages': () => import('@frontend/vanilla/features/overlay-messages'),\n 'play-break': () => import('@frontend/vanilla/features/play-break'),\n 'player-active-wager': () => import('@frontend/vanilla/features/player-active-wager'),\n 'player-attributes': () => import('@frontend/vanilla/features/player-attributes'),\n 'player-gaming-declaration': () => import('@frontend/vanilla/features/player-gaming-declaration'),\n 'player-limits': () => import('@frontend/vanilla/features/player-limits'),\n 'prerender': () => import('@frontend/vanilla/features/prerender'),\n 'product-menu': () => import('@frontend/vanilla/features/product-menu'),\n 'product-switch-cool-off': () => import('@frontend/vanilla/features/product-switch-cool-off'),\n 'range-datepicker': () => import('@frontend/vanilla/features/range-datepicker'),\n 're-captcha': () => import('@frontend/vanilla/features/recaptcha'),\n 'redirect-message': () => import('@frontend/vanilla/features/redirect-message'),\n 'referred-friends': () => import('@frontend/vanilla/features/referred-friends'),\n 'remember-me-logout-prompt': () => import('@frontend/vanilla/features/remember-me-logout-prompt'),\n 'rtms-events': () => import('@frontend/vanilla/features/rtms-events'),\n 'rtms-layer': () => import('@frontend/vanilla/features/rtms-layer'),\n 'rtms-overlay': () => import('@frontend/vanilla/features/rtms-overlay'),\n 'screen-time': () => import('@frontend/vanilla/features/screen-time'),\n 'self-exclusion': () => import('@frontend/vanilla/features/self-exclusion'),\n 'session-fund-summary': () => import('@frontend/vanilla/features/session-fund-summary'),\n 'session-info': () => import('@frontend/vanilla/features/session-info'),\n 'session-lifetime-check': () => import('@frontend/vanilla/features/session-lifetime-check'),\n 'session-limits': () => import('@frontend/vanilla/features/session-limits'),\n 'session-limits-logout-popup': () => import('@frontend/vanilla/features/session-limits-logout-popup'),\n 'single-sign-on': () => import('@frontend/vanilla/features/single-sign-on'),\n 'smart-banner': () => import('@frontend/vanilla/features/smart-banner'),\n 'sof-status-details': () => import('@frontend/vanilla/features/sof-status-details'),\n 'terminal-session': () => import('@frontend/vanilla/features/terminal-session'),\n 'third-party-tracker': () => import('@frontend/vanilla/features/third-party-tracker'),\n 'top-messages': () => import('@frontend/vanilla/features/top-messages'),\n 'tourney-token-balance': () => import('@frontend/vanilla/features/tourney-token-balance'),\n 'tracking': () => import('@frontend/vanilla/features/tracking'),\n 'untested-browser': () => import('@frontend/vanilla/features/untested-browser'),\n 'user-documents': () => import('@frontend/vanilla/features/user-documents'),\n 'user-flags': () => import('@frontend/vanilla/features/user-flags'),\n 'user-scrub': () => import('@frontend/vanilla/features/user-scrub'),\n 'user-summary': () => import('@frontend/vanilla/features/user-summary'),\n 'value-ticket': () => import('@frontend/vanilla/features/value-ticket'),\n 'zendesk': () => import('@frontend/vanilla/features/zendesk'),\n 'speculation': () => import('@frontend/vanilla/features/speculation'),\n};\n","import { Provider } from '@angular/core';\n\nimport { runOnAppInit } from '@frontend/vanilla/core';\n\nimport { LoadersBootstrapService } from './loaders-bootstrap.service';\nimport { VANILLA_LOADERS_MAP } from './loaders-map';\nimport { registerLoaderFn } from './loaders.models';\n\n/**\n * Provides providers of loaders package.\n *\n * @stable\n */\nexport function provideLoaders(): Provider[] {\n const vanillaLoadersFns = Object.keys(VANILLA_LOADERS_MAP).map((id: string) => registerLoaderFn({ id, loaderFn: VANILLA_LOADERS_MAP[id]! }));\n\n return [...vanillaLoadersFns, runOnAppInit(LoadersBootstrapService)];\n}\n","export const VANILLA_LAZY_ROUTES = [\n {\n path: 'logout',\n loadChildren: () => import('@frontend/vanilla/features/logout-page').then((m) => m.ROUTES),\n },\n {\n path: 'nativeapp',\n loadChildren: () => import('@frontend/vanilla/features/native-app').then((m) => m.ROUTES),\n },\n {\n path: 'inbox',\n loadChildren: () => import('@frontend/vanilla/features/inbox').then((m) => m.ROUTES),\n },\n {\n path: 'labelhost',\n loadChildren: () => import('@frontend/vanilla/features/login').then((m) => m.ROUTES), // TODO: Change to new login routes\n },\n {\n path: 'menu',\n loadChildren: () => import('@frontend/vanilla/features/account-menu').then((m) => m.ROUTES),\n },\n {\n path: 'product-menu',\n loadChildren: () => import('@frontend/vanilla/features/product-menu').then((m) => m.ROUTES),\n },\n {\n path: 'profile',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.PROFILEPAGE_ROUTES),\n },\n {\n path: 'preferences',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.DARKMODE_ROUTES),\n },\n {\n path: 'settings',\n loadChildren: () => import('@frontend/vanilla/features/navigation-layout').then((m) => m.NAVIGATIONLAYOUT_ROUTES),\n },\n {\n path: 'account',\n loadChildren: () => import('@frontend/vanilla/features/balance-breakdown').then((m) => m.ROUTES),\n },\n {\n path: 'remember-me-logout',\n loadChildren: () => import('@frontend/vanilla/features/remember-me-logout-prompt').then((m) => m.ROUTES),\n },\n {\n path: 'gaming-declaration',\n loadChildren: () => import('@frontend/vanilla/features/player-gaming-declaration').then((m) => m.ROUTES),\n },\n {\n path: 'cashier',\n loadChildren: () => import('@frontend/vanilla/features/cashier').then((m) => m.ROUTES),\n },\n];\n","export const VANILLA_SECONDARY_ROUTES = [\n {\n path: 'menu',\n outlet: 'overlay',\n loadChildren: () => import('@frontend/vanilla/features/account-menu').then((m) => m.ROUTES),\n },\n];\n","import { Provider } from '@angular/core';\n\nimport { DYNAMIC_INJECTOR_PROVIDER_TOKEN } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\n\nimport { SportsProductService } from './sports-product-service';\n\nexport function provideSportsDynamicInjector(): Provider[] {\n return [{ provide: DYNAMIC_INJECTOR_PROVIDER_TOKEN, useExisting: SportsProductService }];\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbResult, IBreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ESportBreadcrumbsResolver implements IBreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {}\n\n resolve(): BreadcrumbResult {\n const title = this.sitecore.eSports.ESports;\n\n return [{ icon: `theme-e-sports`, title, url: this.urlHelper.getESportsUrl() }];\n }\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { Action, Store } from '@ngrx/store';\nimport { first, merge, switchMap } from 'rxjs';\n\nimport { IConfigSettings, IUserBettingSettings, UserEvents } from '../model/user.models';\nimport { UserActions } from '../store/actions';\nimport { BettingSettingsService } from './betting-settings.service';\nimport { UserOddsFormatSettingsService } from './user-odds-format-settings.service';\nimport { UserService } from './user.service';\n\n@Injectable({ providedIn: 'root' })\nexport class UserServiceWatcher implements OnAppInit {\n private destroyRef = inject(DestroyRef);\n\n constructor(\n private userService: UserService,\n private dispatcher: DispatcherService,\n private store$: Store,\n private bettingSettingsService: BettingSettingsService,\n private userOddsFormatSettingsService: UserOddsFormatSettingsService,\n ) {}\n\n onAppInit(): void {\n this.bettingSettingsService.allSettings$.pipe(first()).subscribe(({ bettingSettings, configSettings }) => {\n this.dispatch(\n UserActions.initState({\n state: {\n isAuthenticated: this.userService.isAuthenticated,\n bettingSettings,\n configSettings,\n walletLoaded: false,\n oddsFormat: this.userOddsFormatSettingsService.oddsFormat,\n },\n }),\n );\n });\n\n this.userService.onUserLogin$.pipe(filterSportsEmitLast(), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.dispatch(UserActions.userLoggedIn());\n });\n\n this.userService.onUserLogout$.pipe(takeUntilDestroyed(this.destroyRef), filterSportsEmitLast()).subscribe(() => {\n this.dispatch(UserActions.userLoggedOut());\n });\n\n merge(\n this.userService.onUserLogInWithSettings$,\n this.dispatcher.on(UserEvents.ClaimsChanged),\n this.dispatcher.on(UserEvents.M2UserClaimsChanged),\n this.dispatcher.on(UserEvents.UserSettingsChanged),\n )\n .pipe(\n filterSportsEmitLast(),\n switchMap(() => this.bettingSettingsService.allSettings$),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ bettingSettings, configSettings }) => {\n this.dispatchUpdateState(bettingSettings, configSettings);\n });\n }\n\n private dispatch(action: Action): void {\n this.store$.dispatch(action);\n }\n\n private dispatchUpdateState(bettingSettings: Readonly, configSettings: Readonly) {\n this.dispatch(\n UserActions.updateState({\n settings: bettingSettings,\n config: configSettings,\n oddsFormat: this.userOddsFormatSettingsService.oddsFormat,\n }),\n );\n }\n}\n","import { createReducer, on } from '@ngrx/store';\n\nimport { UserActions } from './actions';\nimport { IUserState, defaultUserState } from './state';\n\nexport const userReducer = createReducer(\n defaultUserState,\n on(\n UserActions.initState,\n (state, action): IUserState => ({\n isAuthenticated: action.state.isAuthenticated,\n bettingSettings: action.state.bettingSettings,\n configSettings: action.state.configSettings,\n walletLoaded: action.state.walletLoaded,\n oddsFormat: action.state.oddsFormat,\n }),\n ),\n on(\n UserActions.userLoggedIn,\n (state): IUserState => ({\n ...state,\n isAuthenticated: true,\n }),\n ),\n on(\n UserActions.userLoggedOut,\n (state): IUserState => ({\n ...state,\n isAuthenticated: false,\n }),\n ),\n on(\n UserActions.updateState,\n (state, action): IUserState => ({\n ...state,\n bettingSettings: action.settings,\n configSettings: action.config,\n oddsFormat: action.oddsFormat,\n }),\n ),\n on(UserActions.setWalletLoaded, (state, action): IUserState => ({ ...state, walletLoaded: action.walletLoaded })),\n);\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\n\nimport { StoreModule } from '@ngrx/store';\n\nimport { userReducer } from './reducer';\nimport { userFeatureKey } from './state';\n\nexport function provideUser(): EnvironmentProviders {\n return importProvidersFrom(StoreModule.forFeature(userFeatureKey, userReducer));\n}\n","import { DestroyRef, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { AppConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit, UserLoginEvent, UserLogoutEvent } from '@frontend/vanilla/core';\n\nimport { UserService } from './user.service';\n\n@Injectable({ providedIn: 'root' })\nexport class UserAccountIdCookieService implements OnAppInit {\n readonly accountIdCookieName = 'currentAccountId';\n\n constructor(\n private appConfig: AppConfig,\n private userService: UserService,\n private cookieProvider: CookieProvider,\n private destroyRef: DestroyRef,\n ) {}\n\n onAppInit(): void {\n if (!this.appConfig.setAccountIdCookie) {\n return;\n }\n\n this.setAccountIdCookie(this.userService.getPGAccountId());\n\n this.userService.events.pipe(filterSportsEmitLast(), takeUntilDestroyed(this.destroyRef)).subscribe((action) => {\n if (action instanceof UserLoginEvent) {\n this.setAccountIdCookie(this.userService.getPGAccountId());\n return;\n }\n if (action instanceof UserLogoutEvent) {\n this.setAccountIdCookie(null);\n }\n });\n }\n\n private setAccountIdCookie(accountId: string | null) {\n if (accountId) {\n this.cookieProvider.setCookie(this.accountIdCookieName, accountId);\n return;\n }\n this.cookieProvider.deleteCookie(this.accountIdCookieName);\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { PerformanceService } from '@frontend/sports/common/core/utils/performance';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { NgScrollbarOptions, ScrollbarTrack, ScrollbarVisibility } from 'ngx-scrollbar';\n\n@Injectable()\nexport class NgScrollbarOptionsProvider implements NgScrollbarOptions {\n visibility: ScrollbarVisibility;\n track: ScrollbarTrack;\n autoHeightDisabled: boolean;\n\n scrollAuditTime = inject(PerformanceService).isLowTierDevice() ? 20 : 0;\n\n constructor(private device: DeviceService) {\n this.visibility = this.device.isMobile ? 'native' : 'hover';\n this.track = 'vertical';\n this.autoHeightDisabled = false;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { WINDOW } from '@frontend/vanilla/core';\n\nimport { PopupManager } from '../popup/popup-manager.service';\n\n@Injectable({ providedIn: 'root' })\nexport class NotAuthenticatedGuard {\n constructor(private popupManager: PopupManager) {}\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.popupManager.fullReloadRequired) {\n // eslint-disable-next-line no-self-assign\n this._window.location.href = this._window.location.href;\n }\n\n return true;\n }\n\n private readonly _window = inject(WINDOW);\n}\n","import { RouteTag } from '@frontend/sports/common/core/data-access/route';\n\nimport { ESportBreadcrumbsResolver } from './esports/esports-breadcrumbs.resolver';\nimport { MainComponent } from './main/main.component';\nimport { SportRoute } from './router/multi-route.model';\nimport { NotAuthenticatedGuard } from './router/not-authenticated-guard.service';\nimport { use } from './router/router.resolver';\nimport { SitemapRoutingToken } from './sitemap/sitemap-routing';\nimport { WidgetSchemaMarkupResolver } from './widget/common/widget-schema-markup.resolver';\nimport { WidgetResolver } from './widget/common/widget.resolver';\nimport { WidgetLayoutComponent } from './widget/core/widget-layout.component';\n\nexport const INTERNAL_ESPORTS_ROUTES: SportRoute[] = [\n {\n path: '',\n data: {\n headerNavigation: true,\n tag: RouteTag.EsportsLobby,\n },\n component: MainComponent,\n canActivateChild: [NotAuthenticatedGuard],\n runGuardsAndResolvers: 'paramsChange',\n children: [\n {\n path: '',\n component: WidgetLayoutComponent,\n resolve: use(WidgetResolver),\n data: {\n tag: RouteTag.EsportsLobby,\n breadcrumbs: ESportBreadcrumbsResolver,\n schemaMarkup: WidgetSchemaMarkupResolver,\n sitemap: SitemapRoutingToken.EsportsSitemapResolver,\n },\n },\n ],\n },\n];\n","import { Injectable, inject } from '@angular/core';\n\nimport { GTMConfig } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingService } from '@frontend/sports/tracking/feature';\nimport { TagManagerService, TimerService, WINDOW } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { RunAfterLcpService } from '../perf-cdk/run-after-lcp.service';\n\n@Injectable({ providedIn: 'root' })\nexport class GtmService {\n readonly #window = inject(WINDOW);\n\n constructor(\n private tagManagerService: TagManagerService,\n private timerService: TimerService,\n private trackingService: TrackingService,\n private gtmConfig: GTMConfig,\n private lcpService: RunAfterLcpService,\n ) {}\n\n renderGTMTag(): void {\n if (this.gtmConfig?.enabled) {\n if (this.#window.partytown) {\n this.loadGTM();\n } else {\n this.lcpService.runAfterLcp(() => {\n this.timerService.scheduleIdleCallback(() => this.loadGTM(), this.gtmConfig.delay);\n });\n }\n }\n }\n\n private async loadGTM() {\n await Promise.all([firstValueFrom(this.tagManagerService.whenReady), firstValueFrom(this.trackingService.whenReady)]);\n\n this.tagManagerService.loadPartyTownGTM();\n\n this.trackingService.track('Vanilla_Portal_App_Loaded');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbModel } from '../breadcrumbs/breadcrumb.models';\nimport { IBreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { CalendarService } from './calendar.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CalendarBreadcrumbsResolver implements IBreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n private calendar: CalendarService,\n private router: Router,\n ) {}\n\n resolve(): BreadcrumbModel[] {\n const crumbs: BreadcrumbModel[] = [];\n const append = (icon: string, title: string, url: string) => crumbs.push({ icon, title, url });\n\n const contextUri = this.router.url.split('/').pop();\n const context = contextUri ? decodeURI(contextUri) : undefined;\n\n const interval = this.calendar.getInterval(context);\n\n if (interval) {\n append('sports-calendar', this.sitecore.globalMessages.Calendar, this.urlHelper.getCalendarUrl());\n append('sports-soon', interval.title, this.urlHelper.getUrl(`/${interval.name}`));\n }\n\n return crumbs;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Observable } from 'rxjs';\n\nimport { CalendarService } from '../../../calendar/calendar.service';\nimport { EventListService } from '../services/event-list.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SportListOverviewResolver {\n constructor(\n private service: EventListService,\n private calendar: CalendarService,\n ) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n // needed for betstation - there we have in-30-minutes\n const context = (route.params.context || '').replace(/-/gi, '');\n\n const interval = this.calendar.getTimeInterval(context) || {};\n\n return this.service.getSportList(interval.from, interval.to);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, isAntepost } from '@frontend/sports/common/core/data-access/sport-model';\nimport { getAllParams } from '@frontend/sports/common/core/utils/route-params';\nimport { Observable, map } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport { SportUrlParam } from '../../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SportRedirectGuard {\n constructor(\n private cache: SportsCacheService,\n private redirectHelper: RedirectHelperService,\n ) {}\n\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable {\n if (route.firstChild) {\n return true;\n }\n\n const { sport, context } = getAllParams(route);\n const fallback = route.queryParams.fallback;\n\n return this.cache.getSport(Number(sport)).pipe(\n map((result) => {\n if (result) {\n if (result.id === SportConstant.Golf) {\n if (isAntepost(result)) {\n this.redirectHelper.goToSport(result, SportUrlParam.Antepost);\n\n return false;\n }\n }\n\n if (!context && fallback) {\n const [region, league]: CountItem[] = this.getFallback(result);\n\n if (region) {\n this.redirectHelper.goToSport(result, region, league, true);\n } else {\n this.redirectHelper.goToSport(result, SportUrlParam.Betting, SportUrlParam.Competitions, true);\n }\n\n return false;\n }\n }\n\n return true;\n }),\n );\n }\n\n private getFallback(sport: CountItem): CountItem[] {\n const items = [];\n\n if (sport.children.length === 1) {\n items.push(sport.children[0]);\n\n if (sport.children[0].children.length === 1) {\n items.push(sport.children[0].children[0]);\n }\n }\n\n return items;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { getAllParams } from '@frontend/sports/common/core/utils/route-params';\nimport { toInteger } from 'lodash-es';\n\nimport { AdaptiveLayoutState } from '../../layout/adaptive-layout.service';\nimport { SubNavigationResolve } from '../../sub-navigation/sub-navigation-resolve.service';\nimport { SportSubNavigationService } from './sport-sub-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SportSubNavigationResolve extends SubNavigationResolve {\n constructor(private sportSubNavService: SportSubNavigationService) {\n super();\n }\n\n buildSubNavigation(layout: AdaptiveLayoutState, routeSnapshot: ActivatedRouteSnapshot): void {\n const sport = toInteger(getAllParams(routeSnapshot).sport);\n this.sportSubNavService.resolveTabs(layout, routeSnapshot, sport).subscribe((items) => this.tabs$.next(items));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { StandingsData } from '@frontend/sports/grid/core/feature/model';\nimport { isArray } from 'lodash-es';\nimport { Observable, map } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { PruneHelperService } from './competitions/prune-helper.service';\nimport { StandingsPageResponse } from './standings-page.model';\nimport { StandingsService } from './standings.service';\nimport { VirtualCompetitionService } from './virtual-competition.service';\n\n@Injectable({ providedIn: 'root' })\nexport class StandingsPageResolver {\n sport?: CountItem;\n standingsData: StandingsData = {\n groups: [],\n };\n\n constructor(\n private pruneHelperService: PruneHelperService,\n private standingsService: StandingsService,\n private sportsCacheService: SportsCacheService,\n private competitionRouteService: CompetitionRouteService,\n private virtualCompetitionService: VirtualCompetitionService,\n ) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n const response: StandingsPageResponse = {\n route: {},\n };\n\n return this.sportsCacheService.getSport(route.params.sport).pipe(\n map((sport) => {\n response.route = this.competitionRouteService.params();\n\n sport = this.pruneHelperService.prune(sport, { ...response.route, virtualCompetitionGroup: undefined });\n response.sport = sport;\n response.standingsData = response.route.league\n ? this.getStandings(sport, response.route.virtualCompetitionGroup, response.route.league, response.route.isVirtual)\n : {\n groups: [],\n };\n response.virtualCompetition = this.virtualCompetitionService.getCompetition(sport, response.route);\n\n return response;\n }),\n );\n }\n\n private getStandings(\n sport: CountItem | undefined,\n selectedVirtualGroupId?: number,\n selectedVirtualCompetition?: number | number[] | undefined,\n isVirtual?: boolean | undefined,\n ): StandingsData {\n if (sport) {\n const groups = this.standingsService.getStandingsGroups({ sport, selectedVirtualGroupId });\n const league = isVirtual ? (isArray(selectedVirtualCompetition) ? undefined : selectedVirtualCompetition) : undefined;\n\n return {\n groups,\n virtualCompetitionId: league,\n };\n }\n\n return {\n groups: [],\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbResult, IBreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class HomeBreadcrumbsResolver implements IBreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n ) {}\n\n resolve(): BreadcrumbResult {\n const title = this.sitecore.seo;\n\n return [{ icon: 'theme-home', title: title.HomeBreadcrumbTitle, url: this.urlHelper.getHomeUrl(), ignoreBreadcrumb: true }];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { BreadcrumbResult, IBreadcrumbsResolve } from '../breadcrumbs/breadcrumbs.resolver';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { NavigationRouterService } from '../navigation/navigation-router.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MultiSportsBreadcrumbsResolver implements IBreadcrumbsResolve {\n constructor(\n private sitecore: Sitecore,\n private urlHelper: UrlHelperService,\n private navigationRouter: NavigationRouterService,\n ) {}\n\n resolve(): BreadcrumbResult {\n const title = this.sitecore.seo;\n this.navigationRouter.setNavigation('multisportshub');\n return [\n {\n icon: 'sports-26',\n title: title.MultiSportsBreadcrumbTitle,\n url: this.urlHelper.getMultiSportsHubUrl(),\n },\n ];\n }\n}\n","import { inject } from '@angular/core';\n\nimport { SitecoreMyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { take } from 'rxjs';\n\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\n\nexport function onPreloadMyBets() {\n inject(SitecoreMyBetsConfig).whenReady.pipe(take(1)).subscribe();\n inject(StylesLazyLoadingService).lazyLoad('my-bets');\n}\n","import { Injectable } from '@angular/core';\n\nimport { MultiSportsHubConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, map } from 'rxjs';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class MultiSportsHubGuard {\n constructor(\n private multiSportsConfig: MultiSportsHubConfig,\n public redirectHelperService: RedirectHelperService,\n ) {}\n\n canActivateChild(): Observable {\n return this.multiSportsConfig.whenReady.pipe(\n map(() => {\n if (!this.multiSportsConfig.isEnabled) {\n this.redirectHelperService.goHome();\n }\n return this.multiSportsConfig.isEnabled;\n }),\n );\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { NavigationService, UrlService, WINDOW } from '@frontend/vanilla/core';\n\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class OutsideSportsGuard {\n private readonly _window = inject(WINDOW);\n constructor(\n private urlService: UrlService,\n private navigationService: NavigationService,\n private urlHelper: UrlHelperService,\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n const parsedUrl = this.urlService.parse(state.url);\n const absUrl = parsedUrl.absUrl();\n\n if (this._window.location.href === absUrl) {\n this.navigationService.goTo(this.urlHelper.getHomeUrl(), { replace: true });\n\n return false;\n }\n\n this.navigationService.goTo(parsedUrl, { forceReload: true });\n\n return false;\n }\n}\n","import { inject } from '@angular/core';\n\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { UserService } from '@frontend/sports/user/feature';\n\nimport { gameLauncherResolver } from './banner/game-launcher.resolver';\nimport { CalendarBreadcrumbsResolver } from './calendar/calendar-breadcrumbs.resolver';\nimport { CalendarResolver } from './calendar/calendar.resolver';\nimport { SportListOverviewResolver } from './event-list-shared/sport/overview/sport-list-overview.resolver';\nimport { SportRedirectGuard } from './event-list-shared/sport/sport-redirect.guard';\nimport { SportSubNavigationResolve } from './event-list-shared/sport/sport-sub-navigation.resolve';\nimport { StandingsPageResolver } from './event-list-shared/sport/standings-page.resolver';\nimport { HomeBreadcrumbsResolver } from './home/home-breadcrumbs.resolver';\nimport { MainComponent } from './main/main.component';\nimport { MultiSportsBreadcrumbsResolver } from './multi-sports/multi-sports-breadcrumbs.resolver';\nimport { onPreloadMyBets } from './my-bets/my-bets-pre-resolver.service';\nimport { SportRoute } from './router/multi-route.model';\nimport { MultiSportsHubGuard } from './router/multi-sports-hub.guard';\nimport { multiNameIdentifierMatcher } from './router/name-identifier.matcher';\nimport { NotAuthenticatedGuard } from './router/not-authenticated-guard.service';\nimport { OutsideSportsGuard } from './router/outside-sports.guard';\nimport { regexMatcher } from './router/regex.matcher';\nimport { use } from './router/router.resolver';\nimport { SitemapRoutingToken } from './sitemap/sitemap-routing';\nimport { WidgetSchemaMarkupResolver } from './widget/common/widget-schema-markup.resolver';\nimport { WidgetResolver } from './widget/common/widget.resolver';\nimport { WidgetLayoutComponent } from './widget/core/widget-layout.component';\n\nexport const INTERNAL_SPORTS_WEB_ROUTES: SportRoute[] = [\n {\n path: '',\n data: {\n headerNavigation: true,\n tag: RouteTag.Lobby,\n sitemap: SitemapRoutingToken.SitemapHomeResolver,\n },\n component: MainComponent,\n canActivateChild: [NotAuthenticatedGuard],\n\n runGuardsAndResolvers: 'paramsChange',\n children: [\n {\n path: '',\n pathMatch: 'full',\n component: WidgetLayoutComponent,\n resolve: use(WidgetResolver),\n data: {\n tag: RouteTag.Lobby,\n breadcrumbs: HomeBreadcrumbsResolver,\n schemaMarkup: WidgetSchemaMarkupResolver,\n },\n },\n {\n path: 'p',\n children: [\n {\n path: '**',\n loadComponent: () => import('./common/empty.component').then((m) => m.EmptyComponent),\n canActivate: [OutsideSportsGuard],\n },\n ],\n },\n {\n path: 'affiliate-account-linking',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-link-external-accounts\" */ './link-external-accounts/link-external-accounts.module').then(\n (m) => m.LinkExternalAccountsModule,\n ),\n data: {\n authorized: true,\n },\n },\n {\n path: '{multiSports}',\n canActivateChild: [MultiSportsHubGuard],\n children: [\n {\n path: '',\n redirectTo: '{multiSportsHubName}',\n pathMatch: 'full',\n },\n {\n path: '{multiSportsHubName}',\n component: WidgetLayoutComponent,\n resolve: use(WidgetResolver),\n data: {\n tag: RouteTag.MultiSportsLobby,\n breadcrumbs: MultiSportsBreadcrumbsResolver,\n headerNavigation: true,\n schemaMarkup: WidgetSchemaMarkupResolver,\n sitemap: SitemapRoutingToken.MultiSportsHubSitemapResolver,\n },\n },\n ],\n },\n {\n path: '{settings}',\n loadChildren: () => import(/* webpackChunkName: \"ms-settings\" */ './settings/settings.module').then((m) => m.SettingsModule),\n },\n {\n path: '{favourites}',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-favourites-dashboard\" */ './favourites-dashboard/favourites-dashboard.module').then(\n (m) => m.FavouritesDashboardModule,\n ),\n data: { shouldKeepSubNav: true },\n },\n {\n path: '{events}',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-event-details\"*/ './event-details/event-details.module').then((m) => m.EventDetailsModule),\n },\n {\n path: '{live}',\n loadChildren: () => import(/* webpackChunkName: \"ms-event-list-live\" */ './event-list-live/live.module').then((m) => m.LiveModule),\n },\n {\n path: '{virtual}',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-virtual-list\" */ './virtual-list/virtual-list.module').then((m) => m.VirtualListModule),\n },\n {\n path: '{myBets}',\n loadChildren: () => import('./my-bets/my-bets.module').then((m) => m.MyBetsModule),\n data: {\n shouldKeepSubNav: true,\n shouldPreload: () => inject(UserService).isAuthenticated,\n onPreload: onPreloadMyBets,\n },\n },\n {\n path: '{all}',\n data: {\n tag: RouteTag.SportList,\n },\n loadComponent: () =>\n import(/* webpackChunkName: \"ms-sport-list-overview\" */ './event-list/sport/overview/sport-list-overview.component').then(\n (c) => c.SportListOverviewComponent,\n ),\n resolve: use(SportListOverviewResolver),\n },\n {\n path: '{games}/:name/:section',\n children: [\n {\n path: '',\n loadComponent: () => import('./banner/game-launcher.component').then((m) => m.GameLauncherComponent),\n data: { authorized: true, headerNavigation: false },\n resolve: { model: gameLauncherResolver },\n },\n {\n path: ':position/:title/:provider/:lobbyPosition',\n loadComponent: () => import('./banner/game-launcher.component').then((m) => m.GameLauncherComponent),\n data: { authorized: true, headerNavigation: false },\n resolve: { model: gameLauncherResolver },\n },\n ],\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: '^((.*)-)?(\\\\d+)/{fixtures}/((.*)-)?(\\\\d:\\\\d+)$',\n matcherMode: 'full',\n },\n loadChildren: () => import(/* webpackChunkName: \"ms-racing\" */ './racing/racing.module').then((m) => m.RacingModule),\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: `^((.*)-)?(${SportConstant.Golf})/{eachWay}$`,\n matcherMode: 'full',\n },\n loadChildren: () => import(/* webpackChunkName: \"ms-racing\" */ './racing/racing.module').then((m) => m.RacingModule),\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: `^((.*)-)?(${SportConstant.Horses})$`,\n },\n loadChildren: () => import(/* webpackChunkName: \"ms-racing\" */ './racing/racing.module').then((m) => m.RacingModule),\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: `^((.*)-)?(${SportConstant.Greyhounds})$`,\n },\n loadChildren: () => import(/* webpackChunkName: \"ms-racing\" */ './racing/racing.module').then((m) => m.RacingModule),\n },\n // sport routes\n {\n matcher: regexMatcher,\n canActivateChild: [SportRedirectGuard],\n data: {\n matcherPattern: '^((.*)-)?(\\\\d+)$',\n matcherMapping: {\n sportName: 2,\n sport: 3,\n },\n subNavigation: SportSubNavigationResolve,\n sitemap: SitemapRoutingToken.SportSitemapResolver,\n },\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-sport-event-list\" */ './event-list/event-list.module').then((m) => m.EventListModule),\n },\n {\n path: '{calendar}',\n loadComponent: () =>\n import(/* webpackChunkName: \"ms-sport-calendar\" */ './calendar/calendar.component').then((m) => m.CalendarComponent),\n resolve: use(CalendarResolver),\n data: {\n breadcrumbs: CalendarBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.CalendarSitemapResolver,\n },\n },\n {\n matcher: regexMatcher,\n data: {\n matcherPattern: '^({in30minutes}|{in60minutes}|{in180minutes}|{today}|{tomorrow}|{after2days}|{after3days})$',\n matcherMapping: {\n context: 1,\n },\n subNavigationHiddenOnSmallScreen: true,\n breadcrumbs: CalendarBreadcrumbsResolver,\n sitemap: SitemapRoutingToken.CalendarSitemapResolver,\n },\n loadComponent: () =>\n import(/* webpackChunkName: \"ms-sport-list-overview\" */ './event-list/sport/overview/sport-list-overview.component').then(\n (c) => c.SportListOverviewComponent,\n ),\n resolve: use(SportListOverviewResolver),\n },\n {\n path: '{multiBuilder}',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-multi-builder\"*/ './multi-builder/multi-builder.module').then((m) => m.MultiBuilderModule),\n data: { shouldKeepSubNav: true },\n },\n {\n path: '{standings}',\n children: [\n {\n path: '',\n loadComponent: () => import('./common/empty.component').then((m) => m.EmptyComponent),\n },\n {\n matcher: multiNameIdentifierMatcher,\n data: {\n matcherParams: ['sport', 'region', 'league', 'group'],\n sitemap: SitemapRoutingToken.StandingsSitemapResolver,\n },\n loadComponent: () =>\n import(/* webpackChunkName: \"ms-standing-page\" */ './event-list/sport/standings-page.component').then(\n (c) => c.StandingsPageComponent,\n ),\n resolve: use(StandingsPageResolver),\n },\n ],\n },\n {\n path: '{bets}',\n loadChildren: () =>\n import(/* webpackChunkName: \"ms-sport-event-list\" */ './event-list/event-list.module').then((m) => m.FixtureListModule),\n },\n ],\n },\n];\n\nexport const EXTRA_SPORTS_ROUTES: SportRoute[] = [\n {\n path: 'news',\n children: [\n {\n path: '**',\n loadComponent: () => import('./common/empty.component').then((m) => m.EmptyComponent),\n canActivate: [OutsideSportsGuard],\n },\n ],\n },\n];\n","import { inject } from '@angular/core';\nimport { Route } from '@angular/router';\n\nimport { VANILLA_LAZY_ROUTES, VANILLA_SECONDARY_ROUTES } from '@frontend/loaders/routes';\nimport { HtmlNode, MediaQueryService } from '@frontend/vanilla/core';\n\nimport { INTERNAL_ESPORTS_ROUTES } from './esports-web-internal.routes';\nimport { GtmService } from './main/gtm.service';\nimport { SportRoute } from './router/multi-route.model';\nimport { NoMatchRouteGuard } from './router/no-match-route.guard';\nimport { SeoRedirectGuard } from './seo/seo-redirect.guard';\nimport { EXTRA_SPORTS_ROUTES, INTERNAL_SPORTS_WEB_ROUTES } from './sports-web-internal.routes';\n\nconst configureVanillaLazyRoutes = (routes: Route[]): Route[] => {\n return routes.map((route) => ({\n ...route,\n // Vanilla modules requires MediaQueryService feature, hence we are overriding in sports level\n providers: [{ provide: MediaQueryService }],\n canActivate: [\n () => {\n const htmlNode = inject(HtmlNode);\n htmlNode.setCssClass('vanilla-route', true);\n },\n ],\n canDeactivate: [\n () => {\n const htmlNode = inject(HtmlNode);\n htmlNode.setCssClass('vanilla-route', false);\n },\n ],\n }));\n};\n\nexport const routes: SportRoute[] = [\n {\n path: '',\n redirectTo: '{culture}/sports',\n pathMatch: 'full',\n },\n {\n path: '{culture}',\n resolve: [() => inject(GtmService).renderGTMTag()],\n children: [\n ...configureVanillaLazyRoutes(VANILLA_LAZY_ROUTES),\n {\n path: '',\n redirectTo: 'sports',\n pathMatch: 'full',\n },\n ...EXTRA_SPORTS_ROUTES,\n {\n path: 'sports',\n children: [...INTERNAL_SPORTS_WEB_ROUTES],\n },\n {\n path: '{esports}',\n children: [...INTERNAL_ESPORTS_ROUTES],\n },\n ],\n },\n /**\n * Configure this route at the root level, not as a child.\n * This means the outlet is always appended to the end of the URL e.g. /en/sports(overlay:menu) or /en/sports/basketball(overlay:menu).\n * This is cleaner and less risky than making the secondary outlet a child of another route e.g. /en/ resulting in /en/(sports//overlay:menu).\n */\n ...configureVanillaLazyRoutes([...VANILLA_SECONDARY_ROUTES]),\n {\n path: '**',\n loadComponent: () => import('./common/empty.component').then((m) => m.EmptyComponent),\n canActivate: [NoMatchRouteGuard, SeoRedirectGuard],\n },\n];\n","export const environment = {\n production: true,\n};\n\nexport const extModules = [];\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const BannerWidgetLoader = {\n id: 'banner',\n loaderFn: () => import(/* webpackChunkName: \"ms-banner-widget\" */ './banner-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const BetColumnLoader: LoaderFnConfig = {\n id: 'bet-column',\n loaderFn: () => import('./bet-column.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const BetGeneratorLoader: LoaderFnConfig = {\n id: 'bet-generator',\n loaderFn: () => import('./bet-generator.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const TimeFiltersWidgetLoader: LoaderFnConfig = {\n id: 'time-filters-widget',\n loaderFn: () => import('./time-filters-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const TopItemsLoader: LoaderFnConfig = {\n id: 'top-items-widget',\n loaderFn: () => import('./top-items-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const CrmPromotionWidgetLoader: LoaderFnConfig = {\n id: 'crm-promotion-widget',\n loaderFn: () => import('./crm-promotion-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const StandingsWidgetLoader = {\n id: 'standing-widget',\n loaderFn: () => import('./standings-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const FavouritesWidgetLoader: LoaderFnConfig = {\n id: 'favourites-widget',\n loaderFn: () => import('./favourites-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const GeoLocationAssetLoader = {\n id: 'geo-location-asset',\n loaderFn: () => import(/* webpackChunkName: \"ms-geo-location-asset-loader\" */ './geo-location.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const HiddenMarketLoader: LoaderFnConfig = {\n id: 'hidden-market',\n loaderFn: () => import('./hidden-market.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { InjectionToken } from '@angular/core';\n\nexport type LazyStylesConfig = {\n isEpcotEnabled: boolean;\n};\n\nexport const LAZY_STYLES_CONFIG = new InjectionToken('LAZY_STYLES_CONFIG');\n","import { Injector } from '@angular/core';\n\nimport { StyleOptions } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nimport { LAZY_STYLES_CONFIG } from '../lazy-features/lazy-styles.config';\n\nexport const HighlightsMarqueeLoader = {\n id: 'highlights-marquee',\n loaderFn: () => import(/* webpackChunkName: \"ms-highlights-marquee\" */ './highlights-marquee.feature'),\n additionalStylesFn: (injector: Injector): StyleOptions[] | undefined =>\n injector.get(LAZY_STYLES_CONFIG).isEpcotEnabled ? [{ id: 'epcot-marquee', type: 'theme' }] : undefined,\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const MainComponentLoader = {\n id: 'ms-main-component',\n loaderFn: () => import(/* webpackChunkName: \"ms-main-component\" */ './main.component').then(() => []),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const MediaLoader = {\n id: 'media',\n loaderFn: () => import(/* webpackChunkName: \"ms-media-widget\" */ './media.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const MinigamesLoader = {\n id: 'minigames',\n loaderFn: () => import(/* webpackChunkName: \"ms-minigames-widget\" */ './minigames.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const NextToGoLoader = {\n id: 'next-to-go',\n loaderFn: () => import(/* webpackChunkName: \"ms-next-to-go\" */ './next-to-go.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { Injector } from '@angular/core';\n\nimport { StyleOptions } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nimport { LAZY_STYLES_CONFIG } from '../lazy-features/lazy-styles.config';\n\nexport const OutrightsGridLoader = {\n id: 'outrights-grid',\n loaderFn: () => import(/* webpackChunkName: \"ms-outrights-widget\" */ './outrights-grid.feature'),\n additionalStylesFn: (injector: Injector): StyleOptions[] | undefined =>\n injector.get(LAZY_STYLES_CONFIG).isEpcotEnabled ? [{ id: 'epcot-outrights-grid', type: 'theme' }] : undefined,\n product: ClientConfigProductName.SPORTS,\n};\n","import { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const PanicButtonLoader: LoaderFnConfig = {\n id: 'panic-button',\n loaderFn: () => import('./panic-button.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const PopularMultiBetsLoader = {\n id: 'popular-multi-bets',\n loaderFn: () => import(/* webpackChunkName: \"ms-popular-multi-bets\" */ './popular-multi-bets.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const PriceBoostLoader = {\n id: 'price-boost',\n loaderFn: () => import(/* webpackChunkName: \"ms-price-boost\" */ './price-boost.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const QuickLinkLoader = {\n id: 'quick-links',\n loaderFn: () => import(/* webpackChunkName: \"ms-quick-links\" */ './quick-links.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const ScoreboardCarouselLoader = {\n id: 'scoreboard-carousel',\n loaderFn: () => import(/* webpackChunkName: \"ms-scoreboard-carousel-widget\" */ './scoreboard-carousel.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const ShowCaseLoader = {\n id: 'showcase',\n loaderFn: () => import(/* webpackChunkName: \"ms-showcase\" */ './showcase.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const SportTreeLoader = {\n id: 'sport-tree',\n loaderFn: () => import(/* webpackChunkName: \"ms-sport-tree-widget\" */ './sport-tree.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const StoryContentLoader = {\n id: 'story-content',\n loaderFn: () => import(/* webpackChunkName: \"ms-story-content\" */ './story-content.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const TabbedGridLoader = {\n id: 'tabbed-grid',\n loaderFn: () => import(/* webpackChunkName: \"ms-tabbed-grid-widget\" */ './tabbed-grid.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const TeaserLoader = {\n id: 'teaser',\n loaderFn: () => import(/* webpackChunkName: \"ms-teaser-widget\" */ './teaser.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { Injector } from '@angular/core';\n\nimport { StyleOptions } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nimport { LAZY_STYLES_CONFIG } from '../lazy-features/lazy-styles.config';\n\nexport const TopEventsLoader = {\n id: 'top-events',\n loaderFn: () => import(/* webpackChunkName: \"ms-top-events\" */ './top-events.feature'),\n additionalStylesFn: (injector: Injector): StyleOptions[] | undefined =>\n injector.get(LAZY_STYLES_CONFIG).isEpcotEnabled ? [{ id: 'epcot-top-events', type: 'theme' }] : undefined,\n product: ClientConfigProductName.SPORTS,\n};\n","import { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const WidgetComposableLoader = {\n id: 'widget-composable',\n loaderFn: () => import(/* webpackChunkName: \"ms-widget-composable\" */ './composable-widget.feature'),\n product: ClientConfigProductName.SPORTS,\n};\n","import { Provider } from '@angular/core';\n\nimport { registerLoaderFn } from '@frontend/loaders';\n\nimport { BannerWidgetLoader } from '../banner/banner-widget.loader';\nimport { BetColumnLoader } from '../bet-column/bet-column.loader';\nimport { BetGeneratorLoader } from '../bet-generator-shared/bet-generator.loader';\nimport { TimeFiltersWidgetLoader } from '../calendar/time-filters-widget.loader';\nimport { TopItemsLoader } from '../competition-list/top-items.loader';\nimport { CrmPromotionWidgetLoader } from '../crm-promotion-widget/crm-promotion-widget.loader';\nimport { StandingsWidgetLoader } from '../event-list-shared/sport/standings-widget.loader';\nimport { FavouritesWidgetLoader } from '../favourites-widget/favourites-widget.loader';\nimport { GeoLocationAssetLoader } from '../geo-location/geo-location.loader';\nimport { HiddenMarketLoader } from '../hidden-market/hidden-market.loader';\nimport { HighlightsMarqueeLoader } from '../highlights-marquee/highlights-marquee.loader';\nimport { MainComponentLoader } from '../main/main.loader';\nimport { MediaLoader } from '../media/media.loader';\nimport { MinigamesLoader } from '../minigames/minigames.loader';\nimport { NextToGoLoader } from '../next-to-go/next-to-go.loader';\nimport { OutrightsGridLoader } from '../outrights-grid/outrights-grid.loader';\nimport { PanicButtonLoader } from '../panic-button/panic-button.loader';\nimport { PopularMultiBetsLoader } from '../popular-bets/popular-multi-bets-widget/popular-multi-bets.loader';\nimport { PriceBoostLoader } from '../priceboost/price-boost.loader';\nimport { QuickLinkLoader } from '../quick-links/quicklink.loader';\nimport { ScoreboardCarouselLoader } from '../scoreboard-carousel/scoreboard-carousel.loader';\nimport { ShowCaseLoader } from '../showcase/showcase.loader';\nimport { SportTreeLoader } from '../sport-tree/sport-tree.loader';\nimport { StoryContentLoader } from '../story-content/story-content.loader';\nimport { TabbedGridLoader } from '../tabbed-grid/tabbed-grid.loader';\nimport { TeaserLoader } from '../teaser/teaser.loader';\nimport { TopEventsLoader } from '../top-events/top-events.loader';\nimport { WidgetComposableLoader } from '../widget/composable/widget-composable.loader';\n\nexport const provideLazyFeatures = (): Provider[] => [\n registerLoaderFn(SportTreeLoader),\n registerLoaderFn(GeoLocationAssetLoader),\n registerLoaderFn(MediaLoader),\n registerLoaderFn(MinigamesLoader),\n registerLoaderFn(BannerWidgetLoader),\n registerLoaderFn(TeaserLoader),\n registerLoaderFn(PopularMultiBetsLoader),\n registerLoaderFn(MainComponentLoader),\n registerLoaderFn(PanicButtonLoader),\n registerLoaderFn(HiddenMarketLoader),\n registerLoaderFn(BetColumnLoader),\n registerLoaderFn(BetGeneratorLoader),\n registerLoaderFn(CrmPromotionWidgetLoader),\n registerLoaderFn(FavouritesWidgetLoader),\n registerLoaderFn(StoryContentLoader),\n registerLoaderFn(StandingsWidgetLoader),\n registerLoaderFn(TimeFiltersWidgetLoader),\n registerLoaderFn(TopItemsLoader),\n // Updated\n registerLoaderFn(QuickLinkLoader),\n registerLoaderFn(NextToGoLoader),\n registerLoaderFn(PriceBoostLoader),\n registerLoaderFn(WidgetComposableLoader),\n registerLoaderFn(OutrightsGridLoader),\n registerLoaderFn(ShowCaseLoader),\n registerLoaderFn(TabbedGridLoader),\n registerLoaderFn(TopEventsLoader),\n registerLoaderFn(HighlightsMarqueeLoader),\n registerLoaderFn(ScoreboardCarouselLoader),\n];\n","import { EnvironmentProviders, Provider, importProvidersFrom } from '@angular/core';\nimport { HAMMER_GESTURE_CONFIG, HammerModule } from '@angular/platform-browser';\n\nimport { HammerGestureConfigProvider, NgScrollbarOptionsProvider } from '@frontend/sports/common/core/feature/browser';\nimport { provideSportsDynamicInjector } from '@frontend/sports/host-app/sports-product/feature/sports-product-service';\nimport { NG_SCROLLBAR_OPTIONS } from 'ngx-scrollbar';\n\nimport { provideLazyFeatures } from '../lazy-features/lazy-features.provider';\n\n/**\n * Provides root services needed for running the Sports-Web application as standalone or in host-app integration.\n * This should include all services which MUST be provided in root.\n * These services will be included in the main bundle for host-app so DO NOT extend this list unless the services should be provided in the host-app root.\n * For other cases, use {@link provideSportsWebCore}\n * @see provideSportsWebCore\n * @returns Providers needed for running Sports-Web.\n */\nexport function provideSportsWebRootServices(): (Provider | EnvironmentProviders)[] {\n return [\n provideLazyFeatures(),\n provideSportsDynamicInjector(),\n {\n provide: NG_SCROLLBAR_OPTIONS,\n useClass: NgScrollbarOptionsProvider,\n },\n importProvidersFrom(HammerModule),\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: HammerGestureConfigProvider,\n },\n ];\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\n\nimport { ConnectionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { PageViewDataProvider, TrackingData } from '@frontend/vanilla/core';\nimport { meanBy } from 'lodash-es';\nimport { Observable, Subject, filter } from 'rxjs';\n\n@Injectable()\nexport class NetworkPerformancePageViewDataProvider implements PageViewDataProvider {\n private firstLoad = true;\n private tracked = new Subject();\n private zone = inject(NgZone);\n\n constructor(\n private connectionConfig: ConnectionConfig,\n private routerEventService: RouterEventsService,\n ) {\n this.routerEventService.currentActivationEnd.pipe(filter(isDefined)).subscribe(() => {\n this.measure();\n });\n }\n\n getData(): Observable {\n return this.tracked.asObservable();\n }\n\n private measure(): void {\n if (!performance || !performance.timing) {\n return;\n }\n\n const cdsEntries = performance.getEntriesByType('resource').filter((e) => new RegExp(this.connectionConfig.cdsUrlBase).test(e.name));\n\n if (!cdsEntries || !cdsEntries.length) {\n return;\n }\n\n // clear the resource timings in case we have navigated before (meaning this is not the first time on the homepage)\n // otherwise this would break the tracking from the homepage first load\n if (!this.firstLoad) {\n performance.clearResourceTimings();\n }\n\n this.firstLoad = false;\n\n this.zone.runOutsideAngular(() =>\n setTimeout(() => {\n this.tracked.next({\n 'performance.cds': this.round(meanBy(cdsEntries, (e) => e.duration)),\n });\n }),\n );\n }\n\n /**\n * Rounds the specified number or returns `defaultValue` if it's null, undefined or invalid.\n *\n * @experimental\n */\n private round(value: number | null | undefined, defaultValue = 0): number {\n const rounded = Math.round(value ?? 0);\n\n return Number.isNaN(rounded) ? defaultValue : rounded;\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { PAGE_VIEW_DATA_PROVIDER } from '@frontend/vanilla/core';\n\nimport { NetworkPerformancePageViewDataProvider } from './network-performance-page-view-data-provider';\n\nexport function provideTracking(): Provider {\n return { provide: PAGE_VIEW_DATA_PROVIDER, useClass: NetworkPerformancePageViewDataProvider, multi: true };\n}\n","import { Injectable } from '@angular/core';\n\nimport { AccaBoostConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BetslipIntegrationService } from 'packages/sports/common/betslip/integration/betslip-integration.service';\nimport { Observable, concatMapTo, filter, first, map, noop, repeat, timer } from 'rxjs';\n\nimport { AccaBoostRefreshTrigger } from './acca-boost-token-provider.service';\n\n@Injectable()\nexport class AccaBoostRefreshTriggerService implements AccaBoostRefreshTrigger {\n constructor(\n private betslipIntegrationService: BetslipIntegrationService,\n private config: AccaBoostConfig,\n ) {}\n\n getTrigger$(): Observable {\n const whenBetslipGetsEmpty$ = this.betslipIntegrationService.betslipPicksCount$().pipe(\n filter((pickCount) => pickCount === 0),\n first(),\n map(noop),\n );\n const pollingInterval$ = timer(this.config.pollingInterval);\n\n // emit after polling interval and only when betslip gets empty\n return pollingInterval$.pipe(concatMapTo(whenBetslipGetsEmpty$), repeat());\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, of } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class GlobalBestOddsGuaranteeAvailabilityService {\n get isBogAvailable$(): Observable {\n return of(true);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { getSourceEventId } from '@frontend/sports/betting-offer/feature/model';\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { RacingConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { toDictionary } from '@frontend/sports/common/core/utils/collection';\nimport { BogVersion } from '@frontend/sports/types/configuration/client-configuration';\nimport { isEqual } from 'lodash-es';\nimport { BestOddsGuaranteedToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { EMPTY, Observable, Subject, catchError, distinctUntilChanged, map, merge, of, shareReplay, switchMap, timer } from 'rxjs';\n\nimport { PayoutType, RewardTokenType } from '../../tokens-base/token-base.models';\nimport { BogToken, BogTokensResponse } from '../models/models';\nimport { GlobalBestOddsGuaranteeAvailabilityService } from './global-best-odds-guarantee-availability.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BogTokenProviderService {\n private readonly logger: SportsRemoteLogger;\n\n private readonly refreshSubject = new Subject();\n readonly tokens$: Observable = this.isTokenBasedBogEnabled() ? this.poolTokens() : EMPTY;\n\n constructor(\n private racingConfig: RacingConfig,\n private apiService: ApiService,\n private bogAvailabilityService: GlobalBestOddsGuaranteeAvailabilityService,\n private loggerFactory: LoggerFactory,\n ) {\n this.logger = this.loggerFactory.getLogger('BogTokenProviderService');\n }\n\n refresh(): void {\n this.refreshSubject.next();\n }\n\n private getBogTokens(): Observable {\n return this.apiService.get('crmOffers/GetBogTokens').pipe(\n catchError((error) => {\n this.logger.error(error, 'failed to get bog tokens');\n\n return [];\n }),\n );\n }\n\n private poolTokens(): Observable {\n return merge(\n of([]),\n this.bogAvailabilityService.isBogAvailable$.pipe(\n switchMap((isBogAvailable) => {\n if (!isBogAvailable) {\n return of([]);\n }\n\n return merge(this.refreshSubject.asObservable(), timer(0, this.racingConfig.refreshInterval)).pipe(\n switchMap(() => this.getBogTokens()),\n map((response) => response.bogTokens.map(this.mapToRewardToken)),\n );\n }),\n ),\n ).pipe(\n distinctUntilChanged((prev, current) => isEqual(prev, current)),\n shareReplay(1),\n );\n }\n\n private mapToRewardToken(token: BogToken): BestOddsGuaranteedToken {\n return {\n id: token.id.toString(),\n cmsItemId: '',\n startDate: new Date(token.schedule.fromUtc),\n expiryDate: new Date(token.schedule.toUtc),\n rewardTokenType: RewardTokenType.BestOddsGuaranteed,\n userTokenId: token.id.toString(),\n tokenType: '',\n maximumStake: token.stakeCap?.value,\n payoutType: PayoutType.Cash,\n filter: {\n sports: [],\n meetings: [],\n competitions: [],\n fixtures: [],\n marketTemplates: [],\n marketParameters: [],\n markets: [],\n options: [],\n slipTypes: token.slipTypes,\n schedule: {\n daysOfTheWeek: token.schedule.daysOfWeek,\n timesOfTheDay: token.schedule.timesOfDay.map((timeOfDay) => ({ ...timeOfDay })),\n },\n sportsFilter: toDictionary(\n token.sports,\n (sportConfig) => sportConfig.id,\n (sportConfig) => ({\n competitions: sportConfig.competitionIds.map((id) => +getSourceEventId(id)),\n regions: sportConfig.regionIds,\n meetings: sportConfig.meetingIds.map((id) => +getSourceEventId(id)),\n }),\n ),\n },\n };\n }\n\n private isTokenBasedBogEnabled() {\n return this.racingConfig.isBOGEnabled && this.racingConfig.bogVersion === BogVersion.TokenBased;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BestOddsGuaranteedToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { Observable, map } from 'rxjs';\n\nimport { BestOddsFixtureLikeInput } from '../models/models';\nimport { BestOddsGuaranteedService } from './best-odds-guaranteed.service';\nimport { BogTokenProviderService } from './bog-token-provider.service';\nimport { FixtureBestOddsGuaranteedTokenValidatorService } from './fixture-best-odds-guaranteed-token-validator.service';\n\n@Injectable()\nexport class TokenBasedBestOddsGuaranteedService extends BestOddsGuaranteedService {\n constructor(\n private tokenProvider: BogTokenProviderService,\n private tokenValidator: FixtureBestOddsGuaranteedTokenValidatorService,\n ) {\n super();\n }\n\n isFixtureEligible(fixture: BestOddsFixtureLikeInput): Observable {\n return this.tokenProvider.tokens$.pipe(\n map((tokens: BestOddsGuaranteedToken[]) => {\n return !!tokens.length && tokens.some((token) => this.tokenValidator.validate(token, fixture));\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { RacingConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BogVersion } from '@frontend/sports/types/configuration/client-configuration';\n\nimport { BestOddsGuaranteedService } from './best-odds-guaranteed.service';\nimport { BogTokenProviderService } from './bog-token-provider.service';\nimport { ClassicBestOddsGuaranteedService } from './classic-best-odds-guaranteed.service';\nimport { FixtureBestOddsGuaranteedTokenValidatorService } from './fixture-best-odds-guaranteed-token-validator.service';\nimport { TokenBasedBestOddsGuaranteedService } from './token-based-best-odds-guaranteed.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BestOddsGuaranteedFactoryService {\n constructor(\n private racingConfig: RacingConfig,\n private tokenProvider: BogTokenProviderService,\n private tokenValidator: FixtureBestOddsGuaranteedTokenValidatorService,\n ) {}\n\n create(): BestOddsGuaranteedService {\n switch (this.racingConfig.bogVersion) {\n case BogVersion.TokenBased:\n return new TokenBasedBestOddsGuaranteedService(this.tokenProvider, this.tokenValidator);\n default:\n return new ClassicBestOddsGuaranteedService(this.racingConfig);\n }\n }\n}\n","import { BestOddsGuaranteedFactoryService } from './services/best-odds-guaranteed-factory.service';\nimport { BestOddsGuaranteedService } from './services/best-odds-guaranteed.service';\n\nexport const provideBestOdds = () => [\n {\n provide: BestOddsGuaranteedService,\n useFactory: (factory: BestOddsGuaranteedFactoryService) => factory.create(),\n deps: [BestOddsGuaranteedFactoryService],\n },\n];\n","import { InjectionToken, Provider, Type } from '@angular/core';\n\nimport { OnAppInit, runOnAppInit } from '@frontend/vanilla/core';\n\nexport const ON_SPORTS_WEB_INIT = new InjectionToken('ON_SPORTS_WEB_INIT');\n\nexport function runOnSportsWebInit(type: Type): Provider[] {\n return [\n runOnAppInit(type),\n {\n provide: ON_SPORTS_WEB_INIT,\n multi: true,\n useExisting: type,\n },\n ];\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd } from '@angular/router';\n\nimport { LayoutNavigationConfig, PrettyUrlsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { filterSports, filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { MediaQueryService, OnAppInit } from '@frontend/vanilla/core';\nimport { isArray, isEqual } from 'lodash-es';\nimport { Observable, isObservable, of } from 'rxjs';\n\nimport { TopNavigationVersion } from '../navigation-core/navigation-core.models';\nimport { getToken } from '../router/router.exports';\nimport { SchemaMarkupType } from '../schema-markup/schema-markup-enum';\nimport { SchemaMarkupService } from '../schema-markup/schema-markup.service';\nimport { BreadcrumbModel } from './breadcrumb.models';\nimport { BreadcrumbsSlotService } from './breadcrumbs-slot.service';\nimport { BreadcrumbData, BreadcrumbSlotResolve, IBreadcrumbsResolve } from './breadcrumbs.resolver';\nimport { BreadcrumbsService } from './breadcrumbs.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbsBoostrapService implements OnAppInit {\n private lastActivationEnd?: ActivationEnd;\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private injector: Injector,\n private routerEventsService: RouterEventsService,\n loggerFactory: LoggerFactory,\n private breadcrumbService: BreadcrumbsService,\n private breadcrumbSlotService: BreadcrumbsSlotService,\n private media: MediaQueryService,\n private schemaMarkupService: SchemaMarkupService,\n private layoutNavConfig: LayoutNavigationConfig,\n private urlConfig: PrettyUrlsConfig,\n ) {\n this.logger = loggerFactory.getLogger('BreadcrumbsBoostrapService');\n }\n\n onAppInit(): void {\n this.media.observe().pipe(filterSportsEmitLast()).subscribe(this.rebuildBreadcrumbs);\n this.routerEventsService.currentActivationEnd.pipe(filterSports()).subscribe((event) => this.activationEnded(event));\n }\n\n private rebuildBreadcrumbs = () => this.activationEnded(this.lastActivationEnd);\n\n private activationEnded(event: ActivationEnd | undefined): void {\n if (!event) {\n return;\n }\n\n this.lastActivationEnd = event;\n\n const resolverType = this.findFirstBreadcrumbResolver(event.snapshot);\n if (!resolverType) {\n if (this.breadcrumbSlotService.registeredComponent) {\n this.clearSlot();\n }\n\n this.clearCrumbs();\n\n return;\n }\n\n const resolver: IBreadcrumbsResolve = getToken(resolverType, event.snapshot, this.injector);\n\n if (!resolver) {\n this.logger.error(`Could not resolve Breadcrumbs resolver: ${resolverType} - route: ${event}`);\n\n return;\n }\n\n this.schemaMarkupService.removeSchemaMarkupScriptFromBody(SchemaMarkupType.BreadcrumbList);\n const result = resolver.resolve(event.snapshot.data.model);\n\n let model: Observable;\n\n if (isObservable(result)) {\n model = result;\n } else {\n model = of(result);\n }\n\n model.subscribe((data) => this.setBreadcrumbs(data, this.lastActivationEnd?.snapshot));\n }\n\n private setBreadcrumbs(breadcrumbsModel: BreadcrumbModel[] | BreadcrumbSlotResolve, snapshot: ActivatedRouteSnapshot | undefined): void {\n let schemaBreadcrumbs: BreadcrumbModel[];\n const shouldSetBreadcrumbs = this.shouldSetBreadcrumbs(snapshot);\n if (this.isSlotModel(breadcrumbsModel)) {\n this.clearCrumbs();\n\n schemaBreadcrumbs = breadcrumbsModel.schemaBreadcrumbs || [];\n const changedInputs = !isEqual(this.breadcrumbSlotService.registeredComponent?.inputs, breadcrumbsModel.inputs);\n\n if ((!this.isAlreadyRegistered(breadcrumbsModel) || changedInputs) && shouldSetBreadcrumbs) {\n this.breadcrumbSlotService.setSlot({\n ...breadcrumbsModel,\n required: true,\n });\n }\n } else {\n this.clearSlot();\n\n schemaBreadcrumbs = breadcrumbsModel;\n\n if (shouldSetBreadcrumbs) {\n this.breadcrumbService.setBreadcrumbs(breadcrumbsModel);\n } else {\n this.clearCrumbs();\n }\n }\n\n this.schemaMarkupService.addBreadcrumbSchemaMarkup(schemaBreadcrumbs);\n }\n\n private isAlreadyRegistered(breadcrumbsModel: BreadcrumbSlotResolve): boolean {\n if (this.breadcrumbSlotService.registeredComponent === undefined) {\n return false;\n }\n\n const getConstructor = (o: any) => Object.getPrototypeOf(o).constructor;\n\n return getConstructor(breadcrumbsModel.component) === getConstructor(this.breadcrumbSlotService.registeredComponent.component);\n }\n\n private clearCrumbs(): void {\n this.breadcrumbService.setBreadcrumbs([]);\n }\n\n private clearSlot(): void {\n this.breadcrumbSlotService.clearSlot();\n }\n\n private isSlotModel(model: BreadcrumbModel[] | BreadcrumbSlotResolve): model is BreadcrumbSlotResolve {\n return !isArray(model);\n }\n\n private findFirstBreadcrumbResolver(snapshot: ActivatedRouteSnapshot): any {\n let crtSnapshot: ActivatedRouteSnapshot | null = snapshot;\n\n while (crtSnapshot && (!crtSnapshot.data || !crtSnapshot.data['breadcrumbs'])) {\n crtSnapshot = crtSnapshot.parent;\n }\n\n return crtSnapshot && crtSnapshot.data['breadcrumbs'];\n }\n\n private shouldSetBreadcrumbs(snapshot: ActivatedRouteSnapshot | undefined): boolean {\n if (!snapshot) {\n return true;\n }\n\n const calendarContext: (string | undefined)[] = [\n this.urlConfig.translations.in30minutes,\n this.urlConfig.translations.in60minutes,\n this.urlConfig.translations.in180minutes,\n this.urlConfig.translations.today,\n this.urlConfig.translations.tomorrow,\n this.urlConfig.translations.after2days,\n this.urlConfig.translations.after3days,\n ];\n\n const { sport, context, region } = snapshot.params;\n const isCalendarCompetition = snapshot.data?.tag === RouteTag.Competition && calendarContext.includes(context);\n const isTennis = SportConstant.Tennis === +sport && context === this.urlConfig.translations.betting && !!region;\n\n if (\n this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V3 &&\n snapshot.data &&\n (!snapshot.data.shouldKeepBreadcrumbs || isCalendarCompetition || isTennis)\n ) {\n return false;\n }\n\n return true;\n }\n}\n","import { Component, HostBinding, OnInit } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\n\nimport { SettingsUrlParam, UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Component({\n standalone: true,\n selector: 'ms-modal-pop-up-info',\n templateUrl: './modal-pop-up-info.component.html',\n styleUrls: ['./modal-pop-up-info.component.scss'],\n})\nexport class ModalPopUpComponent implements OnInit {\n @HostBinding('class') className = 'betting-settings-update-popup';\n settingsURL: string;\n\n constructor(\n private activeModal: ActiveModal,\n private urlHelper: UrlHelperService,\n public sitecore: Sitecore,\n ) {}\n\n ngOnInit(): void {\n this.settingsURL = this.urlHelper.getSettingsUrl(SettingsUrlParam.Betslip);\n }\n\n close(): void {\n this.activeModal.close();\n }\n}\n","
{{ sitecore.betslip.betslipRuleUpdatePopupUS.Title }}
\n
\n\n{{ sitecore.betslip.betslipRuleUpdatePopupUS.Messages.BetslipSettingsLinkText }}\n","import { Injectable } from '@angular/core';\n\nimport { OddsAcceptanceMode } from '@bpos';\nimport { OddsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { BettingSettingsService, UserService } from '@frontend/sports/user/feature';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { IBetslipDigitalRootState } from 'packages/sports/common/betslip/digital/state';\nimport SettingsActions from 'packages/sports/common/betslip/modules/settings/actions';\nimport { switchMap } from 'rxjs';\n\nimport { OddsAcceptance } from '../betslip-base/models/odds-acceptance.enum';\nimport { ModalPopUpComponent } from './modal-pop-up-info.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OddAcceptanceModeFilterService implements OnAppInit {\n private modalDialogRef: Nullable;\n selectedOddAcceptance: OddsAcceptanceMode = OddsAcceptanceMode.Higher;\n\n constructor(\n private modalDialogService: ModalDialogService,\n private userService: UserService,\n private oddsConfig: OddsConfig,\n private store: Store,\n private bettingSettingsService: BettingSettingsService,\n ) {}\n\n onAppInit(): void {\n this.userService.onUserLogInWithSettings$\n .pipe(\n filterSportsEmitLast(),\n switchMap(() => this.bettingSettingsService.bettingSettings$),\n )\n .subscribe((bettingSettings) => {\n if (\n bettingSettings.oddsAcceptanceMode === OddsAcceptance.No &&\n this.oddsConfig.showOddsAcceptanceSettings &&\n this.oddsConfig.hideDontAcceptOptionSetting\n ) {\n this.store.dispatch(SettingsActions.requestSetOddAcceptance({ acceptance: this.selectedOddAcceptance }));\n\n if (!this.modalDialogRef) {\n this.modalDialogRef = this.modalDialogService.openDialog(ModalPopUpComponent, {\n settings: {\n isModalDialog: false,\n hideCloseButton: true,\n cssClass: 'betting-settings-update__modal',\n backdropClass: 'betting-settings-update__modal-backdrop',\n },\n });\n }\n\n if (this.modalDialogRef) {\n this.modalDialogRef.result.then(() => this.closeModal());\n }\n }\n });\n\n this.userService.onUserLogout$.pipe(filterSportsEmitLast()).subscribe(() => {\n this.closeModal();\n });\n }\n\n private closeModal(): void {\n if (this.modalDialogRef) {\n this.modalDialogRef.close();\n this.modalDialogRef = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { NativeAppService, OnAppInit } from '@frontend/vanilla/core';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { NativeEventType } from './model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeEventSubscription implements OnAppInit {\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private nativeAppService: NativeAppService,\n private redirecHelper: RedirectHelperService,\n loggerFactory: LoggerFactory,\n private sitecore: Sitecore,\n ) {\n this.logger = loggerFactory.getLogger('NativeEventSubscription');\n }\n\n onAppInit(): void {\n if (!this.nativeAppService.isNative) {\n return;\n }\n\n this.nativeAppService.eventsFromNative.pipe(filterSports()).subscribe((event) => {\n try {\n switch (event.eventName.toLowerCase()) {\n case NativeEventType.LiveAlertScreenNavigation.toLowerCase():\n return this.redirecHelper.goToEvent({ id: this.getEventId(event.parameters), name: '' });\n case NativeEventType.BetScreenNavigation.toLowerCase():\n case NativeEventType.MyBetsNavigation.toLowerCase():\n return this.redirecHelper.goToMyBets(undefined, event.parameters);\n case NativeEventType.OpenFreeBets.toLowerCase():\n return this.redirecHelper.goToPage(this.sitecore.crmTokens.links.promotions.url);\n }\n } catch (error) {\n this.logger.error(error, 'Error occured while subscribing to native events.');\n }\n });\n }\n\n /**\n * @ngdoc function\n * @name getEventId\n * @methodOf NativeEventSubscription\n * @description Fetch event id from CCB event parameters (me : mainEventId, e : eventId, le : liveEventId, t : scoreId)\n * @private\n */\n private getEventId(parameters: any): any {\n if (parameters.t === '1' || parameters.t === '2') {\n return parameters.me;\n }\n\n if (parameters.le !== undefined) {\n return parameters.le;\n }\n\n return parameters.e;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd } from '@angular/router';\n\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { filter, take } from 'rxjs';\n\nimport { getToken } from '../router/router.exports';\nimport { SchemaMarkupType } from './schema-markup-enum';\nimport { ISchemaMarkupResolver } from './schema-markup.resolver';\nimport { SchemaMarkupService } from './schema-markup.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SchemaMarkupBoostrapService implements OnAppInit {\n constructor(\n private injector: Injector,\n private routerEventsService: RouterEventsService,\n private schemaMarkupService: SchemaMarkupService,\n ) {}\n\n onAppInit(): void {\n this.routerEventsService.currentActivationEnd.pipe(filterSports()).subscribe((event) => this.activationEnded(event));\n }\n\n private activationEnded(event: ActivationEnd | undefined): void {\n if (!event) {\n return;\n }\n\n const resolverType = this.findFirstSubnavigationResolver(event.snapshot);\n this.schemaMarkupService.removeSchemaMarkupScriptFromBody(SchemaMarkupType.SportsEvent);\n if (!resolverType) {\n return;\n }\n\n const resolver = getToken>(resolverType, event.snapshot, this.injector);\n\n if (!resolver) {\n return;\n }\n\n const model = event.snapshot.data['model'];\n const events = resolver.resolve(model);\n this.schemaMarkupService.cleanEvents();\n\n events\n .pipe(\n take(1),\n filter((evnts) => evnts.length > 0),\n )\n .subscribe((evnts) => this.schemaMarkupService.addEventSchemaMarkup(evnts));\n }\n\n private findFirstSubnavigationResolver(snapshot: ActivatedRouteSnapshot): () => void {\n let crtSnapshot: ActivatedRouteSnapshot | null = snapshot;\n\n while (crtSnapshot && (!crtSnapshot.data || !crtSnapshot.data['schemaMarkup'])) {\n crtSnapshot = crtSnapshot.parent;\n }\n\n return crtSnapshot && crtSnapshot.data['schemaMarkup'];\n }\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { AccountMenuVersion } from '@frontend/sports/user/feature';\nimport { HtmlNode, OnAppInit, UserLoginEvent, UserService } from '@frontend/vanilla/core';\nimport { AccountMenuConfig } from '@frontend/vanilla/shared/account-menu';\nimport { combineLatest, filter, map, switchMap, take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsService implements OnAppInit {\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private accountMenuConfig: AccountMenuConfig,\n private htmlNode: HtmlNode,\n private routeService: RouterEventsService,\n private userService: UserService,\n ) {}\n\n onAppInit(): void {\n const routeNavigation$ = this.routeService.currentActivationEnd.pipe(filter((route) => route?.snapshot.data.tag));\n const vanillaAccountVersion$ = this.accountMenuConfig.whenReady.pipe(map(() => this.accountMenuConfig.account.version));\n\n const accountVersion$ = this.userService.isAuthenticated\n ? vanillaAccountVersion$\n : this.userService.events.pipe(\n filter((event) => event instanceof UserLoginEvent),\n take(1),\n switchMap(() => vanillaAccountVersion$),\n );\n\n combineLatest([accountVersion$, routeNavigation$])\n .pipe(filterSportsEmitLast(), takeUntilDestroyed(this.destroyRef))\n .subscribe(([accountVersion, route]) => {\n this.toggleCardLayoutStyle(accountVersion, this.isCardLayoutRoute(route));\n });\n }\n\n private isCardLayoutRoute(navRoute: ActivationEnd | undefined): boolean {\n return (\n navRoute?.snapshot.data.tag === RouteTag.Settings ||\n navRoute?.snapshot.data.tag === RouteTag.EarlyPayoutSettings ||\n navRoute?.snapshot.data.tag === RouteTag.GeneralBetslipSettings\n );\n }\n\n private toggleCardLayoutStyle(accountVersion: number, add: boolean) {\n if (accountVersion === AccountMenuVersion.V3) this.htmlNode.setCssClass('navigation-layout-page-card', add);\n }\n}\n","import { Injectable, Injector, Type } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd } from '@angular/router';\n\nimport { LayoutNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { filterSports, filterSportsEmitLast, fromSportsEnter, fromSportsLeave } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { Subject, skip, takeUntil } from 'rxjs';\n\nimport { AdaptiveLayoutService, AdaptiveLayoutState } from '../layout/adaptive-layout.service';\nimport { TopNavigationVersion } from '../navigation-core/navigation-core.models';\nimport { getToken } from '../router/router.exports';\nimport { SubNavigationResolve } from './sub-navigation-resolve.service';\nimport { SubNavigationService } from './sub-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SubNavigationBootstrapService implements OnAppInit {\n private validSubscription$ = new Subject();\n private resolver?: SubNavigationResolve;\n private lastResolverType?: any;\n private layoutState?: AdaptiveLayoutState;\n private lastActivationEnd?: ActivationEnd;\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private injector: Injector,\n private routerEvents: RouterEventsService,\n loggerFactory: LoggerFactory,\n private adaptiveLayout: AdaptiveLayoutService,\n private subNavigation: SubNavigationService,\n private layoutNavConfig: LayoutNavigationConfig,\n ) {\n this.logger = loggerFactory.getLogger('SubNavigationBootstrapService');\n }\n\n onAppInit(): void {\n this.adaptiveLayout.stateChange$.pipe(filterSportsEmitLast()).subscribe((state) => {\n this.layoutState = state;\n this.activationEnded(this.lastActivationEnd);\n });\n\n this.routerEvents.currentActivationEnd.pipe(filterSports()).subscribe((event) => this.activationEnded(event));\n\n fromSportsEnter().subscribe(() => this.activationEnded(this.lastActivationEnd));\n fromSportsLeave().subscribe(() => this.cleanUpNavigation());\n }\n\n private activationEnded(event: ActivationEnd | undefined): void {\n if (!event) {\n return;\n }\n\n this.lastActivationEnd = event;\n\n const resolverType = this.findFirstSubnavigationResolver(event.snapshot);\n if (!resolverType || !this.shouldShowSubNav(event.snapshot)) {\n this.cleanUpNavigation();\n\n return;\n }\n\n if (resolverType !== this.lastResolverType) {\n this.renewSubscription();\n this.resolver?.cleanup();\n\n this.resolver = getToken>(resolverType, event.snapshot, this.injector);\n\n if (!this.resolver) {\n this.logger.error(`Could not resolve Subnavigation resolver: ${resolverType} - route: ${event}`);\n\n return;\n }\n\n this.resolver.subNavigation$.pipe(skip(1), takeUntil(this.validSubscription$)).subscribe((items) => this.subNavigation.setTabs(items));\n this.resolver.tabSize$.pipe(takeUntil(this.validSubscription$)).subscribe((items) => this.subNavigation.setTabSize(items));\n this.resolver.tabFullWidth$.pipe(takeUntil(this.validSubscription$)).subscribe((items) => this.subNavigation.setFullWith(items));\n this.lastResolverType = resolverType;\n }\n\n const model = event.snapshot.data.model;\n\n if (this.resolver) {\n this.resolver.buildSubNavigation(this.layoutState || this.adaptiveLayout.current, event.snapshot, model);\n }\n }\n\n private cleanUpNavigation() {\n this.renewSubscription();\n this.lastResolverType = null;\n this.subNavigation.setTabs([]);\n this.subNavigation.setTabSize('large');\n\n if (this.resolver) {\n this.resolver.cleanup();\n }\n }\n\n private renewSubscription(): void {\n this.validSubscription$.next();\n this.validSubscription$.complete();\n this.validSubscription$ = new Subject();\n }\n\n private findFirstSubnavigationResolver(snapshot: ActivatedRouteSnapshot): Type> {\n let crtSnapshot: ActivatedRouteSnapshot | null = snapshot;\n\n while (crtSnapshot && (!crtSnapshot.data || !crtSnapshot.data.subNavigation)) {\n crtSnapshot = crtSnapshot.parent;\n }\n\n return crtSnapshot && crtSnapshot.data.subNavigation;\n }\n\n private shouldShowSubNav(snapshot: ActivatedRouteSnapshot): boolean {\n const crtSnapshot: ActivatedRouteSnapshot | null = snapshot;\n\n return this.layoutNavConfig.topNavigationVersion !== TopNavigationVersion.V3 || crtSnapshot.data?.shouldKeepSubNav;\n }\n}\n","\n \n\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, HostBinding, inject } from '@angular/core';\n\nimport { CrmConfig } from '@frontend/sports/common/client-config-data-access';\nimport { PromoBannerPayload } from '@frontend/sports/types/components/widget/types';\nimport { RewardTokensDataService } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-data.service';\nimport { getNonAccaTokens } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\nimport { filter, map, take, tap } from 'rxjs';\n\nimport { BetslipDigitalComponentLoaderService } from '../betslip/betslip-digital-component-loader.service';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\n\n@Component({\n selector: 'ms-reward-tokens-container',\n templateUrl: './reward-tokens-container.component.html',\n imports: [NgIf, ComponentProxyDirective, AsyncPipe],\n})\nexport class RewardTokensContainerComponent extends WidgetComponent {\n private readonly rewardTokensDataService = inject(RewardTokensDataService);\n private readonly betslipLoader = inject(BetslipDigitalComponentLoaderService);\n private readonly tokensConfig = inject(CrmConfig);\n private proxyComponentLoaded: boolean;\n\n @HostBinding('class') className = 'widget--proxied reward-tokens-banner';\n\n @HostBinding('style.--component-loader-height')\n get bannerComponentSize() {\n return !this.tokensConfig.promotions.isRegulatoryRestricted && this.tokensConfig.tokens.isExpandableRewardBannerEnabled ? '44px' : null;\n }\n\n @HostBinding('style.--component-loader-padding')\n get bannerComponentPadding() {\n return this.bannerComponentSize ? '0' : null;\n }\n\n bannerComponent$ = this.rewardTokensDataService.tokens$.pipe(\n map((data) => getNonAccaTokens(data)),\n tap((tokens) => {\n this.hasData = tokens?.length > 0;\n this.setWidgetLoaded();\n this.proxyComponentLoaded = true;\n }),\n filter((tokens) => tokens?.length > 0),\n map(() => this.betslipLoader.getRewardTokensComponent()),\n // complete when the proxy was created once\n take(1),\n );\n\n protected override onData(payload: PromoBannerPayload): void {\n if (!payload.isUserAuthenticated) {\n this.hasData = false;\n this.setWidgetLoaded();\n } else if (this.proxyComponentLoaded) {\n this.setWidgetLoaded();\n }\n }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { RewardTokensDataService } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-data.service';\n\nimport { WidgetRegistryService } from '../widget/core/widget-registry.service';\nimport { RewardTokensContainerComponent } from './reward-tokens-container.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RewardTokenWidgetRegistration implements OnAppInit {\n private rewardTokensDataService = inject(RewardTokensDataService);\n\n constructor(\n private widgetRegistry: WidgetRegistryService,\n private injector: Injector,\n ) {}\n\n onAppInit(): void {\n // start fetching tokens\n this.rewardTokensDataService.init();\n this.widgetRegistry.registerLazy(WidgetType.PromoBanner, RewardTokensContainerComponent, this.injector);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AnimationControl, AnimationControlService, OnAppInit } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AnimationDisabledService implements OnAppInit {\n constructor(private animationControlService: AnimationControlService) {}\n\n onAppInit(): void {\n this.animationControlService.addCondition((element) => {\n if (element.id === 'main-menu') {\n return AnimationControl.Disable;\n }\n\n return;\n });\n }\n}\n","import { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { Observable, Subscription, finalize, merge, tap, timer } from 'rxjs';\n\ninterface IBackgroundWorkerSchedule {\n delay: number; // a delay in milliseconds until start run method for the first time\n interval: number; // interval in milliseconds until the next run method execution.\n}\n\nexport abstract class RepeatBackgroundWorkerService {\n abstract getSchedule(): IBackgroundWorkerSchedule;\n\n abstract run(): void;\n\n abstract init(): void;\n\n abstract destroy(): void;\n}\n\nexport abstract class LongRunningBackgroundWorkerService {\n abstract init(): void;\n\n abstract run(): void;\n\n abstract destroy(): void;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackgroundWorkerManagerService implements OnAppInit, OnDestroy {\n private readonly repeatBackgroundServices: RepeatBackgroundWorkerService[];\n private readonly longRunningBackgroundServices: LongRunningBackgroundWorkerService[];\n private repeatingServicesSubscription: Nullable = null;\n\n constructor(\n @Optional() @Inject(RepeatBackgroundWorkerService) repeatBackgroundServices: RepeatBackgroundWorkerService[],\n @Optional() @Inject(LongRunningBackgroundWorkerService) longRunningBackgroundServices: LongRunningBackgroundWorkerService[],\n ) {\n this.repeatBackgroundServices = repeatBackgroundServices ?? [];\n this.longRunningBackgroundServices = longRunningBackgroundServices ?? [];\n if (!(Array.isArray(this.repeatBackgroundServices) && Array.isArray(this.longRunningBackgroundServices))) {\n throw new Error('Expecting array of services got something else!');\n }\n }\n\n onAppInit(): void | Promise {\n this.runRepeatingServices();\n this.runLongRunningServices();\n }\n\n ngOnDestroy(): void {\n this.repeatingServicesSubscription?.unsubscribe();\n this.stopLongRunningServices();\n }\n\n private runRepeatingServices(): void {\n const services: Observable[] = [];\n for (const service of this.repeatBackgroundServices) {\n services.push(this.setupRepeatTimer(service));\n }\n this.repeatingServicesSubscription = merge(...services).subscribe();\n }\n\n private setupRepeatTimer(service: RepeatBackgroundWorkerService): Observable {\n const executionTime = service.getSchedule();\n service.init();\n\n return timer(executionTime.delay, executionTime.interval).pipe(\n tap((val) => {\n if (val === 0) {\n service.init();\n }\n service.run();\n }),\n finalize(() => service.destroy()),\n );\n }\n\n private runLongRunningServices(): void {\n for (const service of this.longRunningBackgroundServices) {\n service.init();\n service.run();\n }\n }\n\n private stopLongRunningServices(): void {\n for (const service of this.longRunningBackgroundServices) {\n service.destroy();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BottomNavService, MenuActionsService, OnAppInit } from '@frontend/vanilla/core';\n\nimport { BottomNavActionsService } from '../bottom-nav/bottom-nav-actions.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BottomNavBootstrapService implements OnAppInit {\n constructor(\n private menuActionsService: MenuActionsService,\n private bottomNavService: BottomNavService,\n private bottomNavActionsService: BottomNavActionsService,\n ) {}\n\n onAppInit(): void {\n this.menuActionsService.register('toggleBetslip', this.bottomNavActionsService.betslipToggled.bind(this.bottomNavActionsService));\n this.menuActionsService.register('toggleMyBets', this.bottomNavActionsService.myBetsToggled.bind(this.bottomNavActionsService));\n this.menuActionsService.register('menu', this.bottomNavActionsService.menuToggled.bind(this.bottomNavActionsService));\n this.bottomNavService.whenReady.subscribe(() => this.bottomNavActionsService.init());\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class CriticalErrorService {\n private criticalError = new BehaviorSubject(false);\n\n readonly criticalError$ = this.criticalError.asObservable();\n\n showCriticalError(): void {\n this.criticalError.next(true);\n }\n\n hideCriticalError(): void {\n this.criticalError.next(false);\n }\n\n get isCriticalErrorVisible(): boolean {\n return this.criticalError.value;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit, WINDOW } from '@frontend/vanilla/core';\nimport { fromEvent } from 'rxjs';\n\nimport { CriticalErrorService } from '../critical-error/critical-error.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CriticalErrorBootstrapService implements OnAppInit {\n constructor(private criticalErrorService: CriticalErrorService) {}\n\n onAppInit(): void {\n fromEvent(this._window, 'offline')\n .pipe(filterSports())\n .subscribe(() => setTimeout(() => this.criticalErrorService.showCriticalError(), 0));\n\n fromEvent(this._window, 'online')\n .pipe(filterSports())\n .subscribe(() => setTimeout(() => this.criticalErrorService.hideCriticalError(), 0));\n }\n\n private readonly _window = inject(WINDOW);\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\n\nimport { ComponentLoaderService, ComponentProxy } from '../deferred/component-loader.service';\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { BetfinderModule } from './betfinder.module';\n\n@Injectable({ providedIn: 'root' })\nexport class BetfinderComponentLoaderService extends ComponentLoaderService {\n moduleName = 'BetfinderModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getBetfinderComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.betfinderComponent, 'betfinder');\n }\n\n getModule(): Promise> {\n return import('./betfinder.module').then((m) => m.BetfinderModule);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetFinderConfig, BetslipConfig, EpcotConfig, PopupsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ScrollFreezeServiceTypes } from '@frontend/sports/common/core/feature/scroll-freeze';\nimport { DEFAULT_HEADER_SELECTOR, DialogAnimation } from '@frontend/sports/modal/feature';\nimport { DeviceService, TimerService } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { BetslipResultActions } from 'packages/sports/common/betslip/modules/result/actions';\nimport DigitalSettingsActions from 'packages/sports/common/betslip/modules/settings/digital-actions';\n\nimport { BetfinderComponentLoaderService } from '../betfinder/betfinder-component-loader.service';\nimport { BetslipDigitalComponentLoaderService } from '../betslip/betslip-digital-component-loader.service';\nimport { EventSwitcherComponentLoaderService } from '../event-details/event-switcher-component-loader.service';\nimport { MyBetsComponentLoaderService } from '../my-bets/my-bets-component-loader.service';\nimport { ExternalNativeAppService } from '../native-api/external-native-app.service';\nimport { RunAfterLcpService } from '../perf-cdk/run-after-lcp.service';\nimport { PopupManager } from '../popup/popup-manager.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PopupInitializationService {\n private popupDict = {\n 'bet-generator': () =>\n import('../bet-generator-shared/modal/bet-generator-shared-modal.component').then(\n ({ BetGeneratorSharedModalComponent }) => BetGeneratorSharedModalComponent,\n ),\n 'bet-builder-overlay': () =>\n import('../event-details/bet-builder-v2/market-list/betbuilder-market-list.component').then(\n ({ BetbuilderMarketListComponent }) => BetbuilderMarketListComponent,\n ),\n 'grouped-sports': () =>\n import('../event-list/sport/overview/sport-list-modal.component').then(({ SportListModalComponent }) => SportListModalComponent),\n 'sports': () =>\n import('../event-list/sport/overview/sport-list-modal.component').then(({ SportListModalComponent }) => SportListModalComponent),\n 'archived-bets': () =>\n import('../archived-bets/archived-bets-modal.component').then(({ ArchivedBetsModalComponent }) => ArchivedBetsModalComponent),\n 'transaction-bets': () =>\n import('../archived-bets/archived-bets-modal.component').then(({ ArchivedBetsModalComponent }) => ArchivedBetsModalComponent),\n 'ngrx-reports': () => import('../ngrx-reports/components/ngrx-reports.component').then(({ NgrxReportsComponent }) => NgrxReportsComponent),\n 'betfinder': () => import('../popup/popup-proxy.component').then(({ PopupProxyComponent }) => PopupProxyComponent),\n 'betslip': () => import('../popup/popup-proxy.component').then(({ PopupProxyComponent }) => PopupProxyComponent),\n 'my-bets': () => import('../popup/popup-proxy.component').then(({ PopupProxyComponent }) => PopupProxyComponent),\n 'event-switcher': () => import('../popup/popup-proxy.component').then(({ PopupProxyComponent }) => PopupProxyComponent),\n };\n\n constructor(\n private deviceService: DeviceService,\n private popupManager: PopupManager,\n private popupConfig: PopupsConfig,\n private sitecore: Sitecore,\n private externalNativeAppService: ExternalNativeAppService,\n private betslipLoader: BetslipDigitalComponentLoaderService,\n private myBetsLoader: MyBetsComponentLoaderService,\n private betfinderComponentLoaderService: BetfinderComponentLoaderService,\n private betslipConfig: BetslipConfig,\n private eventSwitcherLoader: EventSwitcherComponentLoaderService,\n private timerService: TimerService,\n private store: Store,\n private runAfterLcp: RunAfterLcpService,\n private epcotConfig: EpcotConfig,\n private betFinderConfig: BetFinderConfig,\n ) {}\n\n async onAppInit(): Promise {\n const epcotClass = this.epcotConfig.isEnabled ? 'epcot-enabled' : '';\n\n const betslipComponent = this.betslipLoader.getBetslipComponent();\n betslipComponent.update({ inColumn: false });\n\n this.popupManager.configure('bet-generator', this.popupDict['bet-generator'], {\n settings: {\n cssClass: 'modal-popup bet-generator-modal',\n showPageHeader: true,\n showDialogHeader: true,\n title: this.sitecore.multiRandomGenerator.Title,\n fit: false,\n hideCloseButton: false,\n animation: this.getAnimation('betslip'),\n isModalDialog: true,\n },\n });\n this.popupManager.configure('bet-builder-overlay', this.popupDict['bet-builder-overlay'], {\n settings: {\n backdropClass: 'betbuilder-overlay-backdrop',\n showDialogHeader: true,\n animation: DialogAnimation.SlideInFromBottom,\n },\n });\n this.popupManager.configure('grouped-sports', this.popupDict['grouped-sports'], {\n settings: {\n cssClass: 'modal-popup sports',\n showPageHeader: false,\n showDialogHeader: true,\n title: this.sitecore.event.AZsports,\n hideCloseButton: false,\n isModalDialog: true,\n },\n });\n\n this.popupManager.configure('sports', this.popupDict.sports, {\n settings: {\n cssClass: 'az-menu',\n showPageHeader: false,\n showDialogHeader: false,\n title: this.sitecore.event.AZsports,\n hideCloseButton: false,\n isModalDialog: true,\n closeOnChildPopup: true,\n backdropClass: 'az-desktop-backdrop',\n scrollFreezeType: ScrollFreezeServiceTypes.All,\n },\n });\n\n this.popupManager.configure('archived-bets', this.popupDict['archived-bets'], {\n settings: {\n cssClass: 'modal-popup sports',\n showDialogHeader: true,\n title: this.sitecore.betslip.archivedBetsHelpBox.HeaderLine,\n hideCloseButton: false,\n isModalDialog: true,\n },\n });\n this.popupManager.configure('transaction-bets', this.popupDict['transaction-bets'], {\n data: {\n showTransactionBetsDialog: true,\n },\n settings: {\n cssClass: 'modal-popup sports',\n showDialogHeader: true,\n title: this.sitecore.betslip.transactionBetsHelpBox.HeaderLine,\n hideCloseButton: false,\n isModalDialog: true,\n },\n });\n\n this.popupManager.configure('ngrx-reports', this.popupDict['ngrx-reports'], {\n settings: {\n cssClass: 'modal-popup sports',\n showDialogHeader: true,\n title: this.sitecore.ngrxReports.messages.ReportsTitle,\n hideCloseButton: false,\n isModalDialog: true,\n },\n });\n\n this.popupManager.configure('betfinder', this.popupDict.betfinder, {\n data: {\n proxy: this.betfinderComponentLoaderService.getBetfinderComponent(),\n },\n settings: {\n cssClass: 'modal-popup betfinder-modal',\n fit: true,\n showPageHeader: false,\n animation: this.getAnimation('betfinder'),\n showDialogHeader: this.shouldShowDialogHeader(),\n showBottomNav: true,\n title: this.sitecore.betFinder.SearchTitle,\n hideCloseButton: false,\n isModalDialog: false,\n closeAnimation: this.epcotConfig.isEnabled && this.deviceService.isMobile ? DialogAnimation.SlideOutFromTop : undefined,\n gestures: true,\n },\n });\n this.popupManager.configure('betslip', this.popupDict.betslip, {\n data: {\n proxy: betslipComponent,\n },\n settings: {\n cssClass: `modal-popup betslip-popup ${epcotClass}`,\n showPageHeader: !this.externalNativeAppService.isPokerNativeApp() && !this.betslipConfig.isBalanceHeaderEnabled,\n showDialogHeader: !this.betslipConfig.isBalanceHeaderEnabled,\n title: this.sitecore.betslip.messages.Title,\n hideCloseButton: false,\n animation: this.getAnimation('betslip'),\n isModalDialog: true,\n epcotShowBalance: true,\n backdropClass: 'hide-background-overlay',\n scrollTargetQuerySelector: '.betslip-scroller',\n closePrevious: true,\n afterResulted: () => {\n this.store.dispatch(BetslipResultActions.close());\n this.store.dispatch(DigitalSettingsActions.closeSettings());\n },\n headerSelector: 'bs-digital-balance-header',\n gestures: true,\n },\n });\n this.popupManager.configure('my-bets', this.popupDict['my-bets'], {\n data: {\n proxy: this.myBetsLoader.getColumnViewComponent(),\n },\n settings: {\n cssClass: 'modal-popup mybets-popup',\n showPageHeader: true,\n showDialogHeader: true,\n fit: true,\n title: this.sitecore.globalMessages.MyBetsTitle,\n hideCloseButton: false,\n animation: this.getAnimation('myBets'),\n isModalDialog: true,\n showBackNav: false,\n closePrevious: false,\n backdropClass: 'hide-background-overlay',\n needsAuthentication: true,\n scrollTargetQuerySelector: '.modal-body',\n headerSelector: DEFAULT_HEADER_SELECTOR,\n gestures: true,\n },\n });\n this.popupManager.configure('event-switcher', this.popupDict['event-switcher'], {\n data: {\n proxy: this.eventSwitcherLoader.getEventSwitcherComponent(),\n },\n settings: {\n cssClass: `modal-popup event-switcher-popup`,\n showDialogHeader: true,\n hideCloseButton: false,\n animation: DialogAnimation.SlideInFromBottom,\n scrollTargetQuerySelector: 'ms-event-switcher',\n headerSelector: DEFAULT_HEADER_SELECTOR,\n gestures: true,\n },\n });\n // preload after lcp\n this.runAfterLcp.runAfterLcp(() => {\n this.timerService.scheduleIdleCallback(async () => {\n await Promise.all(Object.entries(this.popupDict).map(([key, loader]) => loader() as Promise));\n });\n });\n }\n\n private getAnimation(popup: string): DialogAnimation {\n if (this.popupConfig.slidesFromBottom[popup]) {\n return DialogAnimation.SlideInFromBottom;\n }\n if (this.popupConfig.slidesFromRight[popup]) {\n return DialogAnimation.SlideInFromRight;\n }\n\n return DialogAnimation.SlideInFromBottom;\n }\n\n private shouldShowDialogHeader(): boolean {\n return this.epcotConfig.isEnabled && this.deviceService.isMobile ? this.betFinderConfig.popupHeaderOverride : true;\n }\n}\n","import { Location } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { ModalDialogService } from '@frontend/sports/modal/feature';\nimport { HeadlineModel } from '@frontend/sports/types/components/intro-pages';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\ninterface InfoPagesResponse {\n pages: HeadlineModel[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class InfoPagesService {\n constructor(\n private modalDialogService: ModalDialogService,\n private apiService: ApiService,\n private urlService: UrlService,\n private locationService: Location,\n ) {}\n\n async show(): Promise {\n const response = await firstValueFrom(this.apiService.get('infoPages'));\n if (!response || !response.pages || !response.pages.length) {\n this.clearInfoQueryParams();\n\n return;\n }\n\n const diag = this.modalDialogService.openDialog(await import('./intro.component').then((c) => c.IntroComponent), {\n data: {\n contentData: response.pages,\n },\n settings: {\n fit: false,\n isModalDialog: false,\n cssClass: 'intro-layer',\n showDialogHeader: true,\n },\n });\n\n diag.result.finally(() => this.clearInfoQueryParams());\n }\n\n isOnInfoPage(): boolean {\n return this.urlService.current().search.has('info');\n }\n\n private clearInfoQueryParams(): void {\n if (this.urlService.current().search.has('info') && !this.urlService.current().search.has('popup')) {\n const url = this.urlService.current();\n url.search.delete('info');\n this.locationService.replaceState(url.path(), url.search.toString());\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { IntroPagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { ModalDialogOptions, ModalDialogService } from '@frontend/sports/modal/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\nimport { IntroComponentData } from './intro.models';\n\n@Injectable({ providedIn: 'root' })\nexport class IntroPagesService {\n private daysToKeepCookie = 120;\n\n constructor(\n private introPages: IntroPagesConfig,\n private cookieProvider: CookieProvider,\n private localStore: LocalStoreService,\n private modalDialogService: ModalDialogService,\n ) {}\n\n async show(): Promise {\n if (!this.introPages || !this.introPages.slides || !this.introPages.slides.length) {\n return;\n }\n\n if (this.storedPageId === this.introPages.id) {\n return;\n }\n\n const options: ModalDialogOptions = {\n data: {\n contentData: this.introPages.slides,\n },\n settings: {\n cssClass: 'intro-pages',\n fit: false,\n showDialogHeader: true,\n },\n };\n\n this.storeIntroPageId();\n this.modalDialogService.openDialog(await import('./intro.component').then((c) => c.IntroComponent), options);\n }\n\n private get storedPageId(): string {\n return this.cookieProvider.getCookie(this.introPages.cookieName) || this.localStore.get(this.introPages.cookieName) || '';\n }\n\n private storeIntroPageId(): void {\n this.localStore.set(this.introPages.cookieName, this.introPages.id);\n this.cookieProvider.setCookie(this.introPages.cookieName, this.introPages.id, {\n expires: this.daysToKeepCookie,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { InfoPagesService } from '../intro/info-pages.service';\nimport { IntroPagesService } from '../intro/intro-pages.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IntroPagesBootstrapService implements OnAppInit {\n constructor(\n private infoPagesService: InfoPagesService,\n private introPagesService: IntroPagesService,\n ) {}\n\n onAppInit(): void {\n if (this.infoPagesService.isOnInfoPage()) {\n this.infoPagesService.show();\n } else {\n this.introPagesService.show();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BetslipIntegrationService } from 'packages/sports/common/betslip/integration/betslip-integration.service';\nimport { distinctUntilChanged } from 'rxjs';\n\nimport { BetslipBarComponentBindings, BetslipDigitalComponentLoaderService } from '../betslip/betslip-digital-component-loader.service';\nimport { ComponentProxy } from '../deferred/component-loader.service';\nimport { ComponentProxyDirective } from '../deferred/component-proxy.directive';\nimport { BottomNavActionsService } from './bottom-nav-actions.service';\n\n@Component({\n selector: 'ms-betslip-bar-container',\n template: `\n @if (component) {\n \n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, ComponentProxyDirective],\n})\nexport class BetslipBarContainerComponent {\n component?: ComponentProxy;\n\n constructor(\n betslipLoader: BetslipDigitalComponentLoaderService,\n private betslipIntegration: BetslipIntegrationService,\n private bottomNavActionsService: BottomNavActionsService,\n private changeDetectorRef: ChangeDetectorRef,\n private destroyRef: DestroyRef,\n ) {\n this.betslipIntegration.betslipBarEnabled.pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef)).subscribe((enabled) => {\n if (enabled) {\n this.component = betslipLoader.getBetslipBarComponent();\n this.component.subscribeToOutputs({\n barClick: () => this.bottomNavActionsService.betslipToggled(),\n myBetsClick: () => this.bottomNavActionsService.myBetsToggled(),\n });\n } else {\n this.component?.destroy();\n this.component = undefined;\n }\n this.changeDetectorRef.markForCheck();\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, map } from 'rxjs';\n\nimport { AdaptiveLayoutFlag, AdaptiveLayoutProvider } from '../layout/adaptive-layout.service';\nimport { Breadcrumbs, BreadcrumbsService } from './breadcrumbs.service';\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbLayoutProvider implements AdaptiveLayoutProvider {\n constructor(private breadcrumbService: BreadcrumbsService) {}\n\n asObservable(): Observable {\n return this.breadcrumbService.breadcrumbs$.pipe(map((value) => this.getState(value)));\n }\n\n private getState(value: Breadcrumbs): AdaptiveLayoutFlag {\n return {\n breadcrumbNavigation: value.visible,\n };\n }\n}\n","@if (showCriticalError) {\n
\n
{{ criticalError.header }}
\n {{ criticalError.text }}\n
\n}\n","import { Component } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { CriticalErrorService } from './critical-error.service';\n\n@Component({\n selector: 'ms-critical-error',\n templateUrl: 'critical-error.html',\n standalone: true,\n})\nexport class CriticalErrorComponent {\n showCriticalError: boolean;\n criticalError: { header: string; text: string };\n\n constructor(\n private redirectHelper: RedirectHelperService,\n private criticalErrorService: CriticalErrorService,\n sitecore: Sitecore,\n ) {\n this.criticalErrorService.criticalError$.pipe(takeUntilDestroyed()).subscribe((showError) => (this.showCriticalError = showError));\n\n const criticalErrorHeader = sitecore.globalMessages.CriticalErrorHeader || 'Service Connection Lost';\n const criticalErrorText = sitecore.globalMessages.CriticalErrorText || 'Retry';\n\n this.criticalError = {\n header: criticalErrorHeader,\n text: criticalErrorText,\n };\n }\n\n reloadPage(): void {\n this.redirectHelper.reloadPage();\n }\n}\n","import { BreakpointState } from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\n\nimport { DeviceService, MediaQueryService } from '@frontend/vanilla/core';\nimport { Observable, map, merge } from 'rxjs';\n\nimport { AdaptiveLayoutFlag, AdaptiveLayoutProvider } from './adaptive-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class DeviceLayoutProvider implements AdaptiveLayoutProvider {\n private columns = new Map();\n\n constructor(\n private mediaService: MediaQueryService,\n private deviceService: DeviceService,\n ) {\n this.columns.set('gt-md', 3);\n this.columns.set('md', 2);\n this.columns.set('mw', 3); // TODO remove this line after vanilla 9.3 release and verify if in resolution 1280px the columns are equal to 3\n this.columns.set('sm', 2);\n this.columns.set('xs', 1);\n }\n\n asObservable(): Observable {\n return merge(this.mediaService.observe(), this.deviceService.orientation).pipe(map((value) => this.getState(value)));\n }\n\n private getState(value: string | BreakpointState): AdaptiveLayoutFlag {\n const state: AdaptiveLayoutFlag = {};\n\n state.headerSubNavigation = !this.mediaService.isActive('gt-md');\n state.shouldHideSubNavigation = this.deviceService.isMobilePhone;\n state.stickyHeader = !this.deviceService.isMobilePhone || !this.mediaService.isActive('xs-height');\n state.cardContent = !this.deviceService.isMobilePhone && !this.mediaService.isActive('xs');\n\n // we show multiple columns only when height minimum is meet and widht minimum is meet\n if (state.cardContent) {\n this.columns.forEach((element, key) => {\n if (this.mediaService.isActive(key)) {\n state.columns = this.columns.get(key)!;\n }\n });\n } else {\n state.columns = 1;\n }\n\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, map } from 'rxjs';\n\nimport { AdaptiveLayoutFlag, AdaptiveLayoutProvider } from './adaptive-layout.service';\nimport { ColumnLayoutService } from './column-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RightColumnLayoutProvider implements AdaptiveLayoutProvider {\n constructor(private columnLayoutService: ColumnLayoutService) {}\n\n asObservable(): Observable {\n return this.columnLayoutService.rightColumnSizeChanged.pipe(map((column) => ({ rightColumnSize: column.size })));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd } from '@angular/router';\n\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { Observable, map } from 'rxjs';\n\nimport { AdaptiveLayoutFlag, AdaptiveLayoutProvider } from './adaptive-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RouteLayoutProvider implements AdaptiveLayoutProvider {\n constructor(private router: RouterEventsService) {}\n\n asObservable(): Observable {\n return this.router.currentActivationEnd.pipe(map((value) => this.getState(value)));\n }\n\n private getState(value: ActivationEnd | undefined): AdaptiveLayoutFlag {\n const state: AdaptiveLayoutFlag = {};\n\n if (!value || !value.snapshot.routeConfig) {\n return state;\n }\n\n state.headerNavigation = this.getValue(value, 'headerNavigation');\n state.bottomNavigation = this.getValue(value, 'bottomNavigation', true);\n state.subNavigationHiddenOnSmallScreen = this.getValue(value, 'subNavigationHiddenOnSmallScreen');\n state.topNavigationHiddenOnSmallScreen = this.getValue(value, 'topNavigationHiddenOnSmallScreen');\n\n state.htmlClass = this.getValue(value, 'htmlClass');\n state.fixedContent = this.getValue(value, 'fixedContent');\n\n return state;\n }\n\n private getValue(event: ActivationEnd | undefined, key: keyof AdaptiveLayoutFlag, fallback?: any): any {\n if (!event || !event.snapshot.routeConfig) {\n return fallback;\n }\n\n let parent: ActivatedRouteSnapshot | null = event.snapshot;\n\n while (parent) {\n if (parent.routeConfig && parent.routeConfig.data && key in parent.routeConfig.data) {\n return parent.routeConfig.data[key];\n }\n\n parent = parent.parent;\n }\n\n return fallback;\n }\n}\n","export enum SportsProductMenuVersion {\n V1 = 'V1',\n V2 = 'V2',\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, map } from 'rxjs';\n\nimport { AdaptiveLayoutFlag, AdaptiveLayoutProvider } from '../layout/adaptive-layout.service';\nimport { SubNavigationItem } from './sub-navigation.models';\nimport { SubNavigationService } from './sub-navigation.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SubNavigationLayoutProvider implements AdaptiveLayoutProvider {\n constructor(private service: SubNavigationService) {}\n\n asObservable(): Observable {\n return this.service.tabs$.pipe(map((value) => this.getState(value)));\n }\n\n private getState(value: SubNavigationItem[]): AdaptiveLayoutFlag {\n return {\n subNavigation: value && value.length > 0,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, forkJoin, from, map } from 'rxjs';\n\nimport ModuleLoaderService from '../deferred/module-loader.service';\nimport { StylesLazyLoadingService } from '../deferred/styles/style-loading.service';\nimport { SportsProductMenuModule } from '../sports-product-menu/sports-product-menu.module';\n\n@Injectable({ providedIn: 'root' })\nexport class SportsProductMenuLoaderService {\n constructor(\n private moduleLoader: ModuleLoaderService,\n private stylesLazyLoadingService: StylesLazyLoadingService,\n ) {}\n\n loadAndInitModule(): Observable {\n const moduleLoader = this.moduleLoader.loadModule('SportsProductMenuModule', () =>\n import(/* webpackChunkName: \"ms-sports-product-menu\" */ '../sports-product-menu/sports-product-menu.module').then(\n (m) => m.SportsProductMenuModule,\n ),\n );\n const stylesLoader = from(this.stylesLazyLoadingService.lazyLoad('sports-product-menu'));\n\n return forkJoin([moduleLoader, stylesLoader]).pipe(map(([ref, _]) => ref.instance));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SportsProductMenuConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DeviceService, DynamicLayoutService, OnAppInit } from '@frontend/vanilla/core';\nimport { ProductMenuService } from '@frontend/vanilla/shared/product-menu';\n\nimport { BetslipBarContainerComponent } from '../bottom-nav/betslip-bar-container.component';\nimport { BreadcrumbLayoutProvider } from '../breadcrumbs/breadcrumb-layout.provider';\nimport { CriticalErrorComponent } from '../critical-error/critical-error.component';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\nimport { ColumnLayoutService } from '../layout/column-layout.service';\nimport { DeviceLayoutProvider } from '../layout/device-layout.provider';\nimport { FixedLayout, Layout, ResponsiveLayout } from '../layout/layout.model';\nimport { RightColumnLayoutProvider } from '../layout/right-column-layout.provider';\nimport { RouteLayoutProvider } from '../layout/route-layout.provider';\nimport { SportsProductMenuVersion } from '../sports-product-menu/sports-product-menu.enum';\nimport { SubNavigationLayoutProvider } from '../sub-navigation/sub-navigation-layout.provider';\nimport { SportsProductMenuLoaderService } from './sports-product-menu-loader.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutBootstrapService implements OnAppInit {\n private readonly productMenu = 'sports-all-layout';\n\n constructor(\n private dynamicLayoutService: DynamicLayoutService,\n private adaptiveLayoutService: AdaptiveLayoutService,\n private deviceLayoutProvider: DeviceLayoutProvider,\n private routeLayoutProvider: RouteLayoutProvider,\n private breadcrumbLayoutProvider: BreadcrumbLayoutProvider,\n private subNavigationLayoutProvider: SubNavigationLayoutProvider,\n private productMenuService: ProductMenuService,\n private columnBootstrap: ColumnLayoutService,\n private rightColumnLayoutProvider: RightColumnLayoutProvider,\n private deviceService: DeviceService,\n private sportsProductMenuConfig: SportsProductMenuConfig,\n private sportsProductMenuLoaderService: SportsProductMenuLoaderService,\n ) {}\n\n onAppInit(): void {\n this.dynamicLayoutService.addComponent('app', CriticalErrorComponent);\n this.dynamicLayoutService.addComponent('app', BetslipBarContainerComponent);\n\n this.columnBootstrap.initializeLayout(this.createLayout());\n\n this.adaptiveLayoutService.register(\n this.deviceLayoutProvider,\n this.routeLayoutProvider,\n this.breadcrumbLayoutProvider,\n this.subNavigationLayoutProvider,\n this.rightColumnLayoutProvider,\n );\n\n if (this.sportsProductMenuConfig.version === SportsProductMenuVersion.V2) {\n this.sportsProductMenuLoaderService.loadAndInitModule().subscribe((m) => {\n this.productMenuService.setProductMenuComponent(this.productMenu, m.sportsProductMenuComponent);\n });\n } else {\n import('../event-list-shared/sport/overview/sport-list-body.component').then((m) => {\n this.productMenuService.setProductMenuComponent(this.productMenu, m.SportListBodyComponent);\n });\n }\n }\n\n private createLayout(): Layout {\n if (this.deviceService.isMobilePhone) {\n return new FixedLayout(1);\n }\n\n return new ResponsiveLayout(3);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazySportsConfigLoaderService implements OnAppInit {\n constructor(public sitecore: Sitecore) {}\n\n async onAppInit(): Promise {\n await firstValueFrom(this.sitecore.whenReady);\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { DeviceService, HtmlNode, OnAppInit, WINDOW } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrientaionChangeService implements OnAppInit {\n orientationSubscription: Subscription;\n\n constructor(\n private dispatcher: DispatcherService,\n private deviceService: DeviceService,\n private htmlNode: HtmlNode,\n private scrollContainer: ScrollContainerService,\n ) {}\n\n onAppInit(): void | Promise {\n // to be removed\n this.htmlNode.setCssClass('isTablet', this.deviceService.isTablet);\n this.orientationSubscription = this.deviceService.orientation\n .pipe(filterSportsEmitLast())\n .subscribe((orienation) => this.orientationHandler(orienation));\n }\n\n private get window(): Window {\n return this._window as Window;\n }\n\n private orientationHandler = (orientation: string): void => {\n let isLandscape = this.deviceService.currentOrientation === 'landscape';\n\n if (this.deviceService.isTablet && !this.deviceService.isiOS) {\n isLandscape = !(this.window.screen.availHeight > this.window.screen.availWidth);\n }\n\n this.htmlNode.setCssClass('landscape', isLandscape);\n\n if (isLandscape) {\n this.removeVirtualKeyboard();\n }\n\n this.window.setTimeout(() => {\n this.dispatcher.dispatch('ORIENTATION_CHANGED', { isLandscape });\n });\n };\n\n private removeVirtualKeyboard(): void {\n const inputs = this.window.document.getElementsByTagName('input');\n if (this.deviceService.isTablet) {\n if (inputs.length > 0) {\n inputs[0].blur();\n }\n\n this.scrollContainer.scrollTo(0, 0);\n }\n }\n\n private readonly _window = inject(WINDOW);\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { NativeAppService, WINDOW } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MobileHelper {\n readonly isAndroidNative: boolean;\n readonly isSafariIos: boolean;\n readonly isAndroidWrapper: boolean;\n private readonly _window = inject(WINDOW);\n\n constructor(private nativeAppService: NativeAppService) {\n this.isAndroidNative = this.isAndroidNativeInternal();\n this.isSafariIos = this.isSafariIosInternal();\n this.isAndroidWrapper = this.isAndroidNative && this.nativeAppService.isNative;\n }\n\n private isAndroidNativeInternal(): boolean {\n const ua = this._window.navigator.userAgent;\n if (!ua) {\n return false;\n }\n\n return this.valueContainsAll(ua, ['Mozilla/5.0', 'Android ', 'AppleWebKit']) && this.valueContainsAny(ua, ['Version', 'Samsung']);\n }\n\n private isSafariIosInternal(): boolean {\n const ua = this._window.navigator.userAgent;\n if (!ua) {\n return false;\n }\n\n return this.valueContainsAll(ua, ['(iPhone)', 'Safari', 'iPhone']) && !/CriOS/g.test(ua);\n }\n\n private valueContainsAll(text: string, valuesToCheck: string[]): boolean {\n return valuesToCheck.every((v) => text.includes(v));\n }\n\n private valueContainsAny(text: string, valuesToCheck: string[]): boolean {\n return valuesToCheck.some((v) => text.includes(v));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MobileHelper } from '@frontend/sports/web/core/feature/mobile-helper';\nimport { HtmlNode, OnAppInit } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SetFeatureClassesService implements OnAppInit {\n constructor(\n private htmlNode: HtmlNode,\n private mobileHelper: MobileHelper,\n ) {}\n\n onAppInit(): void {\n this.htmlNode.setCssClass('breadcrumbs-visible', true);\n this.htmlNode.setCssClass('is-android-native', this.mobileHelper.isAndroidNative);\n }\n}\n","import { DestroyRef, Injectable, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { SportsProductService } from '@frontend/sports/host-app/sports-product/feature/sports-product-service';\nimport { filterSportsEmitLast, fromSportsLeave } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { BottomNavService, OnAppInit } from '@frontend/vanilla/core';\nimport { BetslipBarVisibilityService } from 'packages/sports/common/betslip/modules/betslip-bar/services/betslip-bar-visibility.service';\nimport { combineLatest, distinctUntilKeyChanged, switchMap, withLatestFrom } from 'rxjs';\n\nimport { DispatcherEvent } from '../event-details-common/event-details-common.models';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ToggleBottomNavService implements OnAppInit {\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private adaptiveLayout: AdaptiveLayoutService,\n private bottomNavService: BottomNavService,\n private betslipBarVisibility: BetslipBarVisibilityService,\n private dispatcher: DispatcherService,\n private sportsProductService: SportsProductService,\n ) {}\n\n onAppInit(): void {\n const layoutBottomNavVisibility = this.adaptiveLayout.stateChange$.pipe(distinctUntilKeyChanged('bottomNavigation'));\n const vanillaNav = this.bottomNavService.whenReady.pipe(switchMap(() => this.bottomNavService.isEnabled()));\n\n // Reset bottom nav to show after we leave sports, only after bottom nav is triggered\n combineLatest([fromSportsLeave(this.sportsProductService), this.bottomNavService.whenReady])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.bottomNavService.show();\n });\n\n combineLatest([vanillaNav, layoutBottomNavVisibility])\n .pipe(filterSportsEmitLast(this.sportsProductService), takeUntilDestroyed(this.destroyRef))\n .subscribe(([vanillaNavEnabled, state]) => {\n if (!vanillaNavEnabled) {\n return;\n }\n\n if (state.bottomNavigation) {\n this.bottomNavService.show();\n this.betslipBarVisibility.showComponent();\n } else {\n this.bottomNavService.hide();\n this.betslipBarVisibility.hideComponent();\n }\n });\n\n this.dispatcher\n .on(DispatcherEvent.EventDetails.Expanded)\n .pipe(withLatestFrom(vanillaNav, layoutBottomNavVisibility))\n .subscribe(([expanded, enabled, state]) => {\n if (!enabled || !state.bottomNavigation) {\n return;\n }\n\n if (expanded) {\n this.bottomNavService.hide();\n this.betslipBarVisibility.hideComponent();\n } else {\n this.bottomNavService.show();\n this.betslipBarVisibility.showComponent();\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PerformanceProfilingService } from '@frontend/sports/tracking/feature/performance-tracker';\nimport { SportsClientConfigRefreshService, UserAccountIdCookieService, UserServiceWatcher } from '@frontend/sports/user/feature';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { RewardTokensBannerService } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-banner.service';\n\nimport { BreadcrumbsBoostrapService } from '../breadcrumbs/breadcrumbs-bootstrap';\nimport { CrmPromotionProviderService } from '../crm-promotion/crm-promotion-provider.service';\nimport { OddAcceptanceModeFilterService } from '../dont-accept-stake-option-settings/odd-accept-mode-filter.service';\nimport { NativeEventSubscription } from '../native-alerts/native-event-subscription.service';\nimport { SchemaMarkupBoostrapService } from '../schema-markup/schema-markup.bootstrap.service';\nimport { SettingsService } from '../settings/settings.service';\nimport { SitemapBootstrapService } from '../sitemap/sitemap.bootstrap.service';\nimport { SubNavigationBootstrapService } from '../sub-navigation/sub-navigation.bootstrap';\nimport { RealityCheckService } from '../user/services/reality-check.service';\nimport { RewardTokenWidgetRegistration } from './../reward-tokens/widget-registration.service';\nimport { AnimationDisabledService } from './animation-disable.service';\nimport { BackgroundWorkerManagerService } from './background-worker-manager.service';\nimport { BottomNavBootstrapService } from './bottom-nav-bootstrap.service';\nimport { CriticalErrorBootstrapService } from './critical-error-bootstrap.service';\nimport { PopupInitializationService } from './initialize-popup.service';\nimport { IntroPagesBootstrapService } from './intro-pages-bootstrap';\nimport { LaunchDarklyFlagManagerService } from './launch-darkly-flag-manager.service';\nimport { LayoutBootstrapService } from './layout-bootstrap.service';\nimport { LazySportsConfigLoaderService } from './lazy-sports-config-loader.service';\nimport { OrientaionChangeService } from './orientation-change.service';\nimport { SetFeatureClassesService } from './set-feature-styles.service';\nimport { SlotLayoutRouteOverrideService } from './slot-layout.bootstrap.service';\nimport { ToggleBottomNavService } from './toggle-bottom-nav.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SportsWebBootstrapService implements OnAppInit {\n constructor(\n private animationDisabledService: AnimationDisabledService,\n private criticalErrorBootstrapService: CriticalErrorBootstrapService,\n private setFeatureClassesService: SetFeatureClassesService,\n private orientaionChangeService: OrientaionChangeService,\n private layoutBootstrapService: LayoutBootstrapService,\n private sportsClientConfigRefreshService: SportsClientConfigRefreshService,\n private nativeEventSubscription: NativeEventSubscription,\n private popupInitializationService: PopupInitializationService,\n private introPagesBootstrapService: IntroPagesBootstrapService,\n private bottomNavBootstrapService: BottomNavBootstrapService,\n private breadcrumbsBoostrapService: BreadcrumbsBoostrapService,\n private schemaMarkupBoostrapService: SchemaMarkupBoostrapService,\n private subNavigationBootstrapService: SubNavigationBootstrapService,\n private slotLayoutRouteOverrideService: SlotLayoutRouteOverrideService,\n private performanceProfilingService: PerformanceProfilingService,\n private realityCheckService: RealityCheckService,\n private userStateService: UserServiceWatcher,\n private toggleBottomNav: ToggleBottomNavService,\n private rewardTokensBannerService: RewardTokensBannerService,\n private backgroundWorkerManagerService: BackgroundWorkerManagerService,\n private settingsService: SettingsService,\n private rewardTokenWidgetRegistration: RewardTokenWidgetRegistration,\n private sitemapBootstrapService: SitemapBootstrapService,\n private lazySportsloaderService: LazySportsConfigLoaderService,\n private crmPromotionProviderService: CrmPromotionProviderService,\n private oddAcceptanceModeFilterService: OddAcceptanceModeFilterService,\n private launchDarklyFlagManagerService: LaunchDarklyFlagManagerService,\n private userAccountIdCookieService: UserAccountIdCookieService,\n ) {}\n\n async onAppInit(): Promise {\n this.crmPromotionProviderService.onAppInit();\n await this.lazySportsloaderService.onAppInit();\n this.slotLayoutRouteOverrideService.onAppInit();\n this.animationDisabledService.onAppInit();\n this.criticalErrorBootstrapService.onAppInit();\n this.setFeatureClassesService.onAppInit();\n this.orientaionChangeService.onAppInit();\n this.performanceProfilingService.onAppInit();\n this.realityCheckService.onAppInit();\n this.layoutBootstrapService.onAppInit(); // Execute after store\n this.sportsClientConfigRefreshService.onAppInit();\n this.nativeEventSubscription.onAppInit();\n this.launchDarklyFlagManagerService.onAppInit();\n this.popupInitializationService.onAppInit();\n this.introPagesBootstrapService.onAppInit();\n this.bottomNavBootstrapService.onAppInit();\n this.breadcrumbsBoostrapService.onAppInit();\n this.schemaMarkupBoostrapService.onAppInit();\n this.subNavigationBootstrapService.onAppInit();\n this.toggleBottomNav.onAppInit();\n this.settingsService.onAppInit();\n this.rewardTokensBannerService.onAppInit();\n this.rewardTokenWidgetRegistration.onAppInit();\n this.sitemapBootstrapService.onAppInit();\n this.userStateService.onAppInit(); // Execute after store and User bootstrap\n // run it last in order to know that everything is created for our background workers.\n this.backgroundWorkerManagerService.onAppInit();\n this.oddAcceptanceModeFilterService.onAppInit();\n this.userAccountIdCookieService.onAppInit();\n }\n}\n","import { runOnSportsWebInit } from './run-on-sports-web.provider';\nimport { SportsWebBootstrapService } from './sports-web-bootstrap.service';\n\nexport const provideSportsWebBootstrap = () => runOnSportsWebInit(SportsWebBootstrapService);\n","import { Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n ChildrenOutletContexts,\n OutletContext,\n PRIMARY_OUTLET,\n ResolveData,\n ResolveFn,\n Router,\n} from '@angular/router';\n\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { keys } from 'lodash-es';\nimport { BehaviorSubject, EMPTY, Observable, debounceTime, from, isObservable, mergeMap, of, takeLast, tap } from 'rxjs';\n\nimport { getTokenWithInjector } from '../router/router.exports';\nimport { FreshDataType } from './fresh-data-provider.service';\nimport { FreshDataService } from './fresh-data.service';\n\n@Injectable({ providedIn: 'root' })\nexport class RouteRefreshService implements OnAppInit {\n constructor(\n private refreshService: FreshDataService,\n private router: Router,\n private context: ChildrenOutletContexts,\n private injector: Injector,\n ) {}\n\n onAppInit(): void {\n this.refreshService.reloadNeeded.pipe(debounceTime(500), filterSportsEmitLast()).subscribe((type) => this.refresh(type));\n }\n\n private async refresh(type: FreshDataType): Promise {\n let outlet: ChildrenOutletContexts | undefined = this.context;\n let outletContext: OutletContext | undefined;\n\n while (outlet) {\n const current: OutletContext | null = outlet.getContext(PRIMARY_OUTLET);\n\n if (current) {\n outletContext = current;\n }\n\n outlet = current?.children;\n }\n\n if (outletContext?.route) {\n this.resolve(outletContext.route);\n }\n }\n\n private resolve(route: ActivatedRoute): void {\n if (!route.snapshot?.routeConfig?.resolve) {\n return;\n }\n\n this.load(route.snapshot.routeConfig.resolve, route.snapshot).subscribe((data) => {\n const subject = route.data as BehaviorSubject;\n\n subject.next(data);\n });\n }\n\n private load(resolve: ResolveData, snapshot: ActivatedRouteSnapshot): Observable {\n const data: Record = {};\n\n return from(keys(resolve)).pipe(\n mergeMap((key) => this.loadKey(key, resolve, snapshot).pipe(tap((result) => (data[key] = result)))),\n takeLast(1),\n mergeMap(() => {\n if (keys(data).length === keys.length) {\n return of(data);\n }\n\n return EMPTY;\n }),\n );\n }\n\n private loadKey(key: string, resolve: ResolveData, snapshot: ActivatedRouteSnapshot): Observable {\n const { token, injector } = getTokenWithInjector<\n | {\n resolve: ResolveFn;\n }\n | ResolveFn\n >(resolve[key], snapshot, this.injector);\n\n const result = runInInjectionContext(injector, () =>\n typeof token === 'function'\n ? token(snapshot, this.router.routerState.snapshot)\n : token.resolve(snapshot, this.router.routerState.snapshot),\n );\n\n if (isObservable(result)) {\n return result;\n }\n\n if (result instanceof Promise) {\n return from(result);\n }\n\n return of(result);\n }\n}\n","import { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { RouteRefreshService } from './route-refresh.service';\n\nexport const provideDataRefresh = () => runOnSportsWebInit(RouteRefreshService);\n","import { Injectable } from '@angular/core';\n\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { SportsCacheService } from '../client-caching/sports-cache.service';\nimport { LiveNowLinkRegisterService } from '../live-now-item/live-now-link-register.service';\nimport { LiveUrlParam, UrlHelperService } from '../navigation-core/url-helper.service';\nimport { WidgetLayoutHook } from '../widget/core/widget-layout-hook';\n\n@Injectable()\nexport class ESportLiveButtonService extends WidgetLayoutHook {\n constructor(\n private liveButton: LiveNowLinkRegisterService,\n private cache: SportsCacheService,\n private urlHelper: UrlHelperService,\n ) {\n super(WidgetPage.ESportsLobby);\n }\n\n onResolve(): void {\n this.cache.getSportList().subscribe((sports) => {\n this.liveButton.addLiveButtonWithMultipleSports(\n sports.filter((sport) => sport.isEsport),\n this.urlHelper.getLiveUrl(LiveUrlParam.Esports),\n );\n });\n }\n\n onDestroy(): void {\n this.liveButton.removeLiveButton();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetConfig } from '@frontend/sports/common/client-config-data-access';\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { WidgetRefreshTrigger } from '../widget/core/widget-refresh.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EsportsRefreshTrigger extends WidgetRefreshTrigger {\n constructor(config: WidgetConfig) {\n super(config);\n }\n\n getPage(): WidgetPage {\n return WidgetPage.ESportsLobby;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { WidgetRefreshService } from '../widget/core/widget-refresh.service';\nimport { EsportsRefreshTrigger } from './esports-refresh-trigger';\n\n@Injectable({ providedIn: 'root' })\nexport class EsportsRefreshRegistrationService implements OnAppInit {\n private refreshRegistry = inject(WidgetRefreshService);\n private refresh = inject(EsportsRefreshTrigger);\n\n onAppInit(): void {\n this.refreshRegistry.registerTrigger(RouteTag.EsportsLobby, this.refresh);\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { WidgetLayoutHook } from '../widget/core/widget-layout-hook';\nimport { ESportLiveButtonService } from './esports-live-button.service';\nimport { EsportsRefreshRegistrationService } from './esports-refresh-registration.service';\n\nexport default function provideEsports(): Provider[] {\n return [\n runOnSportsWebInit(EsportsRefreshRegistrationService),\n {\n provide: WidgetLayoutHook,\n useClass: ESportLiveButtonService,\n multi: true,\n },\n ];\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { OnAppInit, WINDOW } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { ExternalBetslipActions } from 'packages/sports/common/betslip/core/external-betslip-actions';\n\n@Injectable({ providedIn: 'root' })\nexport class WebBridgeService implements OnAppInit {\n constructor(private store: Store) {}\n\n onAppInit(): void {\n this._window['webApp'] = {\n addPick: this.addPick,\n\n removePick: this.removePick,\n };\n }\n\n private addPick = (fixture: Fixture, option: number) => this.store.dispatch(ExternalBetslipActions.addWebAppPick({ fixture, option }));\n\n private removePick = (fixture: Fixture, option: number) => this.store.dispatch(ExternalBetslipActions.removeWebAppPick({ fixture, option }));\n private readonly _window = inject(WINDOW);\n}\n","import { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { WebBridgeService } from './web-bridge.service';\n\nexport const provideEventBridge = () => runOnSportsWebInit(WebBridgeService);\n","import { Injectable } from '@angular/core';\n\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { SportsCacheService } from '../../../client-caching/sports-cache.service';\nimport { LiveNowLinkRegisterService } from '../../../live-now-item/live-now-link-register.service';\nimport { LiveUrlParam, UrlHelperService } from '../../../navigation-core/url-helper.service';\nimport { WidgetContextService } from '../../../widget/common/widget-context.service';\nimport { WidgetLayoutHook } from '../../../widget/core/widget-layout-hook';\n\n@Injectable()\nexport class SportLiveButtonService extends WidgetLayoutHook {\n constructor(\n private liveButton: LiveNowLinkRegisterService,\n private context: WidgetContextService,\n private cache: SportsCacheService,\n private urlHelper: UrlHelperService,\n ) {\n super(WidgetPage.SportLobby);\n }\n\n onResolve(): void {\n const { sportId } = this.context.getContext();\n\n this.cache.getSportList().subscribe((sports) => {\n const sport = sports.find((s) => s.id === sportId);\n this.liveButton.addLiveButton(sport, sport?.isEsport ? this.urlHelper.getLiveUrl(LiveUrlParam.Esports) : undefined);\n });\n }\n\n onDestroy(): void {\n this.liveButton.removeLiveButton();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { NavigationRouterService } from '../../../navigation/navigation-router.service';\nimport { WidgetContextService } from '../../../widget/common/widget-context.service';\nimport { WidgetLayoutHook } from '../../../widget/core/widget-layout-hook';\n\n@Injectable()\nexport class SportNavigationHighlightService extends WidgetLayoutHook {\n constructor(\n private navigationRouter: NavigationRouterService,\n private context: WidgetContextService,\n ) {\n super(WidgetPage.SportLobby);\n }\n\n onResolve(): void {\n const { sportId } = this.context.getContext();\n\n if (sportId) {\n this.navigationRouter.setNavigation(sportId.toString());\n }\n }\n\n onDestroy(): void {\n this.navigationRouter.resetNavigation();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { WidgetRegistryService } from '../../widget/core/widget-registry.service';\nimport { CompetitionHeaderWidgetComponent } from './competition-header-widget.component';\nimport { CompetitionTeamsWidgetComponent } from './competition-teams-widget.component';\n\n@Injectable({ providedIn: 'root' })\nexport class WidgetRegistrationService implements OnAppInit {\n constructor(private widgetRegistry: WidgetRegistryService) {}\n\n onAppInit(): void {\n this.widgetRegistry.register(WidgetType.CompetitionHeader, CompetitionHeaderWidgetComponent);\n this.widgetRegistry.register(WidgetType.CompetitionTeams, CompetitionTeamsWidgetComponent);\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { WidgetLayoutHook } from '../widget/core/widget-layout-hook';\nimport { SportLiveButtonService } from './sport/overview/sport-live-button.service';\nimport { SportNavigationHighlightService } from './sport/overview/sport-navigation-highlight.service';\nimport { WidgetRegistrationService } from './sport/widget-registration.service';\n\nexport function provideEventList(): Provider[] {\n return [\n runOnSportsWebInit(WidgetRegistrationService),\n { provide: WidgetLayoutHook, useClass: SportNavigationHighlightService, multi: true },\n { provide: WidgetLayoutHook, useClass: SportLiveButtonService, multi: true },\n ];\n}\n","import { AsyncPipe, NgIf, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, inject } from '@angular/core';\n\nimport { MarqueeTile } from '@frontend/sports/types/components/content';\nimport { MarqueePayload } from '@frontend/sports/types/components/widget/types';\nimport { Observable, combineLatest, startWith } from 'rxjs';\n\nimport { WidgetSkeletonData, WidgetSkeletonModel } from '../widget/core/widget-skeleton.model';\nimport { MarqueeResponseMapperService } from './marquee-response-mapper.service';\nimport { MarqueeWidgetDataService } from './marquee-widget-data.service';\n\n@Component({\n selector: 'ms-marquee-widget-skeleton',\n template: `\n \n \n \n
\n \n
\n \n
\n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, NgIf, NgOptimizedImage],\n})\nexport class MarqueeWidgetSkeletonComponent implements WidgetSkeletonModel {\n private readonly marqueeDataService = inject(MarqueeWidgetDataService);\n readonly data = inject(WidgetSkeletonData);\n private readonly responseMapper = inject(MarqueeResponseMapperService);\n private mappedTiles = this.responseMapper.mapFixtures(this.data.widget.payload?.fixtures, this.data.widget.payload?.tiles);\n\n readonly showSkeleton$ = this.data.widgetsBeforeLoaded$;\n\n readonly data$ = combineLatest({\n tiles: (\n this.marqueeDataService.combineWithPromotions(this.data.widget.payload, this.mappedTiles) as unknown as Observable\n ).pipe(startWith(this.mappedTiles)),\n showSkeleton: this.showSkeleton$,\n });\n\n @HostBinding('class')\n get widgetClass(): string {\n return `widget-skeleton--marquee`;\n }\n}\n","import { StaticProvider } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { of } from 'rxjs';\n\nimport { WIDGET_SKELETON } from '../widget/core/widget-skeleton.model';\nimport { MarqueeWidgetSkeletonComponent } from './marquee-widget-skeleton.component';\n\nexport function provideMarqueeWidgetSkeleton(): StaticProvider {\n return {\n provide: WIDGET_SKELETON,\n useValue: {\n type: WidgetType.Marquee,\n component: MarqueeWidgetSkeletonComponent,\n config: () => {\n return of({ visible: true });\n },\n },\n multi: true,\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { NavigationRouterService } from '../navigation/navigation-router.service';\nimport { WidgetLayoutHook } from '../widget/core/widget-layout-hook';\n\n@Injectable()\nexport class HomeNavigationHighlightService extends WidgetLayoutHook {\n constructor(private navigationRouter: NavigationRouterService) {\n super(WidgetPage.HomeLobby);\n }\n\n onResolve(): void {\n this.navigationRouter.setNavigation('home');\n }\n\n onDestroy(): void {\n this.navigationRouter.resetNavigation();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetConfig } from '@frontend/sports/common/client-config-data-access';\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { WidgetRefreshTrigger } from '../widget/core/widget-refresh.service';\n\n@Injectable({ providedIn: 'root' })\nexport class HomeRefreshTrigger extends WidgetRefreshTrigger {\n constructor(config: WidgetConfig) {\n super(config);\n }\n\n getPage(): WidgetPage {\n return WidgetPage.HomeLobby;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { OnAppInit } from '@frontend/vanilla/core';\n\nimport { WidgetRefreshService } from '../widget/core/widget-refresh.service';\nimport { HomeRefreshTrigger } from './home-refresh-trigger';\n\n@Injectable({ providedIn: 'root' })\nexport class WidgetRegistrationService implements OnAppInit {\n constructor(\n private refreshRegistry: WidgetRefreshService,\n private refresh: HomeRefreshTrigger,\n ) {}\n\n onAppInit(): void {\n this.refreshRegistry.registerTrigger(RouteTag.Lobby, this.refresh);\n }\n}\n","import { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { WidgetLayoutHook } from '../widget/core/widget-layout-hook';\nimport { HomeNavigationHighlightService } from './home-navigation-highlight.service';\nimport { WidgetRegistrationService } from './widget-registration.service';\n\nexport const provideHome = () => [\n runOnSportsWebInit(WidgetRegistrationService),\n { provide: WidgetLayoutHook, useClass: HomeNavigationHighlightService, multi: true },\n];\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponseBase } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\n\nimport { SportsApiVersionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { Observable, catchError, throwError } from 'rxjs';\n\n@Injectable()\nexport class ApiVersioningInterceptor implements HttpInterceptor {\n private readonly _window = inject(WINDOW);\n constructor(private sportsApiVersionConfig: SportsApiVersionConfig) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (!this.isSportsApiRequest(req)) {\n return next.handle(req);\n }\n\n const versionedRequest = req.clone({\n headers: req.headers.set(this.sportsApiVersionConfig.sportsApiVersionHeaderName, this.sportsApiVersionConfig.sportsApiVersion),\n });\n\n return next.handle(versionedRequest).pipe(\n catchError((response) => {\n if (response instanceof HttpResponseBase) {\n this.processHttpResponse(response);\n }\n\n return throwError(response);\n }),\n );\n }\n\n processHttpResponse(response: HttpResponseBase): HttpResponseBase {\n if (this.isCachedResponse(response)) {\n return response;\n }\n\n const newApiVersion = response?.headers?.get(this.sportsApiVersionConfig.sportsApiVersionHeaderName);\n if (newApiVersion && newApiVersion !== this.sportsApiVersionConfig.sportsApiVersion) {\n this._window.location.reload();\n }\n\n return response;\n }\n\n private isCachedResponse(response: HttpResponseBase): boolean {\n const cacheControlHeader = response.headers?.get('cache-control');\n\n return !!cacheControlHeader && cacheControlHeader !== 'no-cache';\n }\n\n private isSportsApiRequest(req: HttpRequest): boolean {\n return req.url.includes('/sports/api/');\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { ConnectionConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { Observable, tap } from 'rxjs';\n\nimport { CriticalErrorService } from '../critical-error/critical-error.service';\n\n@Injectable()\nexport class ConnectionLostInterceptor implements HttpInterceptor {\n private asyncRetriesCount = 0;\n private maxRetriesCount: number;\n\n constructor(private injector: Injector) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n tap(\n (event) => {\n if (event instanceof HttpResponse) {\n this.response(event);\n }\n },\n (error) => {\n if (error instanceof HttpErrorResponse) {\n this.responseError(error);\n }\n },\n ),\n );\n }\n\n response(response: HttpResponse): HttpResponse {\n const connectionConfig = this.injector.get(ConnectionConfig);\n const criticalErrorService = this.injector.get(CriticalErrorService);\n const loggerFactory: LoggerFactory = this.injector.get(LoggerFactory);\n const logger = loggerFactory.getLogger('ConnectionLostInterceptor');\n const sitecore = this.injector.get(Sitecore);\n sitecore.whenReady.subscribe(() => (this.maxRetriesCount = parseInt(sitecore.globalMessages['CriticalErrorsRetryCount'])));\n\n if (response.url && response.url.indexOf(connectionConfig.cdsUrlBase) !== -1) {\n if (criticalErrorService.isCriticalErrorVisible) {\n logger.error('Recovered back from critical error on AJAX calls');\n }\n criticalErrorService.hideCriticalError();\n this.asyncRetriesCount = 0;\n }\n\n return response;\n }\n\n responseError(error: HttpErrorResponse): void {\n const connectionConfig = this.injector.get(ConnectionConfig);\n const criticalErrorService = this.injector.get(CriticalErrorService);\n const loggerFactory = this.injector.get(LoggerFactory);\n const logger = loggerFactory.getLogger('ConnectionLostInterceptor');\n const sitecore = this.injector.get(Sitecore);\n sitecore.whenReady.subscribe(() => (this.maxRetriesCount = parseInt(sitecore.globalMessages['CriticalErrorsRetryCount'])));\n if (error.url && error.url.indexOf(connectionConfig.cdsUrlBase) !== -1) {\n this.asyncRetriesCount++;\n if (this.asyncRetriesCount > this.maxRetriesCount) {\n criticalErrorService.showCriticalError();\n logger.error(error, 'Too many failed AJAX requests, showing the critical error page');\n }\n logger.error(error, 'Failed connection to external endpoin');\n }\n }\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { BetslipConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { generateGuid } from '@frontend/sports/common/core/utils/string';\nimport { EMPTY, Observable, switchMapTo, timer } from 'rxjs';\n\n@Injectable()\nexport class DuplicateBetplacementInterceptor implements HttpInterceptor {\n private logger: SportsRemoteLogger;\n private requestIds = new Set();\n\n constructor(\n loggerFactory: LoggerFactory,\n private betslipConfig: BetslipConfig,\n ) {\n this.logger = loggerFactory.getLogger('DuplicateBetplacementInterceptor');\n }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n if (!this.betslipConfig.preventDuplicateRequestOnFrontend) {\n return next.handle(req);\n }\n\n if (req.method === 'POST' && this.isBetplacementRequest(req)) {\n const request = req.clone({ url: req.url + '?nonce=' + generateGuid() });\n const requestId = this.getRequestId(req);\n\n if (!requestId) {\n const errMessage = `Unable to find requestId field for endpoint ${request.url} - has the request format changed?`;\n this.logger.error(new Error(errMessage));\n\n console.error(errMessage);\n\n return next.handle(request); //since we couldn't find a request id - we should let the request go through\n }\n\n if (this.requestIds.has(requestId)) {\n this.logger.error(new Error(`Trying to place a bet to: ${request.url} with the same id: ${requestId}`));\n\n // switchmap to EMPTY will make the promise never resolve/reject\n return timer(1).pipe(switchMapTo(EMPTY));\n }\n\n this.requestIds.add(requestId);\n\n return next.handle(request);\n }\n\n return next.handle(req);\n }\n\n private isBetplacementRequest(req: HttpRequest) {\n return req.url.endsWith('/api/placebet') || req.url.endsWith('/api/placebetv2');\n }\n\n private getRequestId(req: HttpRequest): string {\n return req.body.requestId || req.body.betslip?.requestId;\n }\n}\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Observable, tap } from 'rxjs';\n\nimport { PopupManager } from '../popup/popup-manager.service';\n\n@Injectable()\nexport class SessionExpirationInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n return next.handle(req).pipe(\n tap(\n (event) => {},\n (error) => {\n if (error instanceof HttpErrorResponse) {\n this.responseError(error);\n }\n },\n ),\n );\n }\n\n responseError(error: HttpErrorResponse): HttpErrorResponse | undefined {\n const user = this.injector.get(UserService);\n if (!user.isAuthenticated) {\n return error;\n }\n\n if (error.status === 401 || error.status === 403) {\n const popupManager = this.injector.get(PopupManager);\n popupManager.setFullReloadRequired();\n }\n\n return undefined;\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { ClassProvider } from '@angular/core';\n\nimport { ApiVersioningInterceptor } from './api-versioning-interceptor';\nimport { ConnectionLostInterceptor } from './connection-lost.interceptor';\nimport { DuplicateBetplacementInterceptor } from './duplicate-betplacement.interceptor';\nimport { SessionExpirationInterceptor } from './session-expiration.interceptor';\n\nexport function provideSportsHttpInterceptors(): ClassProvider[] {\n return [\n { provide: HTTP_INTERCEPTORS, useClass: ConnectionLostInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: SessionExpirationInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: DuplicateBetplacementInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: ApiVersioningInterceptor, multi: true },\n ];\n}\n","import { Injectable } from '@angular/core';\n\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { Observable, Subject, distinctUntilChanged, map, skip } from 'rxjs';\n\nimport { FreshDataProvider, FreshDataType } from '../data-refresh/fresh-data-provider.service';\nimport { LARGE_LAYOUT_BREAKPOINT, MEDIUM_LAYOUT_BREAKPOINT } from '../widget/core/widget.constants';\n\n@Injectable()\nexport class LayoutRefreshProvider extends FreshDataProvider {\n private reloadNeededStream = new Subject();\n\n // as we are using differnet breakpoints for the responsive column, we need different breakpoints for widget pages\n private readonly widgetBreackpoints = [LARGE_LAYOUT_BREAKPOINT, MEDIUM_LAYOUT_BREAKPOINT];\n private readonly baseBreakpoints = ['gt-md', 'gt-xs'];\n\n private widgetPage = false;\n\n constructor(\n private media: MediaQueryService,\n router: RouterEventsService,\n ) {\n super();\n\n // TODO: REFACTOR MODULA DEPENDENCY\n router.currentActivationEnd.subscribe((event) => {\n this.widgetPage =\n [RouteTag.Lobby, RouteTag.SportLobby, RouteTag.Competition, RouteTag.MultiSportsLobby].indexOf(event?.snapshot.data.tag) > -1;\n });\n\n this.media\n .observe()\n .pipe(map(this.activeBreakpoint), distinctUntilChanged(), skip(1))\n .subscribe(() => {\n this.reloadNeededStream.next(FreshDataType.Data);\n });\n }\n\n isRefreshNeeded(): Observable {\n return this.reloadNeededStream.asObservable();\n }\n\n private activeBreakpoint = () => {\n return this.widgetPage ? this.findActiveBreakpoint(this.widgetBreackpoints) : this.findActiveBreakpoint(this.baseBreakpoints);\n };\n\n private findActiveBreakpoint = (breakpoints: string[]) => breakpoints.find((breakpoint) => this.media.isActive(breakpoint)) || '';\n}\n","import { Provider } from '@angular/core';\n\nimport { FreshDataProvider } from '../data-refresh/fresh-data-provider.service';\nimport { LayoutRefreshProvider } from './layout-refresh.provider';\n\nexport const provideLayout = (): Provider[] => {\n return [{ provide: FreshDataProvider, useClass: LayoutRefreshProvider, multi: true }];\n};\n","import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\n\nimport { MediaQueryService, Page } from '@frontend/vanilla/core';\nimport { isEqual } from 'lodash-es';\nimport { Observable, ReplaySubject, distinctUntilChanged } from 'rxjs';\n\n@Injectable()\nexport class PatchedMediaObserver extends MediaQueryService {\n private layout = new ReplaySubject(1);\n\n constructor(page: Page, breakpointObserver: BreakpointObserver) {\n super(page, breakpointObserver);\n\n super.observe().pipe(distinctUntilChanged(isEqual)).subscribe(this.layout);\n }\n\n override observe(): Observable {\n return this.layout.asObservable();\n }\n}\n","import { Provider } from '@angular/core';\n\nimport { MarketSubTypeLogoHideStrategy, MarketSubTypeLogoStrategy } from './marketsubtype-logo-display.strategy';\n\nexport const provideMarketSubTypeLogoHideStrategy = (): Provider => [\n {\n provide: MarketSubTypeLogoStrategy,\n useClass: MarketSubTypeLogoHideStrategy,\n },\n];\n","import { Injectable } from '@angular/core';\n\nimport { MediaState, mediaInitialState } from '@frontend/sports/grid/media/feature/state';\n\nimport { ISavedState, StateLoader, StateSaver } from '../store-persist/state-storage.model';\n\nexport interface IMediaStateStorage {\n isLocationAllowsExpand: boolean;\n restoreExpandState: boolean;\n}\n\nexport interface IMediaSavedState extends ISavedState {\n media: IMediaStateStorage;\n}\n\nexport function isMediaSavedState(savedState: ISavedState | undefined): savedState is IMediaSavedState {\n return !!savedState && 'media' in savedState;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MediaStateSaver implements StateSaver {\n save(state: MediaState): IMediaStateStorage {\n return {\n isLocationAllowsExpand: state.mediaExpandState.isLocationAllowsExpand,\n restoreExpandState: state.mediaExpandState.restoreExpandState,\n };\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MediaStateLoader implements StateLoader {\n load(state: IMediaStateStorage | undefined): MediaState {\n if (!state) {\n return { ...mediaInitialState };\n }\n\n return {\n ...mediaInitialState,\n mediaExpandState: {\n ...mediaInitialState.mediaExpandState,\n ...state,\n },\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LiveHighlightsResponse } from '@cds/betting-offer/domain-specific/live';\nimport { MessageEnvelope, MessageType } from '@cds/push';\nimport { FixtureState, LiveHighlightsRequest, OfferMapping, ScoreboardMode, SortByCriteria } from '@cds/query-objects';\nimport { DetailedFixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventMediaHelperService } from '@frontend/sports/betting-offer/feature/media';\nimport { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { ConnectionConfig, MediaConfig } from '@frontend/sports/common/client-config-data-access';\nimport { noopAction } from '@frontend/sports/common/core/utils/redux';\nimport { ignoreElementsTyped } from '@frontend/sports/common/core/utils/rxjs';\nimport { CdsPushService, ScoreboardSubscription } from '@frontend/sports/content-distribution/feature';\nimport {\n EventSwitcherItem,\n MediaEventSource,\n MediaModuleContextPage,\n MediaPersistentState,\n MediaSetEvent,\n MediaSetEventInternal,\n} from '@frontend/sports/grid/media/feature/model';\nimport {\n IMediaRootState,\n MediaApiActions,\n MediaState,\n mediaActiveSelector,\n mediaEventInfoSelector,\n mediaExpandedStateSelector,\n mediaStateSelector,\n} from '@frontend/sports/grid/media/feature/state';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { LocalStoreService, MediaQueryService, UserLoginEvent } from '@frontend/vanilla/core';\nimport { Actions as EffectActions, OnInitEffects, createEffect, ofType } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\nimport { applyPatch } from 'fast-json-patch';\nimport { keyBy, omit, uniq } from 'lodash-es';\nimport { concatMap, filter, from, map, of, skipWhile, switchMap, takeUntil, tap, timer, withLatestFrom } from 'rxjs';\n\nimport { EventDetailsHelperService } from '../event-details-common/event-details-helper.service';\nimport { EventDetailsService } from '../event-details-common/event-details.service';\nimport { ColumnLayoutRegister } from '../layout/column-register.service';\nimport { ColumnSize, LayoutColumn } from '../layout/layout.model';\nimport StoragePersister from '../store-persist/storage-persister';\nimport { Actions } from './actions';\nimport { MediaStateLoader, isMediaSavedState } from './media-state-storage';\nimport { UnpinInfoService } from './unpin-info.service';\n\nexport interface MediaComponentState {\n video: { eventId: number; pinned: boolean; autoplay: boolean };\n animation: { eventId: number };\n statistics: { eventId: number };\n activeTab: EventDetailsColumnType;\n}\n\n@Injectable()\nexport class MediaEffects implements OnInitEffects {\n private static readonly STREAMS_CACHE_INTERVAL = 2 * 60 * 1000;\n private static readonly MEDIA_PERSISTENT_STATE_KEY = 'media-state';\n\n private isStateRestored = false;\n private subscriptions: { [eventId: number | string]: { unsubscribe: () => void } } = {};\n\n constructor(\n private actions$: EffectActions,\n private store: Store,\n private cdsSubscription: CdsPushService,\n private bettingOfferApi: BettingOfferApi,\n private eventDetailsService: EventDetailsService,\n private detailedFixtureFactory: DetailedFixtureFactory,\n private eventDetailsHelper: EventDetailsHelperService,\n private eventMediaHelperService: EventMediaHelperService,\n private unpinInfoService: UnpinInfoService,\n private userService: UserService,\n private localStoreService: LocalStoreService,\n private columnLayoutRegister: ColumnLayoutRegister,\n private mediaConfig: MediaConfig,\n private mediaService: MediaQueryService,\n private connection: ConnectionConfig,\n private storagePersister: StoragePersister,\n private stateLoader: MediaStateLoader,\n ) {}\n\n onInit$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.init),\n concatMap(() => [\n Actions.toggleMediaModule({ value: true }),\n Actions.startFetchVideoEvents(),\n Actions.startUserServiceEventsListener(),\n Actions.pinEnabledStateToggle({ value: this.userService.isAuthenticated }),\n Actions.startRestoreState(),\n ]),\n );\n });\n\n setEventId$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(MediaApiActions.setEventId),\n concatMap((action) => of(action).pipe(withLatestFrom(this.store.select(mediaEventInfoSelector(action.payload.eventId))))),\n switchMap(([action, eventInfo]) => {\n const eventModel$ = eventInfo\n ? of(eventInfo.event)\n : from(this.eventDetailsService.getEvent(action.payload.eventId.toString(), true));\n\n return eventModel$.pipe(\n filter((event) => event !== undefined),\n map((result) => ({\n event: result!,\n tab: action.payload.tab,\n source: action.payload.source,\n trackingVideoSource: action.payload.trackingVideoSource,\n })),\n );\n }),\n map((actionPayload) => Actions.setEventInternal({ payload: this.mapMediaSetEventToSetEventInternalPayload(actionPayload) })),\n );\n });\n\n setEvent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(MediaApiActions.setEvent),\n map((action) => Actions.setEventInternal({ payload: this.mapMediaSetEventToSetEventInternalPayload(action.payload) })),\n );\n });\n\n setEventInternal$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.setEventInternal),\n withLatestFrom(this.store.select(mediaStateSelector)),\n tap(([action, mediaState]) => this.updateSubscriptions(mediaState, action.payload.event)),\n concatMap(([action, mediaState]) => this.dispatchSetEventInternalActions(action.payload, mediaState)),\n );\n });\n\n unsetEvent$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(Actions.unsetEvent),\n withLatestFrom(this.store.select(mediaStateSelector)),\n tap(([action, mediaState]) => this.removeObsoleteSubscriptions(mediaState)),\n ignoreElementsTyped(),\n );\n },\n { dispatch: false },\n );\n\n startFetchVideoEvents$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.startFetchVideoEvents),\n switchMap(() => {\n const notActive$ = this.store.select(mediaActiveSelector).pipe(skipWhile((active) => !!active));\n\n return timer(0, MediaEffects.STREAMS_CACHE_INTERVAL).pipe(\n map(() => Actions.fetchVideoEvents()),\n takeUntil(notActive$),\n );\n }),\n );\n });\n\n startUserServiceEventsListener$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.startUserServiceEventsListener),\n switchMap(() => {\n const notActive$ = this.store.select(mediaActiveSelector).pipe(skipWhile((active) => active));\n\n return this.userService.onAuthenticationChange$.pipe(\n map((event) => Actions.pinEnabledStateToggle({ value: event instanceof UserLoginEvent })),\n takeUntil(notActive$),\n );\n }),\n );\n });\n\n fetchVideoEvents$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.fetchVideoEvents),\n switchMap(() => {\n const request: LiveHighlightsRequest = {\n state: FixtureState.Live,\n offerMapping: OfferMapping.None,\n scoreboardMode: ScoreboardMode.None,\n sortBy: SortByCriteria.Tags,\n maxFixturesPerSport: undefined,\n } as any;\n\n return this.bettingOfferApi.getLiveStreams(request);\n }),\n map((streams) => Actions.setVideoSwitcherContent({ content: this.mapToEventSwitcherItem(streams) })),\n );\n });\n\n acceptUnpinInfoMessage$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.acceptUnpinInfoMessage),\n tap(() => this.unpinInfoService.acceptUnpinInfoMessage()),\n map(() => Actions.toggleUnpinInfoMessage({ value: false })),\n );\n });\n\n toggleUnpinInfoMessageAfterContextSwitch$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(MediaApiActions.setMediaWidgetContext),\n filter((action) => action.payload.page === MediaModuleContextPage.Default),\n map(() => Actions.toggleUnpinInfoMessage({ value: false })),\n );\n });\n\n toggleUnpinInfoMessageAfterUnpinning$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.togglePin),\n filter((action) => !action.value),\n map(() => Actions.toggleUnpinInfoMessage({ value: false })),\n );\n });\n\n persistStateEpic$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(\n Actions.unsetEvent,\n Actions.setEventInternal,\n Actions.setActiveTab,\n Actions.toggleAutoplay,\n Actions.togglePin,\n Actions.restoreState,\n Actions.resetState,\n ),\n withLatestFrom(this.store.select(mediaStateSelector)),\n tap(([action, mediaState]) => this.persistState(mediaState)),\n );\n },\n { dispatch: false },\n );\n\n startRestoreStateEpic$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(Actions.startRestoreState),\n switchMap(() => {\n const mediaPersistentState = this.localStoreService.get(MediaEffects.MEDIA_PERSISTENT_STATE_KEY) as MediaPersistentState;\n if (!mediaPersistentState) {\n this.isStateRestored = true;\n\n return of(null);\n }\n\n const eventIds = uniq([\n mediaPersistentState.video.eventId,\n mediaPersistentState.animation.eventId,\n mediaPersistentState.statistics.eventId,\n ]).filter((eventId) => !!eventId);\n\n return from(Promise.all(eventIds.map((eventId) => this.eventDetailsService.getEvent(eventId!.toString(), true)))).pipe(\n map((events: (EventModel | undefined)[]) => {\n const eventsMap = keyBy(\n events.filter((event) => !!event).map((event) => this.mapEventModelToSetEventInternalPayload(event!)),\n 'event.id',\n );\n\n return { ...mediaPersistentState, events: eventsMap };\n }),\n );\n }),\n filter((payload) => !!payload),\n map((payload) => Actions.restoreState({ payload: payload! })),\n );\n });\n\n restoreState$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(Actions.restoreState),\n tap(() => {\n this.isStateRestored = true;\n }),\n ignoreElementsTyped(),\n );\n },\n { dispatch: false },\n );\n\n toggleExpand$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(Actions.toggleExpand),\n withLatestFrom(this.store.select(mediaExpandedStateSelector)),\n tap(([action, expandedState]) => {\n const isExpanded = expandedState.isExpanded;\n const layoutSize = isExpanded\n ? this.mediaService.isActive('gt-mw')\n ? ColumnSize.ExtraLarge\n : ColumnSize.Large\n : ColumnSize.Default;\n this.columnLayoutRegister.resizeColumn(layoutSize, LayoutColumn.Right);\n }),\n ignoreElementsTyped(),\n );\n },\n { dispatch: false },\n );\n\n handlePopulateFromStorage$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(Actions.populateFromStorage),\n withLatestFrom(this.store.select(mediaExpandedStateSelector)),\n tap(([action, expandedState]) => {\n const restoreExpandState = action.state.mediaExpandState.restoreExpandState;\n const isLocationAllowsExpand = expandedState.isLocationAllowsExpand;\n\n if (isLocationAllowsExpand && restoreExpandState) {\n this.columnLayoutRegister.resizeColumn(\n this.mediaService.isActive('gt-mw') ? ColumnSize.ExtraLarge : ColumnSize.Large,\n LayoutColumn.Right,\n );\n }\n }),\n );\n },\n { dispatch: false },\n );\n\n handlebreakpointChange$ = createEffect(\n () => {\n return this.actions$.pipe(\n ofType(Actions.breakpointChanged),\n withLatestFrom(this.store.select(mediaExpandedStateSelector)),\n tap(([action, expandedState]) => {\n const isMediaExpanded = expandedState.isExpanded;\n\n if (isMediaExpanded) {\n this.columnLayoutRegister.resizeColumn(\n this.mediaService.isActive('gt-mw') ? ColumnSize.ExtraLarge : ColumnSize.Large,\n LayoutColumn.Right,\n );\n } else {\n this.columnLayoutRegister.resizeColumn(ColumnSize.Default, LayoutColumn.Right);\n }\n }),\n ignoreElementsTyped(),\n );\n },\n { dispatch: false },\n );\n\n ngrxOnInitEffects(): Action {\n const state = this.storagePersister.load();\n if (isMediaSavedState(state)) {\n const mediaState = this.stateLoader.load(state.media);\n\n return Actions.populateFromStorage({ state: mediaState });\n }\n\n return noopAction;\n }\n\n private *dispatchSetEventInternalActions(payload: MediaSetEventInternal, mediaState: MediaState): Iterable {\n yield Actions.toggleUnpinInfoMessage({ value: this.unpinInfoService.shouldShowUnpinInfoMessage(mediaState) });\n\n if (\n payload.source === MediaEventSource.Grid ||\n payload.source === MediaEventSource.Scoreboard ||\n payload.source === MediaEventSource.EventDetails\n ) {\n yield Actions.toggleCollapsedState({ value: false });\n }\n }\n\n private mapToEventSwitcherItem(eventsModel?: LiveHighlightsResponse | undefined): EventSwitcherItem[] {\n if (!eventsModel) {\n return [];\n }\n\n return eventsModel.sportsOffer\n .filter((sportOffer) => !this.mediaConfig.restrictedSportIds.includes(sportOffer.sport.id))\n .map((item) => ({\n id: item.sport.id,\n name: item.sport.name.value,\n children: item.fixtures.map((event) => ({\n id: event.id,\n name: event.name.value,\n })),\n }));\n }\n\n private updateSubscriptions(mediaState: MediaState, event: EventModel): void {\n this.removeObsoleteSubscriptions(mediaState);\n this.subscribe(event);\n }\n\n private persistState(mediaState: MediaState): void {\n if (!this.isStateRestored) {\n return;\n }\n const persistedState: MediaPersistentState = {\n activeTab: mediaState.activeTab,\n video: {\n eventId: mediaState.video.eventId,\n pinned: mediaState.video.pinned,\n },\n animation: mediaState.animation,\n statistics: mediaState.statistics,\n };\n\n this.localStoreService.set(MediaEffects.MEDIA_PERSISTENT_STATE_KEY, persistedState);\n }\n\n private removeObsoleteSubscriptions(mediaState: MediaState): void {\n const toUnsubscribe = omit(this.subscriptions, [\n mediaState.video.eventId || 0,\n mediaState.animation.eventId || 0,\n mediaState.statistics.eventId || 0,\n ]);\n\n Object.keys(toUnsubscribe).forEach((eventId) => {\n if (this.subscriptions[eventId]) {\n this.subscriptions[eventId].unsubscribe();\n delete this.subscriptions[eventId];\n }\n });\n }\n\n private subscribe(event: EventModel): void {\n if (this.subscriptions[event.id] || !event.live) {\n return;\n }\n\n const scoreboardHandler = (pushData: MessageEnvelope) => {\n if (pushData.messageType === MessageType.PlayerStatsUpdate) {\n return;\n }\n\n applyPatch(event.fixtureScoreboard, pushData.payload.patch.operations);\n this.detailedFixtureFactory.updateScoreboard(event.fixtureScoreboard, event);\n this.updateScoreboard(event);\n };\n\n const scoreboardSubscription = new ScoreboardSubscription(event.offerContext, event.id, this.connection.culture, scoreboardHandler);\n\n this.cdsSubscription.subscribe(scoreboardSubscription);\n\n this.subscriptions[event.id] = { unsubscribe: () => this.cdsSubscription.unsubscribe(scoreboardSubscription) };\n }\n\n private mapMediaSetEventToSetEventInternalPayload(setEventPayload: MediaSetEvent): MediaSetEventInternal {\n return {\n event: setEventPayload.event,\n tab: setEventPayload.tab,\n source: setEventPayload.source,\n hasVideo: this.eventMediaHelperService.hasLiveVideo(setEventPayload.event),\n hasAnimation: this.eventMediaHelperService.hasAnimationOrSimulation(setEventPayload.event),\n hasStats: this.eventDetailsHelper.hasStats(setEventPayload.event),\n showStatsCenterButton: this.mediaConfig.showStatsCenterButton,\n trackingVideoSource: setEventPayload.trackingVideoSource,\n };\n }\n\n private mapEventModelToSetEventInternalPayload(eventModel: EventModel): MediaSetEventInternal {\n return {\n event: eventModel,\n tab: null,\n source: MediaEventSource.Default,\n hasVideo: this.eventMediaHelperService.hasLiveVideo(eventModel),\n hasAnimation: this.eventMediaHelperService.hasAnimationOrSimulation(eventModel),\n hasStats: this.eventDetailsHelper.hasStats(eventModel),\n showStatsCenterButton: this.mediaConfig.showStatsCenterButton,\n trackingVideoSource: TrackingVideoSource.Default,\n };\n }\n\n private updateScoreboard(event: EventModel): void {\n this.store.dispatch(Actions.updateScoreboard({ model: event }));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MediaModuleContextPage } from '@frontend/sports/grid/media/feature/model';\nimport { MediaState } from '@frontend/sports/grid/media/feature/state';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\n@Injectable()\nexport class UnpinInfoService {\n private static readonly mediaModuleUnpinInfoAcceptedKey = 'MediaModuleUnpinInfoAccepted';\n\n constructor(private localStoreService: LocalStoreService) {}\n\n shouldShowUnpinInfoMessage(mediaState: MediaState): boolean {\n return (\n mediaState.context.page === MediaModuleContextPage.EventDetails &&\n mediaState.video.pinned &&\n mediaState.video.eventId !== null &&\n mediaState.context.eventId !== null &&\n mediaState.video.eventId !== mediaState.context.eventId &&\n this.localStoreService.get(UnpinInfoService.mediaModuleUnpinInfoAcceptedKey) !== true\n );\n }\n\n acceptUnpinInfoMessage(): void {\n this.localStoreService.set(UnpinInfoService.mediaModuleUnpinInfoAcceptedKey, true);\n }\n}\n","import { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { MediaEventSource, MediaModuleContextPage, MediaSetEventInternal, RestoreStatePayload } from '@frontend/sports/grid/media/feature/model';\nimport { EventInfo, MediaApiActions, MediaState, mediaInitialState } from '@frontend/sports/grid/media/feature/state';\nimport { createReducer, on } from '@ngrx/store';\nimport { Draft, produce } from 'immer';\nimport { assign, pick } from 'lodash-es';\n\nimport { showStreamingMessage } from '../video-stream/video-stream.models';\nimport { Actions } from './actions';\n\nexport const mediaReducer = createReducer(\n mediaInitialState,\n on(Actions.updateScoreboard, (state, action) => updateScoreboard(state, action.model)),\n on(Actions.toggleMediaModule, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.active = action.value;\n }),\n ),\n on(Actions.setActiveTab, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.activeTab = action.tab.tabId;\n mediaDraft.video.trackingSource = action.tab.trackingSource;\n }),\n ),\n on(Actions.togglePin, (state, action) => togglePin(state, action.value)),\n on(Actions.toggleExpand, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.mediaExpandState.isExpanded = !mediaDraft.mediaExpandState.isExpanded;\n mediaDraft.mediaExpandState.restoreExpandState = action.value;\n }),\n ),\n on(Actions.setAvailableExpandLocation, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.mediaExpandState.isLocationAllowsExpand = action.value;\n }),\n ),\n on(Actions.setVideoSwitcherContent, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.video.dropdownEvents = action.content;\n }),\n ),\n on(MediaApiActions.setMediaWidgetContext, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.context.page = action.payload.page;\n mediaDraft.context.eventId = action.payload.eventId;\n }),\n ),\n on(Actions.toggleAutoplay, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.video.autoplay = action.value;\n mediaDraft.video.playing = action.value;\n }),\n ),\n on(MediaApiActions.togglePlaying, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.video.playing = action.value;\n }),\n ),\n on(Actions.setEventInternal, (state, action) => setEventInternal(state, action.payload)),\n on(Actions.toggleUnpinInfoMessage, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.video.unpinInfoVisible = action.value;\n }),\n ),\n on(Actions.toggleCollapsedState, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.isCollapsed = action.value;\n }),\n ),\n on(Actions.pinEnabledStateToggle, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.video.pinEnabled = action.value;\n }),\n ),\n on(Actions.unsetEvent, (state, action) => unsetEvent(state, action.columnType)),\n on(Actions.restoreState, (state, action) => restoreState(state, action.payload)),\n on(Actions.resetState, (state, action) => resetState(state, action.value)),\n on(Actions.populateFromStorage, (state, action) =>\n produce(state, (mediaDraft) => {\n mediaDraft.mediaExpandState.isExpanded = action.state.mediaExpandState.isExpanded;\n mediaDraft.mediaExpandState.restoreExpandState = action.state.mediaExpandState.restoreExpandState;\n }),\n ),\n);\n\nfunction restoreState(media: MediaState, payload: RestoreStatePayload): MediaState {\n let hasActiveTab = false;\n\n return produce(media, (mediaDraft) => {\n if (!!payload.video.eventId && payload.events[payload.video.eventId as any as number]) {\n mediaDraft.video.pinned = mediaDraft.video.pinEnabled && payload.video.pinned;\n mediaDraft.video.eventId = payload.video.eventId;\n hasActiveTab = payload.activeTab === EventDetailsColumnType.Video;\n addEvent(mediaDraft, payload.events[payload.video.eventId as any as number]);\n }\n\n if (\n !!payload.animation.eventId &&\n payload.events[payload.animation.eventId as any as number] &&\n mediaDraft.context.page !== MediaModuleContextPage.EventDetails\n ) {\n mediaDraft.animation.eventId = payload.animation.eventId;\n hasActiveTab = hasActiveTab || payload.activeTab === EventDetailsColumnType.Animation;\n addEvent(mediaDraft, payload.events[payload.animation.eventId as any as number]);\n }\n\n if (\n !!payload.statistics.eventId &&\n payload.events[payload.statistics.eventId as any as number] &&\n mediaDraft.context.page !== MediaModuleContextPage.EventDetails\n ) {\n mediaDraft.statistics.eventId = payload.statistics.eventId;\n hasActiveTab = hasActiveTab || payload.activeTab === EventDetailsColumnType.Stats;\n addEvent(mediaDraft, payload.events[payload.statistics.eventId as any as number]);\n }\n\n mediaDraft.activeTab = hasActiveTab ? payload.activeTab : getActiveTabWithFallback(mediaDraft);\n\n mediaDraft.eventInfos = getActiveEvents(mediaDraft);\n });\n}\n\nfunction updateScoreboard(media: MediaState, event: EventModel): MediaState {\n return produce(media, (mediaDraft) => {\n if (mediaDraft.eventInfos[event.id]) {\n mediaDraft.eventInfos[event.id].event.scoreboard = event.scoreboard;\n }\n });\n}\n\nfunction togglePin(media: MediaState, pinned: boolean): MediaState {\n return produce(media, (mediaDraft) => {\n if (!mediaDraft.video.pinEnabled) {\n return;\n }\n\n mediaDraft.video.pinned = pinned;\n const previousVideoEventId = mediaDraft.video.eventId;\n\n if (!pinned) {\n const switchToEventId =\n mediaDraft.context.eventId || mediaDraft.animation.eventId || mediaDraft.statistics.eventId || mediaDraft.video.eventId;\n mediaDraft.video.eventId = switchToEventId && mediaDraft.eventInfos[switchToEventId].hasVideo ? switchToEventId : null;\n\n mediaDraft.activeTab =\n mediaDraft.context.page === MediaModuleContextPage.EventDetails ? getActiveTabWithFallback(mediaDraft) : mediaDraft.activeTab;\n\n if (mediaDraft.activeTab !== media.activeTab || mediaDraft.video.eventId === null) {\n mediaDraft.video.playing = false;\n }\n\n mediaDraft.video.autoplay =\n mediaDraft.context.page === MediaModuleContextPage.EventDetails || mediaDraft.video.eventId !== previousVideoEventId\n ? mediaDraft.video.autoplay\n : !mediaDraft.video.eventId;\n }\n\n mediaDraft.eventInfos = getActiveEvents(mediaDraft);\n });\n}\n\nfunction setEventInternal(media: MediaState, payload: MediaSetEventInternal): MediaState {\n return produce(media, (mediaDraft) => {\n switch (payload.source) {\n case MediaEventSource.EventSwitcher:\n updateEventForEventSwitcher(mediaDraft, payload);\n break;\n case MediaEventSource.Grid:\n case MediaEventSource.Scoreboard:\n updateEventForGrid(mediaDraft, payload);\n break;\n case MediaEventSource.EventDetails:\n updateEventForEventDetails(mediaDraft, payload);\n break;\n }\n\n addEvent(mediaDraft, payload);\n mediaDraft.eventInfos = getActiveEvents(mediaDraft);\n mediaDraft.pendingEsport = showStreamingMessage(payload.event, true) ? payload.event : undefined;\n });\n}\n\nfunction resetState(media: MediaState, resetPin?: boolean): MediaState {\n return produce(media, (mediaDraft) => {\n if (!!resetPin || !mediaDraft.video.pinned) {\n mediaDraft.video.eventId = null;\n mediaDraft.video.pinned = false;\n mediaDraft.video.unpinInfoVisible = false;\n mediaDraft.video.autoplay = false;\n }\n mediaDraft.animation.eventId = null;\n mediaDraft.statistics.eventId = null;\n mediaDraft.activeTab = EventDetailsColumnType.Video;\n mediaDraft.eventInfos = getActiveEvents(mediaDraft);\n });\n}\n\nfunction updateEventForEventSwitcher(mediaDraft: Draft, payload: MediaSetEventInternal): void {\n mediaDraft.video.pinned =\n mediaDraft.video.pinEnabled &&\n payload.hasVideo &&\n mediaDraft.context.page === MediaModuleContextPage.EventDetails &&\n payload.event.id !== mediaDraft.context.eventId;\n mediaDraft.video.eventId = payload.hasVideo ? payload.event.id : null;\n mediaDraft.video.autoplay = payload.hasVideo;\n mediaDraft.video.trackingSource = payload.trackingVideoSource;\n\n if (mediaDraft.context.page !== MediaModuleContextPage.EventDetails) {\n mediaDraft.animation.eventId = payload.hasAnimation ? payload.event.id : null;\n mediaDraft.statistics.eventId = payload.hasStats || hasBetradarId(payload) ? payload.event.id : null;\n }\n}\n\nfunction updateEventForEventDetails(mediaDraft: Draft, payload: MediaSetEventInternal): void {\n if (!mediaDraft.video.pinned) {\n mediaDraft.video.eventId = payload.hasVideo ? payload.event.id : null;\n mediaDraft.video.pinned = false;\n mediaDraft.video.autoplay = false;\n }\n\n mediaDraft.animation.eventId = payload.hasAnimation ? payload.event.id : null;\n mediaDraft.statistics.eventId = payload.hasStats || hasBetradarId(payload) ? payload.event.id : null;\n\n mediaDraft.activeTab = getActiveTabWithFallback(mediaDraft);\n}\n\nfunction updateEventForGrid(mediaDraft: Draft, payload: MediaSetEventInternal): void {\n if (payload.tab === EventDetailsColumnType.Video || !mediaDraft.video.pinned) {\n mediaDraft.video.eventId = payload.hasVideo ? payload.event.id : null;\n mediaDraft.video.pinned = false;\n mediaDraft.video.autoplay = payload.tab === EventDetailsColumnType.Video && payload.hasVideo;\n mediaDraft.video.trackingSource = payload.trackingVideoSource;\n }\n\n mediaDraft.animation.eventId = payload.hasAnimation ? payload.event.id : null;\n mediaDraft.statistics.eventId = payload.hasStats || hasBetradarId(payload) ? payload.event.id : null;\n mediaDraft.activeTab = payload.tab || EventDetailsColumnType.Video;\n}\n\nfunction getActiveEvents(mediaState: Draft): Draft<{ [eventId: string]: EventInfo }> {\n return pick(mediaState.eventInfos, [\n mediaState.video.eventId || '',\n mediaState.animation.eventId || '',\n mediaState.statistics.eventId || '',\n mediaState.context.eventId || '',\n ]);\n}\n\nfunction unsetEvent(media: MediaState, eventDetailsColumnType: EventDetailsColumnType): MediaState {\n return produce(media, (mediaDraft) => {\n switch (eventDetailsColumnType) {\n case EventDetailsColumnType.Video:\n mediaDraft.video.eventId = null;\n mediaDraft.video.pinned = false;\n mediaDraft.video.unpinInfoVisible = false;\n mediaDraft.video.autoplay = false;\n break;\n case EventDetailsColumnType.Animation:\n mediaDraft.animation.eventId = null;\n break;\n case EventDetailsColumnType.Stats:\n mediaDraft.statistics.eventId = null;\n break;\n }\n\n mediaDraft.eventInfos = getActiveEvents(mediaDraft);\n });\n}\n\nfunction cloneEvent(eventModel: EventModel): Draft {\n return assign(new EventModel(), eventModel, {\n optionSets: [],\n optionGroups: [],\n optionSetId: undefined,\n }) as any;\n}\n\nconst tabsAvailabilityByEventId = [\n { isAvailable: (mediaState: Draft) => mediaState.video.eventId !== null, tab: EventDetailsColumnType.Video },\n { isAvailable: (mediaState: Draft) => mediaState.animation.eventId !== null, tab: EventDetailsColumnType.Animation },\n { isAvailable: (mediaState: Draft) => mediaState.statistics.eventId !== null, tab: EventDetailsColumnType.Stats },\n { isAvailable: (mediaState: Draft) => true, tab: EventDetailsColumnType.Video },\n];\n\nfunction getActiveTabWithFallback(mediaDraft: Draft): EventDetailsColumnType {\n return tabsAvailabilityByEventId.find((tabInfo) => tabInfo.isAvailable(mediaDraft))!.tab;\n}\n\nfunction addEvent(mediaDraft: Draft, mediaSetEventInternal: MediaSetEventInternal): void {\n mediaDraft.eventInfos[mediaSetEventInternal.event.id] = {\n hasVideo: mediaSetEventInternal.hasVideo,\n hasAnimation: mediaSetEventInternal.hasAnimation,\n hasStats: mediaSetEventInternal.hasStats,\n event: cloneEvent(mediaSetEventInternal.event),\n };\n}\n\nfunction hasBetradarId(payload: MediaSetEventInternal): boolean {\n return !!(payload?.event?.statsId && payload.showStatsCenterButton && payload.event.sport.id === SportConstant.Soccer);\n}\n","import { EnvironmentProviders, Provider, importProvidersFrom } from '@angular/core';\n\nimport { mediaFeatureKey } from '@frontend/sports/grid/media/feature/state';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { StateStorageModule } from '../store-persist/state-storage.module';\nimport { MediaStateSaver } from './media-state-storage';\nimport { MediaEffects } from './media.epic';\nimport { mediaReducer } from './media.reducer';\nimport { UnpinInfoService } from './unpin-info.service';\n\nexport function MediaProviders(): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(\n StoreModule.forFeature(mediaFeatureKey, mediaReducer),\n EffectsModule.forFeature([MediaEffects]),\n StateStorageModule.forFeature(mediaFeatureKey, MediaStateSaver),\n ),\n UnpinInfoService,\n ];\n}\n","import { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { ExternalNativeAppService } from './external-native-app.service';\n\nexport const provideNativeApi = () => runOnSportsWebInit(ExternalNativeAppService);\n","import { Injectable } from '@angular/core';\n\nimport { NgrxReportsConfiguration } from '@frontend/sports/common/client-config-data-access';\nimport { Actions, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { filter, tap } from 'rxjs';\n\nimport { NgrxReportsService } from '../services/ngrx-reports.service';\n\n@Injectable()\nexport default class NgrxReportsEffect {\n constructor(\n private actions: Actions,\n private userActions: NgrxReportsService,\n private ngrxReportsConfig: NgrxReportsConfiguration,\n ) {}\n\n handleSaveStateEffect$ = createEffect(\n () => {\n return this.actions.pipe(\n filter((action) => {\n return (\n this.ngrxReportsConfig.isReportsEnabled &&\n !this.ngrxReportsConfig.restrictedActions.some((restrictedAction) => action.type.startsWith(restrictedAction))\n );\n }),\n tap((action) => {\n if (action !== null) {\n this.userActions.addAction(action);\n }\n }),\n );\n },\n { dispatch: false },\n );\n}\n","import { importProvidersFrom } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\n\nimport NgrxReportsEffect from './effects/ngrx-reports.effect';\n\nexport const provideNgrxReports = () => {\n return [importProvidersFrom(EffectsModule.forFeature([NgrxReportsEffect]))];\n};\n","import { createFeatureSelector } from '@ngrx/store';\n\nimport { IRootState } from '../../store/root.state';\n\nexport interface NumpadStoreState {\n focus: boolean;\n}\n\nexport const numpadInitialState: NumpadStoreState = {\n focus: false,\n};\n\nexport const numpadFeatureKey = 'numpad';\n\nexport interface INumpadRootState extends IRootState {\n numpad: NumpadStoreState;\n}\n\nexport const numpadStateSelector = createFeatureSelector(numpadFeatureKey);\n","import { on } from '@ngrx/store';\nimport { createImmutableReducer } from 'packages/sports/common/betslip/base/store/helpers';\n\nimport NumpadActions from './actions';\nimport { numpadInitialState } from './numpad.state';\n\nexport const numpadReducer = createImmutableReducer(\n numpadInitialState,\n on(NumpadActions.numpadFocus, (state, action) => {\n state.focus = action.numpadFocus;\n\n return state;\n }),\n);\n","import { Provider, importProvidersFrom } from '@angular/core';\n\nimport { StoreModule } from '@ngrx/store';\n\nimport { FieldStakeInputModeStrategy, StakeInputModeStrategy } from './stake-input-mode.strategy';\nimport { numpadFeatureKey } from './store/numpad.state';\nimport { numpadReducer } from './store/reducer';\n\nexport const provideNumpad = (): Provider => [\n { provide: StakeInputModeStrategy, useClass: FieldStakeInputModeStrategy },\n importProvidersFrom(StoreModule.forFeature(numpadFeatureKey, numpadReducer)),\n];\n","import { Provider } from '@angular/core';\n\nimport { runOnSportsWebInit } from '../bootstrap/run-on-sports-web.provider';\nimport { RunAfterLcpService } from './run-after-lcp.service';\n\nexport function provideRunAfterLcp(): Provider[] {\n return runOnSportsWebInit(RunAfterLcpService);\n}\n","import { Injectable } from '@angular/core';\nimport { Params, Router } from '@angular/router';\n\nimport { PrettyUrlsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { PageViewDataProvider, TrackingData } from '@frontend/vanilla/core';\nimport { forIn, kebabCase, keys } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\n\n@Injectable()\nexport class PrettyUrlPageViewDataProvider implements PageViewDataProvider {\n constructor(\n private router: Router,\n private urlConfig: PrettyUrlsConfig,\n ) {}\n\n getData(): Observable {\n return of({ 'page.name': this.getPageName() });\n }\n\n private getPageName(): string {\n const separator = '/';\n\n let node = this.router.routerState.snapshot.root;\n let segments: string[] = [];\n let params: Params = {};\n let path = '';\n\n while (node) {\n segments.push(node.data.originalPath);\n params = { ...node.params };\n\n node = node.children[0];\n }\n\n segments = segments\n .filter(isDefined)\n .filter((current) => current !== '')\n .filter((current, index) => index > 0);\n path = segments.join(separator);\n\n // fix for context parameter for sport pages and tab parameter for my bets\n this.setToken(params, 'context');\n this.setToken(params, 'tab');\n\n forIn(params, (value, key) => (path = path.replace(`:${key}`, value)));\n\n return path;\n }\n\n private setToken(params: Params, key: string): void {\n if (!params[key]) {\n return;\n }\n\n const translations = this.urlConfig.translations;\n\n const param = keys(translations).find((token) => translations[token] === params[key]);\n\n if (param) {\n params[key] = kebabCase(param);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PrettyUrlsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouteProcessor } from '@frontend/vanilla/core';\nimport { kebabCase, keys, template } from 'lodash-es';\n\nimport { SportRoute } from './multi-route.model';\n\n@Injectable()\nexport class PrettyUrlRouteProcessor implements RouteProcessor {\n constructor(private routeConfig: PrettyUrlsConfig) {}\n\n /* Keep for future testing\n\ttest(routeConfig: Route[]): void {\n\t\tconst log = (route: Route, segements: string[]) => {\n\t\t\tconst data = route.data || {};\n\t\t\tconst dataSegments = route.path === '' ? segements : [...segements, data.originalPath || 'missing'];\n\n\t\t\tif (route.children && route.children.length) {\n\t\t\t\troute.children.forEach(child => {\n\t\t\t\t\tlog(child, dataSegments);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconsole.log(dataSegments.join('/'));\n\t\t\t}\n\t\t};\n\n\t\trouteConfig.forEach(route => log(route, []));\n\t}\n\t */\n\n process(route: SportRoute): SportRoute | null {\n route.data = route.data || {};\n\n if (route.path !== undefined) {\n this.tryUpdateOriginalPath(route, this.stripToken(route.path));\n route.path = this.interpolate(route.path);\n }\n\n if (route.redirectTo) {\n route.redirectTo = this.interpolate(route.redirectTo as string);\n }\n\n if (route.matcher) {\n const includeName = ['region', 'league', 'meeting', 'race'];\n const normalizeName = (param?: string) => kebabCase((param || '').replace('Id', ''));\n const toName = (param?: string) => (includeName.indexOf(normalizeName(param)) === -1 ? `:${param}` : `${normalizeName(param)}-:${param}`);\n\n if (route.data.matcherParam) {\n this.tryUpdateOriginalPath(route, toName(route.data.matcherParam));\n }\n\n if (route.data.matcherPattern) {\n const useMapping = (segement: string) => segement.indexOf('(') !== -1;\n const mapping = keys(route.data.matcherMapping).filter((x) => x.indexOf('Name') === -1);\n\n this.tryUpdateOriginalPath(\n route,\n this.stripJoin('/', this.stripOptional(route.data.matcherPattern), (segment) =>\n useMapping(segment) ? toName(mapping.shift()) : this.stripToken(segment),\n ),\n );\n\n route.data.matcherPattern = this.interpolate(route.data.matcherPattern);\n }\n }\n\n return route;\n }\n\n private tryUpdateOriginalPath(route: SportRoute, value: string): void {\n route.data = route.data || {};\n if (!route.data.originalPath || this.isWritable(route.data, 'originalPath')) {\n route.data.originalPath = value;\n }\n }\n\n private isWritable(obj: T, key: keyof T): boolean {\n const desc = Object.getOwnPropertyDescriptor(obj, key) || {};\n\n return Boolean(desc.writable);\n }\n\n private interpolate(path: string): string {\n return template(path, { interpolate: /{([^}]+?)}/g })({\n ...this.routeConfig.translations,\n formCoupon: 'form-coupon',\n });\n }\n\n private stripToken(path: string): string {\n if (path === '**') {\n return path;\n }\n\n return this.stripJoin('/', path, (segement) => {\n return this.stripJoin(':', segement, kebabCase);\n });\n }\n\n private stripOptional(path: string): string {\n return path.replace(/(\\([^\\/]*\\)\\?|\\^|\\$)/g, '');\n }\n\n private stripJoin(token: string, text: string, callback: (node: string) => string): string {\n return text.split(token).map(callback).join(token);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RootInjector {\n static injector: Injector;\n\n constructor(injector: Injector) {\n RootInjector.injector = injector;\n }\n}\n","import { createAction } from '@ngrx/store';\n\nexport default class StorePersistActions {\n private static readonly SAVE_STATE = `@sports/SAVE_STATE`;\n\n /**\n * Trigger manual saving state.\n */\n static saveState = createAction(StorePersistActions.SAVE_STATE);\n}\n","import { Injectable } from '@angular/core';\n\nimport { GRID_ACTION_SCHEMA } from '@frontend/sports/grid/core/feature/store';\nimport { EventsService, NativeEventType } from '@frontend/vanilla/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { concatLatestFrom } from '@ngrx/operators';\nimport { Store } from '@ngrx/store';\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs';\n\nimport { IRootState } from '../store/root.state';\nimport StateConverterService from './state-converter.service';\nimport StoragePersister from './storage-persister';\nimport StorePersistActions from './store-persist-actions';\n\n@Injectable()\nexport default class StorePersistEffects {\n private static readonly SAVE_STORAGE_BUFFER_TIME = 200; // save all save state requests which come in 200 milliseconds and then update the storage.\n\n constructor(\n private store: Store,\n private actions: Actions,\n private storagePersister: StoragePersister,\n private stateConverter: StateConverterService,\n private eventsService: EventsService,\n ) {}\n\n handleSaveStateEffect$ = createEffect(\n () => {\n return this.actions.pipe(\n filter((action) => !action.type.startsWith(GRID_ACTION_SCHEMA)),\n debounceTime(StorePersistEffects.SAVE_STORAGE_BUFFER_TIME),\n concatLatestFrom(() => this.store),\n tap(([_, currentState]) => this.saveState(currentState)),\n takeUntil(this.eventsService.events.pipe(filter((t) => t.eventName === NativeEventType.RESET_TERMINAL))),\n );\n },\n { dispatch: false },\n );\n\n handleManualSaveStateEffect$ = createEffect(\n () => {\n return this.actions.pipe(\n ofType(StorePersistActions.saveState),\n concatLatestFrom(() => this.store),\n tap(([_, currentState]) => this.saveState(currentState)),\n );\n },\n { dispatch: false },\n );\n\n private saveState(currentState: IRootState): void {\n const previousState = this.storagePersister.load() || {};\n const convertedState = this.stateConverter.convert(currentState);\n const newState = Object.assign({}, previousState, convertedState);\n this.storagePersister.save(newState);\n }\n}\n","import { Provider, importProvidersFrom } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\n\nimport StorePersistEffects from './store-persist.effects';\n\nexport const provideRootStateStorage = (): Provider => [importProvidersFrom(EffectsModule.forFeature([StorePersistEffects]))];\n","import { Injectable } from '@angular/core';\n\nimport { UserService } from '@frontend/sports/user/feature';\n\nimport { ISavedState, StateLoader, StateSaver } from '../store-persist/state-storage.model';\nimport { IUiState, defaultUiState } from './ui-manager.state';\nimport { uiStatesThatShouldBeRestored_Authenticated, uiStatesThatShouldBeRestored_NotAuthenticated } from './ui-states.enum';\n\nexport interface IUiSavedState extends ISavedState {\n ui: IUiState;\n}\n\nexport function isUiSavedState(savedState: ISavedState | undefined): savedState is IUiSavedState {\n return !!savedState && 'ui' in savedState;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiStateSaver implements StateSaver {\n constructor(private user: UserService) {}\n\n save(state: IUiState): IUiState {\n const uiStatesThatShouldBeRestored = this.user.isAuthenticated\n ? uiStatesThatShouldBeRestored_Authenticated\n : uiStatesThatShouldBeRestored_NotAuthenticated;\n\n return {\n states: state.states.filter((candidateState) => uiStatesThatShouldBeRestored.some((allowedState) => allowedState === candidateState)),\n };\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UiStateLoader implements StateLoader {\n constructor(private user: UserService) {}\n\n load(state: IUiState | undefined): IUiState {\n if (!state) {\n return { ...defaultUiState };\n }\n const uiStatesThatShouldBeRestored = this.user.isAuthenticated\n ? uiStatesThatShouldBeRestored_Authenticated\n : uiStatesThatShouldBeRestored_NotAuthenticated;\n const uiStates = state.states.filter((candidateState) =>\n uiStatesThatShouldBeRestored.some((allowedState) => allowedState === candidateState),\n );\n if (uiStates.length === 0) {\n return { ...defaultUiState };\n }\n\n return {\n states: uiStates,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { calcDiff } from '@frontend/sports/common/core/utils/collection';\nimport { noopAction } from '@frontend/sports/common/core/utils/redux';\nimport { OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\nimport { filter, first, map, pairwise } from 'rxjs';\n\nimport StoragePersister from '../store-persist/storage-persister';\nimport { UiManagerActions } from './ui-manager.actions';\nimport { IUiRootState, uiStateSelector } from './ui-manager.state';\nimport { UiStateLoader, isUiSavedState } from './ui-state-storage';\n\n@Injectable()\nexport class UiManagerEffects implements OnInitEffects {\n constructor(\n private persister: StoragePersister,\n private uiStateLoader: UiStateLoader,\n private store: Store,\n ) {}\n\n handleStateChangedFirstEffect$ = createEffect(() => {\n return this.store.select(uiStateSelector).pipe(\n first(),\n map((state) => {\n return UiManagerActions.stateChanged({\n payload: {\n added: [...state.states],\n removed: [],\n current: [...state.states],\n },\n });\n }),\n filter((action) => action.payload.added.length > 0),\n );\n });\n\n handleStateChangedNextEffect$ = createEffect(() => {\n return this.store.select(uiStateSelector).pipe(\n pairwise(),\n map(([prevState, currentState]) => {\n return UiManagerActions.stateChanged({\n payload: {\n ...calcDiff(prevState.states, currentState.states),\n current: [...currentState.states],\n },\n });\n }),\n filter((action) => action.payload.added.length > 0 || action.payload.removed.length > 0),\n );\n });\n\n ngrxOnInitEffects(): Action {\n const state = this.persister.load();\n if (isUiSavedState(state)) {\n const uiState = this.uiStateLoader.load(state.ui);\n\n return UiManagerActions.populateFromStorage({ state: uiState });\n }\n\n return noopAction;\n }\n}\n","import { createReducer, on } from '@ngrx/store';\n\nimport { UiManagerActions } from './ui-manager.actions';\nimport { IUiState, defaultUiState } from './ui-manager.state';\nimport { UiStates } from './ui-states.enum';\n\nconst addState = (states: UiStates[], state: UiStates): UiStates[] => {\n return [...states, state];\n};\n\nconst removeState = (states: UiStates[], index: number): UiStates[] => {\n if (index > -1) {\n const newStates = states.slice();\n newStates.splice(index, 1);\n\n return newStates;\n } else {\n return states;\n }\n};\n\nexport const uiStateReducer = createReducer(\n defaultUiState,\n on(UiManagerActions.setState, (state, action) => {\n return {\n ...state,\n states: [action.state],\n };\n }),\n on(UiManagerActions.addState, (state, action) => {\n const uiState = action.state;\n const index = state.states.indexOf(uiState);\n if (index === -1) {\n return {\n ...state,\n states: addState(state.states, uiState),\n };\n }\n\n return state;\n }),\n on(UiManagerActions.removeState, (state, action) => {\n const payload = action.state;\n\n return {\n ...state,\n states: state.states.filter((s) => s !== payload),\n };\n }),\n on(UiManagerActions.removeMultiStates, (state, action) => {\n const payload = action.states;\n\n return {\n ...state,\n states: state.states.filter((s) => payload.indexOf(s) === -1),\n };\n }),\n on(UiManagerActions.toggleState, (state, action) => {\n const payload = action.state;\n const index = state.states.indexOf(payload);\n\n return {\n ...state,\n states: index === -1 ? addState(state.states, payload) : removeState(state.states, index),\n };\n }),\n on(UiManagerActions.populateFromStorage, (state, action) => {\n const ui = action.state;\n\n return {\n ...state,\n ...ui,\n states: [...state.states, ...ui.states.filter((_) => !state.states.some((_s) => _s === _))],\n };\n }),\n);\n\nexport const uiStateSaver = (state: IUiState): IUiState => {\n return state;\n};\n\nexport const uiStateLoader = (state: IUiState): IUiState => {\n return state;\n};\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { StateStorageModule } from '../store-persist/state-storage.module';\nimport { UiManagerEffects } from './ui-manager.epic';\nimport { uiStateReducer } from './ui-manager.reducer';\nimport { uiFeatureKey } from './ui-manager.state';\nimport { UiStateSaver } from './ui-state-storage';\n\nexport function provideUiManager(): EnvironmentProviders {\n return importProvidersFrom(\n StoreModule.forFeature(uiFeatureKey, uiStateReducer),\n EffectsModule.forFeature([UiManagerEffects]),\n StateStorageModule.forFeature(uiFeatureKey, UiStateSaver),\n );\n}\n","import { CurrencyPipe, IMAGE_LOADER, ImageLoaderConfig } from '@angular/common';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { EnvironmentProviders, Provider, importProvidersFrom, inject } from '@angular/core';\n\nimport { MarketDisplayFallbackService, SportsMarketGroupingFallbackService } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EpcotConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SCROLL_ADAPTER_CONFIG, ScrollAdapterConfig } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { CURRENT_THEME_TOKEN, IS_ROBOT_TOKEN, SportsTheme } from '@frontend/sports/common/ui/shared';\nimport { CustomLoadingIndicatorExtendedService, CustomLoadingIndicatorService, LOADING_INDICATOR } from '@frontend/sports/loading-indicator-feature';\nimport { MODAL_WINDOW_CONFIG } from '@frontend/sports/modal/feature/provider';\nimport { FallbackImage, PARTICIPANT_IMAGE_CONFIG } from '@frontend/sports/participant-image/feature/provider';\nimport { provideTracking } from '@frontend/sports/tracking/feature/network-profiler';\nimport { provideUser } from '@frontend/sports/user/feature';\nimport { DeviceService, MediaQueryService, PAGE_VIEW_DATA_PROVIDER, Page, ROUTE_PROCESSOR, STORE_PREFIX } from '@frontend/vanilla/core';\nimport { LANGUAGE_SWITCHER_URLS_PROVIDER } from '@frontend/vanilla/features/language-switcher';\nimport { RUN_AFTER_LCP_TOKEN, RunAfterLcpType } from '@frontend/vanilla/features/tracking';\nimport { provideNgxPopperjsOptions } from 'ngx-popperjs';\nimport { BetslipDigitalIntegrationModule } from 'packages/sports/common/betslip/integration/betslip-digital-integration.module';\n\nimport { AccaBoostRefreshTriggerService } from './acca-boost-base/acca-boost-refresh-trigger.service';\nimport { ACCA_BOOST_REFRESH_TRIGGER } from './acca-boost-base/acca-boost-token-provider.service';\nimport { provideBestOdds } from './best-odds-guarantee/best-odds.provider';\nimport { provideSportsWebBootstrap } from './bootstrap/sports-web-bootstrap.provider';\nimport { EpcotConfigService } from './common/epcot-config.service';\nimport { provideDataRefresh } from './data-refresh/data-refresh.provider';\nimport provideEsports from './esports/esports.provider';\nimport { provideEventBridge } from './event-bridge/event-bridge.provider';\nimport { provideEventList } from './event-list-shared/event-list-providers';\nimport { provideMarqueeWidgetSkeleton } from './highlights-marquee/marquee-widget-skeleton.provider';\nimport { provideHome } from './home/home.provider';\nimport { provideSportsHttpInterceptors } from './http-interceptors/sports-http-interceptors.provider';\nimport { provideLayout } from './layout/layout.provider';\nimport { PatchedMediaObserver } from './layout/patched-media-observer';\nimport { LAZY_STYLES_CONFIG } from './lazy-features/lazy-styles.config';\nimport { provideMarketSubTypeLogoHideStrategy } from './marketsubtype-logo/marketsubtype-logo-hide.provider';\nimport { MediaProviders } from './media/media.provider';\nimport { provideNativeApi } from './native-api/native-api.provider';\nimport { provideNgrxReports } from './ngrx-reports/ngrx-reports.provider';\nimport { provideNumpad } from './numpad/numpad.provider';\nimport { provideRunAfterLcp } from './perf-cdk/run-after-lcp.provider';\nimport { RunAfterLcpService } from './perf-cdk/run-after-lcp.service';\nimport { PrettyUrlLanguageSwitcherProvider } from './router/pretty-url-language-switcher.provider';\nimport { PrettyUrlPageViewDataProvider } from './router/pretty-url-page-view-data.provider';\nimport { PrettyUrlRouteProcessor } from './router/pretty-url-route-processor.service';\nimport { RootInjector } from './router/root-injector.service';\nimport { provideRootStateStorage } from './store-persist/state-storage-root.provider';\nimport { provideUiManager } from './ui-manager/ui-manager.provider';\n\nexport const SCROLL_ADAPTER_CONFIG_OVERRIDE: ScrollAdapterConfig = {\n disableHorizontalScrollOnDesktop: true,\n};\n\n/**\n * Provides services needed for running the Sports-Web application as standalone or in host-app integration.\n * This should include all regular services used by the application.\n * These services will be provided as root in standalone mode and non-root in host-app integration.\n * @returns Providers needed for running Sports-Web.\n */\nexport function provideSportsWebCore(): (Provider | EnvironmentProviders)[] {\n return [\n importProvidersFrom(BetslipDigitalIntegrationModule.forRoot()),\n provideNgxPopperjsOptions(),\n provideEsports(),\n provideUser(),\n provideTracking(),\n provideUiManager(),\n MediaProviders(),\n provideHttpClient(withInterceptorsFromDi()),\n provideSportsHttpInterceptors(),\n provideEventList(),\n provideNgrxReports(),\n provideLayout(),\n provideNumpad(),\n provideBestOdds(),\n provideEventBridge(),\n provideDataRefresh(),\n provideNativeApi(),\n provideSportsWebBootstrap(),\n provideHome(),\n provideRootStateStorage(),\n provideMarketSubTypeLogoHideStrategy(),\n { provide: STORE_PREFIX, useValue: 'ms2.' },\n CurrencyPipe,\n RootInjector,\n provideMarqueeWidgetSkeleton(),\n { provide: MarketDisplayFallbackService, useClass: SportsMarketGroupingFallbackService },\n { provide: MediaQueryService, useClass: PatchedMediaObserver },\n {\n provide: CustomLoadingIndicatorService,\n useExisting: CustomLoadingIndicatorExtendedService,\n },\n {\n provide: LANGUAGE_SWITCHER_URLS_PROVIDER,\n useClass: PrettyUrlLanguageSwitcherProvider,\n },\n { provide: LOADING_INDICATOR, useValue: '' },\n {\n provide: PAGE_VIEW_DATA_PROVIDER,\n useClass: PrettyUrlPageViewDataProvider,\n multi: true,\n },\n {\n provide: ROUTE_PROCESSOR,\n useClass: PrettyUrlRouteProcessor,\n multi: true,\n },\n {\n provide: SCROLL_ADAPTER_CONFIG,\n useValue: SCROLL_ADAPTER_CONFIG_OVERRIDE,\n },\n {\n provide: ACCA_BOOST_REFRESH_TRIGGER,\n useClass: AccaBoostRefreshTriggerService,\n },\n {\n provide: IMAGE_LOADER,\n useValue: (config: ImageLoaderConfig) => {\n let result = config.src;\n if (result.indexOf('?') < 0) {\n result += '?';\n } else {\n result += '&';\n }\n\n if (!config.src.endsWith('.svg') && config.src.indexOf('scmedia') >= 0 && config.width) {\n result += `w=${config.width}&`;\n }\n\n if (result.endsWith('?') || result.endsWith('&')) {\n result = result.slice(0, result.length - 1);\n }\n\n return result;\n },\n },\n provideRunAfterLcp(),\n {\n provide: RUN_AFTER_LCP_TOKEN,\n useFactory: () => {\n const runAfterLcpService = inject(RunAfterLcpService);\n return {\n runAfterLcp(fn: () => void) {\n runAfterLcpService.runAfterLcp(fn);\n },\n } satisfies RunAfterLcpType;\n },\n },\n { provide: CURRENT_THEME_TOKEN, useFactory: (page: Page) => page.theme as SportsTheme, deps: [Page] },\n { provide: IS_ROBOT_TOKEN, useFactory: (device: DeviceService) => device.isRobot, deps: [DeviceService] },\n {\n provide: MODAL_WINDOW_CONFIG,\n deps: [EpcotConfigService],\n useFactory: (epcot: EpcotConfigService) => {\n return {\n animatePopupDismiss: epcot.isShowMyBetsPopup,\n showCloseIcon: !epcot.isEnabled(),\n };\n },\n },\n {\n provide: LAZY_STYLES_CONFIG,\n deps: [EpcotConfig],\n useFactory: (epcot: EpcotConfig) => {\n return {\n isEpcotEnabled: epcot.isEnabled,\n };\n },\n },\n {\n provide: PARTICIPANT_IMAGE_CONFIG,\n deps: [EpcotConfigService],\n useFactory: (epcot: EpcotConfigService) => {\n return {\n fallbackImage: epcot.isEnabled() ? FallbackImage.EpcotDefault : FallbackImage.Default,\n };\n },\n },\n ];\n}\n","import { Injector, NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { setAppInjector } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { provideSafariBrowserToken } from '@frontend/ui/shared';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { extModules } from '../../../environments/environment';\nimport { provideSportsWebRootServices } from './host-app/sports-web-integration.provider';\nimport { provideSportsWebCore } from './provide';\n\n@NgModule({\n imports: [\n StoreModule.forRoot(\n {},\n {\n runtimeChecks: {\n strictStateImmutability: false,\n strictActionImmutability: false,\n strictStateSerializability: false,\n strictActionSerializability: false,\n },\n },\n ),\n extModules,\n MatDialogModule,\n EffectsModule.forRoot([]),\n ],\n providers: [provideSportsWebCore(), provideSportsWebRootServices(), provideSafariBrowserToken()],\n})\nexport class AppModule {\n constructor(injector: Injector) {\n setAppInjector(injector);\n }\n}\n","export const VIEW_TRANSITION_LOG_TAG = '[ViewTransition]';\n\nexport const BROWSER_BACK_NAVIGATION_DETECTED_MESSAGE = 'Browser back navigation detected';\nexport const NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE = 'Navigation has native transition';\n\nexport const BACKWARDS_CLASS = 'view-transition-backwards';\nexport const FULL_SLIDE_CLASS = 'view-transition-full-slide';\n\nexport const EXCLUDE_NONE_CLASS = 'view-transition-modifier-exclude-none';\nexport const EXCLUDE_HEADER_CLASS = 'view-transition-modifier-exclude-header';\nexport const EXCLUDE_BOTTOM_NAV_CLASS = 'view-transition-modifier-exclude-bottom-nav';\nexport const EXCLUDE_BETSLIP_CLASS = 'view-transition-modifier-exclude-betslip';\nexport const EXCLUDE_QUICK_BET_CLASS = 'view-transition-modifier-exclude-quick-bet';\n\nexport const VIEW_TRANSITION_EPCOT_CSS_CLASS = 'view-transition-epcot';\n\nexport const TRANSITION_PATHS = {\n AC_MENU_OVERLAY_PATH: ':menu',\n AC_MENU_PATH: '/menu',\n AZ_MENU_PATH: '/product-menu',\n EVENTS_PATH: '/events',\n};\n","import { inject } from '@angular/core';\n\nimport { Logger, WindowRef } from '@frontend/vanilla/core';\n\nimport { BROWSER_BACK_NAVIGATION_DETECTED_MESSAGE, VIEW_TRANSITION_LOG_TAG as LOG_TAG } from '../../view-transition.constants';\nimport { BrowserBackDetectionStrategy } from './browser-back-detection.strategy.model';\n\nexport class NavigationApiBackDetectionStrategy implements BrowserBackDetectionStrategy {\n private logger = inject(Logger);\n private navigation = inject(WindowRef).nativeWindow.navigation;\n private previousNavigationHistoryEntry: NavigationHistoryEntry | undefined = undefined;\n\n init(): this {\n this.listenForCurrentEntryChanges();\n\n return this;\n }\n\n isBrowserBackNavigation(): boolean {\n const currentIndex = this.navigation.currentEntry?.index;\n const previousIndex = this.previousNavigationHistoryEntry?.index;\n\n if (!currentIndex || !previousIndex) {\n return false;\n }\n\n const isBrowserBackNavigation = currentIndex < previousIndex;\n\n if (isBrowserBackNavigation) {\n this.logger.info(`${LOG_TAG} ${BROWSER_BACK_NAVIGATION_DETECTED_MESSAGE}`);\n }\n\n return isBrowserBackNavigation;\n }\n\n private listenForCurrentEntryChanges(): void {\n this.navigation.oncurrententrychange = (event: NavigationCurrentEntryChangeEvent) => {\n if (event.navigationType === 'traverse') {\n this.previousNavigationHistoryEntry = event.from;\n }\n };\n }\n}\n","import { EnvironmentProviders, Provider, inject, provideAppInitializer } from '@angular/core';\n\nimport { Logger, WindowRef } from '@frontend/vanilla/core';\n\nimport { VIEW_TRANSITION_LOG_TAG as LOG_TAG } from '../view-transition.constants';\nimport { BrowserBackDetectionStrategy } from './strategies/browser-back-detection.strategy.model';\nimport { NavigationApiBackDetectionStrategy } from './strategies/navigation-api-back-detection.strategy';\n\nexport class BrowserBackDetectionService {\n private logger = inject(Logger);\n private windowRef = inject(WindowRef);\n private _strategy?: BrowserBackDetectionStrategy;\n\n get strategy() {\n return this._strategy;\n }\n\n init(): this {\n const isNavigationApiSupported = this.windowRef.nativeWindow.navigation;\n\n if (isNavigationApiSupported) {\n this.logger.info(`${LOG_TAG} Using Navigation Api strategy for browser back detection`);\n\n this._strategy = new NavigationApiBackDetectionStrategy().init();\n } else {\n this.logger.info(`${LOG_TAG} No strategy for browser back detection - browser back detection is disabled`);\n }\n\n return this;\n }\n}\n\nexport const provideBrowserBackDetection = (type?: 'backdetection' | 'noop'): (Provider | EnvironmentProviders)[] => {\n if (type === 'noop') {\n return [];\n }\n\n return [\n BrowserBackDetectionService,\n provideAppInitializer(() => {\n const initializerFn = browserBackDetectionInitializer();\n return initializerFn();\n }),\n ];\n};\n\nconst browserBackDetectionInitializer = (): VoidFunction => {\n inject(BrowserBackDetectionService).init();\n\n return () => {\n /** noop */\n };\n};\n","import { RendererFactory2, inject } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { Logger } from '@frontend/vanilla/core';\nimport { filter } from 'rxjs';\n\nimport { VIEW_TRANSITION_LOG_TAG as LOG_TAG, NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE } from '../../view-transition.constants';\nimport { NativeTransitionDetectionStrategy } from './native-transition-detection.strategy.model';\n\nexport class HistoryApiNativeTransitionDetectionStrategy implements NativeTransitionDetectionStrategy {\n private logger = inject(Logger);\n private router = inject(Router);\n private renderer = inject(RendererFactory2).createRenderer(null, null);\n private _navigationHasNativeTransition = false;\n\n get navigationHasNativeTransition(): boolean {\n return this._navigationHasNativeTransition;\n }\n\n init(): this {\n this.listenForNativeTransitions();\n\n return this;\n }\n\n private listenForNativeTransitions(): void {\n this.renderer.listen('window', 'popstate', (event: PopStateEvent) => {\n const hasUAVisualTransition: boolean = (event as any).hasUAVisualTransition ?? false;\n\n if (hasUAVisualTransition) {\n this.logger.info(`${LOG_TAG} ${NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE}`);\n }\n\n this._navigationHasNativeTransition = hasUAVisualTransition;\n });\n\n // Must be reset after each navigation as it is only set on a subset of navigations (popstate)\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(() => (this._navigationHasNativeTransition = false));\n }\n}\n","import { inject } from '@angular/core';\n\nimport { Logger, WindowRef } from '@frontend/vanilla/core';\n\nimport { VIEW_TRANSITION_LOG_TAG as LOG_TAG, NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE } from '../../view-transition.constants';\nimport { NativeTransitionDetectionStrategy } from './native-transition-detection.strategy.model';\n\nexport class NavigationApiNativeTransitionDetectionStrategy implements NativeTransitionDetectionStrategy {\n private logger = inject(Logger);\n private navigation = inject(WindowRef).nativeWindow.navigation;\n private _navigationHasNativeTransition = false;\n\n get navigationHasNativeTransition(): boolean {\n return this._navigationHasNativeTransition;\n }\n\n init(): this {\n this.listenForNativeTransitions();\n\n return this;\n }\n\n private listenForNativeTransitions(): void {\n this.navigation.addEventListener('navigate', (event: NavigateEvent) => {\n if (event.hasUAVisualTransition) {\n this.logger.info(`${LOG_TAG} ${NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE}`);\n }\n\n this._navigationHasNativeTransition = event.hasUAVisualTransition;\n });\n }\n}\n","import { EnvironmentProviders, Provider, inject, provideAppInitializer } from '@angular/core';\n\nimport { Logger, WindowRef } from '@frontend/vanilla/core';\n\nimport { VIEW_TRANSITION_LOG_TAG as LOG_TAG } from '../view-transition.constants';\nimport { HistoryApiNativeTransitionDetectionStrategy } from './strategies/history-api-native-transition-detection.strategy';\nimport { NativeTransitionDetectionStrategy } from './strategies/native-transition-detection.strategy.model';\nimport { NavigationApiNativeTransitionDetectionStrategy } from './strategies/navigation-api-native-transition-detection.strategy';\n\nexport class NativeTransitionDetectionService {\n private logger = inject(Logger);\n private windowRef = inject(WindowRef);\n private _strategy: NativeTransitionDetectionStrategy;\n\n get strategy() {\n return this._strategy;\n }\n\n init(): this {\n const isNavigationApiSupported = this.windowRef.nativeWindow.navigation;\n\n if (isNavigationApiSupported) {\n this.logger.info(`${LOG_TAG} Using Navigation Api strategy for native transition detection`);\n\n this._strategy = new NavigationApiNativeTransitionDetectionStrategy().init();\n } else {\n this.logger.info(`${LOG_TAG} Using History Api strategy for native transition detection`);\n\n this._strategy = new HistoryApiNativeTransitionDetectionStrategy().init();\n }\n\n return this;\n }\n}\n\nexport const provideNativeTransitionDetection = (type?: 'nativetransitiondetection' | 'noop'): (EnvironmentProviders | Provider)[] => {\n if (type === 'noop') {\n return [];\n }\n\n return [\n NativeTransitionDetectionService,\n provideAppInitializer(() => {\n const initializerFn = nativeTransitionDetectionInitializer();\n return initializerFn();\n }),\n ];\n};\n\nconst nativeTransitionDetectionInitializer = (): VoidFunction => {\n inject(NativeTransitionDetectionService).init();\n\n return () => {\n /** noop */\n };\n};\n","import { inject } from '@angular/core';\nimport { IsActiveMatchOptions, Navigation, Router } from '@angular/router';\n\nimport { EpcotConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Logger } from '@frontend/vanilla/core';\n\nimport {\n EXCLUDE_BETSLIP_CLASS,\n EXCLUDE_BOTTOM_NAV_CLASS,\n EXCLUDE_HEADER_CLASS,\n EXCLUDE_NONE_CLASS,\n EXCLUDE_QUICK_BET_CLASS,\n VIEW_TRANSITION_LOG_TAG as LOG_TAG,\n TRANSITION_PATHS,\n} from './view-transition.constants';\n\ntype NavigationInfo =\n | {\n [k: string]: any;\n isBackNavigation: boolean;\n }\n | undefined;\n\n/** Indicates whether the current navigation is to the active page */\nexport const isNavigationToCurrentPage = (): boolean => {\n const logger = inject(Logger);\n const router = inject(Router);\n const incomingUrl = router.getCurrentNavigation()?.finalUrl;\n\n if (!incomingUrl) {\n logger.error(`${LOG_TAG} isNavigationToCurrentPage called outside the context of an active navigation`);\n\n return false;\n }\n\n const urlMatchingOptions: IsActiveMatchOptions = {\n paths: 'exact',\n matrixParams: 'exact',\n fragment: 'ignored',\n queryParams: 'ignored',\n };\n\n const _isNavigationToCurrentPage = router.isActive(incomingUrl, urlMatchingOptions);\n\n if (_isNavigationToCurrentPage) {\n logger.debug(`${LOG_TAG} Detected navigation to the current page`);\n }\n\n return _isNavigationToCurrentPage;\n};\n\n/** Indicates whether the current navigation is to a page for which a full-slide transition should be played */\nexport const isNavigationToOrFromFullSlidePage = (): boolean => {\n if (!isEpcotEnabled()) {\n return isPathInNavigation(TRANSITION_PATHS.AC_MENU_PATH) || isPathInNavigation(TRANSITION_PATHS.AC_MENU_OVERLAY_PATH);\n }\n\n if (isPathInNavigation(TRANSITION_PATHS.EVENTS_PATH, { both: true })) {\n return false; // never full-slide from one event to another\n }\n\n return (\n isPathInNavigation(TRANSITION_PATHS.AC_MENU_PATH) ||\n isPathInNavigation(TRANSITION_PATHS.AC_MENU_OVERLAY_PATH) ||\n isPathInNavigation(TRANSITION_PATHS.EVENTS_PATH)\n );\n};\n\n/**\n * Modifies which elements are included in the full-slide transition based on label and route\n */\nexport const getFullSlideModifier = (): string[] => {\n if (isEpcotEnabled()) {\n if (isPathInNavigation(TRANSITION_PATHS.AC_MENU_PATH)) {\n return [EXCLUDE_BOTTOM_NAV_CLASS];\n }\n\n if (isPathInNavigation(TRANSITION_PATHS.EVENTS_PATH)) {\n return [EXCLUDE_BOTTOM_NAV_CLASS, EXCLUDE_BETSLIP_CLASS, EXCLUDE_QUICK_BET_CLASS];\n }\n } else {\n if (isPathInNavigation(TRANSITION_PATHS.AC_MENU_PATH) || isPathInNavigation(TRANSITION_PATHS.AC_MENU_OVERLAY_PATH)) {\n return [EXCLUDE_NONE_CLASS];\n }\n\n if (isPathInNavigation(TRANSITION_PATHS.EVENTS_PATH)) {\n return [EXCLUDE_BOTTOM_NAV_CLASS, EXCLUDE_BETSLIP_CLASS, EXCLUDE_QUICK_BET_CLASS];\n }\n }\n\n return [EXCLUDE_NONE_CLASS];\n};\n\n/**\n * Modifies which elements are included in the mini-slide transition based on label and route\n */\nexport const getMiniSlideModifier = (): string | null => {\n if (!isEpcotEnabled() && isPathInNavigation(TRANSITION_PATHS.AZ_MENU_PATH)) {\n return EXCLUDE_HEADER_CLASS;\n }\n\n return null; // no modification to the transitioning elements\n};\n\n/** Indicates whether the current navigation is an in-app 'back' navigation (e.g. in-app back or breadcrumbs button click) */\nexport const isNavigationApplicationBack = (): boolean => {\n if (isNavigationTraversal()) {\n return false;\n }\n\n const logger = inject(Logger);\n const router = inject(Router);\n const currentNavigation = router.getCurrentNavigation();\n\n if (!currentNavigation) {\n logger.error(`${LOG_TAG} isNavigationApplicationBack called outside the context of an active navigation`);\n\n return false;\n }\n\n return isNavigationFlaggedBack(currentNavigation) || isNavigationToAncestorRoute(currentNavigation);\n};\n\nconst isEpcotEnabled = (): boolean => {\n const epcotConfig = inject(EpcotConfig);\n\n return epcotConfig.isEnabled;\n};\n\nconst isPathInNavigation = (path: string, options = { both: false }): boolean => {\n const logger = inject(Logger);\n const router = inject(Router);\n const currentNavigation = router.getCurrentNavigation();\n\n if (!currentNavigation) {\n logger.error(`${LOG_TAG} isPathInNavigation called outside the context of an active navigation`);\n\n return false;\n }\n\n const currentUrl = currentNavigation.finalUrl?.toString();\n const previousUrl = currentNavigation.previousNavigation?.finalUrl?.toString();\n\n if (options.both) {\n return Boolean(currentUrl?.includes(path) && previousUrl?.includes(path));\n }\n\n return Boolean(currentUrl?.includes(path) || previousUrl?.includes(path));\n};\n\n/** Indicates whether the current navigation is a traversal through existing history (i.e. browser back or forward navigations) */\nconst isNavigationTraversal = (): boolean => {\n const isNavigationTraversal = inject(Router).getCurrentNavigation()?.trigger === 'popstate';\n\n return isNavigationTraversal;\n};\n\nconst isNavigationFlaggedBack = (currentNavigation: Navigation): boolean => {\n const logger = inject(Logger);\n\n const isNavigationFlaggedBack = Boolean((currentNavigation?.extras?.info as NavigationInfo)?.isBackNavigation);\n\n if (isNavigationFlaggedBack) {\n logger.debug(`${LOG_TAG} The current navigation is flagged as an in-app back navigation`);\n }\n\n return isNavigationFlaggedBack;\n};\n\nconst isNavigationToAncestorRoute = (currentNavigation: Navigation): boolean => {\n const logger = inject(Logger);\n\n const currentUrl = currentNavigation.finalUrl?.toString();\n const previousUrl = currentNavigation.previousNavigation?.finalUrl?.toString();\n const isAncestorRoute = currentUrl !== undefined && previousUrl?.includes(currentUrl);\n\n if (isAncestorRoute) {\n logger.debug(`${LOG_TAG} The current navigation is to an ancestor of the previous URL`);\n }\n\n return Boolean(isAncestorRoute);\n};\n","import { inject } from '@angular/core';\nimport { ViewTransitionInfo } from '@angular/router';\n\nimport { AppConfig, EpcotConfig } from '@frontend/sports/common/client-config-data-access';\nimport { HtmlNode, Logger } from '@frontend/vanilla/core';\n\nimport { BrowserBackDetectionService } from './browser-back-detection/browser-back-detection.service';\nimport { NativeTransitionDetectionService } from './native-transition-detection/native-transition-detection.service';\nimport * as viewTransitionNavigationHelper from './view-transition-navigation.helper';\nimport {\n BACKWARDS_CLASS,\n EXCLUDE_BETSLIP_CLASS,\n EXCLUDE_BOTTOM_NAV_CLASS,\n EXCLUDE_HEADER_CLASS,\n EXCLUDE_NONE_CLASS,\n EXCLUDE_QUICK_BET_CLASS,\n FULL_SLIDE_CLASS,\n VIEW_TRANSITION_LOG_TAG as LOG_TAG,\n VIEW_TRANSITION_EPCOT_CSS_CLASS,\n} from './view-transition.constants';\n\ntype Transition = ViewTransitionInfo['transition'];\n\nlet logger: Logger;\nlet htmlNode: HtmlNode;\n\nexport const onViewTransitionCreated = ({ transition }: ViewTransitionInfo) => {\n logger = inject(Logger);\n htmlNode = inject(HtmlNode);\n\n addDynamicViewTransitionBehaviour(transition);\n};\n\nconst addDynamicViewTransitionBehaviour = (transition: Transition): void => {\n const appConfig = inject(AppConfig);\n\n resetTransitionModifiers();\n\n if (inject(EpcotConfig).isEnabled) {\n inject(HtmlNode).setCssClass(VIEW_TRANSITION_EPCOT_CSS_CLASS, true);\n }\n\n resetTransitionModifiers();\n\n if (viewTransitionNavigationHelper.isNavigationToCurrentPage()) {\n logger.info(`${LOG_TAG} Skipping as navigation is to current page`);\n\n transition.skipTransition();\n\n return;\n }\n\n if (appConfig.viewTransitionsNativeTransitionSkippingEnabled) {\n useNativeTransitionSkipping(transition);\n }\n\n if (appConfig.viewTransitionsDirectionalityEnabled) {\n useDirectionalTransitions();\n useRouteSpecificTransitions();\n }\n};\n\nconst resetTransitionModifiers = (): void => {\n htmlNode.setCssClass(EXCLUDE_BOTTOM_NAV_CLASS, false);\n htmlNode.setCssClass(EXCLUDE_BETSLIP_CLASS, false);\n htmlNode.setCssClass(EXCLUDE_QUICK_BET_CLASS, false);\n htmlNode.setCssClass(EXCLUDE_HEADER_CLASS, false);\n htmlNode.setCssClass(EXCLUDE_NONE_CLASS, false);\n};\n\nconst useRouteSpecificTransitions = (): void => {\n const miniSlideModifier = viewTransitionNavigationHelper.getMiniSlideModifier();\n\n const fullSlideModifiers = viewTransitionNavigationHelper.getFullSlideModifier();\n\n if (viewTransitionNavigationHelper.isNavigationToOrFromFullSlidePage()) {\n logger.info(`${LOG_TAG} Using full slide transition animation`);\n\n htmlNode.setCssClass(FULL_SLIDE_CLASS, true);\n\n fullSlideModifiers.forEach((modifier) => htmlNode.setCssClass(modifier, true));\n } else {\n htmlNode.setCssClass(FULL_SLIDE_CLASS, false);\n\n miniSlideModifier && htmlNode.setCssClass(miniSlideModifier, true);\n }\n};\n\nconst useNativeTransitionSkipping = (transition: Transition): void => {\n const navigationHasNativeTransition = inject(NativeTransitionDetectionService).strategy.navigationHasNativeTransition;\n\n if (navigationHasNativeTransition) {\n logger.info(`${LOG_TAG} Skipping due to native transition`);\n\n transition.skipTransition();\n\n return;\n }\n};\n\nconst useDirectionalTransitions = (): void => {\n if (isBackNavigation()) {\n logger.info(`${LOG_TAG} Using backwards transition animation`);\n\n htmlNode.setCssClass(BACKWARDS_CLASS, true);\n } else {\n htmlNode.setCssClass(BACKWARDS_CLASS, false);\n }\n};\n\nconst isBackNavigation = (): boolean => {\n return isBrowserBackNavigation() || isApplicationBackNavigation();\n};\n\nconst isBrowserBackNavigation = (): boolean => {\n const isBrowserBackNavigation = inject(BrowserBackDetectionService).strategy?.isBrowserBackNavigation();\n\n return Boolean(isBrowserBackNavigation);\n};\n\nconst isApplicationBackNavigation = (): boolean => {\n const isApplicationBackNavigation = viewTransitionNavigationHelper.isNavigationApplicationBack();\n\n return isApplicationBackNavigation;\n};\n","import { EnvironmentProviders } from '@angular/core';\nimport { Route, RouterFeatures, provideRouter, withPreloading, withRouterConfig, withViewTransitions } from '@angular/router';\n\nimport { SpeculativeLinkPreloader } from '@frontend/vanilla/features/speculative-link';\n\nimport { onViewTransitionCreated } from './view-transition/view-transition';\n\nexport function provideRouterOverride(routes: Route[], viewTransitionsEnabled: boolean): EnvironmentProviders {\n const features: RouterFeatures[] = [withPreloading(SpeculativeLinkPreloader), withRouterConfig({ urlUpdateStrategy: 'eager' })];\n\n if (viewTransitionsEnabled) {\n features.push(withViewTransitions({ skipInitialTransition: true, onViewTransitionCreated }));\n }\n\n return provideRouter(routes, ...features);\n}\n","// FIXME: refactor this to not use the document and window API\n/* eslint-disable no-restricted-globals */\nimport { NgZone, enableProdMode, importProvidersFrom } from '@angular/core';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideAnimationsAsync } from '@angular/platform-browser/animations/async';\n\nimport { provideLoaders } from '@frontend/loaders';\nimport { AppComponent, bootloader, provideVanillaCore } from '@frontend/vanilla/core';\nimport { setAutoFreeze } from 'immer';\n\nimport { routes } from './app-routing.module';\nimport { AppModule } from './app.module';\nimport { provideRouterOverride } from './sports-router';\nimport { provideBrowserBackDetection } from './view-transition/browser-back-detection/browser-back-detection.service';\nimport { provideNativeTransitionDetection } from './view-transition/native-transition-detection/native-transition-detection.service';\n\ndeclare global {\n interface Window {\n clientConfig: {\n msApp: {\n viewTransitionsEnabled: boolean;\n viewTransitionsDirectionalityEnabled: boolean;\n viewTransitionsNativeTransitionSkippingEnabled: boolean;\n };\n };\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n setAutoFreeze(false);\n enableProdMode();\n}\n\nconst disableAnimations = !('animate' in document.documentElement); //[INC1293113] disabling animations, when they're are not supported by OS. For example iOS <13\n\nconst enableViewTransitionDirectionality = () => {\n return window.clientConfig.msApp.viewTransitionsEnabled && window.clientConfig.msApp.viewTransitionsDirectionalityEnabled;\n};\n\nconst enableViewTransitionNativeTransitionSkipping = () => {\n return window.clientConfig.msApp.viewTransitionsEnabled && window.clientConfig.msApp.viewTransitionsNativeTransitionSkippingEnabled;\n};\n\nbootloader()\n .then(() =>\n bootstrapApplication(AppComponent, {\n providers: [\n {\n provide: NgZone,\n useValue: new NgZone({ shouldCoalesceEventChangeDetection: true }),\n },\n provideAnimationsAsync(disableAnimations ? 'noop' : 'animations'),\n provideRouterOverride(routes, window.clientConfig.msApp.viewTransitionsEnabled),\n provideBrowserBackDetection(enableViewTransitionDirectionality() ? 'backdetection' : 'noop'),\n provideNativeTransitionDetection(enableViewTransitionNativeTransitionSkipping() ? 'nativetransitiondetection' : 'noop'),\n provideVanillaCore(),\n provideLoaders(),\n importProvidersFrom(AppModule),\n ],\n }),\n )\n .catch((err: any) => console.error(err));\n"],"names":["SportsThemedPillsDirective","constructor","currentTheme","injectCurrentTheme","pill","inject","DsPill","self","ngOnInit","_a","_b","_c","variant","themedPillVariant","size","themedPillSize","inverse","themedInverse","isInverse","c","selectors","inputs","_SportsThemedPillsDirective","ɵɵelement","g","ɵɵproperty","item_r4","class","parameters","tooltipClass","toolTip","ɵɵsanitizeHtml","ɵɵtemplate","MainItemsComponent_Conditional_0_For_4_Conditional_6_Conditional_0_Template","ɵɵconditional","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r3","$implicit","ctx_r1","ɵɵnextContext","ɵɵresetView","itemClick","MainItemsComponent_Conditional_0_For_4_Conditional_2_Template","ɵɵtext","ɵɵelementEnd","MainItemsComponent_Conditional_0_For_4_Conditional_6_Template","ɵɵadvance","url","tracking","NavTop","themeInverseIndicator","isActive","name","ɵɵtextInterpolate","text","ɵɵpropertyInterpolate","tooltip","Ee","Z","_r1","onScrolled","ɵɵrepeaterCreate","MainItemsComponent_Conditional_0_For_4_Template","_forTrack0","scrollSize","filteredItems","ɵɵclassProp","scrolled","isEpcotEnabled","ɵɵrepeater","item_r6","_r5","ɵɵpropertyInterpolate1","isSpecial","MenuDisplayMode","Icon","ɵɵpureFunction1","_c0","hasSeparator","MainItemsComponent_Conditional_1_For_2_Template","PopupType","MainItemsComponent","sportsPopupOpen","popupManager","isPopupOpen","Sports","layoutService","navigationRouter","scrollingConfig","eventBridgeService","menuActionService","resizeObserver","elementRef","charsetService","navigationConfig","menuItemService","strategy","TrackNavArea","liveCount","signal","inverseThemes","menuMargin","itemSeparator","itemIcon","itemMargin","itemCompact","ngZone","NgZone","isV2Navigation","topNavigationItems","length","topNavScrollSize","observe","pipe","map","change","contentRect","width","distinctUntilChanged","takeUntilDestroyed","subscribe","menuWidth","fit","ngOnChanges","event","item","popup","close","preventDefault","schedule","openSportsPopup","ProductMenu","invoke","MenuAction","TOGGLE_PRODUCT_MENU","undefined","open","scope","patchZone","take","navigationClick","ccbKey","sportsPopupMode","setNavigation","switchPopup","selection","itemName","set","current","showDesktopAZSports","items","trySwitchPopup","cloneDeep","sizes","getItemWidth","sports","filter","isSport","activeNavigation","total","sumBy","s","isFixed","filterNavigation","navItems","lastItem","pop","splice","indexOf","closeAll","compactItems","getAverageSize","includes","ɵɵdirectiveInject","AdaptiveLayoutService","NavigationRouterService","ScrollingSizeConfig","PopupManager","EventBridgeService","MenuActionsService","ResizeObserverService","ElementRef","CharsetSizeService","TopNavigationConfig","MenuItemsService","RxStrategyProvider","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","MainItemsComponent_Conditional_0_Template","MainItemsComponent_Conditional_1_Template","q","ce","qt","Kt","me","zt","Qt","Jt","Wt","Zt","pe","_MainItemsComponent","NavigationItemsMapper","urlHelper","liveConfig","menuService","topNavItemsToHideInMobile","liveCounts","mapItems","sportsCountText","options","link","bottomNavigation","some","activeName","pageNameFromUrl","getLastSegment","pageName","trackingPagename","badgeTextlength","className","getClassName","topMenuItem","title","isPopup","getUrl","icon","trackEvent","getTrackingData","getTooltipParams","resources","isFixedItem","iconSrc","image","src","showBadge","setBadge","badgeText","showLiveBadgeCount","setBadgeBottom","buildSportMenuItem","sport","sportId","id","toString","separator","isVirtual","getVirtualSportUrl","getSportUrl","eventName","trackingConstants","EVENT_NAVIGATION_MENUS","data","PAGE_NAVIGATION_MENUS","getTrackingValue","preFix","cssClass","setCounter","NavBottom","count","ɵɵinject","UrlHelperService","LiveSectionConfig","u","factory","ɵfac","providedIn","_NavigationItemsMapper","BaseNavigationItemsProvider","sportsCache","hasLiveItems$","getSportList","counts","live","startWith","SportsCacheService","_BaseNavigationItemsProvider","FixedNavigationItemsProvider","dslService","mapper","sitecore","evaluatedItems$","defer","of","fixedItems","afterSports","switchMap","evaluateContent","navigationItems$","combineLatest","hasLive","getDefaultItems","globalMessages","Search","Favourites","getFavouriteUrl","MyBetsTitle","getMyBetsUrl","DslService","Sitecore","_FixedNavigationItemsProvider","LastSelectedSportProvider","sessionStore","sportService","lastSport","BehaviorSubject","storeKey","lastSport$","asObservable","lastSelectedSport","mapSport","selectedSport$","get","whenReady","sportItem","find","isItemType","ItemType","Sport","sportsConfig","selectedSport","useBeforeSeparator","currentSport","next","SessionStoreService","_LastSelectedSportProvider","SportNavigationItemsProvider","sportItems$","shareReplay","getSportsItems","maxSports","beforeSports","takeTop","index","topSportsCount","isFirstItem","topSports","_SportNavigationItemsProvider","TopNavigationItemsProvider","mediaQueryService","siteCoreReady$","liveSportCount$","getLiveSportsList","keepLiveItem","liveSportCount","liveCountText","formatLiveCounts","liveItem","isLiveButtonBadgeVisible","itemsToReturn","getFallbackItems","produce","isDesktop","home","getHomeMenuItem","keepLive","push","NavLive","getLiveUrl","NavAllSports","getAtoZUrl","NavHome","getHomeUrl","sportList","reduce","acc","MediaQueryService","_TopNavigationItemsProvider","NavigationService","trackingService","topItemsProvider","fixedItemsProvider","sportsItemsProvider","lastSportProvider","_topNavigation$","ReplaySubject","topNavigation$","separatorMarker","init$","Subject","first","distinctUntilLengthChanged","prev","sportsItems","useFallbackNavigation","buildNavigation","init","value","track","topDefaultItems","sportsDefaultItems","mainItems","allItems","sportsIndex","selectedSportIndex","recalculateIndexes","slice","addSelectedSport","allConfigItems","sportsIndexUpdated","selectedSportIndexUpdated","forEach","condition","i","findIndex","TrackingService","_NavigationService","viewModel_r1","isDesktopNavCompact","NavigationComponent_div_0_nav_1_Conditional_1_Template","mt","showSeparator","tmp_6_0","ɵɵpipeBind1","navigation","NavigationComponent_div_0_nav_1_Template","viewModel$","NavigationComponent","layout","config","epcotConfig","sportsProductService","isDesktopNavigationCompact","isEnabled","showNavigation","toSignal","isSportsProductActive$","requireSync","EpcotConfig","SportsProductService","NavigationComponent_div_0_Template","headerNavigation","headerTopNavigationHidden","_NavigationComponent","SkeletonPage","SkeletonMarqueeComponent","SkeletonMarqueeComponent_div_1_Template","ɵɵpureFunction0","b","_SkeletonMarqueeComponent","SkeletonBetslipComponent_div_0_div_16_Template","SkeletonBetslipComponent","device","DeviceService","hostVars","hostBindings","ɵɵclassMap","SkeletonBetslipComponent_div_0_Template","isTablet","T","_SkeletonBetslipComponent","Bi","Di","$i","ji","ɵɵelementContainerStart","SkeletonEventsComponent_div_6_ng_template_6_div_0_Template","_c2","SkeletonEventsComponent_div_6_ng_container_5_Template","SkeletonEventsComponent_div_6_ng_template_6_Template","ɵɵtemplateRefExtractor","ctx_r2","isMobile","getEventOrderId","elistId_r1","elistSecond_r2","SkeletonEventsComponent","ids","mIds","x","SkeletonEventsComponent_div_4_Template","SkeletonEventsComponent_div_6_Template","_c1","J","_SkeletonEventsComponent","Vi","Ui","SkeletonMinigamesComponent","h","SkeletonMinigamesComponent_div_6_Template","_SkeletonMinigamesComponent","qi","SkeletonTopsportsComponent","SkeletonTopsportsComponent_div_2_Template","_SkeletonTopsportsComponent","Qi","ɵɵclassMapInterpolate1","team_r1","team1","team2","SkeletonGridComponent_div_0_div_3_Template","SkeletonGridComponent_div_0_div_6_Template","SkeletonGridComponent_div_0_div_7_Template","SkeletonGridComponent_div_0_div_9_Template","SkeletonGridComponent_div_0_div_10_Template","p","teams","isMobileOrRacingForecast","SkeletonGridComponent","isHorseRaceForecast","SkeletonGridComponent_div_0_Template","_SkeletonGridComponent","ee","SkeletonMainDestopComponent_div_1_ms_skeleton_betslip_6_Template","ctx_r0","SkeletonMainDestopComponent_div_2_div_3_Template","SkeletonMainDestopComponent_div_2_div_6_Template","SkeletonMainDestopComponent_div_3_div_7_Template","SkeletonMainDestopComponent_div_4_div_4_Template","SkeletonMainDestopComponent_div_5_div_7_Template","SkeletonMainDestopComponent_div_6_div_4_div_5_Template","SkeletonMainDestopComponent_div_6_div_4_div_7_Template","SkeletonMainDestopComponent_div_6_div_5_div_1_Template","SkeletonMainDestopComponent_div_6_div_4_Template","SkeletonMainDestopComponent_div_6_div_5_Template","SkeletonMainDestopComponent_div_6_div_6_Template","SkeletonMainDestopComponent_div_7_div_3_div_1_Template","SkeletonMainDestopComponent_div_7_div_3_Template","SkeletonMainDestopComponent_div_7_div_4_Template","SkeletonMainDestopComponent_div_8_div_7_Template","SkeletonMainDestopComponent","skeletonPage","SkeletonMainDestopComponent_div_1_Template","SkeletonMainDestopComponent_div_2_Template","SkeletonMainDestopComponent_div_3_Template","SkeletonMainDestopComponent_div_4_Template","SkeletonMainDestopComponent_div_5_Template","SkeletonMainDestopComponent_div_6_Template","SkeletonMainDestopComponent_div_7_Template","SkeletonMainDestopComponent_div_8_Template","Home","Competition","Coupon","Event","Racing","RacingTomorrow","RacingForecast","_SkeletonMainDestopComponent","SkeletonMainMobileComponent_div_4_div_1_div_3_Template","SkeletonMainMobileComponent_div_4_div_1_Template","SkeletonMainMobileComponent_div_5_div_1_div_3_Template","SkeletonMainMobileComponent_div_5_div_1_Template","SkeletonMainMobileComponent_div_7_div_4_div_5_Template","SkeletonMainMobileComponent_div_7_div_4_div_7_Template","_c3","SkeletonMainMobileComponent_div_7_div_5_div_1_Template","Zn","SkeletonMainMobileComponent_div_7_div_4_Template","SkeletonMainMobileComponent_div_7_div_5_Template","SkeletonMainMobileComponent_div_8_div_2_div_1_Template","SkeletonMainMobileComponent_div_8_div_2_Template","SkeletonMainMobileComponent","SkeletonMainMobileComponent_div_1_Template","SkeletonMainMobileComponent_div_2_Template","SkeletonMainMobileComponent_div_3_Template","SkeletonMainMobileComponent_div_4_Template","SkeletonMainMobileComponent_div_5_Template","SkeletonMainMobileComponent_div_6_Template","SkeletonMainMobileComponent_div_7_Template","SkeletonMainMobileComponent_div_8_Template","SkeletonMainMobileComponent_div_9_Template","I","UpComing","fe","ue","X","_SkeletonMainMobileComponent","Kn","SkeletonSportsBaseComponent","SkeletonSportsBaseComponent_ms_skeleton_main_mobile_0_Template","SkeletonSportsBaseComponent_ms_skeleton_main_desktop_1_Template","_SkeletonSportsBaseComponent","SkeletonLivepageComponent","SkeletonLivepageComponent_ng_container_0_Template","SkeletonLivepageComponent_ng_container_1_Template","_SkeletonLivepageComponent","SkeletonModule","CommonModule","_SkeletonModule","BreadcrumbRouteVisibilityService","routerEvents","mediaService","breadcrumbSlot","_minimumItemsForRoute","largeScreen","_visibility$","screenWidthChanged","currentActivationEnd","e","filterSports","onRouteChanged","slotRegistered$","filterSportsEmitLast","slot","onSlotChanged","visibility$","isVisible","breadcrumbs","ignoreBreadcrumb","minimumItems","Boolean","currentBreadcrumbSlot","required","singleItemPages","RouteTag","EventDetails","Live","snapshot","tag","RouterEventsService","BreadcrumbsSlotService","F","_BreadcrumbRouteVisibilityService","BreadcrumbsService","breadcrumbVisibility","LEAGUE_TYPES","league","tournament","race","competition","types","AZ","REGION","SPORT","LEAGUE","TOPLEAGUE","FILTER","_breadcrumbs$","visible","onBreadcrumbVisibilityChange","setBreadcrumbs","breadcrumbs$","_BreadcrumbsService","lo","hi","mo","ɵɵelementContainer","co","_r2","crumb_r3","ctx_r3","selected","BreadcrumbsComponent_div_3_div_1_a_2_ng_container_1_Template","ɵɵsanitizeUrl","linkTemplate_r5","BreadcrumbsComponent_div_3_div_1_ng_template_3_ng_container_1_Template","BreadcrumbsComponent_div_3_div_1_a_2_Template","BreadcrumbsComponent_div_3_div_1_ng_template_3_Template","Y","classes","staticTemplate_r6","BreadcrumbsComponent_div_3_div_1_Template","crumb_r7","leagueId","fallbackIcon","isWithRightImage","imageProfile","BreadcrumbsComponent_ng_template_6_ms_competition_logo_0_Template","BreadcrumbsComponent_ng_template_6_span_1_Template","BreadcrumbsComponent","redirectHelper","breadcrumbsSlot","changeDetector","layoutNavigationConfig","topNavigationItemsProvider","topNavigationConfig","breadcrumbService","adaptiveLayout","urlSerializer","hidden","routeHistory","_doc","DOCUMENT","destroyRef","DestroyRef","breadcrumbChanged","model","isEqual","crumb","mapCrumb","hideMidSectionBreadCrumbItems","initSlotComponent","slotRef","clear","component","createComponent","Object","keys","key","instance","detectChanges","isBreadcrumbNavHidden$","stateChange$","state","breadcrumbNavigation","isSportsActive$","isBreadcrumbNavHidden","isSportsActive","headerSubNavigation","columns","isDefined","currentTag","lastNonEdpUrl","serialize","createUrlTreeFromSnapshot","omit","queryParams","afterNextRender","setLiveCounts","ngAfterViewInit","registeredComponent","goBack","NavBreadcrumb","active","ignoreBrowserHistory","goToPage","__spreadProps","__spreadValues","getAbsolute","refreshLiveCount","elements","getElementsByClassName","Array","from","element","innerHTML","refreshLiveCountTimer","timeout","setInterval","onDestroy","clearTimeout","RedirectHelperService","ChangeDetectorRef","LayoutNavigationConfig","UrlSerializer","EpcotConfigService","viewQuery","it","ViewContainerRef","i0","BreadcrumbsComponent_div_3_Template","BreadcrumbsComponent_ng_template_6_Template","NavigationCoreModule","PlainLinkComponent","DirectivesModule","ScrollIosHackDirective","ScrollToDirective","CompetitionLogoComponent","NgTemplateOutlet","NgIf","NgFor","NgClass","DsTouchClickDirective","encapsulation","_BreadcrumbsComponent","SubNavigationService","_tabs$","_fullWidth$","_tabSize$","tabs$","tabSize$","fullWidth$","setTabs","setTabSize","tabSize","setFullWith","fullWidth","_SubNavigationService","So","clickEvent","tabs","tab_r4","iconClass","isLargeTab","ɵɵtextInterpolate1","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Conditional_2_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Conditional_3_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Conditional_5_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Template","tabInverse","click","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Conditional_2_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Conditional_4_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Template","subNavigation","LiveInSportPage","Ro","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Template","isLiveButtonEnabled","themedTabSize","isFullWidth","Lo","SubNavigationComponent_Conditional_0_Conditional_0_Template","SubNavigationComponent_Conditional_0_Conditional_2_Template","SubNavigationComponent_Conditional_0_Conditional_3_Template","isMobilePhone","isMyBetsTabRedesignEnabled","isMyBetsRoute$","showDivider","SubNavigationComponent","subnavigation","urlHelperService","navigationService","redirectHelperService","deviceService","myBetsConfig","routerEventsService","excludedDividerThemes","SubNavigation","isMyBetTabRedesignEnabled","tabsChanged","newTabs","liveInSportTab","activationEnd","MyBets","tab","selectedTab","NavSub","MyBetsConfig","SubNavigationComponent_Conditional_0_Template","headerSubNavigationHidden","TabBarModule","MyBetsModule","DsTabsModule","DsTab","DsTabsGroup","DsTabHeader","DsNotificationBubble","DsButton","IconCustomComponent","SpeculativeLinkDirective","LinkDirective","DsDivider","AsyncPipe","SportsThemedTabsDirective","DsSegmentedControlModule","MyBetsSubNavigationComponent","styles","_SubNavigationComponent","SitemapModuleLoaderService","moduleLoader","stylesLazyLoadingService","styleSheet","loadAndInitModule","loadModule","then","m","SitemapModule","stylesLoader","lazyLoad","forkJoin","ref","_","ModuleLoaderService","StylesLazyLoadingService","_SitemapModuleLoaderService","SlotLayoutRouteOverrideService","injector","slotLayout","layoutNavConfig","sitemapModuleLoaderService","navService","onAppInit","setup","register","order","topNavigationVersion","TopNavigationVersion","V2","fixed","routeChanged","V3","module","initService","sitemapBootstrapService","resolversMap","sitemapResolversMap","sitemapComponent","HorseRaceDetails","override","destroy","initialSettings","getConfig","Error","Injector","SlotLayoutService","_SlotLayoutRouteOverrideService","SkeletonService","skeletonPage$","skeletonOutput$","router","urlConfig","skeletonConfig","slotLayoutRouteOverrideService","stylesService","page","homeLogo","lang","homeRgx","RegExp","eventRgx","translations","events","horseRacing","horseRacingHome","compeRgx","firstCouponVisit","secondCouponVisit","sportsHomePage","horseRacingForecast","subLivePage","initRouteListener","isValid","withLatestFrom","NavigationStart","getPage","delay","skeletonAniminationStartAt","EMPTY","maxtimeToSkeletonDuration","NavigationCancel","NavigationEnd","NavigationError","test","decodeURI","toLowerCase","multiBuilder","myBets","tomorrow","today","betting","calendar","coupons","in30minutes","in60minutes","in180minutes","next2days","next3days","after2days","after3days","next5days","midWeek","future","competitions","validate1","validate2","favourites","teamPages","favCompetion","upcoming","Router","PrettyUrlsConfig","SkeletonConfig","Page","_SkeletonService","BetslipDigitalComponentLoaderService","ComponentLoaderService","loggerFactory","sportsUserSettings","moduleName","getBetslipComponent","getComponentProxy","betslipComponent","getEditBetComponent","editBetComponent","getQuickBetComponent","quickBetContainerComponent","getEditBetAddPicksContainerMobileComponent","editBetAddPicksContainerMobileComponent","getModule","BetslipDigitalModule","getRewardTokensComponent","rewardTokensBannerComponent","getBetslipReturnsMessageComponent","betslipReturnsMessagesComponent","getBetslipBarComponent","betslipBarComponent","LoggerFactory","SportsUserSettings","_BetslipDigitalComponentLoaderService","PrintModule","RouterModule","LoadingIndicatorModule","_PrintModule","hasUiState","uiState","containsUiState","states","UiManagerService","handlers","registerUiHandler","handler","updateUi","__async","_UiManagerService","defaultUiState","UiStates","uiFeatureKey","uiStateSelector","createFeatureSelector","isSheetViewOpen","createSelector","ui","SheetViewOpened","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","LinearEasing","bezier","mY1","mY2","sampleValues","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","SMOOTH_SCROLL_OPTIONS","InjectionToken","SmoothScrollManager","_SmoothScrollManager","_document","_platform","customDefaultOptions","el","y","parent","coerceElement","context","destroyed","resolve","merge","fromEvent","Observable","subscriber","elapsed","animationFrameScheduler","expand","takeWhile","currContext","takeUntil","finalize","scrollable","customOptions","isPlatformBrowser","isRtl","rtlScrollAxisType","getRtlScrollAxisType","v","target","scrollableEl","targetEl","__ngFactoryType__","PLATFORM_ID","ɵɵdefineInjectable","SmoothScrollModule","_SmoothScrollModule","ɵɵdefineNgModule","ɵɵdefineInjector","NgScrollbar_ng_container_5_scrollbar_x_1_Template","ɵɵattribute","NgScrollbar_ng_container_5_scrollbar_y_2_Template","NgScrollbar_ng_container_5_Template","ɵɵelementContainerEnd","preventSelection","doc","tap","enableSelection","stopPropagation","isWithinBounds","rect","ScrollViewport","_ScrollViewport","viewPort","propagate","mouseMoveStream","mouseMove","mouseLeave","mouseDown","mouseUp","customClassName","ɵɵdefineDirective","NgScrollbarBase","_NgScrollbarBase","NG_SCROLLBAR_OPTIONS","defaultOptions","ScrollbarManager","_ScrollbarManager","NativeScrollbarSizeFactory","_NativeScrollbarSizeFactory","document","manager","platform","debounceTime","box","Platform","HideNativeScrollbar","_HideNativeScrollbar","renderer","hideNativeScrollbar","Subscription","RendererStyleFlags2","Renderer2","NgAttr","_NgAttr","attrs","ResizeSensor","_ResizeSensor","coerceNumberProperty","coerceBooleanProperty","zone","scrollbar","EventEmitter","stream","observer","TrackAdapter","_TrackAdapter","mouseup","cmp","trackElement","thumbSize","pluck","pageOffset","TrackXDirective","_TrackXDirective","ɵɵInheritDefinitionFeature","TrackYDirective","_TrackYDirective","ThumbAdapter","_ThumbAdapter","thumbElement","calculateThumbSize","position","calculateThumbPosition","trackMaxStart","scrollMaxStart","dragStart","dragging","dragEnd","mergeMap","mouseDownOffset","mouseOffset","offset","trackSize","contentSize","minThumbSize","scrollPosition","scrollMax","trackMax","ThumbXDirective","_ThumbXDirective","dir","Directionality","ThumbYDirective","_ThumbYDirective","Scrollbar","_Scrollbar","thumbDragEvent","trackClickEvent","trackHoveredEvent","hovered","mouseEnter","ScrollbarY","_ScrollbarY","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ScrollbarX","_ScrollbarX","NgScrollbar","_NgScrollbar","disabled","changeDetectorRef","smoothScroll","verticalUsed","horizontalUsed","isVerticallyScrollable","isHorizontallyScrollable","property","pairwise","curr","scrollbarClicked","scrollStream","auditTime","changes","dirIndex","ɵɵcontentQuery","ɵɵProvidersFeature","ɵɵprojectionDef","ɵɵprojection","NgScrollbarModule","_NgScrollbarModule","BidiModule","PortalModule","PlatformModule","TooltipService","visibility","_tooltipRequested","show","isTouch","showOnLoad","hide","_TooltipService","GeneralTooltipComponent","_window","WINDOW","NgxPopperjsTriggers","distinctUntilKeyChanged","request","tooltipController","content","reference","targetElement","nativeElement","applyClass","setContent","tooltipPlacement","hideOnScroll","setTimeout","appendContent","tooltipMessage","appendChild","join","l","NgxPopperjsDirective","popper1Content_r1","G","_GeneralTooltipComponent","InlineTooltipComponent","showOnlyIfOverflowed","onHover","showTooltip","isTooltipVisible","nohover","tooltipContent","toArray","isOverflowed","offsetWidth","scrollWidth","offsetHeight","scrollHeight","contentQueries","k","_InlineTooltipComponent","OnboardingTooltipComponent","showHelp","closeClicked","closeHelp","emit","message","_OnboardingTooltipComponent","TooltipModule","M","S","NgxPopperjsModule","_TooltipModule","ColumnComponent","layoutManager","scrollContainer","requestedComponents","componentInstances","Map","initializeComponent","containerRef","initOrUpdateComponent","containerContents","componentRef","createCustomInjector","indicatorRef","createIndicator","create","providers","provide","MODAL_DIALOG_CONTAINER","useValue","columnContainerProvider","LOADING_INDICATOR","location","LoadingIndicatorComponent","removeComponent","componentIndex","hostView","remove","indicatorIndex","delete","registeredComponents","componentRegistered","componentUpdated$","componentRemoved","columnContainerRef","ElementProvider","setTarget","parentElement","ngOnDestroy","unregisterComponentInstances","ColumnLayoutService","ScrollContainerService","W","_ColumnComponent","UiManagerComponent","uiManagerService","adaptiveLayoutService","store","uiState$","select","currentState","updateUiStateFromAdaptiveLayout","hasRightColumn","RightColumnVisible","dispatch","UiManagerActions","addState","removeState","Store","_UiManagerComponent","UpdateMobileNumber","FormatPhoneNumberPipe","MOBILE_NUMBER_MATCHER","transform","match","replace","pure","_FormatPhoneNumberPipe","UpdateMobileNumberTrackingService","trackPopupShown","trackingData","getBaseTrackingData","COMPONENT_ACTION_EVENT","TrackingValues","Load","COMPONENT_EVENT_DETAILS","Details","COMPONENT_URL_CLICKED","NotApplicable","EVENT_CONTENT_VIEW","trackButtonClick","eventData","Click","details","EVENT_TRACKING","COMPONENT_CATEGORY_EVENT","Mfa","COMPONENT_LABEL_EVENT","MfaSetup","COMPONENT_POSITION_EVENT","Na","COMPONENT_LOCATION_EVENT","se","_UpdateMobileNumberTrackingService","confirmMobileNumber","updateMobileNumber","config_r3","dialogHeading","propertyName","tmp_4_0","mobileNumber","multiFactorAuthMessage","updateMobileMessage","dialogConfirmButtonText","dialogUpdateButtonText","UpdateMobileNumberComponent","userService","localStorageService","activeModal","mobileNumberConfig","productHomepagesConfig","updateMobileNumberTrackingService","mobileNumberConfirmationConfig$","redirectURL","updatePhoneNumberURL","getUserMobileNumber","accountId","Confirm","closePopup","saveUserAction","portal","href","acknowledgementList","getItemObject","StorageItemIdentifier","Date","getTime","saveItem","UserService","LocalStorageService","ActiveModal","SitecoreMobileConfirmationConfig","ProductHomepagesConfig","UpdateMobileNumberComponent_Conditional_2_Template","tmp_0_0","changeDetection","_UpdateMobileNumberComponent","UpdateMobileNumberService","modalDialogService","mobileConfirmationNotificationsConfig","uiStates","confirmationInterval","confirmationIntervalMilliseconds","launchMobileNumberConfirmationPopup","openDialog","settings","PopupIdentifier","showDialogHeader","hideCloseButton","isModalDialog","showCloseBtnText","showMobileNumberConfirmation","QuickBet","mobileNumberAcknowledgement","savedTime","isDifferenceExceedingTimespan","date","calculateTimeDifference","Math","abs","ModalDialogService","MobileConfirmationNotificationClientConfig","_UpdateMobileNumberService","header","f","ie","toggle","ContentBoxComponent_Conditional_0_Conditional_0_Conditional_2_Template","ContentBoxComponent_Conditional_0_Conditional_0_Conditional_3_Template","ContentBoxComponent_Conditional_0_Conditional_0_Conditional_5_Template","ContentBoxComponent_Conditional_0_Conditional_0_Conditional_6_Template","collapsed","primaryHeader","seo","ShowLess","ShowMore","ContentBoxComponent_Conditional_0_Conditional_0_Template","ContentBoxComponent_Conditional_0_Conditional_1_Template","isPartialCollapsible","ContentBoxComponent","seoContentService","meta","seoConfig","changeDetectionRef","_sanitizer","routeChanging","userClicked","tagName","isRobot","queries","breakpoints","isPartialCollapsibleContentEnabled","ActivationStart","addTag","loadSeoTagWhenRouteActivated","getSeoContent","seoContent","bypassSecurityTrustHtml","h1Included","setTitle","metaTitle","updateTag","metaDescription","markForCheck","routeSnapshot","cleanContent","getForEventDetails","lobby","highlights","allSports","region","params","assign","path","segment","tagOf","sources","liveHighlights","LiveHighlights","sportsList","LiveAll","SportList","sportsLobby","Lobby","virtual","VirtualFixture","LiveVideo","LiveSport","LiveEsports","LiveRegion","liveVideo","esportsLobby","EsportsLobby","esportsHighlights","multiSportsLobby","MultiSportsLobby","SeoContentService","Meta","Title","SeoConfig","DomSanitizer","ContentBoxComponent_Conditional_0_Template","_ContentBoxComponent","MainColumnComponent","slotLayoutService","mainContentLoaded","htmlNode","HtmlNode","innerFooterLoaded$","setMainVisible","setLoaded","setCssClass","MainContentLoaded","GridBreakpointService","DynamicLayoutSlotComponent","RouterOutlet","_MainColumnComponent","useCustomScrollbar","column","Left","MainComponent_ng_container_4_ng_scrollbar_1_Template","MainComponent_ng_container_4_ng_container_2_Template","MainComponent_ng_container_4_ng_template_3_Template","MainComponent_ng_container_4_ng_scrollbar_5_Template","te","Ne","columnLayout","isLeftVisible","disableScroll","scrollable_r2","isRightVisible","MainComponent_ng_container_7_ng_container_1_Template","MainComponent_ng_container_9_ng_container_1_Template","quickBetComponent","MainComponent","epcotEnabledClass","betslipConfig","scrollFreeze","html","betslipLoader","toaster","routerEvent","siteCore","stakeConfig","betslipIntegrationService","epcotConfigService","changeRef","skeletonService","rxStrategy","updateMobileNumberService","appConfig","MESSAGES_COLLAPSE_THRESHOLD","MESSAGES_COLLAPSE_CLASS","LayoutColumn","htmlClasses","printContainerComponent$","PrintContainerComponent","picksContainerOffsetChanged","bottomOffset","centerRef","viewport","firstChild","HTMLElement","style","paddingBottom","onUserLogInWithSettings$","checkStakeLimit","scheduleCD","showQuickBet$","shouldShowQuickBet$","showQuickBetBuilder$","shouldShowQuickBetBuilder$","betslipReturnsMessageComponent","subscribeToOutputs","picksContainerBottomOffset","viewTransitionsEnabled","cardContent","useCustomLayout","setScrollEventTarget","setCssClasses","currentActivationStart","route","dismiss","previousActivationEnd","isPopupNavigation","equalParamsAndUrlSegments","requestAnimationFrame","scrollTo","EpcotModule","Betslip","isScrollFrozen","swapComponents","restore","resetMeasurement","columnRef","hasPopup","previousActivation","currentActivation","Element","messagesVisible","scrollTop","hasCssClass","scrollingElement","cssClasses","difference","htmlClass","isAuthenticated","checkUserStakeLimit","getIsStakeLimitSet","StakeLimitUrl","BetslipConfig","ScrollFreezeService","ToasterService","StakeConfig","BetslipIntegrationService","AppConfig","MainComponent_ng_container_2_Template","H","MainComponent_ng_container_4_Template","MainComponent_ng_template_5_Template","MainComponent_ng_container_7_Template","MainComponent_ng_container_8_Template","MainComponent_ng_container_9_Template","MainComponent_Conditional_14_Template","layout_r3","ComponentProxyDirective","WidgetCoreModule","WidgetColumnComponent","NgComponentOutlet","_MainComponent","PrettyUrlLanguageSwitcherProvider","api","getUrls","languages","sourceLanguage","culture","targetLanguages","result","toPairs","ApiService","a","_PrettyUrlLanguageSwitcherProvider","DigitalSettingsActions","_DigitalSettingsActions","ACTION_SCHEMA","BetslipActions","OPEN_SETTINGS","CLOSE_SETTINGS","openSettings","createAction","closeSettings","optionalProps","BetslipResultActions","_BetslipResultActions","CLOSE","GO_TO_MY_BETS","CLEAR_RESULT","KEEP_PLACED_BETS_IN_BETSLIP","SHOW_BET_STATION_RESULT","DECISION_SOURCE","KEEP_PLACED_BETS_IN_LINEAR_SINGLE","KEEP_PLACED_BETS_IN_LINEAR_COMBO","KEEP_PLACED_BETS_IN_LINEAR_SYSTEM","KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER","KEEP_PLACED_BETS_IN_LINEAR_TEASER","goToMyBets","keepPlacedBetsInBetslip","props","keepPlacedBetsInLinearSingle","keepPlacedBetsInLinearCombo","keepPlacedBetsInLinearSystem","keepPlacedBetsInLinearBetBuilder","keepPlacedBetsInLinearTeaser","decisionSource","showBetStationResult","clearResult","BetslipTypesActions","_BetslipTypesActions","SET_EACH_WAY","POPULATE_FROM_STORAGE","SET_ACTIVE_TYPES","SET_LINEAR_TYPES","SET_SELECTED_TYPE","TRIGGER_AUTO_COMBO_SWITCH","SET_ORIGINAL_BASE","SET_FROM_ORIGINAL_BASE","SET_DEFAULT_ORIGINAL_BASE","SET_SELECTED_BY_USER","CHECK_DEFAULT_STAKE","SET_STAKE","SET_DEFAULT_STAKE","setEachWay","populateFromStorage","setActiveTypes","setSelectedType","triggerAutoComboSwitch","setLinearTypes","setOriginalBase","setFromOriginalBase","setDefaultOriginalBase","checkDefaultStake","setSelectedByUser","setStake","setDefaultStake","RewardTokensBannerService","localStoreService","crmTokenimage","intlService","tokensConfig","betRewardBannerDismissKey","MINUTE","HOUR","DAY","_recentlyClickedToken$","recentlyClickedToken$","_isBannerExpaned","isBannerExpanded","isRewardDrawerEnabled","tokens","isBetRewardBannerDismissed","onUserLogin$","setBetRewardBannerStorageKey","trackBetRewardBanner","action","baseTracking","eventDetail","positionEvent","RewardBannerTrackingConstants","PromoHub","BetRewardsBanner","NOT_APPLICABLE","betNowRedirect","token","_d","_e","_f","_g","setRecentlyClicked","fixtures","SportConstant","Horses","Greyhounds","redirectToSport","goToEvent","competitionUrl","SportUrlParam","Betting","meetings","param","goToRacing","gameType","redirectToLiveSport","homeRedirection","currentUrl","querySelector","scrollToDelta","toggleBannerExpansion","scrollOnBetNow","goHome","goToLiveSport","goToLive","sportsCount","goToSport","userTokenId","setTokenInfoUrl","promoHubUrlTokenType","promoBaseUrl","crmTokens","links","promotiondetails","promoBaseUrlSeparator","endsWith","tokenInfoUrl","getIconUrl","isRewardBannerView","isDarkMode","enableDarkModeForRewardDrawer","rewardsIcons","RewardTokenType","FreeBet","crmTokenImages","RewardTokenImages","FreeBetDark","OddsBoost","OddsBoostDark","RiskFreeBet","RiskFreeBetDark","BetAndGet","BetAndGetDark","getTokenUrlDetails","promoCtaLinks","ctaLinks","rewardTokenType","getTokenUrl","cards","FreeBetsDetailsUrl","tokenInfoLinkText","banner","FreebetDetailsLinkTitle","PromoHubUrlTokenType","RiskFreeBetDetailsUrl","BackupBetDetailsLinkTitle","OddBoostDetailsUrl","OddsBoostDetailsLinkTitle","BetAndGetDetailsUrl","BetAndGetDetailsLinkTitle","tokenUrl","interpolateDoubleBracesString","getTokenTitle","customTitle","messages","Freebet","riskFree","card","DefaultTitle","tokenType","oddsBoost","OddsBoostTypeRegular","OddsBoostTypeMega","OddsBoostTypeSuper","getTokenCategories","_h","_i","_j","_k","_l","_m","tokenCards","TokenCategoryDelimiter","isLiveSport","displayCategoriesMaxValues","sportsCatergory","TokenCategorySelectedSports","liveCategory","competitionsCount","competitionsCategory","MultipleCompetitions","meetingsCount","meetingsCategory","meeting","fixturesCount","fixturesCategory","fixture","TokenCategorySelectedEvents","marketsCount","markets","marketsCategory","market","TokenCategorySelectedMarkets","marketTemplatesCount","marketTemplates","templates","marketTemplatesCategory","marketTemplate","TokenCategorySelectedTemplates","marketParametersCount","marketParameters","marketTypes","parseMarketType","marketParametersCategory","TokenCategorySelectedParameters","optionsCount","optionsCategory","option","TokenCategorySelectedSelections","TokenCategoryAllSports","getTokenExpires","expiryDate","now","DateProviderService","getDate","buildDate","getFullYear","getMonth","nowDate","diffDay","diff","diffHours","getRewardDrawerTokenExpires","getDefaultTokenExpires","TokenExpiredTemplate","TokenExpireTodayTemplate","todayTime","formatDate","TokenExpireTomorrowTemplate","tomorrowTime","TokenExpireDaysTemplate","dayCount","TokenExpireLessThanHourTemplate","TokenExpireHoursTemplate","hoursCount","floor","setDefaultValueForBannerExpanded","isBannerExpanded$","marqueeHeight","getBoundingClientRect","bottom","fixedHeaderHeight","LocalStoreService","CRMTokenImages","IntlService","CrmConfig","_RewardTokensBannerService","RewardTokensFormattersService","replaceParametersService","currencySymbolReplacebleParam","currencyCodeReplacebleParam","replaceCurrency","currencySymbol","currencyCode","getTokenQuickViewReplaceValue","replaceParameters","replaceableParameters","CrmPromotionReplaceParametersService","_RewardTokensFormattersService","getDayOfRace","dateAsString","tomorrowNow","setDate","getUTCFullYear","getUTCMonth","getUTCDate","convertDayOfRaceToUrlParam","dayOfRace","RacingUrlParam","Today","Tomorrow","updateStatus","addons","raceSummary","raceStatus","getOwnPropertyNames","raceStatuses","o","toUpperCase","split","HorsesFixtureHelper","racingConfig","isTradable","fixtureType","pricingState","filterSelectedMarketOptionGroup","selectedMarketId","optionGroups","optionGroup","detailedGrouping","marketSet","replaceAll","checkIfBOGApplicable","startDate","bogTodayThresholdTime","bestOddsGuarantee","RacingConfig","_HorsesFixtureHelper","PlayerAttributesService","sharedFeaturesApiService","SharedFeaturesApiService","playerAttributesEvents","playerAttributes","load","refresh","cached","loaded","response","_PlayerAttributesService","PlayerAttributesDslValuesProvider","dslRecorderService","playerAttributesService","dslCacheService","invalidate","getProviders","PlayerAttributes","createRecordable","createFunction","getCurrentValue","deps","type","DSL_NOT_READY","DslRecorderService","DslCacheService","_PlayerAttributesDslValuesProvider","registerLazyDslOnModuleInit","SingleBoxSharedResizeObserver","_box","entries","subscription","entry","SharedResizeObserver","userFeatureKey","defaultUserState","bettingSettings","configSettings","walletLoaded","AccaBoostTokenFactoryService","payoutType","PayoutType","Bonus","validUntil","AccaBoost","cmsItemId","sitecorePath","boostLadder","getDistinctLadderValues","minimumLegs","numberOfLegs","maxReward","amount","priority","countryCodes","minOddsPerLeg","sportName","betSlipType","sportsConfigs","sportConfig","gridGroups","keyBy","uniq","flatten","gridGroupIds","competitionIds","daysOfTheWeek","daysOfWeek","timesOfTheDay","ratio","_AccaBoostTokenFactoryService","AccaBoostTokenLoaderService","apiService","accaBoostConfig","factoryService","cacheFactory","configUrl","configCache","sitecoreTokenDataCacheTime","logger","getLogger","loadTokens","fetchTokens","mapTokens","loadTokenData","source","getOrCreate","catchError","err","error","AccaBoostConfig","ExpiringCacheFactory","_AccaBoostTokenLoaderService","ACCA_BOOST_REFRESH_TRIGGER","AccaBoostTokenProviderService","loaderService","autoRefreshTrigger","manualRefresh$","tokens$","byPriority","second","startGettingToken","onAuthenticationChange$","UserLoginEvent","allowUnAuthenticatedUsers","canShowTokens","loadOnRefresh$","getTrigger$","loadData","concat","sort","OptionalNonRootToken","_AccaBoostTokenProviderService","RewardTokensFactory","user","tokenFormatterService","userOddsFormatSettingsService","UserOddsFormatSettingsService","toModelList","tokensData","getCurrencySymbol","currency","t","isOddsBoostToken","mapBase","boostFactor","maximumStake","maxWinningsBoost","minimumStake","oddsBoostFormula","isRiskFreeToken","maximumPayout","riskFreePercentage","isFreebetToken","isBetAndGetToken","betAndGetToken","payoutValue","rewardTriggerType","percentagePayout","minimumPayout","betStatus","buildABet","subType","isEarlyPayoutEnabled","isEarlyCashOut","updateReplacebleParams","selectionOddsKey","totalOddsKey","userOddsFormat","oddsFormat","getFormatedOdds","selectionLevelMinimumOdds","minimumOdds","tokenOdds","european","american","britishNumerator","britishDenominator","getTokenCustomDetails","description","customDescription","startDateUtc","expiryDateUtc","wageringMultiplier","mapFilter","payoutExpiry","minOdds","isBetBuilder","isSingleAndComboSelected","maximumOdds","selectionLevelMaximumOdds","customMarketTypes","isIncrementalPayout","incrementalBetAmount","incrementalPayoutNoOfTimes","rewardTargetType","isVipExclusive","newFilter","_RewardTokensFactory","RewardTokensDataService","crmOfferLoaderService","rewardTokensFactory","accaBoostTokenProvider","tokens$$","mapCrmTokens","crmTokensData","crmTokens$","accaBoostTokens$","accaBoostTokens","refreshCrmOffer","refreshAccaOffer","CrmOfferLoaderService","_RewardTokensDataService","MarketSubTypeLogoStrategy","MarketSubTypeLogoHideStrategy","shouldShowLogo","wt","_MarketSubTypeLogoHideStrategy","MarketSubTypeLogoShowStrategy","_MarketSubTypeLogoShowStrategy","_STATE_STORAGE_PERSIST_SERVICE","StateStorageFeatureModule","root","statePersistServices","service","console","log","feature","stateSaver","StatePersistServiceRegistry","_StateStorageFeatureModule","StateStorageModule","forFeature","ngModule","multi","useFactory","createStateSaver","_StateStorageModule","BetslipDigitalModuleLoaderService","loadBetslipModule","moduleRef","_BetslipDigitalModuleLoaderService","UriParam","ExternalAffiliateEffects","routerService","pickUriService","bettingService","urlService","listenToRouter","parse","query","getPicksWithFallback","mapPicksRequest","picksView","cleanUrl","fixturePage","ExternalBetslipActions","requestAddAffiliatePicks","shareBet","Options","Stake","Currency","Type","Source","RefBet","Offersource","search","goTo","tv1Picks","tv2Picks","includeSourceFixturesForPrecreatedBuildABet","pick","tv1Legs","tv2Legs","offerSource","getOfferSource","pickData","mapOptionQueryToPick","fixtureId","gameId","participantId","optionMarketId","resultId","useLiveFallback","optionQuery","optionId","isClassicBetBuilder","PickUriService","BettingOfferApi","UrlService","_ExternalAffiliateEffects","SingleIntersectionObserver","_options","_destroyed","_intersectionSubject","_elementObservables","IntersectionObserver","_intersectionObserver","has","unobserve","unsubscribe","bufferSize","refCount","complete","SharedIntersectionObserver","_observers","_SharedIntersectionObserver","OVERLAY_REF_WITH_DATA_TOKEN","DsTooltipTrigger","tooltipToggle","_tooltipToggle","_overlayRef","openTooltip","closeTooltip","overlay","Overlay","vcr","sharedIntersectionObserver","sharedResizeObserver","_scrollDispatcher","ScrollDispatcher","_isVisible","_isShown","closeOutsideViewport","input","booleanAttribute","autoOpen","arrowPosition","_position","computed","warn","autoCloseTime","closeOnScroll","hasBackdrop","closeOnInteraction","tooltipCustomClass","tooltipToggleChange","output","overlaySubscriptions","_lastObservedWidth","handleCloseOnInteraction","clickTarget","run","contains","overlayElement","effect","isAutoOpen","isShown","untracked","initializeAutoOpen","isOpen","createOverlay","runOutsideAngular","adjustArrowPosition","listenToOverlayState","threshold","isIntersecting","shouldAutoClose","onStable","hasAttached","updatePosition","scheduleAutoClose","arrowElement","targetRect","arrowSize","leftOffset","left","max","ARROW_OFFSET","min","CONTAINER_OFFSET","top","topOffset","height","add","attachmentsSubscription","attachments","isTooltipOpen","detachmentsSubscription","detachments","overlayConfig","getOverlayConfig","panelClasses","panelClass","scrollableAncestors","getAncestorScrollContainers","overlayPosition","getOverlayPosition","positionStrategy","flexibleConnectedTo","withPositions","withFlexibleDimensions","withViewportMargin","withPush","withScrollableContainers","scrollStrategy","scrollStrategies","reposition","backdropClass","autoCloseTimeout","toggleTooltip","tooltipPortal","TemplatePortal","attach","listenForCloseOnInteraction","listenForBackdropClick","detach","removeCloseOnInteractionListener","backdropSubscription","globalClickListener","addEventListener","removeEventListener","backdropClick","positionChanges","ResizeObserver","onResize","cleanupResources","disconnect","dispose","handleResize","newWidth","_DsTooltipTrigger","ARROW_HEIGHT","ARROW_WIDTH","TOOLTIP_POSITIONS","bottomstart","offsetY","offsetX","originX","originY","overlayX","overlayY","bottomend","bottommiddle","topstart","topend","topmiddle","leftstart","leftend","leftmiddle","rightstart","rightend","rightmiddle","ot","handleKeydown","P","containerClasses","DsTooltipContent","tooltipTrigger","fullWidthMode","customTooltip","outerContainerClasses","positionClass","arrowClass","fullWidthClass","fullWidthModeClass","adjustedArrowClass","closed","ariaLabel","Ut","ke","DsTooltipContent_Conditional_4_Template","DsTooltipContent_Conditional_5_Template","_DsTooltipContent","DsTooltipModule","_DsTooltipModule","OddsChangesConfirmationTrackingService","LOAD","OddsChangesPopup","trackTooltipClick","tooltipShown","InfoIcon","trackSaveButtonClick","selectedValue","Save","trackSavePreferenceStatus","status","BetSlip","OddsChanges","_OddsChangesConfirmationTrackingService","option_r4","subtext","oddSelectionChange","OddChangesConfirmationComponent_Conditional_0_For_13_Conditional_5_Template","oddSelection","oddsPreferenceConfig_r6","tooltipText","OddChangesConfirmationComponent_Conditional_0_For_13_Template","ɵɵrepeaterTrackByIdentity","saveOddPreference","OddChangesConfirmationComponent_Conditional_0_ng_template_18_Template","oddsPreferencePopupTitle","tooltipTemplate_r7","oddsOptions","saveButton","helperText","OddChangesConfirmationComponent","bettingSettingsService","userSettings","oddsPreferenceConfig","oddsChangeTrackingService","oddChangeConfirmationService","oddsPreferenceConfig$","oddsPreferenceString","acceptAnyOddsLabel","acceptAnyOddsSubtext","acceptOnlyHigherOddsLabel","acceptOnlyHigherOddsSubtext","dontAcceptOddChangesLabel","oddsAcceptanceMode","oddsPreferenceValue","ToastrSchedule","Immediate","oddChangePreferenceSuccess","saveAcknowledgement","catch","onSaveOddPreferenceFailure","oddChangePreferenceError","updatePlayerPreference","acknowledgement","oddsChangePreference","SyncUserSettingsService","UserSettingsService","SitecoreOddsPreferenceConfig","ToastrQueueService","OddChangeConfirmationService","OddChangesConfirmationComponent_Conditional_0_Template","DsRadioModule","DsRadioButton","DsRadioGroup","DsListItem","_OddChangesConfirmationComponent","oddsConfig","registrationInfoService","openOddChangesConfirmationPopup","_modalRef","getModalSettings","modelRef","scrollFreezeType","ScrollFreezeServiceTypes","All","playerPreference","post","cache","retryCount","showSpinner","resolveWithFullResponse","isEligibleForOddsChangePopup","displayOddsChangePreferencePopup","oddsChangePopupEligibilityDate","registrationInformation","registrationInfo","eligibilityDate","checkAndOpenOddsChangePopup","isAcknowledged","OddsConfig","RegistrationInfoService","_OddChangeConfirmationService","QuickBetActions","_QuickBetActions","ADD_PICK","REMOVE_PICK_BUTTON_CLICK","REMOVE_PICK","REQUEST_REMOVE_MULTIPLE_PICKS","REMOVE_MULTIPLE_PICKS","INIT","OPEN_QUICK_BET","CLOSE_QUICK_BET","SHOW_QUICK_BET","HIDE_QUICK_BET","OPEN_CONFIRMATION","CLOSE_CONFIRMATION","UPDATE_PLACE_BET_RESULT","CLOSE_QUICK_BET_UI","CLEAN_QUICK_BET_AFTER_CLOSE_UI","CLOSE_QUICK_BET_UI_OVERLAY","CHANGE_STAKE","UPDATE_STAKE","SET_STAKE_STATE","NUMPAD_ACTION","RESET_RESULT_STATE","RESET_UI_STATE","SET_ACTION_BUTTON","SET_HAS_CLOSED_PICK","SET_HAS_LOCKED_PICK","PLACE_BET","REQUEST_PLACE_BET","ACCEPT_ODDS_CHANGES","ACCEPT_MARKET_CLOSED_CHANGES","SHOW_TECHNICAL_ERROR_DIALOG","SHOW_PLACE_BET_ERROR_DIALOG","SHOW_PLACE_BET_WARNING","SHOW_PICK_CHANGED_WARNING","ACTION_BUTTON_CLICK","KEEP_OPEN","DEPOSIT","MAKE_DEPOSIT","DEPOSIT_AND_PLACE","VIEW_BONUS","LOGIN","SHOW_HELP","HIDE_HELP","HELP_CLOSE_CLICK","SHOW_WALLET_SELECTOR","CLEAR_WARNINGS","FINISH_PLACE_BET","TRACK_BET_PLACEMENT_RESULT","INIT_BET_PLACEMENT","FINALIZE_BET_PLACEMENT","PLACE_BET_RESPONSE_ERRORS","SET_DISPLAY_HELPER_TO_DEFAULT","REPLACE_PICK","QUERY_PLACE_STATUS","SET_HIDDEN_BY_ERROR","CLOSE_RESULT_SCREEN","OPEN_BETSLIP","RESET_ADDED_TO_BETSLIP","RESET_TO_PLACE_STATE","addPick","removePick","requestRemoveMultiplePicks","removeMultiplePicks","replacePick","removePickButtonClick","actionButtonClick","pprops","setActionButton","makeDeposit","deposit","depositAndBet","viewBonus","login","acceptOddsChanges","acceptMarketClosedChanges","resetUiState","closeQuickbetUi","cleanQuickBetAfterCloseUI","closeQuickBetUiOverlay","closeQuickBet","setDisplayHelperToDefault","openQuickBet","showQuickBet","hideQuickBet","keepOpen","hideHelp","helpCloseClick","setHiddenByError","closeResultScreen","openConfirmation","resetResultState","updatePlaceBetResult","closeConfirmation","placeBet","requestPlaceBet","showPlaceBetErrorDialog","showPlaceBetWarning","finishPlaceBet","trackBetPlacementResult","initBetPlacement","finalizeBetPlacement","queryPlaceStatus","placeBetResponseErrors","changeStake","updateStake","setStakeState","numpadAction","showWalletSelector","setHasClosedPick","setHasLockedPick","showPickChangedWarning","showTechnicalErrorDialog","clearWarnings","openBetslip","resetAddedToBetslip","resetToPlaceState","ExternalBetslipEffects","actions$","betslipLoaderModule","closeResultOnAddPickEffect$","createEffect","ofType","addMultiplePicks","addBetBuilderPick","addEntainUiBetBuilderPick","addGroupPick","betslipSelector","base","BetslipState","Result","concatMap","betslipType","selectedByUser","systemInfo","betslipTypes","currentSelectedType","BetslipType","EditBet","EditBetActions","exitEditBet","closeQuickBetConfirmationOnAddPickEffect$","quickBet","QuickBetUiState","Success","handleAddPickActionEffect$","echoAddPick","getRequestAddPickActions","handleOddsConfirmationPopupDisplay$","isEligible","ignoreElements","handleAddPicksActionEffect$","picks","handleAddGroupPickActionEffect$","BetslipPickActions","requestAddGroupPick","payload","headerTemplate","handleAddBetBuilderPickActionEffect$","echoAddBetBuilderPick","requestAddBetBuilderPick","pickId","additionalInfo","handleAddEntainUiBetBuilderPickActionEffect$","requestAddEntainUiBetBuilderPick","eventModel","betBuilderOptionMarket","longId","handleRemoveEntainUIPickActionEffect$","removeEntainUiBetBuilderPick","requestRemoveEntainUiBetBuilderPick","eventId","handleCheckPrecreatedBABConversion$","checkPrecreatedBABConversion","handleRemovePickActionEffect$","echoRemovePick","requestRemovePick","handleRemovePicksFromGroupActionEffect$","removePicksFromGroup","requestRemovePicksFromGroup","pickIds","handleAffiliateRequestActionEffect$","addAffiliatePicks","handleAffiliateShareBetRequestActionEffect$","shareAffiliatePicks","handleRemoveMultiplePicksActionEffect$","echoRemoveMultiplePicks","handleStartEditMyBetActionEffect$","startEditMyBet","handleNotificationSettingUpdateActionEffect$","UserActions","updateState","SettingsActions","updateNotificationSettings","oddsAcceptance","emailNotify","betslipEmailNotification","appNotify","betslipAppNotification","handleAddWebAppPickActionEffect$","addWebAppPick","handleRemoveWebAppPickActionEffect$","removeWebAppPick","handleSetRewardTokenActionEffect$","setBetstationFreeBetToken","RewardTokensActions","handleToggleWinPickActionEffect$","toggleWinPick","requestAddPick","priceId","isPriceBoosted","groupInfo","parentLinkedEventId","isBetBuilderEnabled","closeDialog","Actions","BETSLIP_MODULE_LOADER_SERVICE","_ExternalBetslipEffects","BetslipDigitalIntegrationModule","forRoot","BetslipHost","Digital","useClass","EffectsModule","_BetslipDigitalIntegrationModule","LDFeatureFlags","LD_FEATURE_FLAG_STORAGE_KEY","LD_FEATURE_FLAGS","LaunchDarklyFlagManagerService","launchDarklyService","LaunchDarklyService","featureFlagKeys$","DisplayMode","getFlagOnly","getFeatureFlag","flagName","featureFlags","activateExperiment","flag","client","_LaunchDarklyFlagManagerService","DateCheckerService","isDateReached","dateValue","isNowTimeOfDay","timeOfDay","toDate","to","time","hours","minutes","RealityCheckEvent","RealityCheckCookie","RealityTime","FirstBetPlacement","RealityCheckService","cookieProvider","realityCheckConfig","tickerService","dispatcher","realityCheckTimerKey","BET_PLACE_SUCCESS","isSubscribed","remainingTime","realityCheckEvent","OnBetPlacement","OnBetPlacementWithDuration","on","scheduleNotification","setFirstBetPlacementCookie","OnLogin","onUserLogout$","onUserLogout","dialogText","_dialogText","RealityCheckWithTimerMessage","getTimeDuration","RealityCheckMessage","buttonText","_buttonText","RealityCheckButtonTitle","getCookie","cookieName","cookieObj","JSON","cookieRemainingTime","fromSportsEnter","fromSportsLeave","unsubscribeTickerService","deleteCookie","realityCheckEnabled","jurisdiction","jurisdictions","j","showNotification","updateRemainingTime","contentData","DialogType","Info","firstParagraph","secondParagraph","buttons","ButtonType","Ok","openMessage","resetRemainingTime","interval","TickerInterval","Minute","onTick","updateInterval","setRealityCookie","remaingTime","Number","setCookie","stringify","expires","betPlaceTime","diffMs","ceil","CookieProvider","RealityCheckConfig","TickerService","DispatcherService","_RealityCheckService","isValidStartDate","isValidExpiryDate","isValidDayOfWeek","day","getDayOfWeek","tokenDay","isValidTimeOfDay","isValidSport","sportsFilter","hasRestrictedId","regions","hasBestOddsGuaranteeFlag","cdsUnresulted","isRaceOff","filterIds","contextId","filterId","ClassicBestOddsGuaranteedService","BestOddsGuaranteedService","isFixtureEligible","isBOGEnabled","_ClassicBestOddsGuaranteedService","FixtureBestOddsGuaranteedTokenValidatorService","validators","validate","every","validator","_FixtureBestOddsGuaranteedTokenValidatorService","convertReducer","reducer","draft","createImmutableReducer","initialState","ons","createReducer","OddsAcceptance","PerformanceService","_measurements","isLowTierDevice","benchmarkThreshold","measurement","isSlow","_PerformanceService","benchmark","start","performance","calculatePrimes","VideoStreamStatus","VideoStreamResult","errorType","PlaySource","SelfExcludedCategories","showStreamingMessage","hideWhenStarted","isEsport","provider","scoreboard","started","twitchChannel","streamUrl","TrackingConfig","LazyClientConfigBase","d","__ngConditionalFactory__","trackingConfigFactory","LazyClientConfigService","__decorate","LazyClientConfig","product","ClientConfigProductName","SF","TrackingValueGettersService","trackingConfig","cookieService","nativeAppService","frontendHelperService","balancePropertiesConfig","__privateAdd","userBalance","firstValueFrom","balanceProperties","accountBalance","userCurrency","userCountry","country","userGeoCountry","geoCountry","userLoyalty","loyalty","userCustomerId","customerId","userSegmentId","segmentId","userStage","lifeCycleStage","userPrestage","eWarningVip","userMicroSegmentId","microSegmentId","userChurnRate","churnRate","userFutureValue","futureValue","userPotentialVip","potentialVip","userAgent","__privateGet","navigator","username","hasPositiveBalance","locationAbsUrl","removeNotTrackedQueryStrings","absUrl","locationHost","host","locationPathQueryAndFragment","removeLeadingSlashes","browserScreenResolution","windowRect","displayWidth","displayHeight","redirectedFrom","CookieName","RedirexOriginal","trackerID","TrackerId","trackingAffiliate","TrackingAffiliate","abTestGroup","MmcoreBwinvar","getPageName","pageReferrer","referrer","browserOrientation","currentOrientation","nativeMode","cpuCores","cpuMaxFrequency","totalRam","nightMode","parseInt","DarkMode","userKnown","LastVisitor","internalCampaign","deviceId","DeviceId","languageCode","frontend","getFrontendDescription","medium","getMedium","domain","fullEntryUrl","entryUrl","entryUrlReferrer","EntryUrlReferrer","packageVersion","packageName","nativeWindow","VERSIONS","setReferrer","setEntryUrl","terminalId","TerminalId","shopId","ShopId","terminalType","applicationName","isTerminal","absolute","parsedUrl","notTrackedQueryString","notTrackedQueryStrings","decodeURIComponent","langPrefix","lowerCasePath","substring","os","isNativeApp","isNativeWrapper","isiOS","isChrome","CookieService","NativeAppService","FrontendHelperService","BalancePropertiesConfig","_TrackingValueGettersService","eventNames","pageView","userLogout","DataLayerTrackingService","trackingValueGettersService","timerService","webWorkerService","createWorker","WorkerType","DataLayerTrackingInterval","gtmLoaded","processLocalStore","removeWorker","gtmEnabled","tagManagerRenderers","google_tag_manager","dataLayer","WindowEvent","VanillaGtmLoaded","GtmLoad","addInitialValues","updateDataLayerEntryInfo","updateUserValues","updateDataLayer","updateDataLayerSessionId","Promise","isObject","isArray","schedulerEnabled","dataLayerUpdateTimeoutInMilliseconds","scheduleIdleCallback","dataLayerName","getDataFromStore","LocalStoreKey","Tracking","trackEvents","eventType","webAnalytics","parsedValue","WebAnalyticsEventType","triggerEvent","errorRemote","eventTimeout","eventCallbackTimeoutInMilliseconds","runWithTimeout","reject","eventCallback","bind","TriggerEventPromiseResult","Normal","reportErrorObject","reportError","errorDetail","encodeURIComponent","trackContentItemEvent","parameterName","getContentItemTracking","updateUserContactabilityStatus","cts","trackingDataPrefix","mapKeys","pickBy","startsWith","trackings","promise","timeoutId","Timeout","EntryUrl","v8","tech","build","label","utms","campaign","keyword","hasOwnProperty","decibelInsight","_da_ready","Logger","TimerService","WebWorkerService","_DataLayerTrackingService","DefaultPageViewDataProvider","valueGetters","getData","navigationId","utm","_DefaultPageViewDataProvider","PageView","dataSource","dataCallback","onData","fn","PageViewTrackingService","productInjector","currentDataProviders","pageViewQueue","toNumberOrDefault","isNaN","trackPageView","args","utm_source","getMultiple","PAGE_VIEW_DATA_PROVIDER","NEVER","pageViewDataProviderTimeout","processPageViewQueue","shift","ProductInjector","_PageViewTrackingService","RUN_AFTER_LCP_TOKEN","runAfterLcp","GtmService","__privateSet","tagManagerService","TagManagerService","gtmConfig","runAfterLcpToken","renderGTMTag","enableGTM","partytown","loadGTM","delayGTM","loadPartyTownGTM","_GtmService","DataLayerProxyService","strategyProvider","requiredEvents","patched","patchDataLayer","forceSchedulerDisabled","enableLogging","enableOmitting","createDataLayerProxy","origDataLayer","idleWrapper","trackingDelay","omitAll","blockDevice","deviceBlockEnabled","isNextCallSuppressed","allowlist","Set","blocklist","window","measureTask","measureTaskDuration","Proxy","newValue","callback","work","logTrackingPerformance","deviceConcurrency","hardwareConcurrency","minDeviceConcurrency","minDeviceMemory","deviceMemory","omitPercentage","random","_DataLayerProxyService","startTime","startMark","mark","r","endMark","measure","endTime","runtime","color","withArgs","eventQueueKey","PartytownService","sharedStorageEnabled","forward","cookieStorageEnabled","ptSharedStorage","ptWorkerLocation","ptCookieStorage","createEventReplayQueue","replayEvents","origPush","addToQueue","apply","feedSharedStorage","setStaticProps","createDimensionsEffect","subscribeToDynamicProps","feedCookieStorage","getCookieUpdates","getWindowOffsetUpdates","characterSet","loadPurpose","cookieEnabled","cookieDeprecationLabel","vendor","doNotTrack","maxTouchPoints","timeOrigin","timing","navigationStart","redirectStart","redirectEnd","fetchStart","domainLookupStart","domainLookupEnd","connectStart","secureConnectionStart","connectEnd","requestStart","responseStart","responseEnd","unloadEventStart","unloadEventEnd","domLoading","domInteractive","domContentLoadedEventStart","domContentLoadedEventEnd","domComplete","loadEventStart","loadEventEnd","screenHeight","visualViewportHeight","screenWidth","visualViewportWidth","screen","colorDepth","locationChange","routerState","queryParamMap","pageYOffset","scrollY","_PartytownService","getEventsQueue","savedEventsItem","localStorage","getItem","eventsQueue","setItem","parsedArgs","removeItem","dataLayerProxy","partytownService","configured","clientTagManagers","excludes","clientInjectionExcludes","injectScript","availableClientTagManagers","rendererName","tagManager","existing","script","createElement","async","onload","onerror","body","append","isDisabledLocally","_ptReady","enableEventReplay","readyState","dispatchEvent","CustomEvent","_TagManagerService","UtmService","parseFromUrl","queryParameters","utm_medium","utm_campaign","utm_term","utm_content","utm_keyword","_UtmService","storageKey","TrackingBootstrapService","pageViewTrackingService","utmService","tagManagerCoreService","trackingServiceProvider","gtmService","onFeatureInit","orientation","previousUrl","nextUrl","TRACKING_SERVICE_PROVIDER","_TrackingBootstrapService","runOnFeatureInit","ProductMenuConfig","productMenuContentFactory","ProductMenuReturnUrlKey","ProductMenuService","initialized","initializedEvents","currentTab","tabEvents","routerModeReturnUrl","sessionStoreService","routerMode","productMenuConfig","v2","contentEvents","tabCount","menuItemsService","eventsService","apps","childTabs","childTabs$$","childTabs$","apps$$","apps$","productMenuComponents","menu","initTabs","children","openTab","tabName","setActive","MenuSection","ProductMenuTop","isTab","setTabItemCounter","setItemCounter","setProductMenuComponent","itemType","getProductMenuComponent","setItemDescription","descriptionCssClass","setDescription","setDescriptionCssClass","raise","VanillaEventNames","ProductMenuToggle","EventsService","_ProductMenuService","ANIMATION_PREFIX","AsyncAnimationRendererFactory","ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN","delegate","animationType","moduleImpl","loadFn","moduleImplPromise","RuntimeError","ɵcreateEngine","ɵAnimationRendererFactory","rendererFactory","hostElement","rendererType","dynamicRenderer","DynamicDelegationRenderer","animationRendererFactory","animationRenderer","ChangeDetectionScheduler","componentId","ɵɵinvalidFactory","impl","namespace","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","node","flags","propOrEventName","provideAnimationsAsync","performanceMarkFeature","makeEnvironmentProviders","RendererFactory2","DomRendererFactory2","ANIMATION_MODULE_TYPE","LoaderStylesService","webpackManifestService","contentService","loadStyles","iter","__forAwait","more","temp","htmlCssClass","loadStyle","filename","getNewThemeFilename","themesCssPath","getEntry","getOldThemeFilename","file","getJson","theme","WebpackManifestService","StylesService","ContentService","_LoaderStylesService","ModuleService","dslEnvService","notFoundValue","info","getProvider","runBootstrappers","bootstrappers","FEATURE_INIT_PROVIDER","bootstrapper","runEventProcessors","eventProcessors","EVENT_PROCESSOR","eventProcessor","process","runDslProviders","dslProviders","LAZY_DSL_VALUES_PROVIDER","addToContext","runLaunchDarklyContextProvider","contextProvider","LAUNCH_DARKLY_LAZY_CONTEXT_PROVIDER","reloadContext","DslEnvService","_ModuleService","LoadersConfig","loadersConfigFactory","LOADER_FN_TOKEN","registerLoaderFn","LoadState","LoadStrategy","LoaderService","registeredLoaderFns","rtmsService","moduleService","nativeApp","loadStylesService","productService","loadDispatcher","STYLES_LOADER_ID","allLoaders","initLoaders","UserPreHooksLoginEvent","JustLoggedIn","LoggedIn","UserLogoutEvent","reset","restart","productChanged","EventType","Vanilla","startEventStrategy","Rtms","eventsFromNative","Native","Preload","AlreadyLoggedIn","ReadyStateChange","runOnlyCompleteStrategy","loadFeature","featureId","featureImport","additionalStyles","mergeStyles","all","featureInjector","getInjector","eventContext","sendToNative","NativeEventType","FEATURE_LOADED","Complete","loaders","Created","Scheduled","evaluate","strategies","loader","scheduled","ruleId","rules","loaderId","loaderFnConfig","loaderFn","additionalStylesFn","evaluateExpression","enabled","checkLoaderEnabledForProduct","Enabled","FeatureEnabledStatus","isSingleDomainApp","runLoader","getAdditionalStyles","Loaded","optionStyles","RtmsService","ProductService","_LoaderService","LoadersBootstrapService","_LoadersBootstrapService","VANILLA_LOADERS_MAP","abuser-information","account-menu","activity-popup","affordability","balance-breakdown","balance-properties","balance-refresh","balance-transfer","barcode-scanner","betstation-hardware-fault","betting-status","bonus-award","bonus-balance","bottom-nav","bottom-sheet","cashier","clock","connected-accounts","content-messages","cookie-banner","cookie-consent","cookie-injector","css-overrides","curfew-status","debounce-buttons","deposit-limit-exceeded","deposit-limits","deposit-prompt","deposit-session","dialog","document-upload-status","domain-specific-actions","dropdown-header","footer","gamification","geolocation","global-search","header-bar","hint","icons","inactive","inactivity-screen","inbox","jackpot-winner","kyc","label-switcher","language-switcher","last-session-info","launch-darkly","license-info","live-person","login-duration","login-new","logout","loss-limits","loyality-profile","loyalty-login","meta-tags","moh-details","native-app","navigation-layout","offer-button","offer-dsl","offers","offline","offline-page","overlay-messages","play-break","player-active-wager","player-attributes","player-gaming-declaration","player-limits","prerender","product-menu","product-switch-cool-off","range-datepicker","re-captcha","redirect-message","referred-friends","remember-me-logout-prompt","rtms-events","rtms-layer","rtms-overlay","screen-time","self-exclusion","session-fund-summary","session-info","session-lifetime-check","session-limits","session-limits-logout-popup","single-sign-on","smart-banner","sof-status-details","terminal-session","third-party-tracker","top-messages","tourney-token-balance","untested-browser","user-documents","user-flags","user-scrub","user-summary","value-ticket","zendesk","speculation","provideLoaders","runOnAppInit","VANILLA_LAZY_ROUTES","loadChildren","ROUTES","PROFILEPAGE_ROUTES","DARKMODE_ROUTES","NAVIGATIONLAYOUT_ROUTES","VANILLA_SECONDARY_ROUTES","outlet","provideSportsDynamicInjector","DYNAMIC_INJECTOR_PROVIDER_TOKEN","useExisting","ESportBreadcrumbsResolver","eSports","ESports","getESportsUrl","_ESportBreadcrumbsResolver","UserServiceWatcher","store$","allSettings$","initState","userLoggedIn","userLoggedOut","UserEvents","ClaimsChanged","M2UserClaimsChanged","UserSettingsChanged","dispatchUpdateState","BettingSettingsService","_UserServiceWatcher","userReducer","setWalletLoaded","provideUser","importProvidersFrom","StoreModule","UserAccountIdCookieService","accountIdCookieName","setAccountIdCookie","getPGAccountId","_UserAccountIdCookieService","NgScrollbarOptionsProvider","scrollAuditTime","autoHeightDisabled","_NgScrollbarOptionsProvider","NotAuthenticatedGuard","canActivateChild","fullReloadRequired","_NotAuthenticatedGuard","INTERNAL_ESPORTS_ROUTES","runGuardsAndResolvers","WidgetLayoutComponent","use","WidgetResolver","schemaMarkup","WidgetSchemaMarkupResolver","sitemap","SitemapRoutingToken","EsportsSitemapResolver","lcpService","GTMConfig","RunAfterLcpService","CalendarBreadcrumbsResolver","crumbs","contextUri","getInterval","Calendar","getCalendarUrl","CalendarService","_CalendarBreadcrumbsResolver","SportListOverviewResolver","getTimeInterval","EventListService","_SportListOverviewResolver","SportRedirectGuard","getAllParams","fallback","getSport","Golf","isAntepost","Antepost","getFallback","Competitions","_SportRedirectGuard","SportSubNavigationResolve","SubNavigationResolve","sportSubNavService","buildSubNavigation","toInteger","resolveTabs","SportSubNavigationService","_SportSubNavigationResolve","StandingsPageResolver","pruneHelperService","standingsService","sportsCacheService","competitionRouteService","virtualCompetitionService","standingsData","groups","prune","virtualCompetitionGroup","getStandings","virtualCompetition","getCompetition","selectedVirtualGroupId","selectedVirtualCompetition","getStandingsGroups","virtualCompetitionId","PruneHelperService","StandingsService","CompetitionRouteService","VirtualCompetitionService","_StandingsPageResolver","HomeBreadcrumbsResolver","HomeBreadcrumbTitle","_HomeBreadcrumbsResolver","MultiSportsBreadcrumbsResolver","MultiSportsBreadcrumbTitle","getMultiSportsHubUrl","_MultiSportsBreadcrumbsResolver","onPreloadMyBets","SitecoreMyBetsConfig","MultiSportsHubGuard","multiSportsConfig","MultiSportsHubConfig","_MultiSportsHubGuard","OutsideSportsGuard","canActivate","forceReload","_OutsideSportsGuard","INTERNAL_SPORTS_WEB_ROUTES","SitemapHomeResolver","pathMatch","loadComponent","EmptyComponent","LinkExternalAccountsModule","authorized","redirectTo","MultiSportsHubSitemapResolver","SettingsModule","FavouritesDashboardModule","shouldKeepSubNav","EventDetailsModule","LiveModule","VirtualListModule","shouldPreload","onPreload","SportListOverviewComponent","GameLauncherComponent","gameLauncherResolver","matcher","regexMatcher","matcherPattern","matcherMode","RacingModule","matcherMapping","SportSitemapResolver","EventListModule","CalendarComponent","CalendarResolver","CalendarSitemapResolver","subNavigationHiddenOnSmallScreen","MultiBuilderModule","multiNameIdentifierMatcher","matcherParams","StandingsSitemapResolver","StandingsPageComponent","FixtureListModule","EXTRA_SPORTS_ROUTES","configureVanillaLazyRoutes","routes","canDeactivate","NoMatchRouteGuard","SeoRedirectGuard","extModules","BannerWidgetLoader","SPORTS","BetColumnLoader","BetGeneratorLoader","TimeFiltersWidgetLoader","TopItemsLoader","CrmPromotionWidgetLoader","StandingsWidgetLoader","FavouritesWidgetLoader","GeoLocationAssetLoader","HiddenMarketLoader","LAZY_STYLES_CONFIG","HighlightsMarqueeLoader","MainComponentLoader","MediaLoader","MinigamesLoader","NextToGoLoader","OutrightsGridLoader","PanicButtonLoader","PopularMultiBetsLoader","PriceBoostLoader","QuickLinkLoader","ScoreboardCarouselLoader","ShowCaseLoader","SportTreeLoader","StoryContentLoader","TabbedGridLoader","TeaserLoader","TopEventsLoader","WidgetComposableLoader","provideLazyFeatures","provideSportsWebRootServices","HammerModule","HAMMER_GESTURE_CONFIG","HammerGestureConfigProvider","NetworkPerformancePageViewDataProvider","connectionConfig","routerEventService","firstLoad","tracked","cdsEntries","getEntriesByType","cdsUrlBase","clearResourceTimings","round","meanBy","duration","defaultValue","rounded","ConnectionConfig","_NetworkPerformancePageViewDataProvider","provideTracking","AccaBoostRefreshTriggerService","whenBetslipGetsEmpty$","betslipPicksCount$","pickCount","noop","timer","pollingInterval","concatMapTo","repeat","_AccaBoostRefreshTriggerService","GlobalBestOddsGuaranteeAvailabilityService","isBogAvailable$","_GlobalBestOddsGuaranteeAvailabilityService","BogTokenProviderService","bogAvailabilityService","refreshSubject","isTokenBasedBogEnabled","poolTokens","getBogTokens","isBogAvailable","refreshInterval","bogTokens","mapToRewardToken","fromUtc","toUtc","BestOddsGuaranteed","stakeCap","Cash","slipTypes","timesOfDay","toDictionary","getSourceEventId","regionIds","meetingIds","bogVersion","_BogTokenProviderService","TokenBasedBestOddsGuaranteedService","tokenProvider","tokenValidator","_TokenBasedBestOddsGuaranteedService","BestOddsGuaranteedFactoryService","_BestOddsGuaranteedFactoryService","provideBestOdds","ON_SPORTS_WEB_INIT","runOnSportsWebInit","BreadcrumbsBoostrapService","breadcrumbSlotService","media","schemaMarkupService","rebuildBreadcrumbs","activationEnded","lastActivationEnd","resolverType","findFirstBreadcrumbResolver","clearSlot","clearCrumbs","resolver","getToken","removeSchemaMarkupScriptFromBody","SchemaMarkupType","BreadcrumbList","isObservable","breadcrumbsModel","schemaBreadcrumbs","shouldSetBreadcrumbs","isSlotModel","changedInputs","isAlreadyRegistered","setSlot","addBreadcrumbSchemaMarkup","getConstructor","getPrototypeOf","crtSnapshot","calendarContext","isCalendarCompetition","isTennis","Tennis","shouldKeepBreadcrumbs","SchemaMarkupService","_BreadcrumbsBoostrapService","ModalPopUpComponent","settingsURL","getSettingsUrl","SettingsUrlParam","At","betslip","betslipRuleUpdatePopupUS","PopupText","Messages","ButtonText","BetslipSettingsLinkText","_ModalPopUpComponent","OddAcceptanceModeFilterService","selectedOddAcceptance","bettingSettings$","No","showOddsAcceptanceSettings","hideDontAcceptOptionSetting","requestSetOddAcceptance","acceptance","modalDialogRef","closeModal","_OddAcceptanceModeFilterService","NativeEventSubscription","redirecHelper","isNative","LiveAlertScreenNavigation","getEventId","BetScreenNavigation","MyBetsNavigation","OpenFreeBets","promotions","le","_NativeEventSubscription","SchemaMarkupBoostrapService","findFirstSubnavigationResolver","SportsEvent","cleanEvents","evnts","addEventSchemaMarkup","_SchemaMarkupBoostrapService","SettingsService","accountMenuConfig","routeService","routeNavigation$","vanillaAccountVersion$","account","version","accountVersion$","accountVersion","toggleCardLayoutStyle","isCardLayoutRoute","navRoute","Settings","EarlyPayoutSettings","GeneralBetslipSettings","AccountMenuVersion","AccountMenuConfig","_SettingsService","SubNavigationBootstrapService","validSubscription$","layoutState","cleanUpNavigation","shouldShowSubNav","lastResolverType","renewSubscription","cleanup","subNavigation$","skip","tabFullWidth$","_SubNavigationBootstrapService","RewardTokensContainerComponent_ng_container_0_ng_container_1_Template","bannerComponent_r1","RewardTokensContainerComponent","WidgetComponent","rewardTokensDataService","bannerComponent$","getNonAccaTokens","hasData","setWidgetLoaded","proxyComponentLoaded","bannerComponentSize","isRegulatoryRestricted","isExpandableRewardBannerEnabled","bannerComponentPadding","isUserAuthenticated","ci","ɵɵstyleProp","RewardTokensContainerComponent_ng_container_0_Template","fi","_RewardTokensContainerComponent","RewardTokenWidgetRegistration","widgetRegistry","registerLazy","WidgetRegistryService","_RewardTokenWidgetRegistration","AnimationDisabledService","animationControlService","addCondition","AnimationControl","Disable","AnimationControlService","_AnimationDisabledService","RepeatBackgroundWorkerService","LongRunningBackgroundWorkerService","BackgroundWorkerManagerService","repeatBackgroundServices","longRunningBackgroundServices","repeatingServicesSubscription","runRepeatingServices","runLongRunningServices","stopLongRunningServices","services","setupRepeatTimer","executionTime","getSchedule","val","_BackgroundWorkerManagerService","BottomNavBootstrapService","menuActionsService","bottomNavService","bottomNavActionsService","betslipToggled","myBetsToggled","menuToggled","BottomNavService","BottomNavActionsService","_BottomNavBootstrapService","CriticalErrorService","criticalError","criticalError$","showCriticalError","hideCriticalError","isCriticalErrorVisible","_CriticalErrorService","CriticalErrorBootstrapService","criticalErrorService","_CriticalErrorBootstrapService","BetfinderComponentLoaderService","getBetfinderComponent","betfinderComponent","BetfinderModule","_BetfinderComponentLoaderService","PopupInitializationService","popupConfig","externalNativeAppService","myBetsLoader","betfinderComponentLoaderService","eventSwitcherLoader","betFinderConfig","popupDict","bet-generator","BetGeneratorSharedModalComponent","bet-builder-overlay","BetbuilderMarketListComponent","grouped-sports","SportListModalComponent","archived-bets","ArchivedBetsModalComponent","transaction-bets","ngrx-reports","NgrxReportsComponent","betfinder","PopupProxyComponent","my-bets","event-switcher","epcotClass","update","inColumn","configure","showPageHeader","multiRandomGenerator","animation","getAnimation","DialogAnimation","SlideInFromBottom","AZsports","closeOnChildPopup","archivedBetsHelpBox","HeaderLine","showTransactionBetsDialog","transactionBetsHelpBox","ngrxReports","ReportsTitle","proxy","shouldShowDialogHeader","showBottomNav","betFinder","SearchTitle","closeAnimation","SlideOutFromTop","gestures","isPokerNativeApp","isBalanceHeaderEnabled","epcotShowBalance","scrollTargetQuerySelector","closePrevious","afterResulted","headerSelector","getColumnViewComponent","showBackNav","needsAuthentication","DEFAULT_HEADER_SELECTOR","getEventSwitcherComponent","slidesFromBottom","slidesFromRight","SlideInFromRight","popupHeaderOverride","PopupsConfig","ExternalNativeAppService","MyBetsComponentLoaderService","EventSwitcherComponentLoaderService","BetFinderConfig","_PopupInitializationService","InfoPagesService","locationService","pages","clearInfoQueryParams","IntroComponent","finally","isOnInfoPage","replaceState","Location","_InfoPagesService","IntroPagesService","introPages","localStore","daysToKeepCookie","slides","storedPageId","storeIntroPageId","IntroPagesConfig","_IntroPagesService","IntroPagesBootstrapService","infoPagesService","introPagesService","_IntroPagesBootstrapService","BetslipBarContainerComponent_Conditional_0_ng_container_0_Template","BetslipBarContainerComponent","betslipIntegration","betslipBarEnabled","barClick","myBetsClick","BetslipBarContainerComponent_Conditional_0_Template","_BetslipBarContainerComponent","BreadcrumbLayoutProvider","getState","_BreadcrumbLayoutProvider","reloadPage","CriticalErrorComponent","showError","criticalErrorHeader","CriticalErrorHeader","criticalErrorText","CriticalErrorText","CriticalErrorComponent_Conditional_0_Template","_CriticalErrorComponent","DeviceLayoutProvider","shouldHideSubNavigation","stickyHeader","_DeviceLayoutProvider","RightColumnLayoutProvider","columnLayoutService","rightColumnSizeChanged","rightColumnSize","_RightColumnLayoutProvider","RouteLayoutProvider","routeConfig","getValue","topNavigationHiddenOnSmallScreen","fixedContent","_RouteLayoutProvider","SportsProductMenuVersion","SubNavigationLayoutProvider","_SubNavigationLayoutProvider","SportsProductMenuLoaderService","SportsProductMenuModule","_SportsProductMenuLoaderService","LayoutBootstrapService","dynamicLayoutService","deviceLayoutProvider","routeLayoutProvider","breadcrumbLayoutProvider","subNavigationLayoutProvider","productMenuService","columnBootstrap","rightColumnLayoutProvider","sportsProductMenuConfig","sportsProductMenuLoaderService","productMenu","addComponent","initializeLayout","createLayout","sportsProductMenuComponent","SportListBodyComponent","FixedLayout","ResponsiveLayout","DynamicLayoutService","SportsProductMenuConfig","_LayoutBootstrapService","LazySportsConfigLoaderService","_LazySportsConfigLoaderService","OrientaionChangeService","orientationHandler","isLandscape","availHeight","availWidth","removeVirtualKeyboard","orientationSubscription","orienation","getElementsByTagName","blur","_OrientaionChangeService","MobileHelper","isAndroidNative","isAndroidNativeInternal","isSafariIos","isSafariIosInternal","isAndroidWrapper","ua","valueContainsAll","valueContainsAny","valuesToCheck","_MobileHelper","SetFeatureClassesService","mobileHelper","_SetFeatureClassesService","ToggleBottomNavService","betslipBarVisibility","layoutBottomNavVisibility","vanillaNav","vanillaNavEnabled","showComponent","hideComponent","DispatcherEvent","Expanded","expanded","BetslipBarVisibilityService","_ToggleBottomNavService","SportsWebBootstrapService","animationDisabledService","criticalErrorBootstrapService","setFeatureClassesService","orientaionChangeService","layoutBootstrapService","sportsClientConfigRefreshService","nativeEventSubscription","popupInitializationService","introPagesBootstrapService","bottomNavBootstrapService","breadcrumbsBoostrapService","schemaMarkupBoostrapService","subNavigationBootstrapService","performanceProfilingService","realityCheckService","userStateService","toggleBottomNav","rewardTokensBannerService","backgroundWorkerManagerService","settingsService","rewardTokenWidgetRegistration","lazySportsloaderService","crmPromotionProviderService","oddAcceptanceModeFilterService","launchDarklyFlagManagerService","userAccountIdCookieService","SportsClientConfigRefreshService","PerformanceProfilingService","SitemapBootstrapService","CrmPromotionProviderService","_SportsWebBootstrapService","provideSportsWebBootstrap","RouteRefreshService","refreshService","reloadNeeded","outletContext","getContext","PRIMARY_OUTLET","loadKey","takeLast","getTokenWithInjector","runInInjectionContext","FreshDataService","ChildrenOutletContexts","_RouteRefreshService","provideDataRefresh","ESportLiveButtonService","WidgetLayoutHook","liveButton","onResolve","addLiveButtonWithMultipleSports","LiveUrlParam","Esports","removeLiveButton","LiveNowLinkRegisterService","_ESportLiveButtonService","EsportsRefreshTrigger","WidgetRefreshTrigger","WidgetConfig","_EsportsRefreshTrigger","EsportsRefreshRegistrationService","refreshRegistry","WidgetRefreshService","registerTrigger","_EsportsRefreshRegistrationService","provideEsports","WebBridgeService","_WebBridgeService","provideEventBridge","SportLiveButtonService","addLiveButton","WidgetContextService","_SportLiveButtonService","SportNavigationHighlightService","resetNavigation","_SportNavigationHighlightService","WidgetRegistrationService","CompetitionHeaderWidgetComponent","CompetitionTeamsWidgetComponent","_WidgetRegistrationService","provideEventList","img_r1","MarqueeWidgetSkeletonComponent_ng_container_0_ng_container_1_ng_container_1_div_1_Template","MarqueeWidgetSkeletonComponent_ng_container_0_ng_container_1_ng_container_1_ng_template_2_Template","tile_r2","imageUrl","withoutImage_r3","MarqueeWidgetSkeletonComponent_ng_container_0_ng_container_1_ng_container_1_Template","data_r4","tiles","MarqueeWidgetSkeletonComponent_ng_container_0_ng_container_1_Template","showSkeleton","MarqueeWidgetSkeletonComponent","marqueeDataService","MarqueeWidgetDataService","WidgetSkeletonData","responseMapper","MarqueeResponseMapperService","mappedTiles","mapFixtures","widget","showSkeleton$","widgetsBeforeLoaded$","data$","combineWithPromotions","widgetClass","MarqueeWidgetSkeletonComponent_ng_container_0_Template","NgOptimizedImage","_MarqueeWidgetSkeletonComponent","provideMarqueeWidgetSkeleton","WIDGET_SKELETON","HomeNavigationHighlightService","_HomeNavigationHighlightService","HomeRefreshTrigger","_HomeRefreshTrigger","provideHome","ApiVersioningInterceptor","sportsApiVersionConfig","intercept","req","isSportsApiRequest","handle","versionedRequest","clone","headers","sportsApiVersionHeaderName","sportsApiVersion","HttpResponseBase","processHttpResponse","throwError","isCachedResponse","newApiVersion","reload","cacheControlHeader","SportsApiVersionConfig","_ApiVersioningInterceptor","ConnectionLostInterceptor","asyncRetriesCount","HttpResponse","HttpErrorResponse","responseError","maxRetriesCount","_ConnectionLostInterceptor","DuplicateBetplacementInterceptor","requestIds","preventDuplicateRequestOnFrontend","method","isBetplacementRequest","generateGuid","requestId","getRequestId","errMessage","switchMapTo","_DuplicateBetplacementInterceptor","SessionExpirationInterceptor","setFullReloadRequired","_SessionExpirationInterceptor","provideSportsHttpInterceptors","HTTP_INTERCEPTORS","LayoutRefreshProvider","FreshDataProvider","reloadNeededStream","widgetBreackpoints","LARGE_LAYOUT_BREAKPOINT","MEDIUM_LAYOUT_BREAKPOINT","baseBreakpoints","widgetPage","activeBreakpoint","findActiveBreakpoint","breakpoint","SportLobby","FreshDataType","Data","isRefreshNeeded","_LayoutRefreshProvider","provideLayout","PatchedMediaObserver","breakpointObserver","BreakpointObserver","_PatchedMediaObserver","provideMarketSubTypeLogoHideStrategy","isMediaSavedState","savedState","MediaStateSaver","save","isLocationAllowsExpand","mediaExpandState","restoreExpandState","_MediaStateSaver","MediaStateLoader","mediaInitialState","_MediaStateLoader","import_fast_json_patch","Fl","UnpinInfoService","shouldShowUnpinInfoMessage","mediaState","MediaModuleContextPage","video","pinned","mediaModuleUnpinInfoAcceptedKey","acceptUnpinInfoMessage","_UnpinInfoService","MediaEffects","cdsSubscription","bettingOfferApi","eventDetailsService","detailedFixtureFactory","eventDetailsHelper","eventMediaHelperService","unpinInfoService","columnLayoutRegister","mediaConfig","connection","storagePersister","stateLoader","isStateRestored","subscriptions","onInit$","toggleMediaModule","startFetchVideoEvents","startUserServiceEventsListener","pinEnabledStateToggle","startRestoreState","setEventId$","MediaApiActions","setEventId","mediaEventInfoSelector","eventInfo","getEvent","trackingVideoSource","actionPayload","setEventInternal","mapMediaSetEventToSetEventInternalPayload","setEvent$","setEvent","setEventInternal$","mediaStateSelector","updateSubscriptions","dispatchSetEventInternalActions","unsetEvent$","unsetEvent","removeObsoleteSubscriptions","ignoreElementsTyped","startFetchVideoEvents$","notActive$","mediaActiveSelector","skipWhile","STREAMS_CACHE_INTERVAL","fetchVideoEvents","startUserServiceEventsListener$","fetchVideoEvents$","offerMapping","scoreboardMode","sortBy","maxFixturesPerSport","getLiveStreams","streams","setVideoSwitcherContent","mapToEventSwitcherItem","acceptUnpinInfoMessage$","toggleUnpinInfoMessage","toggleUnpinInfoMessageAfterContextSwitch$","setMediaWidgetContext","Default","toggleUnpinInfoMessageAfterUnpinning$","togglePin","persistStateEpic$","setActiveTab","toggleAutoplay","restoreState","resetState","persistState","startRestoreStateEpic$","mediaPersistentState","MEDIA_PERSISTENT_STATE_KEY","eventIds","statistics","eventsMap","mapEventModelToSetEventInternalPayload","restoreState$","toggleExpand$","toggleExpand","mediaExpandedStateSelector","expandedState","layoutSize","isExpanded","ColumnSize","ExtraLarge","Large","resizeColumn","Right","handlePopulateFromStorage$","handlebreakpointChange$","breakpointChanged","ngrxOnInitEffects","noopAction","MediaEventSource","Grid","Scoreboard","toggleCollapsedState","eventsModel","sportsOffer","sportOffer","restrictedSportIds","persistedState","activeTab","toUnsubscribe","scoreboardHandler","pushData","messageType","applyPatch","fixtureScoreboard","patch","operations","updateScoreboard","scoreboardSubscription","ScoreboardSubscription","offerContext","setEventPayload","hasVideo","hasLiveVideo","hasAnimation","hasAnimationOrSimulation","hasStats","showStatsCenterButton","TrackingVideoSource","_MediaEffects","CdsPushService","EventDetailsService","DetailedFixtureFactory","EventDetailsHelperService","EventMediaHelperService","ColumnLayoutRegister","MediaConfig","StoragePersister","mediaReducer","mediaDraft","tabId","trackingSource","setAvailableExpandLocation","dropdownEvents","autoplay","playing","togglePlaying","unpinInfoVisible","isCollapsed","pinEnabled","columnType","hasActiveTab","EventDetailsColumnType","Video","addEvent","Animation","Stats","getActiveTabWithFallback","eventInfos","getActiveEvents","previousVideoEventId","switchToEventId","EventSwitcher","updateEventForEventSwitcher","updateEventForGrid","updateEventForEventDetails","pendingEsport","resetPin","hasBetradarId","eventDetailsColumnType","cloneEvent","EventModel","optionSets","optionSetId","tabsAvailabilityByEventId","isAvailable","tabInfo","mediaSetEventInternal","statsId","Soccer","MediaProviders","mediaFeatureKey","provideNativeApi","NgrxReportsEffect","actions","userActions","ngrxReportsConfig","handleSaveStateEffect$","isReportsEnabled","restrictedActions","restrictedAction","addAction","NgrxReportsService","NgrxReportsConfiguration","_NgrxReportsEffect","provideNgrxReports","numpadInitialState","focus","numpadFeatureKey","numpadReducer","NumpadActions","numpadFocus","provideNumpad","StakeInputModeStrategy","FieldStakeInputModeStrategy","provideRunAfterLcp","PrettyUrlPageViewDataProvider","segments","originalPath","setToken","forIn","kebabCase","_PrettyUrlPageViewDataProvider","PrettyUrlRouteProcessor","tryUpdateOriginalPath","stripToken","interpolate","includeName","normalizeName","toName","matcherParam","useMapping","segement","mapping","stripJoin","stripOptional","isWritable","obj","getOwnPropertyDescriptor","writable","formCoupon","_PrettyUrlRouteProcessor","RootInjector","_RootInjector","StorePersistActions","_StorePersistActions","SAVE_STATE","saveState","StorePersistEffects","stateConverter","GRID_ACTION_SCHEMA","SAVE_STORAGE_BUFFER_TIME","concatLatestFrom","RESET_TERMINAL","handleManualSaveStateEffect$","previousState","convertedState","convert","newState","_StorePersistEffects","StateConverterService","provideRootStateStorage","isUiSavedState","UiStateSaver","uiStatesThatShouldBeRestored","uiStatesThatShouldBeRestored_Authenticated","uiStatesThatShouldBeRestored_NotAuthenticated","candidateState","allowedState","_UiStateSaver","UiStateLoader","_UiStateLoader","UiManagerEffects","persister","uiStateLoader","handleStateChangedFirstEffect$","stateChanged","added","removed","handleStateChangedNextEffect$","prevState","calcDiff","_UiManagerEffects","newStates","uiStateReducer","setState","removeMultiStates","toggleState","_s","provideUiManager","SCROLL_ADAPTER_CONFIG_OVERRIDE","disableHorizontalScrollOnDesktop","provideSportsWebCore","provideNgxPopperjsOptions","provideHttpClient","withInterceptorsFromDi","STORE_PREFIX","CurrencyPipe","MarketDisplayFallbackService","SportsMarketGroupingFallbackService","CustomLoadingIndicatorService","CustomLoadingIndicatorExtendedService","LANGUAGE_SWITCHER_URLS_PROVIDER","ROUTE_PROCESSOR","SCROLL_ADAPTER_CONFIG","IMAGE_LOADER","runAfterLcpService","CURRENT_THEME_TOKEN","IS_ROBOT_TOKEN","MODAL_WINDOW_CONFIG","epcot","animatePopupDismiss","isShowMyBetsPopup","showCloseIcon","PARTICIPANT_IMAGE_CONFIG","fallbackImage","FallbackImage","EpcotDefault","AppModule","setAppInjector","Ko","Oo","provideSafariBrowserToken","imports","runtimeChecks","strictStateImmutability","strictActionImmutability","strictStateSerializability","strictActionSerializability","MatDialogModule","_AppModule","VIEW_TRANSITION_LOG_TAG","BROWSER_BACK_NAVIGATION_DETECTED_MESSAGE","NAVIGATION_HAS_NATIVE_TRANSITION_MESSAGE","BACKWARDS_CLASS","FULL_SLIDE_CLASS","EXCLUDE_NONE_CLASS","EXCLUDE_HEADER_CLASS","EXCLUDE_BOTTOM_NAV_CLASS","EXCLUDE_BETSLIP_CLASS","EXCLUDE_QUICK_BET_CLASS","VIEW_TRANSITION_EPCOT_CSS_CLASS","TRANSITION_PATHS","AC_MENU_OVERLAY_PATH","AC_MENU_PATH","AZ_MENU_PATH","EVENTS_PATH","NavigationApiBackDetectionStrategy","WindowRef","previousNavigationHistoryEntry","listenForCurrentEntryChanges","isBrowserBackNavigation","currentIndex","currentEntry","previousIndex","LOG_TAG","oncurrententrychange","navigationType","BrowserBackDetectionService","windowRef","_strategy","provideBrowserBackDetection","provideAppInitializer","browserBackDetectionInitializer","HistoryApiNativeTransitionDetectionStrategy","createRenderer","_navigationHasNativeTransition","navigationHasNativeTransition","listenForNativeTransitions","listen","hasUAVisualTransition","NavigationApiNativeTransitionDetectionStrategy","NativeTransitionDetectionService","provideNativeTransitionDetection","nativeTransitionDetectionInitializer","isNavigationToCurrentPage","incomingUrl","getCurrentNavigation","finalUrl","urlMatchingOptions","paths","matrixParams","fragment","_isNavigationToCurrentPage","debug","isNavigationToOrFromFullSlidePage","isPathInNavigation","both","getFullSlideModifier","getMiniSlideModifier","isNavigationApplicationBack","isNavigationTraversal","currentNavigation","isNavigationFlaggedBack","isNavigationToAncestorRoute","previousNavigation","trigger","extras","isBackNavigation","isAncestorRoute","onViewTransitionCreated","transition","addDynamicViewTransitionBehaviour","resetTransitionModifiers","skipTransition","viewTransitionsNativeTransitionSkippingEnabled","useNativeTransitionSkipping","viewTransitionsDirectionalityEnabled","useDirectionalTransitions","useRouteSpecificTransitions","miniSlideModifier","fullSlideModifiers","modifier","isApplicationBackNavigation","provideRouterOverride","withPreloading","SpeculativeLinkPreloader","withRouterConfig","urlUpdateStrategy","withViewTransitions","skipInitialTransition","provideRouter","setAutoFreeze","disableAnimations","documentElement","enableViewTransitionDirectionality","clientConfig","msApp","enableViewTransitionNativeTransitionSkipping","bootloader","bootstrapApplication","AppComponent","shouldCoalesceEventChangeDetection","provideVanillaCore"],"mappings":"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","x_google_ignoreList":[49,50,83,133]}