{"version":3,"file":"main-H5LRDX46.js","sources":["packages/sports/web/app/src/navigation-core/navigation-core.models.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs-slot.service.ts","packages/design-system/ui/tabsgroup/src/tabs.directives.ts","packages/design-system/ui/tabsgroup/src/tab.component.ts","packages/design-system/ui/tabsgroup/src/tabs-arrow.component.ts","packages/design-system/ui/tabsgroup/src/tabs-arrows.ts","packages/design-system/ui/tabsgroup/src/tabs.token.ts","packages/design-system/ui/tabsgroup/src/tabsgroup.component.html","packages/design-system/ui/tabsgroup/src/tabsgroup.component.ts","packages/design-system/ui/tabsgroup/src/index.ts","packages/sports/libs/common/ui/sports-themed-tab-group/src/lib/sports-themed-tabs.directive.ts","packages/design-system/ui/pill/src/pill.component.ts","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/libs/common/ui/sports-themed-pills/src/lib/link.directive.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","node_modules/@angular/router/esm2022/src/utils/collection.mjs","node_modules/@angular/router/esm2022/src/url_tree.mjs","node_modules/@angular/router/esm2022/src/utils/config.mjs","node_modules/@angular/router/esm2022/src/utils/preactivation.mjs","packages/sports/web/app/src/router/router.exports.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/deferred/component-loader.component.ts","packages/sports/web/app/src/deferred/component-proxy.directive.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/name-identifier.matcher.ts","packages/sports/web/app/src/router/pretty-url-language-switcher.provider.ts","packages/sports/web/app/src/event-list-shared/sport/standings.service.ts","packages/sports/web/app/src/competition-list/competition-list.models.ts","packages/sports/web/app/src/event-list-shared/sport/competitions/prune-helper.service.ts","packages/sports/libs/common/ui/shared/src/lib/utils.ts","packages/sports/libs/common/ui/sports-themed-notifcation-bubble/src/lib/sports-themed-notification.directive.ts","packages/sports/web/app/src/widget/common/widget-tab-bar.component.html","packages/sports/web/app/src/widget/common/widget-tab-bar.component.ts","packages/sports/web/app/src/widget/common/widget-header.component.html","packages/sports/web/app/src/widget/common/widget-header.component.ts","packages/sports/web/app/src/widget/common/widget-common.module.ts","packages/sports/web/app/src/teampages/team-pages-component-loader.service.ts","packages/sports/libs/common/ui/sports-themed-tab-group/src/lib/tab-group-with-counter/tab-group-with-counter.component.html","packages/sports/libs/common/ui/sports-themed-tab-group/src/lib/tab-group-with-counter/tab-group-with-counter.component.ts","packages/sports/web/app/src/widget/common/widget-pill.component.html","packages/sports/web/app/src/widget/common/widget-pill.component.ts","packages/sports/web/app/src/event-list-shared/sport/competitions/competition.models.ts","packages/sports/web/app/src/favourites/toggle/favourite-toggle-tracking.service.ts","packages/sports/web/app/src/favourites/toggle/favourite-toggle.component.ts","packages/sports/web/app/src/favourites/toggle/favourite-toggle.html","packages/sports/web/app/src/favourites/toggle/favourite-league-toggle.component.ts","packages/sports/web/app/src/favourites/toggle/favourite-event-toggle.component.ts","packages/sports/web/app/src/favourites/toggle/favourite-participant-toggle.component.ts","packages/sports/web/app/src/favourites/favourites.module.ts","packages/sports/web/app/src/event-list-shared/sport/tournament-groups-participants.component.html","packages/sports/web/app/src/event-list-shared/sport/tournament-groups-participants.component.ts","packages/sports/web/app/src/event-list-shared/sport/tournament-groups.component.html","packages/sports/web/app/src/event-list-shared/sport/tournament-groups.component.ts","packages/sports/web/app/src/event-list-shared/sport/reward-token-eligible-tag.component.html","packages/sports/web/app/src/event-list-shared/sport/reward-token-eligible-tag.component.ts","packages/sports/web/app/src/event-list-shared/sport/fixture-list-header.component.html","packages/sports/web/app/src/event-list-shared/sport/fixture-list-header.component.ts","packages/sports/web/app/src/event-list-shared/sport/virtual-competition.service.ts","packages/sports/web/app/src/competition-list/services/competition-list.service.ts","packages/sports/web/app/src/cds/marquee-api.service.ts","packages/sports/web/app/src/highlights-marquee/marquee-request-builder.service.ts","packages/sports/web/app/src/highlights-marquee/marquee.service.ts","packages/sports/web/app/src/cds/statistics-api.service.ts","packages/sports/web/app/src/statistics/statistics-api.service.ts","packages/sports/libs/betting-offer/feature/animation/src/animation-provider.service.ts","packages/sports/libs/betting-offer/feature/model/src/event-details-column.type.ts","packages/sports/libs/grid/media/feature/model/src/model.ts","packages/sports/web/app/src/event-details-common/event-details-helper.service.ts","packages/sports/libs/betting-offer/feature/media/src/event-media-helper.service.ts","packages/sports/libs/tracking/feature/src/tracking-video-source.ts","packages/sports/libs/grid/media/feature/state/src/actions.ts","packages/sports/libs/grid/media/feature/state/src/media.state.ts","packages/sports/libs/grid/core/feature/store/src/grid.reducer.ts","packages/sports/libs/grid/core/feature/store/src/grid-store.service.ts","packages/sports/libs/grid/core/feature/observables/src/observable-grid.ts","packages/sports/libs/grid/core/feature/observables/src/observable-grid.provider.ts","packages/sports/libs/grid/core/feature/observables/src/observable-grid.factory.ts","packages/sports/libs/tracking/feature/performance-tracker/src/performance-profiling.service.ts","packages/sports/libs/event-subscription/feature/precreated-group-commands/src/utils.ts","packages/sports/libs/event-subscription/feature/event-subscription/src/event-subscription.service.ts","packages/sports/web/app/src/event-details-common/event-details-common.utils.ts","packages/sports/web/app/src/event-details-common/event-details-common.models.ts","packages/sports/web/app/src/favourites/live-events-subscription.service.ts","packages/sports/web/app/src/favourites/live-favourites-fixtures.service.ts","packages/sports/web/app/src/teampages-core/team-pages.model.ts","packages/sports/web/app/src/teampages-core/team-pages-api.service.ts","packages/sports/web/app/src/teampages-core/team-pages-core-marquee.service.ts","packages/sports/web/app/src/teampages-core/team-pages-standing.service.ts","packages/sports/web/app/src/teampages-core/team-pages-core-grid.service.ts","packages/sports/web/app/src/teampages-core/team-pages-core.service.ts","packages/sports/web/app/src/event-list-shared/sport/competition-header-widget.component.html","packages/sports/web/app/src/event-list-shared/sport/competition-header-widget.component.ts","packages/sports/web/app/src/event-list-shared/sport/competition-teams-widget.component.html","packages/sports/web/app/src/event-list-shared/sport/competition-teams-widget.component.ts","packages/sports/web/app/src/event-list-shared/sport/services/event-list.service.ts","packages/sports/web/app/src/sitemap/sitemap-save-state.service.ts","packages/sports/web/app/src/sitemap/sitemap-state.service.ts","packages/sports/web/app/src/sitemap/sitemap.models.ts","packages/sports/web/app/src/sitemap/sitemap-state-mapper.ts","packages/sports/web/app/src/sitemap/sitemap.service.ts","packages/sports/web/app/src/sitemap/sitemap.bootstrap.service.ts","packages/sports/web/app/src/live-now-item/live-now-link-register.service.ts","packages/sports/common/betslip/modules/types/actions.ts","packages/sports/common/betslip/modules/settings/digital-actions.ts","packages/sports/common/betslip/modules/result/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.client-config.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":["export enum TopNavigationVersion {\n V2 = 'V2',\n V3 = 'V3',\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nexport interface BreadcrumbSlot {\n component: any;\n inputs?: any;\n required?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class BreadcrumbsSlotService {\n private _componentRegistered: BehaviorSubject;\n\n constructor() {\n this._componentRegistered = new BehaviorSubject(undefined);\n }\n\n setSlot(slot: BreadcrumbSlot): void {\n this._componentRegistered.next(slot);\n }\n\n clearSlot(): void {\n this._componentRegistered.next(undefined);\n }\n\n get slotRegistered$(): Observable {\n return this._componentRegistered.asObservable();\n }\n\n get registeredComponent(): BreadcrumbSlot | undefined {\n return this._componentRegistered.getValue();\n }\n}\n","import { Directive } from '@angular/core';\n\nimport { DsTabContext } from './tabs-context';\n\n@Directive({\n selector: 'ng-template[dsTabHeader]',\n standalone: true,\n})\nexport class DsTabHeader {\n static ngTemplateContextGuard(directive: DsTabHeader, context: unknown): context is DsTabContext {\n return true;\n }\n}\n\n@Directive({\n selector: 'ng-template[dsTabContent]',\n standalone: true,\n})\nexport class DsTabContent {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n OnDestroy,\n TemplateRef,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { DsTabContext } from './tabs-context';\nimport { DsTabContent, DsTabHeader } from './tabs.directives';\n\nlet _tabNameIndex = 0;\n/** Generates a random name for a tab. */\nfunction getRandomName() {\n ++_tabNameIndex; // increment the index for each tab name\n return `tab-${_tabNameIndex}`;\n}\n\n// eslint-disable-next-line @nx/workspace-component-tests-present, @nx/workspace-component-default-story\n@Component({\n selector: 'ds-tab',\n template: `\n @if (selected() && lazyContent) {\n \n }\n\n
\n \n
\n `,\n imports: [NgTemplateOutlet],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsTab implements OnDestroy {\n /**\n * The name of the tab. Must be unique within the tab.\n * If not provided, a random name is generated.\n * It will be used as the id of the tab, and can be used to select the tab.\n *\n * NOTE: This is different from the `title` property, which is the text that is displayed in the tab header.\n */\n name = input(getRandomName());\n\n /**\n * The title of the tab.\n * The title is displayed in the tab header.\n */\n title = input();\n\n /**\n * Whether the tab is disabled.\n * If the tab is disabled, it cannot be selected.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * `TemplateRef` for the tab header.\n *\n * @example\n * ```html\n * \n *
Tab header
\n *
\n * ```\n * or\n * ```html\n * \n * \n * \t
Tab header
\n *
\n *
\n * ```\n */\n @ContentChild(DsTabHeader, { read: TemplateRef })\n customHeader?: TemplateRef | null = null;\n\n /**\n * `TemplateRef` for the tab content.\n *\n * @example\n\n * ```html\n * \n *
Tab content
\n *
\n * ```\n * or\n * ```html\n * \n * \n * \t
Tab content
\n *
\n *
\n * ```\n */\n @ContentChild(DsTabContent, { read: TemplateRef }) lazyContent?: TemplateRef | null = null;\n\n selected = signal(false);\n\n public focused = signal(false);\n\n private _focusMonitor = inject(FocusMonitor);\n private _elementRef = inject(ElementRef);\n\n setFocused(focused: boolean) {\n this.focused.set(focused);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n// eslint-disable-next-line @nx/workspace-component-default-story, @nx/workspace-component-tests-present\n@Component({\n selector: 'ds-tabs-arrow',\n standalone: true,\n template: `\n \n \n \n `,\n host: {\n '[class.ds-left-arrow]': \"direction() === 'left'\",\n },\n styles: [\n `\n :host {\n display: inline-flex;\n justify-items: center;\n align-items: center;\n height: 100%;\n max-width: 100%;\n\n &.ds-left-arrow {\n transform: rotate(180deg);\n }\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsTabsScrollArrow {\n direction = input<'right' | 'left'>('right');\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { AfterContentInit, DestroyRef, Directive, ElementRef, Injector, Signal, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { Observable, auditTime, debounceTime, map, of, switchMap } from 'rxjs';\n\nimport { DsTab } from './tab.component';\n\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst INITIAL_SCROLL_DELAY = 650; // ms\n\n/**\n * For selected tab item the font weight is more text than the default state and there by in some cases\n * the right arrow is showing even when we scroll to last tab items due to increase of tab items width\n *\n * A small threshold (10px in this case) is introduced to detect minor changes\n * in the maxScrollLeft value. If the change is small enough (between 1px and 10px),\n * we assume that any last tab item is selected and there by we return true to hide right arrow.\n */\nconst SCROLL_THRESHOLD = 10;\n\n@Directive()\nexport abstract class DsTabsArrows implements AfterContentInit {\n protected _injector = inject(Injector);\n protected _destroyRef = inject(DestroyRef);\n protected _breakpointObserver = inject(BreakpointObserver);\n\n abstract _id: number;\n\n abstract _scrollable: Signal;\n abstract _activeTab: Signal;\n\n protected abstract _tabs: Signal;\n abstract _tabHeaderItemsContainer: ElementRef;\n abstract _tabHeaderItemsList: ElementRef;\n\n isSmallScreen = toSignal(\n this._breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small, Breakpoints.HandsetLandscape, Breakpoints.TabletPortrait])\n .pipe(map((res) => res.matches)),\n );\n\n /** The distance in pixels that the tab labels should be translated to the left. */\n private _scrollDistanceToLeft = signal(0);\n abstract _scrollDistance: Signal;\n abstract _scrollSpeed: Signal;\n\n private _containerWidth = signal(0);\n private _listScrollWidth = signal(0);\n\n _maxScrollDistance = computed(() => this._listScrollWidth() - this._containerWidth() || 0);\n\n // Whether the tab list can be scrolled to the left.\n showNavigationArrows = computed(() => {\n if (!this._scrollable()) {\n return false;\n }\n if (this.isSmallScreen()) {\n return false;\n }\n if (this._containerWidth() === 0) {\n return false;\n }\n if (!this.initialScrollHappened()) {\n return false; // don't show arrows until the initial scroll is fired\n }\n return this._listScrollWidth() > this._containerWidth();\n });\n\n addMobileNavScrollClass = computed(() => {\n if (!this._scrollable()) {\n return false;\n }\n return this.isSmallScreen();\n });\n\n // If the header is at the beginning of the list (scroll distance is equal to 0) then disable the prev button.\n prevBtnHidden = computed(() => this._scrollDistanceToLeft() === 0);\n\n // If the header is at the end of the list (scroll distance is equal to the maximum distance we can scroll),\n // then disable the after button.\n nextBtnHidden = computed(() => {\n if (Math.abs(this._scrollDistanceToLeft() - this._maxScrollDistance()) <= SCROLL_THRESHOLD) {\n return true;\n }\n return Math.ceil(this._scrollDistanceToLeft()) === Math.ceil(this._maxScrollDistance());\n });\n\n initialScrollHappened = signal(false);\n\n ngAfterContentInit() {\n toObservable(this._activeTab, { injector: this._injector })\n .pipe(\n switchMap((activeTab) => {\n if (this.initialScrollHappened()) {\n return of(activeTab);\n }\n return of(activeTab).pipe(auditTime(INITIAL_SCROLL_DELAY));\n }),\n takeUntilDestroyed(this._destroyRef),\n )\n .subscribe((activeTab) => {\n this.initialScrollHappened.set(true);\n this._updateScrollDistanceBasedOnName(activeTab);\n });\n\n const containerWidthSub = listenToResizeObserver([this._tabHeaderItemsContainer.nativeElement], this._injector).subscribe((res) => {\n this._containerWidth.set(res.length > 0 ? res[0].contentRect.width : 0);\n });\n\n const listItemsWidthSub = listenToResizeObserver([this._tabHeaderItemsList.nativeElement], this._injector).subscribe((res) => {\n if (this._scrollable()) {\n this._listScrollWidth.set(res.length > 0 ? res[0].contentRect.width : 0);\n } else {\n this._listScrollWidth.set(0);\n }\n });\n\n this._destroyRef.onDestroy(() => {\n containerWidthSub.unsubscribe();\n listItemsWidthSub.unsubscribe();\n });\n }\n\n /**\n * Handles click events on the tab list. Moves the header to the clicked tab.\n * @param event\n * @param direction\n */\n handleArrowClick(event: MouseEvent, direction: 'prev' | 'next') {\n const scrollAmount = (direction === 'prev' ? -1 : 1) * this._scrollDistance();\n\n return this._scrollTo(this._scrollDistanceToLeft() + scrollAmount);\n }\n\n /**\n * Scrolls the header to a given position.\n * @param position Position to which to scroll.\n * @returns Information on the current scroll distance and the maximum.\n */\n private _scrollTo(position: number) {\n const distance = Math.max(0, Math.min(this._maxScrollDistance(), position));\n this._scrollDistanceToLeft.set(distance);\n this._updateTabScrollPosition(distance);\n }\n\n /**\n * Updates the scroll distance of the tab list based on the selected name.\n * @param name\n */\n _updateScrollDistanceBasedOnName(name: string) {\n if (!this._scrollable()) {\n return;\n }\n\n const tabs = this._tabs();\n\n const selectedTab = tabs.find((x) => x.name() === name);\n\n if (tabs.length === 0 || !selectedTab) {\n return;\n }\n\n const tabHeaderItem = this._getTabElementByName(name);\n\n if (!tabHeaderItem) {\n return;\n }\n // calculate the scroll distance\n const scrollDistance = _calculateScrollDistance(this._tabHeaderItemsContainer.nativeElement, tabHeaderItem);\n if (this.showNavigationArrows()) {\n if (name === tabs[0].name()) {\n this._scrollTo(0);\n return;\n }\n\n // eslint-disable-next-line unicorn/prefer-at\n if (tabs[tabs.length - 1].name() === name) {\n this._scrollTo(this._maxScrollDistance());\n return;\n }\n\n if (tabHeaderItem && scrollDistance) {\n this._scrollTo(scrollDistance);\n }\n } else if (tabHeaderItem && this._tabHeaderItemsContainer.nativeElement.scrollTo) {\n /**\n * offsetRectLeft: This gives the left position of the tabElement relative to the viewport\n */\n const { left: offsetRectLeft } = tabHeaderItem.getBoundingClientRect();\n\n /**\n * This gets the position of the container (the scrollable area where the tabs are displayed) from the left side of the viewport.\n * Example: If the container is 30px from the left side of the viewport, this would be 30.\n */\n const { left: containerOffsetRectLeft } = this._tabHeaderItemsContainer.nativeElement.getBoundingClientRect();\n\n /**\n * _tabHeaderItemsContainer scrollLeft: This gets the current horizontal scroll position of the container.\n * It helps to ensure that we calculate the new scroll position relative to the current one.\n * Example: If the container has been scrolled 100px to the right, container.scrollLeft would return 100.\n */\n const containerScrollLeft = this._tabHeaderItemsContainer.nativeElement.scrollLeft;\n\n /**\n * container.clientWidth gives the total width of the container's visible area.\n * tabElement.clientWidth gives the width of the tab element.\n * The difference between the two (container.clientWidth - tabElement.clientWidth) gives the remaining space on either side of the tab. Dividing this by 2 distributes the extra space equally on both sides to center the tab.\n * Example: If the container's width is 600px and the tab's width is 100px, the result is (600 - 100) / 2 = 250px.\n * This value ensures the tab is positioned in the center of the container.\n */\n const targetScroll =\n containerScrollLeft +\n offsetRectLeft -\n containerOffsetRectLeft -\n (this._tabHeaderItemsContainer.nativeElement.clientWidth - tabHeaderItem.clientWidth) / 2;\n\n // Scroll into view centered\n this._tabHeaderItemsContainer.nativeElement.scrollTo({ left: targetScroll, behavior: 'smooth' });\n }\n }\n\n _getTabElementByName(name: string): HTMLElement | null {\n // [id]=\"'ds-tab-id-' + id + '-' + $name\"\n const id = `#ds-tab-id-${this._id}-${name}`;\n return this._tabHeaderItemsList.nativeElement.querySelector(id);\n }\n\n /**\n * Updates the tab list scroll position to move the active tab into view.\n * @param scrollDistance\n */\n _updateTabScrollPosition(scrollDistance: number) {\n let distance = 0;\n\n if (this.showNavigationArrows()) {\n if (!this._tabHeaderItemsContainer || !this._tabHeaderItemsList) {\n return;\n }\n distance = -scrollDistance;\n } else {\n distance = 0;\n }\n\n // if we show the navigation arrows we want to scroll it based on the distance provided otherwise keep it at 0;\n this._tabHeaderItemsList.nativeElement.style.transform = `translateX(${Math.round(distance)}px)`;\n }\n}\n\n/**\n * Calculates the scroll distance based on a selected element.\n */\nfunction _calculateScrollDistance(containerElement: HTMLElement, tabHeaderItem: HTMLElement): number | undefined {\n const { left: offsetRectLeft, right: offsetRectRight } = tabHeaderItem.getBoundingClientRect();\n // TODO: Make this faster, cache containerElement.getBoundingClientRect()\n const { left: containerOffsetRectLeft, right: containerOffsetRectRight } = containerElement.getBoundingClientRect();\n const { offsetLeft, offsetWidth } = tabHeaderItem;\n const { offsetLeft: containerOffsetLeft, offsetWidth: containerWidth } = containerElement;\n\n let containerCenterPosition;\n // calculate target center position\n const targetCenterPosition = offsetLeft + offsetWidth / 2;\n // arrowSize size is taken by addition of arrow button width and max 8px padding to right and left\n const arrowSize = 32;\n if (offsetRectLeft < containerOffsetRectLeft + arrowSize || offsetRectRight > containerOffsetRectRight - arrowSize) {\n // calculate center of the container viewport\n return (containerCenterPosition = targetCenterPosition - (containerOffsetLeft + containerWidth / 2));\n }\n return containerCenterPosition;\n}\n\n/**\n * Listen to resize observer on a list of elements\n * @param elements\n * @param injector\n */\nfunction listenToResizeObserver(elements: HTMLElement[], injector: Injector): Observable {\n const destroyRef = injector.get(DestroyRef);\n\n const resizeObservable = new Observable((observer) => {\n const resizeObserver = new ResizeObserver((res) => {\n observer.next(res);\n });\n\n for (const el of elements) {\n resizeObserver.observe(el);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n });\n\n // We need to debounce resize events because the alignment logic is expensive.\n // If someone animates the width of tabs, we don't want to realign on every animation frame.\n // Once we haven't seen any more resize events in the last 32ms (~2 animation frames) we can\n // re-align.\n return resizeObservable.pipe(debounceTime(32), takeUntilDestroyed(destroyRef));\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport type TabsOptions = {\n /*\n * Whether the tabs should take up the full width of the container.\n */\n fullWidthTabs: boolean;\n defaultScrollDistance: number;\n defaultScrollSpeed: string;\n};\n\nconst scrollDistance = 200;\n\nconst DEFAULT_TAB_OPTIONS: TabsOptions = {\n fullWidthTabs: false,\n defaultScrollDistance: scrollDistance,\n defaultScrollSpeed: 'faster',\n};\n\nexport const DS_TAB_OPTIONS = new InjectionToken('TAB_OPTIONS', {\n providedIn: 'root',\n factory: () => DEFAULT_TAB_OPTIONS,\n});\n\nexport const provideTabOptions = (options: Partial) =>\n ({\n provide: DS_TAB_OPTIONS,\n useValue: { ...DEFAULT_TAB_OPTIONS, ...options },\n }) satisfies Provider;\n","
\n \n
    \n @for (tab of _tabs(); track tab.name()) {\n \n
    \n @if (tab.customHeader) {\n \n } @else if (tab.title()) {\n {{ tab.title() }}\n }\n
    \n \n }\n
\n
\n\n \n\n @if (showNavigationArrows()) {\n \n @if (dsTabsLeftArrowTpl) {\n \n } @else {\n \n }\n \n \n @if (dsTabsRightArrowTpl) {\n \n } @else {\n \n }\n \n }\n\n\n
\n \n
\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DsTab } from './tab.component';\nimport { DsTabsScrollArrow } from './tabs-arrow.component';\nimport { DsTabsArrows } from './tabs-arrows';\nimport { DS_TAB_OPTIONS } from './tabs.token';\nimport { TabsGroupIndicatorType, TabsGroupSizesType, TabsGroupVariantsType } from './tabsgroup.types';\n\nlet uniqueTabId = 0;\nfunction getTabId() {\n return ++uniqueTabId;\n}\n\n@Component({\n selector: 'ds-tabs-group',\n templateUrl: 'tabsgroup.component.html',\n host: {\n '[class]': `hostClass`,\n '[class.ds-tabs-inverse]': 'inverse',\n },\n imports: [NgTemplateOutlet, DsTabsScrollArrow],\n styleUrl: './tabsgroup.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsTabsGroup extends DsTabsArrows implements AfterViewInit, AfterContentInit, OnDestroy {\n private tabOptions = inject(DS_TAB_OPTIONS);\n private _focusMonitor = inject(FocusMonitor);\n\n // Define scrollDistance as signal inputs with default values\n _scrollDistance = signal(this.tabOptions.defaultScrollDistance);\n\n // Default scroll speed, can be adjusted as needed\n _scrollSpeed = signal(this.tabOptions.defaultScrollSpeed);\n\n @Input() set scrollDistance(value: number) {\n this._scrollDistance.set(value);\n }\n\n @Input() set scrollSpeed(value: string) {\n this._scrollSpeed.set(value);\n }\n\n /**\n * The active tab.\n * This is the tab that is currently selected.\n * We use a signal to make sure that the active tab is updated when the tab is selected.\n *\n * @internal\n */\n _activeTab = signal('');\n\n /**\n * The name of the active tab.\n * If not provided, the first tab will be selected.\n *\n * This will be the name of the tab that is selected.\n */\n @Input() set activeTab(value: string | number) {\n // TODO: convert to signal inputs when available on Storybook\n this._activeTab.set(value.toString());\n this.selectTab(value.toString());\n }\n\n /**\n * Event emitted when the active tab is changed.\n * The event payload is the name of the active tab.\n */\n @Output() activeTabChanged = new EventEmitter();\n\n /**\n * Event emitted when a tab is clicked.\n * The event payload is an object with the name of the tab and the event that triggered the click.\n */\n @Output() tabChanged = new EventEmitter<{ name: string; event: MouseEvent }>();\n\n /** The size of the tabs. (small or large) */\n @Input() size: TabsGroupSizesType = 'large';\n\n /** The variant of the tabs. (vertical or horizontal) */\n @Input() variant: TabsGroupVariantsType = 'vertical';\n\n /** The indicator of the tabs. (underline or fill) */\n @Input() indicator: TabsGroupIndicatorType = 'underline';\n\n /**\n * Use inverse style for tabs when set to true.\n */\n @Input({ transform: booleanAttribute }) inverse = false;\n\n /**\n * The aria label for the previous navigation arrow.\n * This is used by screen readers to announce the navigation arrow.\n */\n @Input() ariaLabelNavigationArrowPrev = 'prev';\n\n /**\n * The aria label for the next navigation arrow.\n * This is used by screen readers to announce the navigation arrow.\n */\n @Input() ariaLabelNavigationArrowNext = 'next';\n\n /**\n * The id of the tabs group.\n * This is used to generate unique ids for the tabs.\n *\n * @internal\n */\n _id = getTabId();\n\n /**\n * Whether the tabs should be scrollable.\n * This is used to enable or disable the navigation arrows.\n * @internal\n */\n _scrollable = signal(true);\n\n /*\n * We want to have navigation arrows enabled by default, and disable them only when needed.\n */\n @Input({ transform: booleanAttribute }) set scrollable(value: boolean) {\n // TODO: convert to signal inputs when available on Storybook\n this._scrollable.set(value);\n }\n\n /*\n * Whether the tabs should take up the full width of the container.\n *\n * The default value is based on the tab options which can be configured using the `provideTabOptions` function.\n */\n @Input({ transform: booleanAttribute }) fullWidthTabs: boolean = this.tabOptions.fullWidthTabs;\n\n /**\n * The tabs.\n * This is a list of tabs that are used to render the tabs.\n * Each tab is a `DsTab` component.\n * Example:\n * ```html\n * \n * Tab 1\n * Tab 2\n * \n * ```\n */\n @ContentChildren(DsTab) tabs: QueryList | undefined;\n\n protected _tabs = signal([]);\n\n /**\n * `TemplateRef` for the left arrow.\n *\n * @example\n * ```html\n * \n * ...\n * <- \n * \n * ```\n */\n @ContentChild('dsTabsLeftArrow') dsTabsLeftArrowTpl?: TemplateRef;\n\n /**\n * `TemplateRef` for the right arrow.\n *\n * @example\n * ```html\n * \n * ...\n * -> \n * \n * ```\n */\n @ContentChild('dsTabsRightArrow') dsTabsRightArrowTpl?: TemplateRef;\n\n /**\n * The tab header items container.\n * This is the container that holds the tab header list.\n *\n * @internal\n */\n @ViewChild('tabHeaderItemsContainer', { static: true })\n _tabHeaderItemsContainer!: ElementRef;\n\n /**\n * The tab header items list.\n * This is the list that holds the tab header items.\n *\n * @internal\n */\n @ViewChild('tabHeaderItemsList', { static: true })\n _tabHeaderItemsList!: ElementRef;\n\n @ViewChildren('tabItem') tabItems?: QueryList;\n\n ngAfterViewInit(): void {\n if (this.tabItems) {\n this.tabItems.forEach((option, index) => {\n this._focusMonitor.monitor(option.nativeElement, true).subscribe((focusOrigin) => {\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this._tabs()[index].setFocused(true);\n } else if (!focusOrigin) {\n this._tabs()[index].setFocused(false);\n }\n });\n });\n }\n }\n\n override ngAfterContentInit() {\n if (this.tabs) {\n this.tabs.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n const tabs = this.tabs?.toArray() ?? [];\n this._tabs.set(tabs);\n\n // if there are no tabs, do nothing\n if (tabs.length === 0) {\n return;\n }\n\n // check if the selected tab still exists\n const selectedTab = this.selectedTab();\n if (!selectedTab) {\n // try to select the previously selected tab name if it exists\n if (this._activeTab()) {\n this.selectTab(this._activeTab());\n } else {\n // select the first tab if the selected tab does not exist\n this.selectTab(tabs[0].name());\n }\n }\n });\n\n this._tabs.set(this.tabs.toArray() ?? []);\n\n this.selectTab(this._activeTab() || this.tabs.first.name());\n\n super.ngAfterContentInit();\n }\n }\n\n /**\n * Selects a tab by name.\n * This will set the `selected` property of the tab to `true` and emit the `activeTabChanged` event.\n *\n * @param name - The name of the tab to select.\n * @param event - The event that triggered the selection.\n */\n selectTab(name: string, event?: MouseEvent) {\n this._activeTab.set(name);\n\n this.tabs?.forEach((tab) => {\n tab.selected.set(tab.name() === name);\n });\n\n this.activeTabChanged.emit(name);\n\n if (event) {\n this.tabChanged.emit({ name, event });\n }\n }\n\n /**\n * Returns the selected tab.\n * This will return the first tab that is selected.\n *\n * @returns The selected tab.\n * @internal\n */\n private selectedTab(): DsTab | undefined {\n return this.tabs?.find((tab) => tab.selected());\n }\n\n /**\n * Returns the host class based on the size and indicator.\n *\n * @returns The host class.\n * @internal\n */\n get hostClass() {\n const sizeClass = this.size === 'small' ? 'ds-tabs-small' : 'ds-tabs-large';\n const indicatorClass = this.indicator === 'underline' ? 'ds-tab-underline' : 'ds-tab-fill';\n\n return `ds-tabs-group ${sizeClass} ${indicatorClass}`;\n }\n\n get tabHeaderItemsClass() {\n return `ds-tab-header-items ds-tab-items-scroll-speed-${this._scrollSpeed()}`;\n }\n\n focusOption(tab: DsTab, index: number) {\n const focusOption = this.tabItems?.get(index);\n if (focusOption) {\n this._tabs().forEach((tabOptionObj) => {\n tabOptionObj.setFocused(false);\n });\n tab.setFocused(true);\n this._focusMonitor.focusVia(focusOption.nativeElement, 'keyboard');\n }\n }\n\n onKeydown(event: KeyboardEvent) {\n const { key } = event;\n const tabsList = this._tabs();\n const currentIndex = tabsList.findIndex((tab) => tab.focused());\n let newIndex: number | undefined;\n const nextFocusTabIndex = this.getNextFocusTabIndex(key, currentIndex);\n if (key === 'ArrowRight') {\n newIndex = (currentIndex + nextFocusTabIndex) % tabsList.length;\n } else if (key === 'ArrowLeft') {\n newIndex = (currentIndex - nextFocusTabIndex + tabsList.length) % tabsList.length;\n } else if ((key === ' ' || key === 'Enter') && currentIndex !== -1) {\n this.selectTab(tabsList[currentIndex].name());\n }\n\n if (newIndex !== undefined) {\n event.preventDefault();\n const newTab = tabsList[newIndex];\n if (newTab) {\n this.focusOption(newTab, newIndex);\n }\n }\n }\n\n getNextFocusTabIndex(key: string, currentIndex: number): number {\n if (key === 'ArrowRight' && this._tabs()[currentIndex + 1]) {\n return this._tabs()[currentIndex + 1].disabled() ? 2 : 1;\n } else if (key === 'ArrowLeft' && this._tabs()[currentIndex - 1]) {\n return this._tabs()[currentIndex - 1].disabled() ? 2 : 1;\n }\n return 1;\n }\n\n ngOnDestroy() {\n if (this.tabItems) {\n this.tabItems.forEach((option) => this._focusMonitor.stopMonitoring(option));\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DsTab } from './tab.component';\nimport { DsTabsScrollArrow } from './tabs-arrow.component';\nimport { DsTabContent, DsTabHeader } from './tabs.directives';\nimport { DsTabsGroup } from './tabsgroup.component';\n\nexport { DsTabsGroup } from './tabsgroup.component';\nexport { DsTab } from './tab.component';\n\nexport { DsTabsScrollArrow } from './tabs-arrow.component';\n\nexport { DsTabContent, DsTabHeader } from './tabs.directives';\nexport { DS_TAB_OPTIONS, TabsOptions, provideTabOptions } from './tabs.token';\n\nexport * from './tabsgroup.types';\n\n@NgModule({\n imports: [DsTab, DsTabsGroup, DsTabContent, DsTabHeader, DsTabsScrollArrow],\n exports: [DsTab, DsTabsGroup, DsTabContent, DsTabHeader, DsTabsScrollArrow],\n})\nexport class DsTabsModule {}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\n\nimport { ThemeInverse, injectCurrentTheme } from '@frontend/sports/common/ui/shared';\nimport { DsTabsGroup } from '@frontend/ui/tabsgroup';\n\nimport { ThemeIndicator, ThemeSize, ThemeVariant } from './types';\n\n@Directive({\n selector: '[msThemedTabs]',\n standalone: true,\n})\nexport class SportsThemedTabsDirective implements OnInit {\n @Input() themedIndicator?: ThemeIndicator;\n @Input() themedSize?: ThemeSize;\n @Input() themedVariant?: ThemeVariant;\n @Input() themedInverse?: ThemeInverse;\n currentTheme = injectCurrentTheme();\n tabGroup: DsTabsGroup = inject(DsTabsGroup, {\n self: true,\n });\n\n ngOnInit(): void {\n const indicator = this.themedIndicator?.[this.currentTheme];\n if (indicator) {\n this.tabGroup.indicator = indicator;\n }\n\n const variant = this.themedVariant?.[this.currentTheme];\n if (variant) {\n this.tabGroup.variant = variant;\n }\n\n const size = this.themedSize?.[this.currentTheme];\n if (size) {\n this.tabGroup.size = size;\n }\n\n const inverse = this.themedInverse?.[this.currentTheme];\n if (inverse) {\n this.tabGroup.inverse = inverse.isInverse;\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n Input,\n QueryList,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { DS_ATOMS } from '@frontend/ui/shared';\n\nexport const DS_PILL_VARIANTS_ARRAY = ['current', 'subtle', 'strong'] as const;\nexport type DsPillVariant = (typeof DS_PILL_VARIANTS_ARRAY)[number];\n\nexport const DS_PILL_SIZE_ARRAY = ['small', 'medium'] as const;\nexport type DsPillSize = (typeof DS_PILL_SIZE_ARRAY)[number];\n\n@Component({\n selector: '[ds-pill]',\n template: `\n \n \n \n \n \n \n `,\n host: {\n 'class': 'ds-pill',\n '[class]': '[\"ds-pill-\" + variant, \"ds-pill-\" + size]',\n '[class.ds-pill-selected]': 'selected',\n '[class.ds-pill-disabled]': 'disabled',\n '[attr.disabled]': 'disabled ? true : null',\n '[class.ds-pill-rounded-padding]': 'roundedPadding()',\n '[class.ds-pill-inverse]': 'inverse',\n '[attr.aria-disabled]': 'disabled',\n },\n styleUrl: 'pill.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsPill implements AfterContentInit {\n private destroyRef = inject(DestroyRef);\n\n @Input({ transform: booleanAttribute }) selected = false;\n\n @Input() variant: DsPillVariant = 'current';\n\n @Input() size: DsPillSize = 'medium';\n\n @Input({ transform: booleanAttribute }) disabled = false;\n\n @Input({ transform: booleanAttribute }) inverse = false;\n\n //TODO use signal-based content queries\n /**\n * Retrieves and holds the list of child components or directives that implement the `DsAtoms` interface when\n * they are projected into the current component's content slots and are instances of the injection token `DS_ATOMS`.\n * If there are any children that implement `DsAtoms` interface are present, the host class `ds-pill-rounded-padding`\n * is added to the `ds-pill` component.\n */\n @ContentChildren(DS_ATOMS) dsAtoms?: QueryList;\n\n roundedPadding = signal(false);\n\n ngAfterContentInit() {\n this.setRoundedPadding();\n this.dsAtoms?.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.setRoundedPadding();\n });\n }\n\n private setRoundedPadding() {\n const includesNotificationBubble = this.dsAtoms?.some((item) => item === 'ds-notification-bubble');\n this.roundedPadding.set(!!includesNotificationBubble);\n }\n}\n","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})\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})\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","import { Directive, ElementRef, HostListener, Input, OnChanges, OnInit, Renderer2, booleanAttribute, inject } from '@angular/core';\n\nimport { injectIsRobot } from '@frontend/sports/common/ui/shared';\n\nexport type NavigationData = { url: string };\n\n@Directive({\n selector: '[msLink]',\n standalone: true,\n})\nexport class LinkDirective implements OnInit, OnChanges {\n @Input({ required: true }) msLink!: NavigationData | null;\n @Input({ transform: booleanAttribute }) disabled = false;\n\n readonly renderer = inject(Renderer2);\n readonly element = inject(ElementRef);\n private readonly isRobot = injectIsRobot();\n nativeElement = this.element.nativeElement as HTMLElement | null;\n\n ngOnInit(): void {\n const tagName = this.nativeElement?.tagName.toLowerCase();\n if (tagName !== 'a') {\n throw new Error('[msLink] can only be used with an anchor tag');\n }\n }\n\n ngOnChanges() {\n this.updateAnchorLink();\n }\n\n @HostListener('click')\n onClick(event: Event) {\n if (this.disabled) {\n return false;\n }\n\n if (this.isRobot) {\n event.stopPropagation();\n return true;\n }\n return false;\n }\n\n updateAnchorLink() {\n if (!this.isRobot) {\n return;\n }\n if (this.msLink) {\n this.renderer.setAttribute(this.nativeElement, 'href', this.msLink.url);\n } else {\n this.renderer.removeAttribute(this.nativeElement, 'href');\n }\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})\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})\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})\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})\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})\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})\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})\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})\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})\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})\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 standalone: true,\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 standalone: true,\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","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport { ɵisPromise as isPromise } from '@angular/core';\nimport { from, isObservable, of } from 'rxjs';\nexport function shallowEqualArrays(a, b) {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; ++i) {\n if (!shallowEqual(a[i], b[i])) return false;\n }\n return true;\n}\nexport function shallowEqual(a, b) {\n // While `undefined` should never be possible, it would sometimes be the case in IE 11\n // and pre-chromium Edge. The check below accounts for this edge case.\n const k1 = a ? getDataKeys(a) : undefined;\n const k2 = b ? getDataKeys(b) : undefined;\n if (!k1 || !k2 || k1.length != k2.length) {\n return false;\n }\n let key;\n for (let i = 0; i < k1.length; i++) {\n key = k1[i];\n if (!equalArraysOrString(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Gets the keys of an object, including `symbol` keys.\n */\nexport function getDataKeys(obj) {\n return [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];\n}\n/**\n * Test equality for arrays of strings or a string.\n */\nexport function equalArraysOrString(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n const aSorted = [...a].sort();\n const bSorted = [...b].sort();\n return aSorted.every((val, index) => bSorted[index] === val);\n } else {\n return a === b;\n }\n}\n/**\n * Return the last element of an array.\n */\nexport function last(a) {\n return a.length > 0 ? a[a.length - 1] : null;\n}\nexport function wrapIntoObservable(value) {\n if (isObservable(value)) {\n return value;\n }\n if (isPromise(value)) {\n // Use `Promise.resolve()` to wrap promise-like instances.\n // Required ie when a Resolver returns a AngularJS `$q` promise to correctly trigger the\n // change detection.\n return from(Promise.resolve(value));\n }\n return of(value);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport { Injectable, ɵRuntimeError as RuntimeError } from '@angular/core';\nimport { convertToParamMap, PRIMARY_OUTLET } from './shared';\nimport { equalArraysOrString, shallowEqual } from './utils/collection';\nimport * as i0 from \"@angular/core\";\nconst pathCompareMap = {\n 'exact': equalSegmentGroups,\n 'subset': containsSegmentGroup\n};\nconst paramCompareMap = {\n 'exact': equalParams,\n 'subset': containsParams,\n 'ignored': () => true\n};\nexport function containsTree(container, containee, options) {\n return pathCompareMap[options.paths](container.root, containee.root, options.matrixParams) && paramCompareMap[options.queryParams](container.queryParams, containee.queryParams) && !(options.fragment === 'exact' && container.fragment !== containee.fragment);\n}\nfunction equalParams(container, containee) {\n // TODO: This does not handle array params correctly.\n return shallowEqual(container, containee);\n}\nfunction equalSegmentGroups(container, containee, matrixParams) {\n if (!equalPath(container.segments, containee.segments)) return false;\n if (!matrixParamsMatch(container.segments, containee.segments, matrixParams)) {\n return false;\n }\n if (container.numberOfChildren !== containee.numberOfChildren) return false;\n for (const c in containee.children) {\n if (!container.children[c]) return false;\n if (!equalSegmentGroups(container.children[c], containee.children[c], matrixParams)) return false;\n }\n return true;\n}\nfunction containsParams(container, containee) {\n return Object.keys(containee).length <= Object.keys(container).length && Object.keys(containee).every(key => equalArraysOrString(container[key], containee[key]));\n}\nfunction containsSegmentGroup(container, containee, matrixParams) {\n return containsSegmentGroupHelper(container, containee, containee.segments, matrixParams);\n}\nfunction containsSegmentGroupHelper(container, containee, containeePaths, matrixParams) {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths)) return false;\n if (containee.hasChildren()) return false;\n if (!matrixParamsMatch(current, containeePaths, matrixParams)) return false;\n return true;\n } else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths)) return false;\n if (!matrixParamsMatch(container.segments, containeePaths, matrixParams)) return false;\n for (const c in containee.children) {\n if (!container.children[c]) return false;\n if (!containsSegmentGroup(container.children[c], containee.children[c], matrixParams)) {\n return false;\n }\n }\n return true;\n } else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current)) return false;\n if (!matrixParamsMatch(container.segments, current, matrixParams)) return false;\n if (!container.children[PRIMARY_OUTLET]) return false;\n return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next, matrixParams);\n }\n}\nfunction matrixParamsMatch(containerPaths, containeePaths, options) {\n return containeePaths.every((containeeSegment, i) => {\n return paramCompareMap[options](containerPaths[i].parameters, containeeSegment.parameters);\n });\n}\n/**\n * @description\n *\n * Represents the parsed URL.\n *\n * Since a router state is a tree, and the URL is nothing but a serialized state, the URL is a\n * serialized tree.\n * UrlTree is a data structure that provides a lot of affordances in dealing with URLs\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree =\n * router.parseUrl('/team/33/(user/victor//support:help)?debug=true#fragment');\n * const f = tree.fragment; // return 'fragment'\n * const q = tree.queryParams; // returns {debug: 'true'}\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments; // returns 2 segments 'team' and '33'\n * g.children[PRIMARY_OUTLET].segments; // returns 2 segments 'user' and 'victor'\n * g.children['support'].segments; // return 1 segment 'help'\n * }\n * }\n * ```\n *\n * @publicApi\n */\nexport class UrlTree {\n constructor(/** The root segment group of the URL tree */\n root = new UrlSegmentGroup([], {}), /** The query params of the URL */\n queryParams = {}, /** The fragment of the URL */\n fragment = null) {\n this.root = root;\n this.queryParams = queryParams;\n this.fragment = fragment;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (root.segments.length > 0) {\n throw new RuntimeError(4015 /* RuntimeErrorCode.INVALID_ROOT_URL_SEGMENT */, 'The root `UrlSegmentGroup` should not contain `segments`. ' + 'Instead, these segments belong in the `children` so they can be associated with a named outlet.');\n }\n }\n }\n get queryParamMap() {\n this._queryParamMap ??= convertToParamMap(this.queryParams);\n return this._queryParamMap;\n }\n /** @docsNotRequired */\n toString() {\n return DEFAULT_SERIALIZER.serialize(this);\n }\n}\n/**\n * @description\n *\n * Represents the parsed URL segment group.\n *\n * See `UrlTree` for more information.\n *\n * @publicApi\n */\nexport class UrlSegmentGroup {\n constructor(/** The URL segments of this group. See `UrlSegment` for more information */\n segments, /** The list of children of this group */\n children) {\n this.segments = segments;\n this.children = children;\n /** The parent node in the url tree */\n this.parent = null;\n Object.values(children).forEach(v => v.parent = this);\n }\n /** Whether the segment has child segments */\n hasChildren() {\n return this.numberOfChildren > 0;\n }\n /** Number of child segments */\n get numberOfChildren() {\n return Object.keys(this.children).length;\n }\n /** @docsNotRequired */\n toString() {\n return serializePaths(this);\n }\n}\n/**\n * @description\n *\n * Represents a single URL segment.\n *\n * A UrlSegment is a part of a URL between the two slashes. It contains a path and the matrix\n * parameters associated with the segment.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree = router.parseUrl('/team;id=33');\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments;\n * s[0].path; // returns 'team'\n * s[0].parameters; // returns {id: 33}\n * }\n * }\n * ```\n *\n * @publicApi\n */\nexport class UrlSegment {\n constructor(/** The path part of a URL segment */\n path, /** The matrix parameters associated with a segment */\n parameters) {\n this.path = path;\n this.parameters = parameters;\n }\n get parameterMap() {\n this._parameterMap ??= convertToParamMap(this.parameters);\n return this._parameterMap;\n }\n /** @docsNotRequired */\n toString() {\n return serializePath(this);\n }\n}\nexport function equalSegments(as, bs) {\n return equalPath(as, bs) && as.every((a, i) => shallowEqual(a.parameters, bs[i].parameters));\n}\nexport function equalPath(as, bs) {\n if (as.length !== bs.length) return false;\n return as.every((a, i) => a.path === bs[i].path);\n}\nexport function mapChildrenIntoArray(segment, fn) {\n let res = [];\n Object.entries(segment.children).forEach(([childOutlet, child]) => {\n if (childOutlet === PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n Object.entries(segment.children).forEach(([childOutlet, child]) => {\n if (childOutlet !== PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n return res;\n}\n/**\n * @description\n *\n * Serializes and deserializes a URL string into a URL tree.\n *\n * The url serialization strategy is customizable. You can\n * make all URLs case insensitive by providing a custom UrlSerializer.\n *\n * See `DefaultUrlSerializer` for an example of a URL serializer.\n *\n * @publicApi\n */\nexport let UrlSerializer = /*#__PURE__*/(() => {\n class UrlSerializer {\n static {\n this.ɵfac = function UrlSerializer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || UrlSerializer)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UrlSerializer,\n factory: () => (() => new DefaultUrlSerializer())(),\n providedIn: 'root'\n });\n }\n }\n return UrlSerializer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @description\n *\n * A default implementation of the `UrlSerializer`.\n *\n * Example URLs:\n *\n * ```\n * /inbox/33(popup:compose)\n * /inbox/33;open=true/messages/44\n * ```\n *\n * DefaultUrlSerializer uses parentheses to serialize secondary segments (e.g., popup:compose), the\n * colon syntax to specify the outlet, and the ';parameter=value' syntax (e.g., open=true) to\n * specify route specific parameters.\n *\n * @publicApi\n */\nexport class DefaultUrlSerializer {\n /** Parses a url into a `UrlTree` */\n parse(url) {\n const p = new UrlParser(url);\n return new UrlTree(p.parseRootSegment(), p.parseQueryParams(), p.parseFragment());\n }\n /** Converts a `UrlTree` into a url */\n serialize(tree) {\n const segment = `/${serializeSegment(tree.root, true)}`;\n const query = serializeQueryParams(tree.queryParams);\n const fragment = typeof tree.fragment === `string` ? `#${encodeUriFragment(tree.fragment)}` : '';\n return `${segment}${query}${fragment}`;\n }\n}\nconst DEFAULT_SERIALIZER = /*#__PURE__*/new DefaultUrlSerializer();\nexport function serializePaths(segment) {\n return segment.segments.map(p => serializePath(p)).join('/');\n}\nfunction serializeSegment(segment, root) {\n if (!segment.hasChildren()) {\n return serializePaths(segment);\n }\n if (root) {\n const primary = segment.children[PRIMARY_OUTLET] ? serializeSegment(segment.children[PRIMARY_OUTLET], false) : '';\n const children = [];\n Object.entries(segment.children).forEach(([k, v]) => {\n if (k !== PRIMARY_OUTLET) {\n children.push(`${k}:${serializeSegment(v, false)}`);\n }\n });\n return children.length > 0 ? `${primary}(${children.join('//')})` : primary;\n } else {\n const children = mapChildrenIntoArray(segment, (v, k) => {\n if (k === PRIMARY_OUTLET) {\n return [serializeSegment(segment.children[PRIMARY_OUTLET], false)];\n }\n return [`${k}:${serializeSegment(v, false)}`];\n });\n // use no parenthesis if the only child is a primary outlet route\n if (Object.keys(segment.children).length === 1 && segment.children[PRIMARY_OUTLET] != null) {\n return `${serializePaths(segment)}/${children[0]}`;\n }\n return `${serializePaths(segment)}/(${children.join('//')})`;\n }\n}\n/**\n * Encodes a URI string with the default encoding. This function will only ever be called from\n * `encodeUriQuery` or `encodeUriSegment` as it's the base set of encodings to be used. We need\n * a custom encoding because encodeURIComponent is too aggressive and encodes stuff that doesn't\n * have to be encoded per https://url.spec.whatwg.org.\n */\nfunction encodeUriString(s) {\n return encodeURIComponent(s).replace(/%40/g, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',');\n}\n/**\n * This function should be used to encode both keys and values in a query string key/value. In\n * the following URL, you need to call encodeUriQuery on \"k\" and \"v\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nexport function encodeUriQuery(s) {\n return encodeUriString(s).replace(/%3B/gi, ';');\n}\n/**\n * This function should be used to encode a URL fragment. In the following URL, you need to call\n * encodeUriFragment on \"f\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nexport function encodeUriFragment(s) {\n return encodeURI(s);\n}\n/**\n * This function should be run on any URI segment as well as the key and value in a key/value\n * pair for matrix params. In the following URL, you need to call encodeUriSegment on \"html\",\n * \"mk\", and \"mv\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nexport function encodeUriSegment(s) {\n return encodeUriString(s).replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/%26/gi, '&');\n}\nexport function decode(s) {\n return decodeURIComponent(s);\n}\n// Query keys/values should have the \"+\" replaced first, as \"+\" in a query string is \" \".\n// decodeURIComponent function will not decode \"+\" as a space.\nexport function decodeQuery(s) {\n return decode(s.replace(/\\+/g, '%20'));\n}\nexport function serializePath(path) {\n return `${encodeUriSegment(path.path)}${serializeMatrixParams(path.parameters)}`;\n}\nfunction serializeMatrixParams(params) {\n return Object.entries(params).map(([key, value]) => `;${encodeUriSegment(key)}=${encodeUriSegment(value)}`).join('');\n}\nfunction serializeQueryParams(params) {\n const strParams = Object.entries(params).map(([name, value]) => {\n return Array.isArray(value) ? value.map(v => `${encodeUriQuery(name)}=${encodeUriQuery(v)}`).join('&') : `${encodeUriQuery(name)}=${encodeUriQuery(value)}`;\n }).filter(s => s);\n return strParams.length ? `?${strParams.join('&')}` : '';\n}\nconst SEGMENT_RE = /^[^\\/()?;#]+/;\nfunction matchSegments(str) {\n const match = str.match(SEGMENT_RE);\n return match ? match[0] : '';\n}\nconst MATRIX_PARAM_SEGMENT_RE = /^[^\\/()?;=#]+/;\nfunction matchMatrixKeySegments(str) {\n const match = str.match(MATRIX_PARAM_SEGMENT_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_RE = /^[^=?&#]+/;\n// Return the name of the query param at the start of the string or an empty string\nfunction matchQueryParams(str) {\n const match = str.match(QUERY_PARAM_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_VALUE_RE = /^[^&#]+/;\n// Return the value of the query param at the start of the string or an empty string\nfunction matchUrlQueryParamValue(str) {\n const match = str.match(QUERY_PARAM_VALUE_RE);\n return match ? match[0] : '';\n}\nclass UrlParser {\n constructor(url) {\n this.url = url;\n this.remaining = url;\n }\n parseRootSegment() {\n this.consumeOptional('/');\n if (this.remaining === '' || this.peekStartsWith('?') || this.peekStartsWith('#')) {\n return new UrlSegmentGroup([], {});\n }\n // The root segment group never has segments\n return new UrlSegmentGroup([], this.parseChildren());\n }\n parseQueryParams() {\n const params = {};\n if (this.consumeOptional('?')) {\n do {\n this.parseQueryParam(params);\n } while (this.consumeOptional('&'));\n }\n return params;\n }\n parseFragment() {\n return this.consumeOptional('#') ? decodeURIComponent(this.remaining) : null;\n }\n parseChildren() {\n if (this.remaining === '') {\n return {};\n }\n this.consumeOptional('/');\n const segments = [];\n if (!this.peekStartsWith('(')) {\n segments.push(this.parseSegment());\n }\n while (this.peekStartsWith('/') && !this.peekStartsWith('//') && !this.peekStartsWith('/(')) {\n this.capture('/');\n segments.push(this.parseSegment());\n }\n let children = {};\n if (this.peekStartsWith('/(')) {\n this.capture('/');\n children = this.parseParens(true);\n }\n let res = {};\n if (this.peekStartsWith('(')) {\n res = this.parseParens(false);\n }\n if (segments.length > 0 || Object.keys(children).length > 0) {\n res[PRIMARY_OUTLET] = new UrlSegmentGroup(segments, children);\n }\n return res;\n }\n // parse a segment with its matrix parameters\n // ie `name;k1=v1;k2`\n parseSegment() {\n const path = matchSegments(this.remaining);\n if (path === '' && this.peekStartsWith(';')) {\n throw new RuntimeError(4009 /* RuntimeErrorCode.EMPTY_PATH_WITH_PARAMS */, (typeof ngDevMode === 'undefined' || ngDevMode) && `Empty path url segment cannot have parameters: '${this.remaining}'.`);\n }\n this.capture(path);\n return new UrlSegment(decode(path), this.parseMatrixParams());\n }\n parseMatrixParams() {\n const params = {};\n while (this.consumeOptional(';')) {\n this.parseParam(params);\n }\n return params;\n }\n parseParam(params) {\n const key = matchMatrixKeySegments(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchSegments(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n params[decode(key)] = decode(value);\n }\n // Parse a single query parameter `name[=value]`\n parseQueryParam(params) {\n const key = matchQueryParams(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchUrlQueryParamValue(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n const decodedKey = decodeQuery(key);\n const decodedVal = decodeQuery(value);\n if (params.hasOwnProperty(decodedKey)) {\n // Append to existing values\n let currentVal = params[decodedKey];\n if (!Array.isArray(currentVal)) {\n currentVal = [currentVal];\n params[decodedKey] = currentVal;\n }\n currentVal.push(decodedVal);\n } else {\n // Create a new value\n params[decodedKey] = decodedVal;\n }\n }\n // parse `(a/b//outlet_name:c/d)`\n parseParens(allowPrimary) {\n const segments = {};\n this.capture('(');\n while (!this.consumeOptional(')') && this.remaining.length > 0) {\n const path = matchSegments(this.remaining);\n const next = this.remaining[path.length];\n // if is is not one of these characters, then the segment was unescaped\n // or the group was not closed\n if (next !== '/' && next !== ')' && next !== ';') {\n throw new RuntimeError(4010 /* RuntimeErrorCode.UNPARSABLE_URL */, (typeof ngDevMode === 'undefined' || ngDevMode) && `Cannot parse url '${this.url}'`);\n }\n let outletName = undefined;\n if (path.indexOf(':') > -1) {\n outletName = path.slice(0, path.indexOf(':'));\n this.capture(outletName);\n this.capture(':');\n } else if (allowPrimary) {\n outletName = PRIMARY_OUTLET;\n }\n const children = this.parseChildren();\n segments[outletName] = Object.keys(children).length === 1 ? children[PRIMARY_OUTLET] : new UrlSegmentGroup([], children);\n this.consumeOptional('//');\n }\n return segments;\n }\n peekStartsWith(str) {\n return this.remaining.startsWith(str);\n }\n // Consumes the prefix when it is present and returns whether it has been consumed\n consumeOptional(str) {\n if (this.peekStartsWith(str)) {\n this.remaining = this.remaining.substring(str.length);\n return true;\n }\n return false;\n }\n capture(str) {\n if (!this.consumeOptional(str)) {\n throw new RuntimeError(4011 /* RuntimeErrorCode.UNEXPECTED_VALUE_IN_URL */, (typeof ngDevMode === 'undefined' || ngDevMode) && `Expected \"${str}\".`);\n }\n }\n}\nexport function createRoot(rootCandidate) {\n return rootCandidate.segments.length > 0 ? new UrlSegmentGroup([], {\n [PRIMARY_OUTLET]: rootCandidate\n }) : rootCandidate;\n}\n/**\n * Recursively\n * - merges primary segment children into their parents\n * - drops empty children (those which have no segments and no children themselves). This latter\n * prevents serializing a group into something like `/a(aux:)`, where `aux` is an empty child\n * segment.\n * - merges named outlets without a primary segment sibling into the children. This prevents\n * serializing a URL like `//(a:a)(b:b) instead of `/(a:a//b:b)` when the aux b route lives on the\n * root but the `a` route lives under an empty path primary route.\n */\nexport function squashSegmentGroup(segmentGroup) {\n const newChildren = {};\n for (const [childOutlet, child] of Object.entries(segmentGroup.children)) {\n const childCandidate = squashSegmentGroup(child);\n // moves named children in an empty path primary child into this group\n if (childOutlet === PRIMARY_OUTLET && childCandidate.segments.length === 0 && childCandidate.hasChildren()) {\n for (const [grandChildOutlet, grandChild] of Object.entries(childCandidate.children)) {\n newChildren[grandChildOutlet] = grandChild;\n }\n } // don't add empty children\n else if (childCandidate.segments.length > 0 || childCandidate.hasChildren()) {\n newChildren[childOutlet] = childCandidate;\n }\n }\n const s = new UrlSegmentGroup(segmentGroup.segments, newChildren);\n return mergeTrivialChildren(s);\n}\n/**\n * When possible, merges the primary outlet child into the parent `UrlSegmentGroup`.\n *\n * When a segment group has only one child which is a primary outlet, merges that child into the\n * parent. That is, the child segment group's segments are merged into the `s` and the child's\n * children become the children of `s`. Think of this like a 'squash', merging the child segment\n * group into the parent.\n */\nfunction mergeTrivialChildren(s) {\n if (s.numberOfChildren === 1 && s.children[PRIMARY_OUTLET]) {\n const c = s.children[PRIMARY_OUTLET];\n return new UrlSegmentGroup(s.segments.concat(c.segments), c.children);\n }\n return s;\n}\nexport function isUrlTree(v) {\n return v instanceof UrlTree;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport { createEnvironmentInjector, isStandalone, ɵisNgModule as isNgModule, ɵRuntimeError as RuntimeError } from '@angular/core';\nimport { PRIMARY_OUTLET } from '../shared';\n/**\n * Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist\n * and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the\n * `currentInjector`.\n *\n * @param route The route that might have providers\n * @param currentInjector The parent injector of the `Route`\n */\nexport function getOrCreateRouteInjectorIfNeeded(route, currentInjector) {\n if (route.providers && !route._injector) {\n route._injector = createEnvironmentInjector(route.providers, currentInjector, `Route: ${route.path}`);\n }\n return route._injector ?? currentInjector;\n}\nexport function getLoadedRoutes(route) {\n return route._loadedRoutes;\n}\nexport function getLoadedInjector(route) {\n return route._loadedInjector;\n}\nexport function getLoadedComponent(route) {\n return route._loadedComponent;\n}\nexport function getProvidersInjector(route) {\n return route._injector;\n}\nexport function validateConfig(config, parentPath = '', requireStandaloneComponents = false) {\n // forEach doesn't iterate undefined values\n for (let i = 0; i < config.length; i++) {\n const route = config[i];\n const fullPath = getFullPath(parentPath, route);\n validateNode(route, fullPath, requireStandaloneComponents);\n }\n}\nexport function assertStandalone(fullPath, component) {\n if (component && isNgModule(component)) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. You are using 'loadComponent' with a module, ` + `but it must be used with standalone components. Use 'loadChildren' instead.`);\n } else if (component && !isStandalone(component)) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. The component must be standalone.`);\n }\n}\nfunction validateNode(route, fullPath, requireStandaloneComponents) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!route) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `\n Invalid configuration of route '${fullPath}': Encountered undefined route.\n The reason might be an extra comma.\n\n Example:\n const routes: Routes = [\n { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n { path: 'dashboard', component: DashboardComponent },, << two commas\n { path: 'detail/:id', component: HeroDetailComponent }\n ];\n `);\n }\n if (Array.isArray(route)) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': Array cannot be specified`);\n }\n if (!route.redirectTo && !route.component && !route.loadComponent && !route.children && !route.loadChildren && route.outlet && route.outlet !== PRIMARY_OUTLET) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': a componentless route without children or loadChildren cannot have a named outlet set`);\n }\n if (route.redirectTo && route.children) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and children cannot be used together`);\n }\n if (route.redirectTo && route.loadChildren) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and loadChildren cannot be used together`);\n }\n if (route.children && route.loadChildren) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': children and loadChildren cannot be used together`);\n }\n if (route.redirectTo && (route.component || route.loadComponent)) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and component/loadComponent cannot be used together`);\n }\n if (route.component && route.loadComponent) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': component and loadComponent cannot be used together`);\n }\n if (route.redirectTo && route.canActivate) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and canActivate cannot be used together. Redirects happen before activation ` + `so canActivate will never be executed.`);\n }\n if (route.path && route.matcher) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path and matcher cannot be used together`);\n }\n if (route.redirectTo === void 0 && !route.component && !route.loadComponent && !route.children && !route.loadChildren) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. One of the following must be provided: component, loadComponent, redirectTo, children or loadChildren`);\n }\n if (route.path === void 0 && route.matcher === void 0) {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': routes must have either a path or a matcher specified`);\n }\n if (typeof route.path === 'string' && route.path.charAt(0) === '/') {\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path cannot start with a slash`);\n }\n if (route.path === '' && route.redirectTo !== void 0 && route.pathMatch === void 0) {\n const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;\n throw new RuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '{path: \"${fullPath}\", redirectTo: \"${route.redirectTo}\"}': please provide 'pathMatch'. ${exp}`);\n }\n if (requireStandaloneComponents) {\n assertStandalone(fullPath, route.component);\n }\n }\n if (route.children) {\n validateConfig(route.children, fullPath, requireStandaloneComponents);\n }\n}\nfunction getFullPath(parentPath, currentRoute) {\n if (!currentRoute) {\n return parentPath;\n }\n if (!parentPath && !currentRoute.path) {\n return '';\n } else if (parentPath && !currentRoute.path) {\n return `${parentPath}/`;\n } else if (!parentPath && currentRoute.path) {\n return currentRoute.path;\n } else {\n return `${parentPath}/${currentRoute.path}`;\n }\n}\n/** Returns the `route.outlet` or PRIMARY_OUTLET if none exists. */\nexport function getOutlet(route) {\n return route.outlet || PRIMARY_OUTLET;\n}\n/**\n * Sorts the `routes` such that the ones with an outlet matching `outletName` come first.\n * The order of the configs is otherwise preserved.\n */\nexport function sortByMatchingOutlets(routes, outletName) {\n const sortedConfig = routes.filter(r => getOutlet(r) === outletName);\n sortedConfig.push(...routes.filter(r => getOutlet(r) !== outletName));\n return sortedConfig;\n}\n/**\n * Gets the first injector in the snapshot's parent tree.\n *\n * If the `Route` has a static list of providers, the returned injector will be the one created from\n * those. If it does not exist, the returned injector may come from the parents, which may be from a\n * loaded config or their static providers.\n *\n * Returns `null` if there is neither this nor any parents have a stored injector.\n *\n * Generally used for retrieving the injector to use for getting tokens for guards/resolvers and\n * also used for getting the correct injector to use for creating components.\n */\nexport function getClosestRouteInjector(snapshot) {\n if (!snapshot) return null;\n // If the current route has its own injector, which is created from the static providers on the\n // route itself, we should use that. Otherwise, we start at the parent since we do not want to\n // include the lazy loaded injector from this route.\n if (snapshot.routeConfig?._injector) {\n return snapshot.routeConfig._injector;\n }\n for (let s = snapshot.parent; s; s = s.parent) {\n const route = s.routeConfig;\n // Note that the order here is important. `_loadedInjector` stored on the route with\n // `loadChildren: () => NgModule` so it applies to child routes with priority. The `_injector`\n // is created from the static providers on that parent route, so it applies to the children as\n // well, but only if there is no lazy loaded NgModuleRef injector.\n if (route?._loadedInjector) return route._loadedInjector;\n if (route?._injector) return route._injector;\n }\n return null;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\nimport { ɵisInjectable as isInjectable } from '@angular/core';\nimport { equalParamsAndUrlSegments } from '../router_state';\nimport { equalPath } from '../url_tree';\nimport { shallowEqual } from '../utils/collection';\nimport { nodeChildrenAsMap } from '../utils/tree';\nexport class CanActivate {\n constructor(path) {\n this.path = path;\n this.route = this.path[this.path.length - 1];\n }\n}\nexport class CanDeactivate {\n constructor(component, route) {\n this.component = component;\n this.route = route;\n }\n}\nexport function getAllRouteGuards(future, curr, parentContexts) {\n const futureRoot = future._root;\n const currRoot = curr ? curr._root : null;\n return getChildRouteGuards(futureRoot, currRoot, parentContexts, [futureRoot.value]);\n}\nexport function getCanActivateChild(p) {\n const canActivateChild = p.routeConfig ? p.routeConfig.canActivateChild : null;\n if (!canActivateChild || canActivateChild.length === 0) return null;\n return {\n node: p,\n guards: canActivateChild\n };\n}\nexport function getTokenOrFunctionIdentity(tokenOrFunction, injector) {\n const NOT_FOUND = Symbol();\n const result = injector.get(tokenOrFunction, NOT_FOUND);\n if (result === NOT_FOUND) {\n if (typeof tokenOrFunction === 'function' && !isInjectable(tokenOrFunction)) {\n // We think the token is just a function so return it as-is\n return tokenOrFunction;\n } else {\n // This will throw the not found error\n return injector.get(tokenOrFunction);\n }\n }\n return result;\n}\nfunction getChildRouteGuards(futureNode, currNode, contexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const prevChildren = nodeChildrenAsMap(currNode);\n // Process the children of the future route\n futureNode.children.forEach(c => {\n getRouteGuards(c, prevChildren[c.value.outlet], contexts, futurePath.concat([c.value]), checks);\n delete prevChildren[c.value.outlet];\n });\n // Process any children left from the current route (not active for the future route)\n Object.entries(prevChildren).forEach(([k, v]) => deactivateRouteAndItsChildren(v, contexts.getContext(k), checks));\n return checks;\n}\nfunction getRouteGuards(futureNode, currNode, parentContexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n const context = parentContexts ? parentContexts.getContext(futureNode.value.outlet) : null;\n // reusing the node\n if (curr && future.routeConfig === curr.routeConfig) {\n const shouldRun = shouldRunGuardsAndResolvers(curr, future, future.routeConfig.runGuardsAndResolvers);\n if (shouldRun) {\n checks.canActivateChecks.push(new CanActivate(futurePath));\n } else {\n // we need to set the data\n future.data = curr.data;\n future._resolvedData = curr._resolvedData;\n }\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, currNode, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n getChildRouteGuards(futureNode, currNode, parentContexts, futurePath, checks);\n }\n if (shouldRun && context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, curr));\n }\n } else {\n if (curr) {\n deactivateRouteAndItsChildren(currNode, context, checks);\n }\n checks.canActivateChecks.push(new CanActivate(futurePath));\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, null, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n getChildRouteGuards(futureNode, null, parentContexts, futurePath, checks);\n }\n }\n return checks;\n}\nfunction shouldRunGuardsAndResolvers(curr, future, mode) {\n if (typeof mode === 'function') {\n return mode(curr, future);\n }\n switch (mode) {\n case 'pathParamsChange':\n return !equalPath(curr.url, future.url);\n case 'pathParamsOrQueryParamsChange':\n return !equalPath(curr.url, future.url) || !shallowEqual(curr.queryParams, future.queryParams);\n case 'always':\n return true;\n case 'paramsOrQueryParamsChange':\n return !equalParamsAndUrlSegments(curr, future) || !shallowEqual(curr.queryParams, future.queryParams);\n case 'paramsChange':\n default:\n return !equalParamsAndUrlSegments(curr, future);\n }\n}\nfunction deactivateRouteAndItsChildren(route, context, checks) {\n const children = nodeChildrenAsMap(route);\n const r = route.value;\n Object.entries(children).forEach(([childName, node]) => {\n if (!r.component) {\n deactivateRouteAndItsChildren(node, context, checks);\n } else if (context) {\n deactivateRouteAndItsChildren(node, context.children.getContext(childName), checks);\n } else {\n deactivateRouteAndItsChildren(node, null, checks);\n }\n });\n if (!r.component) {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n } else if (context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, r));\n } else {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n }\n}\n","import { Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, PRIMARY_OUTLET, Router, UrlSegment } from '@angular/router';\n// @ts-ignore\nimport { equalPath } from '@angular/router/esm2022/src/url_tree';\n// @ts-ignore\nimport { shallowEqual } from '@angular/router/esm2022/src/utils/collection';\n// @ts-ignore\nimport { getClosestRouteInjector } from '@angular/router/esm2022/src/utils/config';\n// @ts-ignore\nimport { getTokenOrFunctionIdentity } from '@angular/router/esm2022/src/utils/preactivation';\n\nimport { NavigationInfo } from '@frontend/vanilla/core';\n\nexport function getToken(token: any, snapshot: ActivatedRouteSnapshot, moduleInjector: Injector): T {\n return getTokenWithInjector(token, snapshot, moduleInjector).token;\n}\n\nexport function getTokenWithInjector(\n token: any,\n snapshot: ActivatedRouteSnapshot,\n moduleInjector: Injector,\n): { token: T; injector: Injector } {\n const injector = getClosestRouteInjector(snapshot) || moduleInjector;\n\n return { token: getTokenOrFunctionIdentity(token, injector), injector };\n}\n\nexport function paramsOrQueryParamsChange(from: ActivatedRouteSnapshot, to: ActivatedRouteSnapshot): boolean {\n const popupChanged = from.queryParamMap.has('popup') !== to.queryParamMap.has('popup') && to.queryParamMap.has('popup');\n\n if (popupChanged || shouldSkipGuardsAndResolvers(to)) {\n return false;\n }\n\n // same as: https://github.com/angular/angular/blob/master/packages/router/src/utils/preactivation.ts#L164\n return !equalParamsAndUrlSegments(from, to) || !shallowEqual(from.queryParams, to.queryParams);\n}\n\nexport function equalParamsAndUrlSegments(f: ActivatedRouteSnapshot, t: ActivatedRouteSnapshot): boolean {\n const equalUrlParams = shallowEqual(f.params, t.params) && equalSegments(f.url, t.url);\n const parentsMismatch = !f.parent !== !t.parent;\n\n return equalUrlParams && !parentsMismatch && (!f.parent || equalParamsAndUrlSegments(f.parent, t.parent!));\n}\n\nfunction equalSegments(aSegments: UrlSegment[], bSegments: UrlSegment[]): boolean {\n return equalPath(aSegments, bSegments) && aSegments.every((a, i) => shallowEqual(a.parameters, bSegments[i].parameters));\n}\n\nfunction shouldSkipGuardsAndResolvers(to: ActivatedRouteSnapshot): boolean {\n const router: Router | undefined = getClosestRouteInjector(to)?.get(Router);\n const info = router?.getCurrentNavigation()?.extras.info;\n\n return hasSkipInfo(info) && info.skipPrimaryOutletGuardsAndResolvers && to.outlet === PRIMARY_OUTLET;\n}\n\nfunction hasSkipInfo(info: unknown): info is Required> {\n return Boolean(info && (info as NavigationInfo).skipPrimaryOutletGuardsAndResolvers !== undefined);\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 { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'ms-component-loader',\n template: '
',\n standalone: true,\n})\nexport class ComponentLoaderComponent {\n @HostBinding('class') className = 'component-loader';\n}\n","import { Directive, EventEmitter, Input, OnDestroy, Output, ViewContainerRef } from '@angular/core';\n\nimport { ComponentLoaderComponent } from './component-loader.component';\nimport { ComponentProxy } from './component-loader.service';\n\n@Directive({\n selector: '[msComponentProxy]',\n standalone: true,\n})\nexport class ComponentProxyDirective implements OnDestroy {\n private componentProxy: ComponentProxy | undefined;\n\n @Output() componentLoaded = new EventEmitter();\n\n @Input() set msComponentProxyData(data: any | undefined) {\n if (data && this.componentProxy) {\n this.componentProxy.update(data);\n }\n }\n\n @Input() set msComponentProxy(value: ComponentProxy | undefined) {\n this.destroy();\n\n this.componentProxy = value;\n\n this.viewRef.createComponent(ComponentLoaderComponent);\n\n if (!this.componentProxy) {\n return;\n }\n\n this.componentProxy.create(this.viewRef).subscribe(() => this.componentLoaded.next());\n }\n\n constructor(private viewRef: ViewContainerRef) {}\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n private destroy(): void {\n this.componentProxy?.destroy();\n this.viewRef.clear();\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 });\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 });\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 });\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 });\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 });\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 });\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 });\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 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 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 });\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 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 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 });\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 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 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 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 */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-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})\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 standalone: true,\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})\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 standalone: true,\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 standalone: true,\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 standalone: true,\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 standalone: true,\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 { Route, UrlMatchResult, UrlSegment, UrlSegmentGroup } from '@angular/router';\n\nimport { isEmpty } from 'lodash-es';\n\nimport { regexMatcher } from './regex.matcher';\n\nconst NO_MATCH: UrlMatchResult = null as any;\n\nexport function nameIdentifierMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (!segments.length || !route.data || !route.data.matcherParam) {\n return NO_MATCH;\n }\n\n const segmentsToParse = segments.slice(0, 1);\n const posParams = parsePosParams(segmentsToParse, [route.data.matcherParam]);\n\n return isEmpty(posParams) ? NO_MATCH : { consumed: segmentsToParse, posParams };\n}\n\nexport function multiNameIdentifierExactMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (!segments.length || !route.data || !route.data.matcherParams || segments.length !== route.data.matcherParams.length) {\n return NO_MATCH;\n }\n\n const posParams = parsePosParams(segments, route.data.matcherParams);\n\n return isEmpty(posParams) ? NO_MATCH : { consumed: segments, posParams };\n}\n\nexport function multiNameIdentifierMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (!segments.length || !route.data || !route.data.matcherParams || segments.length > route.data.matcherParams.length) {\n return NO_MATCH;\n }\n\n const posParams = parsePosParams(segments, route.data.matcherParams);\n\n return isEmpty(posParams) ? NO_MATCH : { consumed: segments, posParams };\n}\n\nexport function multiNameIdentifierMatcher_WithRegexMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (\n !segments.length ||\n !route.data ||\n !route.data.matcherParams ||\n segments.length > route.data.matcherParams.length ||\n !route.data.matcherPattern\n ) {\n return NO_MATCH;\n }\n\n const regexResult = regexMatcher(segmentGroup.segments, segmentGroup, route);\n\n if (regexResult === NO_MATCH) {\n return regexResult;\n }\n\n const posParams = parsePosParams(segments, route.data.matcherParams);\n\n return isEmpty(posParams)\n ? NO_MATCH\n : { consumed: [...regexResult.consumed, ...segments], posParams: { ...posParams, ...regexResult.posParams } };\n}\n\nexport function multiNameIdentifierMatcher_WithChildren(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (!segments.length || !route.data || !route.data.matcherParams || segments.length < route.data.matcherParams.length) {\n return NO_MATCH;\n }\n\n let parentSegments = segments;\n if (segments.length > route.data.matcherParams.length) {\n parentSegments = segments.slice(0, route.data.matcherParams.length);\n }\n\n const posParams = parsePosParams(parentSegments, route.data.matcherParams);\n\n return isEmpty(posParams) ? NO_MATCH : { consumed: parentSegments, posParams };\n}\n\nfunction parsePosParams(segments: UrlSegment[], matcherParams: string[]): { [name: string]: UrlSegment } {\n const posParams: { [name: string]: UrlSegment } = {};\n for (let i = 0; i < segments.length; i++) {\n const nameIdentifierPair = parseSegment(segments[i]);\n const paramName = matcherParams[i];\n\n if (nameIdentifierPair.id) {\n posParams[`${paramName}`] = new UrlSegment(nameIdentifierPair.id, {});\n\n if (nameIdentifierPair.name) {\n posParams[`${paramName}Name`] = new UrlSegment(nameIdentifierPair.name, {});\n }\n }\n }\n\n return posParams;\n}\n\nfunction parseSegment(segment: UrlSegment): { id: string; name: string } {\n const valuesRegex = new RegExp('((.*)-)?((\\\\d+:)?\\\\d+)$', 'gmi');\n const valuesMatch: string[] = valuesRegex.exec(segment.path) || [];\n\n const name = valuesMatch[2];\n const id = valuesMatch[3];\n\n return { id, name };\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 { Injectable } from '@angular/core';\n\nimport { StatisticsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem, RegionItem, isVirtualCompetitionGroupItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Omit, isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { LeagueGroup } from '@frontend/sports/grid/core/feature/model';\nimport { flatten } from 'lodash-es';\n\nexport interface GetStandingsParams {\n sport: CountItem;\n selectedVirtualGroupId?: number;\n expandedGroups?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class StandingsService {\n constructor(private statisticsConfig: StatisticsConfig) {}\n\n getStandingsGroups(params: GetStandingsParams): LeagueGroup[] {\n const { sport, selectedVirtualGroupId, expandedGroups = this.statisticsConfig.expandedLeagueTablesCount } = params;\n\n if (sport.id !== SportConstant.Soccer) {\n return [];\n }\n\n const leagueGroups = !selectedVirtualGroupId\n ? this.getStandingsForCompetitions(sport)\n : this.getStandingsForVirtualGroups(sport, selectedVirtualGroupId);\n\n leagueGroups.forEach((leagueGroup, index) => (leagueGroup.collapsed = index >= expandedGroups));\n\n return leagueGroups;\n }\n\n private getStandingsForCompetitions(sport: CountItem): LeagueGroup[] {\n const leagueGroups = flatten(\n (sport.children).map((region) =>\n flatten(\n (region.children).map((leagueItem) =>\n leagueItem.isVirtual ? this.mapVirtualGroups(leagueItem, region) : this.mapCompetition(leagueItem, region),\n ),\n ),\n ),\n );\n\n return leagueGroups;\n }\n\n private getStandingsForVirtualGroups(sport: CountItem, selectedVirtualGroupId: number): LeagueGroup[] {\n const leagueGroups = flatten(\n (sport.children).map((region) =>\n flatten((region.children).map((leagueItem) => this.mapVirtualGroups(leagueItem, region, selectedVirtualGroupId))),\n ),\n );\n\n return leagueGroups;\n }\n\n private mapCompetition(competition: LeagueItem, region: RegionItem): LeagueGroup[] {\n if (!competition.standings) {\n return [];\n }\n\n return [{ ...this.toLeagueGroup(competition, region), id: competition.id, name: competition.name, canBeFavourited: true }];\n }\n\n private mapVirtualGroups(competition: LeagueItem, region: RegionItem, selectedVirtualGroup?: number): LeagueGroup[] {\n if (!competition.isVirtual || !competition.children) {\n return [];\n }\n\n const leagueGroups = competition.children\n .filter(isVirtualCompetitionGroupItem)\n .filter((virtualGroup) => virtualGroup.standings && (!isDefined(selectedVirtualGroup) || virtualGroup.id === selectedVirtualGroup))\n .map((virtualGroup) => ({\n ...this.toLeagueGroup(virtualGroup, region),\n id: virtualGroup.siblings[0] || virtualGroup.groupIds[0] || virtualGroup.stageIds[0],\n name: `${competition.name} - ${virtualGroup.name}`,\n virtualCompetitionId: virtualGroup.parentId,\n virtualCompetitionGroupId: virtualGroup.id,\n canBeFavourited: !(virtualGroup.stageIds.length || virtualGroup.groupIds.length),\n }));\n\n return leagueGroups;\n }\n\n private toLeagueGroup(\n leagueItem: LeagueItem,\n region: RegionItem,\n ): Omit {\n return {\n count: leagueItem.counts.preMatch + leagueItem.counts.live,\n events: [],\n collapsed: false,\n collapsible: true,\n deferred: false,\n siblings: [leagueItem.id],\n region,\n };\n }\n}\n","import { ImageProfile } from '@cds/betting-offer';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, ItemType, LeagueItem, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { UrlParam } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { immerable } from 'immer';\n\nimport { IntervalFilter } from '../calendar/count-interval.service';\nimport { TreeItem } from '../common/item/item.model';\n\nexport class Lazy {\n private cached?: T;\n\n constructor(private creator: () => T) {}\n\n get value(): T {\n if (this.cached === undefined) {\n this.cached = this.creator();\n }\n\n return this.cached;\n }\n}\n\nexport interface TreeOptions {\n urlMapper: (sport?: CountItem, region?: CountItem, league?: CountItem, group?: CountItem) => string;\n countMapper: (item?: CountItem) => number;\n priceBoostCountMapper?: (item?: CountItem) => number;\n title?: string;\n subTitle?: string;\n topTitle?: string;\n moreTitle?: string;\n allTitle?: string;\n seoOptimize?: boolean;\n allOptions?: TreeOptions;\n eSportsLobby?: boolean;\n}\n\nexport class BaseTreeItem implements TreeItem {\n [immerable] = true;\n\n private _href: string;\n\n constructor() {\n this.children = [];\n }\n\n get href(): string {\n return this._href;\n }\n\n set href(value: string) {\n this._href = value;\n }\n\n id: string | number;\n children: TreeItem[];\n active: boolean;\n expanded: boolean;\n arrow?: boolean;\n count?: number;\n icon?: string;\n title: string;\n tracking?: string;\n attribute?: StringDictionary;\n liveCount?: number;\n context?: string;\n compoundId?: string;\n priceBoostCount?: number;\n regions?: number[];\n}\n\nexport class LazyTreeItem extends BaseTreeItem {\n private lazyHref: Lazy;\n\n constructor([sport, region, league, group]: CountItem[], options: TreeOptions) {\n super();\n\n const current = group || league || region || sport;\n\n if (current) {\n this.id = current.id;\n this.expanded = options.seoOptimize || !current.children.length;\n\n this.attribute = {\n id: this.id,\n type: current.type.toLowerCase(),\n };\n }\n\n this.lazyHref = new Lazy(() => options.urlMapper(sport, region, league));\n this.count = options.countMapper(current);\n this.priceBoostCount = options.priceBoostCountMapper ? options.priceBoostCountMapper(current) : 0;\n this.active = false;\n }\n\n override get href(): string {\n return this.lazyHref.value;\n }\n\n override set href(value: string) {\n console.error(`LazyTreeItem should not have it's 'href' property set. Attempted value: ${value}`);\n }\n}\n\nexport class SportTreeItem extends LazyTreeItem {\n constructor(sport: CountItem, options: TreeOptions) {\n super([sport], options);\n\n const childrenType = getItemTypeForSport(sport.id);\n\n const sportTitleAndIcon = () => {\n this.icon = sport.icon ?? `sports-${sport.id}`;\n this.title = sport.name;\n };\n\n if (options.title && !options.eSportsLobby) {\n this.subTitle = options.subTitle;\n this.moreTitle = options.moreTitle;\n this.title = options.title;\n this.count = undefined;\n this.priceBoostCount = undefined;\n } else if (options.eSportsLobby) {\n sportTitleAndIcon();\n this.count = undefined;\n } else {\n sportTitleAndIcon();\n }\n\n this.children = children(sport, childrenType).map((region) => new RegionTreeItem(sport, region, options));\n this.liveCount = sport.counts.live;\n }\n\n subTitle?: string;\n moreTitle?: string;\n}\n\nexport class RegionTreeItem extends LazyTreeItem {\n constructor(sport: CountItem, region: CountItem, options: TreeOptions) {\n super([sport, region], options.allOptions ? options.allOptions : options);\n this.icon = region.type === ItemType.Region ? `country-icon c${region.id}` : 'sports-tournament';\n this.title = region.name;\n this.children = children(region, ItemType.Competition).map((league) => new LeagueTreeItem(sport, region, league, options));\n\n if (this.children.length && (options.seoOptimize || this.children.length > 1)) {\n const all = new RegionTreeItem(sport, { ...region, children: [] }, options.allOptions ? options.allOptions : options);\n\n all.title = `${options.allTitle} ${region.name}`;\n all.icon = 'theme-competitions-all';\n\n if (all.attribute) {\n all.attribute.target = 'all';\n }\n\n this.children.unshift(all);\n }\n }\n}\n\nexport class LeagueTreeItem extends LazyTreeItem {\n constructor(sport: CountItem, region: CountItem, league: LeagueItem, options: TreeOptions) {\n const leagueOptions = { ...options, urlMapper: () => options.urlMapper(sport, region, league) };\n\n super([sport, region, league], leagueOptions);\n\n this.sport = sport.id;\n this.region = region.name;\n this.title = league.name;\n this.icon = league.icon;\n this.isVirtual = league.isVirtual;\n this.siblings = league.isVirtual ? league.siblings : undefined;\n this.liveCount = league.counts.live;\n this.realCompetitionId = league.realCompetitionId;\n this.compoundId = league.compoundId;\n this.imageProfile = league.imageProfile;\n }\n\n sport: number;\n region: string;\n isVirtual: boolean;\n siblings?: number[];\n realCompetitionId?: number;\n imageProfile?: ImageProfile;\n}\n\nexport class VirtualGroupTreeItem extends LazyTreeItem {\n constructor(sport: CountItem, region: CountItem, league: LeagueItem, group: LeagueItem, options: TreeOptions) {\n const groupOptions = { ...options, urlMapper: () => options.urlMapper(sport, region, league, group) };\n\n super([sport, region, league, group], groupOptions);\n\n this.sport = sport.id;\n this.region = region.name;\n this.title = `${league.name} - ${group.name}`;\n this.icon = group.icon;\n this.favouriteId = group.siblings[0];\n }\n\n sport: number;\n region: string;\n favouriteId: number;\n}\n\nexport class TournamentTreeItem extends BaseTreeItem {\n constructor(sport: CountItem, tournament: Tournament, urlMapper: (sport: UrlParam, name: string) => string) {\n super();\n\n this.id = tournament.navigation.name ?? '';\n this.title = tournament.navigation.filter.title || (tournament.navigation.name ?? '');\n this.icon = tournament.navigation.icon || 'sports-tournament';\n this.href = urlMapper(sport, tournament.navigation.name ?? '');\n\n this.attribute = {\n id: this.id,\n type: 'tournament',\n };\n }\n}\n\nexport class CalendarTreeItem extends BaseTreeItem {\n constructor(sport: CountItem, interval: IntervalFilter, urlMapper: (sport: UrlParam, name: string) => string) {\n super();\n\n this.id = interval.name;\n this.title = interval.title;\n this.icon = 'theme-competitions-all';\n this.href = urlMapper(sport, interval.name);\n this.attribute = {\n id: this.id,\n type: 'calendar',\n };\n }\n}\n\nexport interface SportTreeState {\n sport?: number;\n sportExpanded?: boolean;\n region?: number;\n regionExpanded?: (string | number)[];\n league?: number | number[];\n tournament?: string;\n isVirtual?: boolean;\n virtualCompetitionGroup?: number;\n context?: string;\n}\n\nexport function getItemTypeForSport(sportId: number): ItemType.Tournament | ItemType.Region {\n return sportId === SportConstant.Tennis ? ItemType.Tournament : ItemType.Region;\n}\n","import { Injectable } from '@angular/core';\n\nimport { CountItem, ItemCount, ItemFilter, ItemMeta, ItemType } from '@frontend/sports/common/core/data-access/sport-model';\nimport { cloneDeep, isArray, keys, some, sumBy } from 'lodash-es';\n\nimport { getItemTypeForSport } from '../../../competition-list/competition-list.models';\nimport { CompetitionRoute } from '../../../navigation/navigation.models';\n\n@Injectable({ providedIn: 'root' })\nexport class PruneHelperService {\n /**\n * Returns a tree of items traversed recursively and applied filters on each level. All items\n * and its children with 0 counts are removed from the tree\n *\n * @param items list of source items\n * @param filters list of filters (item type and item id) to be applied on the collection\n */\n prune(sport: CountItem | undefined, route: CompetitionRoute): CountItem | undefined {\n if (!sport) {\n return;\n }\n\n const filters = [{ type: ItemType.Sport, id: sport.id }];\n\n if (route.league) {\n const leagues = isArray(route.league) ? route.league : [route.league];\n leagues.forEach((league) => filters.push({ type: ItemType.Competition, id: league }));\n }\n\n if (route.virtualCompetitionGroup) {\n filters.push({\n type: ItemType.VirtualCompetitionGroup,\n id: route.virtualCompetitionGroup,\n });\n }\n\n if (route.conference) {\n filters.push({\n type: ItemType.Conference,\n id: route.conference,\n });\n }\n\n if (route.region) {\n filters.push({\n type: getItemTypeForSport(sport.id),\n id: route.region,\n });\n }\n\n const clonedSport = [cloneDeep(sport)];\n\n return this.pruneRecursively(clonedSport, filters).pop();\n }\n\n private pruneRecursively(items: CountItem[], filters: ItemFilter[]): CountItem[] {\n if (!items.length) {\n return items;\n }\n\n const typeFilters = filters.filter((current) => current.type === items[0].type);\n\n if (typeFilters.length) {\n items = items.filter((item) => typeFilters.some((filter) => item.id === filter.id));\n }\n\n return items\n .map((currentItem) => {\n if (!currentItem.children.length) {\n return currentItem;\n }\n\n currentItem.children = this.pruneRecursively(currentItem.children, filters);\n // if there are no VirtualCompetitionGroup filters, then for VirtualCompetition items there is no need\n // to sum up the count of VirtualCompetitionGroups because we get the count already calculated from backend\n if (filters.some((filter) => filter.type === ItemType.VirtualCompetitionGroup) || !this.isVirtualCompetition(currentItem)) {\n keys(currentItem.counts)\n .map((key) => key as keyof ItemCount)\n .forEach((key: keyof ItemCount) => {\n (currentItem.counts[key] as number) = sumBy(currentItem.children, (child) => (child.counts[key] as number) || 0);\n });\n keys(currentItem.meta)\n .map((key) => key as keyof ItemMeta)\n .forEach((key) => {\n (currentItem.meta[key] as boolean) = !!currentItem.meta[key] || some(currentItem.children, (child) => child.meta[key]);\n });\n }\n\n return currentItem;\n })\n .filter((item) => item.counts.preMatch + item.counts.live);\n }\n\n private isVirtualCompetition(countItem: CountItem): boolean {\n return countItem.children.length > 0 && countItem.children.every((child) => child.type === ItemType.VirtualCompetitionGroup);\n }\n}\n","import { ThemeOptionsWithDefault } from './types';\n\nexport function getByThemeOrDefault(obj: ThemeOptionsWithDefault, key: keyof ThemeOptionsWithDefault) {\n return obj[key] ?? obj.default;\n}\n","import { ChangeDetectorRef, Directive, Input, OnChanges, OnInit, inject } from '@angular/core';\n\nimport { ThemeInverse, getByThemeOrDefault, injectCurrentTheme } from '@frontend/sports/common/ui/shared';\nimport { DsNotificationBubble, DsNotificationBubbleVariant } from '@frontend/ui/notification-bubble';\n\nimport { ThemeNotificationSize, ThemeNotificationVariant } from './types';\n\n@Directive({\n selector: '[msThemedNotification]',\n standalone: true,\n})\nexport class SportsThemedNotificationDirective implements OnInit, OnChanges {\n @Input() themedSize?: ThemeNotificationSize;\n @Input() themedVariant?: ThemeNotificationVariant;\n @Input() themeInverse?: ThemeInverse;\n @Input() selectedVariant?: ThemeNotificationVariant;\n @Input() isSelected = false;\n currentTheme = injectCurrentTheme();\n changeRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n notification: DsNotificationBubble = inject(DsNotificationBubble, {\n self: true,\n });\n\n ngOnInit(): void {\n const size = this.themedSize?.[this.currentTheme];\n if (size) {\n this.notification.size = size;\n }\n\n const themeInverse = this.themeInverse?.[this.currentTheme];\n if (themeInverse) {\n this.notification.inverse = themeInverse.isInverse;\n }\n }\n\n ngOnChanges() {\n const variant = this.themeVariant;\n if (variant) {\n this.notification.variant = variant;\n }\n }\n\n get themeVariant(): DsNotificationBubbleVariant | undefined {\n return this.isSelected && this.selectedVariant\n ? getByThemeOrDefault(this.selectedVariant, this.currentTheme)\n : this.themedVariant\n ? getByThemeOrDefault(this.themedVariant, this.currentTheme)\n : undefined;\n }\n}\n","@if (tabs) {\n
\n \n @for (tab of tabs; track tab.id) {\n \n \n @if (tab.icon) {\n @if (tab.display === display.Logo) {\n \n } @else {\n \n }\n }\n {{ tab.title }}\n @if (!!tab.count) {\n @if (tab.showSignPost) {\n \n } @else {\n \n {{ tab.count }}\n \n }\n }\n \n \n }\n \n \n
\n}\n","import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { SportsThemedNotificationDirective, ThemeNotificationVariant } from '@frontend/sports/common/ui/sports-themed-notifcation-bubble';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { WidgetContext } from '@frontend/sports/types/components/widget';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { DsTabsModule } from '@frontend/ui/tabsgroup';\n\nimport { PriceboostCountSignpostComponent } from '../../shared-priceboost/Components/priceboost-count-signpost.component';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\n\nexport enum WidgetTabBarDisplay {\n Default,\n Icon,\n Logo,\n}\n\nexport interface WidgetTabBarItem extends TabBarItem {\n display: WidgetTabBarDisplay;\n context: Partial;\n itemId: string | number;\n sportId?: number;\n widgetId: string;\n showSignPost?: boolean;\n}\n\n@Component({\n selector: 'ms-widget-tab-bar',\n styleUrls: ['./widget-tab-bar.component.scss'],\n templateUrl: './widget-tab-bar.component.html',\n standalone: true,\n styles: [\n `\n :host {\n .icon {\n display: flex;\n font-size: 16px;\n }\n }\n `,\n ],\n imports: [\n DsTabsModule,\n CompetitionLogoComponent,\n PriceboostCountSignpostComponent,\n DsNotificationBubble,\n SportsThemedNotificationDirective,\n NgClass,\n DsDivider,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WidgetTabBarComponent implements OnChanges {\n @Input() tabs: WidgetTabBarItem[] = [];\n @Input() stretch = false;\n @Output() select = new EventEmitter();\n @HostBinding('class') className = 'widget-tab-bar';\n\n variant: ThemeNotificationVariant = {\n 'default': 'neutral',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n selectedTabBubbleVariant: ThemeNotificationVariant = {\n 'default': 'primary',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n display = WidgetTabBarDisplay;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.tabs) {\n this.updateTabTrackingIds();\n }\n }\n\n selected(id: string) {\n this.tabs = this.tabs.map((item) => ({\n ...item,\n active: item.attribute === id,\n }));\n const activetab = this.tabs.find((item) => item.active);\n this.select.emit(activetab);\n }\n\n private updateTabTrackingIds(): void {\n this.tabs = this.tabs.map((tab, index) => ({\n ...tab,\n attribute: (index + 1).toString(),\n }));\n }\n\n get active(): string {\n const activetab = this.tabs.filter((tab) => tab.active).pop() ?? this.tabs[0];\n\n return activetab.attribute?.toString() ?? '';\n }\n}\n","@if (titleIcon && fallbackIcon) {\n
\n @if (titleLogo && leagueId) {\n \n } @else if (fallbackIcon) {\n \n }\n
\n}\n\n@if (title) {\n
{{ title }}
\n}\n\n@if (linkConfig && linkConfig.link && (linkConfig.linkText || linkConfig.disableLinkTextAndClick)) {\n
\n \n @if (linkConfig.linkText && !linkConfig.disableLinkTextAndClick) {\n \n }\n \n
\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, OnChanges, Output } from '@angular/core';\n\nimport { TitleIconOptions } from '@frontend/sports/types/components/content';\nimport { DsTouchClickDirective } from '@frontend/ui/shared';\n\nimport { LinkConfig } from '../../top-events/top-events.model';\n\n@Component({\n selector: 'ms-widget-header',\n templateUrl: './widget-header.component.html',\n styleUrl: './widget-header.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [{ directive: DsTouchClickDirective }],\n})\nexport class WidgetHeaderComponent implements OnChanges {\n @HostBinding('class') className = 'widget-header grid-outer-title';\n\n @HostBinding('class.clickable-widget-header')\n get isClickableHeader() {\n return this.linkConfig?.disableLinkTextAndClick;\n }\n\n @Input() title?: string;\n @Input() titleIcon: string;\n @Input() fallbackIcon?: string;\n @Input() sportId?: number;\n @Input() leagueId?: string;\n @Input() linkConfig: LinkConfig;\n\n @Output() linkClick = new EventEmitter();\n titleLogo: boolean;\n\n @HostListener('click', ['$event'])\n onClick(): void {\n if (this.linkConfig.disableLinkTextAndClick) {\n this.linkClicked();\n }\n }\n\n ngOnChanges(): void {\n this.titleLogo = this.titleIcon === TitleIconOptions.CompetitionLogo;\n }\n\n linkClicked(): void {\n this.linkClick.emit(true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { ItemComponent } from '../../common/item/item.component';\nimport { PriceboostCountSignpostComponent } from '../../shared-priceboost/Components/priceboost-count-signpost.component';\nimport { TabBarModule } from '../../tab-bar/tab-bar.module';\nimport { WidgetHeaderComponent } from './widget-header.component';\nimport { WidgetTabBarComponent } from './widget-tab-bar.component';\n\n@NgModule({\n imports: [\n WidgetTabBarComponent,\n CommonModule,\n TabBarModule,\n CompetitionLogoComponent,\n PriceboostCountSignpostComponent,\n ItemComponent,\n TrustPipe,\n IconCustomComponent,\n ],\n exports: [WidgetTabBarComponent, WidgetHeaderComponent],\n declarations: [WidgetHeaderComponent],\n})\nexport class WidgetCommonModule {}\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 { TeamPagesViewModel } from '../teampages-core/team-pages.model';\nimport { TeamPagesModule } from './team-pages.module';\n\nexport interface TeamPagesCompetitionViewBinding {\n teampagesViewModel: TeamPagesViewModel;\n hasCompetitions: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesComponentLoaderService extends ComponentLoaderService {\n moduleName = 'TeamPagesModule';\n\n constructor(moduleLoader: ModuleLoaderService, loggerFactory: LoggerFactory) {\n super(moduleLoader, loggerFactory);\n }\n\n getTeamPagesComponent(): ComponentProxy {\n return this.getComponentProxy((module) => module.competitionTeamPagesComponent, 'team-pages');\n }\n\n getModule(): Promise> {\n return import('./team-pages.module').then((m) => m.TeamPagesModule);\n }\n}\n","\n @for (tab of tabs; track tab.id) {\n \n \n @if (!!tab.url) {\n \n \n \n } @else {\n \n }\n \n \n }\n @if (!showBorder) {\n \n }\n\n\n\n \n {{ tab.title }}\n @if (!!tab.counter) {\n \n {{ tab.counter }}\n }\n \n\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ThemeInverse } from '@frontend/sports/common/ui/shared';\nimport { SportsThemedNotificationDirective, ThemeNotificationVariant } from '@frontend/sports/common/ui/sports-themed-notifcation-bubble';\nimport { LinkDirective } from '@frontend/sports/common/ui/sports-themed-pills';\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { DsTabsModule, TabsGroupIndicatorType, TabsGroupSizesType } from '@frontend/ui/tabsgroup';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\n\nimport { SportsThemedTabsDirective } from '../sports-themed-tabs.directive';\nimport { ThemeSize } from '../types';\nimport { SelectedTabItem, TabItemUiViewModel } from './tab-item-view.model';\n\n@Component({\n selector: 'ms-tab-group-counter',\n standalone: true,\n imports: [\n DsTabsModule,\n DsNotificationBubble,\n SportsThemedNotificationDirective,\n DsDivider,\n SpeculativeLinkDirective,\n LinkDirective,\n NgTemplateOutlet,\n SportsThemedTabsDirective,\n ],\n templateUrl: './tab-group-with-counter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabGroupWithCounterComponent {\n @Input({ required: true }) tabs: TabItemUiViewModel[] = [];\n @Input({ required: true }) indicator: TabsGroupIndicatorType = 'underline';\n @Input({ required: true }) size: TabsGroupSizesType = 'small';\n @Input({ required: false }) themeInverseIndicator?: ThemeInverse;\n @Input({ required: false }) showBorder?: boolean;\n tabSize: ThemeSize;\n counterVariant: ThemeNotificationVariant = {\n 'default': 'neutral',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n activeCounterVariant: ThemeNotificationVariant = {\n 'default': 'primary',\n 'mgm-4': 'utility',\n 'sports-interaction': 'utility',\n };\n\n constructor() {\n this.tabSize = {\n 'betboo-br': 'small',\n 'sportingbet-br': 'small',\n };\n }\n\n get active(): TabItemUiViewModel {\n return (this.tabs && this.tabs.filter((tab) => tab.active).pop()) ?? this.tabs[0];\n }\n\n @Output() readonly tabSelected = new EventEmitter();\n}\n","\n
    \n @for (item of pills; track item.id) {\n
  • \n \n
  • \n }\n
\n
\n\n\n @if (pill.display === display.Logo) {\n \n \n } @else if (pill.icon) {\n \n }\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { DsPill } from '@frontend/ui/pill';\n\nimport { WidgetTabBarDisplay, WidgetTabBarItem } from './widget-tab-bar.component';\n\n@Component({\n selector: 'ms-widget-pill',\n templateUrl: './widget-pill.component.html',\n styleUrls: ['./widget-pill.component.scss'],\n standalone: true,\n imports: [DsPill, ScrollAdapterComponent, CompetitionLogoComponent, CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WidgetPillComponent {\n @Input() pills: WidgetTabBarItem[];\n @Output() select = new EventEmitter();\n display = WidgetTabBarDisplay;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n eventSelected(widgetTabBarItem: WidgetTabBarItem): void {\n this.pills.forEach((item) => {\n item.active = item.title === widgetTabBarItem.title;\n });\n const tabItem = this.pills.find((e) => e.id === widgetTabBarItem.id);\n this.cdr.markForCheck();\n this.select.emit(tabItem);\n }\n}\n","import { FixturePage } from '@cds/betting-offer';\nimport { CountItem, LeagueItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { getReverseEnum } from '@frontend/sports/common/core/utils/extended-types';\nimport { GridSorting } from '@frontend/sports/grid/core/feature/model';\n\nimport { IntervalLink } from '../../../calendar/count-interval.service';\nimport { Tile } from '../../../highlights-marquee/marquee-tile.model';\nimport { CompetitionRoute } from '../../../navigation/navigation.models';\nimport type { ShowcaseModuleData } from '../../../showcase/showcase.model';\nimport { TabBarItem } from '../../../tab-bar/tab-bar.models';\nimport { TeamPagesViewModel } from '../../../teampages-core/team-pages.model';\n\nexport interface FixtureList extends FixturePage {\n sport?: CountItem;\n params?: CompetitionRoute;\n tabs?: TabBarItem[];\n sorting?: GridSorting;\n virtualCompetition?: LeagueItem;\n showcaseData?: ShowcaseModuleData;\n competitionTitle?: string;\n marqueeData?: Tile[];\n teampagesViewModel?: TeamPagesViewModel;\n calendarIntervals?: IntervalLink[];\n calendarPills?: TabBarItem[];\n sportsOverview?: CountItem;\n calendarLiveCounts?: CountItem;\n}\n\nexport enum FixtureTab {\n Matches = 1,\n Outrights = 2,\n Standings = 3,\n Specials = 4,\n Teams = 5,\n Priceboost = 6,\n}\n\nexport const ReverseFixtureTab = getReverseEnum(FixtureTab);\n","import { Injectable } from '@angular/core';\n\nimport { FavouriteType } from '@frontend/sports/favourites/core/feature';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { FavouriteToggleTracking } from './favourite-toggle.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FavouriteToggleTrackingService {\n favouriteTypeMap = {\n [FavouriteType.League]: 'League',\n [FavouriteType.Fixture]: 'Event',\n [FavouriteType.FixtureV2]: 'Event',\n [FavouriteType.Participant]: 'Player/Team',\n [FavouriteType.ParticipantV2]: 'Player/Team',\n };\n\n constructor(private trackingService: TrackingService) {}\n\n trackToggle(isToggled: boolean, favouriteType: FavouriteType, tracking: FavouriteToggleTracking): void {\n const baseTracking = {\n [trackingConstants.COMPONENT_ACTION_EVENT]: `${isToggled ? 'Add' : 'Remove'} - Favourites`,\n [trackingConstants.COMPONENT_POSITION_EVENT]: tracking.source ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: tracking.name ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: tracking.position?.toString() ?? NOT_APPLICABLE,\n };\n\n const commonTracking = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Sports Favourites',\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LABEL_EVENT]: this.favouriteTypeMap[favouriteType] ?? NOT_APPLICABLE,\n };\n\n this.trackingService.track(trackingConstants.EVENT_FAVOURITES, {\n ...commonTracking,\n ...baseTracking,\n ...tracking?.additional,\n });\n\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, {\n ...commonTracking,\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'load',\n [trackingConstants.COMPONENT_POSITION_EVENT]: 'toaster',\n [trackingConstants.COMPONENT_LOCATION_EVENT]: `item ${isToggled ? 'added' : 'removed'}`,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'favourites toaster',\n });\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, Output } from '@angular/core';\n\nimport { EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { FavouriteType, FavouritesService, FavouritesViewModel } from '@frontend/sports/favourites/core/feature';\nimport { TrackData } from '@frontend/sports/tracking/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Observable, Subscription, catchError, filter, map, of } from 'rxjs';\n\nimport { EpcotConfigService, EpcotModule } from '../../common/epcot-config.service';\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport { FavouriteToggleTrackingService } from './favourite-toggle-tracking.service';\n\nexport interface FavouriteToggleTracking {\n name: string;\n source: string;\n position?: number;\n additional?: Partial;\n}\n\n@Component({\n selector: 'ms-favourite-toggle',\n templateUrl: 'favourite-toggle.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class FavouriteToggleComponent implements OnChanges, OnDestroy {\n @Input() id: string;\n @Input() name: string;\n @Input() sport: number;\n @Input() type: FavouriteType;\n @Input() static: boolean;\n @Input() tracking: FavouriteToggleTracking;\n @Input() participantImage?: EventParticipantImage;\n @Output() toggle = new EventEmitter();\n @HostBinding('class') className = 'favourite-toggle';\n\n model?: FavouritesViewModel;\n disabled: boolean;\n toggleClass: boolean;\n flag = false;\n private isEpcotEnabled: boolean;\n private subscription?: Subscription;\n\n constructor(\n private userService: UserService,\n private favouritesService: FavouritesService,\n private redirectHelper: RedirectHelperService,\n private changeRef: ChangeDetectorRef,\n private trackingService: FavouriteToggleTrackingService,\n public sitecore: Sitecore,\n private epcotConfigService: EpcotConfigService,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled(EpcotModule.Favorites);\n }\n\n setToggle(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.flag = true;\n if (!this.userService.isAuthenticated) {\n this.redirectHelper.goToLogin();\n } else {\n if (this.model) {\n this.remove();\n } else {\n this.add();\n }\n }\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.static) {\n if (this.static) {\n this.unsubscribe();\n } else {\n this.subscribe();\n }\n }\n\n this.setState();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n private unsubscribe(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n }\n\n private subscribe(): void {\n if (!this.subscription) {\n this.subscription = this.favouritesService.change.subscribe(() => this.setState());\n }\n }\n\n private remove(): void {\n this.toggleClass = false;\n this.favouritesService\n .remove(this.model!)\n .pipe(this.handleError())\n .subscribe(() => this.toggled(this.sitecore.favouritesMessages.RemoveSuccess));\n }\n\n private add(): void {\n this.toggleClass = true;\n this.favouritesService\n .add(this.id, this.sport, this.type, this.name, this.participantImage)\n .pipe(this.handleError())\n .subscribe(() => this.toggled(this.sitecore.favouritesMessages.AddSuccess, false, this.isEpcotEnabled ? '' : 'theme-success-i'));\n }\n\n private handleError = () => (source: Observable) =>\n source.pipe(\n map(() => true),\n catchError((error: Error) => {\n this.toggleClass = !!this.model;\n this.toggled(error.message, true);\n return of(false);\n }),\n filter((result) => result),\n );\n\n private toggled(message: string, toggleError: boolean = false, icon?: string): void {\n this.favouritesService.notify(message, icon);\n this.setState();\n\n const isToggled = isDefined(this.model);\n this.toggle.emit(isToggled);\n this.changeRef.markForCheck();\n if (!toggleError) {\n this.trackingService.trackToggle(isToggled, this.type, this.tracking);\n }\n }\n\n private setState(): void {\n this.disabled = !this.userService.isAuthenticated;\n this.model = this.favouritesService.get(this.id, this.sport, this.type);\n if (!this.flag) {\n this.toggleClass = !!this.model;\n }\n\n this.changeRef.markForCheck();\n }\n}\n","\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { FavouriteType } from '@frontend/sports/favourites/core/feature';\nimport { TrackingSource, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { FavouriteToggleComponent, FavouriteToggleTracking } from './favourite-toggle.component';\n\n@Component({\n selector: 'ms-favourite-league-toggle',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FavouriteToggleComponent],\n standalone: true,\n})\nexport class FavouriteLeagueToggleComponent {\n @Input() id: string | number;\n @Input() name: string;\n @Input() sport: number;\n @Input() static: boolean;\n @Input() tracking: TrackingSource;\n @Output() toggle = new EventEmitter();\n\n type = FavouriteType.League;\n\n get favouriteTracking(): FavouriteToggleTracking {\n return {\n name: this.name,\n additional: {\n [trackingConstants.SPORT_ID]: this.sport.toString(),\n [trackingConstants.SPORT_LEAGUE_ID]: this.id.toString(),\n },\n ...this.tracking,\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { FavouriteType } from '@frontend/sports/favourites/core/feature';\nimport { TrackingSource, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { FavouriteToggleComponent, FavouriteToggleTracking } from './favourite-toggle.component';\n\n@Component({\n selector: 'ms-favourite-event-toggle',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FavouriteToggleComponent],\n standalone: true,\n})\nexport class FavouriteEventToggleComponent implements OnChanges {\n @Input() event: EventModel;\n @Input() static: boolean;\n @Input() tracking: TrackingSource;\n @Output() toggle = new EventEmitter();\n\n type: FavouriteType;\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.event) {\n const previous = changes.event.previousValue ? changes.event.previousValue.id : undefined;\n const current = changes.event.currentValue ? changes.event.currentValue.id : undefined;\n\n if (previous !== current) {\n this.type = this.getType();\n }\n }\n }\n\n get favouriteTracking(): FavouriteToggleTracking {\n return {\n name: this.event.name,\n additional: {\n [trackingConstants.SPORT_ID]: this.event.sport.id.toString(),\n [trackingConstants.SPORT_EVENT_ID]: this.event.id.toString(),\n },\n ...this.tracking,\n };\n }\n\n private getType(): FavouriteType {\n if (!this.event.offerSource || this.event.offerSource === OfferSource.V1) {\n return FavouriteType.Fixture;\n }\n\n return FavouriteType.FixtureV2;\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { EventParticipant, EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { FavouriteType } from '@frontend/sports/favourites/core/feature';\nimport { TrackingSource, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { FavouriteToggleComponent, FavouriteToggleTracking } from './favourite-toggle.component';\n\n@Component({\n selector: 'ms-favourite-participant-toggle',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [FavouriteToggleComponent],\n})\nexport class FavouriteParticipantToggleComponent implements OnChanges {\n @Input() participant: EventParticipant;\n @Input() sport: number;\n @Input() source?: OfferSource;\n @Input() static: boolean;\n @Input() tracking: TrackingSource;\n @Input() participantImage?: EventParticipantImage;\n @Output() toggle = new EventEmitter();\n\n name: string;\n type: FavouriteType;\n\n get favouriteTracking(): FavouriteToggleTracking {\n return {\n name: this.getName(),\n additional: {\n [trackingConstants.SPORT_ID]: this.sport.toString(),\n },\n ...this.tracking,\n };\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.participant) {\n const previous = changes.participant.previousValue ? changes.participant.previousValue.id : undefined;\n const current = changes.participant.currentValue ? changes.participant.currentValue.id : undefined;\n\n if (previous !== current) {\n this.name = this.getName();\n }\n }\n\n if (changes.source) {\n this.type = this.getType();\n }\n }\n\n private getType(): FavouriteType {\n if (!this.source || this.source === OfferSource.V1) {\n return FavouriteType.Participant;\n }\n\n return FavouriteType.ParticipantV2;\n }\n\n private getName(): string {\n return this.participant.country ? `${this.participant.name} (${this.participant.country})` : this.participant.name;\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { FavouriteEventToggleComponent } from './toggle/favourite-event-toggle.component';\nimport { FavouriteLeagueToggleComponent } from './toggle/favourite-league-toggle.component';\nimport { FavouriteParticipantToggleComponent } from './toggle/favourite-participant-toggle.component';\n\n@NgModule({\n imports: [FavouriteEventToggleComponent, FavouriteLeagueToggleComponent, FavouriteParticipantToggleComponent],\n declarations: [],\n exports: [FavouriteEventToggleComponent, FavouriteLeagueToggleComponent, FavouriteParticipantToggleComponent],\n})\nexport class FavouritesModule {}\n","@if (fallbackUrl && !showParticipant) {\n \n}\n@if (participantUrl) {\n \n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\n\nimport { ImagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { VirtualCompetitionImageType } from '@frontend/sports/common/core/data-access/sport-model';\nimport { ImageRootPath } from '@frontend/sports/participant-image/feature';\nimport { UtilsService } from '@frontend/vanilla/core';\n\nimport { EpcotConfigService } from '../../common/epcot-config.service';\n\n@Component({\n selector: 'ms-tournament-groups-participants',\n templateUrl: 'tournament-groups-participants.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class TournamentGroupsParticipantsComponent implements OnInit {\n constructor(\n private imagesConfig: ImagesConfig,\n private utilsService: UtilsService,\n private changeRef: ChangeDetectorRef,\n private epcotConfigService: EpcotConfigService,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n private static FALLBACK_IMAGE = 'fallback';\n private static FALLBACK_FLAGS_IMAGE = 'fallback_flag';\n private static FALLBACK_IMAGE_EPCOT = 'epcot_fallback';\n\n @Input() participantId: string;\n @Input() sportId: number;\n @Input() imageType: VirtualCompetitionImageType;\n\n fallbackUrl: string;\n participantUrl: string;\n showParticipant = false;\n isEpcotEnabled = false;\n\n ngOnInit(): void {\n const participantTemplateUrl = this.imagesConfig.participantImageUrl;\n\n let fallbackImage = this.isEpcotEnabled\n ? TournamentGroupsParticipantsComponent.FALLBACK_IMAGE_EPCOT\n : TournamentGroupsParticipantsComponent.FALLBACK_IMAGE;\n // when we have default imageType show home jursey\n let participantId = this.participantId + '_1';\n\n if (this.imageType === VirtualCompetitionImageType.Flags) {\n fallbackImage = this.isEpcotEnabled\n ? TournamentGroupsParticipantsComponent.FALLBACK_IMAGE_EPCOT\n : TournamentGroupsParticipantsComponent.FALLBACK_FLAGS_IMAGE;\n participantId = this.participantId;\n }\n\n this.participantUrl = this.utilsService.format(participantTemplateUrl, ImageRootPath.Live, this.sportId, participantId);\n this.fallbackUrl = this.utilsService.format(participantTemplateUrl, ImageRootPath.Live, this.sportId, fallbackImage);\n }\n\n participantImageLoad(): void {\n this.showParticipant = true;\n this.changeRef.markForCheck();\n }\n}\n","\n \n\n\n\n
\n
\n {{ group.title }}\n
\n
\n
\n\n\n
\n
\n {{ group.title }}\n
\n
0\">\n
\n
\n \n \n
\n
{{ participant.code }}
\n
\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, OnInit, ViewChild } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { VirtualCompetitionDisplayMode, VirtualCompetitionGroupParticipant } from '@frontend/sports/common/core/data-access/sport-model';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { ScrollSelectedInViewDirective } from '../../directives/scroll-selected-in-view/scroll-selected-in-view.directive';\nimport { FavouritesModule } from '../../favourites/favourites.module';\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport { TournamentGroupsParticipantsComponent } from './tournament-groups-participants.component';\nimport { VirtualCompetitionModel } from './virtual-competition.service';\n\nexport interface TournamentGroup {\n id: number;\n favouriteId: number;\n title: string;\n active: boolean;\n url?: string;\n isFavourite: boolean;\n canBeFavourited?: boolean;\n favouriteName: string;\n participants: VirtualCompetitionGroupParticipant[];\n}\n\n@Component({\n selector: 'ms-tournament-groups',\n templateUrl: 'tournament-groups.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, ScrollAdapterComponent, ScrollSelectedInViewDirective, TournamentGroupsParticipantsComponent, FavouritesModule],\n})\nexport class TournamentGroupsComponent implements OnInit, OnChanges {\n @Input() model: VirtualCompetitionModel;\n\n @HostBinding('class') className = 'tournament-groups';\n @ViewChild(ScrollAdapterComponent, { static: true }) scrollAdapter: ScrollAdapterComponent;\n active: TournamentGroup | undefined;\n VirtualCompetitionDisplayMode = VirtualCompetitionDisplayMode;\n\n constructor(\n private timer: TimerService,\n public sitecore: Sitecore,\n public redirectHelperService: RedirectHelperService,\n private trackingService: TrackingService,\n ) {}\n\n ngOnInit(): void {\n this.active = this.model.groups && this.model.groups.find((group) => group.active);\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.timer.setTimeout(() => this.scrollAdapter.setArrows());\n }\n\n selected(event: Event, active: TournamentGroup): void {\n event.preventDefault();\n\n if (this.model.groups.find((group) => group.id === active.id)) {\n this.model.groups.forEach((group) => (group.active = group.id === active.id));\n this.active = active;\n\n this.trackingService.track('Event.Clicks', {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Tournaments Groups',\n [trackingConstants.COMPONENT_LABEL_EVENT]: `Tournaments Group: ${active.title}`,\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Group - Clicked',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: 'Tournaments Page',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: 'Visitor Clicks on a Tournaments Group',\n [trackingConstants.COMPONENT_URL_CLICKED]: active.url || NOT_APPLICABLE,\n });\n\n this.redirectHelperService.goToPage(active.url, true);\n }\n }\n\n trackTabsBy(index: number, group: TournamentGroup): number {\n return group.id;\n }\n\n getGroupMenuItemId(item: TournamentGroup | undefined): string {\n const itemIndex = !item ? -1 : this.model.groups.findIndex((group) => group.id === item.id);\n const itemId = !item ? 0 : item.id;\n\n return `${itemId}#${itemIndex}`;\n }\n}\n","
\n {{ tokenModel.badgeText }}\n
\n","import { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\nimport { uniq, values } from 'lodash-es';\nimport { IBetslipRootState } from 'packages/sports/common/betslip/base/store/state';\nimport { BetslipIntegrationService } from 'packages/sports/common/betslip/integration/betslip-integration.service';\nimport { IRewardToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { selectRewardTokens } from 'packages/sports/common/betslip/modules/reward-tokens/selectors';\nimport { getNonAccaTokens, isAccaBoostToken } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\nimport { BehaviorSubject, combineLatest, concatMap, map } from 'rxjs';\n\nimport { RewardTokenType } from '../../tokens-base/token-base.models';\n\n@Component({\n selector: 'ms-reward-token-eligible-tag',\n templateUrl: 'reward-token-eligible-tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [AsyncPipe, NgIf, NgClass],\n})\nexport class RewardTokenEligibleTagComponent {\n @Input() set leagues(value: number[]) {\n this.leagues$.next(value);\n }\n\n @Input() set sport(value: number) {\n this.sport$.next(value);\n }\n\n private sport$ = new BehaviorSubject(null);\n private leagues$ = new BehaviorSubject([]);\n\n private readonly badgeModels: Record = {\n [RewardTokenType.OddsBoost]: {\n badgeText: this.sitecore.crmTokens.messages.OddsBoost,\n cssClass: 'reward-token-eligible-tag--odds-boost',\n },\n [RewardTokenType.RiskFreeBet]: {\n badgeText: this.sitecore.crmTokens.messages.RiskFree,\n cssClass: 'reward-token-eligible-tag--risk-free',\n },\n [RewardTokenType.FreeBet]: {\n badgeText: this.sitecore.crmTokens.messages.Freebet,\n cssClass: 'reward-token-eligible-tag--freebet',\n },\n [RewardTokenType.AccaBoost]: {\n badgeText: this.sitecore.accaBoost.AccaBoost,\n cssClass: 'reward-token-eligible-tag--acca-boost',\n },\n } as Record;\n\n private readonly betslipInitialized$ = this.betslipIntegrationService.betslipInitialized$();\n private readonly tokens$ = this.store.select(selectRewardTokens).pipe(\n map((state) => {\n const allTokens = values(state);\n const nonAccaBoostTokens = getNonAccaTokens(allTokens);\n\n // if there are more than one acca boost token, ignore them for showing the eligibility tag\n if (allTokens.length - nonAccaBoostTokens.length > 1) {\n return nonAccaBoostTokens;\n }\n\n return allTokens;\n }),\n );\n\n private isEligible(token: IRewardToken, leagueIds: number[], sportId: number | null): boolean {\n if (isAccaBoostToken(token)) {\n const competitions = (sportId && token.filter.sportsConfigs[sportId]?.competitions) || {};\n\n return leagueIds.some((c) => competitions[c]);\n }\n\n return token.filter.competitions.some((c) => leagueIds.includes(c.id));\n }\n\n readonly tokenModel$ = this.betslipInitialized$.pipe(\n concatMap(() => {\n return combineLatest([this.tokens$, this.sport$, this.leagues$]);\n }),\n map(([tokens, sportId, leagueIds]) => {\n const eligibleTokens = tokens.filter(\n (t) => Object.keys(this.badgeModels).includes(t.rewardTokenType) && this.isEligible(t, leagueIds, sportId),\n );\n\n const tokenTypes = uniq(eligibleTokens.map((t) => t.rewardTokenType));\n\n if (tokenTypes.length === 0) {\n return null;\n }\n\n if (tokenTypes.length === 1) {\n return this.badgeModels[tokenTypes[0]];\n }\n\n return {\n badgeText: this.sitecore.crmTokens.messages.Rewards,\n cssClass: 'reward-token-eligible-tag--rewards',\n };\n }),\n );\n\n constructor(\n public sitecore: Sitecore,\n private store: Store,\n private betslipIntegrationService: BetslipIntegrationService,\n ) {}\n}\n","@if (title) {\n
\n @if (showFavoriteToggle && league && sport) {\n \n }\n\n
\n

{{ title }}

\n @if (sport && league) {\n \n }\n
\n \n
\n}\n\n\n@if (tabs.length) {\n \n} @else if (pills.length) {\n \n}\n\n @if (sport && league && leagueIds) {\n \n }\n\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges, SimpleChanges, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { LeagueModel } from '@frontend/sports/betting-offer/feature/model';\nimport { GridConfig, PrettyUrlsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, ItemType, LeagueItem, children } from '@frontend/sports/common/core/data-access/sport-model';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { ThemeNotificationVariant } from '@frontend/sports/common/ui/sports-themed-notifcation-bubble';\nimport { SelectedTabItem, TabGroupWithCounterComponent, TabItemUiViewModel } from '@frontend/sports/common/ui/sports-themed-tab-group';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { PrimaryNavigationDisplayType } from '@frontend/sports/types/configuration';\nimport { lowerCase } from 'lodash-es';\n\nimport { CalendarService } from '../../calendar/calendar.service';\nimport { IntervalFilter } from '../../calendar/count-interval.service';\nimport { getItemTypeForSport } from '../../competition-list/competition-list.models';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { FavouriteLeagueToggleComponent } from '../../favourites/toggle/favourite-league-toggle.component';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\nimport { WidgetPillComponent } from '../../widget/common/widget-pill.component';\nimport { WidgetTabBarDisplay, WidgetTabBarItem } from '../../widget/common/widget-tab-bar.component';\nimport { FixtureTab } from './competitions/competition.models';\nimport { RewardTokenEligibleTagComponent } from './reward-token-eligible-tag.component';\n\n@Component({\n selector: 'ms-fixture-list-header',\n templateUrl: 'fixture-list-header.component.html',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n FavouriteLeagueToggleComponent,\n CompetitionLogoComponent,\n RewardTokenEligibleTagComponent,\n NgClass,\n TabGroupWithCounterComponent,\n WidgetPillComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FixtureListHeaderComponent implements OnChanges {\n @Input() sport?: CountItem;\n @Input() navigation?: TabBarItem[];\n @Input() showFavoriteToggle? = true;\n @Input() competitionTitle: string;\n @Input() headerTitle = '';\n @Input() offerBadgeTemplate?: TemplateRef;\n\n @HostBinding('class') className = 'fixture-list-header';\n tabs: TabItemUiViewModel[] = [];\n pills: WidgetTabBarItem[] = [];\n\n @HostBinding('class.active') get active(): boolean {\n return !!this.title || (!!this.navigation && this.navigation.length > 0);\n }\n\n @HostBinding('class.calendar') isCalendarPage = false;\n\n title?: string;\n league?: LeagueModel;\n region?: CountItem;\n leagueIds?: number[];\n regionType: ItemType.Region | ItemType.Tournament;\n variant: ThemeNotificationVariant = {\n 'mgm-4': 'utility',\n };\n\n private showPrimaryNavAsPill = false;\n\n constructor(\n public sitecore: Sitecore,\n private gridConfig: GridConfig,\n private route: CompetitionRouteService,\n private router: Router,\n private urlConfig: PrettyUrlsConfig,\n private calendar: CalendarService,\n private trackingService: TrackingService,\n ) {\n this.showPrimaryNavAsPill = this.gridConfig.primaryNavigationType === PrimaryNavigationDisplayType.Pill;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.sport) {\n this.league = undefined;\n this.leagueIds = undefined;\n this.title = undefined;\n\n const route = this.route.params();\n const interval = this.calendar.getInterval(route.context);\n\n if (this.isInvalidContext(route, interval) || !changes.sport?.currentValue || !this.sport) {\n return;\n }\n\n if (interval) {\n this.title = this.headerTitle || interval.title;\n this.isCalendarPage = true;\n\n return;\n }\n\n this.isCalendarPage = false;\n\n this.regionType = getItemTypeForSport(this.sport.id);\n this.region = children(this.sport, this.regionType).find((item) => item.id === route.region);\n\n if (!route.league) {\n this.handleNoLeagueRoute();\n } else {\n this.handleLeagueRoute(route);\n }\n }\n this.updateNavigationTabs();\n }\n\n changedPill(selectedTab: WidgetTabBarItem): void {\n const tabItem = this.navigation?.find((t) => t.id.toString() === selectedTab.id);\n this.routeTab(tabItem);\n }\n\n changed(selectedTab: SelectedTabItem): void {\n const tabItem = this.navigation?.find((t) => t.id.toString() === selectedTab.name);\n this.routeTab(tabItem);\n }\n\n routeTab(tabItem: TabBarItem | undefined) {\n if (!tabItem) {\n return;\n }\n const url = this.route.path();\n\n this.router\n .navigate([url], {\n replaceUrl: true,\n queryParams: {\n tab: lowerCase(FixtureTab[tabItem.id]),\n },\n })\n .then(() => {\n const route = this.route.params();\n this.trackingService.track(trackingConstants.EVENT_NAVIGATION_MENUS, {\n [trackingConstants.PAGE_NAVIGATION_MENUS]: `CompetitionPage_${route.marketOffer}_${tabItem.id}`,\n });\n });\n }\n\n get iconClass(): string {\n if (this.region) {\n return !this.isTournament ? `country-icon c${this.region.id}` : 'sports-tournament';\n }\n\n return '';\n }\n\n get isTournament(): boolean {\n return this.regionType === ItemType.Tournament;\n }\n\n private isInvalidContext(route: CompetitionRoute, interval: IntervalFilter | undefined): boolean {\n return (\n route.context !== this.urlConfig.translations.betting &&\n route.context !== this.urlConfig.translations.standings &&\n route.context !== this.urlConfig.translations.bets &&\n route.context !== this.urlConfig.translations.conferences &&\n !interval\n );\n }\n\n private handleNoLeagueRoute(): void {\n if (!this.region) {\n return;\n }\n this.title = `${this.sitecore.globalMessages.All} ${this.region.name}`;\n }\n\n private handleLeagueRoute(route: CompetitionRoute): void {\n if (!this.sport) {\n return;\n }\n\n const league = children(this.sport, ItemType.Competition).pop() as LeagueItem;\n\n this.league = {\n id: league.realCompetitionId || league.id,\n name: league.name,\n parentLeagueId: league.siblings[0],\n imageProfile: league.imageProfile,\n };\n\n this.leagueIds = [this.league.id];\n\n if (this.league.parentLeagueId) {\n this.leagueIds.push(this.league.parentLeagueId);\n }\n\n if (route.conference && !this.competitionTitle) {\n const conference = children(this.sport, ItemType.Conference).pop();\n this.title = interpolateDoubleBracesString(this.sitecore.seo.ConferenceHeadingTitle, {\n conference: conference?.name ?? '',\n });\n\n return;\n }\n\n this.title =\n this.competitionTitle ||\n interpolateDoubleBracesString(this.sitecore.seo.LeagueHeadingTitle, {\n league: league.name,\n });\n }\n\n private updateNavigationTabs(): void {\n if (this.showPrimaryNavAsPill) {\n this.pills =\n this.navigation?.map((t) => ({\n id: t.id.toString(),\n icon: t.icon,\n title: t.title,\n active: t.active,\n url: t.url,\n display: WidgetTabBarDisplay.Default,\n context: {},\n itemId: t.id,\n widgetId: '',\n })) || [];\n } else {\n this.tabs =\n this.navigation?.map((t) => ({\n counter: t.count?.toString(),\n id: t.id.toString(),\n icon: t.icon,\n title: t.title,\n active: t.active,\n url: t.url,\n })) || [];\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport {\n CountItem,\n ItemType,\n LeagueItem,\n VirtualCompetitionDisplayMode,\n VirtualCompetitionGroupItem,\n VirtualCompetitionImageType,\n children,\n} from '@frontend/sports/common/core/data-access/sport-model';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { FavouriteChangeType, FavouriteType, FavouritesService } from '@frontend/sports/favourites/core/feature';\nimport { Observable, filter, map, merge, of, switchMap } from 'rxjs';\n\nimport { getItemTypeForSport } from '../../competition-list/competition-list.models';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { SportUrlParam, UrlHelperService } from '../../navigation-core/url-helper.service';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\nimport { TournamentGroup } from './tournament-groups.component';\n\nexport interface VirtualCompetitionModel {\n groups: TournamentGroup[];\n sportId: number;\n displayMode: VirtualCompetitionDisplayMode;\n imageType: VirtualCompetitionImageType;\n id: number;\n realCompetitionId?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VirtualCompetitionService {\n constructor(\n private urlHelperService: UrlHelperService,\n private favouritesService: FavouritesService,\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private routeService: CompetitionRouteService,\n ) {}\n\n subscribe$(\n sport: CountItem,\n virtualCompetition: LeagueItem,\n urlFactory?: (group?: VirtualCompetitionGroupItem) => string,\n ): Observable {\n return this.sitecoreEventDetails.whenReady.pipe(\n switchMap(() =>\n merge(\n of(undefined),\n this.favouritesService.change.pipe(\n filter((change) => change.changeType === FavouriteChangeType.Add || change.changeType === FavouriteChangeType.Remove),\n ),\n ).pipe(map(() => this.buildVirtualCompetition(sport, virtualCompetition, urlFactory))),\n ),\n );\n }\n\n getCompetition(sport: CountItem | undefined, route: CompetitionRoute, findVirtual = true): LeagueItem | undefined {\n if (!sport) {\n return;\n }\n\n const region = sport.children.find(\n (item) => (item.type === ItemType.Region || item.type === ItemType.Tournament) && item.id === route.region,\n );\n if (region) {\n const leagueList = region.children as LeagueItem[];\n\n return leagueList.find(\n (item: LeagueItem) => item.type === ItemType.Competition && item.id === route.league && item.isVirtual === findVirtual,\n );\n }\n\n return;\n }\n\n private buildVirtualCompetition(\n sport: CountItem,\n virtualCompetition: LeagueItem,\n urlFactory?: (group?: VirtualCompetitionGroupItem) => string,\n ): VirtualCompetitionModel | null {\n const virtualCompetitionGroups = this.buildTournamentGroups(sport, virtualCompetition, urlFactory);\n if (virtualCompetitionGroups.length === 0) {\n return null;\n }\n\n return {\n groups: virtualCompetitionGroups,\n sportId: sport.id,\n displayMode: virtualCompetition.displayMode!,\n imageType: virtualCompetition.imageType!,\n id: virtualCompetition.id,\n realCompetitionId: virtualCompetition.realCompetitionId,\n };\n }\n\n private buildTournamentGroups(\n sport: CountItem,\n virtualCompetition: LeagueItem,\n urlFactory?: (group?: VirtualCompetitionGroupItem) => string,\n ): TournamentGroup[] {\n const route = this.routeService.params();\n if (!(route.isVirtual && virtualCompetition.children.length > 0)) {\n return [];\n }\n\n const regionType = getItemTypeForSport(sport.id);\n const region = children(sport, regionType).find((item) => item.id === route.region);\n\n if (!region) {\n return [];\n }\n\n const league = children(sport, ItemType.Competition).pop() as LeagueItem;\n\n const allGroups = [\n {\n id: 0,\n title: this.sitecoreEventDetails.eventDetails.AllMarketsTemplate,\n active: route.virtualCompetitionGroup === undefined,\n url: urlFactory?.() ?? this.urlHelperService.getSportUrl(sport, SportUrlParam.Betting, region, league, undefined, route.marketOffer),\n canBeFavourited: false,\n },\n ];\n const virtualGroups = virtualCompetition.children as VirtualCompetitionGroupItem[];\n let tournamentGroups = virtualGroups.map((group) => {\n const isFavourite = group.siblings.length\n ? isDefined(this.favouritesService.get(group.siblings[0].toString(), sport.id, FavouriteType.League))\n : false;\n\n return {\n id: group.id,\n favouriteId: group.siblings[0],\n title: group.name,\n active: group.id === route.virtualCompetitionGroup,\n isFavourite,\n favouriteName: `${league.name} - ${group.name}`,\n url: urlFactory?.(group) ?? this.urlHelperService.getSportUrl(sport, SportUrlParam.Betting, region, league, group, route.marketOffer),\n participants: group.participants,\n canBeFavourited: !(group.stageIds.length || group.groupIds.length),\n };\n });\n\n const tournamentGroupsFavourite = this.favouritesService.favouritesList\n .filter((f) => f.type === FavouriteType.League)\n .map((f) => tournamentGroups.find((g) => g.canBeFavourited && g.favouriteId?.toString() === f.itemId))\n .filter((f) => isDefined(f));\n tournamentGroups = tournamentGroupsFavourite.concat(tournamentGroups.filter((f) => !f.isFavourite));\n\n return allGroups.concat(tournamentGroups);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { TournamentsDataConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem, sportModelMethods, takeTop } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Tournament } from '@frontend/sports/types/components/tournaments';\nimport { Observable, combineLatest, map, of, switchMap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\n\nexport interface CompetitionOverview {\n tournaments?: Tournament[];\n sport?: CountItem;\n}\n\nexport interface ReorderItem {\n id: number;\n location: number;\n}\n\n// TODO:REVIEW-USAGE\n@Injectable({ providedIn: 'root' })\nexport class CompetitionListService {\n constructor(\n private bettingContent: BettingOfferApi,\n private bettingCache: SportsCacheService,\n private tournamentsData: TournamentsDataConfig,\n ) {}\n\n getSportTree(\n sportId: number,\n start?: string,\n end?: string,\n withTournaments?: boolean,\n competitionId?: number,\n conferenceId?: number,\n ): Observable {\n const cached = !start && !end;\n const source = cached\n ? this.bettingCache.getSport(sportId, competitionId, conferenceId)\n : this.bettingContent.getSport(sportId, false, { from: start, to: end }).pipe(\n switchMap((sport) =>\n combineLatest([\n of(sport),\n this.bettingCache.getConference(conferenceId, competitionId, {\n from: start,\n to: end,\n }),\n ]),\n ),\n map(([sports, conference]) => sportModelMethods.fromTag((sports || []).concat(conference || [])).pop()),\n );\n\n return source.pipe(\n map((sport) => {\n if (!sport) {\n return;\n }\n\n return {\n sport,\n tournaments: withTournaments ? this.getValidTournaments(sportId) : undefined,\n };\n }),\n );\n }\n\n getSportList(top: number, ...reorderings: ReorderItem[]): Observable {\n return this.bettingCache.getSportList().pipe(map((result) => this.getReorderedSportList(result, top, reorderings)));\n }\n\n getReorderedSportList(sports: CountItem[], top: number, reorderings: ReorderItem[]): CountItem[] {\n const topSports = takeTop(sports);\n let locationShiftUp = 0;\n\n for (const { id, location } of reorderings) {\n if (!location) {\n continue;\n }\n\n const existing = sports.find((current) => current.id === id);\n\n if (existing) {\n const existingLocation = topSports.indexOf(existing);\n\n if (existingLocation >= 0) {\n topSports.splice(existingLocation, 1);\n }\n\n topSports.splice(location - locationShiftUp - 1, 0, existing);\n } else {\n locationShiftUp++;\n }\n }\n\n return topSports.slice(0, top);\n }\n\n getValidTournaments(sportId: number): Tournament[] {\n return this.tournamentsData.tournaments.filter((tournament) => this.filterTournament(tournament, sportId));\n }\n\n private filterTournament(tournament: Tournament, sportId: number): boolean {\n return Boolean(\n tournament.navigation &&\n tournament.navigation.filter &&\n tournament.navigation.filter.visible &&\n tournament.leaguesSection &&\n tournament.leaguesSection.sport &&\n tournament.leaguesSection.sport.id.toString() === sportId.toString(),\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { MarqueeIndexedFixtureView } from '@cds/betting-offer/domain-specific';\nimport { MarqueeRequest } from '@cds/query-objects';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { Observable } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MarqueeApi {\n private cdsApi: BaseCdsApi;\n\n constructor(@Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/marquee' });\n }\n\n getMarquees(request: MarqueeRequest): Observable {\n return this.cdsApi.post(`/fixtures`, request);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MarqueeData, MarqueeRequest } from '@cds/query-objects';\nimport { MarqueeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { MarqueeTile } from '@frontend/sports/types/components/content';\nimport { Observable, map } from 'rxjs';\n\nimport { CompetitionPageType } from './marquee-tile.model';\nimport { MarqueeTileService } from './marquee-tile.service';\n\nexport interface IMarqueeRequestInfo {\n request: MarqueeRequest;\n tiles: MarqueeTile[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MarqueeRequestBuilderService {\n constructor(\n private marqueeConfig: MarqueeConfig,\n private marqueeTileService: MarqueeTileService,\n ) {}\n\n buildForFixture(fixtureId: string): Observable {\n return this.marqueeTileService.getForFixture(fixtureId).pipe(map((sitecoreTiles) => this.buildMarqueeRequest(sitecoreTiles)));\n }\n\n buildForTeamPagesFixture(fixtureIds: string[]): IMarqueeRequestInfo | undefined {\n const sitecoreTiles = this.marqueeTileService.getForTeamPagesFixture(fixtureIds);\n if (sitecoreTiles.length) {\n return this.buildMarqueeRequest(sitecoreTiles);\n }\n\n return;\n }\n\n buildForCompetition(ids: number[], sportId: number, type: CompetitionPageType): Observable {\n return this.marqueeTileService.getForCompetition(ids, sportId, type).pipe(map((tiles) => this.buildMarqueeRequest(tiles)));\n }\n\n buildMarqueeRequest(sitecoreTiles: MarqueeTile[]): IMarqueeRequestInfo {\n const marqueeRequestData: MarqueeData[] = sitecoreTiles.map((tile, index) => {\n return {\n fixtureId: tile.fixtureId,\n minimumOdds: tile.previousOdds,\n requestIndex: index,\n gameTemplateIds: tile.gameTemplateIds,\n gridGroupId: tile.gridGroupId,\n gridGroupIds: tile.gridGroupIds?.join(','),\n ...(tile.gameId && { gameId: tile.gameId }),\n ...(tile.resultId && { resultId: tile.resultId }),\n ...(tile.optionMarketId && { optionMarketId: tile.optionMarketId }),\n ...(tile.optionId && { optionId: tile.optionId }),\n happenings: tile.optionMarketParameters?.happening,\n marketTypes: tile.optionMarketParameters?.marketTypes,\n periods: tile.optionMarketParameters?.period,\n positions: tile.optionMarketParameters?.position,\n optionGroupId: tile.optionGroupId,\n };\n });\n // filter out only tiles with event after the requestIndex has been set to all tiles\n const marqueeData = marqueeRequestData.filter((md) => md.fixtureId);\n\n return {\n request: {\n marqueeData,\n take: this.marqueeConfig.maxTiles,\n },\n tiles: sitecoreTiles,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MarqueeTilesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, combineLatest, first, map, mergeMap, of } from 'rxjs';\n\nimport { MarqueeApi } from '../cds/marquee-api.service';\nimport { IMarqueeRequestInfo, MarqueeRequestBuilderService } from './marquee-request-builder.service';\nimport { MarqueeResponseMapperService } from './marquee-response-mapper.service';\nimport { CompetitonTileRequestModel, Tile } from './marquee-tile.model';\n\n@Injectable({ providedIn: 'root' })\nexport class MarqueeService {\n private configReady: Observable;\n\n constructor(\n private marqueeRequestBuilderService: MarqueeRequestBuilderService,\n private marqueeResponseMapperService: MarqueeResponseMapperService,\n private marqueeApi: MarqueeApi,\n marqueeTilesConfig: MarqueeTilesConfig,\n ) {\n this.configReady = marqueeTilesConfig.whenReady.pipe(first());\n }\n\n loadMarquees(fixtureId: string): Observable {\n return combineLatest([this.marqueeRequestBuilderService.buildForFixture(fixtureId), this.configReady]).pipe(\n mergeMap(([marqueeRequest]) => this.callApi(marqueeRequest)),\n );\n }\n\n loadMarqueesFor(competitonTileRequestModel: CompetitonTileRequestModel): Observable {\n const marqueeRequest$ = this.marqueeRequestBuilderService.buildForCompetition(\n competitonTileRequestModel.competitionIds,\n competitonTileRequestModel.sportId,\n competitonTileRequestModel.type,\n );\n\n return combineLatest([marqueeRequest$, this.configReady]).pipe(\n mergeMap(([marqueeRequest]) => {\n const dateInterval = competitonTileRequestModel.interval || {};\n\n marqueeRequest.request.from = dateInterval.from;\n marqueeRequest.request.to = dateInterval.to;\n\n return this.callApi(marqueeRequest);\n }),\n );\n }\n\n loadTeamPagesMarquees(fixtureIds: string[]): Observable {\n return this.configReady.pipe(\n mergeMap(() => {\n const marqueeRequest = this.marqueeRequestBuilderService.buildForTeamPagesFixture(fixtureIds);\n if (marqueeRequest) {\n return this.callApi(marqueeRequest);\n }\n\n return of([]);\n }),\n );\n }\n\n private callApi(marqueeRequest: IMarqueeRequestInfo): Observable {\n return this.marqueeApi\n .getMarquees(marqueeRequest.request)\n .pipe(map((responseMarquee) => this.marqueeResponseMapperService.mapFixtures(responseMarquee || [], marqueeRequest.tiles)));\n }\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { CompetitionBatchRequest } from '@cds/query-objects';\nimport { CompetitionStatistics } from '@cds/statistics/competition';\nimport { FixtureStatistics } from '@cds/statistics/fixture';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { Observable, firstValueFrom } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class StatisticsApi {\n private cdsApi: BaseCdsApi;\n\n constructor(@Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/statistics' });\n }\n\n getCompetitionStatistics(\n competitionId: number,\n sportId: number,\n stageId?: number,\n groupId?: number,\n ): Observable {\n return this.cdsApi.get('/competition', {\n competitionId,\n sportId,\n stageId,\n groupId,\n });\n }\n\n getCompetitionStatisticsBatch(competitionIds: string, sportId: number): Observable {\n return this.cdsApi.get('/competition-batch', {\n competitionIds,\n sportId,\n });\n }\n\n getCompetitionStatisticsBatchV2(competitionBatchRequest: CompetitionBatchRequest): Observable {\n return this.cdsApi.post('/competition-batch/v2', competitionBatchRequest);\n }\n\n getFixtureStatistics(fixtureId: string, sportId: number): Promise {\n return firstValueFrom(\n this.cdsApi.get('/fixture', {\n fixtureId,\n sportId,\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CompetitionBatchRequest } from '@cds/query-objects';\nimport { CompetitionStatistics } from '@cds/statistics/competition';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Observable, catchError, forkJoin, map, of } from 'rxjs';\n\nimport { StatisticsApi } from '../cds/statistics-api.service';\nimport { StatisticsData } from './statistics.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StatisticsApiService {\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n loggerFactory: LoggerFactory,\n private cdsStatsService: StatisticsApi,\n ) {\n this.logger = loggerFactory.getLogger('StatisticsApiService');\n }\n\n getStats(eventId: string, leagueId: number, sportId: number, stageId?: number, groupId?: number): Observable {\n const leagueStatistics$ = this.cdsStatsService.getCompetitionStatistics(leagueId, sportId, stageId, groupId);\n const eventStatistics$ = this.cdsStatsService.getFixtureStatistics(eventId, sportId);\n\n return forkJoin([leagueStatistics$, eventStatistics$]).pipe(\n map(([leagueStatistics, eventStatistics]) => {\n return { eventStats: eventStatistics, leagueStats: leagueStatistics!.rows };\n }),\n catchError((error: any) => {\n this.logError('getStats', error);\n\n return of({ eventStats: undefined, leagueStats: [] });\n }),\n );\n }\n\n getCompetitionsStatistics(competitionIds: number[], sportId: number): Observable {\n return this.cdsStatsService.getCompetitionStatisticsBatch(competitionIds.join(','), sportId).pipe(\n map((value) => value ?? []),\n catchError((error: any) => {\n this.logError('getCompetitionsStatistics', error);\n\n return of([]);\n }),\n );\n }\n\n getCompetitionsBatchStatistics(competitionBatchRequest: CompetitionBatchRequest): Observable {\n return this.cdsStatsService.getCompetitionStatisticsBatchV2(competitionBatchRequest).pipe(\n map((value) => value ?? []),\n catchError((error: any) => {\n this.logError('competition-batch/v2', error);\n\n return of([]);\n }),\n );\n }\n\n private logError(methodName: string, error: any): void {\n this.logger.error(error, `Failed to load statistics from ${methodName}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AnimationConfig, BetradarVisualizationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { NumberDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { keyBy } from 'lodash-es';\n\nclass SportAnimation {\n [key: number]: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AnimationProviderService {\n private readonly ms2Animations: SportAnimation;\n private readonly betRadarStickySupportedSports: NumberDictionary;\n private readonly betRadarSupportedSports: NumberDictionary;\n private readonly pitchLogoSupportedSports: NumberDictionary;\n private readonly sideLineLogoSupportedSports: NumberDictionary;\n\n constructor(\n animationConfig: AnimationConfig,\n private betradarVisualizationConfig: BetradarVisualizationConfig,\n ) {\n this.ms2Animations = {\n [SportConstant.Tennis]: animationConfig.isTennisAnimationEnabled,\n [SportConstant.Basketball]: animationConfig.isBasketballAnimationEnabled,\n [SportConstant.Icehockey]: animationConfig.isIceHockeyAnimationEnabled,\n };\n this.betRadarSupportedSports = keyBy(this.betradarVisualizationConfig.supportedSports, (sport) => sport);\n this.betRadarStickySupportedSports = keyBy(this.betradarVisualizationConfig.stickyAddonSupportedSports, (sport) => sport);\n this.pitchLogoSupportedSports = keyBy(this.betradarVisualizationConfig.pitchLogoEnabled, (sport) => sport);\n this.sideLineLogoSupportedSports = keyBy(this.betradarVisualizationConfig.sideLineLogoEnabled, (sport) => sport);\n }\n\n get sportAnimations(): SportAnimation {\n return this.ms2Animations;\n }\n\n get betRadarStickySupportedAnimations(): NumberDictionary {\n return this.betRadarStickySupportedSports;\n }\n\n get betRadarSupportedAnimations(): NumberDictionary {\n return this.betRadarSupportedSports;\n }\n\n get pitchLogoEnabledSports(): NumberDictionary {\n return this.pitchLogoSupportedSports;\n }\n\n get sideLineLogoEnabledSports(): NumberDictionary {\n return this.sideLineLogoSupportedSports;\n }\n\n get betRadarSupportedCoverageLevel(): { [sportId: number]: number } {\n return this.betradarVisualizationConfig.supportedCoverageLevel;\n }\n\n get teamInvertEnabledCompetitions(): { [sportId: number]: number[] } {\n return this.betradarVisualizationConfig.teamInvertCompetitions;\n }\n}\n","export enum EventDetailsColumnType {\n Video = 0,\n Animation = 1,\n Stats = 2,\n}\n","import { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\n\nexport interface MediaSetEventBase {\n tab: EventDetailsColumnType | null;\n source: MediaEventSource;\n trackingVideoSource: TrackingVideoSource;\n}\n\nexport interface MediaSetEvent extends MediaSetEventBase {\n event: EventModel;\n}\n\nexport interface MediaSetEventId extends MediaSetEventBase {\n eventId: string;\n}\n\nexport interface MediaSetEventInternal extends MediaSetEvent {\n hasVideo: boolean;\n hasAnimation: boolean;\n hasStats: boolean;\n showStatsCenterButton?: boolean;\n}\n\nexport enum MediaEventSource {\n Default = 0,\n Grid = 1,\n EventDetails = 2,\n EventSwitcher = 3,\n Scoreboard = 4,\n}\n\nexport enum MediaModuleContextPage {\n Default = 0,\n EventDetails = 1,\n}\n\nexport interface EventSwitcherItem {\n id: number;\n name: string;\n children?: EventSwitcherEventItem[];\n}\n\nexport interface EventSwitcherEventItem {\n id: string;\n name: string;\n}\n\nexport interface MediaPersistentState {\n video: MediaTabState & { pinned: boolean };\n animation: MediaTabState;\n statistics: MediaTabState;\n activeTab: EventDetailsColumnType;\n}\n\nexport interface RestoreStatePayload extends MediaPersistentState {\n events: { [key: number]: MediaSetEventInternal };\n}\n\nexport interface SetMediaWidgetContextPayload {\n page: MediaModuleContextPage;\n eventId: string | null;\n}\nexport interface MediaTab {\n tabId: number;\n trackingSource: TrackingVideoSource;\n}\n\nexport interface MediaTabState {\n eventId: string | null;\n}\n","import { Injectable } from '@angular/core';\n\nimport { AnimationProviderService } from '@frontend/sports/betting-offer/feature/animation';\nimport { EventModel, getBackgroundColor } from '@frontend/sports/betting-offer/feature/model';\nimport { ImgConfigurationData, MediaConfig } 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 { NativeAppService } from '@frontend/vanilla/core';\n\n@Injectable({ providedIn: 'root' })\nexport class EventDetailsHelperService {\n sportTypes: { [key: number]: string } = {\n 4: 'soccer',\n 5: 'tennis',\n 7: 'basketball',\n };\n\n constructor(\n private mediaConfig: MediaConfig,\n private animationProvider: AnimationProviderService,\n private imgConfig: ImgConfigurationData,\n private nativeApp: NativeAppService,\n ) {}\n\n hasStats(event: EventModel | null): boolean {\n const isLiveStatsAvailable = !!(event && event.scoreboard.started && event.scoreboard.statistics);\n const isPreMatchStatsAvailable = !!(event && (event.hasFixtureStats || event.hasLeagueStats));\n const areParticipantsAvailable = !!(event && event.participants && event.participants.length);\n const isLeagueTableOnlyAvailable = !!(event && !event.hasFixtureStats && event.hasLeagueStats);\n const isGenericBetRadarIdAvailable = !!(event && event.statsId && this.mediaConfig.showStatsCenterButton);\n\n return !!(\n (event &&\n (this.sportTypes[event.sport.id] || this.nativeApp.isTerminal) &&\n (isLeagueTableOnlyAvailable || areParticipantsAvailable) &&\n (isLiveStatsAvailable || isPreMatchStatsAvailable)) ||\n isGenericBetRadarIdAvailable\n );\n }\n\n hasAnimation(event: EventModel | null): boolean {\n return !!(\n event &&\n event.live &&\n !!this.animationProvider.sportAnimations[event.sport.id] &&\n event.participants &&\n !!event.participants.length\n );\n }\n\n hasBetRadarMappingID(event: EventModel | null): boolean {\n return !!(event && event.statsId && event.sport.id === SportConstant.Soccer);\n }\n\n hasBetRadarVisualization(event: EventModel | null): boolean {\n const result = !!(\n event &&\n event.betRadarVisualizationId &&\n event.betRadarCoverageLevel &&\n event.betRadarCoverageLevel >= this.animationProvider.betRadarSupportedCoverageLevel[event.sport.id] &&\n event.live &&\n this.animationProvider.betRadarSupportedAnimations[event.sport.id] &&\n event.participants &&\n !!event.participants.length\n );\n\n return result;\n }\n\n hasImgAnimationVisualization(event: EventModel): boolean {\n const animationShowTime = DateProviderService.addHours(DateProviderService.getNow(), this.imgConfig.hoursToShowImgAnimation);\n const showPrematchAnimation =\n animationShowTime.getTime() >= event.startDate.getTime() && DateProviderService.getNow().getTime() <= event.startDate.getTime();\n\n return !!((showPrematchAnimation || event.live) && event.imgEventId);\n }\n\n hasBetRadarStickyAddonVisualization(event: EventModel | null): boolean {\n return !!(event && this.hasBetRadarVisualization(event) && this.animationProvider.betRadarStickySupportedAnimations[event.sport.id]);\n }\n\n getBackgroundColor(event: EventModel, useSolid: boolean): string | undefined {\n return getBackgroundColor(event, useSolid);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AnimationProviderService } from '@frontend/sports/betting-offer/feature/animation';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ImgConfigurationData, MediaConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SPORTS_WITH_MAPPED_STATS } from '@frontend/sports/common/core/data-access/constants';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\n\n@Injectable({ providedIn: 'root' })\nexport class EventMediaHelperService {\n constructor(\n private animationProvider: AnimationProviderService,\n private mediaConfig: MediaConfig,\n private imgConfig: ImgConfigurationData,\n ) {}\n\n hasVideo(event: EventModel): boolean {\n return !!event.stream && !!event.stream.id;\n }\n\n hasLiveVideo(event: EventModel): boolean {\n return event.live && this.hasVideo(event);\n }\n\n hasAnimationOrSimulation(event: EventModel): boolean {\n return this.isRunningBallSupported(event) || this.isAnimationSupported(event);\n }\n\n hasAnimation(event: EventModel): boolean {\n return this.isAnimationSupported(event);\n }\n\n hasBetradarAnimation(event: EventModel): boolean {\n return this.hasBetradarAnimationSupported(event);\n }\n\n hasStats(event: EventModel): boolean {\n const currentEventStats = event.scoreboard.visible && event.scoreboard.started;\n\n return Boolean(\n (!!event.statsId && this.mediaConfig.showStatsCenterButton) ||\n (SPORTS_WITH_MAPPED_STATS.includes(event.sport.id) && (event.hasFixtureStats || event.hasLeagueStats || currentEventStats)),\n );\n }\n\n private isAnimationSupported(event: EventModel): boolean {\n return this.hasAnimationSupported(event) || this.hasBetradarAnimationSupported(event) || this.hasImgAnimationSupported(event);\n }\n\n private isRunningBallSupported(event: EventModel): boolean {\n return !!(event.live && event.runningBallDataId && event.participants?.length);\n }\n\n private hasAnimationSupported(event: EventModel): boolean {\n return !!(event.live && this.animationProvider.sportAnimations[event.sport.id] && event.participants && event.participants.length);\n }\n\n private hasBetradarAnimationSupported(event: EventModel): boolean {\n return !!(\n event.live &&\n event.betRadarVisualizationId &&\n event.betRadarCoverageLevel &&\n event.betRadarCoverageLevel >= this.animationProvider.betRadarSupportedCoverageLevel[event.sport.id] &&\n event.participants &&\n event.participants.length &&\n this.animationProvider.betRadarSupportedAnimations[event.sport.id]\n );\n }\n\n private hasImgAnimationSupported(event: EventModel): boolean {\n const animationShowTime = DateProviderService.addHours(DateProviderService.getNow(), this.imgConfig.hoursToShowImgAnimation);\n const showPrematchAnimation =\n animationShowTime.getTime() >= event.startDate.getTime() && DateProviderService.getNow().getTime() <= event.startDate.getTime();\n\n return !!((showPrematchAnimation || event.live) && event.imgEventId);\n }\n}\n","export enum TrackingVideoSource {\n Default = 'Default',\n Grid = 'Event List Video Icon',\n EventDetails = 'Event Details',\n EventSwitcher = 'Media Module Events Selector',\n MediaColumn = 'Media Module Video Play Icon',\n VideoPlay = 'Play Button',\n ShowcaseModule = 'Showcase Play Button',\n}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { MediaSetEvent, MediaSetEventId, SetMediaWidgetContextPayload } from '@frontend/sports/grid/media/feature/model';\nimport { createAction, props } from '@ngrx/store';\n\nexport class MediaApiActions {\n private static readonly SET_EVENT = '@media/SET_EVENT';\n private static readonly SET_EVENT_ID = '@media/SET_EVENT_ID';\n private static readonly TOGGLE_PLAYING = '@media/TOGGLE_PLAYING';\n private static readonly SET_MEDIA_WIDGET_CONTEXT = '@media/SET_MEDIA_WIDGET_CONTEXT';\n\n static readonly togglePlaying = createAction(MediaApiActions.TOGGLE_PLAYING, props<{ value: boolean }>());\n static readonly setMediaWidgetContext = createAction(MediaApiActions.SET_MEDIA_WIDGET_CONTEXT, pprops());\n static readonly setEvent = createAction(MediaApiActions.SET_EVENT, pprops());\n static readonly setEventId = createAction(MediaApiActions.SET_EVENT_ID, pprops());\n}\n","import { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventSwitcherItem, MediaModuleContextPage, MediaTabState } from '@frontend/sports/grid/media/feature/model';\nimport { TrackingVideoSource } from '@frontend/sports/tracking/feature';\nimport { createFeatureSelector, createSelector } from '@ngrx/store';\n\nexport const mediaInitialState: MediaState = {\n active: false,\n video: {\n pinned: false,\n autoplay: false,\n playing: false,\n dropdownEvents: [],\n eventId: null,\n unpinInfoVisible: false,\n pinEnabled: false,\n trackingSource: TrackingVideoSource.Default,\n },\n activeTab: EventDetailsColumnType.Video,\n animation: { eventId: null },\n statistics: { eventId: null },\n eventInfos: {},\n context: { page: MediaModuleContextPage.Default, eventId: null },\n isCollapsed: false,\n mediaExpandState: {\n isLocationAllowsExpand: false,\n isExpanded: false,\n restoreExpandState: false,\n isDefaultExpanded: false,\n },\n};\n\nexport const mediaFeatureKey = 'media';\n\nexport interface IMediaRootState {\n media: MediaState;\n}\n\nexport const mediaStateSelector = createFeatureSelector(mediaFeatureKey);\n\nexport const mediaExpandStateSelector = createSelector(mediaStateSelector, (state: MediaState) => state.mediaExpandState);\n\nexport const mediaEventInfoSelector = (eventId: string) => createSelector(mediaStateSelector, (state: MediaState) => state.eventInfos[eventId]);\n\nexport const mediaActiveSelector = createSelector(mediaStateSelector, (state: MediaState) => state.active);\n\nexport const mediaExpandedStateSelector = createSelector(mediaStateSelector, (state: MediaState) => state.mediaExpandState);\n\ninterface VideoState extends MediaTabState {\n pinned: boolean;\n autoplay: boolean;\n playing: boolean;\n dropdownEvents: EventSwitcherItem[];\n unpinInfoVisible: boolean;\n pinEnabled: boolean;\n trackingSource: TrackingVideoSource;\n}\n\nexport interface MediaModuleContext {\n page: MediaModuleContextPage;\n eventId: string | null;\n}\n\nexport interface EventInfo {\n event: EventModel;\n hasVideo: boolean;\n hasAnimation: boolean;\n hasStats: boolean;\n}\n\nexport interface MediaState {\n active: boolean;\n activeTab: EventDetailsColumnType;\n video: VideoState;\n animation: MediaTabState;\n statistics: MediaTabState;\n eventInfos: { [eventId: string]: EventInfo };\n context: MediaModuleContext;\n isCollapsed: boolean;\n mediaExpandState: MediaExpandState;\n pendingEsport?: EventModel;\n}\n\nexport interface MediaExpandState {\n isExpanded: boolean;\n isLocationAllowsExpand: boolean;\n restoreExpandState: boolean;\n isDefaultExpanded: boolean;\n}\n\nexport interface EventsSelector {\n events: EventSwitcherItem[];\n}\n","/* eslint-disable no-param-reassign */\nimport { EventModel, LeagueModel, RegionModel, SportModel } from '@frontend/sports/betting-offer/feature/model';\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport {\n CollapsedState,\n DateGroup,\n EventGroup,\n FormGroup,\n GridEvent,\n GridGrouping,\n GridModel,\n GridSorting,\n Group,\n GroupBadge,\n LeagueGroup,\n SubscriptionTopic,\n} from '@frontend/sports/grid/core/feature/model';\nimport { createReducer, on } from '@ngrx/store';\nimport { produce } from 'immer';\nimport { ceil, clone, differenceBy, find, findIndex, flatten, isArray, isNumber, keyBy, sortBy } from 'lodash-es';\n\nimport { GridActions, IGridEventsToReplace, IGridGroup } from './grid.actions';\nimport { IGridState, gridInitialState } from './grid.state';\n\nconst producer = (\n state: IGridState,\n action: TAction,\n gridUpdate: (model: GridModel) => GridModel,\n): IGridState => {\n const currentGrid = state[action.payload.id];\n\n return {\n ...state,\n [action.payload.id]: gridUpdate(currentGrid),\n };\n};\n\nexport const gridReducer = createReducer(\n gridInitialState,\n on(GridActions.init, (state, action) => ({\n ...state,\n [action.payload.id]: action.payload,\n })),\n on(GridActions.addEvents, (state, action) =>\n producer(state, action, (grid) => addEvents(grid, action.payload.events, { grouping: action.payload.grouping })),\n ),\n on(GridActions.setEvents, (state, action) =>\n producer(state, action, (grid) =>\n addEvents(grid, action.payload.events, { set: true, topic: action.payload.topic, grouping: action.payload.grouping }),\n ),\n ),\n on(GridActions.updateEvents, (state, action) => producer(state, action, (grid) => updateEvent(grid, action.payload.event))),\n on(GridActions.replaceEvents, (state, action) => producer(state, action, (grid) => replaceEvents(grid, action.payload.events))),\n on(GridActions.removeEvents, (state, action) => producer(state, action, (grid) => removeEvents(grid, action.payload.eventIds))),\n on(GridActions.collapseEvents, (state, action) =>\n producer(state, action, (grid) => collapseEvent(grid, action.payload.eventId, action.payload.optionGroupId)),\n ),\n on(GridActions.setActiveGroup, (state, action) =>\n producer(state, action, (grid) => setActiveGroup(grid, action.payload.columnId, action.payload.groupId)),\n ),\n on(GridActions.setGroupCollapse, (state, action) => producer(state, action, (grid) => setGroupCollapse(grid, action.payload.groupId))),\n on(GridActions.addGroups, (state, action) => producer(state, action, (grid) => addGroups(grid, action.payload.groups))),\n on(GridActions.updateGroupsBadges, (state, action) => producer(state, action, (grid) => updateGroupsBadges(grid, action.payload.badges))),\n on(GridActions.changeSorting, (state, action) => producer(state, action, (grid) => changeSorting(grid, action.payload.sorting))),\n on(GridActions.replaceEvent, (state, action) =>\n producer(state, action, (grid) => replaceEvent(grid, action.payload.targetFixtureId, action.payload.newFixture)),\n ),\n on(GridActions.destroy, (state, action): IGridState => {\n const copy = { ...state };\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete copy[action.gridId];\n\n return copy;\n }),\n);\n\nexport function mapLeague(league: LeagueModel, region: RegionModel, _sport: SportModel): LeagueGroup {\n const groupId = league.parentLeagueId || league.id;\n\n return {\n id: groupId,\n name: league.name,\n count: 0,\n events: [],\n siblings: [league.id],\n region,\n collapsed: false,\n collapsible: true,\n deferred: false,\n canBeFavourited: true,\n imageProfile: league.imageProfile,\n };\n}\n\nexport function getLeague(grid: GridModel, event: EventModel): LeagueGroup | undefined {\n if (!grid.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n let league = find(grid.groups, (current) => current.id === event.league.parentLeagueId || current.id === event.league.id) as LeagueGroup;\n\n if (!league) {\n league = mapLeague(event.league, event.region, event.sport);\n grid.groups.push(league);\n }\n\n return league;\n}\n\nexport function changeSorting(grid: GridModel, sorting?: GridSorting): GridModel {\n return produce(grid, (draft) => {\n if (draft) {\n draft.sorting = sorting;\n }\n });\n}\n\nexport function mapForm(id: number, winCount: number): FormGroup {\n return {\n id,\n name: '',\n winCount,\n count: 0,\n events: [],\n collapsed: false,\n collapsible: true,\n deferred: false,\n };\n}\n\nexport function mapDate(id: number, date: Date): DateGroup {\n return {\n id,\n name: date.toDateString(),\n date,\n count: 0,\n events: [],\n collapsed: false,\n collapsible: true,\n deferred: false,\n };\n}\n\nexport function getDate(grid: GridModel, event: EventModel): DateGroup | undefined {\n if (!grid.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n // to make the id a bit more readable\n const day = 24 * 60 * 60 * 1000;\n const base = new Date(event.startDate);\n\n base.setHours(0);\n base.setMinutes(0);\n base.setSeconds(0);\n base.setMilliseconds(0);\n\n const id = ceil(base.getTime() / day);\n\n let group = find(grid.groups, (current) => current.id === id) as DateGroup;\n\n if (!group) {\n group = mapDate(id, base);\n grid.groups.push(group);\n }\n\n return group;\n}\n\nexport function getForm(grid: GridModel, event: EventModel, grouping: GridGrouping): FormGroup | undefined {\n if (!grid.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n let id = 0;\n\n switch (grouping) {\n case GridGrouping.AwayForm:\n id = event.fixtureForm?.awayTeamAwayForm?.winCount ?? 0;\n break;\n case GridGrouping.OverallForm:\n const homeWins = event.fixtureForm?.overallHomeTeamForm?.winCount;\n const awayWins = event.fixtureForm?.overallAwayTeamForm?.winCount;\n id = Math.max(homeWins ?? 0, awayWins ?? 0);\n break;\n default:\n id = event.fixtureForm?.homeTeamHomeForm?.winCount ?? 0;\n }\n\n let group = find(grid.groups, (current) => current.id === id) as FormGroup;\n\n if (!group) {\n group = mapForm(id, id);\n grid.groups.push(group);\n }\n\n return group;\n}\n\nexport function getGroup(grid: GridModel, entity: EventModel | number): EventGroup | undefined {\n if (!grid.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n if (grid.grouping === GridGrouping.None) {\n if (grid.groups.length === 0) {\n grid.groups.push({\n collapsed: false,\n collapsible: false,\n count: 0,\n deferred: false,\n events: [],\n id: 1,\n name: '',\n });\n }\n\n return grid.groups[0];\n }\n\n if (!entity) {\n error('Entity should be defined to query group');\n return;\n }\n\n if (!isNumber(entity)) {\n switch (grid.grouping) {\n case GridGrouping.Date:\n return getDate(grid, entity);\n case GridGrouping.League:\n return getLeague(grid, entity);\n case GridGrouping.HomeForm:\n case GridGrouping.AwayForm:\n case GridGrouping.OverallForm:\n return getForm(grid, entity, grid.grouping);\n }\n }\n\n return find(grid.groups, (group) => group.id === entity);\n}\n\nexport function setActiveGroup(grid: GridModel, columnId: string, groupId: string): GridModel {\n return produce(grid, (draft) => {\n const currentColumn = find(draft.columns, (current) => current.id === columnId);\n\n if (!currentColumn) {\n error('Could not find specified column');\n return;\n }\n\n const currentGroup = find(currentColumn.groups, (current) => current.id === groupId);\n\n if (!currentGroup) {\n error('Could not find specified group');\n return;\n }\n\n currentColumn.groups.forEach((current) => (current.active = current.id === currentGroup.id));\n\n if (currentGroup.extended) {\n draft.columns.forEach((column) => (column.enabled = column === currentColumn));\n } else {\n draft.columns.forEach((column) => (column.enabled = true));\n }\n });\n}\n\nexport function setActiveGroupState(grid: GridModel, state: IGridGroup[]): GridModel {\n let result = grid;\n const groups = keyBy(result.columns[0]?.groups, (group) => group.id);\n const ordered = sortBy(state, (current) => groups[current.groupId] && groups[current.groupId].extended);\n\n for (const current of ordered) {\n result = setActiveGroup(result, current.columnId, current.groupId);\n }\n\n return result;\n}\n\nexport function setStateCollapse(grid: GridModel, collapsedGroups: number[], collapsedEvents: StringDictionary): GridModel {\n return produce(grid, (draft) => {\n draft.collapsed.groups = collapsedGroups;\n draft.collapsed.events = collapsedEvents;\n });\n}\n\nexport function setGroupCollapse(grid: GridModel, groupId: number): GridModel {\n return produce(grid, (draft) => {\n if (!draft.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n const existing = draft.groups.find((x) => x.id === groupId);\n\n if (!existing) {\n error('Group not found');\n return;\n }\n\n if (!existing.collapsible) {\n error('Group not collapsible');\n return;\n }\n\n existing.collapsed = !existing.collapsed;\n\n const position = draft.collapsed.groups.indexOf(existing.id);\n\n if (existing.collapsed) {\n if (position === -1) {\n draft.collapsed.groups.push(existing.id);\n }\n } else {\n if (position === -1) {\n draft.collapsed.groups.splice(existing.id, 1);\n }\n }\n });\n}\n\nexport function setGroupCollapseThreshold(grid: GridModel, threshold: number): GridModel {\n return produce(grid, (draft) => {\n if (draft.grouping === GridGrouping.None) {\n return;\n }\n\n let total = 0;\n\n draft.groups.forEach((group, index) => {\n if (group.events.length === 0) {\n group.collapsed = true;\n group.deferred = true;\n } else if (threshold) {\n total += group.events.length;\n group.collapsed = index !== 0 && total > threshold;\n }\n });\n });\n}\n\nexport function addGroups(grid: GridModel, groups: Group[]): GridModel {\n return produce(grid, (draft) => {\n draft.columns.forEach((column) => {\n groups.forEach((group) => {\n const existing = column.groups.find((current) => current.id === group.id && current.extended === group.extended);\n\n if (existing) {\n existing.name = group.name;\n existing.visible = true;\n } else {\n column.groups.push(group);\n }\n });\n //TODO consider refactoring this file!\n // eslint-disable-next-line max-lines\n });\n });\n}\n\nexport function updateGroupsBadges(grid: GridModel, badges: Record): GridModel {\n return produce(grid, (draft) => {\n draft.columns.forEach((column) => {\n column.groups.forEach((group) => {\n group.badge = badges[group.id];\n });\n });\n });\n}\n\nexport function addLeague(grid: GridModel, league: LeagueGroup): GridModel {\n return produce(grid, (draft) => {\n if (!draft.groups) {\n error('Groupped grid model should define groups');\n return;\n }\n\n const existing = draft.groups.find((x) => x.id === league.id) as LeagueGroup;\n\n if (existing) {\n if (!existing.siblings.includes(league.siblings[0])) {\n existing.siblings.push(league.siblings[0]);\n }\n } else {\n draft.groups.push(league);\n }\n });\n}\n\nexport function collapseEvent(grid: GridModel, eventId: string, optionGroupId?: string): GridModel {\n // the new version of this function was proposed by Ventsislav Mladenov\n const group = grid.groups.find((current) => current.events.some((currentEvent) => currentEvent.id === eventId));\n if (!group) {\n console.error('Expected to have group but not found');\n\n return grid;\n }\n const event = group.events.find((current) => current.id === eventId);\n if (!event) {\n console.error('Event not found');\n\n return grid;\n }\n const newGrid = {\n ...grid,\n collapsed: {\n ...grid.collapsed,\n events: {\n ...grid.collapsed.events,\n [event.id]: grid.collapsed.events[event.id]\n ? {\n collapsed: grid.collapsed.events[event.id].collapsed,\n collapsedChildren: [...grid.collapsed.events[event.id].collapsedChildren],\n }\n : {\n collapsed: false,\n collapsedChildren: [],\n },\n },\n },\n };\n const eventState = newGrid.collapsed.events[event.id];\n if (optionGroupId) {\n const index = eventState.collapsedChildren.indexOf(optionGroupId);\n if (index === -1) {\n eventState.collapsedChildren.push(optionGroupId);\n } else {\n eventState.collapsedChildren.splice(index, 1);\n }\n } else {\n eventState.collapsed = !eventState.collapsed;\n }\n\n return newGrid;\n}\n\nexport function updateEvent(grid: GridModel, event: EventModel): GridModel {\n return replaceEvents(grid, { currentEvent: event });\n}\n\nexport function replaceEvents(grid: GridModel, events: IGridEventsToReplace | IGridEventsToReplace[]): GridModel {\n return produce(grid, (draft) => {\n if (!draft) {\n return;\n }\n\n const eventsArray = isArray(events) ? events : [events];\n\n eventsArray.forEach((event) => {\n const group = getGroup(draft as GridModel, event.currentEvent);\n\n if (!group) {\n error('Expected to have group but not found');\n return;\n }\n\n const index = findIndex(group.events, (current) => current.id === event.currentEvent.id);\n\n if (index < 0) {\n error('Event not found', event.currentEvent);\n return;\n }\n\n group.events[index] = clone(event.newEvent || event.currentEvent);\n });\n });\n}\n\nexport function getEvents(grid: GridModel): EventModel[] {\n return flatten(grid.groups.map((group) => group.events));\n}\n\n//TODO please don't modify this function any further without breaking it into smaller functions, it's already too complex\n// eslint-disable-next-line max-lines-per-function\nexport function addEvents(\n grid: GridModel,\n events: EventModel | EventModel[],\n options: { set?: boolean; topic?: SubscriptionTopic; grouping?: GridGrouping } = {},\n): GridModel {\n return produce(grid, (draft) => {\n if (!events || !draft) {\n return;\n }\n\n const collection = isArray(events) ? events : [events];\n\n if (collection.length === 0 || !grid || !draft) {\n return;\n }\n\n if (!draft.groups || options.set) {\n draft.groups = [];\n }\n\n if (options.topic !== undefined) {\n draft.topic = options.topic;\n }\n\n if (options.grouping !== undefined) {\n draft.grouping = options.grouping;\n }\n\n collection.forEach((event) => {\n const group = getGroup(draft as GridModel, event);\n\n if (!group) {\n error('Expected to have group but not found');\n return;\n }\n\n if (group.events.find((gridEvent) => gridEvent.id === event.id)) {\n return;\n }\n group.events.push(event);\n group.deferred = false;\n group.collapsed = draft.collapsed.groups.includes(group.id);\n });\n\n if (!grid.disableGroupSorting) {\n draft.groups.forEach((group) => {\n group.events = sortBy(group.events, (event) => event.startDate);\n\n if (group.count < group.events.length) {\n group.count = group.events.length;\n }\n });\n }\n\n if (!draft.groupingThreshold) {\n return;\n }\n\n let visible = flatten(draft.groups.map((group) => group.events)).length;\n const initial = (grid.groups || []).length === 0;\n\n differenceBy(draft.groups, grid.groups, (group) => group.id).forEach((group, index) => {\n if (!initial || index !== 0) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n group.collapsed = visible >= draft.groupingThreshold!;\n }\n\n visible += group.events.length;\n });\n });\n}\n\nexport function removeEvents(grid: GridModel, eventIds: string[]): GridModel {\n return produce(grid, (draft) => {\n draft.groups.forEach((group) => {\n if (group.events.some((e) => eventIds.includes(e.id))) {\n group.events = group.events.filter((e) => eventIds.every((id) => id !== e.id));\n }\n });\n draft.groups = draft.groups.filter((g) => g.events.length > 0);\n });\n}\n\nexport function replaceEvent(grid: GridModel, targetFixtureId: string, newFixture: GridEvent): GridModel {\n return produce(grid, (draft) => {\n draft.groups.forEach((group) => {\n if (group.events.some((e) => e.id === targetFixtureId)) {\n group.events = group.events.map((event) => (event.id === targetFixtureId ? newFixture : event));\n }\n });\n });\n}\n\nfunction error(message?: unknown, ...optionalParams: unknown[]) {\n console.error(message, optionalParams);\n}\n","import { Injectable } from '@angular/core';\n\nimport { StringDictionary, isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { GridModel } from '@frontend/sports/grid/core/feature/model';\nimport { flatMap, keyBy, keys, now } from 'lodash-es';\n\nexport interface EventCollapsedState {\n until: Date;\n collapsed: boolean;\n collapsedChildren: string[];\n}\n\nexport interface GroupCollapsedState {\n collapsed: boolean;\n}\n\nexport interface ColumnActiveState {\n index: number;\n group: string;\n extended: boolean;\n}\n\nexport interface GridStoreState {\n groups: number[];\n events: StringDictionary;\n columns: ColumnActiveState[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class GridStoreService {\n private state = new Map();\n\n set(grid: GridModel, group?: number): void {\n const actualState = this.get(grid.id);\n\n const events = this.getEventsState(grid);\n const columns = this.getColumnState(grid);\n const groups = actualState ? actualState.groups : [];\n\n if (group) {\n const groupIndex = groups.indexOf(group);\n\n if (groupIndex === -1) {\n groups.push(group);\n } else {\n groups.splice(groupIndex, 1);\n }\n }\n\n if (columns.length > 0 || groups.length > 0 || keys(events).length > 0) {\n this.state.set(grid.id, { events, columns, groups });\n } else {\n this.state.delete(grid.id);\n }\n }\n\n get(id: string): GridStoreState | undefined {\n const expiry = now();\n\n for (const state of this.state.values()) {\n // eslint-disable-next-line guard-for-in\n for (const eventKey in state.events) {\n const event = state.events[eventKey];\n\n if (event.until.getTime() < expiry) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete state.events[eventKey];\n }\n }\n }\n\n return this.state.get(id);\n }\n\n private getColumnState(grid: GridModel): ColumnActiveState[] {\n return grid.columns\n .map((column, index) => {\n const activeIndex = column.groups.findIndex((group) => group.active);\n\n if (activeIndex === -1 || activeIndex === index) {\n return;\n }\n const active = column.groups[activeIndex];\n\n return {\n index,\n group: active.id,\n extended: active.extended,\n };\n })\n .filter(isDefined);\n }\n\n private getEventsState(grid: GridModel): StringDictionary {\n const state: StringDictionary = {};\n const until = now();\n\n const events = flatMap(grid.groups, (group) => group.events);\n const eventsMap = keyBy(events, (event) => event.id);\n\n // eslint-disable-next-line guard-for-in\n for (const id in grid.collapsed.events) {\n const event = eventsMap[id];\n const eventState = grid.collapsed.events[id];\n\n if (!event || event.cutOffDate.getTime() <= until) {\n continue;\n }\n\n if (eventState.collapsed || eventState.collapsedChildren.length > 0) {\n state[id] = {\n until: event.cutOffDate,\n collapsed: eventState.collapsed,\n collapsedChildren: eventState.collapsedChildren,\n };\n }\n }\n\n return state;\n }\n}\n","import { EventDetailsColumnType } from '@frontend/sports/betting-offer/feature/model';\nimport { EventFactory, EventOption, GridSourceEvent } from '@frontend/sports/grid/core/feature/factories';\nimport { GridGrouping, GridMedia, GridModel } from '@frontend/sports/grid/core/feature/model';\nimport { GridActions, IGridState, gridStateSelector } from '@frontend/sports/grid/core/feature/store';\nimport { MediaState, mediaStateSelector } from '@frontend/sports/grid/media/feature/state';\nimport { Store } from '@ngrx/store';\nimport { isArray, isEqual, keys } from 'lodash-es';\nimport { Observable, ReplaySubject, Subscription, combineLatest, distinctUntilChanged, filter, map, startWith, switchMap, tap } from 'rxjs';\n\nexport class ObservableGrid extends Observable {\n private id: string;\n private initialized = false;\n\n private subject = new ReplaySubject(1);\n private subscription: Subscription;\n\n constructor(\n private grid: GridModel,\n private store: Store,\n private factory: EventFactory,\n source: Observable,\n ) {\n super();\n\n this.id = grid.id;\n\n this.source = this.subject.asObservable();\n\n this.subscription = source\n .pipe(\n tap((current) => {\n this.init(current);\n }),\n switchMap((initial) =>\n combineLatest([\n store.select(gridStateSelector).pipe(\n //Start with the initial config emitted via the source to avoid waiting for the next \"store\" emission which is dispatched via the tap 3 lines above\n //shouldn't really be needed in the first place, but it's a hack for the tests to work, and will avoid a redundant task schedule\n startWith({ [this.id]: initial }),\n ),\n //usually it's not advised to combine selectors in this way, made an exception here to avoid coupling the two states together\n store.select(mediaStateSelector),\n ]).pipe(\n map(([gridState, mediaState]) => this.getModel(gridState, mediaState)),\n distinctUntilChanged((current, previous) => this.compareModel(current, previous)),\n filter((value) => value !== undefined),\n ),\n ),\n tap((current) => {\n this.grid = current;\n this.subject.next(current);\n }),\n )\n .subscribe();\n }\n\n getState(): GridModel {\n return this.grid;\n }\n\n destroy(): void {\n this.subject.complete();\n this.subscription?.unsubscribe();\n this.store.dispatch(GridActions.destroy({ gridId: this.id }));\n }\n\n addEvents(events: GridSourceEvent | GridSourceEvent[], options?: EventOption, grouping?: GridGrouping): void {\n const eventsList = isArray(events) ? events : [events];\n\n this.factory.create(eventsList, options).subscribe((eventsMapped) => {\n this.store.dispatch(GridActions.addEvents({ payload: { id: this.id, events: eventsMapped, grouping } }));\n });\n }\n\n removeEvents(eventIds: string[]): void {\n this.store.dispatch(GridActions.removeEvents({ payload: { id: this.id, eventIds } }));\n }\n\n private init(grid: GridModel): void {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n this.store.dispatch(GridActions.init({ payload: grid }));\n }\n\n private getModel = (gridState: IGridState, mediaState: MediaState) => {\n const grid = gridState[this.id];\n if (!grid) {\n return;\n }\n\n if (!mediaState) {\n return grid;\n }\n\n const mediaTab = mediaState.activeTab;\n const media: GridMedia = {\n enabled: mediaState.active,\n videoEvent: (mediaTab === EventDetailsColumnType.Video && mediaState.video.eventId) || '',\n animationEvent: (mediaTab === EventDetailsColumnType.Animation && mediaState.animation.eventId) || '',\n statsEvent: (mediaTab === EventDetailsColumnType.Stats && mediaState.statistics.eventId) || '',\n };\n\n if (isEqual(this.grid.media, media)) {\n return { ...grid, media: this.grid.media };\n }\n\n return { ...grid, media };\n };\n\n private compareModel = (current: GridModel | undefined, previous: GridModel | undefined) => {\n if (current === undefined && previous === undefined) {\n return true;\n }\n if (current === undefined || previous === undefined) {\n return false;\n }\n const currentKeys = keys(current) as (keyof GridModel)[];\n const previousKeys = keys(previous) as (keyof GridModel)[];\n\n if (currentKeys.length !== previousKeys.length) {\n return false;\n }\n\n for (const key of previousKeys) {\n if (current[key] !== previous[key]) {\n return false;\n }\n }\n\n return true;\n };\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { Group as DefaultGroup, GridViewGroupingConfiguration, SixPackGroup } from '@cds/betting-offer/grouping/grid-view';\nimport { EpcotConfig, GridConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Column, GridGrouping, GridLayout, GridSorting, Group, GroupBadge, SubscriptionTopic } from '@frontend/sports/grid/core/feature/model';\nimport { now, reverse, sortBy, times } from 'lodash-es';\n\nexport interface GridOption {\n activeGrouping?: number | string;\n marketGrouping?: boolean;\n moreGrouping?: boolean;\n grouping?: GridGrouping;\n disableGroupSorting?: boolean;\n sorting?: GridSorting;\n collapsedThreshold?: number;\n subscriptionTopic?: SubscriptionTopic;\n groupOrder?: string[];\n badges?: Record;\n includeRetailGroups?: boolean;\n excludeDefaultMainMarket?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ObservableGridProvider {\n constructor(\n protected sitecore: Sitecore,\n @Optional() protected epcotConfig?: EpcotConfig,\n @Optional() protected gridConfig?: GridConfig,\n ) {}\n\n getColumns(config?: GridViewGroupingConfiguration, layout?: GridLayout, options?: GridOption): Column[] {\n let source: (DefaultGroup | SixPackGroup)[] = [];\n\n const { groups, sixPackGroups } = config || {\n groups: new Array(),\n sixPackGroups: new Array(),\n };\n\n if (layout === GridLayout.SixPack) {\n source = this.applyGroupOrder(sixPackGroups, options);\n } else {\n source = this.applyGroupOrder(groups, options);\n }\n\n const maxColumns = this.epcotConfig?.isEnabled && this.gridConfig?.is2way3wayEnabled ? 2 : 4;\n\n const count = Math.min(maxColumns, source.length);\n\n if (count === 0) {\n return options?.excludeDefaultMainMarket ? [] : [this.getBaseColumn()];\n }\n\n return times(count).map((current, index) => this.getColumn(source, groups, index, options));\n }\n\n protected getColumn(source: (DefaultGroup | SixPackGroup)[], groups: DefaultGroup[], active: number, options?: GridOption): Column {\n let mapped: Group[];\n\n mapped =\n source.length === 0\n ? [this.getBaseGroup()]\n : source.filter((s) => !s.isFallbackGroup).map((group, index) => this.getGroup(group, groups, index === active, options?.badges));\n\n return {\n id: (now() + active).toString(32),\n groups: mapped,\n enabled: true,\n more: !!options?.moreGrouping,\n };\n }\n\n private getGroup(group: DefaultGroup | SixPackGroup, groups: DefaultGroup[], active: boolean, badges?: Record): Group {\n return {\n id: group.id,\n name: group.name,\n options: group.optionNames,\n balancedMarket: group.balancedMarketsEnabled,\n marketAttribute: group.showAttribute,\n childGroups: 'marketGroupIds' in group ? group.marketGroupIds : [],\n active,\n extended: false,\n visible: true,\n optionsToShow: group.optionsToShow,\n badge: badges?.[group.id],\n isFallbackGroup: group.isFallbackGroup,\n fallbackGridGroupIds: group.fallbackGridGroupIds,\n };\n }\n\n protected getBaseColumn(): Column {\n const group = this.getBaseGroup();\n\n return {\n id: 'main',\n groups: [group],\n enabled: true,\n more: false,\n };\n }\n\n protected getBaseGroup(): Group {\n return {\n id: 'main',\n name: this.sitecore.eventGrid.MarketSwitcher_MainMarket,\n active: true,\n extended: false,\n visible: true,\n isFallbackGroup: false,\n fallbackGridGroupIds: [],\n };\n }\n\n protected applyGroupOrder(source: (DefaultGroup | SixPackGroup)[], options?: GridOption): (DefaultGroup | SixPackGroup)[] {\n if (!options?.groupOrder?.length) {\n return source;\n }\n\n reverse([...options.groupOrder]).forEach((grid) => {\n // eslint-disable-next-line no-param-reassign\n source = sortBy(source, [(group: DefaultGroup | SixPackGroup) => grid !== group.id]);\n });\n\n return source;\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { GridViewGroupingConfiguration } from '@cds/betting-offer/grouping/grid-view';\nimport { EventModel, SportModel } from '@frontend/sports/betting-offer/feature/model';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { GridConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { EventFactory } from '@frontend/sports/grid/core/feature/factories';\nimport { Column, GridGrouping, GridLayout, GridModel, Group, SubscriptionTopic } from '@frontend/sports/grid/core/feature/model';\nimport {\n ColumnActiveState,\n GridStoreService,\n GridStoreState,\n IGridGroup,\n addEvents,\n setActiveGroupState,\n setGroupCollapseThreshold,\n setStateCollapse,\n} from '@frontend/sports/grid/core/feature/store';\nimport { Store } from '@ngrx/store';\nimport { isNumber, mapValues } from 'lodash-es';\nimport { Observable, forkJoin, map, of } from 'rxjs';\n\nimport { ObservableGrid } from './observable-grid';\nimport { GridOption, ObservableGridProvider } from './observable-grid.provider';\n\n@Injectable({ providedIn: 'root' })\nexport class ObservableGridFactory implements OnDestroy {\n protected grids: ObservableGrid[] = [];\n\n protected eventFactory = inject(EventFactory);\n protected gridConfig = inject(GridConfig);\n protected sitecore = inject(Sitecore);\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n protected store: Store = inject(Store);\n protected gridStore = inject(GridStoreService);\n protected observableGridProvider = inject(ObservableGridProvider);\n protected grouping = inject(OfferGroupingService);\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n destroy(): void {\n this.grids.forEach((grid) => {\n grid.destroy();\n });\n this.grids = [];\n }\n\n /**\n * Creates a grid model with the provided options and events\n *\n * @param id - is used to identify the grid, so we can wire up the storing of active groups on each market column and the collapse state of several items on the grid\n * @param events - list of the events, can not be empty\n * @param [options={}] - options which are used to build the grid\n * @param [options.activeGrouping] - number specifying which non gridable market group is selected, is being used aso for market template\n * @param [options.marketGrouping] - forwarded to the event mapper, used for non gridable events to apply the event details market grouping\n * @param [options.moreGrouping] - indicates weather the grid should render the more in the market groups dropdown\n * @param [options.grouping] - specifies the grouping approach that will be used for the events\n * @param [options.sorting] - specifies what is the initial sorting applied\n * @param [options.collapsedThreshold] - a number which is being used to collapse the groups after the event count surpasses the threshold\n * @param [options.subscriptionTopic] - specifies what topic should the grid subscribe the events to\n * @returns\n * @memberof ObservableGridFactory\n */\n from(id: string, events: EventModel[], options: GridOption = {}): ObservableGrid {\n if (events.length === 0) {\n throw new Error('Can not map undefined events');\n }\n\n const grid = this.getBase(id, options, events[0].sport);\n\n return this.getGrid(grid, options, of(events));\n }\n\n /**\n * Creates a grid model with the provided options and fixtures\n *\n * @param id - is used to identify the grid, so we can wire up the storing of active groups on each market column and the collapse state of several items on the grid\n * @param fixtures - list of the fixtures, can not be empty\n * @param [options={}] - options which are used to build the grid\n * @param [options.activeGrouping] - number specifying which non gridable market group is selected, is being used aso for market template\n * @param [options.marketGrouping] - forwarded to the event mapper, used for non gridable events to apply the event details market grouping\n * @param [options.moreGrouping] - indicates weather the grid should render the more in the market groups dropdown\n * @param [options.grouping] - specifies the grouping approach that will be used for the events\n * @param [options.sorting] - specifies what is the initial sorting applied\n * @param [options.collapsedThreshold] - a number which is being used to collapse the groups after the event count surpasses the threshold\n * @param [options.subscriptionTopic] - specifies what topic should the grid subscribe the events to\n * @returns\n * @memberof ObservableGridFactory\n */\n fromResponse(\n id: string,\n fixtures?: Fixture[],\n options: GridOption = {},\n isPriceBoosted = false,\n excludePriceboostedMarketGrouping = false,\n ): ObservableGrid {\n if (!fixtures?.length) {\n throw new Error('Can not map undefined fixtures');\n }\n\n const sport = fixtures[0].sport;\n const events = this.eventFactory.create(fixtures, {\n marketGrouping: options.marketGrouping,\n isPriceBoosted,\n excludePriceboostedMarketGrouping,\n });\n const grid = this.getBase(id, options, {\n id: sport.id,\n name: sport.name.value,\n virtual: fixtures[0].isVirtual,\n isEsport: sport.isEsport,\n });\n\n return this.getGrid(grid, options, events);\n }\n\n protected getGrid(grid: GridModel, options: GridOption, events: Observable): ObservableGrid {\n // eslint-disable-next-line no-param-reassign\n grid = this.setConfig(grid, options);\n\n const source = this.getSource(grid, options, events);\n\n const result = new ObservableGrid(grid, this.store, this.eventFactory, source);\n this.grids.push(result);\n\n return result;\n }\n\n private getSource(grid: GridModel, options: GridOption, events: Observable): Observable {\n return forkJoin([this.grouping.getGridGrouping(grid.sport.id), events]).pipe(\n map(([config, mapped]) => this.setConfig(grid, options, config, mapped)),\n );\n }\n\n protected setConfig(grid: GridModel, options: GridOption, config?: GridViewGroupingConfiguration, events?: EventModel[]): GridModel {\n const state = this.gridStore.get(grid.id) || { columns: [], groups: [], events: {} };\n\n const layout = this.getLayout(config);\n const columns = this.observableGridProvider.getColumns(config, layout, options);\n\n this.stripEventData(events);\n this.setPlaceHolder(options, columns);\n // eslint-disable-next-line no-param-reassign\n grid = this.updateGridState(grid, layout, options, columns, state, events);\n\n if (config) {\n const active = this.getActiveColumns(columns, state.columns);\n return setActiveGroupState(grid, active);\n }\n\n return grid;\n }\n\n protected stripEventData(events?: EventModel[]) {\n if (events?.length) {\n // for state sanity we clean up unneeded properties\n // mainly for event data\n events.forEach((event) => {\n //no\n //@ts-expect-error The operand of a 'delete' operator must be option\n // eslint-disable-next-line no-param-reassign\n delete event.fixtureScoreboard;\n // eslint-disable-next-line no-param-reassign\n delete event.splitFixtureIds;\n });\n }\n }\n\n protected setPlaceHolder(options: GridOption, columns: Column[]) {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n if (options && options.activeGrouping != null) {\n const placeholder = this.getPlaceholderGroup(options.activeGrouping);\n\n columns.forEach((column, index) => {\n // eslint-disable-next-line no-param-reassign\n column.enabled = index === 0;\n\n if (column.enabled) {\n column.groups.push(placeholder);\n // eslint-disable-next-line no-param-reassign\n column.groups.forEach((group) => (group.active = group === placeholder));\n }\n });\n }\n }\n\n protected updateGridState(\n grid: GridModel,\n layout: GridLayout,\n options: GridOption,\n columns: Column[],\n state: GridStoreState,\n events?: EventModel[],\n ): GridModel {\n const eventState = mapValues(state.events, (event) => ({\n collapsed: event.collapsed,\n collapsedChildren: event.collapsedChildren,\n }));\n\n // eslint-disable-next-line no-param-reassign\n grid = setStateCollapse({ ...grid, layout, columns }, state.groups, eventState);\n\n if (events?.length) {\n // eslint-disable-next-line no-param-reassign\n grid = addEvents(grid, events);\n if (options.collapsedThreshold) {\n // eslint-disable-next-line no-param-reassign\n grid = setGroupCollapseThreshold(grid, options.collapsedThreshold);\n }\n }\n return grid;\n }\n\n protected getBase(id: string, options: GridOption, sport: SportModel, isCustomGrid?: boolean): GridModel {\n let topic = options.subscriptionTopic === undefined ? SubscriptionTopic.Grid : options.subscriptionTopic;\n\n if (isNumber(options.activeGrouping) || isCustomGrid) {\n // when it is a number we expect to show non gridable markets\n topic = SubscriptionTopic.NonGridable;\n }\n\n return {\n id,\n grouping: options.grouping === undefined ? GridGrouping.League : options.grouping,\n sorting: options.sorting,\n columns: [],\n sport,\n groups: [],\n groupingThreshold: options.collapsedThreshold,\n layout: GridLayout.Default,\n media: { enabled: false, videoEvent: undefined, animationEvent: undefined, statsEvent: undefined },\n collapsed: {\n groups: [],\n events: {},\n },\n topic,\n disableGroupSorting: options.disableGroupSorting,\n };\n }\n\n protected getLayout(config?: GridViewGroupingConfiguration): GridLayout {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (config && this.gridConfig.isSixPackLayoutEnabled && config.sixPackGroups?.some((group) => group.marketGroupIds.length > 0)) {\n return GridLayout.SixPack;\n }\n\n return GridLayout.Default;\n }\n\n protected getActiveColumns(columns: Column[], state: ColumnActiveState[]): IGridGroup[] {\n return columns\n .map((column, index) => {\n const columnState = state.find((current) => current.index === index);\n\n if (columnState) {\n return { columnId: column.id, groupId: columnState.group };\n }\n //removing below return will break build\n // eslint-disable-next-line sonarjs/no-redundant-jump\n return;\n })\n .filter(isDefined);\n }\n\n private getPlaceholderGroup(id: number | string): Group {\n return {\n id: id.toString(),\n name: this.sitecore.eventGrid.MarketSwitcher_More,\n active: false,\n extended: true,\n visible: false,\n isFallbackGroup: false,\n fallbackGridGroupIds: [],\n };\n }\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\nimport { ActivationStart, Router } from '@angular/router';\n\nimport { PerformanceProfilingConfig } from '@frontend/sports/common/client-config-data-access';\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { filter } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PerformanceProfilingService implements OnAppInit {\n private readonly markNameTTI = 'vn_tti';\n\n private lastTrackedUrl = '';\n private zone = inject(NgZone);\n\n constructor(\n private router: Router,\n private performanceConfig: PerformanceProfilingConfig,\n ) {}\n\n onAppInit() {\n this.zone.runOutsideAngular(() =>\n setTimeout(() => {\n this.register();\n }),\n );\n }\n\n register(): void {\n try {\n const profilingEnabled = this.performanceConfig.isPerformanceProfilingEnabled;\n const browserSupport = performance && performance.measure;\n\n if (profilingEnabled && !!browserSupport) {\n this.router.events\n .pipe(\n filter((event) => event instanceof ActivationStart),\n filterSports(),\n )\n .subscribe(() => this.navigationStartCallback());\n }\n // eslint-disable-next-line no-empty\n } catch {}\n }\n\n markTTI(): void {\n if (!this.performanceConfig.isPerformanceProfilingEnabled) {\n return;\n }\n\n this.markEnd(this.markNameTTI);\n }\n\n private markEnd(markName: string): void {\n try {\n // markNameTTI is tracked from the grid. if there are more grids on the page we want to only track once'\n if (markName === this.markNameTTI && this.lastTrackedUrl !== this.router.url) {\n performance.mark(`${markName}-end`);\n const navigationStartMark = performance.getEntriesByName(`${markName}-start`)[0];\n if (navigationStartMark) {\n performance.measure(markName, `${markName}-start`, `${markName}-end`);\n }\n if (markName === this.markNameTTI) {\n this.lastTrackedUrl = this.router.url;\n }\n }\n // eslint-disable-next-line no-empty\n } catch {}\n }\n\n private navigationStartCallback = () => {\n this.markStart();\n };\n\n private markStart(): void {\n try {\n performance.clearMarks(`${this.markNameTTI}-start`);\n performance.clearMarks(`${this.markNameTTI}-end`);\n performance.clearMeasures(this.markNameTTI);\n\n performance.mark(`${this.markNameTTI}-start`);\n // eslint-disable-next-line no-empty\n } catch {}\n }\n}\n","import { BasePrice } from '@cds/betting-offer';\nimport { LegInfo, SuspensionState } from '@cds/betting-offer/domain-specific/bet-builder';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nexport function updateBetbuilderPrecreatedGroup(\n event: EventModel,\n sgpId: string,\n odds: BasePrice,\n suspensionState: SuspensionState,\n legs: LegInfo[],\n): void {\n if (event.precreatedOptionGroups) {\n const group = event.precreatedOptionGroups.find((g) => g.builderOptionPricing.sgpId === sgpId);\n if (group) {\n const updatedGroup = { ...group };\n const updatedPricing = {\n ...group.builderOptionPricing,\n odds,\n suspensionState,\n legInformation: legs,\n };\n updatedGroup.builderOptionPricing = updatedPricing;\n\n const index = event.precreatedOptionGroups.indexOf(group, 0);\n if (index > -1) {\n const updatedArray = [...event.precreatedOptionGroups];\n updatedArray.splice(index, 1);\n updatedArray.push(updatedGroup);\n // eslint-disable-next-line no-param-reassign\n event.precreatedOptionGroups = updatedArray;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { MessageType } from '@cds/push';\nimport { BetBuilderOfferUpdateCommand } from '@cds/push/bet-builder-commands';\nimport {\n FixtureUpdateCommand,\n GameDeleteCommand,\n GameUpdateCommand,\n OptionMarketDeleteCommand,\n OptionMarketUpdateCommand,\n SlimScoreboardCommand,\n} from '@cds/push/fixture-commands';\nimport { ScoreboardSlim } from '@cds/scoreboards/v1';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ConnectionConfig } from '@frontend/sports/common/client-config-data-access';\nimport {\n BetBuilderSubscription,\n CdsPushService,\n CdsSubscription,\n FixtureSlimSubscription,\n GameSubscription,\n OptionMarketSubscription,\n ScoreboardSlimSubscription,\n} from '@frontend/sports/content-distribution/feature';\nimport {\n BaseSubscriptionService,\n EventSubscription,\n EventSubscriptionRequest,\n MessageCallback,\n MessageHandler,\n} from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { updateBetbuilderPrecreatedGroup } from '@frontend/sports/event-subscription/feature/precreated-group-commands';\n\n/**\n * This service should be used for subscribing event for push. Should not be used for\n * detail event. It automatically subscribes to scoreboard slim and all markets that\n * are part of the response. Should be typically used for marquee, live navigation etc.\n *\n * @export\n * @class EventSubscriptionService\n * @extends {BaseSubscriptionService}\n */\n@Injectable({ providedIn: 'root' })\nexport class EventSubscriptionService extends BaseSubscriptionService {\n constructor(\n private fixtureFactory: FixtureFactory,\n push: CdsPushService,\n protected connection: ConnectionConfig,\n ) {\n super(push);\n }\n\n override subscribe(request: EventSubscriptionRequest[]): EventSubscription {\n if (request.some((current) => !this.isNormalEvent(current.event))) {\n console.warn('No support for detailed event');\n }\n\n return super.subscribe(request.filter((current) => this.isNormalEvent(current.event)));\n }\n\n protected getContextSubscriptions(event: EventModel, callback: MessageCallback): CdsSubscription[] {\n const subscriptions: CdsSubscription[] = [];\n\n subscriptions.push(new FixtureSlimSubscription(event.offerContext, event.id, this.connection.culture, callback));\n subscriptions.push(new ScoreboardSlimSubscription(event.offerContext, event.id, this.connection.culture, callback));\n\n event.optionGroups.forEach((optionGroup) => {\n if (event.offerSource === OfferSource.V2 || event.hybridFixtureData) {\n subscriptions.push(new OptionMarketSubscription(event.offerContext, event.id, optionGroup.id, this.connection.culture, callback));\n } else {\n subscriptions.push(new GameSubscription(event.offerContext, event.id, optionGroup.id, this.connection.culture, callback));\n }\n });\n\n if (event.precreatedOptionGroups?.length) {\n const betBuilderSubscriptions = event.precreatedOptionGroups\n .filter((g) => g.builderOptionPricing && g.builderOptionPricing.groupId)\n .map((g) => new BetBuilderSubscription([g.builderOptionPricing.groupId], callback));\n subscriptions.push(...betBuilderSubscriptions);\n }\n\n return subscriptions;\n }\n\n protected getHandlers(): Map> {\n const handlers = new Map>();\n\n handlers.set(MessageType.GameDelete, (evt, cmd) => this.deleteOptionGroup(evt, cmd as GameDeleteCommand & OptionMarketDeleteCommand));\n handlers.set(MessageType.GameUpdate, (evt, cmd) => this.updateOptionGroup(evt, cmd as GameUpdateCommand & OptionMarketUpdateCommand));\n handlers.set(MessageType.OptionMarketDelete, (evt, cmd) => this.deleteOptionGroup(evt, cmd as GameDeleteCommand & OptionMarketDeleteCommand));\n handlers.set(MessageType.OptionMarketUpdate, (evt, cmd) => this.updateOptionGroup(evt, cmd as GameUpdateCommand & OptionMarketUpdateCommand));\n handlers.set(MessageType.ScoreboardSlim, (evt, cmd) => this.updateScoreboard(evt, cmd as SlimScoreboardCommand));\n handlers.set(MessageType.FixtureUpdate, (evt, cmd) => this.updateFixture(evt, cmd as FixtureUpdateCommand));\n handlers.set(MessageType.BetBuilderOfferUpdate, (evt, cmd) => this.updateBetbuilderPrecreatedOffer(evt, cmd as BetBuilderOfferUpdateCommand));\n\n return handlers;\n }\n\n private isNormalEvent(event: EventModel): boolean {\n return !event.optionSets || event.optionSets.length === 0;\n }\n\n protected deleteOptionGroup(event: EventModel, command: GameDeleteCommand & OptionMarketDeleteCommand): EventModel {\n const optionGroupId = command.gameId || command.marketId;\n this.fixtureFactory.deleteOptionGroup(event, optionGroupId.toString());\n\n return event;\n }\n\n protected updateOptionGroup(event: EventModel, command: GameUpdateCommand & OptionMarketUpdateCommand): EventModel {\n const optionGroup = command.game || command.optionMarket;\n this.fixtureFactory.updateOptionGroup(event, optionGroup);\n\n return event;\n }\n\n protected updateScoreboard(event: EventModel, command: SlimScoreboardCommand): EventModel {\n const scoreboard = command.scoreboard as ScoreboardSlim;\n this.fixtureFactory.updateScoreboard(event, scoreboard);\n\n return event;\n }\n\n protected updateFixture(event: EventModel, command: FixtureUpdateCommand): EventModel {\n this.fixtureFactory.update(event, command.isOpenForBetting, command.stage);\n\n return event;\n }\n\n private updateBetbuilderPrecreatedOffer(event: EventModel, command: BetBuilderOfferUpdateCommand): EventModel {\n updateBetbuilderPrecreatedGroup(event, command.sgpId, command.odds, command.suspensionState, command.legs);\n\n return event;\n }\n}\n","import { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nexport function getLeagueId(event: EventModel): number {\n return event.league.parentLeagueId || event.league.id;\n}\n","import { Fixture, ImageProfile } from '@cds/betting-offer';\nimport { BetBuilderFixture } from '@cds/betting-offer/domain-specific/bet-builder';\nimport { EventModel, SetTab } from '@frontend/sports/betting-offer/feature/model';\nimport { NumberDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { Widget, WidgetLayoutResponse, WidgetLayoutTemplate, WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { BetBuilderPrecreatedModel } from '../betbuilder/model/bet-builder.model';\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { getLeagueId } from './event-details-common.utils';\n\nexport interface DetailedEventViewModel {\n model?: EventModel;\n promotedTemplate: number[];\n preCreated?: BetBuilderPrecreatedModel;\n hasMarqueeAvailable: boolean;\n virtualCompetitionDetails?: VirtualCompetitionDetails;\n tiles: Tile[];\n fixture?: Fixture;\n betBuilderFixture?: BetBuilderFixture;\n widgetLayoutResponse?: WidgetLayoutResponse;\n}\n\nexport interface ModularEventViewModel {\n widgetPage?: WidgetPage;\n layoutTemplate?: WidgetLayoutTemplate;\n groupedWidgets: NumberDictionary[]>;\n widgetPositions: number[];\n}\n\nexport interface ResultEventModel {\n model?: EventModel;\n preCreated?: BetBuilderPrecreatedModel;\n virtualCompetitionDetails: VirtualCompetitionDetails | undefined;\n tiles?: Tile[];\n fixture?: Fixture;\n betBuilderFixture?: BetBuilderFixture;\n}\n\nexport enum HeaderContentDensity {\n Tiny,\n Small,\n Medium,\n Large,\n Fullscreen,\n Auto,\n}\n\nexport enum TreeItemType {\n Sport,\n Region,\n League,\n Event,\n Favourite,\n FavouriteLeague,\n}\n\nexport enum LeftNavType {\n Live,\n Prematch,\n Competition,\n}\n\nexport interface NavEventModel {\n data: EventModel;\n selected: boolean;\n showMarkets?: boolean;\n hidden?: boolean; // to hide favourited items from left nav\n favourited?: boolean;\n}\n\nexport interface BaseTreeItem {\n children: TreeItem[];\n}\n\nexport interface TreeItem extends BaseTreeItem {\n id: number;\n name: string;\n type: TreeItemType;\n selected: boolean;\n expanded: boolean;\n loading: boolean;\n icon: string;\n events: NavEventModel[];\n count?: number;\n class?: string;\n toggleMarkets?: boolean;\n collapsible: boolean;\n leftNavType: LeftNavType;\n sportId?: number;\n hidden?: boolean; // to hide favourited items from left nav\n hideToggleMarkets?: boolean;\n hideFavorites?: boolean;\n isVirtual?: boolean;\n virtualCompetitionId?: number;\n imageProfile?: ImageProfile;\n}\n\nexport interface GroupedEvents {\n [leagueId: number]: EventModel[];\n}\n\nexport class SelectionInfo {\n sportId: number;\n leagueId: number;\n eventId: string;\n\n constructor(event: EventModel) {\n return {\n sportId: event.sport.id,\n leagueId: getLeagueId(event),\n eventId: event.id,\n };\n }\n}\n\nexport enum FeatureTab {\n Scoreboard = 1,\n Video = 2,\n Simulation = 3,\n Statistics = 4,\n}\n\nexport enum MediaTab {\n Scoreboard = 'scoreboard',\n Video = 'video',\n Simulation = 'simulation',\n Statistics = 'statistics',\n}\n\nexport enum FeatureUrl {\n Scoreboard = 'score',\n Video = 'video',\n Simulation = 'animation',\n Statistics = 'stats',\n}\n\nexport interface VirtualCompetitionDetails {\n id: number;\n name: string;\n group?: { id: number; name: string };\n}\n\nexport interface PrepareOptionGroupsParams extends OptionMarketSetData {\n event: EventModel;\n}\n\nexport interface OptionMarketSetData {\n activeTab?: string | SetTab;\n groupedSetsIds?: number[];\n tag?: string;\n setTags?: string[];\n isSgp?: boolean;\n isPrecreatedBABTab?: boolean;\n}\n\nexport const DispatcherEvent = {\n EventDetails: {\n Expanded: 'EVENT_DETAILS_EXPANDED',\n SetTab: 'EVENT_DETAILS_SET_TAB',\n },\n};\n","import { Injectable } from '@angular/core';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { bufferWithSize } from '@frontend/sports/common/core/utils/rxjs';\nimport { EventCallback, EventSubscription } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { EventSubscriptionService } from '@frontend/sports/event-subscription/feature/event-subscription';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { Observable, Subject, asyncScheduler, debounceTime, distinct, filter, map, noop, throttleTime } from 'rxjs';\n\nimport { FreshDataService } from '../data-refresh/fresh-data.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveEventsSubscriptionService {\n private subscriptions = new Map>();\n private eventsStream$ = new Subject();\n readonly updatedEvents$: Observable;\n\n constructor(\n private freshdataService: FreshDataService,\n private eventSubscriptionService: EventSubscriptionService,\n ) {\n const updateQueueInMilliseconds = 400;\n const maxUpdateQueueCount = 10;\n\n // buffer updates and notify at once for performance reasons\n const flush$ = this.eventsStream$.pipe(map(noop), throttleTime(updateQueueInMilliseconds, asyncScheduler));\n const debounceTimer = this.eventsStream$.pipe(debounceTime(updateQueueInMilliseconds));\n\n this.updatedEvents$ = this.eventsStream$.pipe(\n distinct((event) => event.id, flush$),\n bufferWithSize(maxUpdateQueueCount, debounceTimer),\n filter((events) => events && events.length > 0),\n );\n\n this.freshdataService.reloadNeeded.pipe(filterSportsEmitLast()).subscribe(() => this.unsubscribeAll());\n }\n\n isSubscribed(eventId: string): boolean {\n return this.subscriptions.has(eventId);\n }\n\n subscribe(model: EventModel): void {\n if (!this.subscriptions.get(model.id)) {\n const subscription = this.subscribeEvent(model);\n if (subscription) {\n this.subscriptions.set(model.id, subscription);\n }\n }\n }\n\n unsubscribe(fixtureId: string | string[]): void {\n const ids = Array.isArray(fixtureId) ? fixtureId : [fixtureId];\n this.unsubscribeEvent(ids);\n }\n\n unsubscribeAll(): void {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.subscriptions.clear();\n }\n\n private unsubscribeEvent(ids: string[]): void {\n ids.forEach((id) => {\n const subscription = this.subscriptions.get(id);\n if (subscription) {\n subscription.unsubscribe();\n this.subscriptions.delete(id);\n }\n });\n }\n\n private subscribeEvent(event: EventModel): EventSubscription {\n const callback: EventCallback = (data) => {\n const subscription = this.subscriptions.get(data.id);\n if (subscription) {\n this.eventsStream$.next(data);\n }\n };\n\n return this.eventSubscriptionService.subscribe([{ event, callback }]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture, FixtureStage, FixtureType, OfferCategory } from '@cds/betting-offer';\nimport { BatchRequest, FixtureRequest, FixtureState, OfferMapping, ScoreboardMode } from '@cds/query-objects';\nimport { ScoreboardSlim } from '@cds/scoreboards/v1';\nimport { FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { BatchResponse, BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { FavouritesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { FavouritesService, isFixtureFavourite } from '@frontend/sports/favourites/core/feature';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { entries, groupBy, sortBy } from 'lodash-es';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { FixtureList } from '../event-list-shared/sport/competitions/competition.models';\nimport { StatisticsConfigService } from '../statistics/statistics-config.service';\nimport { LiveEventsSubscriptionService } from './live-events-subscription.service';\n\n@Injectable({ providedIn: 'root' })\nexport class LiveFavouriteFixturesService {\n private fixtures$ = new BehaviorSubject([]);\n\n get change(): Observable {\n return this.fixtures$;\n }\n\n get fixtures(): Fixture[] {\n return this.fixtures$.getValue();\n }\n\n get liveFixtures(): Fixture[] {\n return this.fixtures.filter((fixture) => fixture.stage === FixtureStage.Live);\n }\n\n constructor(\n private userService: UserService,\n private favouritesConfig: FavouritesConfig,\n private bettingOfferApi: BettingOfferApi,\n private favouriteService: FavouritesService,\n private subscriptionsService: LiveEventsSubscriptionService,\n private fixtureFactory: FixtureFactory,\n private media: MediaQueryService,\n private statisticsConfigService: StatisticsConfigService,\n ) {\n const get = () => this.refresh(OfferMapping.None);\n\n this.userService.onUserLogin$.pipe(filterSportsEmitLast()).subscribe(get);\n\n this.subscriptionsService.updatedEvents$.pipe(filterSportsEmitLast()).subscribe((updatedEvents) => {\n const finishedFavourites = updatedEvents\n .filter((event) => event.scoreboard.isFinished)\n .map((event) =>\n this.favouriteService.favouritesList.find((favourite) => isFixtureFavourite(favourite) && favourite.itemId === event.id),\n )\n .filter(isDefined);\n\n this.subscriptionsService.unsubscribe(finishedFavourites.map((f) => f.itemId));\n this.favouriteService.remove(finishedFavourites).subscribe();\n });\n\n get();\n }\n\n isFavourited(id: string): boolean {\n return this.liveFixtures.some((f) => f.id === id);\n }\n\n isSwipeFavouriteEnabled(): boolean {\n return this.favouritesConfig.isFavouriteSwipeEnabled && this.media.isActive('lt-md');\n }\n\n isLiveFavouriteEnabled(): boolean {\n return this.favouritesConfig.isLiveFavouritesEnabled && !this.media.isActive('lt-md');\n }\n\n refresh(offerMapping?: OfferMapping, offerCategories?: OfferCategory): void {\n const fixtureFavsIds = this.favouritedListToRefresh();\n\n if (!this.favouritesConfig.isLiveFavouritesEnabled || !fixtureFavsIds.length) {\n this.fixtures$.next([]);\n\n return;\n }\n\n this.getFixturesById(fixtureFavsIds, offerMapping, offerCategories).subscribe((batchFixtures: BatchResponse | undefined) => {\n if (!batchFixtures) {\n this.fixtures$.next([]);\n\n return;\n }\n\n const expiredFixtureIds = this.getExpiredFixtures(batchFixtures);\n const fixtureList = this.getFixtures(batchFixtures);\n\n this.removeExpired(expiredFixtureIds);\n this.subscribeToPush(fixtureList);\n\n this.fixtures$.next(fixtureList);\n });\n }\n\n getFixtureList(groupByCompetition: boolean = false): FixtureList[] {\n const groupedFixtures = groupBy(this.fixtures, (favourite) =>\n groupByCompetition ? favourite.competition.parentLeagueId || favourite.competition.id : favourite.sport.id,\n );\n\n const result = entries(groupedFixtures).map(([_, value]) => ({\n fixtures: value.sort((a, b) => (a.startDate > b.startDate ? 1 : -1)),\n totalCount: value.length,\n }));\n\n return sortBy(result, (current) => current.fixtures[0].sport.id);\n }\n\n updateFixtureList(): void {\n const current = this.favouritedList();\n const filtered = this.fixtures.filter((fixture) => current.some((id) => fixture.id === id));\n\n this.fixtures$.next(filtered);\n }\n\n private subscribeToPush(list: Fixture[]): void {\n list.filter((fixture) => !this.subscriptionsService.isSubscribed(fixture.id))\n .map((fixture) => this.fixtureFactory.create(fixture))\n .forEach((event) => this.subscriptionsService.subscribe(event));\n }\n\n private removeExpired(expiredFixtures: string[]): void {\n const expiredFavourites = this.favouriteService.favouritesList.filter((favourite) =>\n expiredFixtures.some((exId) => favourite.itemId === exId),\n );\n\n this.favouriteService.remove(expiredFavourites).subscribe();\n }\n\n private favouritedList(): string[] {\n return this.favouriteService.favouritesList.filter((f) => isFixtureFavourite(f) && f.count > 0).map(({ itemId }) => itemId);\n }\n\n private favouritedListToRefresh(): string[] {\n return this.favouriteService.favouritesList.filter(isFixtureFavourite).map(({ itemId }) => itemId);\n }\n\n private getExpiredFixtures(batchFixtures: BatchResponse): string[] {\n const expiredFixtures: string[] = [];\n\n entries(batchFixtures).forEach(([key, value]) => {\n if (!value.fixtures.length) {\n expiredFixtures.push(key);\n } else {\n const fixture = value.fixtures[0];\n\n if (fixture.scoreboard) {\n const scoreboardResponse = fixture.scoreboard as ScoreboardSlim;\n const isFinished = scoreboardResponse.periodId === 255;\n if (isFinished) {\n expiredFixtures.push(key);\n }\n }\n }\n });\n\n return expiredFixtures;\n }\n\n private getFixtures(batchFixtures: BatchResponse): Fixture[] {\n return entries(batchFixtures)\n .filter(([_, value]) => value.fixtures.length)\n .map(([_, value]) => value.fixtures[0]);\n }\n\n private getFixturesById(\n fixtureIds: string[],\n offerMapping?: OfferMapping,\n offerCategories?: OfferCategory,\n ): Observable {\n const request: BatchRequest[] = fixtureIds.map((fixtureId) => ({\n batchId: fixtureId,\n request: {\n fixtureIds: fixtureId,\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping,\n offerCategories,\n scoreboardMode: ScoreboardMode.Slim,\n excludeLocationFilter: true,\n statisticsModes: this.statisticsConfigService.getStatisticsModesBySportId(undefined),\n },\n }));\n\n return this.bettingOfferApi.getBatchFixtureList(request);\n }\n}\n","import { OfferSource } from '@cds';\nimport { Competition, Region } from '@cds/betting-offer/tags';\nimport { EventParticipant, EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { FavouritesSport } from '@frontend/sports/favourites/core/feature';\nimport { LeagueGroup } from '@frontend/sports/grid/core/feature/model';\nimport { ObservableGrid } from '@frontend/sports/grid/core/feature/observables';\nimport { ParticipantDetail } from '@frontend/sports/types/components/team-pages';\n\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\n\nexport interface TeamPagesDetailsModel {\n teampagesGridViewModel: TeamPagesGridViewModel;\n bannerViewModel: BannerViewModel;\n marqueeTiles: Tile[];\n sportCounts: CountItem;\n}\nexport interface TeamPagesNavigationViewModel {\n teams: Team[];\n competitionTabs: TabBarItem[];\n currentSport: FavouritesSport;\n selectedTeam: Team;\n hasFavouritedTeams: boolean;\n popularTeams: ParticipantDetail[];\n}\nexport interface TeamPagesViewModel {\n teamPagesDetailsModel: TeamPagesDetailsModel;\n teamPagesNavigationViewModel: TeamPagesNavigationViewModel;\n}\n\nexport interface Team {\n name: string;\n id: number;\n participantImage?: EventParticipantImage;\n sportIcon?: string;\n isFavourited: boolean;\n isSelected: boolean;\n sport?: FavouritesSport;\n favouriteParticipant?: EventParticipant;\n offerSource?: OfferSource;\n competitionId?: string;\n teamType?: FavouriteType;\n}\n\nexport enum FavouriteType {\n League = 'L',\n Participant = 'P',\n ParticipantV2 = 'P2',\n Fixture = 'F',\n FixtureV2 = 'F2',\n}\n\nexport enum FixtureView {\n Grid,\n GridList,\n Standings,\n}\n\nexport enum FixtureTab {\n Matches = 1,\n Outrights = 2,\n Standings = 3,\n Specials = 4,\n}\n\nexport interface BannerViewModel {\n team: Team;\n backgroundImage: string;\n}\n\nexport enum TeamMenuItem {\n Showmore = '9999',\n MyTeams = '0',\n}\nexport interface TeamPageCompetition {\n id: string;\n name: string;\n sportId: number;\n}\n\nexport interface TeamPagesGridModel {\n tabs: TabBarItem[];\n gridModel?: ObservableGrid;\n view?: FixtureView;\n standings?: CountItem;\n currentStandingsGroups?: LeagueGroup[];\n currentStandingsSport?: CountItem;\n currentStandings?: CountItem;\n groups?: LeagueGroup[];\n noMarketsForTeam?: boolean;\n loading?: boolean;\n fixtureIds?: string[];\n}\n\nexport interface TeamPagesGridViewModel {\n teamPagesGridModel: TeamPagesGridModel;\n selectedTeam: Team;\n}\n\nexport interface MasterDataResponse {\n competition: Competition;\n region: Region;\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { Participant, ParticipantType } from '@cds/betting-offer';\nimport { Competition } from '@cds/betting-offer/tags';\nimport { TeamPagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { ExpiringCache } from '@frontend/sports/common/core/utils/expiring-cache';\nimport { BaseCdsApi, BaseCdsApiFactory, CDS_API_FACTORY } from '@frontend/sports/content-distribution/feature';\nimport { CompetitionDetail } from '@frontend/sports/types/components/team-pages';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { Observable, forkJoin, map, of } from 'rxjs';\n\nimport { MasterdataApiService } from '../cds/cds-masterdata-api.service';\nimport { FavouriteType, Team, TeamPageCompetition } from './team-pages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesApiService {\n private cdsApi: BaseCdsApi;\n private teamsByComepetitionCache: ExpiringCache = new ExpiringCache(600);\n private teamsCountByCompetitionsCache: ExpiringCache = new ExpiringCache(600);\n private seeMoreStorageKey = 'seeMoreCompetition';\n\n constructor(\n @Inject(CDS_API_FACTORY) cdsApiServiceFactory: BaseCdsApiFactory,\n private teamPagesConfig: TeamPagesConfig,\n private m2LocalStore: LocalStoreService,\n private cdsMasterApi: MasterdataApiService,\n ) {\n this.cdsApi = cdsApiServiceFactory({ endpoint: '/masterdata' });\n }\n\n getTeamsByCompetitionId(id: string, sportId: number): Observable {\n if (!id) {\n return of([]);\n }\n const source = this.cdsApi\n .get('/competitions/participants/v2', {\n competitionId: id,\n sportId,\n })\n .pipe(\n map((response) => {\n if (!response) {\n return [];\n }\n\n return response\n .filter(\n (item) =>\n item &&\n item.participantId &&\n (item.type && sportId === SportConstant.Soccer ? item.type === ParticipantType.Team : true),\n )\n .map((item) => ({\n id: item.participantId,\n name: item.name.value || '',\n competitionId: id,\n isFavourited: false,\n isSelected: false,\n teamType: this.getFavouriteType(item.source),\n offerSource: item.source,\n participantImage: item.image,\n }));\n }),\n );\n\n return this.teamsByComepetitionCache.getOrCreate(`teamPages-comp-${id}`, source);\n }\n\n mapTeam(participant: Participant, competitionId: string | undefined): Team {\n return {\n id: participant.participantId,\n name: participant.name.value || '',\n competitionId,\n isFavourited: false,\n isSelected: false,\n teamType: this.getFavouriteType(participant.source),\n offerSource: participant.source,\n participantImage: participant.image,\n };\n }\n\n getTeamsByQueryText(sportId: number, query: string): Observable {\n return this.cdsApi.get('/participants/by-text', { sportId, query }).pipe(\n map((response) => {\n if (!response) {\n return [];\n }\n\n return response.map((participant) => ({\n id: participant.participantId,\n name: participant.name.value,\n isSelected: false,\n isFavourited: false,\n offerSource: participant.source,\n teamType: this.getFavouriteType(participant.source),\n }));\n }),\n );\n }\n\n getCompetitionsAndTeamsCount(competitions: CompetitionDetail[], sportId?: number | 0): Observable {\n const seeMoreComp = this.seeMoreCompetition;\n const competitionData = [...competitions];\n let source: Observable;\n let compIds: string;\n if (seeMoreComp?.sportId === sportId && !competitions.some((comp) => comp.competitionId === seeMoreComp?.id)) {\n competitionData.push({\n competitionId: seeMoreComp.id,\n competitionName: seeMoreComp.name,\n });\n compIds = competitionData.map((s) => s.competitionId).join(',');\n source = forkJoin([this.GetCompetitionsWithSeeMore(competitionData, seeMoreComp), this.getCompetitionName(seeMoreComp)]).pipe(\n map(([response, name]) => {\n return this.getCompetitionTabs(response, name, seeMoreComp);\n }),\n );\n } else {\n compIds = competitionData.map((s) => s.competitionId).join(',');\n source = this.GetCompetitionsWithSeeMore(competitionData, seeMoreComp).pipe(\n map((response) => {\n return this.getCompetitionTabs(response);\n }),\n );\n }\n\n return this.teamsCountByCompetitionsCache.getOrCreate(`teampages-count-${compIds}`, source);\n }\n\n private getCompetitionTabs(response: CompetitionDetail[], name?: string, seeMoreComp?: TeamPageCompetition): CompetitionDetail[] {\n if (!response) {\n return [];\n }\n let data = [...response];\n const seeMoreCompetition = data.find((x) => x.competitionId === seeMoreComp?.id);\n if (seeMoreCompetition) {\n seeMoreCompetition.competitionName = name ?? '';\n data = data.filter((x) => x.competitionId !== seeMoreCompetition.competitionId);\n data.push(seeMoreCompetition);\n }\n\n return data;\n }\n\n GetCompetitionsWithSeeMore(competitionData: CompetitionDetail[], seeMoreComp: TeamPageCompetition): Observable {\n return this.cdsMasterApi.getCompetitionCount(competitionData).pipe(\n map((response) => {\n if (!response) {\n return [];\n }\n const competitionwithteam = competitionData.filter((c) => response[c.competitionId] > 0);\n if (competitionwithteam.length > this.teamPagesConfig.maxCompetitions) {\n const seemorecompetition = competitionwithteam.find((k) => k.competitionId === seeMoreComp?.id);\n if (seemorecompetition) {\n const data = competitionwithteam.splice(0, this.teamPagesConfig.maxCompetitions - 1);\n data.push(seemorecompetition);\n\n return data;\n }\n\n return competitionwithteam.splice(0, this.teamPagesConfig.maxCompetitions);\n }\n\n return competitionwithteam;\n }),\n );\n }\n\n getCompetitionName(competition: TeamPageCompetition): Observable {\n return this.cdsApi.post('/info/competition/v2', { CompetitionId: competition.id }).pipe(\n map((res) => {\n return res?.name?.value ?? '';\n }),\n );\n }\n\n get seeMoreCompetition(): TeamPageCompetition {\n return this.m2LocalStore.get(this.seeMoreStorageKey) as TeamPageCompetition;\n }\n\n private getFavouriteType(source: OfferSource | undefined): FavouriteType {\n if (source === OfferSource.V2) {\n return FavouriteType.ParticipantV2;\n }\n\n return FavouriteType.Participant;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FixturePage, FixtureType, OfferCategory } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { TagType } from '@cds/betting-offer/tags';\nimport { CountsFixturesRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { toInteger } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\n\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { MarqueeService } from '../highlights-marquee/marquee.service';\nimport { StatisticsConfigService } from '../statistics/statistics-config.service';\nimport { FavouriteType, FixtureTab, Team } from './team-pages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesCoreMarqueeService {\n constructor(\n private bettingOffer: BettingOfferApi,\n private marqueeService: MarqueeService,\n private statisticsConfigService: StatisticsConfigService,\n ) {}\n\n getFixturesMarquees(selectedTeam: Team, marqueeFixtures?: string[]): Observable {\n if (!selectedTeam) {\n return of([]);\n }\n if (marqueeFixtures?.length) {\n return this.loadFixtureMarquees(marqueeFixtures);\n }\n\n return of([]);\n }\n\n private loadFixtureMarquees(fixtureIds: string[]): Observable {\n return this.marqueeService.loadTeamPagesMarquees(fixtureIds);\n }\n\n getFixtures(itemId: number, sportId: number, tabId: number): Observable {\n const request: CountsFixturesRequest = this.buildCountsFixtureRequest(itemId.toString(), sportId.toString(), tabId);\n\n return this.bettingOffer.getFixtureList(request.fixtureRequest);\n }\n\n getFixtureCounts(itemId: number, sportId: number): Observable {\n const request: CountsFixturesRequest = this.buildCountsFixtureRequest(itemId.toString(), sportId.toString());\n\n return this.bettingOffer.getCountsFixtures(request);\n }\n\n buildCountsFixtureRequest(\n itemId: string,\n sportId: string,\n tabId?: number,\n favouriteType: FavouriteType = FavouriteType.Participant,\n take?: number,\n skip?: number,\n ): CountsFixturesRequest {\n const request: CountsFixturesRequest = {\n fixtureCountsRequest: {\n state: FixtureState.Latest,\n tagTypes: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n extendedTags: [TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition].join(','),\n sortBy: SortByCriteria.Tags,\n sportIds: sportId,\n },\n fixtureRequest: {\n sportIds: sportId,\n excludeLocationFilter: true,\n fixtureCategories: this.getFixtureCategories(tabId),\n fixtureTypes: FixtureType.Standard,\n offerCategories: this.getOfferCategories(tabId),\n offerMapping: OfferMapping.Filtered,\n skip,\n sortBy: this.getSorting(tabId),\n state: FixtureState.Latest,\n take,\n statisticsModes: this.statisticsConfigService.getStatisticsModesBySportId(toInteger(sportId)),\n },\n };\n if (favouriteType === FavouriteType.League) {\n request.fixtureRequest.competitionIds = itemId;\n request.fixtureCountsRequest.competitionIds = itemId;\n }\n\n if (favouriteType === FavouriteType.Participant || favouriteType === FavouriteType.ParticipantV2) {\n request.fixtureRequest.fixtureParticipantIds = itemId;\n request.fixtureCountsRequest.fixtureParticipantIds = itemId;\n }\n\n return request;\n }\n\n private getSorting(tabId?: number): SortByCriteria {\n return tabId && (tabId === FixtureTab.Outrights || tabId === FixtureTab.Specials)\n ? SortByCriteria.QueryCompetitionIds\n : SortByCriteria.StartDate;\n }\n\n private getOfferCategories(tabId?: number): OfferCategory {\n if (tabId === FixtureTab.Outrights) {\n return OfferCategory.Outrights;\n }\n if (tabId === FixtureTab.Specials) {\n return OfferCategory.Specials;\n }\n\n return OfferCategory.Gridable;\n }\n\n private getFixtureCategories(tabId?: number): string {\n if (tabId === FixtureTab.Outrights) {\n return OfferCategory.Outrights;\n }\n if (tabId === FixtureTab.Specials) {\n return OfferCategory.Specials;\n }\n\n return [OfferCategory.Gridable, OfferCategory.NonGridable, OfferCategory.Other].join(',');\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StatisticsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, LeagueItem, RegionItem, isVirtualCompetitionGroupItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { Omit, isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { LeagueGroup } from '@frontend/sports/grid/core/feature/model';\nimport { flatten } from 'lodash-es';\n\nexport interface GetStandingsParams {\n sport: CountItem;\n selectedVirtualGroupId?: number;\n expandedGroups?: number;\n}\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesStandingService {\n constructor(private statisticsConfig: StatisticsConfig) {}\n getStandingsGroups(params: GetStandingsParams): LeagueGroup[] {\n const { sport, selectedVirtualGroupId, expandedGroups = this.statisticsConfig.expandedLeagueTablesCount } = params;\n\n if (sport.id !== SportConstant.Soccer) {\n return [];\n }\n\n const leagueGroups = !selectedVirtualGroupId\n ? this.getStandingsForCompetitions(sport)\n : this.getStandingsForVirtualGroups(sport, selectedVirtualGroupId);\n\n leagueGroups.forEach((leagueGroup, index) => (leagueGroup.collapsed = index >= expandedGroups));\n\n return leagueGroups;\n }\n\n private getStandingsForCompetitions(sport: CountItem): LeagueGroup[] {\n const leagueGroups = flatten(\n (sport.children).map((region) =>\n flatten(\n (region.children).map((leagueItem) =>\n leagueItem.isVirtual ? this.mapVirtualCompetition(leagueItem, region) : this.mapCompetition(leagueItem, region),\n ),\n ),\n ),\n );\n\n return leagueGroups;\n }\n\n private getStandingsForVirtualGroups(sport: CountItem, selectedVirtualGroupId: number): LeagueGroup[] {\n const leagueGroups = flatten(\n (sport.children).map((region) =>\n flatten((region.children).map((leagueItem) => this.mapVirtualGroups(leagueItem, region, selectedVirtualGroupId))),\n ),\n );\n\n return leagueGroups;\n }\n\n private mapCompetition(competition: LeagueItem, region: RegionItem): LeagueGroup[] {\n if (!competition.standings) {\n return [];\n }\n\n return [{ ...this.toLeagueGroup(competition, region), id: competition.id, name: competition.name, canBeFavourited: true }];\n }\n\n private mapVirtualCompetition(competition: LeagueItem, region: RegionItem): LeagueGroup[] {\n const standings: LeagueGroup[] = [];\n\n if (competition.standings) {\n standings.push({\n ...this.toLeagueGroup(competition, region),\n id: competition.siblings[0],\n name: competition.name,\n canBeFavourited: true,\n });\n }\n\n return [...standings, ...this.mapVirtualGroups(competition, region)];\n }\n\n private mapVirtualGroups(competition: LeagueItem, region: RegionItem, selectedVirtualGroup?: number): LeagueGroup[] {\n if (!competition.isVirtual || !competition.children) {\n return [];\n }\n\n const leagueGroups = competition.children\n .filter(isVirtualCompetitionGroupItem)\n .filter((virtualGroup) => virtualGroup.standings && (!isDefined(selectedVirtualGroup) || virtualGroup.id === selectedVirtualGroup))\n .map((virtualGroup) => ({\n ...this.toLeagueGroup(virtualGroup, region),\n id: virtualGroup.siblings[0],\n name: `${competition.name} - ${virtualGroup.name}`,\n canBeFavourited: !(virtualGroup.stageIds.length || virtualGroup.groupIds.length),\n }));\n\n return leagueGroups;\n }\n\n private toLeagueGroup(leagueItem: LeagueItem, region: RegionItem): Omit {\n return {\n count: leagueItem.counts.preMatch + leagueItem.counts.live,\n events: [],\n collapsed: false,\n collapsible: true,\n deferred: false,\n siblings: [leagueItem.id],\n region,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture, FixturePage } from '@cds/betting-offer';\nimport { CountsFixturesResponse } from '@cds/betting-offer/domain-specific';\nimport { Competition } from '@cds/betting-offer/tags';\nimport { FavouritesConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport {\n CountItem,\n ItemCount,\n isCompetitionItem,\n isVirtualCompetitionGroupItem,\n sportModelMethods,\n} from '@frontend/sports/common/core/data-access/sport-model';\nimport { GridGrouping, LeagueGroup, SubscriptionTopic } from '@frontend/sports/grid/core/feature/model';\nimport { GridOption, ObservableGrid, ObservableGridFactory } from '@frontend/sports/grid/core/feature/observables';\nimport { min, orderBy } from 'lodash-es';\nimport { Observable, map, of, switchMap } from 'rxjs';\n\nimport { ReverseFixtureTab } from '../event-list-shared/sport/competitions/competition.models';\nimport { StatisticsApiService } from '../statistics/statistics-api.service';\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\nimport { TeamPagesCoreMarqueeService } from './team-pages-core-marquee.service';\nimport { TeamPagesStandingService } from './team-pages-standing.service';\nimport { FixtureTab, FixtureView, Team, TeamPagesGridModel } from './team-pages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesCoreGridService {\n constructor(\n private teamPagesCoreMarqueeService: TeamPagesCoreMarqueeService,\n public sitecore: Sitecore,\n private config: FavouritesConfig,\n private gridFactory: ObservableGridFactory,\n private teamPagesStandingService: TeamPagesStandingService,\n private cdsStatsService: StatisticsApiService,\n ) {}\n\n getGridModel(selectedTeam: Team | undefined): Observable {\n if (!selectedTeam) {\n return of({ tabs: [] });\n }\n\n return this.teamPagesCoreMarqueeService\n .getFixtureCounts(selectedTeam.id, selectedTeam.sport!.id)\n .pipe(switchMap((fixtureCounts) => this.setGridModel(selectedTeam, fixtureCounts)));\n }\n\n getFixturesForTab(teamPagesGridTabsModel: TeamPagesGridModel, tabId: number, team: Team, data?: FixturePage): Observable {\n teamPagesGridTabsModel.view = this.getView(tabId);\n\n if (tabId === FixtureTab.Standings) {\n return this.getStandingsForTeam(teamPagesGridTabsModel, team.id.toString());\n }\n if (team.id && team.sport?.id) {\n if (!data) {\n return this.teamPagesCoreMarqueeService\n .getFixtures(team.id, team.sport.id, tabId)\n .pipe(map((fixturedata) => this.getResult(teamPagesGridTabsModel, tabId, team, fixturedata)));\n }\n\n return of(this.getResult(teamPagesGridTabsModel, tabId, team, data));\n }\n teamPagesGridTabsModel.noMarketsForTeam = true;\n\n return of(teamPagesGridTabsModel);\n }\n\n private buildGridModel(fixtures: Fixture[], options: GridOption = {}): ObservableGrid {\n return this.gridFactory.fromResponse(`teamsPages`, fixtures, options);\n }\n\n private getResult(teamPagesGridTabsModel: TeamPagesGridModel, tabId: number, team: Team, data?: FixturePage): TeamPagesGridModel {\n const nonMatchesTab = tabId === FixtureTab.Outrights || tabId === FixtureTab.Specials;\n let competitionsOrder: CountItem[] = [];\n if (nonMatchesTab && teamPagesGridTabsModel.standings) {\n competitionsOrder = this.getCompetitionItems([teamPagesGridTabsModel.standings]);\n }\n\n const gridOptions = {\n marketGrouping: teamPagesGridTabsModel?.view === FixtureView.GridList,\n collapsedThreshold: this.getCollapseSize(tabId),\n subscriptionTopic: this.getTopic(tabId),\n grouping: GridGrouping.League,\n };\n const fixtures = data?.fixtures;\n teamPagesGridTabsModel.fixtureIds = data?.fixtures.map((k) => k.id);\n if (fixtures?.length) {\n let sortedFixtures = fixtures;\n\n teamPagesGridTabsModel.tabs.forEach((x) => {\n if (x.id === FixtureTab.Matches && tabId === FixtureTab.Matches) {\n x.count = fixtures?.length;\n }\n });\n\n if (nonMatchesTab && competitionsOrder.length > 1) {\n sortedFixtures = orderBy(fixtures, (f) => {\n return this.getCompetitionOrder(f.competition, competitionsOrder);\n });\n }\n\n if (teamPagesGridTabsModel) {\n teamPagesGridTabsModel.currentStandingsGroups = [];\n teamPagesGridTabsModel.gridModel = this.buildGridModel(sortedFixtures, gridOptions);\n }\n }\n\n teamPagesGridTabsModel.noMarketsForTeam = !fixtures?.length;\n\n return teamPagesGridTabsModel;\n }\n\n private getCompetitionOrder(item: T, competitionsOrder: CountItem[]): number {\n return competitionsOrder.find((co) => co.id === item.id)?.order ?? 0;\n }\n\n private getStandingsForTeam(teamPagesGridTabsModel: TeamPagesGridModel, teamId: string): Observable {\n if (teamPagesGridTabsModel) {\n delete teamPagesGridTabsModel.gridModel;\n if (teamId) {\n teamPagesGridTabsModel.currentStandings = teamPagesGridTabsModel.standings;\n\n if (teamPagesGridTabsModel.currentStandings) {\n const standings = this.teamPagesStandingService.getStandingsGroups({\n sport: teamPagesGridTabsModel.currentStandings,\n expandedGroups: 2,\n });\n\n teamPagesGridTabsModel.currentStandingsSport = teamPagesGridTabsModel.standings;\n teamPagesGridTabsModel.currentStandingsGroups = standings;\n\n const groupIds = teamPagesGridTabsModel.currentStandingsGroups?.map((group) => group.id);\n if (!groupIds) {\n return of(teamPagesGridTabsModel);\n }\n if (teamPagesGridTabsModel.currentStandingsSport?.id !== SportConstant.Soccer) {\n return of(teamPagesGridTabsModel);\n }\n\n return this.cdsStatsService.getCompetitionsStatistics(groupIds, teamPagesGridTabsModel.currentStandingsSport?.id).pipe(\n map((statistics) => {\n if (statistics) {\n teamPagesGridTabsModel.groups = teamPagesGridTabsModel.currentStandingsGroups?.map((standingGroup) => ({\n ...standingGroup,\n statistics: statistics.find((s) => s.competitionId === standingGroup.id),\n }));\n }\n\n return teamPagesGridTabsModel;\n }),\n );\n }\n }\n teamPagesGridTabsModel.currentStandingsGroups = [];\n }\n\n return of(teamPagesGridTabsModel);\n }\n\n private getView(tabId: number): FixtureView {\n if (tabId === FixtureTab.Matches) {\n return FixtureView.Grid;\n }\n\n if (tabId === FixtureTab.Standings) {\n return FixtureView.Standings;\n }\n\n return FixtureView.GridList;\n }\n\n private getCompetitionItems(countItems: CountItem[]): CountItem[] {\n const result: CountItem[] = [];\n for (const countItem of countItems) {\n if (countItem.children.length > 0) {\n result.push(...this.getCompetitionItems(countItem.children));\n } else if (isCompetitionItem(countItem) || isVirtualCompetitionGroupItem(countItem)) {\n result.push(countItem);\n }\n }\n\n return result;\n }\n\n private getCollapseSize(tabId: number): number | undefined {\n return tabId === FixtureTab.Outrights || tabId === FixtureTab.Specials ? this.config.collapseSize : undefined;\n }\n\n private getTopic(tabId: number): SubscriptionTopic | undefined {\n if (tabId === FixtureTab.Specials) {\n return SubscriptionTopic.Specials;\n }\n\n if (tabId === FixtureTab.Outrights) {\n return SubscriptionTopic.Outrights;\n }\n\n return undefined;\n }\n\n private setGridModel(selectedTeam: Team, countsFixturesResponse: CountsFixturesResponse | undefined): Observable {\n const gridTabCountsItem = sportModelMethods.fromTag(countsFixturesResponse?.counts);\n const teamPagesGridTabsModel: TeamPagesGridModel = {\n standings: gridTabCountsItem[0],\n tabs: this.getNavigation(gridTabCountsItem),\n };\n\n const selectedTab = teamPagesGridTabsModel.tabs.find((tabs) => tabs.active);\n\n if (selectedTab) {\n return this.getFixturesForTab(teamPagesGridTabsModel, selectedTab?.id, selectedTeam, countsFixturesResponse?.fixtures);\n }\n\n teamPagesGridTabsModel.noMarketsForTeam = true;\n\n return of(teamPagesGridTabsModel);\n }\n\n private getNavigation(gridTabCountsItem: CountItem[]): TabBarItem[] {\n if (!gridTabCountsItem.length) {\n return [];\n }\n\n const navigation: TabBarItem[] = [];\n\n const tabCounts = gridTabCountsItem[0];\n const counts = tabCounts.counts;\n let competitionStandings = false;\n\n competitionStandings = tabCounts && this.hasLeagueStatistics(tabCounts.children);\n const matchesCount = min([counts.preMatch + counts.live, counts.gridable + counts.nonGridable + counts.other]);\n const shouldShowStandings = tabCounts.id === SportConstant.Soccer && competitionStandings;\n const tabToSelect = this.getTabToSelect(counts, shouldShowStandings, matchesCount!);\n const append = (tab: FixtureTab, count: number, selected?: boolean) => {\n if (count) {\n navigation.push({\n id: tab,\n title: this.sitecore.event[ReverseFixtureTab[tab]],\n count,\n active: selected,\n });\n }\n };\n\n if (matchesCount) {\n navigation.push({\n id: FixtureTab.Matches,\n title: this.sitecore.event[ReverseFixtureTab[FixtureTab.Matches]],\n active: tabToSelect === FixtureTab.Matches,\n count: matchesCount,\n });\n }\n\n append(FixtureTab.Outrights, counts.outrights, tabToSelect === FixtureTab.Outrights);\n append(FixtureTab.Specials, counts.specials, tabToSelect === FixtureTab.Specials);\n\n if (shouldShowStandings) {\n navigation.push({\n id: FixtureTab.Standings,\n title: this.sitecore.event[ReverseFixtureTab[FixtureTab.Standings]],\n count: 0,\n active: tabToSelect === FixtureTab.Standings,\n });\n }\n\n return navigation;\n }\n\n private hasLeagueStatistics(countItems: CountItem[]): boolean {\n for (const countItem of countItems) {\n if (countItem.children.length > 0) {\n const hasStats = this.hasLeagueStatistics(countItem.children);\n if (hasStats) {\n return hasStats;\n }\n } else if ((isCompetitionItem(countItem) || isVirtualCompetitionGroupItem(countItem)) && countItem.standings) {\n return true;\n }\n }\n\n return false;\n }\n\n private getTabToSelect(counts: ItemCount, shouldShowStandings: boolean, matchesCount: number): FixtureTab {\n if (matchesCount) {\n return FixtureTab.Matches;\n }\n if (counts.outrights) {\n return FixtureTab.Outrights;\n }\n if (shouldShowStandings) {\n return FixtureTab.Standings;\n }\n if (counts.specials) {\n return FixtureTab.Specials;\n }\n\n return FixtureTab.Matches;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Data, Params } from '@angular/router';\n\nimport { OfferSource } from '@cds';\nimport { ParticipantImage } from '@cds/betting-offer';\nimport { EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, TeamPagesConfig, TeamPagesModuleConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { toDictionary } from '@frontend/sports/common/core/utils/collection';\nimport { NumberDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { getAllParams } from '@frontend/sports/common/core/utils/route-params';\nimport { FavouritesService, FavouritesSport, FavouritesViewModel } from '@frontend/sports/favourites/core/feature';\nimport { CompetitionDetail, ParticipantDetail } from '@frontend/sports/types/components/team-pages';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { isNumber, orderBy, sortBy } from 'lodash-es';\nimport { Observable, Subject, first, map, of, switchMap } from 'rxjs';\n\nimport { MasterdataApiService } from '../cds/cds-masterdata-api.service';\nimport { CompetitionListService } from '../competition-list/services/competition-list.service';\nimport { LiveFavouriteFixturesService } from '../favourites/live-favourites-fixtures.service';\nimport { Tile } from '../highlights-marquee/marquee-tile.model';\nimport { TabBarItem } from '../tab-bar/tab-bar.models';\nimport { TeamPagesApiService } from './team-pages-api.service';\nimport { TeamPagesCoreGridService } from './team-pages-core-grid.service';\nimport { TeamPagesCoreMarqueeService } from './team-pages-core-marquee.service';\nimport {\n FavouriteType,\n Team,\n TeamMenuItem,\n TeamPageCompetition,\n TeamPagesDetailsModel,\n TeamPagesGridModel,\n TeamPagesNavigationViewModel,\n TeamPagesViewModel,\n} from './team-pages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class TeamPagesCoreService {\n private blackListCompetitions: NumberDictionary;\n private backgroundColor: { [x: number]: string };\n private backgroundImage: { [x: number]: string };\n private seeMoreStorageKey = 'seeMoreCompetition';\n private readonly v2Prefix = '2_';\n private readonly v1Prefix = '';\n private readonly homeTeamSuffix = '_1';\n private readonly logoSuffix = '_logo';\n private selectedTeaminfo = new Subject();\n\n constructor(\n private teamPagesConfig: TeamPagesConfig,\n private favouritesService: FavouritesService,\n private userService: UserService,\n private teamPagesData: TeamPagesModuleConfig,\n public sitecore: Sitecore,\n private liveFavouritesService: LiveFavouriteFixturesService,\n private teamPagesCoreMarqueeService: TeamPagesCoreMarqueeService,\n private api: TeamPagesApiService,\n private m2LocalStore: LocalStoreService,\n private teamPagesCoreGridService: TeamPagesCoreGridService,\n private competitionListService: CompetitionListService,\n private cdsMasterApi: MasterdataApiService,\n ) {\n this.blackListCompetitions = this.getBlackListCompetitions();\n }\n\n get blackListCompetitionsIds(): NumberDictionary {\n return this.blackListCompetitions;\n }\n\n isTeamPagesEnabledForSport(sportId: number): boolean {\n return this.teamPagesConfig.isEnabled && this.teamPagesConfig.whitelistedSports.includes(sportId);\n }\n\n get selectedTeam(): Observable {\n return this.selectedTeaminfo.asObservable();\n }\n\n selectedTeamChanged(team: Team): void {\n this.selectedTeaminfo.next(team);\n }\n\n getModelByCompetition(\n route: ActivatedRouteSnapshot,\n isNavigationViewModel: boolean = false,\n compoundId?: string | undefined,\n ): Observable {\n const { sport, competition, team, league } = getAllParams(route);\n // if no competitions or leauge we need to show myteams which has favourite teams\n if (!competition && !league) {\n const response = this.getFavouriteTeams(Number(sport));\n let favouriteTeams: FavouritesViewModel[] = [];\n let teams: Team[] = [];\n if (response?.length) {\n favouriteTeams = response.filter(\n (f) => f.sport.id.toString() === sport && (f.type === FavouriteType.Participant || f.type === FavouriteType.ParticipantV2),\n );\n teams = this.mapToTeamsFromFavouritesResponse(favouriteTeams, team?.toString());\n if (teams.length === 0) {\n return of(undefined);\n }\n }\n\n return this.getTeamPageViewModel(teams, route, isNavigationViewModel);\n }\n\n return this.api.getTeamsByCompetitionId(compoundId || competition, Number(sport)).pipe(\n switchMap((teams) => {\n if (teams.length === 0) {\n return of(undefined);\n }\n\n return this.getTeamPageViewModel(teams, route, isNavigationViewModel);\n }),\n );\n }\n\n set seeMoreCompetition(comp: TeamPageCompetition) {\n this.m2LocalStore.set(this.seeMoreStorageKey, comp);\n }\n\n getTeamNavigationViewModel(route: ActivatedRouteSnapshot): Observable {\n return this.getModelByCompetition(route, true).pipe(\n map((model) => {\n if (!model) {\n return undefined;\n } else {\n return model.teamPagesNavigationViewModel;\n }\n }),\n );\n }\n\n getParticipantImageInfo(sportId: number, favouritesList: Team[]): Observable[] | undefined> {\n return this.cdsMasterApi.getImagesInfo(\n sportId,\n favouritesList?.map((x) => x.id),\n );\n }\n\n getCompetitionName(sportId: number, competitionId: string): string {\n const siteCoreSportDetails = this.teamPagesData.teamPageItems.sportDetails;\n const competitionsForSport = siteCoreSportDetails.find((sport) => sport.sportId === sportId);\n const competition = competitionsForSport?.competitionDetails.find((c) => c.competitionId === competitionId);\n\n return competition?.competitionName ?? '';\n }\n\n isFavouriteTeam(teamId: number): boolean {\n return this.favouritesService.favouritesList.some((fav) => fav.itemId === teamId.toString());\n }\n\n getImageType(\n sportId: number,\n paarticipantId: number,\n offersource?: OfferSource | FavouriteType,\n imageProfile?: EventParticipantImage,\n ): EventParticipantImage {\n if (!this.teamPagesConfig.imageProfileEnabledSportIds.includes(sportId)) {\n if (this.teamPagesConfig.sportsToDisplayLogos.includes(sportId)) {\n return offersource === OfferSource.V2 || offersource === FavouriteType.ParticipantV2\n ? {\n jersey: this.getImage(paarticipantId, this.v2Prefix, this.homeTeamSuffix),\n logo: this.getImage(paarticipantId, this.v2Prefix, this.logoSuffix),\n isParticipantProfile: false,\n }\n : {\n jersey: this.getImage(paarticipantId, this.v1Prefix, this.homeTeamSuffix),\n logo: this.getImage(paarticipantId, this.v1Prefix, this.logoSuffix),\n isParticipantProfile: false,\n };\n } else {\n return offersource === OfferSource.V2 || offersource === FavouriteType.ParticipantV2\n ? {\n jersey: this.getImage(paarticipantId, this.v2Prefix, this.homeTeamSuffix),\n isParticipantProfile: false,\n }\n : {\n jersey: this.getImage(paarticipantId, this.v1Prefix, this.homeTeamSuffix),\n isParticipantProfile: false,\n };\n }\n } else {\n return {\n jersey: imageProfile?.jersey,\n logo: imageProfile?.logo,\n isParticipantProfile: imageProfile?.isParticipantProfile ?? true,\n };\n }\n }\n\n getImage(paarticipantId: number, prefix: string, sugffix: string): string {\n return prefix + paarticipantId + sugffix;\n }\n\n getBackgroundColor(sportId?: number): string {\n if (!sportId) {\n return '';\n }\n\n if (!this.backgroundColor) {\n this.backgroundColor = Object.assign(\n {},\n ...this.teamPagesData.backgroundImages.backgrounds.map((img) => ({ [img.sportId]: img.innerColor })),\n );\n }\n\n return this.backgroundColor[sportId];\n }\n\n getBackgroundImageUrl(sportId?: number): string {\n if (!sportId) {\n return '';\n }\n\n if (!this.backgroundImage) {\n this.backgroundImage = Object.assign({}, ...this.teamPagesData.backgroundImages.backgrounds.map((img) => ({ [img.sportId]: img.src })));\n }\n\n return this.backgroundImage[sportId];\n }\n\n getPopularTeams(sportId?: number): ParticipantDetail[] {\n return this.teamPagesData.teamPageItems.popularTeamsDetails?.filter((team) => team.sportId === sportId) || [];\n }\n\n mapTeamData(team: {\n id: number;\n name: string;\n sport: FavouritesSport;\n competitionId?: string;\n isSelected?: boolean;\n offerSource?: OfferSource | number;\n favType?: FavouriteType;\n imageProfile?: EventParticipantImage;\n }): Team {\n let offerSource: OfferSource | undefined;\n\n if (isNumber(team.offerSource)) {\n offerSource = team.offerSource === 1 ? OfferSource.V1 : OfferSource.V2;\n } else {\n offerSource = team.offerSource;\n }\n\n return {\n participantImage: this.getImageType(team.sport.id, team.id, offerSource, team.imageProfile),\n sportIcon: 'sports-' + team.sport.id,\n name: team.name,\n id: team.id,\n competitionId: team.competitionId,\n sport: team.sport,\n isSelected: team.isSelected || false,\n favouriteParticipant: {\n id: team.id,\n name: team.name,\n image: team.imageProfile,\n },\n offerSource,\n isFavourited: this.isFavouriteTeam(team.id) || false,\n teamType: team.favType,\n };\n }\n\n getParticipantImage(image: string, logo: string): EventParticipantImage {\n return {\n jersey: image,\n logo,\n isParticipantProfile: false,\n };\n }\n\n getFavouriteTeams(sportId: number): FavouritesViewModel[] {\n if (this.userService.isAuthenticated) {\n const favouritesList = this.favouritesService.favouritesList.filter(\n (team) => team.sport.id === sportId && (team.type === FavouriteType.Participant || team.type === FavouriteType.ParticipantV2),\n );\n\n // show latest favourited item\n return favouritesList.reverse();\n }\n\n return [];\n }\n\n getAllCompetitions(sportId: number): Observable {\n return this.teamPagesData.whenReady.pipe(\n first(),\n switchMap(() => {\n const siteCoreSportDetails = this.teamPagesData.teamPageItems.sportDetails;\n const competitionsForSport = siteCoreSportDetails?.find((sport) => sport.sportId === sportId)?.competitionDetails;\n if (competitionsForSport?.length) {\n const competitions = competitionsForSport.map((comp) => ({\n competitionId: comp.competitionId,\n competitionName: comp.competitionName,\n }));\n\n return this.api.getCompetitionsAndTeamsCount(competitions, sportId);\n }\n\n return of([]);\n }),\n );\n }\n\n private getBlackListCompetitions(): NumberDictionary {\n return toDictionary(\n this.teamPagesConfig.blacklistedCompetitions,\n (id) => Number(id.split(':')[1]),\n (_, index) => index,\n );\n }\n\n private mapToTeamsFromFavouritesResponse(favouriteTeams: FavouritesViewModel[], selectedTeam?: string): Team[] {\n if (!favouriteTeams || favouriteTeams.length === 0) {\n return [];\n }\n const teams: Team[] = [];\n favouriteTeams.map((favTeam) =>\n teams.push({\n id: Number(favTeam.itemId),\n isFavourited: true,\n name: favTeam.name,\n isSelected: favTeam.itemId === selectedTeam,\n sport: favTeam.sport,\n participantImage: this.getImageType(favTeam.sport.id, Number(favTeam.itemId), favTeam.type, favTeam.participantImage),\n offerSource: favTeam.type === FavouriteType.Participant ? OfferSource.V1 : OfferSource.V2,\n teamType: favTeam.type,\n favouriteParticipant: {\n id: Number(favTeam.itemId),\n name: favTeam.name,\n image: favTeam.imageProfile,\n },\n }),\n );\n\n return teams;\n }\n\n private getAllChildParams(route: ActivatedRouteSnapshot): Params {\n let params = { ...route.params };\n let childRoute = route.firstChild;\n while (childRoute) {\n params = Object.assign(params, childRoute.params);\n childRoute = childRoute.parent;\n }\n\n return params;\n }\n\n getTeamPageViewModel(teams: Team[], route: ActivatedRouteSnapshot, isNavigationViewModel: boolean = false): Observable {\n const teamPagesViewModel = {} as TeamPagesViewModel;\n const { sport, sportName, competition, competitionName, team, teamName } = getAllParams(route);\n const routeParams = {\n sport: Number(sport),\n sportName,\n competition,\n competitionName,\n team,\n teamName,\n data: route.data,\n };\n teamPagesViewModel.teamPagesNavigationViewModel = {};\n if (teams.length) {\n teams = teams.map((teamdata) => ({\n ...teamdata,\n isFavourited: this.isFavouriteTeam(teamdata.id),\n teamType: teamdata.teamType,\n offerSource: teamdata.offerSource,\n participantImage: teamdata.participantImage,\n }));\n\n if (routeParams.competition || route.params.league) {\n teams = orderBy(teams, (t) => t.name?.toLowerCase());\n const favTeamIds = this.getFavouriteTeams(Number(sport));\n const favTeamOrder = new Map(favTeamIds.map((val, index) => [val.itemId, index]));\n teams = sortBy(teams, (t) => favTeamOrder.get(t.id.toString()) ?? 9999);\n }\n const selectedTeam = teams.find((teamdata) => teamdata.id === Number(routeParams.team));\n teamPagesViewModel.teamPagesNavigationViewModel.selectedTeam = {\n id: selectedTeam ? selectedTeam.id : this.getAllChildParams(route).team || teams[0].id,\n isFavourited: false,\n isSelected: true,\n name: selectedTeam ? selectedTeam.name : this.getAllChildParams(route).teamName || teams[0].name,\n sport: { id: routeParams.sport, name: routeParams.sportName },\n participantImage: this.getImageType(\n routeParams.sport,\n routeParams.team || 0,\n selectedTeam?.offerSource,\n selectedTeam?.participantImage,\n ),\n offerSource: selectedTeam?.offerSource,\n competitionId: competition,\n };\n }\n if (isNavigationViewModel) {\n const favourites = this.getAllTeams(teams, teamPagesViewModel.teamPagesNavigationViewModel.selectedTeam);\n\n return this.getModel(routeParams, favourites, isNavigationViewModel);\n }\n\n return this.teamPagesCoreGridService.getGridModel(teamPagesViewModel.teamPagesNavigationViewModel.selectedTeam).pipe(\n switchMap((model) =>\n this.teamPagesCoreMarqueeService\n .getFixturesMarquees(teamPagesViewModel.teamPagesNavigationViewModel.selectedTeam, model.fixtureIds)\n .pipe(\n switchMap((fixturemarquees) => {\n const favourites = this.getAllTeams(teams, teamPagesViewModel.teamPagesNavigationViewModel.selectedTeam);\n\n return this.getModel(routeParams, favourites, false, model, fixturemarquees);\n }),\n ),\n ),\n );\n }\n\n private getModel(\n routeParams: {\n sport: number;\n sportName: string;\n competition: string;\n competitionName: string;\n team: number;\n teamName: string;\n data?: Data;\n },\n teams: Team[],\n isOnlyNavigationViewModel: boolean = false,\n teampagesGridModel?: TeamPagesGridModel,\n fixtureMarquees?: Tile[],\n ): Observable {\n const team = teams.find((t) => t.isSelected);\n const selectedTeam = {\n id: team?.id ?? 0,\n isFavourited: true,\n isSelected: true,\n name: team?.name ?? '',\n sport: { id: routeParams.sport, name: routeParams.sportName },\n participantImage: this.getImageType(routeParams.sport, team?.id || 0, team?.offerSource, team?.participantImage),\n sportIcon: '',\n offerSource: team?.offerSource,\n competitionId: routeParams.competition,\n };\n const favouritesEnabled = this.liveFavouritesService.isLiveFavouriteEnabled() || this.liveFavouritesService.isSwipeFavouriteEnabled();\n const hasFavouritedTeams = teams.some((t) => t.isFavourited);\n\n return this.mapToCompetitionTabs(favouritesEnabled, routeParams).pipe(\n map((tabs) => {\n const teamPagesNavigationViewModel = {\n teams,\n competitionTabs: isOnlyNavigationViewModel ? tabs : [],\n currentSport: { id: Number(routeParams.sport), name: routeParams.sportName },\n selectedTeam,\n hasFavouritedTeams,\n popularTeams: this.getPopularTeams(Number(routeParams.sport)),\n };\n if (isOnlyNavigationViewModel) {\n return {\n teamPagesNavigationViewModel,\n teamPagesDetailsModel: {},\n };\n }\n const teamPagesDetailsModel = {\n teampagesGridViewModel: {\n teamPagesGridModel: teampagesGridModel,\n selectedTeam,\n },\n bannerViewModel: {\n backgroundImage: this.getBackgroundImageUrl(routeParams.sport),\n team: selectedTeam,\n },\n marqueeTiles: fixtureMarquees,\n sportCounts: this.getSportsCounts(routeParams?.sport),\n };\n\n return {\n teamPagesNavigationViewModel,\n teamPagesDetailsModel,\n };\n }),\n );\n }\n\n private getSportsCounts(sportId: number) {\n let sportsCounts: CountItem | undefined;\n this.competitionListService.getSportTree(sportId).subscribe((result) => {\n sportsCounts = result?.sport;\n });\n\n return sportsCounts;\n }\n\n private mapToCompetitionTabs(\n favouritesEnabled: boolean,\n routeParams: {\n sport: number;\n sportName: string;\n competition: string;\n competitionName: string;\n team: number;\n teamName: string;\n data?: Data;\n },\n ): Observable[]> {\n return this.getAllCompetitions(Number(routeParams.sport)).pipe(\n map((competitions) => {\n if (!competitions || competitions.length === 0) {\n return [];\n }\n const selectedCompetitionId = routeParams.competition || competitions[0].competitionId;\n const tabs = competitions.map((comp) => ({\n id: comp.competitionId,\n title: comp.competitionName,\n active: false,\n }));\n if (favouritesEnabled && this.userService.isAuthenticated) {\n tabs.splice(0, 0, {\n title: this.sitecore.globalMessages.MyTeams,\n active: this.userService.isAuthenticated && !routeParams.competition,\n id: TeamMenuItem.MyTeams,\n });\n }\n if (!tabs[0].active) {\n tabs.forEach((t) => (t.active = t.id === selectedCompetitionId));\n }\n const anyActiveTab = tabs.some((item) => item.active);\n tabs.push({\n title: this.sitecore.globalMessages.SeeMore,\n active: !anyActiveTab,\n id: TeamMenuItem.Showmore,\n });\n\n return tabs;\n }),\n );\n }\n\n private getAllTeams(teams: Team[], selectedTeam: Team): Team[] {\n if (!teams) {\n return [];\n }\n\n return teams.map((team) =>\n this.mapTeamData({\n id: team.id,\n name: team.name,\n sport: { id: selectedTeam.sport!.id, name: selectedTeam.sport!.name },\n competitionId: team.competitionId,\n isSelected: team.id === Number(selectedTeam.id),\n offerSource: team.offerSource,\n favType: team.teamType,\n imageProfile: team.participantImage,\n }),\n );\n }\n}\n","\n \n \n \n\n","import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { CompetitionHeaderPayload } from '@frontend/sports/types/components/widget/types';\nimport { Observable, ReplaySubject, map, of, switchMap, tap } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { CompetitionRoute } from '../../navigation/navigation.models';\nimport { WidgetComponent } from '../../widget/core/widget-registry.service';\nimport { PruneHelperService } from './competitions/prune-helper.service';\nimport { VirtualCompetitionModel, VirtualCompetitionService } from './virtual-competition.service';\n\ntype ViewModel = CompetitionHeaderPayload & {\n sport: CountItem;\n isFavouritesEnabled: boolean;\n virtualCompetition: VirtualCompetitionModel | null;\n};\n\n@Component({\n selector: 'ms-competition-header-widget',\n templateUrl: 'competition-header-widget.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CompetitionHeaderWidgetComponent extends WidgetComponent {\n private readonly payload$ = new ReplaySubject(1);\n readonly vm$: Observable;\n\n @HostBinding('class') className = 'competition-header-widget event-list';\n\n constructor(\n private competitionRouteService: CompetitionRouteService,\n private virtualCompetitionService: VirtualCompetitionService,\n private pruneService: PruneHelperService,\n private bettingCache: SportsCacheService,\n ) {\n super();\n\n this.vm$ = this.payload$.pipe(\n switchMap((payload) => {\n const route = this.competitionRouteService.params();\n\n if (!route.sport || !route.league) {\n return of(null);\n }\n\n return this.bettingCache.getSport(route.sport).pipe(switchMap((sport) => this.getModel$(sport, route, payload)));\n }),\n );\n }\n\n private getModel$(sport: CountItem | undefined, route: CompetitionRoute, payload: CompetitionHeaderPayload): Observable {\n const prunnedSportItem = this.pruneService.prune(sport, route);\n const virtualCompetitionItem = this.virtualCompetitionService.getCompetition(sport, route);\n\n const source$ =\n !prunnedSportItem || !virtualCompetitionItem\n ? of(null)\n : this.virtualCompetitionService.subscribe$(prunnedSportItem, virtualCompetitionItem);\n\n return source$.pipe(\n map((virtualCompetitionModel) => {\n return {\n sport: prunnedSportItem!,\n title: payload.title,\n // non-virtual competitions and tv2 virtual competitions with one competition assigned, can have favorites enabled\n isFavouritesEnabled: !virtualCompetitionModel || !!virtualCompetitionModel.realCompetitionId,\n virtualCompetition: virtualCompetitionModel,\n };\n }),\n tap((_) => this.setWidgetLoaded()),\n );\n }\n\n protected override onData(payload: CompetitionHeaderPayload): void {\n this.payload$.next(payload);\n }\n}\n","\n \n \n\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, HostBinding } from '@angular/core';\n\nimport { LeagueItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { CompetitionTeamsPayload } from '@frontend/sports/types/components/widget/types';\nimport { Observable, ReplaySubject, concatMap, of, switchMap, tap, withLatestFrom } from 'rxjs';\n\nimport { SportsCacheService } from '../../client-caching/sports-cache.service';\nimport { CompetitionRouteService } from '../../competition-list/competition-route.service';\nimport { ComponentProxy } from '../../deferred/component-loader.service';\nimport { ComponentProxyDirective } from '../../deferred/component-proxy.directive';\nimport { TeamPagesApiService } from '../../teampages-core/team-pages-api.service';\nimport { TeamPagesCoreService } from '../../teampages-core/team-pages-core.service';\nimport { TeamPagesViewModel } from '../../teampages-core/team-pages.model';\nimport { TeamPagesCompetitionViewBinding, TeamPagesComponentLoaderService } from '../../teampages/team-pages-component-loader.service';\nimport { WidgetCommonModule } from '../../widget/common/widget-common.module';\nimport { WidgetComponent } from '../../widget/core/widget-registry.service';\nimport { PruneHelperService } from './competitions/prune-helper.service';\nimport { VirtualCompetitionService } from './virtual-competition.service';\n\n@Component({\n selector: 'ms-competition-teams-widget',\n templateUrl: 'competition-teams-widget.component.html',\n standalone: true,\n imports: [NgIf, AsyncPipe, WidgetCommonModule, ComponentProxyDirective],\n})\nexport class CompetitionTeamsWidgetComponent extends WidgetComponent {\n private payload = new ReplaySubject(1);\n private payload$ = this.payload.asObservable();\n\n readonly teamPagesCompetitionComponent: ComponentProxy;\n\n readonly vm$: Observable;\n title: string | undefined = undefined;\n\n @HostBinding('class') className = 'competition-teams-widget grid-wrapper';\n\n @HostBinding('class.competition-teams-widget--standalone') get standalone() {\n return !this.parent;\n }\n\n constructor(\n private loader: TeamPagesComponentLoaderService,\n private teamPagesApi: TeamPagesApiService,\n private teamPagesCore: TeamPagesCoreService,\n private routeEvents: RouterEventsService,\n private bettingCache: SportsCacheService,\n private competitionRoute: CompetitionRouteService,\n private pruneService: PruneHelperService,\n private virtualCompetitionService: VirtualCompetitionService,\n ) {\n super();\n\n this.teamPagesCompetitionComponent = this.loader.getTeamPagesComponent();\n\n this.vm$ = this.payload$.pipe(\n withLatestFrom(this.routeEvents.currentActivationEnd),\n switchMap(([payload, route]) => {\n const sport$ = this.bettingCache.getSport(this.competitionRoute.params().sport!);\n\n return sport$.pipe(\n concatMap((sport) => {\n if (!route?.snapshot) {\n return of(undefined);\n }\n\n const { participants, competitionId } = payload;\n const teams = participants\n .filter((item) => item && item.participantId)\n .map((item) => this.teamPagesApi.mapTeam(item, competitionId));\n\n const leagueRoute = this.competitionRoute.params();\n const prunedSport = this.pruneService.prune(sport, leagueRoute);\n const competition = this.virtualCompetitionService.getCompetition(prunedSport, leagueRoute, !!leagueRoute.isVirtual);\n\n this.title = this.interpolateTitle(payload.title, competition);\n\n return this.teamPagesCore.getTeamPageViewModel(teams, route.snapshot);\n }),\n );\n }),\n tap((model) => {\n if (model) {\n this.teamPagesCompetitionComponent.update({ teampagesViewModel: model });\n }\n this.setWidgetLoaded();\n }),\n );\n }\n\n override onData(payload: CompetitionTeamsPayload): void {\n this.payload.next(payload);\n }\n\n private interpolateTitle(title: string | undefined, league: LeagueItem | undefined): string {\n return interpolateDoubleBracesString(title, { competition: league?.name ?? '' });\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { FixturePage, FixtureType, OfferCategory } from '@cds/betting-offer';\nimport { FixtureRequest, FixtureState, OfferMapping, SortByCriteria } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { GridConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { CountItem, sportModelMethods } from '@frontend/sports/common/core/data-access/sport-model';\nimport { GridSorting } from '@frontend/sports/grid/core/feature/model';\nimport { toString } from 'lodash-es';\nimport { Observable, map } from 'rxjs';\n\nimport { CalendarService } from '../../../calendar/calendar.service';\nimport { SportsCacheService } from '../../../client-caching/sports-cache.service';\nimport { MarketOfferUrlParam } from '../../../navigation-core/url-helper.service';\nimport { CompetitionRoute } from '../../../navigation/navigation.models';\nimport { StatisticsConfigService } from '../../../statistics/statistics-config.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EventListService {\n constructor(\n protected bettingContent: BettingOfferApi,\n protected calendarService: CalendarService,\n protected gridConfig: GridConfig,\n protected bettingCache: SportsCacheService,\n @Optional() protected statisticsConfigService?: StatisticsConfigService,\n ) {}\n\n getSportList(start?: string, end?: string): Observable {\n const cached = !start && !end;\n\n const source = cached\n ? this.bettingCache.getSportList()\n : this.bettingContent\n .getSportList({\n from: start,\n to: end,\n })\n .pipe(map((sports) => sportModelMethods.fromTag(sports)));\n\n return source;\n }\n\n getFixtureList(\n route: CompetitionRoute,\n sorting?: GridSorting,\n skip?: number,\n take?: number,\n interval: { from?: string; to?: string } = {},\n ): Observable {\n skip = skip || 0;\n take = take || this.gridConfig.initialSize;\n\n const fixtureRequest = this.createFixtureRequest(route);\n const dateInterval = this.calendarService.getTimeInterval(route.context) || interval;\n\n if (!fixtureRequest.dynamicOfferCategories && (dateInterval.from || dateInterval.to || route.tournament)) {\n fixtureRequest.fixtureCategories = [\n OfferCategory.Gridable,\n OfferCategory.NonGridable,\n OfferCategory.Other,\n OfferCategory.Specials,\n OfferCategory.Outrights,\n ].join(',');\n\n fixtureRequest.offerCategories =\n route.marketOffer === MarketOfferUrlParam.Specials || route.marketOffer === MarketOfferUrlParam.Outrights\n ? [OfferCategory.Outrights, OfferCategory.Specials].join(',')\n : OfferCategory.Gridable;\n }\n\n fixtureRequest.skip = skip;\n fixtureRequest.take = take;\n fixtureRequest.sortBy = sorting === GridSorting.Time ? SortByCriteria.StartDate : SortByCriteria.Tags;\n fixtureRequest.from = dateInterval.from;\n fixtureRequest.to = dateInterval.to;\n\n return this.bettingContent.getFixtureList(fixtureRequest);\n }\n\n createFixtureRequest(route: CompetitionRoute): FixtureRequest {\n let offerCategories: string | undefined;\n let offerTemplates: string | undefined;\n let fixtureCategories: string | undefined;\n let isPriceBoost = false;\n const hasSubcategories = route.outrightCategory || route.specialCategory;\n\n if (!route.marketTemplate) {\n if (route.marketOffer === MarketOfferUrlParam.PriceBoost) {\n isPriceBoost = true;\n } else if (route.marketOffer === MarketOfferUrlParam.Outrights) {\n offerCategories = OfferCategory.Outrights;\n fixtureCategories = !hasSubcategories ? OfferCategory.Outrights : undefined;\n } else if (route.marketOffer === MarketOfferUrlParam.Specials) {\n offerCategories = OfferCategory.Specials;\n fixtureCategories = !hasSubcategories ? OfferCategory.Specials : undefined;\n } else {\n if (route.marketOffer === MarketOfferUrlParam.NonGridable) {\n offerCategories = OfferCategory.NonGridable;\n } else {\n offerCategories = OfferCategory.Gridable;\n }\n\n fixtureCategories = [OfferCategory.Gridable, OfferCategory.NonGridable, OfferCategory.Other].join(',');\n }\n } else {\n offerTemplates = route.marketTemplate.toString();\n }\n\n return {\n fixtureTypes: FixtureType.Standard,\n state: FixtureState.Latest,\n offerMapping: OfferMapping.Filtered,\n offerCategories: route.dynamicOfferCategory ? undefined : offerCategories,\n dynamicOfferCategories: route.dynamicOfferCategory,\n outrightGroups: route.outrightCategory,\n specialGroups: route.specialCategory,\n fixtureCategories: route.dynamicOfferCategory ? undefined : fixtureCategories,\n sportIds: toString(route.sport),\n regionIds: route.sport === SportConstant.Tennis ? undefined : toString(route.region),\n tournamentIds: route.sport === SportConstant.Tennis ? toString(route.region) : undefined,\n competitionIds: route.isVirtual ? undefined : toString(route.league),\n conferenceIds: route.isVirtual ? undefined : toString(route.conference),\n virtualCompetitionIds: route.isVirtual ? toString(route.league) : undefined,\n virtualCompetitionGroupIds: (route.isVirtual && toString(route.virtualCompetitionGroup)) || undefined,\n gameTemplateIds: offerTemplates,\n isPriceBoost,\n statisticsModes: this.statisticsConfigService?.getStatisticsModesBySportId(route.sport),\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SessionStoreService } from '@frontend/vanilla/core';\n\nimport { SitemapStateModel } from './sitemap.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapSaveStateService {\n private sessionKey = 'sitemap-state';\n\n constructor(private sessionStore: SessionStoreService) {}\n\n get sitemap() {\n return (this.sessionStore.get(this.sessionKey) as SitemapStateModel) ?? {};\n }\n\n set sitemap(items: SitemapStateModel) {\n this.sessionStore.set(this.sessionKey, items);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SitemapSaveStateService } from './sitemap-save-state.service';\nimport { SitemapItemBaseModel, SitemapStateModel } from './sitemap.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapStateService {\n private navigationPath: SitemapStateModel;\n\n constructor(private saveStateService: SitemapSaveStateService) {\n this.navigationPath = {\n currentState: this.saveStateService.sitemap.currentState || [],\n siblings: this.saveStateService.sitemap.siblings || [],\n };\n }\n\n toggleSitemapItem(item: SitemapItemBaseModel): void {\n this.actionWithSaveState(() => {\n if (item.active) {\n this.activateSitemapItem(item);\n } else {\n this.deactivateSitemapItem(item);\n }\n });\n }\n\n setPath(newPath: SitemapItemBaseModel[]): void {\n this.actionWithSaveState(() => {\n this.navigationPath.currentState = newPath;\n });\n }\n\n setSiblings(siblings: SitemapItemBaseModel[]): void {\n this.actionWithSaveState(() => {\n this.navigationPath.siblings = siblings;\n });\n }\n\n getItem(id: string, level: number): SitemapItemBaseModel | undefined {\n return this.navigationPath.currentState.find((n) => n.id === id && n.level === level);\n }\n\n get active(): SitemapItemBaseModel | undefined {\n return this.navigationPath.currentState.find((itm) => itm.active);\n }\n\n get drawerItem(): SitemapItemBaseModel | undefined {\n return this.navigationPath.currentState.find((n) => n.isInDrawer);\n }\n\n get navigation(): SitemapStateModel {\n return this.navigationPath;\n }\n\n get siblings(): SitemapItemBaseModel[] {\n return this.navigationPath.siblings;\n }\n\n private activateSitemapItem(item: SitemapItemBaseModel): void {\n const activeDrawerItem = this.navigationPath.currentState.find((n) => item.activeDrawerItem?.id && n.id === item.activeDrawerItem?.id);\n if (activeDrawerItem) {\n this.navigationPath.currentState = this.navigationPath.currentState.filter((itm) => itm.level <= activeDrawerItem.level);\n activeDrawerItem.active = true;\n\n return;\n }\n\n this.navigationPath.currentState = this.navigationPath.currentState.filter((itm) => itm.level < item.level);\n this.navigationPath.currentState.push({ ...item });\n this.navigationPath.currentState.filter((n) => n.id !== item.id && n.level !== item.level).forEach((n) => (n.active = false));\n this.navigationPath.siblings.filter((n) => n.id !== item.id).forEach((n) => (n.active = false));\n }\n\n private deactivateSitemapItem(item: SitemapItemBaseModel): void {\n if (item.level === 1) {\n this.navigationPath.currentState = [];\n\n return;\n }\n\n this.navigationPath.currentState = this.navigationPath.currentState.filter((itm) => itm.level < item.level);\n const newActiveItem = this.navigationPath.currentState.find((itm) => itm.level === item.level - 1);\n if (newActiveItem) {\n this.navigationPath.currentState.forEach((n) => (n.active = false));\n newActiveItem.active = true;\n }\n }\n\n private actionWithSaveState(action: () => void): void {\n action();\n this.saveStateService.sitemap = this.navigationPath;\n }\n}\n","import { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nimport { Tag } from '@cds/betting-offer/tags';\n\nexport interface SitemapModel {\n showGoHome?: boolean;\n items: SitemapItemModel[];\n}\nexport interface SitemapItemBaseModel {\n id: string;\n title?: string;\n type: SitemapItemType;\n url?: string;\n href?: string; // used for seo\n active?: boolean;\n level: number;\n parentUrl?: string;\n isInDrawer?: boolean;\n hasLogo?: boolean;\n activeDrawerItem?: SitemapItemBaseModel;\n sportId?: number;\n competitionId?: number;\n conferenceId?: number;\n icon?: string;\n children?: SitemapItemBaseModel[];\n drawerItems?: SitemapItemBaseModel[];\n drawerSubTitle?: string;\n parentId?: string;\n showIcon?: boolean;\n isVirtual?: boolean;\n badge?: string;\n showActiveDrawerItemTitle?: boolean;\n tournamentId?: number;\n isCompetitionFallback?: boolean;\n}\nexport interface SiteMapResponse {\n data: SitemapItemBaseModel[];\n competitionFallback: SitemapItemBaseModel[];\n}\nexport interface SitemapItemModel extends SitemapItemBaseModel {\n showSeparator?: boolean;\n drawer?: SitemapDrawerModel;\n count?: number;\n scrollId?: string;\n}\n\nexport interface SitemapDrawerModel {\n type: SitemapDrawerType;\n sportId?: number;\n competitionId?: number;\n title: string;\n subTitle?: string;\n items?: SitemapItemBaseModel[];\n regions?: SitemapRegion[];\n}\n\nexport interface SitemapRegion {\n title: string;\n url?: string;\n urlText?: string;\n items?: SitemapItemBaseModel[];\n}\n\nexport enum SitemapItemType {\n Sport = 'Sport',\n Competition = 'Competition',\n Live = 'Live',\n CustomLink = 'CustomLink',\n AllLeaguesOrTournaments = 'AllLeaguesOrTournaments',\n Region = 'Region',\n LiveVideo = 'LiveVideo',\n Coupons = 'Coupons',\n Calendar = 'Calendar',\n Featured = 'Featured',\n Standings = 'Standings',\n Outrights = 'Outrights',\n Specials = 'Specials',\n MultiBuilder = 'MultiBuilder',\n Favourites = 'Favourites',\n Tournament = 'Tournament',\n Conference = 'Conference',\n WorldCupHub = 'WorldCupHub',\n VirtualCompetition = 'VirtualCompetition',\n Esports = 'Esports',\n DynamicOfferCategory = 'DynamicOfferCategory',\n MultiSportsHub = 'MultiSportsHub',\n}\n\nexport enum SitemapDrawerType {\n Popular = 'Popular',\n All = 'All',\n SelectConference = 'SelectConference',\n}\n\nexport interface SitemapResolveModel {\n routeSnapshot: ActivatedRouteSnapshot;\n model: TModel;\n state: SitemapStateModel;\n config: SitemapItemBaseModel[];\n competitionFallback: SitemapItemBaseModel[];\n}\n\nexport const AllowedMarketGroupSitemapItems = [SitemapItemType.Outrights, SitemapItemType.Specials] as const;\nexport type AllowedMarketGroupSitemapTypes = (typeof AllowedMarketGroupSitemapItems)[number];\nexport interface SitemapHomeModel {\n sitemap: SitemapItemModel[];\n sportsWithCompetitionsOrTournaments: SitemapItemBaseModel[];\n}\n\nexport interface SitemapTooltip {\n visible: boolean;\n message?: string;\n}\n\nexport interface SitemapStateModel {\n currentState: SitemapItemBaseModel[];\n siblings: SitemapItemBaseModel[];\n}\nexport interface VirtalResolverModel {\n event: Event;\n sports: SportDetails[];\n params: Params;\n}\nexport interface SportDetails {\n sport: Tag;\n competitions: Competition[];\n}\nexport interface Competition {\n competition: Tag;\n}\n","import { Injectable } from '@angular/core';\n\nimport { last, orderBy } from 'lodash-es';\n\nimport { SitemapStateService } from './sitemap-state.service';\nimport { SitemapItemBaseModel, SitemapItemModel, SitemapItemType } from './sitemap.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapStateMapper {\n constructor(private stateService: SitemapStateService) {}\n\n syncState(items: SitemapItemModel[]): void {\n const activeFromState = this.stateService.active;\n const activeFromItems = last(\n orderBy(\n items\n .filter((itm) => itm.activeDrawerItem)\n .flatMap((itm) => itm.activeDrawerItem)\n .concat(items.filter((itm) => itm.active)),\n (itm) => itm!.level,\n ),\n );\n\n if (!activeFromState && !activeFromItems) {\n return;\n }\n if (!activeFromState || activeFromState?.id !== activeFromItems?.id || activeFromState?.type !== activeFromItems?.type) {\n const newNavPath = this.getNavigationPath(items);\n this.stateService.setPath(newNavPath);\n }\n }\n\n saveSiblingsInState(items: SitemapItemModel[]): void {\n const lastLevelItem = items[items.length - 1].level;\n const siblings = items.filter((itm) => itm.level === lastLevelItem);\n this.stateService.setSiblings(siblings);\n }\n\n getSiblingsFromState(items: SitemapItemModel[]): void {\n const siblings = this.stateService.siblings;\n const activeEl = items.find((itm) => !!itm.active)!;\n const specificTypes = [SitemapItemType.Coupons, SitemapItemType.Tournament];\n const activeItemIndex = siblings.findIndex(\n (item) => activeEl && (item.id === activeEl.id || (specificTypes.find((t) => t === activeEl.type) && item.type === activeEl.type)),\n );\n\n // when element is not part of the visible sitemap, we do not keep siblings\n if (activeItemIndex === -1) {\n return;\n }\n\n if (items.length === 1) {\n items.splice(0, 1, ...siblings);\n items[activeItemIndex] = activeEl;\n } else {\n const ind = items.findIndex((itm) => itm.level === activeEl.level);\n items[ind - 1].showSeparator = true;\n items.splice(ind, items.length, ...siblings);\n items[ind + activeItemIndex] = activeEl;\n }\n }\n\n private getNavigationPath(items: SitemapItemModel[]): SitemapItemBaseModel[] {\n const newPath: SitemapItemBaseModel[] = [];\n const defaultActive = items.find((itm) => itm.active);\n const tryPushDrawerItem = (item: SitemapItemModel) => {\n if (item.activeDrawerItem) {\n newPath.push(item.activeDrawerItem);\n }\n };\n if (defaultActive) {\n for (let l = 1; l < defaultActive.level; l++) {\n const item = items.find((itm) => itm.level === l);\n if (item) {\n newPath.push({ ...item });\n tryPushDrawerItem(item);\n }\n }\n newPath.push({ ...defaultActive });\n if (defaultActive.level === 1) {\n tryPushDrawerItem(defaultActive);\n }\n const lastIndx = newPath.length - 1;\n newPath.forEach((p, indx) => (p.active = indx === lastIndx));\n }\n\n return newPath;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { takeTop } from '@frontend/sports/common/core/data-access/sport-model';\nimport { usePreloaderData } from '@frontend/sports/common/core/utils/preloaded-data';\nimport { SportsProductService } from '@frontend/sports/host-app/sports-product/feature/sports-product-service';\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, map, of, switchMap } from 'rxjs';\n\nimport { SportsCacheService } from '../client-caching/sports-cache.service';\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\nimport { SiteMapResponse, SitemapItemModel, SitemapModel } from './sitemap.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapService {\n private readonly api = inject(ApiService);\n private readonly sportsProductService = inject(SportsProductService);\n private readonly sportsCache = inject(SportsCacheService);\n private readonly sitecore = inject(Sitecore);\n private readonly urlHelper = inject(UrlHelperService);\n private readonly _window = inject(WINDOW);\n\n private readonly _sitemapSubject$ = new BehaviorSubject({ items: [] });\n private readonly _sitemap$ = this.sportsProductService.isSportsProductActive$.pipe(\n switchMap((isSportsActive) => {\n return isSportsActive ? this._sitemapSubject$.asObservable() : of({ items: [] });\n }),\n );\n\n get sitemap$(): Observable {\n return this._sitemap$;\n }\n\n @usePreloaderData({\n preloader: function (this: SitemapService) {\n return this._window.MS2JS?.SiteMapLoader;\n },\n })\n getSiteMapConfiguration(): Observable {\n return this.api.get('sitemap').pipe(\n switchMap((sitemap) => {\n if (!sitemap.data?.length && !sitemap.competitionFallback?.length) {\n return this.getDefaultConfiguration();\n }\n return of(sitemap);\n }),\n );\n }\n\n setSitemap(sitemap: SitemapModel): void {\n this._sitemapSubject$.next(sitemap);\n }\n\n private getDefaultConfiguration(): Observable {\n const liveItem = {\n id: '{9E50F332-672C-4EB0-9F8B-DE15978848AC}', //just random id\n icon: 'theme-spot-filled sitemap-red-icon',\n type: 'Live',\n title: this.sitecore.globalMessages.NavLive,\n level: 1,\n showIcon: true,\n url: this.urlHelper.getLiveUrl(),\n children: [],\n };\n\n return this.sportsCache.getSportList().pipe(\n map((items) => {\n const sportsItems = takeTop(items, 4).map((item) => {\n return {\n id: item.id.toString(),\n sportId: item.id,\n level: 1,\n showIcon: true,\n type: 'Sport',\n title: item.name,\n url: item?.isVirtual ? this.urlHelper.getVirtualSportUrl(item) : this.urlHelper.getSportUrl(item),\n children: [],\n };\n });\n\n return {\n data: [liveItem, ...sportsItems],\n competitionFallback: [],\n };\n }),\n );\n }\n}\n","import { Injectable, Injector, Type } from '@angular/core';\nimport { ActivatedRouteSnapshot, ActivationEnd } from '@angular/router';\n\nimport { LayoutNavigationConfig, SitemapSitecore } 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 } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { OnAppInit } from '@frontend/vanilla/core';\nimport { Subject, first, forkJoin, takeUntil } from 'rxjs';\n\nimport { TopNavigationVersion } from '../navigation-core/navigation-core.models';\nimport { getToken } from '../router/router.exports';\nimport { SitemapStateMapper } from './sitemap-state-mapper';\nimport { SitemapStateService } from './sitemap-state.service';\nimport { SitemapItemBaseModel } from './sitemap.models';\nimport { SitemapResolve } from './sitemap.resolver';\nimport { SitemapService } from './sitemap.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapBootstrapService implements OnAppInit {\n resolversMap: { [key: string]: Type> };\n private validSubscription$ = new Subject();\n private resolver?: SitemapResolve;\n private lastResolverType?: any;\n private readonly logger: SportsRemoteLogger;\n private isV3Navigation: boolean;\n private sitemapConfiguration: SitemapItemBaseModel[] = [];\n private competitionFallback: SitemapItemBaseModel[] = [];\n private emptySitemap = { items: [] };\n private lastActivationEnd?: ActivationEnd;\n private configIsLoaded?: boolean;\n private lastActivatedRouteSnapshot?: ActivatedRouteSnapshot;\n\n constructor(\n private injector: Injector,\n private routerEvents: RouterEventsService,\n loggerFactory: LoggerFactory,\n private sitemapService: SitemapService,\n private layoutNavConfig: LayoutNavigationConfig,\n private stateMapper: SitemapStateMapper,\n private stateService: SitemapStateService,\n private sitecore: SitemapSitecore,\n ) {\n this.isV3Navigation = this.layoutNavConfig.topNavigationVersion === TopNavigationVersion.V3;\n\n if (this.isV3Navigation) {\n this.logger = loggerFactory.getLogger('SitemapBootstrapService');\n const messages = this.sitecore.whenReady.pipe(first());\n const service = this.sitemapService.getSiteMapConfiguration().pipe(first());\n forkJoin([service, messages]).subscribe(([config, _]) => {\n this.sitemapConfiguration = config.data;\n this.competitionFallback = config.competitionFallback;\n this.configIsLoaded = true;\n if (this.lastActivationEnd) {\n this.activationEnded(this.lastActivationEnd);\n }\n });\n }\n }\n\n onAppInit(): void {\n if (this.isV3Navigation) {\n this.routerEvents.currentActivationEnd.pipe(filterSports()).subscribe((event) => this.activationEnded(event));\n }\n }\n\n private activationEnded(event: ActivationEnd | undefined): void {\n if (!event) {\n return;\n }\n\n this.lastActivationEnd = event;\n\n if (!this.configIsLoaded) {\n return;\n }\n\n const resolverType = this.findFirstSitemapResolver(event.snapshot);\n if (!resolverType) {\n this.renewSubscription();\n this.lastResolverType = null;\n this.sitemapService.setSitemap(this.emptySitemap);\n\n return;\n }\n\n if (resolverType !== this.lastResolverType) {\n this.renewSubscription();\n\n this.resolver = getToken>(resolverType, event.snapshot, this.injector);\n\n if (!this.resolver) {\n this.sitemapService.setSitemap(this.emptySitemap);\n this.logger.error(`Could not resolve Sitemap resolver: ${resolverType} - route: ${event}`);\n\n return;\n }\n\n this.lastResolverType = resolverType;\n }\n\n if (this.lastActivatedRouteSnapshot !== event.snapshot) {\n this.lastActivatedRouteSnapshot = event.snapshot;\n const model = event.snapshot.data.model;\n const resolveModel = {\n routeSnapshot: event.snapshot,\n model,\n state: this.stateService.navigation,\n config: this.sitemapConfiguration,\n competitionFallback: this.competitionFallback,\n };\n this.resolver\n ?.resolve(resolveModel, this.stateMapper)\n .pipe(takeUntil(this.validSubscription$))\n .subscribe((sitemap) => this.sitemapService.setSitemap(sitemap));\n }\n }\n\n private renewSubscription(): void {\n this.validSubscription$.next(undefined);\n this.validSubscription$.complete();\n this.validSubscription$ = new Subject();\n }\n\n private findFirstSitemapResolver(snapshot: ActivatedRouteSnapshot): Type> | undefined {\n let crtSnapshot: ActivatedRouteSnapshot | null = snapshot;\n\n while (crtSnapshot && !crtSnapshot.data?.sitemap) {\n crtSnapshot = crtSnapshot.parent;\n }\n\n const resolverTypeName = crtSnapshot?.data?.sitemap;\n if (!resolverTypeName || !this.resolversMap) {\n return undefined;\n }\n\n return this.resolversMap[resolverTypeName];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CountItem } from '@frontend/sports/common/core/data-access/sport-model';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { sumBy } from 'lodash-es';\nimport { NEVER, Subject, combineLatest, distinctUntilKeyChanged, switchMap } from 'rxjs';\n\nimport { BreadcrumbsSlotService } from '../breadcrumbs/breadcrumbs-slot.service';\nimport { AdaptiveLayoutService } from '../layout/adaptive-layout.service';\n\ninterface LiveNowLinkData {\n sports: CountItem[];\n url?: string;\n}\n\nconst loadLiveNowItemComponent = () => import('./live-now-item.component').then((c) => c.LiveNowItemComponent);\n\n@Injectable({ providedIn: 'root' })\nexport class LiveNowLinkRegisterService {\n private data$ = new Subject();\n\n constructor(\n private adaptiveLayout: AdaptiveLayoutService,\n private breadcrumbSlot: BreadcrumbsSlotService,\n ) {\n const layoutState$ = this.adaptiveLayout.stateChange$.pipe(distinctUntilKeyChanged('headerSubNavigation'));\n\n combineLatest([this.data$, layoutState$])\n .pipe(\n filterSportsEmitLast(),\n switchMap(([data, state]) => {\n if (!data?.sports?.length || !state.headerSubNavigation) {\n this.breadcrumbSlot.clearSlot();\n\n return NEVER;\n }\n\n const liveCount = sumBy(data.sports, (sport: CountItem) => sport.counts.live);\n\n if (liveCount) {\n return loadLiveNowItemComponent().then((component) => ({\n component,\n inputs: {\n count: liveCount,\n liveUrl: data.url,\n sport: data.sports.length === 1 && data.sports[0].id ? data.sports[0] : undefined,\n },\n }));\n }\n this.breadcrumbSlot.clearSlot();\n\n return NEVER;\n }),\n )\n .subscribe(({ component, inputs }) => this.setLiveButton(component, inputs));\n }\n\n addLiveButtonWithMultipleSports(sports: CountItem[], url: string): void {\n this.data$.next({ sports, url });\n }\n\n addLiveButton(sport?: CountItem, url?: string): void {\n this.data$.next({ sports: sport ? [sport] : [], url });\n }\n\n removeLiveButton(): void {\n this.data$.next();\n }\n\n private setLiveButton(\n component: any,\n inputs: {\n count: number;\n liveUrl?: string;\n sport?: CountItem;\n },\n ): void {\n this.breadcrumbSlot.setSlot({\n component,\n inputs,\n });\n }\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 { 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 { 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, 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 constructor(/** The box type to observe for resizes. */\n _box) {\n this._box = _box;\n /** Stream that emits when the shared observer is destroyed. */\n this._destroyed = new Subject();\n /** Stream of all events from the ResizeObserver. */\n this._resizeSubject = new Subject();\n /** A map of elements to streams of their resize events. */\n this._elementObservables = new Map();\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 constructor() {\n /** Map of box type to shared resize observer. */\n this._observers = new Map();\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('error', loopLimitExceededErrorHandler);\n });\n }\n }\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n window.removeEventListener('error', loopLimitExceededErrorHandler);\n }\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 {\n this.ɵfac = function SharedResizeObserver_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SharedResizeObserver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedResizeObserver,\n factory: SharedResizeObserver.ɵfac,\n providedIn: 'root'\n });\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 standalone: true,\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 // eslint-disable-next-line no-constant-condition\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 v18.2.6\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, ɵChangeDetectionScheduler, ɵRuntimeError, 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 /**\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 this._rendererFactoryPromise = null;\n this.scheduler = inject(ɵChangeDetectionScheduler, {\n optional: true\n });\n this.loadingSchedulerFn = inject(ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN, {\n optional: true\n });\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?.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 static {\n this.ɵfac = function AsyncAnimationRendererFactory_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AsyncAnimationRendererFactory,\n factory: AsyncAnimationRendererFactory.ɵfac\n });\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 constructor(delegate) {\n this.delegate = delegate;\n // List of callbacks that need to be replayed on the animation renderer once its loaded\n this.replay = [];\n this.ɵtype = 1 /* AnimationRendererType.Delegated */;\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) {\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));\n }\n return this.delegate.listen(target, eventName, callback);\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 * ```typescript\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 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 { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, EventContext, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\nexport interface LoadOptions {\n /** The unique id of the loader. If provided, loader with provided id will be used */\n id?: string;\n enabled: string;\n strategy: string;\n delay: number;\n styles?: StyleOptions[];\n events?: { [key: string]: string[] };\n eventContext?: EventContext;\n}\n\nexport interface StyleOptions {\n /** The unique id of the chunk */\n id: string;\n /** The chunk type. theme will be looked in manifest.json, url represents any external file that will be loaded, content will be added as */\n type: 'theme' | 'url' | 'content';\n /** When specified, indicates the css class added to html node */\n htmlCssClass?: string;\n}\n\n@LazyClientConfig({ key: 'vnLazyFeatures', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: loadersConfigFactory,\n deps: [LazyClientConfigService],\n})\nexport class LoadersConfig extends LazyClientConfigBase {\n rules: { [id: string]: LoadOptions };\n}\n\nexport function loadersConfigFactory(service: LazyClientConfigService) {\n return service.get(LoadersConfig);\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 '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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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';\n// eslint-disable-next-line @nx/enforce-module-boundaries\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 // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-argument\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 standalone: true,\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 standalone: true,\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 { 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 ) {}\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 combineLatest([vanillaNav, layoutBottomNavVisibility])\n .pipe(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 standalone: true,\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 { APP_INITIALIZER, Provider, inject } 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[] => {\n if (type === 'noop') {\n return [];\n }\n\n return [\n BrowserBackDetectionService,\n {\n provide: APP_INITIALIZER,\n useFactory: browserBackDetectionInitializer,\n multi: true,\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 { APP_INITIALIZER, Provider, inject } 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'): Provider[] => {\n if (type === 'noop') {\n return [];\n }\n\n return [\n NativeTransitionDetectionService,\n {\n provide: APP_INITIALIZER,\n useFactory: nativeTransitionDetectionInitializer,\n multi: true,\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":["TopNavigationVersion","BreadcrumbsSlotService","constructor","_componentRegistered","BehaviorSubject","undefined","setSlot","slot","next","clearSlot","slotRegistered$","asObservable","registeredComponent","getValue","r","factory","ɵfac","providedIn","_BreadcrumbsSlotService","DsTabHeader","ngTemplateContextGuard","directive","context","I","selectors","standalone","_DsTabHeader","DsTabContent","_DsTabContent","ɵɵelementContainer","Oe","ɵɵtemplate","DsTab_Conditional_0_ng_container_0_Template","ɵɵproperty","ctx_r0","lazyContent","_tabNameIndex","getRandomName","DsTab","name","input","title","disabled","transform","booleanAttribute","customHeader","selected","signal","focused","_focusMonitor","inject","FocusMonitor","_elementRef","ElementRef","setFocused","set","ngOnDestroy","stopMonitoring","nativeElement","contentQueries","rf","ctx","dirIndex","TemplateRef","v","g","D","ze","P","DsTab_Conditional_0_Template","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵconditional","ɵɵadvance","ɵɵclassProp","NgTemplateOutlet","encapsulation","changeDetection","_DsTab","DsTabsScrollArrow","direction","hostVars","hostBindings","ɵɵelement","_DsTabsScrollArrow","INITIAL_SCROLL_DELAY","SCROLL_THRESHOLD","DsTabsArrows","_injector","Injector","_destroyRef","DestroyRef","_breakpointObserver","BreakpointObserver","isSmallScreen","toSignal","observe","Breakpoints","XSmall","Small","HandsetLandscape","TabletPortrait","pipe","map","res","matches","_scrollDistanceToLeft","_containerWidth","_listScrollWidth","_maxScrollDistance","computed","showNavigationArrows","_scrollable","initialScrollHappened","addMobileNavScrollClass","prevBtnHidden","nextBtnHidden","Math","abs","ceil","ngAfterContentInit","toObservable","_activeTab","injector","switchMap","activeTab","of","auditTime","takeUntilDestroyed","subscribe","_updateScrollDistanceBasedOnName","containerWidthSub","listenToResizeObserver","_tabHeaderItemsContainer","length","contentRect","width","listItemsWidthSub","_tabHeaderItemsList","onDestroy","unsubscribe","handleArrowClick","event","scrollAmount","_scrollDistance","_scrollTo","position","distance","max","min","_updateTabScrollPosition","tabs","_tabs","selectedTab","find","x","tabHeaderItem","_getTabElementByName","scrollDistance","_calculateScrollDistance","scrollTo","left","offsetRectLeft","getBoundingClientRect","containerOffsetRectLeft","targetScroll","scrollLeft","clientWidth","behavior","id","_id","querySelector","style","round","_DsTabsArrows","containerElement","right","offsetRectRight","containerOffsetRectRight","offsetLeft","offsetWidth","containerOffsetLeft","containerWidth","containerCenterPosition","targetCenterPosition","arrowSize","elements","destroyRef","get","Observable","observer","resizeObserver","ResizeObserver","el","disconnect","debounceTime","DEFAULT_TAB_OPTIONS","fullWidthTabs","defaultScrollDistance","defaultScrollSpeed","DS_TAB_OPTIONS","InjectionToken","$item","je","qe","$e","DsTabsGroup_For_6_Conditional_3_ng_container_0_Template","tab_r3","ɵɵpureFunction2","_c7","Ue","ɵɵtext","d","ɵɵtextInterpolate1","Ze","B","ɵɵlistener","$event","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","ɵɵresetView","selectTab","DsTabsGroup_For_6_Conditional_3_Template","DsTabsGroup_For_6_Conditional_4_Template","variant","F","Ke","DsTabsGroup_Conditional_8_Conditional_1_ng_container_0_Template","dsTabsLeftArrowTpl","Ye","Je","DsTabsGroup_Conditional_8_Conditional_4_ng_container_0_Template","dsTabsRightArrowTpl","_r5","DsTabsGroup_Conditional_8_Conditional_1_Template","DsTabsGroup_Conditional_8_Conditional_2_Template","DsTabsGroup_Conditional_8_Conditional_4_Template","DsTabsGroup_Conditional_8_Conditional_5_Template","inverse","uniqueTabId","getTabId","DsTabsGroup","tabOptions","_scrollSpeed","activeTabChanged","EventEmitter","tabChanged","size","indicator","ariaLabelNavigationArrowPrev","ariaLabelNavigationArrowNext","value","scrollSpeed","toString","scrollable","ngAfterViewInit","tabItems","forEach","option","index","monitor","focusOrigin","changes","_a","toArray","first","tab","emit","hostClass","sizeClass","indicatorClass","tabHeaderItemsClass","focusOption","tabOptionObj","focusVia","onKeydown","key","tabsList","currentIndex","findIndex","newIndex","nextFocusTabIndex","getNextFocusTabIndex","preventDefault","newTab","ue","__ngFactoryType__","T","Me","Fe","ɵɵclassMap","outputs","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ngContentSelectors","_c6","decls","vars","consts","template","i0","_r1","ɵɵrepeaterCreate","DsTabsGroup_For_6_Template","_forTrack0","DsTabsGroup_Conditional_8_Template","ɵɵrepeater","styles","_DsTabsGroup","DsTabsModule","ce","le","_DsTabsModule","SportsThemedTabsDirective","currentTheme","injectCurrentTheme","tabGroup","self","ngOnInit","_b","_c","_d","themedIndicator","themedVariant","themedSize","themedInverse","isInverse","inputs","_SportsThemedTabsDirective","DsPill","roundedPadding","setRoundedPadding","dsAtoms","includesNotificationBubble","some","item","t","DS_ATOMS","z","_c0","attrs","_c1","_c3","f","C","_DsPill","SportsThemedPillsDirective","pill","themedPillVariant","themedPillSize","c","_SportsThemedPillsDirective","item_r4","class","ke","parameters","tooltipClass","toolTip","ɵɵsanitizeHtml","MainItemsComponent_Conditional_0_For_4_Conditional_6_Conditional_0_Template","_r3","ctx_r1","itemClick","MainItemsComponent_Conditional_0_For_4_Conditional_2_Template","MainItemsComponent_Conditional_0_For_4_Conditional_6_Template","url","tracking","NavTop","themeInverseIndicator","isActive","ɵɵtextInterpolate","text","tooltip","onScrolled","MainItemsComponent_Conditional_0_For_4_Template","scrollSize","filteredItems","scrolled","isEpcotEnabled","item_r6","ɵɵpropertyInterpolate1","isSpecial","MenuDisplayMode","Icon","ɵɵpureFunction1","hasSeparator","MainItemsComponent_Conditional_1_For_2_Template","PopupType","MainItemsComponent","sportsPopupOpen","popupManager","isPopupOpen","Sports","layoutService","navigationRouter","scrollingConfig","eventBridgeService","menuActionService","elementRef","charsetService","navigationConfig","menuItemService","strategy","TrackNavArea","liveCount","inverseThemes","menuMargin","itemSeparator","itemIcon","itemMargin","itemCompact","ngZone","NgZone","isV2Navigation","topNavigationItems","topNavScrollSize","change","distinctUntilChanged","menuWidth","fit","ngOnChanges","popup","close","schedule","openSportsPopup","ProductMenu","invoke","MenuAction","TOGGLE_PRODUCT_MENU","open","scope","patchZone","take","navigationClick","ccbKey","sportsPopupMode","setNavigation","switchPopup","selection","itemName","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","CharsetSizeService","TopNavigationConfig","MenuItemsService","RxStrategyProvider","ɵɵNgOnChangesFeature","MainItemsComponent_Conditional_0_Template","MainItemsComponent_Conditional_1_Template","q","ae","Zt","Wt","pe","Rt","Qt","Gt","Kt","ne","_MainItemsComponent","NavigationItemsMapper","urlHelper","liveConfig","menuService","topNavItemsToHideInMobile","liveCounts","mapItems","sportsCountText","options","link","bottomNavigation","activeName","pageNameFromUrl","getLastSegment","pageName","trackingPagename","badgeTextlength","className","getClassName","topMenuItem","isPopup","getUrl","icon","trackEvent","getTrackingData","getTooltipParams","resources","isFixedItem","iconSrc","image","src","showBadge","setBadge","badgeText","showLiveBadgeCount","setBadgeBottom","buildSportMenuItem","sport","sportId","separator","isVirtual","getVirtualSportUrl","getSportUrl","eventName","trackingConstants","EVENT_NAVIGATION_MENUS","data","PAGE_NAVIGATION_MENUS","getTrackingValue","preFix","cssClass","setCounter","NavBottom","count","ɵɵinject","UrlHelperService","LiveSectionConfig","u","_NavigationItemsMapper","BaseNavigationItemsProvider","sportsCache","hasLiveItems$","getSportList","counts","live","startWith","SportsCacheService","_BaseNavigationItemsProvider","FixedNavigationItemsProvider","dslService","mapper","sitecore","evaluatedItems$","defer","fixedItems","afterSports","evaluateContent","navigationItems$","combineLatest","hasLive","getDefaultItems","globalMessages","Search","Favourites","getFavouriteUrl","MyBetsTitle","getMyBetsUrl","DslService","Sitecore","_FixedNavigationItemsProvider","LastSelectedSportProvider","sessionStore","sportService","lastSport","storeKey","lastSport$","lastSelectedSport","mapSport","selectedSport$","whenReady","sportItem","isItemType","ItemType","Sport","sportsConfig","selectedSport","useBeforeSeparator","currentSport","SessionStoreService","_LastSelectedSportProvider","SportNavigationItemsProvider","sportItems$","shareReplay","getSportsItems","maxSports","beforeSports","takeTop","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","distinctUntilLengthChanged","prev","sportsItems","useFallbackNavigation","buildNavigation","init","track","topDefaultItems","sportsDefaultItems","mainItems","allItems","sportsIndex","selectedSportIndex","recalculateIndexes","slice","addSelectedSport","allConfigItems","sportsIndexUpdated","selectedSportIndexUpdated","condition","i","TrackingService","_NavigationService","viewModel_r1","isDesktopNavCompact","NavigationComponent_div_0_nav_1_Conditional_1_Template","ct","showSeparator","tmp_6_0","ɵɵpipeBind1","navigation","NavigationComponent_div_0_nav_1_Template","viewModel$","NavigationComponent","layout","config","epcotConfig","sportsProductService","isDesktopNavigationCompact","isEnabled","showNavigation","isSportsProductActive$","requireSync","EpcotConfig","SportsProductService","NavigationComponent_div_0_Template","headerNavigation","headerTopNavigationHidden","_NavigationComponent","LinkDirective","renderer","Renderer2","element","isRobot","injectIsRobot","tagName","toLowerCase","Error","updateAnchorLink","onClick","stopPropagation","msLink","setAttribute","removeAttribute","_LinkDirective","SkeletonPage","SkeletonMarqueeComponent","SkeletonMarqueeComponent_div_1_Template","ɵɵpureFunction0","b","_SkeletonMarqueeComponent","Ri","Oi","SkeletonBetslipComponent_div_0_div_16_Template","SkeletonBetslipComponent","device","DeviceService","SkeletonBetslipComponent_div_0_Template","isTablet","_SkeletonBetslipComponent","Hi","ɵɵelementContainerStart","zi","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","SkeletonEventsComponent_div_4_Template","SkeletonEventsComponent_div_6_Template","J","K","_SkeletonEventsComponent","Ui","Zi","SkeletonMinigamesComponent","h","SkeletonMinigamesComponent_div_6_Template","_SkeletonMinigamesComponent","SkeletonTopsportsComponent","SkeletonTopsportsComponent_div_2_Template","_SkeletonTopsportsComponent","Ji","ɵɵ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","R","vi","ee","SkeletonMainDestopComponent_div_1_ms_skeleton_betslip_6_Template","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","SkeletonMainMobileComponent_div_7_div_5_div_1_Template","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","UpComing","_SkeletonMainMobileComponent","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","Qe","We","CommonModule","_SkeletonModule","BreadcrumbRouteVisibilityService","routerEvents","mediaService","breadcrumbSlot","_minimumItemsForRoute","largeScreen","_visibility$","screenWidthChanged","currentActivationEnd","e","filterSports","onRouteChanged","filterSportsEmitLast","onSlotChanged","visibility$","isVisible","breadcrumbs","ignoreBreadcrumb","minimumItems","Boolean","currentBreadcrumbSlot","required","singleItemPages","RouteTag","EventDetails","Live","snapshot","tag","RouterEventsService","_BreadcrumbRouteVisibilityService","BreadcrumbsService","breadcrumbVisibility","LEAGUE_TYPES","league","tournament","race","competition","types","AZ","REGION","SPORT","LEAGUE","TOPLEAGUE","FILTER","_breadcrumbs$","visible","onBreadcrumbVisibilityChange","setBreadcrumbs","breadcrumbs$","_BreadcrumbsService","crumb_r3","BreadcrumbsComponent_div_3_div_1_a_2_ng_container_1_Template","ɵɵsanitizeUrl","linkTemplate_r5","vo","fo","BreadcrumbsComponent_div_3_div_1_ng_template_3_ng_container_1_Template","uo","BreadcrumbsComponent_div_3_div_1_a_2_Template","BreadcrumbsComponent_div_3_div_1_ng_template_3_Template","classes","staticTemplate_r6","BreadcrumbsComponent_div_3_div_1_Template","ho","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","breadcrumbChanged","model","isEqual","crumb","mapCrumb","hideMidSectionBreadCrumbItems","initSlotComponent","slotRef","clear","component","createComponent","Object","keys","instance","detectChanges","isBreadcrumbNavHidden$","stateChange$","state","breadcrumbNavigation","isSportsActive$","isBreadcrumbNavHidden","isSportsActive","headerSubNavigation","columns","isDefined","currentTag","lastNonEdpUrl","serialize","createUrlTreeFromSnapshot","omit","queryParams","afterNextRender","setLiveCounts","goBack","NavBreadcrumb","active","ignoreBrowserHistory","goToPage","__spreadProps","__spreadValues","getAbsolute","refreshLiveCount","getElementsByClassName","Array","from","innerHTML","refreshLiveCountTimer","timeout","setInterval","clearTimeout","RedirectHelperService","ChangeDetectorRef","LayoutNavigationConfig","UrlSerializer","EpcotConfigService","viewQuery","ViewContainerRef","ot","st","fe","Z","BreadcrumbsComponent_div_3_Template","BreadcrumbsComponent_ng_template_6_Template","NavigationCoreModule","PlainLinkComponent","DirectivesModule","ScrollIosHackDirective","ScrollToDirective","CompetitionLogoComponent","NgIf","NgFor","NgClass","DsTouchClickDirective","_BreadcrumbsComponent","SubNavigationService","_tabs$","_fullWidth$","_tabSize$","tabs$","tabSize$","fullWidth$","setTabs","setTabSize","tabSize","setFullWith","fullWidth","_SubNavigationService","clickEvent","xo","ɵɵpropertyInterpolate","tab_r4","iconClass","isLargeTab","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","Mo","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Template","tabInverse","No","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","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Template","isLiveButtonEnabled","themedTabSize","isFullWidth","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","NavSub","MyBetsConfig","SubNavigationComponent_Conditional_0_Template","headerSubNavigationHidden","TabBarModule","MyBetsModule","DsNotificationBubble","DsButton","IconCustomComponent","SpeculativeLinkDirective","DsDivider","AsyncPipe","DsSegmentedControlModule","MyBetsSubNavigationComponent","_SubNavigationComponent","SitemapModuleLoaderService","moduleLoader","stylesLazyLoadingService","styleSheet","loadAndInitModule","loadModule","then","m","SitemapModule","stylesLoader","lazyLoad","forkJoin","ref","_","ModuleLoaderService","StylesLazyLoadingService","_SitemapModuleLoaderService","SlotLayoutRouteOverrideService","slotLayout","layoutNavConfig","sitemapModuleLoaderService","navService","onAppInit","setup","register","order","topNavigationVersion","V2","fixed","routeChanged","V3","module","initService","sitemapBootstrapService","resolversMap","sitemapResolversMap","sitemapComponent","HorseRaceDetails","override","destroy","initialSettings","getConfig","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","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","shallowEqual","a","k1","getDataKeys","k2","equalArraysOrString","obj","aSorted","bSorted","val","equalPath","as","bs","getClosestRouteInjector","route","getTokenOrFunctionIdentity","tokenOrFunction","NOT_FOUND","result","isInjectable","getToken","token","moduleInjector","getTokenWithInjector","paramsOrQueryParamsChange","to","queryParamMap","has","shouldSkipGuardsAndResolvers","equalParamsAndUrlSegments","equalUrlParams","params","equalSegments","parentsMismatch","parent","aSegments","bSegments","every","info","getCurrentNavigation","extras","hasSkipInfo","skipPrimaryOutletGuardsAndResolvers","outlet","PRIMARY_OUTLET","PrintModule","RouterModule","LoadingIndicatorModule","_PrintModule","hasUiState","uiState","containsUiState","states","UiManagerService","handlers","registerUiHandler","handler","updateUi","__async","_UiManagerService","ComponentLoaderComponent","_ComponentLoaderComponent","ComponentProxyDirective","msComponentProxyData","componentProxy","update","msComponentProxy","viewRef","create","componentLoaded","n","_ComponentProxyDirective","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","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","SmoothScrollManager","_SmoothScrollManager","_document","_platform","customDefaultOptions","y","coerceElement","destroyed","resolve","merge","fromEvent","subscriber","elapsed","animationFrameScheduler","expand","takeWhile","currContext","takeUntil","finalize","customOptions","isPlatformBrowser","isRtl","rtlScrollAxisType","getRtlScrollAxisType","target","scrollableEl","targetEl","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","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","box","Platform","HideNativeScrollbar","_HideNativeScrollbar","hideNativeScrollbar","Subscription","RendererStyleFlags2","NgAttr","_NgAttr","ResizeSensor","_ResizeSensor","coerceNumberProperty","coerceBooleanProperty","zone","scrollbar","stream","TrackAdapter","_TrackAdapter","mouseup","cmp","trackElement","thumbSize","pluck","pageOffset","TrackXDirective","_TrackXDirective","TrackYDirective","_TrackYDirective","ThumbAdapter","_ThumbAdapter","thumbElement","calculateThumbSize","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","changeDetectorRef","smoothScroll","verticalUsed","horizontalUsed","isVerticallyScrollable","isHorizontallyScrollable","property","pairwise","curr","scrollbarClicked","scrollStream","ɵɵcontentQuery","ɵɵProvidersFeature","ɵɵprojectionDef","NgScrollbarModule","_NgScrollbarModule","BidiModule","PortalModule","PlatformModule","TooltipService","visibility","_tooltipRequested","show","isTouch","showOnLoad","hide","_TooltipService","GeneralTooltipComponent","_window","WINDOW","NgxPopperjsTriggers","distinctUntilKeyChanged","request","tooltipController","content","reference","targetElement","applyClass","setContent","tooltipPlacement","hideOnScroll","setTimeout","appendContent","tooltipMessage","appendChild","join","NgxPopperjsDirective","popper1Content_r1","U","_GeneralTooltipComponent","Y","InlineTooltipComponent","showOnlyIfOverflowed","onHover","showTooltip","isTooltipVisible","nohover","tooltipContent","isOverflowed","scrollWidth","offsetHeight","scrollHeight","k","_InlineTooltipComponent","OnboardingTooltipComponent","showHelp","closeClicked","closeHelp","message","_OnboardingTooltipComponent","TooltipModule","j","H","NgxPopperjsModule","_TooltipModule","ColumnComponent","layoutManager","scrollContainer","requestedComponents","componentInstances","Map","initializeComponent","containerRef","initOrUpdateComponent","containerContents","componentRef","createCustomInjector","indicatorRef","createIndicator","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","unregisterComponentInstances","ColumnLayoutService","ScrollContainerService","_ColumnComponent","UiManagerComponent","uiManagerService","adaptiveLayoutService","store","uiState$","select","currentState","updateUiStateFromAdaptiveLayout","hasRightColumn","RightColumnVisible","dispatch","UiManagerActions","addState","removeState","Store","_UiManagerComponent","UpdateMobileNumber","FormatPhoneNumberPipe","MOBILE_NUMBER_MATCHER","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","_UpdateMobileNumberTrackingService","oe","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","_UpdateMobileNumberComponent","UpdateMobileNumberService","modalDialogService","mobileConfirmationNotificationsConfig","uiStates","confirmationInterval","confirmationIntervalMilliseconds","launchMobileNumberConfirmationPopup","openDialog","settings","PopupIdentifier","showDialogHeader","hideCloseButton","isModalDialog","showCloseBtnText","showMobileNumberConfirmation","QuickBet","mobileNumberAcknowledgement","savedTime","isDifferenceExceedingTimespan","date","calculateTimeDifference","ModalDialogService","MobileConfirmationNotificationClientConfig","_UpdateMobileNumberService","header","wi","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","queries","breakpoints","isPartialCollapsibleContentEnabled","ActivationStart","addTag","loadSeoTagWhenRouteActivated","getSeoContent","seoContent","bypassSecurityTrustHtml","h1Included","setTitle","metaTitle","updateTag","metaDescription","markForCheck","routeSnapshot","cleanContent","getForEventDetails","lobby","highlights","allSports","region","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","ie","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","columnLayout","isLeftVisible","disableScroll","scrollable_r2","isRightVisible","MainComponent_ng_container_7_ng_container_1_Template","editBetAddPicksContainerMobileComponent","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","paddingBottom","onUserLogInWithSettings$","checkStakeLimit","scheduleCD","getQuickBetComponent","showQuickBet$","shouldShowQuickBet$","showQuickBetBuilder$","shouldShowQuickBetBuilder$","betslipReturnsMessageComponent","getBetslipReturnsMessageComponent","getEditBetAddPicksContainerMobileComponent","subscribeToOutputs","picksContainerBottomOffset","viewTransitionsEnabled","cardContent","useCustomLayout","setScrollEventTarget","setCssClasses","currentActivationStart","dismiss","previousActivationEnd","isPopupNavigation","requestAnimationFrame","EpcotModule","Betslip","isScrollFrozen","swapComponents","restore","resetMeasurement","columnRef","hasPopup","previousActivation","currentActivation","Element","messagesVisible","scrollTop","hasCssClass","scrollingElement","cssClasses","difference","htmlClass","isAuthenticated","checkUserStakeLimit","getIsStakeLimitSet","StakeLimitUrl","BetslipConfig","ScrollFreezeService","BetslipDigitalComponentLoaderService","ToasterService","StakeConfig","BetslipIntegrationService","AppConfig","G","W","MainComponent_ng_container_2_Template","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","WidgetCoreModule","WidgetColumnComponent","NgComponentOutlet","_MainComponent","NO_MATCH","nameIdentifierMatcher","segments","segmentGroup","matcherParam","segmentsToParse","posParams","parsePosParams","isEmpty","consumed","multiNameIdentifierExactMatcher","matcherParams","multiNameIdentifierMatcher","multiNameIdentifierMatcher_WithRegexMatcher","matcherPattern","regexResult","regexMatcher","multiNameIdentifierMatcher_WithChildren","parentSegments","nameIdentifierPair","parseSegment","paramName","UrlSegment","valuesMatch","exec","PrettyUrlLanguageSwitcherProvider","api","getUrls","languages","sourceLanguage","culture","targetLanguages","toPairs","ApiService","_PrettyUrlLanguageSwitcherProvider","StandingsService","statisticsConfig","getStandingsGroups","selectedVirtualGroupId","expandedGroups","expandedLeagueTablesCount","SportConstant","Soccer","leagueGroups","getStandingsForVirtualGroups","getStandingsForCompetitions","leagueGroup","flatten","children","leagueItem","mapVirtualGroups","mapCompetition","standings","toLeagueGroup","canBeFavourited","selectedVirtualGroup","isVirtualCompetitionGroupItem","virtualGroup","siblings","groupIds","stageIds","virtualCompetitionId","parentId","virtualCompetitionGroupId","preMatch","collapsible","deferred","StatisticsConfig","_StandingsService","Lazy","creator","cached","BaseTreeItem","_href","immerable","LazyTreeItem","group","expanded","seoOptimize","attribute","type","lazyHref","urlMapper","countMapper","priceBoostCount","priceBoostCountMapper","console","error","SportTreeItem","childrenType","getItemTypeForSport","sportTitleAndIcon","eSportsLobby","subTitle","moreTitle","RegionTreeItem","allOptions","Region","LeagueTreeItem","all","allTitle","unshift","leagueOptions","realCompetitionId","compoundId","VirtualGroupTreeItem","groupOptions","favouriteId","TournamentTreeItem","CalendarTreeItem","interval","Tennis","Tournament","PruneHelperService","prune","filters","isArray","virtualCompetitionGroup","VirtualCompetitionGroup","conference","Conference","clonedSport","pruneRecursively","typeFilters","currentItem","isVirtualCompetition","child","countItem","_PruneHelperService","getByThemeOrDefault","default","SportsThemedNotificationDirective","isSelected","notification","themeInverse","themeVariant","selectedVariant","_SportsThemedNotificationDirective","itemId","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_0_Conditional_0_Template","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_0_Conditional_1_Template","display","Logo","selected_r4","selectedTabBubbleVariant","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_2_Conditional_0_Template","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_2_Conditional_1_Template","showSignPost","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_0_Template","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Conditional_2_Template","WidgetTabBarComponent_Conditional_0_For_3_ng_template_1_Template","tmp_11_0","WidgetTabBarComponent_Conditional_0_For_3_Template","WidgetTabBarDisplay","WidgetTabBarComponent","stretch","updateTabTrackingIds","activetab","WidgetTabBarComponent_Conditional_0_Template","PriceboostCountSignpostComponent","_WidgetTabBarComponent","WidgetHeaderComponent_Conditional_0_Conditional_1_Template","WidgetHeaderComponent_Conditional_0_Conditional_2_Template","titleLogo","l","ɵɵpipeBind2","linkConfig","linkText","disableLinkTextAndClick","linkClicked","WidgetHeaderComponent_Conditional_2_Conditional_2_Template","WidgetHeaderComponent","linkClick","isClickableHeader","titleIcon","WidgetHeaderComponent_Conditional_0_Template","WidgetHeaderComponent_Conditional_1_Template","WidgetHeaderComponent_Conditional_2_Template","S","_WidgetHeaderComponent","WidgetCommonModule","ItemComponent","_WidgetCommonModule","TeamPagesComponentLoaderService","ComponentLoaderService","loggerFactory","moduleName","getTeamPagesComponent","getComponentProxy","competitionTeamPagesComponent","getModule","TeamPagesModule","LoggerFactory","_TeamPagesComponentLoaderService","TabGroupWithCounterComponent_For_2_ng_container_1_Conditional_1_ng_container_1_Template","tabGroup_r4","selected_r2","X","TabGroupWithCounterComponent_For_2_ng_container_1_Conditional_2_ng_container_0_Template","TabGroupWithCounterComponent_For_2_ng_container_1_Conditional_1_Template","TabGroupWithCounterComponent_For_2_ng_container_1_Conditional_2_Template","tt","TabGroupWithCounterComponent_For_2_ng_container_1_Template","et","selected_r7","ctx_r7","counterVariant","activeCounterVariant","tab_r6","counter","TabGroupWithCounterComponent_ng_template_4_Conditional_2_Template","TabGroupWithCounterComponent","tabSelected","showBorder","TabGroupWithCounterComponent_For_2_Template","TabGroupWithCounterComponent_Conditional_3_Template","TabGroupWithCounterComponent_ng_template_4_Template","_TabGroupWithCounterComponent","item_r2","eventSelected","WidgetPillComponent_For_3_ng_container_2_Template","iconTemplate_r4","pill_r5","WidgetPillComponent_ng_template_4_Conditional_0_Template","WidgetPillComponent_ng_template_4_Conditional_1_Template","WidgetPillComponent","cdr","widgetTabBarItem","pills","tabItem","WidgetPillComponent_For_3_Template","WidgetPillComponent_ng_template_4_Template","ScrollAdapterComponent","_WidgetPillComponent","FixtureTab","ReverseFixtureTab","FavouriteToggleTrackingService","favouriteTypeMap","FavouriteType","League","Fixture","FixtureV2","Participant","ParticipantV2","trackToggle","isToggled","favouriteType","baseTracking","source","NOT_APPLICABLE","COMPONENT_CONTENT_POSITION","commonTracking","EVENT_FAVOURITES","additional","_FavouriteToggleTrackingService","FavouriteToggleComponent","favouritesService","flag","handleError","catchError","toggleClass","toggled","Favorites","setToggle","add","goToLogin","static","setState","subscription","favouritesMessages","RemoveSuccess","participantImage","AddSuccess","toggleError","notify","FavouritesService","_FavouriteToggleComponent","FavouriteLeagueToggleComponent","favouriteTracking","SPORT_ID","SPORT_LEAGUE_ID","_FavouriteLeagueToggleComponent","FavouriteEventToggleComponent","previous","previousValue","currentValue","getType","SPORT_EVENT_ID","offerSource","_FavouriteEventToggleComponent","FavouriteParticipantToggleComponent","getName","participant","country","_FavouriteParticipantToggleComponent","FavouritesModule","_FavouritesModule","fallbackUrl","participantImageLoad","participantUrl","showParticipant","TournamentGroupsParticipantsComponent","imagesConfig","utilsService","participantTemplateUrl","participantImageUrl","fallbackImage","FALLBACK_IMAGE_EPCOT","FALLBACK_IMAGE","participantId","imageType","VirtualCompetitionImageType","Flags","FALLBACK_FLAGS_IMAGE","format","ImageRootPath","_TournamentGroupsParticipantsComponent","ImagesConfig","UtilsService","TournamentGroupsParticipantsComponent_Conditional_0_Template","TournamentGroupsParticipantsComponent_Conditional_1_Template","Xe","TournamentGroupsComponent_li_2_a_1_1_ng_template_0_Template","group_r2","isFavourite","favouriteName","index_r5","TournamentGroupsComponent_li_2_a_1_1_Template","TournamentGroupsComponent_li_2_a_1_ms_favourite_league_toggle_2_Template","displayMode","VirtualCompetitionDisplayMode","Pills","pillTemplate_r6","cardTemplate_r7","it","TournamentGroupsComponent_li_2_a_1_Template","Cards","participants","nt","group_r8","participant_r9","code","TournamentGroupsComponent_ng_template_5_div_4_div_1_Template","group_r10","at","TournamentGroupsComponent_ng_template_5_div_4_Template","TournamentGroupsComponent","timer","groups","scrollAdapter","setArrows","trackTabsBy","getGroupMenuItemId","itemIndex","TimerService","M","TournamentGroupsComponent_li_2_Template","TournamentGroupsComponent_ng_template_3_Template","TournamentGroupsComponent_ng_template_5_Template","NgForOf","ScrollSelectedInViewDirective","_TournamentGroupsComponent","tokenModel_r1","RewardTokenEligibleTagComponent","leagues","leagues$","sport$","isEligible","leagueIds","isAccaBoostToken","sportsConfigs","badgeModels","RewardTokenType","OddsBoost","crmTokens","messages","RiskFreeBet","RiskFree","FreeBet","Freebet","AccaBoost","accaBoost","betslipInitialized$","tokens$","selectRewardTokens","allTokens","values","nonAccaBoostTokens","getNonAccaTokens","tokenModel$","concatMap","tokens","eligibleTokens","rewardTokenType","tokenTypes","uniq","Rewards","RewardTokenEligibleTagComponent_div_0_Template","me","_RewardTokenEligibleTagComponent","lt","pt","FixtureListHeaderComponent_Conditional_0_Conditional_1_Template","FixtureListHeaderComponent_Conditional_0_Conditional_5_Template","N","showFavoriteToggle","isTournament","offerBadgeTemplate","defaultOfferBadgeTemplate_r2","changed","_r4","changedPill","ft","ht","FixtureListHeaderComponent_ng_template_4_Conditional_0_Template","FixtureListHeaderComponent","gridConfig","headerTitle","isCalendarPage","showPrimaryNavAsPill","primaryNavigationType","getInterval","isInvalidContext","regionType","handleLeagueRoute","handleNoLeagueRoute","updateNavigationTabs","routeTab","navigate","replaceUrl","lowerCase","marketOffer","bets","conferences","All","parentLeagueId","competitionTitle","interpolateDoubleBracesString","ConferenceHeadingTitle","LeagueHeadingTitle","Default","widgetId","GridConfig","CompetitionRouteService","CalendarService","re","FixtureListHeaderComponent_Conditional_0_Template","FixtureListHeaderComponent_Conditional_2_Template","FixtureListHeaderComponent_Conditional_3_Template","FixtureListHeaderComponent_ng_template_4_Template","_FixtureListHeaderComponent","VirtualCompetitionService","sitecoreEventDetails","routeService","subscribe$","virtualCompetition","urlFactory","changeType","FavouriteChangeType","Add","Remove","buildVirtualCompetition","getCompetition","findVirtual","virtualCompetitionGroups","buildTournamentGroups","allGroups","eventDetails","AllMarketsTemplate","SportUrlParam","Betting","tournamentGroups","favouritesList","concat","SitecoreEventDetailsConfig","_VirtualCompetitionService","CompetitionListService","bettingContent","bettingCache","tournamentsData","getSportTree","start","end","withTournaments","competitionId","conferenceId","getSport","getConference","sportModelMethods","fromTag","tournaments","getValidTournaments","top","reorderings","getReorderedSportList","locationShiftUp","existing","existingLocation","filterTournament","leaguesSection","BettingOfferApi","TournamentsDataConfig","_CompetitionListService","MarqueeApi","cdsApiServiceFactory","cdsApi","endpoint","getMarquees","post","CDS_API_FACTORY","_MarqueeApi","MarqueeRequestBuilderService","marqueeConfig","marqueeTileService","buildForFixture","fixtureId","getForFixture","sitecoreTiles","buildMarqueeRequest","buildForTeamPagesFixture","fixtureIds","getForTeamPagesFixture","buildForCompetition","getForCompetition","tiles","marqueeData","tile","_e","minimumOdds","previousOdds","requestIndex","gameTemplateIds","gridGroupId","gridGroupIds","gameId","resultId","optionMarketId","optionId","happenings","optionMarketParameters","happening","marketTypes","periods","period","positions","optionGroupId","md","maxTiles","MarqueeConfig","MarqueeTileService","_MarqueeRequestBuilderService","MarqueeService","marqueeRequestBuilderService","marqueeResponseMapperService","marqueeApi","marqueeTilesConfig","configReady","loadMarquees","marqueeRequest","callApi","loadMarqueesFor","competitonTileRequestModel","marqueeRequest$","competitionIds","dateInterval","loadTeamPagesMarquees","responseMarquee","mapFixtures","MarqueeResponseMapperService","MarqueeTilesConfig","_MarqueeService","StatisticsApi","getCompetitionStatistics","stageId","groupId","getCompetitionStatisticsBatch","getCompetitionStatisticsBatchV2","competitionBatchRequest","getFixtureStatistics","firstValueFrom","_StatisticsApi","StatisticsApiService","cdsStatsService","logger","getLogger","getStats","eventId","leagueStatistics$","eventStatistics$","leagueStatistics","eventStatistics","eventStats","leagueStats","rows","logError","getCompetitionsStatistics","getCompetitionsBatchStatistics","methodName","_StatisticsApiService","AnimationProviderService","animationConfig","betradarVisualizationConfig","ms2Animations","isTennisAnimationEnabled","Basketball","isBasketballAnimationEnabled","Icehockey","isIceHockeyAnimationEnabled","betRadarSupportedSports","keyBy","supportedSports","betRadarStickySupportedSports","stickyAddonSupportedSports","pitchLogoSupportedSports","pitchLogoEnabled","sideLineLogoSupportedSports","sideLineLogoEnabled","sportAnimations","betRadarStickySupportedAnimations","betRadarSupportedAnimations","pitchLogoEnabledSports","sideLineLogoEnabledSports","betRadarSupportedCoverageLevel","supportedCoverageLevel","teamInvertEnabledCompetitions","teamInvertCompetitions","AnimationConfig","BetradarVisualizationConfig","_AnimationProviderService","EventDetailsColumnType","MediaEventSource","MediaModuleContextPage","EventDetailsHelperService","mediaConfig","animationProvider","imgConfig","nativeApp","sportTypes","hasStats","isLiveStatsAvailable","scoreboard","started","statistics","isPreMatchStatsAvailable","hasFixtureStats","hasLeagueStats","areParticipantsAvailable","isLeagueTableOnlyAvailable","isGenericBetRadarIdAvailable","statsId","showStatsCenterButton","isTerminal","hasAnimation","hasBetRadarMappingID","hasBetRadarVisualization","betRadarVisualizationId","betRadarCoverageLevel","hasImgAnimationVisualization","DateProviderService","addHours","getNow","hoursToShowImgAnimation","startDate","imgEventId","hasBetRadarStickyAddonVisualization","getBackgroundColor","useSolid","MediaConfig","ImgConfigurationData","NativeAppService","_EventDetailsHelperService","EventMediaHelperService","hasVideo","hasLiveVideo","hasAnimationOrSimulation","isRunningBallSupported","isAnimationSupported","hasBetradarAnimation","hasBetradarAnimationSupported","currentEventStats","SPORTS_WITH_MAPPED_STATS","hasAnimationSupported","hasImgAnimationSupported","runningBallDataId","_EventMediaHelperService","TrackingVideoSource","MediaApiActions","_MediaApiActions","SET_EVENT","SET_EVENT_ID","TOGGLE_PLAYING","SET_MEDIA_WIDGET_CONTEXT","togglePlaying","createAction","props","setMediaWidgetContext","pprops","setEvent","setEventId","mediaInitialState","video","pinned","autoplay","playing","dropdownEvents","unpinInfoVisible","pinEnabled","trackingSource","Video","animation","eventInfos","isCollapsed","mediaExpandState","isLocationAllowsExpand","isExpanded","restoreExpandState","isDefaultExpanded","mediaFeatureKey","mediaStateSelector","mediaEventInfoSelector","mediaActiveSelector","mediaExpandedStateSelector","producer","action","gridUpdate","currentGrid","payload","gridReducer","createReducer","gridInitialState","on","GridActions","addEvents","grid","grouping","setEvents","topic","updateEvents","updateEvent","replaceEvents","removeEvents","eventIds","collapseEvents","collapseEvent","setActiveGroup","columnId","setGroupCollapse","addGroups","updateGroupsBadges","badges","changeSorting","sorting","replaceEvent","targetFixtureId","newFixture","copy","gridId","mapLeague","_sport","getLeague","draft","mapForm","winCount","mapDate","toDateString","getDate","day","base","setHours","setMinutes","setSeconds","setMilliseconds","getForm","_f","_g","_h","GridGrouping","AwayForm","fixtureForm","awayTeamAwayForm","OverallForm","homeWins","overallHomeTeamForm","awayWins","overallAwayTeamForm","homeTeamHomeForm","getGroup","entity","None","isNumber","HomeForm","currentColumn","currentGroup","extended","enabled","setActiveGroupState","ordered","sortBy","setStateCollapse","collapsedGroups","collapsedEvents","setGroupCollapseThreshold","threshold","badge","currentEvent","newGrid","collapsedChildren","eventState","clone","newEvent","getEvents","collection","gridEvent","disableGroupSorting","groupingThreshold","initial","differenceBy","optionalParams","GridStoreService","actualState","getEventsState","getColumnState","groupIndex","expiry","now","eventKey","until","activeIndex","flatMap","eventsMap","cutOffDate","_GridStoreService","ObservableGrid","initialized","subject","getModel","gridState","mediaState","mediaTab","media","videoEvent","animationEvent","Animation","statsEvent","Stats","compareModel","currentKeys","previousKeys","gridStateSelector","getState","complete","eventsList","eventsMapped","ObservableGridProvider","getColumns","sixPackGroups","GridLayout","SixPack","applyGroupOrder","maxColumns","is2way3wayEnabled","excludeDefaultMainMarket","getBaseColumn","times","getColumn","mapped","getBaseGroup","isFallbackGroup","more","moreGrouping","optionNames","balancedMarket","balancedMarketsEnabled","marketAttribute","showAttribute","childGroups","marketGroupIds","optionsToShow","fallbackGridGroupIds","eventGrid","MarketSwitcher_MainMarket","groupOrder","reverse","_ObservableGridProvider","ObservableGridFactory","grids","eventFactory","EventFactory","gridStore","observableGridProvider","OfferGroupingService","getBase","getGrid","fromResponse","fixtures","isPriceBoosted","excludePriceboostedMarketGrouping","marketGrouping","isEsport","setConfig","getSource","getGridGrouping","getLayout","stripEventData","setPlaceHolder","updateGridState","getActiveColumns","fixtureScoreboard","splitFixtureIds","activeGrouping","placeholder","getPlaceholderGroup","mapValues","collapsedThreshold","isCustomGrid","subscriptionTopic","SubscriptionTopic","Grid","NonGridable","isSixPackLayoutEnabled","columnState","MarketSwitcher_More","_ObservableGridFactory","PerformanceProfilingService","performanceConfig","markNameTTI","lastTrackedUrl","navigationStartCallback","markStart","runOutsideAngular","profilingEnabled","isPerformanceProfilingEnabled","browserSupport","performance","measure","markTTI","markEnd","markName","mark","getEntriesByName","clearMarks","clearMeasures","PerformanceProfilingConfig","_PerformanceProfilingService","updateBetbuilderPrecreatedGroup","sgpId","odds","suspensionState","legs","precreatedOptionGroups","builderOptionPricing","updatedGroup","updatedPricing","legInformation","updatedArray","EventSubscriptionService","BaseSubscriptionService","fixtureFactory","connection","isNormalEvent","warn","getContextSubscriptions","callback","subscriptions","FixtureSlimSubscription","offerContext","ScoreboardSlimSubscription","optionGroups","optionGroup","hybridFixtureData","OptionMarketSubscription","GameSubscription","betBuilderSubscriptions","BetBuilderSubscription","getHandlers","evt","cmd","deleteOptionGroup","updateOptionGroup","updateScoreboard","updateFixture","updateBetbuilderPrecreatedOffer","optionSets","command","marketId","game","optionMarket","isOpenForBetting","stage","FixtureFactory","CdsPushService","ConnectionConfig","_EventSubscriptionService","getLeagueId","HeaderContentDensity","TreeItemType","LeftNavType","SelectionInfo","FeatureTab","MediaTab","FeatureUrl","DispatcherEvent","Expanded","SetTab","LiveEventsSubscriptionService","freshdataService","eventSubscriptionService","eventsStream$","updateQueueInMilliseconds","maxUpdateQueueCount","flush$","noop","throttleTime","asyncScheduler","debounceTimer","updatedEvents$","distinct","bufferWithSize","reloadNeeded","unsubscribeAll","isSubscribed","subscribeEvent","unsubscribeEvent","FreshDataService","_LiveEventsSubscriptionService","LiveFavouriteFixturesService","fixtures$","liveFixtures","fixture","favouritesConfig","bettingOfferApi","favouriteService","subscriptionsService","statisticsConfigService","refresh","onUserLogin$","updatedEvents","finishedFavourites","isFinished","favourite","isFixtureFavourite","isFavourited","isSwipeFavouriteEnabled","isFavouriteSwipeEnabled","isLiveFavouriteEnabled","isLiveFavouritesEnabled","offerMapping","offerCategories","fixtureFavsIds","favouritedListToRefresh","getFixturesById","batchFixtures","expiredFixtureIds","getExpiredFixtures","fixtureList","getFixtures","removeExpired","subscribeToPush","getFixtureList","groupByCompetition","groupedFixtures","groupBy","entries","sort","totalCount","updateFixtureList","favouritedList","filtered","list","expiredFixtures","expiredFavourites","exId","periodId","batchId","fixtureTypes","scoreboardMode","excludeLocationFilter","statisticsModes","getStatisticsModesBySportId","getBatchFixtureList","FavouritesConfig","StatisticsConfigService","_LiveFavouriteFixturesService","FixtureView","TeamMenuItem","TeamPagesApiService","teamPagesConfig","m2LocalStore","cdsMasterApi","teamsByComepetitionCache","ExpiringCache","teamsCountByCompetitionsCache","seeMoreStorageKey","getTeamsByCompetitionId","response","teamType","getFavouriteType","getOrCreate","mapTeam","getTeamsByQueryText","query","getCompetitionsAndTeamsCount","seeMoreComp","seeMoreCompetition","competitionData","compIds","comp","competitionName","GetCompetitionsWithSeeMore","getCompetitionName","getCompetitionTabs","getCompetitionCount","competitionwithteam","maxCompetitions","seemorecompetition","CompetitionId","TeamPagesConfig","LocalStoreService","MasterdataApiService","_TeamPagesApiService","TeamPagesCoreMarqueeService","bettingOffer","marqueeService","getFixturesMarquees","selectedTeam","marqueeFixtures","loadFixtureMarquees","tabId","buildCountsFixtureRequest","fixtureRequest","getFixtureCounts","getCountsFixtures","skip","fixtureCountsRequest","tagTypes","extendedTags","sportIds","fixtureCategories","getFixtureCategories","getOfferCategories","getSorting","toInteger","fixtureParticipantIds","Outrights","Specials","_TeamPagesCoreMarqueeService","TeamPagesStandingService","mapVirtualCompetition","_TeamPagesStandingService","TeamPagesCoreGridService","teamPagesCoreMarqueeService","gridFactory","teamPagesStandingService","getGridModel","fixtureCounts","setGridModel","getFixturesForTab","teamPagesGridTabsModel","team","view","getView","Standings","getStandingsForTeam","getResult","fixturedata","noMarketsForTeam","buildGridModel","nonMatchesTab","competitionsOrder","getCompetitionItems","gridOptions","GridList","getCollapseSize","getTopic","sortedFixtures","Matches","orderBy","getCompetitionOrder","currentStandingsGroups","gridModel","co","teamId","currentStandings","currentStandingsSport","standingGroup","countItems","isCompetitionItem","collapseSize","countsFixturesResponse","gridTabCountsItem","getNavigation","tabCounts","competitionStandings","hasLeagueStatistics","matchesCount","gridable","nonGridable","other","shouldShowStandings","tabToSelect","getTabToSelect","append","outrights","specials","_TeamPagesCoreGridService","TeamPagesCoreService","teamPagesData","liveFavouritesService","teamPagesCoreGridService","competitionListService","v2Prefix","v1Prefix","homeTeamSuffix","logoSuffix","selectedTeaminfo","blackListCompetitions","getBlackListCompetitions","blackListCompetitionsIds","isTeamPagesEnabledForSport","whitelistedSports","selectedTeamChanged","getModelByCompetition","isNavigationViewModel","getAllParams","getFavouriteTeams","Number","favouriteTeams","mapToTeamsFromFavouritesResponse","getTeamPageViewModel","getTeamNavigationViewModel","teamPagesNavigationViewModel","getParticipantImageInfo","getImagesInfo","competitionsForSport","teamPageItems","sportDetails","competitionDetails","isFavouriteTeam","fav","getImageType","paarticipantId","offersource","imageProfileEnabledSportIds","jersey","logo","isParticipantProfile","sportsToDisplayLogos","getImage","prefix","sugffix","backgroundColor","backgroundImages","backgrounds","img","innerColor","getBackgroundImageUrl","backgroundImage","getPopularTeams","popularTeamsDetails","mapTeamData","sportIcon","favouriteParticipant","favType","getParticipantImage","getAllCompetitions","siteCoreSportDetails","toDictionary","blacklistedCompetitions","split","favTeam","getAllChildParams","childRoute","teamPagesViewModel","sportName","teamName","routeParams","teamdata","favTeamIds","favTeamOrder","getAllTeams","fixturemarquees","isOnlyNavigationViewModel","teampagesGridModel","fixtureMarquees","favouritesEnabled","hasFavouritedTeams","mapToCompetitionTabs","competitionTabs","popularTeams","teamPagesDetailsModel","teampagesGridViewModel","teamPagesGridModel","bannerViewModel","marqueeTiles","sportCounts","getSportsCounts","sportsCounts","selectedCompetitionId","MyTeams","anyActiveTab","SeeMore","Showmore","TeamPagesModuleConfig","_TeamPagesCoreService","vm_r1","CompetitionHeaderWidgetComponent_ng_container_0_ms_tournament_groups_2_Template","$","isFavouritesEnabled","CompetitionHeaderWidgetComponent","WidgetComponent","competitionRouteService","virtualCompetitionService","pruneService","payload$","vm$","getModel$","prunnedSportItem","virtualCompetitionItem","virtualCompetitionModel","setWidgetLoaded","onData","CompetitionHeaderWidgetComponent_ng_container_0_Template","Q","_CompetitionHeaderWidgetComponent","he","CompetitionTeamsWidgetComponent_ng_container_0_ms_widget_header_1_Template","CompetitionTeamsWidgetComponent_ng_container_0_ng_container_2_Template","teamPagesCompetitionComponent","CompetitionTeamsWidgetComponent","loader","teamPagesApi","teamPagesCore","routeEvents","competitionRoute","leagueRoute","prunedSport","interpolateTitle","teampagesViewModel","CompetitionTeamsWidgetComponent_ng_container_0_Template","_CompetitionTeamsWidgetComponent","EventListService","calendarService","initialSize","createFixtureRequest","getTimeInterval","dynamicOfferCategories","MarketOfferUrlParam","GridSorting","Time","offerTemplates","isPriceBoost","hasSubcategories","outrightCategory","specialCategory","marketTemplate","PriceBoost","dynamicOfferCategory","outrightGroups","specialGroups","regionIds","tournamentIds","conferenceIds","virtualCompetitionIds","virtualCompetitionGroupIds","_EventListService","SitemapSaveStateService","sessionKey","sitemap","_SitemapSaveStateService","SitemapStateService","saveStateService","navigationPath","toggleSitemapItem","actionWithSaveState","activateSitemapItem","deactivateSitemapItem","setPath","newPath","setSiblings","getItem","level","itm","drawerItem","isInDrawer","activeDrawerItem","newActiveItem","_SitemapStateService","SitemapItemType","SitemapDrawerType","AllowedMarketGroupSitemapItems","SitemapStateMapper","stateService","syncState","activeFromState","activeFromItems","last","newNavPath","getNavigationPath","saveSiblingsInState","lastLevelItem","getSiblingsFromState","activeEl","specificTypes","Coupons","activeItemIndex","ind","defaultActive","tryPushDrawerItem","lastIndx","indx","_SitemapStateMapper","SitemapService","_sitemapSubject$","_sitemap$","sitemap$","getSiteMapConfiguration","competitionFallback","getDefaultConfiguration","setSitemap","showIcon","_SitemapService","__decorate","usePreloaderData","preloader","MS2JS","SiteMapLoader","__metadata","SitemapBootstrapService","sitemapService","stateMapper","validSubscription$","sitemapConfiguration","emptySitemap","isV3Navigation","service","configIsLoaded","lastActivationEnd","activationEnded","resolverType","findFirstSitemapResolver","renewSubscription","lastResolverType","resolver","lastActivatedRouteSnapshot","resolveModel","crtSnapshot","resolverTypeName","SitemapSitecore","_SitemapBootstrapService","loadLiveNowItemComponent","LiveNowItemComponent","LiveNowLinkRegisterService","data$","layoutState$","NEVER","liveUrl","setLiveButton","addLiveButtonWithMultipleSports","addLiveButton","removeLiveButton","_LiveNowLinkRegisterService","BetslipTypesActions","_BetslipTypesActions","ACTION_SCHEMA","BetslipActions","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","DigitalSettingsActions","_DigitalSettingsActions","OPEN_SETTINGS","CLOSE_SETTINGS","openSettings","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","keepPlacedBetsInLinearSingle","keepPlacedBetsInLinearCombo","keepPlacedBetsInLinearSystem","keepPlacedBetsInLinearBetBuilder","keepPlacedBetsInLinearTeaser","decisionSource","showBetStationResult","clearResult","RewardTokensBannerService","localStoreService","crmTokenimage","intlService","tokensConfig","betRewardBannerDismissKey","MINUTE","HOUR","DAY","_recentlyClickedToken$","recentlyClickedToken$","_isBannerExpaned","isBannerExpanded","isRewardDrawerEnabled","isBetRewardBannerDismissed","setBetRewardBannerStorageKey","trackBetRewardBanner","eventDetail","positionEvent","RewardBannerTrackingConstants","PromoHub","BetRewardsBanner","betNowRedirect","setRecentlyClicked","Horses","Greyhounds","redirectToSport","goToEvent","competitionUrl","meetings","param","goToRacing","gameType","redirectToLiveSport","homeRedirection","currentUrl","scrollToDelta","toggleBannerExpansion","scrollOnBetNow","goHome","goToLiveSport","goToLive","sportsCount","goToSport","userTokenId","setTokenInfoUrl","promoHubUrlTokenType","promoBaseUrl","links","promotiondetails","promoBaseUrlSeparator","endsWith","tokenInfoUrl","getIconUrl","isRewardBannerView","isDarkMode","enableDarkModeForRewardDrawer","rewardsIcons","crmTokenImages","RewardTokenImages","FreeBetDark","OddsBoostDark","RiskFreeBetDark","BetAndGet","BetAndGetDark","getTokenUrlDetails","promoCtaLinks","ctaLinks","getTokenUrl","cards","FreeBetsDetailsUrl","tokenInfoLinkText","banner","FreebetDetailsLinkTitle","PromoHubUrlTokenType","RiskFreeBetDetailsUrl","BackupBetDetailsLinkTitle","OddBoostDetailsUrl","OddsBoostDetailsLinkTitle","BetAndGetDetailsUrl","BetAndGetDetailsLinkTitle","tokenUrl","getTokenTitle","customTitle","riskFree","card","DefaultTitle","tokenType","oddsBoost","OddsBoostTypeRegular","OddsBoostTypeMega","OddsBoostTypeSuper","getTokenCategories","_i","_j","_k","_l","_m","tokenCards","TokenCategoryDelimiter","isLiveSport","displayCategoriesMaxValues","sportsCatergory","TokenCategorySelectedSports","liveCategory","competitionsCount","competitionsCategory","MultipleCompetitions","meetingsCount","meetingsCategory","meeting","fixturesCount","fixturesCategory","TokenCategorySelectedEvents","marketsCount","markets","marketsCategory","market","TokenCategorySelectedMarkets","marketTemplatesCount","marketTemplates","templates","marketTemplatesCategory","TokenCategorySelectedTemplates","marketParametersCount","marketParameters","parseMarketType","marketParametersCategory","TokenCategorySelectedParameters","optionsCount","optionsCategory","TokenCategorySelectedSelections","TokenCategoryAllSports","getTokenExpires","expiryDate","buildDate","getFullYear","getMonth","nowDate","diffDay","diff","diffHours","getRewardDrawerTokenExpires","getDefaultTokenExpires","TokenExpiredTemplate","TokenExpireTodayTemplate","todayTime","formatDate","TokenExpireTomorrowTemplate","tomorrowTime","TokenExpireDaysTemplate","dayCount","TokenExpireLessThanHourTemplate","TokenExpireHoursTemplate","hoursCount","floor","setDefaultValueForBannerExpanded","isBannerExpanded$","marqueeHeight","bottom","fixedHeaderHeight","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","HorsesFixtureHelper","racingConfig","isTradable","fixtureType","pricingState","filterSelectedMarketOptionGroup","selectedMarketId","detailedGrouping","marketSet","replaceAll","checkIfBOGApplicable","bogTodayThresholdTime","bestOddsGuarantee","RacingConfig","_HorsesFixtureHelper","PlayerAttributesService","sharedFeaturesApiService","SharedFeaturesApiService","playerAttributesEvents","playerAttributes","load","loaded","_PlayerAttributesService","PlayerAttributesDslValuesProvider","dslRecorderService","playerAttributesService","dslCacheService","invalidate","getProviders","PlayerAttributes","createRecordable","createFunction","getCurrentValue","deps","DSL_NOT_READY","DslRecorderService","DslCacheService","_PlayerAttributesDslValuesProvider","registerLazyDslOnModuleInit","SingleBoxSharedResizeObserver","_box","entry","SharedResizeObserver","_SharedResizeObserver","userFeatureKey","defaultUserState","bettingSettings","configSettings","walletLoaded","AccaBoostTokenFactoryService","payoutType","PayoutType","Bonus","validUntil","cmsItemId","sitecorePath","boostLadder","getDistinctLadderValues","minimumLegs","numberOfLegs","maxReward","amount","priority","countryCodes","minOddsPerLeg","betSlipType","sportConfig","gridGroups","daysOfTheWeek","daysOfWeek","timesOfTheDay","ratio","_AccaBoostTokenFactoryService","AccaBoostTokenLoaderService","apiService","accaBoostConfig","factoryService","cacheFactory","configUrl","configCache","sitecoreTokenDataCacheTime","loadTokens","fetchTokens","mapTokens","loadTokenData","err","AccaBoostConfig","ExpiringCacheFactory","_AccaBoostTokenLoaderService","ACCA_BOOST_REFRESH_TRIGGER","AccaBoostTokenProviderService","loaderService","autoRefreshTrigger","manualRefresh$","byPriority","second","startGettingToken","onAuthenticationChange$","UserLoginEvent","allowUnAuthenticatedUsers","canShowTokens","loadOnRefresh$","getTrigger$","loadData","OptionalNonRootToken","_AccaBoostTokenProviderService","RewardTokensFactory","user","tokenFormatterService","userOddsFormatSettingsService","UserOddsFormatSettingsService","toModelList","tokensData","getCurrencySymbol","currency","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","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","Bt","_MarketSubTypeLogoHideStrategy","MarketSubTypeLogoShowStrategy","_MarketSubTypeLogoShowStrategy","_STATE_STORAGE_PERSIST_SERVICE","StateStorageFeatureModule","root","statePersistServices","log","feature","stateSaver","StatePersistServiceRegistry","_StateStorageFeatureModule","StateStorageModule","forFeature","ngModule","multi","useFactory","createStateSaver","_StateStorageModule","BetslipDigitalModuleLoaderService","sportsUserSettings","SportsUserSettings","loadBetslipModule","BetslipDigitalModule","moduleRef","_BetslipDigitalModuleLoaderService","UriParam","ExternalAffiliateEffects","routerService","pickUriService","bettingService","urlService","listenToRouter","parse","getPicksWithFallback","mapPicksRequest","picksView","cleanUrl","fixturePage","ExternalBetslipActions","requestAddAffiliatePicks","shareBet","Options","Stake","Currency","Type","Source","RefBet","Offersource","search","goTo","tv1Picks","tv2Picks","includeSourceFixturesForPrecreatedBuildABet","pick","tv1Legs","tv2Legs","getOfferSource","pickData","mapOptionQueryToPick","useLiveFallback","optionQuery","isClassicBetBuilder","PickUriService","UrlService","_ExternalAffiliateEffects","SingleIntersectionObserver","_options","_destroyed","_intersectionSubject","_elementObservables","IntersectionObserver","_intersectionObserver","unobserve","bufferSize","refCount","SharedIntersectionObserver","_observers","_SharedIntersectionObserver","OVERLAY_REF_WITH_DATA_TOKEN","DsTooltipTrigger","tooltipToggle","_tooltipToggle","_overlayRef","openTooltip","closeTooltip","overlay","Overlay","vcr","sharedIntersectionObserver","sharedResizeObserver","_scrollDispatcher","ScrollDispatcher","_isVisible","_isShown","closeOutsideViewport","autoOpen","arrowPosition","_position","autoCloseTime","closeOnScroll","hasBackdrop","closeOnInteraction","tooltipCustomClass","tooltipToggleChange","output","overlaySubscriptions","_lastObservedWidth","handleCloseOnInteraction","clickTarget","run","contains","overlayElement","effect","isAutoOpen","isShown","untracked","initializeAutoOpen","allowSignalWrites","isOpen","createOverlay","adjustArrowPosition","listenToOverlayState","isIntersecting","shouldAutoClose","onStable","hasAttached","updatePosition","scheduleAutoClose","arrowElement","targetRect","leftOffset","ARROW_OFFSET","CONTAINER_OFFSET","topOffset","height","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","onResize","cleanupResources","dispose","handleResize","newWidth","Se","_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","handleKeydown","containerClasses","DsTooltipContent","tooltipTrigger","fullWidthMode","customTooltip","outerContainerClasses","positionClass","arrowClass","fullWidthClass","fullWidthModeClass","adjustedArrowClass","closed","ariaLabel","Ht","Ct","Re","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","Le","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","playerPreference","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","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","BetslipState","Result","betslipType","selectedByUser","systemInfo","betslipTypes","currentSelectedType","BetslipType","EditBet","EditBetActions","exitEditBet","closeQuickBetConfirmationOnAddPickEffect$","quickBet","QuickBetUiState","Success","handleAddPickActionEffect$","echoAddPick","getRequestAddPickActions","handleOddsConfirmationPopupDisplay$","ignoreElements","handleAddPicksActionEffect$","picks","handleAddGroupPickActionEffect$","BetslipPickActions","requestAddGroupPick","headerTemplate","handleAddBetBuilderPickActionEffect$","echoAddBetBuilderPick","requestAddBetBuilderPick","pickId","additionalInfo","handleAddEntainUiBetBuilderPickActionEffect$","requestAddEntainUiBetBuilderPick","eventModel","betBuilderOptionMarket","longId","handleRemoveEntainUIPickActionEffect$","removeEntainUiBetBuilderPick","requestRemoveEntainUiBetBuilderPick","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","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","DisplayMode","LaunchDarklyFlagManagerService","launchDarklyService","LaunchDarklyService","featureFlagKeys$","getFlagOnly","getFeatureFlag","flagName","featureFlags","activateExperiment","client","_LaunchDarklyFlagManagerService","DateCheckerService","isDateReached","dateValue","isNowTimeOfDay","timeOfDay","toDate","time","hours","minutes","RealityCheckEvent","RealityCheckCookie","RealityTime","FirstBetPlacement","RealityCheckService","cookieProvider","realityCheckConfig","tickerService","dispatcher","realityCheckTimerKey","BET_PLACE_SUCCESS","remainingTime","realityCheckEvent","OnBetPlacement","OnBetPlacementWithDuration","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","showNotification","updateRemainingTime","contentData","DialogType","Info","firstParagraph","secondParagraph","buttons","ButtonType","Ok","openMessage","resetRemainingTime","TickerInterval","Minute","onTick","updateInterval","setRealityCookie","remaingTime","setCookie","stringify","expires","betPlaceTime","diffMs","CookieProvider","RealityCheckConfig","TickerService","DispatcherService","_RealityCheckService","isValidStartDate","isValidExpiryDate","isValidDayOfWeek","getDayOfWeek","tokenDay","isValidTimeOfDay","isValidSport","sportsFilter","hasRestrictedId","regions","hasBestOddsGuaranteeFlag","cdsUnresulted","isRaceOff","filterIds","contextId","filterId","ClassicBestOddsGuaranteedService","BestOddsGuaranteedService","isFixtureEligible","isBOGEnabled","_ClassicBestOddsGuaranteedService","FixtureBestOddsGuaranteedTokenValidatorService","validators","validate","validator","_FixtureBestOddsGuaranteedTokenValidatorService","convertReducer","reducer","createImmutableReducer","initialState","ons","OddsAcceptance","PerformanceService","_measurements","isLowTierDevice","benchmarkThreshold","measurement","isSlow","_PerformanceService","benchmark","calculatePrimes","VideoStreamStatus","VideoStreamResult","errorType","PlaySource","SelfExcludedCategories","showStreamingMessage","hideWhenStarted","provider","twitchChannel","streamUrl","TrackingConfig","LazyClientConfigBase","__ngConditionalFactory__","trackingConfigFactory","LazyClientConfigService","LazyClientConfig","product","ClientConfigProductName","SF","TrackingValueGettersService","trackingConfig","cookieService","nativeAppService","frontendHelperService","balancePropertiesConfig","__privateAdd","userBalance","balanceProperties","accountBalance","userCurrency","userCountry","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","absolute","parsedUrl","notTrackedQueryString","notTrackedQueryStrings","decodeURIComponent","langPrefix","lowerCasePath","substring","os","isNativeApp","isNativeWrapper","isiOS","isChrome","CookieService","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","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","WebWorkerService","_DataLayerTrackingService","DefaultPageViewDataProvider","valueGetters","getData","navigationId","utm","_DefaultPageViewDataProvider","PageView","dataSource","dataCallback","fn","PageViewTrackingService","productInjector","currentDataProviders","pageViewQueue","toNumberOrDefault","isNaN","trackPageView","args","utm_source","getMultiple","PAGE_VIEW_DATA_PROVIDER","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","work","logTrackingPerformance","deviceConcurrency","hardwareConcurrency","minDeviceConcurrency","minDeviceMemory","deviceMemory","omitPercentage","random","_DataLayerProxyService","startTime","startMark","endMark","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","pageYOffset","scrollY","_PartytownService","getEventsQueue","savedEventsItem","localStorage","eventsQueue","setItem","parsedArgs","removeItem","dataLayerProxy","partytownService","configured","clientTagManagers","excludes","clientInjectionExcludes","injectScript","availableClientTagManagers","rendererName","tagManager","script","createElement","async","onload","onerror","body","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","initializedEvents","currentTab","tabEvents","routerModeReturnUrl","sessionStoreService","routerMode","productMenuConfig","v2","contentEvents","tabCount","menuItemsService","eventsService","apps","childTabs","childTabs$$","childTabs$","apps$$","apps$","productMenuComponents","menu","initTabs","openTab","tabName","setActive","MenuSection","ProductMenuTop","isTab","setTabItemCounter","setItemCounter","setProductMenuComponent","itemType","getProductMenuComponent","setItemDescription","descriptionCssClass","setDescription","setDescriptionCssClass","raise","VanillaEventNames","ProductMenuToggle","EventsService","_ProductMenuService","ANIMATION_PREFIX","AsyncAnimationRendererFactory","_AsyncAnimationRendererFactory","delegate","animationType","moduleImpl","ChangeDetectionScheduler","ɵASYNC_ANIMATION_LOADING_SCHEDULER_FN","loadFn","moduleImplPromise","RuntimeError","ɵcreateEngine","ɵAnimationRendererFactory","rendererFactory","hostElement","rendererType","dynamicRenderer","DynamicDelegationRenderer","animationRendererFactory","animationRenderer","ɵɵ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","temp","htmlCssClass","loadStyle","filename","getNewThemeFilename","themesCssPath","getEntry","getOldThemeFilename","file","getJson","theme","WebpackManifestService","StylesService","ContentService","_LoaderStylesService","ModuleService","dslEnvService","notFoundValue","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","Ol","LoadersConfig","loadersConfigFactory","LOADER_FN_TOKEN","registerLoaderFn","LoadState","LoadStrategy","LoaderService","registeredLoaderFns","rtmsService","moduleService","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","featureInjector","getInjector","eventContext","sendToNative","NativeEventType","FEATURE_LOADED","Complete","loaders","Created","Scheduled","evaluate","strategies","scheduled","ruleId","rules","loaderId","loaderFnConfig","loaderFn","additionalStylesFn","evaluateExpression","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","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","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","SitemapRoutingToken","EsportsSitemapResolver","lcpService","GTMConfig","RunAfterLcpService","CalendarBreadcrumbsResolver","crumbs","contextUri","Calendar","getCalendarUrl","_CalendarBreadcrumbsResolver","SportListOverviewResolver","_SportListOverviewResolver","SportRedirectGuard","fallback","Golf","isAntepost","Antepost","getFallback","Competitions","_SportRedirectGuard","SportSubNavigationResolve","SubNavigationResolve","sportSubNavService","buildSubNavigation","resolveTabs","SportSubNavigationService","_SportSubNavigationResolve","StandingsPageResolver","pruneHelperService","standingsService","sportsCacheService","standingsData","getStandings","selectedVirtualCompetition","_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","matcherMode","RacingModule","matcherMapping","SportSitemapResolver","EventListModule","CalendarComponent","CalendarResolver","CalendarSitemapResolver","subNavigationHiddenOnSmallScreen","MultiBuilderModule","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","meanBy","duration","defaultValue","rounded","_NetworkPerformancePageViewDataProvider","provideTracking","AccaBoostRefreshTriggerService","whenBetslipGetsEmpty$","betslipPicksCount$","pickCount","pollingInterval","concatMapTo","repeat","_AccaBoostRefreshTriggerService","GlobalBestOddsGuaranteeAvailabilityService","isBogAvailable$","_GlobalBestOddsGuaranteeAvailabilityService","BogTokenProviderService","bogAvailabilityService","refreshSubject","isTokenBasedBogEnabled","poolTokens","getBogTokens","isBogAvailable","refreshInterval","bogTokens","mapToRewardToken","fromUtc","toUtc","BestOddsGuaranteed","stakeCap","Cash","slipTypes","timesOfDay","getSourceEventId","meetingIds","bogVersion","_BogTokenProviderService","TokenBasedBestOddsGuaranteedService","tokenProvider","tokenValidator","_TokenBasedBestOddsGuaranteedService","BestOddsGuaranteedFactoryService","_BestOddsGuaranteedFactoryService","provideBestOdds","ON_SPORTS_WEB_INIT","runOnSportsWebInit","BreadcrumbsBoostrapService","breadcrumbSlotService","schemaMarkupService","rebuildBreadcrumbs","findFirstBreadcrumbResolver","clearCrumbs","removeSchemaMarkupScriptFromBody","SchemaMarkupType","BreadcrumbList","isObservable","breadcrumbsModel","schemaBreadcrumbs","shouldSetBreadcrumbs","isSlotModel","changedInputs","isAlreadyRegistered","addBreadcrumbSchemaMarkup","getConstructor","getPrototypeOf","calendarContext","isCalendarCompetition","isTennis","shouldKeepBreadcrumbs","SchemaMarkupService","_BreadcrumbsBoostrapService","ModalPopUpComponent","settingsURL","getSettingsUrl","SettingsUrlParam","betslip","betslipRuleUpdatePopupUS","PopupText","Messages","ButtonText","BetslipSettingsLinkText","_ModalPopUpComponent","OddAcceptanceModeFilterService","selectedOddAcceptance","bettingSettings$","showOddsAcceptanceSettings","hideDontAcceptOptionSetting","requestSetOddAcceptance","acceptance","modalDialogRef","closeModal","_OddAcceptanceModeFilterService","NativeEventSubscription","redirecHelper","isNative","LiveAlertScreenNavigation","getEventId","BetScreenNavigation","MyBetsNavigation","OpenFreeBets","promotions","_NativeEventSubscription","SchemaMarkupBoostrapService","findFirstSubnavigationResolver","SportsEvent","cleanEvents","evnts","addEventSchemaMarkup","_SchemaMarkupBoostrapService","SettingsService","accountMenuConfig","routeNavigation$","vanillaAccountVersion$","account","version","accountVersion$","accountVersion","toggleCardLayoutStyle","isCardLayoutRoute","navRoute","Settings","EarlyPayoutSettings","GeneralBetslipSettings","AccountMenuVersion","AccountMenuConfig","_SettingsService","SubNavigationBootstrapService","layoutState","cleanUpNavigation","shouldShowSubNav","cleanup","subNavigation$","tabFullWidth$","_SubNavigationBootstrapService","RewardTokensContainerComponent_ng_container_0_ng_container_1_Template","ge","bannerComponent_r1","RewardTokensContainerComponent","rewardTokensDataService","bannerComponent$","hasData","proxyComponentLoaded","getRewardTokensComponent","bannerComponentSize","isRegulatoryRestricted","isExpandableRewardBannerEnabled","bannerComponentPadding","isUserAuthenticated","pi","Et","ɵɵstyleProp","RewardTokensContainerComponent_ng_container_0_Template","_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","_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","betslipComponent","getBetslipComponent","inColumn","configure","showPageHeader","multiRandomGenerator","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","getBetslipBarComponent","barClick","myBetsClick","BetslipBarContainerComponent_Conditional_0_Template","_BetslipBarContainerComponent","BreadcrumbLayoutProvider","_BreadcrumbLayoutProvider","reloadPage","CriticalErrorComponent","showError","criticalErrorHeader","CriticalErrorHeader","criticalErrorText","CriticalErrorText","CriticalErrorComponent_Conditional_0_Template","_CriticalErrorComponent","DeviceLayoutProvider","shouldHideSubNavigation","stickyHeader","_DeviceLayoutProvider","RightColumnLayoutProvider","columnLayoutService","rightColumnSizeChanged","rightColumnSize","_RightColumnLayoutProvider","RouteLayoutProvider","routeConfig","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","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","CrmPromotionProviderService","_SportsWebBootstrapService","provideSportsWebBootstrap","RouteRefreshService","refreshService","outletContext","getContext","loadKey","takeLast","runInInjectionContext","ChildrenOutletContexts","_RouteRefreshService","provideDataRefresh","ESportLiveButtonService","WidgetLayoutHook","liveButton","onResolve","LiveUrlParam","Esports","_ESportLiveButtonService","EsportsRefreshTrigger","WidgetRefreshTrigger","WidgetConfig","_EsportsRefreshTrigger","EsportsRefreshRegistrationService","refreshRegistry","WidgetRefreshService","registerTrigger","_EsportsRefreshRegistrationService","provideEsports","WebBridgeService","_WebBridgeService","provideEventBridge","SportLiveButtonService","WidgetContextService","_SportLiveButtonService","SportNavigationHighlightService","resetNavigation","_SportNavigationHighlightService","WidgetRegistrationService","_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","MarqueeWidgetSkeletonComponent_ng_container_0_ng_container_1_Template","showSkeleton","MarqueeWidgetSkeletonComponent","marqueeDataService","MarqueeWidgetDataService","WidgetSkeletonData","responseMapper","mappedTiles","widget","showSkeleton$","widgetsBeforeLoaded$","combineWithPromotions","widgetClass","MarqueeWidgetSkeletonComponent_ng_container_0_Template","NgOptimizedImage","_MarqueeWidgetSkeletonComponent","provideMarqueeWidgetSkeleton","WIDGET_SKELETON","HomeNavigationHighlightService","_HomeNavigationHighlightService","HomeRefreshTrigger","_HomeRefreshTrigger","provideHome","ApiVersioningInterceptor","sportsApiVersionConfig","intercept","req","isSportsApiRequest","handle","versionedRequest","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","_PatchedMediaObserver","provideMarketSubTypeLogoHideStrategy","isMediaSavedState","savedState","MediaStateSaver","save","_MediaStateSaver","MediaStateLoader","_MediaStateLoader","import_fast_json_patch","Bl","Dl","UnpinInfoService","shouldShowUnpinInfoMessage","mediaModuleUnpinInfoAcceptedKey","acceptUnpinInfoMessage","_UnpinInfoService","MediaEffects","cdsSubscription","eventDetailsService","detailedFixtureFactory","eventDetailsHelper","eventMediaHelperService","unpinInfoService","columnLayoutRegister","storagePersister","stateLoader","isStateRestored","onInit$","toggleMediaModule","startFetchVideoEvents","startUserServiceEventsListener","pinEnabledStateToggle","startRestoreState","setEventId$","eventInfo","getEvent","trackingVideoSource","actionPayload","setEventInternal","mapMediaSetEventToSetEventInternalPayload","setEvent$","setEventInternal$","updateSubscriptions","dispatchSetEventInternalActions","unsetEvent$","unsetEvent","removeObsoleteSubscriptions","ignoreElementsTyped","startFetchVideoEvents$","notActive$","skipWhile","STREAMS_CACHE_INTERVAL","fetchVideoEvents","startUserServiceEventsListener$","fetchVideoEvents$","maxFixturesPerSport","getLiveStreams","streams","setVideoSwitcherContent","mapToEventSwitcherItem","acceptUnpinInfoMessage$","toggleUnpinInfoMessage","toggleUnpinInfoMessageAfterContextSwitch$","toggleUnpinInfoMessageAfterUnpinning$","togglePin","persistStateEpic$","setActiveTab","toggleAutoplay","restoreState","resetState","persistState","startRestoreStateEpic$","mediaPersistentState","MEDIA_PERSISTENT_STATE_KEY","mapEventModelToSetEventInternalPayload","restoreState$","toggleExpand$","toggleExpand","expandedState","layoutSize","ColumnSize","ExtraLarge","Large","resizeColumn","Right","handlePopulateFromStorage$","handlebreakpointChange$","breakpointChanged","ngrxOnInitEffects","noopAction","Scoreboard","toggleCollapsedState","eventsModel","sportsOffer","sportOffer","restrictedSportIds","persistedState","toUnsubscribe","scoreboardHandler","pushData","messageType","applyPatch","patch","operations","scoreboardSubscription","ScoreboardSubscription","setEventPayload","_MediaEffects","EventDetailsService","DetailedFixtureFactory","ColumnLayoutRegister","StoragePersister","mediaReducer","mediaDraft","setAvailableExpandLocation","columnType","hasActiveTab","addEvent","getActiveTabWithFallback","getActiveEvents","previousVideoEventId","switchToEventId","EventSwitcher","updateEventForEventSwitcher","updateEventForGrid","updateEventForEventDetails","pendingEsport","resetPin","hasBetradarId","eventDetailsColumnType","cloneEvent","EventModel","optionSetId","tabsAvailabilityByEventId","isAvailable","tabInfo","mediaSetEventInternal","MediaProviders","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","originalPath","setToken","forIn","kebabCase","_PrettyUrlPageViewDataProvider","PrettyUrlRouteProcessor","tryUpdateOriginalPath","stripToken","interpolate","includeName","normalizeName","toName","useMapping","segement","mapping","stripJoin","stripOptional","isWritable","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","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","EpcotDefault","AppModule","setAppInjector","Bo","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","currentEntry","previousIndex","LOG_TAG","oncurrententrychange","navigationType","BrowserBackDetectionService","windowRef","_strategy","provideBrowserBackDetection","APP_INITIALIZER","browserBackDetectionInitializer","HistoryApiNativeTransitionDetectionStrategy","createRenderer","_navigationHasNativeTransition","navigationHasNativeTransition","listenForNativeTransitions","listen","hasUAVisualTransition","NavigationApiNativeTransitionDetectionStrategy","NativeTransitionDetectionService","provideNativeTransitionDetection","nativeTransitionDetectionInitializer","isNavigationToCurrentPage","incomingUrl","finalUrl","urlMatchingOptions","paths","matrixParams","fragment","_isNavigationToCurrentPage","debug","isNavigationToOrFromFullSlidePage","isPathInNavigation","both","getFullSlideModifier","getMiniSlideModifier","isNavigationApplicationBack","isNavigationTraversal","currentNavigation","isNavigationFlaggedBack","isNavigationToAncestorRoute","previousNavigation","trigger","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":[57,58,59,60,68,69,179,229]}