{"version":3,"file":"main-YCYD7WJB.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/shared/src/safari-browser-token.interface.ts","packages/design-system/ui/shared/src/touch-click.directive.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.html","packages/sports/web/app/src/sub-navigation/sub-navigation.component.ts","packages/sports/web/app/src/bootstrap/sitemap-module-loader.service.ts","packages/sports/web/app/src/bootstrap/slot-layout.bootstrap.service.ts","packages/sports/web/app/src/skeleton-ui/skeleton.service.ts","packages/sports/web/app/src/print/print.module.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/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/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/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/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.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/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/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/competition-list/competition-list.models.ts","packages/sports/web/app/src/event-list-shared/sport/virtual-competition.service.ts","packages/sports/web/app/src/event-list-shared/sport/standings.service.ts","packages/sports/web/app/src/event-list-shared/sport/competitions/prune-helper.service.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/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/common/core/utils/rxjs/src/lib/ignore-elements-typed.ts","node_modules/@ngrx/operators/fesm2022/ngrx-operators.mjs","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/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/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/event-list-shared/sport/competitions/competition.models.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/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.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.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.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.html","packages/sports/web/app/src/event-list-shared/sport/fixture-list-header.component.ts","packages/sports/web/app/src/event-list-shared/sport/competition-header-widget.html","packages/sports/web/app/src/event-list-shared/sport/competition-header-widget.component.ts","packages/sports/web/app/src/teampages/team-pages-component-loader.service.ts","packages/sports/web/app/src/event-list-shared/sport/competition-teams-widget.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/settings/digital-actions.ts","packages/sports/common/betslip/modules/result/actions.ts","packages/sports/common/betslip/modules/types/actions.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-banner.service.ts","packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens-formatters.service.ts","packages/sports/web/app/src/horse-racing-shared/helpers.ts","packages/sports/web/app/src/horse-racing-shared/services/horses-fixture-helper.service.ts","node_modules/@angular/cdk/fesm2022/observers/private.mjs","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","packages/vanilla/lib/features/launch-darkly/src/launch-darkly.client-config.ts","node_modules/launchdarkly-js-client-sdk/dist/ldclient.es.js","packages/vanilla/lib/features/launch-darkly/src/launch-darkly.service.ts","packages/vanilla/lib/features/launch-darkly/src/launch-darkly-bootstrap.service.ts","packages/vanilla/lib/features/launch-darkly/src/launch-darkly.feature.ts","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/tracking/feature/performance-tracker/src/performance-profiling.service.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/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/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/default-stake-teaser/default-stake-teaser.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 { isPlatformBrowser } from '@angular/common';\nimport { InjectionToken, PLATFORM_ID, Provider } from '@angular/core';\n\n/**\n * Injection token used for retrieving value indicating whether the browser is Safari.\n */\nexport const IS_SAFARI_BROWSER = new InjectionToken('safari-browser-token');\n\nexport function isSafariBrowserFactory(platformId: Object): boolean {\n if (isPlatformBrowser(platformId)) {\n const userAgent = window.navigator.userAgent.toLowerCase();\n return (userAgent.includes('safari') || userAgent.includes('applewebkit')) && !userAgent.includes('chrome');\n }\n return false;\n}\n\nexport function provideSafariBrowserToken(): Provider {\n return {\n provide: IS_SAFARI_BROWSER,\n useFactory: isSafariBrowserFactory,\n deps: [PLATFORM_ID],\n };\n}\n","import { DestroyRef, Directive, ElementRef, NgZone, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { filter, fromEvent, tap } from 'rxjs';\n\nimport { IS_SAFARI_BROWSER } from './safari-browser-token.interface';\n\n@Directive({\n selector: '[dsTouchClick]',\n standalone: true,\n})\nexport class DsTouchClickDirective implements OnInit {\n private el = inject(ElementRef);\n private ngZone = inject(NgZone);\n private destroyRef = inject(DestroyRef);\n private isSafariBrowser = inject(IS_SAFARI_BROWSER);\n\n private touchStartElement: HTMLElement | null = null;\n\n private touchStarted$ = fromEvent(this.el.nativeElement, 'touchstart');\n private touchMoved$ = fromEvent(this.el.nativeElement, 'touchmove');\n private touchEnded$ = fromEvent(this.el.nativeElement, 'touchend');\n\n ngOnInit() {\n if (!this.isSafariBrowser) {\n return;\n }\n const clickTrigger = this.touchEnded$.pipe(\n filter(() => this.touchStartElement != null),\n tap((event: TouchEvent) => {\n if (this.touchStartElement != null && event.target === this.touchStartElement && event.changedTouches[0]) {\n const clickEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n });\n this.touchStartElement.dispatchEvent(clickEvent);\n event.preventDefault();\n this.touchStartElement = null;\n }\n }),\n );\n\n this.ngZone.runOutsideAngular(() => {\n this.touchStarted$\n .pipe(\n tap((event: Event) => (this.touchStartElement = event.target as HTMLElement)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.touchMoved$\n .pipe(\n tap(() => (this.touchStartElement = null)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n clickTrigger.pipe(takeUntilDestroyed(this.destroyRef)).subscribe();\n });\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, 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","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 } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\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 { TopNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DslService } from '@frontend/vanilla/core';\nimport { Observable, combineLatest, defer, of } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\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 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 ) {\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","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 } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\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 private mapItems(items: CountItem[]): TopMenuContentItem[] {\n const isV2Navigation = !!this.navigationConfig.topNavigationItems?.length;\n const maxSports = isV2Navigation ? this.navigationConfig.sportsConfig.topSportsCount : this.navigationConfig.maxSports;\n\n if (maxSports < 1) {\n return [];\n }\n\n if (!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, isV2Navigation),\n isVirtual: item.isVirtual,\n }),\n );\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 } from '@frontend/vanilla/core';\nimport produce from 'immer';\nimport { Observable, combineLatest } from 'rxjs';\nimport { map, startWith, switchMap } from 'rxjs/operators';\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 ) {\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 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 { ReplaySubject, Subject, combineLatest, first, switchMap } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\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 map(([topNavigationItems, fixedItems, sportsItems, selectedSport]) =>\n 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 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 \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 } from 'rxjs';\nimport { filter } from 'rxjs/operators';\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 { AfterViewInit, ChangeDetectorRef, Component, HostBinding, ViewChild, ViewContainerRef, inject } 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 } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\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\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\n ngAfterViewInit(): void {\n if (this.breadcrumbsSlot.registeredComponent) {\n this.initSlotComponent(this.breadcrumbsSlot.registeredComponent);\n } else {\n this.slotRef!.clear();\n }\n\n this.topNavigationConfig.whenReady.subscribe(() => {\n if (this.liveConfig.showLiveBadgeCount.includes('BOTTOM')) {\n this.setLiveCounts();\n }\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 setInterval(() => {\n this.refreshLiveCount();\n }, 60000);\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, NgClass } 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 } 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.html',\n styleUrls: ['sub-navigation.component.scss'],\n imports: [\n NgClass,\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: string;\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 private 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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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, of } from 'rxjs';\nimport { delay, distinctUntilChanged, filter, switchMap, withLatestFrom } from 'rxjs/operators';\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 get skeletonPage$(): Observable {\n return this.skeletonOutput$.asObservable();\n }\n\n private readonly homeLogo = `/${this.page.lang}`;\n private readonly homeRgx = new RegExp(`/${this.page.lang}` + '/sports$');\n private readonly eventRgx = new RegExp(`/${this.page.lang}` + '/sports/' + this.urlConfig.translations.events + '$');\n private readonly horseRacing = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?-29');\n private readonly horseRacingHome = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?-29$');\n private readonly compeRgx = new RegExp(`/${this.page.lang}` + '/sports/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[a-zA-Z]+/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/');\n private readonly firstCouponVisit = new RegExp(`/${this.page.lang}` + '/sports/[A-Za-z0-9]+-[0-9]+/[a-zA-Z]');\n private readonly secondCouponVisit = new RegExp(\n `/${this.page.lang}` + '/sports/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/[a-zA-Z]+/([A-Za-z0-9]+(-[A-Za-z0-9]+)+)',\n );\n\n private readonly styleSheet = 'skeleton-ui';\n\n private readonly sportsHomePage = new RegExp(`/${this.page.lang}` + '/sports/+?([A-Za-z0-9]+?(-?[A-Za-z0-9]+)+)?$');\n private readonly horseRacingForecast = new RegExp(\n `/${this.page.lang}` + '/sports/+([A-Za-z0-9]+(-[A-Za-z0-9]+)+)/+([A-Za-z0-9]+(-[A-Za-z0-9]+)+)',\n );\n\n private readonly subLivePage = new RegExp(`/${this.page.lang}` + '/sports/live/[A-Za-z0-9]+-[0-9]$');\n\n constructor(\n private router: Router,\n private urlConfig: PrettyUrlsConfig,\n private device: DeviceService,\n private skeletonConfig: SkeletonConfig,\n private slotLayoutRouteOverrideService: SlotLayoutRouteOverrideService,\n private stylesService: StylesLazyLoadingService,\n private page: Page,\n ) {\n if (this.skeletonConfig.isEnabled) {\n this.stylesService.lazyLoad(this.styleSheet);\n this.initRouteListener();\n }\n }\n\n private initRouteListener(): void {\n this.router.events\n .pipe(\n filterSports(),\n filter((e) => this.isValid(e)),\n withLatestFrom(this.skeletonOutput$),\n switchMap(([e, current]: any) => {\n if (e instanceof NavigationStart) {\n return of(this.getPage(e.url)).pipe(delay(current === undefined ? this.skeletonConfig.skeletonAniminationStartAt : 0));\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n )\n .subscribe((e) => this.skeletonOutput$.next(e));\n this.skeletonOutput$\n .pipe(\n filter((e) => e !== undefined),\n filterSportsEmitLast(),\n switchMap((_) => of(EMPTY).pipe(delay(this.skeletonConfig.maxtimeToSkeletonDuration))),\n )\n .subscribe((_) => this.skeletonOutput$.next(undefined));\n }\n\n private isValid(e: any): boolean {\n if (e instanceof NavigationStart || e instanceof NavigationCancel || e instanceof NavigationEnd || e instanceof NavigationError) {\n return true;\n }\n\n return false;\n }\n\n private getPage(url: string): SkeletonPage | undefined {\n if (url === undefined || this.eventRgx.test(url)) return undefined;\n url = decodeURI(url.toLowerCase());\n if (this.homeLogo.toLowerCase() === url) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n if (url.includes(this.urlConfig.translations.multiBuilder) || url.includes(this.urlConfig.translations.myBets)) return undefined;\n\n if (this.homeRgx.test(url) && this.device.isMobile) {\n return SkeletonPage.Home;\n }\n\n if (this.horseRacing.test(url)) {\n if (this.horseRacingHome.test(url) && !this.device.isMobile && !this.device.isTablet) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n }\n\n if (url.includes(this.urlConfig.translations.tomorrow)) {\n return SkeletonPage.RacingTomorrow;\n }\n\n if (this.horseRacingForecast.test(url)) {\n return SkeletonPage.RacingForecast;\n }\n\n if (url.includes(this.urlConfig.translations.today)) {\n return SkeletonPage.Racing;\n }\n\n return SkeletonPage.Racing;\n }\n\n if (this.device.isMobile && this.device.isTablet) {\n if (url.includes(this.urlConfig.translations.live + '/')) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting)) {\n return SkeletonPage.Favourites;\n }\n\n return SkeletonPage.Live;\n }\n\n if (\n url.includes(this.urlConfig.translations.calendar) ||\n url.includes(this.urlConfig.translations.today) ||\n url.includes(this.urlConfig.translations.coupons)\n ) {\n return SkeletonPage.Coupon;\n }\n }\n\n if (this.device.isMobile && !this.device.isTablet) {\n if (\n url.includes(this.urlConfig.translations.calendar) ||\n url.includes(this.urlConfig.translations.in30minutes) ||\n url.includes(this.urlConfig.translations.in60minutes) ||\n url.includes(this.urlConfig.translations.in180minutes) ||\n url.includes(this.urlConfig.translations.next2days) ||\n url.includes(this.urlConfig.translations.next3days) ||\n url.includes(this.urlConfig.translations.after2days) ||\n url.includes(this.urlConfig.translations.after3days) ||\n url.includes(this.urlConfig.translations.today) ||\n url.includes(this.urlConfig.translations.next5days) ||\n url.includes(this.urlConfig.translations.midWeek) ||\n url.includes(this.urlConfig.translations.tomorrow) ||\n url.includes(this.urlConfig.translations.future)\n ) {\n return SkeletonPage.UpComing;\n }\n if (url.includes(this.urlConfig.translations.live + '/')) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting)) {\n return SkeletonPage.UpComing;\n }\n\n return SkeletonPage.Live;\n }\n\n if (url.includes(this.urlConfig.translations.competitions)) {\n const validate1 = this.firstCouponVisit.test(url);\n const validate2 = this.secondCouponVisit.test(url);\n if (url.includes(this.urlConfig.translations.favourites)) {\n return SkeletonPage.Favourites;\n }\n if (validate1 && !validate2) {\n return SkeletonPage.Competition;\n }\n if (validate1 && validate2) {\n return SkeletonPage.UpComing;\n }\n }\n if (url.includes(this.urlConfig.translations.coupons)) {\n const validate1 = this.firstCouponVisit.test(url);\n const validate2 = this.secondCouponVisit.test(url);\n if (validate1 && !validate2) {\n return SkeletonPage.Coupon;\n }\n if (validate1 && validate2) {\n return SkeletonPage.UpComing;\n }\n }\n if (url.includes(this.urlConfig.translations.competitions)) {\n return SkeletonPage.Competition;\n }\n if (this.compeRgx.test(url)) {\n return SkeletonPage.UpComing;\n }\n }\n\n if (this.compeRgx.test(url)) {\n return SkeletonPage.Competition;\n }\n\n if (url.includes(this.urlConfig.translations.competitions)) {\n return SkeletonPage.Competition;\n } else if (\n url.includes(this.urlConfig.translations.coupons) ||\n url.includes(this.urlConfig.translations.in30minutes) ||\n url.includes(this.urlConfig.translations.in60minutes) ||\n url.includes(this.urlConfig.translations.in180minutes) ||\n url.includes(this.urlConfig.translations.next2days) ||\n url.includes(this.urlConfig.translations.next3days) ||\n url.includes(this.urlConfig.translations.after2days) ||\n url.includes(this.urlConfig.translations.after3days) ||\n url.includes(this.urlConfig.translations.next5days) ||\n url.includes(this.urlConfig.translations.midWeek)\n ) {\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.live + '/') && !url.includes(this.urlConfig.translations.teamPages)) {\n if (url.includes(this.urlConfig.translations.live + '/' + this.urlConfig.translations.betting) || this.subLivePage.test(url)) {\n return SkeletonPage.Favourites;\n }\n\n return SkeletonPage.Live;\n } else if (url.includes('sports/' + this.urlConfig.translations.calendar) || url.includes('sports/' + this.urlConfig.translations.today)) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.calendar) || url.includes(this.urlConfig.translations.today)) {\n return SkeletonPage.Coupon;\n } else if (url.includes(this.urlConfig.translations.favourites)) {\n const favCompetion = this.urlConfig.translations.favourites + '/' + this.urlConfig.translations.competitions;\n if (url.includes(favCompetion)) {\n return SkeletonPage.UpComing;\n } else {\n return SkeletonPage.Favourites;\n }\n } else if (url.includes(this.urlConfig.translations.events)) {\n return SkeletonPage.Event;\n } else if (url.includes(this.urlConfig.translations.upcoming)) {\n return SkeletonPage.UpComing;\n } else if (url.includes(this.urlConfig.translations.tomorrow) || url.includes(this.urlConfig.translations.future)) {\n return SkeletonPage.Favourites;\n } else {\n if (this.homeRgx.test(url) && !this.device.isMobile) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n\n if (this.sportsHomePage.test(url)) {\n this.slotLayoutRouteOverrideService.override(SubNavigationComponent, { fixed: false });\n\n return SkeletonPage.Home;\n }\n }\n\n return undefined;\n }\n}\n","import { 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","/**\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 'packages/vanilla/lib/core/src/navigation/navigation.models';\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 Pick {\n return Boolean(info && (info as NavigationInfo).skipPrimaryOutletGuardsAndResolvers !== undefined);\n}\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 { 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\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/operators';\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 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 { 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 {\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 { merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\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 } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\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 if (!value) {\n return '';\n }\n\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 { 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 { PopupManager } from '../popup/popup-manager.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 popupManager: PopupManager,\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 if (this.popupManager.isPopupOpen(UpdateMobileNumber.PopupIdentifier)) {\n this.popupManager.close();\n }\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 readonly #window = inject(WINDOW);\n}\n","import { Injectable } from '@angular/core';\n\nimport { MobileConfirmationNotificationClientConfig } from '@frontend/sports/common/client-config-data-access';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Store } from '@ngrx/store';\n\nimport { LocalStorageService } from '../common/local-storage.service';\nimport { PopupManager } from '../popup/popup-manager.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 popupManager: PopupManager,\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.popupManager.configure(UpdateMobileNumber.PopupIdentifier, UpdateMobileNumberComponent, {\n data: {\n overlayType: UpdateMobileNumber.PopupIdentifier,\n },\n settings: {\n cssClass: UpdateMobileNumber.PopupIdentifier,\n showDialogHeader: false,\n hideCloseButton: true,\n isModalDialog: true,\n showCloseBtnText: true,\n },\n });\n this.popupManager.open(UpdateMobileNumber.PopupIdentifier);\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, from } from 'rxjs';\nimport { distinctUntilChanged, filter, map, switchMap } from 'rxjs/operators';\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 \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.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\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 || window, 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 readonly #window = inject(WINDOW);\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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 { 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","\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 { SportsThemedPillsDirective } from '@frontend/sports/common/ui/sports-themed-pills';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { WidgetContext } from '@frontend/sports/types/components/widget';\nimport { DsPill } from '@frontend/ui/pill';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { TabBarItem } from '../../tab-bar/tab-bar.models';\n\nexport enum WidgetTabBarDisplay {\n Default,\n Icon,\n Logo,\n}\nexport interface WidgetTabBarItem extends TabBarItem {\n display: WidgetTabBarDisplay;\n context: Partial;\n itemId: string | number;\n sportId?: number;\n widgetId: string;\n}\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, IconCustomComponent, CompetitionLogoComponent, CommonModule, SportsThemedPillsDirective],\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 { 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 { 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, merge, of } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\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 { 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 { 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","@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 \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","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 { SharedPriceboostModule } from '../../shared-priceboost/shared-priceboost.module';\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 SharedPriceboostModule,\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 && titleData?.icon) {\n
\n @if (titleLogo && titleData.id) {\n \n } @else if (titleData?.icon) {\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';\nimport { WidgetTabBarItem } from './widget-tab-bar.component';\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 @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() titleData: WidgetTabBarItem;\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 { SharedPriceboostModule } from '../../shared-priceboost/shared-priceboost.module';\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 SharedPriceboostModule,\n ItemComponent,\n TrustPipe,\n IconCustomComponent,\n ],\n exports: [WidgetTabBarComponent, WidgetHeaderComponent],\n declarations: [WidgetHeaderComponent],\n})\nexport class WidgetCommonModule {}\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 { OperatorFunction, ignoreElements, pipe } from 'rxjs';\n\nexport function ignoreElementsTyped(): OperatorFunction {\n return pipe(ignoreElements());\n}\n","import { of, EMPTY } from 'rxjs';\nimport { concatMap, withLatestFrom, map, catchError, tap, finalize } from 'rxjs/operators';\n\n/**\n * `concatLatestFrom` combines the source value\n * and the last available value from a lazily evaluated Observable\n * in a new array\n *\n * @usageNotes\n *\n * Select the active customer from the NgRx Store\n *\n * ```ts\n * import { concatLatestFrom } from '@ngrx/operators';\n * import * as fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * concatLatestFrom(() => this.store.select(fromCustomers.selectActiveCustomer))\n * )\n * ```\n *\n * Select a customer from the NgRx Store by its id that is available on the action\n *\n * ```ts\n * import { concatLatestFrom } from '@ngrx/operators';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * concatLatestFrom((action) => this.store.select(fromCustomers.selectCustomer(action.customerId)))\n * )\n * ```\n */\nfunction concatLatestFrom(observablesFactory) {\n return concatMap(value => {\n const observables = observablesFactory(value);\n const observablesAsArray = Array.isArray(observables) ? observables : [observables];\n return of(value).pipe(withLatestFrom(...observablesAsArray));\n });\n}\n\n/**\n * `mapResponse` is a map operator with included error handling.\n * It is similar to `tapResponse`, but allows to map the response as well.\n *\n * The main use case is for NgRx Effects which requires an action to be dispatched.\n *\n * @usageNotes\n * ```ts\n * export const loadAllUsers = createEffect((\n * actions$ = inject(Actions),\n * usersService = inject(UsersService)\n * ) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * mapResponse({\n * next: (users) => UsersApiActions.usersLoadedSuccess({ users }),\n * error: (error) => UsersApiActions.usersLoadedFailure({ error }),\n * })\n * );\n * })\n * );\n * });\n * ```\n */\nfunction mapResponse(observer) {\n return source$ => source$.pipe(map(value => observer.next(value)), catchError(error => of(observer.error(error))));\n}\n\n/**\n * Handles the response in ComponentStore effects in a safe way, without\n * additional boilerplate. It enforces that the error case is handled and\n * that the effect would still be running should an error occur.\n *\n * Takes optional callbacks for `complete` and `finalize`.\n *\n * @usageNotes\n *\n * ```ts\n * readonly dismissAlert = this.effect((alert$) => {\n * return alert$.pipe(\n * concatMap(\n * (alert) => this.alertsService.dismissAlert(alert).pipe(\n * tapResponse(\n * (dismissedAlert) => this.alertDismissed(dismissedAlert),\n * (error: { message: string }) => this.logError(error.message)\n * )\n * )\n * )\n * );\n * });\n *\n * readonly loadUsers = this.effect((trigger$) => {\n * return trigger$.pipe(\n * tap(() => this.patchState({ loading: true })),\n * exhaustMap(() =>\n * this.usersService.getAll().pipe(\n * tapResponse({\n * next: (users) => this.patchState({ users }),\n * error: (error: HttpErrorResponse) => this.logError(error.message),\n * finalize: () => this.patchState({ loading: false }),\n * })\n * )\n * )\n * );\n * });\n * ```\n */\nfunction tapResponse(observerOrNext, error, complete) {\n const observer = typeof observerOrNext === 'function' ? {\n next: observerOrNext,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: error,\n complete\n } : observerOrNext;\n return source => source.pipe(tap({\n next: observer.next,\n complete: observer.complete\n }), catchError(error => {\n observer.error(error);\n return EMPTY;\n }), observer.finalize ? finalize(observer.finalize) : source$ => source$);\n}\n\n/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { concatLatestFrom, mapResponse, tapResponse };\n","import { EventDetailsColumnType, EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { EventFactory, EventOption, GridSourceEvent } from '@frontend/sports/grid/core/feature/factories';\nimport { GridEvent, 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 { concatLatestFrom } from '@ngrx/operators';\nimport { Store } from '@ngrx/store';\nimport { isArray, isEqual, keys } from 'lodash-es';\nimport { Observable, ReplaySubject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, filter, map, startWith, switchMap, take, tap } from 'rxjs/operators';\n\nexport interface GridEventMapper {\n canMap(grid: GridModel, events: GridSourceEvent[]): boolean;\n\n map(grid: GridModel, events: GridSourceEvent[]): Observable;\n}\n\nexport interface GridEventToReplace {\n preMatchGridEvent: GridEvent;\n liveGridSourceEvent: GridSourceEvent;\n}\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 // eslint-disable-next-line import/no-deprecated\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 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 //usually it's not advised to combine selectors in this way, made an exception here to avoid coupling the two states together\n concatLatestFrom(() => store.select(mediaStateSelector)),\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 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\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 replaceEvent(targetFixtureId: string, newFixture: GridSourceEvent, options?: EventOption): void {\n this.factory\n .create([newFixture], options)\n .pipe(take(1))\n .subscribe((gridEvents) => {\n if (gridEvents.length === 1) {\n this.store.dispatch(GridActions.replaceEvent({ payload: { id: this.id, targetFixtureId, newFixture: gridEvents[0] } }));\n }\n });\n }\n\n replaceEvents(events: GridEventToReplace[], options?: EventOption): void {\n // eslint-disable-next-line unicorn/prefer-object-from-entries\n const eventDictionary = events.reduce>(\n (previous, current) => ({\n ...previous,\n [current.liveGridSourceEvent.id]: current.preMatchGridEvent,\n }),\n {},\n );\n this.factory\n .create(\n events.map((event) => event.liveGridSourceEvent),\n options,\n )\n .pipe(\n take(1),\n map((gridEvents) =>\n gridEvents.map((gridEvent) => ({\n currentEvent: eventDictionary[gridEvent.id],\n newEvent: gridEvent,\n })),\n ),\n )\n .subscribe((gridEvents) => {\n this.store.dispatch(GridActions.replaceEvents({ payload: { id: this.id, events: gridEvents } }));\n });\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 { IGridGroup, addEvents, setActiveGroupState, setGroupCollapseThreshold, setStateCollapse } from '@frontend/sports/grid/core/feature/store';\nimport { ColumnActiveState, GridStoreService, GridStoreState } from '@frontend/sports/grid/core/feature/store';\nimport { Store } from '@ngrx/store';\nimport { isNumber, mapValues } from 'lodash-es';\nimport { Observable, forkJoin, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 } 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, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\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([of(sport), this.bettingCache.getConference(conferenceId, competitionId, { from: start, to: end })]),\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, of } from 'rxjs';\nimport { first, map, mergeMap } from 'rxjs/operators';\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, forkJoin, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\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 { 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, noop } from 'rxjs';\nimport { debounceTime, distinct, filter, map, throttleTime } from 'rxjs/operators';\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 { 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 { 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, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 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.get('/competitions/participants/v2', { competitionId: id, sportId }).pipe(\n map((response) => {\n if (!response) {\n return [];\n }\n\n return response\n .filter(\n (item) =>\n item && item.participantId && (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, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\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 { EventParticipant, 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, of } from 'rxjs';\nimport { first, map, switchMap } from 'rxjs/operators';\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 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 ? { jersey: this.getImage(paarticipantId, this.v2Prefix, this.homeTeamSuffix), isParticipantProfile: false }\n : { jersey: this.getImage(paarticipantId, this.v1Prefix, this.homeTeamSuffix), isParticipantProfile: false };\n }\n } else {\n return { jersey: imageProfile?.jersey, logo: imageProfile?.logo, isParticipantProfile: imageProfile?.isParticipantProfile ?? true };\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: { sport: number; sportName: string; competition: string; competitionName: string; team: number; teamName: string; data?: Data },\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, hasFavouritedTeams, 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 const teamPagesViewModel = {\n teamPagesNavigationViewModel,\n teamPagesDetailsModel,\n };\n\n return teamPagesViewModel;\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 hasFavouriteTeams: boolean,\n routeParams: { sport: number; sportName: string; competition: string; competitionName: string; team: number; teamName: string; data?: Data },\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","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, of } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\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.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.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 } from 'rxjs';\nimport { concatMap, map } from 'rxjs/operators';\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.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 { badgeText: this.sitecore.crmTokens.messages.Rewards, cssClass: 'reward-token-eligible-tag--rewards' };\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) {\n \n }\n\n
\n

{{ title }}

\n @if (sport && league) {\n \n }\n
\n \n
\n}\n\n\n@if (tabs.length) {\n \n \n} @else if (pills.length) {\n \n}\n\n @if (sport && league) {\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.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 @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 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.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 this.league = {\n id: league.realCompetitionId || league.id,\n name: league.name,\n parentLeagueId: league.siblings[0],\n imageProfile: league.imageProfile,\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","\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, of } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\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.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","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 \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, of } from 'rxjs';\nimport { concatMap, switchMap, tap, withLatestFrom } from 'rxjs/operators';\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.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 @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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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.getSportList({ from: start, to: end }).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 } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { usePreloaderData } from '@frontend/sports/common/core/utils/preloaded-data';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SiteMapResponse, SitemapModel } from './sitemap.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SitemapService {\n private _sitemap$ = new BehaviorSubject({ items: [] });\n\n constructor(private api: ApiService) {}\n\n get sitemap$(): Observable {\n return this._sitemap$.asObservable();\n }\n\n @usePreloaderData({\n preloader: (window).MS2JS?.SiteMapLoader,\n })\n getSiteMapConfiguration(): Observable {\n return this.api.get('sitemap');\n }\n\n setSitemap(sitemap: SitemapModel): void {\n this._sitemap$.next(sitemap);\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, forkJoin } from 'rxjs';\nimport { first, takeUntil } from 'rxjs/operators';\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, switchMap } from 'rxjs';\nimport { distinctUntilKeyChanged } from 'rxjs/operators';\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 { optionalProps } from '@frontend/sports/common/core/utils/redux';\nimport { createAction } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\n\nexport default class DigitalSettingsActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/digital/settings`;\n\n private static readonly OPEN_SETTINGS = `${DigitalSettingsActions.ACTION_SCHEMA}/OPEN_SETTINGS`;\n private static readonly CLOSE_SETTINGS = `${DigitalSettingsActions.ACTION_SCHEMA}/CLOSE_SETTINGS`;\n\n static openSettings = createAction(DigitalSettingsActions.OPEN_SETTINGS);\n static closeSettings = createAction(DigitalSettingsActions.CLOSE_SETTINGS, optionalProps<{ trackEvent?: boolean }>());\n}\n","import { DecisionSource } from '@bpos/v1/over-ask';\nimport { createAction, props } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\n\nexport class BetslipResultActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/result`;\n\n private static readonly CLOSE = `${BetslipResultActions.ACTION_SCHEMA}/CLOSE`;\n\n private static readonly GO_TO_MY_BETS = `${BetslipResultActions.ACTION_SCHEMA}/GO_TO_MY_BETS`;\n\n private static readonly CLEAR_RESULT = `${BetslipResultActions.ACTION_SCHEMA}/CLEAR_RESULT`;\n\n private static readonly KEEP_PLACED_BETS_IN_BETSLIP = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_BETSLIP`;\n\n private static readonly SHOW_BET_STATION_RESULT = `${BetslipResultActions.ACTION_SCHEMA}/SHOW_BET_STATION_RESULT`;\n\n private static readonly DECISION_SOURCE = `${BetslipResultActions.ACTION_SCHEMA}/IS_DECISION_SOURCE_AUTO`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_SINGLE = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_SINGLE`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_COMBO = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_COMBO`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_SYSTEM = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_SYSTEM`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER`;\n\n private static readonly KEEP_PLACED_BETS_IN_LINEAR_TEASER = `${BetslipResultActions.ACTION_SCHEMA}/KEEP_PLACED_BETS_IN_LINEAR_TEASER`;\n\n /**\n * Called when closing result screen, e.g. navigate to my bets from result.\n */\n static close = createAction(BetslipResultActions.CLOSE);\n\n static goToMyBets = createAction(BetslipResultActions.GO_TO_MY_BETS);\n\n static keepPlacedBetsInBetslip = createAction(BetslipResultActions.KEEP_PLACED_BETS_IN_BETSLIP, props<{ keepPlacedBetsInBetslip: boolean }>());\n\n static keepPlacedBetsInLinearSingle = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_SINGLE,\n props<{ keepPlacedBetsInLinearSingle: boolean }>(),\n );\n\n static keepPlacedBetsInLinearCombo = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_COMBO,\n props<{ keepPlacedBetsInLinearCombo: boolean }>(),\n );\n\n static keepPlacedBetsInLinearSystem = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_SYSTEM,\n props<{ systemKey: string; keepPlacedBetsInLinearSystem: boolean }>(),\n );\n\n static keepPlacedBetsInLinearBetBuilder = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_BET_BUILDER,\n props<{ groupId: string; keepPlacedBetsInLinearBetBuilder: boolean }>(),\n );\n\n static keepPlacedBetsInLinearTeaser = createAction(\n BetslipResultActions.KEEP_PLACED_BETS_IN_LINEAR_TEASER,\n props<{ keepPlacedBetsInLinearTeaser: boolean }>(),\n );\n\n static decisionSource = createAction(\n BetslipResultActions.DECISION_SOURCE,\n props<{ decisionSource?: DecisionSource; isOfferModified: boolean }>(),\n );\n\n /**\n * Show modal on Betstation eg: Bet Placed. Would you like to retain your selection(s)?\n */\n static showBetStationResult = createAction(BetslipResultActions.SHOW_BET_STATION_RESULT);\n\n static clearResult = createAction(BetslipResultActions.CLEAR_RESULT);\n}\n","import { createAction, props } from '@ngrx/store';\n\nimport BetslipActions from '../../base/store/actions';\nimport { BetslipType } from '../../core/betslip-type';\nimport { LinearTypes } from '../../core/linear-types';\nimport { PickId } from '../../core/picks/pick-id';\nimport { SystemSlipType } from '../bet-generation/slip-type';\nimport { IBetslipTypeState } from './state';\n\nexport class BetslipTypesActions {\n static readonly ACTION_SCHEMA = `${BetslipActions.ACTION_SCHEMA}/types`;\n\n private static readonly SET_EACH_WAY = `${BetslipTypesActions.ACTION_SCHEMA}/SET_EACH_WAY`;\n private static readonly POPULATE_FROM_STORAGE = `${BetslipTypesActions.ACTION_SCHEMA}/POPULATE_FROM_STORAGE`;\n private static readonly SET_ACTIVE_TYPES = `${BetslipTypesActions.ACTION_SCHEMA}/SET_ACTIVE_TYPES`;\n private static readonly SET_LINEAR_TYPES = `${BetslipTypesActions.ACTION_SCHEMA}/SET_LINEAR_TYPES`;\n private static readonly SET_SELECTED_TYPE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_SELECTED_TYPE`;\n private static readonly TRIGGER_AUTO_COMBO_SWITCH = `${BetslipTypesActions.ACTION_SCHEMA}/TRIGGER_AUTO_COMBO_SWITCH`;\n private static readonly SET_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_ORIGINAL_BASE`;\n private static readonly SET_FROM_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_FROM_ORIGINAL_BASE`;\n private static readonly SET_DEFAULT_ORIGINAL_BASE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_DEFAULT_ORIGINAL_BASE`;\n private static readonly SET_SELECTED_BY_USER = `${BetslipTypesActions.ACTION_SCHEMA}/SET_SELECTED_BY_USER`;\n private static readonly CHECK_DEFAULT_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/CHECK_DEFAULT_STAKE`;\n\n private static readonly SET_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_STAKE`;\n\n private static readonly SET_DEFAULT_STAKE = `${BetslipTypesActions.ACTION_SCHEMA}/SET_DEFAULT_STAKE`;\n\n /**\n * Sets each way state to all betslip types\n *\n * @param isEachWay isEachWay value.\n */\n static setEachWay = createAction(BetslipTypesActions.SET_EACH_WAY, props<{ isEachWay: boolean; pickIds?: PickId[] }>());\n\n /**\n * @description Invoked from the epic when startPopulateStore is executed (application init / page refresh).\n * Reducer will update the state with values from the session storage.\n * @param IBetslipTypeState betslip type state\n */\n static populateFromStorage = createAction(BetslipTypesActions.POPULATE_FROM_STORAGE, props<{ state: IBetslipTypeState }>());\n\n static setActiveTypes = createAction(BetslipTypesActions.SET_ACTIVE_TYPES, props<{ betslipTypes: BetslipType[] }>());\n\n static setSelectedType = createAction(\n BetslipTypesActions.SET_SELECTED_TYPE,\n // Previous type is a bit of a hack to fix a regression defect, there needs to be a proper implementation for it\n // The defect is related to handleToggleExistingBetslipSelectionsEffect because we are firing set selected type even when the type isnt changing.\n props<{ betslipType: BetslipType | null; systemInfo: SystemSlipType | null; selectedByUser: boolean; previousType?: BetslipType | null }>(),\n );\n\n static triggerAutoComboSwitch = createAction(BetslipTypesActions.TRIGGER_AUTO_COMBO_SWITCH);\n\n static setLinearTypes = createAction(BetslipTypesActions.SET_LINEAR_TYPES, props<{ types: LinearTypes }>());\n\n static setOriginalBase = createAction(BetslipTypesActions.SET_ORIGINAL_BASE);\n\n static setFromOriginalBase = createAction(BetslipTypesActions.SET_FROM_ORIGINAL_BASE);\n\n static setDefaultOriginalBase = createAction(BetslipTypesActions.SET_DEFAULT_ORIGINAL_BASE);\n static checkDefaultStake = createAction(\n BetslipTypesActions.CHECK_DEFAULT_STAKE,\n props<{ isValidComboBet: boolean; hasBetBuilderPicks: boolean; isQuickBetBuilder: boolean }>(),\n );\n\n static setSelectedByUser = createAction(BetslipTypesActions.SET_SELECTED_BY_USER, props<{ isSelectedByUser: boolean }>());\n\n static setStake = createAction(BetslipTypesActions.SET_STAKE, props<{ stake: number | null; silent?: boolean; stakeStr?: string }>());\n\n static setDefaultStake = createAction(BetslipTypesActions.SET_DEFAULT_STAKE, props<{ defaultStake?: number }>());\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { GameType } from '@bpos/v1/sports-promo';\nimport { CRMTokenImages, CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { Cards } from '@frontend/sports/types/components/sitecore';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, IntlService, LocalStoreService, NavigationService, OnAppInit } from '@frontend/vanilla/core';\nimport { RedirectHelperService } from 'packages/sports/web/app/src/navigation-core/redirect-helper.service';\nimport { SportUrlParam, UrlHelperService } from 'packages/sports/web/app/src/navigation-core/url-helper.service';\nimport { PromoHubUrlTokenType, RewardTokenImages, RewardTokenType } from 'packages/sports/web/app/src/tokens-base/token-base.models';\nimport { BehaviorSubject, Observable, Subject, take } from 'rxjs';\n\nimport { IRewardToken, RewardBannerTrackingConstants } from '../reward-tokens.model';\nimport { parseMarketType } from './reward-tokens.utils';\n\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): string[] {\n const tokenCards: Cards = this.sitecore.crmTokens.cards;\n const result: string[] = [];\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.push(token.filter.sports.map((sport) => sport.name).join(separator));\n } else {\n result.push(tokenCards.TokenCategorySelectedSports);\n }\n if (isLiveSport) {\n result.push(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.push(token.filter.competitions.map((competition) => competition.name).join(separator));\n } else {\n result.push(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.push(token.filter.meetings.map((meeting) => meeting.name).join(separator));\n } else {\n result.push(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.push(token.filter.fixtures.map((fixture) => fixture.name).join(separator));\n } else {\n result.push(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.push(token.filter.markets.map((market) => market.name).join(separator));\n } else {\n result.push(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.push(token.filter.marketTemplates.map((marketTemplate) => marketTemplate.name).join(separator));\n } else {\n result.push(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.push(marketTypes.join(separator));\n } else {\n result.push(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.push(token.filter.options.map((option) => option.name).join(separator));\n } else {\n result.push(tokenCards.TokenCategorySelectedSelections);\n }\n }\n } else {\n result.push(tokenCards.TokenCategoryAllSports);\n\n if (isLiveSport) {\n result.push(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 * 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 { 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 { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\nimport { LDOptions } from 'launchdarkly-js-client-sdk';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnLaunchDarkly', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: launchDarklyConfigFactory,\n deps: [LazyClientConfigService],\n})\nexport class LaunchDarklyConfig extends LazyClientConfigBase {\n clientId: string;\n options: LDOptions;\n sessionCookieName: string;\n}\n\nexport function launchDarklyConfigFactory(service: LazyClientConfigService) {\n return service.get(LaunchDarklyConfig);\n}\n","function e(e) {\n function t(e, t) {\n Error.captureStackTrace && Error.captureStackTrace(this, this.constructor), this.message = e, this.code = t;\n }\n return t.prototype = new Error(), t.prototype.name = e, t.prototype.constructor = t, t;\n}\nconst t = e(\"LaunchDarklyUnexpectedResponseError\"),\n n = e(\"LaunchDarklyInvalidEnvironmentIdError\"),\n r = e(\"LaunchDarklyInvalidUserError\"),\n o = e(\"LaunchDarklyInvalidEventKeyError\"),\n i = e(\"LaunchDarklyInvalidArgumentError\"),\n a = e(\"LaunchDarklyFlagFetchError\");\nfor (var s = {\n LDUnexpectedResponseError: t,\n LDInvalidEnvironmentIdError: n,\n LDInvalidUserError: r,\n LDInvalidEventKeyError: o,\n LDInvalidArgumentError: i,\n LDInvalidDataError: e(\"LaunchDarklyInvalidDataError\"),\n LDFlagFetchError: a,\n LDTimeoutError: e(\"LaunchDarklyTimeoutError\"),\n isHttpErrorRecoverable: function (e) {\n return !(e >= 400 && e < 500) || 400 === e || 408 === e || 429 === e;\n }\n }, c = function (e) {\n var t = m(e),\n n = t[0],\n r = t[1];\n return 3 * (n + r) / 4 - r;\n }, u = function (e) {\n var t,\n n,\n r = m(e),\n o = r[0],\n i = r[1],\n a = new g(function (e, t, n) {\n return 3 * (t + n) / 4 - n;\n }(0, o, i)),\n s = 0,\n c = i > 0 ? o - 4 : o;\n for (n = 0; n < c; n += 4) t = f[e.charCodeAt(n)] << 18 | f[e.charCodeAt(n + 1)] << 12 | f[e.charCodeAt(n + 2)] << 6 | f[e.charCodeAt(n + 3)], a[s++] = t >> 16 & 255, a[s++] = t >> 8 & 255, a[s++] = 255 & t;\n 2 === i && (t = f[e.charCodeAt(n)] << 2 | f[e.charCodeAt(n + 1)] >> 4, a[s++] = 255 & t);\n 1 === i && (t = f[e.charCodeAt(n)] << 10 | f[e.charCodeAt(n + 1)] << 4 | f[e.charCodeAt(n + 2)] >> 2, a[s++] = t >> 8 & 255, a[s++] = 255 & t);\n return a;\n }, l = function (e) {\n for (var t, n = e.length, r = n % 3, o = [], i = 16383, a = 0, s = n - r; a < s; a += i) o.push(h(e, a, a + i > s ? s : a + i));\n 1 === r ? (t = e[n - 1], o.push(d[t >> 2] + d[t << 4 & 63] + \"==\")) : 2 === r && (t = (e[n - 2] << 8) + e[n - 1], o.push(d[t >> 10] + d[t >> 4 & 63] + d[t << 2 & 63] + \"=\"));\n return o.join(\"\");\n }, d = [], f = [], g = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, v = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", p = 0; p < 64; ++p) d[p] = v[p], f[v.charCodeAt(p)] = p;\nfunction m(e) {\n var t = e.length;\n if (t % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var n = e.indexOf(\"=\");\n return -1 === n && (n = t), [n, n === t ? 0 : 4 - n % 4];\n}\nfunction h(e, t, n) {\n for (var r, o, i = [], a = t; a < n; a += 3) r = (e[a] << 16 & 16711680) + (e[a + 1] << 8 & 65280) + (255 & e[a + 2]), i.push(d[(o = r) >> 18 & 63] + d[o >> 12 & 63] + d[o >> 6 & 63] + d[63 & o]);\n return i.join(\"\");\n}\nf[\"-\".charCodeAt(0)] = 62, f[\"_\".charCodeAt(0)] = 63;\nvar y = {\n byteLength: c,\n toByteArray: u,\n fromByteArray: l\n },\n w = Array.isArray,\n b = Object.keys,\n k = Object.prototype.hasOwnProperty,\n E = function e(t, n) {\n if (t === n) return !0;\n if (t && n && \"object\" == typeof t && \"object\" == typeof n) {\n var r,\n o,\n i,\n a = w(t),\n s = w(n);\n if (a && s) {\n if ((o = t.length) != n.length) return !1;\n for (r = o; 0 != r--;) if (!e(t[r], n[r])) return !1;\n return !0;\n }\n if (a != s) return !1;\n var c = t instanceof Date,\n u = n instanceof Date;\n if (c != u) return !1;\n if (c && u) return t.getTime() == n.getTime();\n var l = t instanceof RegExp,\n d = n instanceof RegExp;\n if (l != d) return !1;\n if (l && d) return t.toString() == n.toString();\n var f = b(t);\n if ((o = f.length) !== b(n).length) return !1;\n for (r = o; 0 != r--;) if (!k.call(n, f[r])) return !1;\n for (r = o; 0 != r--;) if (!e(t[i = f[r]], n[i])) return !1;\n return !0;\n }\n return t != t && n != n;\n };\nconst D = [\"key\", \"ip\", \"country\", \"email\", \"firstName\", \"lastName\", \"avatar\", \"name\"];\nfunction x(e) {\n const t = unescape(encodeURIComponent(e));\n return y.fromByteArray(function (e) {\n const t = [];\n for (let n = 0; n < e.length; n++) t.push(e.charCodeAt(n));\n return t;\n }(t));\n}\nfunction C(e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n}\nvar P,\n S = {\n appendUrlPath: function (e, t) {\n return (e.endsWith(\"/\") ? e.substring(0, e.length - 1) : e) + (t.startsWith(\"/\") ? \"\" : \"/\") + t;\n },\n base64URLEncode: function (e) {\n return x(e).replace(/=/g, \"\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n },\n btoa: x,\n clone: function (e) {\n return JSON.parse(JSON.stringify(e));\n },\n deepEquals: function (e, t) {\n return E(e, t);\n },\n extend: function (...e) {\n return e.reduce((e, t) => ({\n ...e,\n ...t\n }), {});\n },\n getLDUserAgentString: function (e) {\n const t = e.version || \"?\";\n return e.userAgent + \"/\" + t;\n },\n objectHasOwnProperty: C,\n onNextTick: function (e) {\n setTimeout(e, 0);\n },\n sanitizeContext: function (e) {\n if (!e) return e;\n let t;\n return null !== e.kind && void 0 !== e.kind || D.forEach(n => {\n const r = e[n];\n void 0 !== r && \"string\" != typeof r && (t = t || {\n ...e\n }, t[n] = String(r));\n }), t || e;\n },\n transformValuesToVersionedValues: function (e) {\n const t = {};\n for (const n in e) C(e, n) && (t[n] = {\n value: e[n],\n version: 0\n });\n return t;\n },\n transformVersionedValuesToValues: function (e) {\n const t = {};\n for (const n in e) C(e, n) && (t[n] = e[n].value);\n return t;\n },\n wrapPromiseCallback: function (e, t) {\n const n = e.then(e => (t && setTimeout(() => {\n t(null, e);\n }, 0), e), e => {\n if (!t) return Promise.reject(e);\n setTimeout(() => {\n t(e, null);\n }, 0);\n });\n return t ? void 0 : n;\n }\n },\n I = new Uint8Array(16);\nfunction O() {\n if (!P && !(P = \"undefined\" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || \"undefined\" != typeof msCrypto && \"function\" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto))) throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");\n return P(I);\n}\nvar T = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nfunction L(e) {\n return \"string\" == typeof e && T.test(e);\n}\nfor (var U, R, A = [], j = 0; j < 256; ++j) A.push((j + 256).toString(16).substr(1));\nfunction F(e) {\n var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0,\n n = (A[e[t + 0]] + A[e[t + 1]] + A[e[t + 2]] + A[e[t + 3]] + \"-\" + A[e[t + 4]] + A[e[t + 5]] + \"-\" + A[e[t + 6]] + A[e[t + 7]] + \"-\" + A[e[t + 8]] + A[e[t + 9]] + \"-\" + A[e[t + 10]] + A[e[t + 11]] + A[e[t + 12]] + A[e[t + 13]] + A[e[t + 14]] + A[e[t + 15]]).toLowerCase();\n if (!L(n)) throw TypeError(\"Stringified UUID is invalid\");\n return n;\n}\nvar N = 0,\n $ = 0;\nfunction V(e) {\n if (!L(e)) throw TypeError(\"Invalid UUID\");\n var t,\n n = new Uint8Array(16);\n return n[0] = (t = parseInt(e.slice(0, 8), 16)) >>> 24, n[1] = t >>> 16 & 255, n[2] = t >>> 8 & 255, n[3] = 255 & t, n[4] = (t = parseInt(e.slice(9, 13), 16)) >>> 8, n[5] = 255 & t, n[6] = (t = parseInt(e.slice(14, 18), 16)) >>> 8, n[7] = 255 & t, n[8] = (t = parseInt(e.slice(19, 23), 16)) >>> 8, n[9] = 255 & t, n[10] = (t = parseInt(e.slice(24, 36), 16)) / 1099511627776 & 255, n[11] = t / 4294967296 & 255, n[12] = t >>> 24 & 255, n[13] = t >>> 16 & 255, n[14] = t >>> 8 & 255, n[15] = 255 & t, n;\n}\nfunction M(e, t, n) {\n function r(e, r, o, i) {\n if (\"string\" == typeof e && (e = function (e) {\n e = unescape(encodeURIComponent(e));\n for (var t = [], n = 0; n < e.length; ++n) t.push(e.charCodeAt(n));\n return t;\n }(e)), \"string\" == typeof r && (r = V(r)), 16 !== r.length) throw TypeError(\"Namespace must be array-like (16 iterable integer values, 0-255)\");\n var a = new Uint8Array(16 + e.length);\n if (a.set(r), a.set(e, r.length), (a = n(a))[6] = 15 & a[6] | t, a[8] = 63 & a[8] | 128, o) {\n i = i || 0;\n for (var s = 0; s < 16; ++s) o[i + s] = a[s];\n return o;\n }\n return F(a);\n }\n try {\n r.name = e;\n } catch (e) {}\n return r.DNS = \"6ba7b810-9dad-11d1-80b4-00c04fd430c8\", r.URL = \"6ba7b811-9dad-11d1-80b4-00c04fd430c8\", r;\n}\nfunction q(e) {\n return 14 + (e + 64 >>> 9 << 4) + 1;\n}\nfunction H(e, t) {\n var n = (65535 & e) + (65535 & t);\n return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n;\n}\nfunction z(e, t, n, r, o, i) {\n return H((a = H(H(t, e), H(r, i))) << (s = o) | a >>> 32 - s, n);\n var a, s;\n}\nfunction K(e, t, n, r, o, i, a) {\n return z(t & n | ~t & r, e, t, o, i, a);\n}\nfunction _(e, t, n, r, o, i, a) {\n return z(t & r | n & ~r, e, t, o, i, a);\n}\nfunction J(e, t, n, r, o, i, a) {\n return z(t ^ n ^ r, e, t, o, i, a);\n}\nfunction B(e, t, n, r, o, i, a) {\n return z(n ^ (t | ~r), e, t, o, i, a);\n}\nvar G = M(\"v3\", 48, function (e) {\n if (\"string\" == typeof e) {\n var t = unescape(encodeURIComponent(e));\n e = new Uint8Array(t.length);\n for (var n = 0; n < t.length; ++n) e[n] = t.charCodeAt(n);\n }\n return function (e) {\n for (var t = [], n = 32 * e.length, r = \"0123456789abcdef\", o = 0; o < n; o += 8) {\n var i = e[o >> 5] >>> o % 32 & 255,\n a = parseInt(r.charAt(i >>> 4 & 15) + r.charAt(15 & i), 16);\n t.push(a);\n }\n return t;\n }(function (e, t) {\n e[t >> 5] |= 128 << t % 32, e[q(t) - 1] = t;\n for (var n = 1732584193, r = -271733879, o = -1732584194, i = 271733878, a = 0; a < e.length; a += 16) {\n var s = n,\n c = r,\n u = o,\n l = i;\n n = K(n, r, o, i, e[a], 7, -680876936), i = K(i, n, r, o, e[a + 1], 12, -389564586), o = K(o, i, n, r, e[a + 2], 17, 606105819), r = K(r, o, i, n, e[a + 3], 22, -1044525330), n = K(n, r, o, i, e[a + 4], 7, -176418897), i = K(i, n, r, o, e[a + 5], 12, 1200080426), o = K(o, i, n, r, e[a + 6], 17, -1473231341), r = K(r, o, i, n, e[a + 7], 22, -45705983), n = K(n, r, o, i, e[a + 8], 7, 1770035416), i = K(i, n, r, o, e[a + 9], 12, -1958414417), o = K(o, i, n, r, e[a + 10], 17, -42063), r = K(r, o, i, n, e[a + 11], 22, -1990404162), n = K(n, r, o, i, e[a + 12], 7, 1804603682), i = K(i, n, r, o, e[a + 13], 12, -40341101), o = K(o, i, n, r, e[a + 14], 17, -1502002290), n = _(n, r = K(r, o, i, n, e[a + 15], 22, 1236535329), o, i, e[a + 1], 5, -165796510), i = _(i, n, r, o, e[a + 6], 9, -1069501632), o = _(o, i, n, r, e[a + 11], 14, 643717713), r = _(r, o, i, n, e[a], 20, -373897302), n = _(n, r, o, i, e[a + 5], 5, -701558691), i = _(i, n, r, o, e[a + 10], 9, 38016083), o = _(o, i, n, r, e[a + 15], 14, -660478335), r = _(r, o, i, n, e[a + 4], 20, -405537848), n = _(n, r, o, i, e[a + 9], 5, 568446438), i = _(i, n, r, o, e[a + 14], 9, -1019803690), o = _(o, i, n, r, e[a + 3], 14, -187363961), r = _(r, o, i, n, e[a + 8], 20, 1163531501), n = _(n, r, o, i, e[a + 13], 5, -1444681467), i = _(i, n, r, o, e[a + 2], 9, -51403784), o = _(o, i, n, r, e[a + 7], 14, 1735328473), n = J(n, r = _(r, o, i, n, e[a + 12], 20, -1926607734), o, i, e[a + 5], 4, -378558), i = J(i, n, r, o, e[a + 8], 11, -2022574463), o = J(o, i, n, r, e[a + 11], 16, 1839030562), r = J(r, o, i, n, e[a + 14], 23, -35309556), n = J(n, r, o, i, e[a + 1], 4, -1530992060), i = J(i, n, r, o, e[a + 4], 11, 1272893353), o = J(o, i, n, r, e[a + 7], 16, -155497632), r = J(r, o, i, n, e[a + 10], 23, -1094730640), n = J(n, r, o, i, e[a + 13], 4, 681279174), i = J(i, n, r, o, e[a], 11, -358537222), o = J(o, i, n, r, e[a + 3], 16, -722521979), r = J(r, o, i, n, e[a + 6], 23, 76029189), n = J(n, r, o, i, e[a + 9], 4, -640364487), i = J(i, n, r, o, e[a + 12], 11, -421815835), o = J(o, i, n, r, e[a + 15], 16, 530742520), n = B(n, r = J(r, o, i, n, e[a + 2], 23, -995338651), o, i, e[a], 6, -198630844), i = B(i, n, r, o, e[a + 7], 10, 1126891415), o = B(o, i, n, r, e[a + 14], 15, -1416354905), r = B(r, o, i, n, e[a + 5], 21, -57434055), n = B(n, r, o, i, e[a + 12], 6, 1700485571), i = B(i, n, r, o, e[a + 3], 10, -1894986606), o = B(o, i, n, r, e[a + 10], 15, -1051523), r = B(r, o, i, n, e[a + 1], 21, -2054922799), n = B(n, r, o, i, e[a + 8], 6, 1873313359), i = B(i, n, r, o, e[a + 15], 10, -30611744), o = B(o, i, n, r, e[a + 6], 15, -1560198380), r = B(r, o, i, n, e[a + 13], 21, 1309151649), n = B(n, r, o, i, e[a + 4], 6, -145523070), i = B(i, n, r, o, e[a + 11], 10, -1120210379), o = B(o, i, n, r, e[a + 2], 15, 718787259), r = B(r, o, i, n, e[a + 9], 21, -343485551), n = H(n, s), r = H(r, c), o = H(o, u), i = H(i, l);\n }\n return [n, r, o, i];\n }(function (e) {\n if (0 === e.length) return [];\n for (var t = 8 * e.length, n = new Uint32Array(q(t)), r = 0; r < t; r += 8) n[r >> 5] |= (255 & e[r / 8]) << r % 32;\n return n;\n }(e), 8 * e.length));\n }),\n W = G;\nfunction X(e, t, n, r) {\n switch (e) {\n case 0:\n return t & n ^ ~t & r;\n case 1:\n case 3:\n return t ^ n ^ r;\n case 2:\n return t & n ^ t & r ^ n & r;\n }\n}\nfunction Q(e, t) {\n return e << t | e >>> 32 - t;\n}\nvar Y = M(\"v5\", 80, function (e) {\n var t = [1518500249, 1859775393, 2400959708, 3395469782],\n n = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];\n if (\"string\" == typeof e) {\n var r = unescape(encodeURIComponent(e));\n e = [];\n for (var o = 0; o < r.length; ++o) e.push(r.charCodeAt(o));\n } else Array.isArray(e) || (e = Array.prototype.slice.call(e));\n e.push(128);\n for (var i = e.length / 4 + 2, a = Math.ceil(i / 16), s = new Array(a), c = 0; c < a; ++c) {\n for (var u = new Uint32Array(16), l = 0; l < 16; ++l) u[l] = e[64 * c + 4 * l] << 24 | e[64 * c + 4 * l + 1] << 16 | e[64 * c + 4 * l + 2] << 8 | e[64 * c + 4 * l + 3];\n s[c] = u;\n }\n s[a - 1][14] = 8 * (e.length - 1) / Math.pow(2, 32), s[a - 1][14] = Math.floor(s[a - 1][14]), s[a - 1][15] = 8 * (e.length - 1) & 4294967295;\n for (var d = 0; d < a; ++d) {\n for (var f = new Uint32Array(80), g = 0; g < 16; ++g) f[g] = s[d][g];\n for (var v = 16; v < 80; ++v) f[v] = Q(f[v - 3] ^ f[v - 8] ^ f[v - 14] ^ f[v - 16], 1);\n for (var p = n[0], m = n[1], h = n[2], y = n[3], w = n[4], b = 0; b < 80; ++b) {\n var k = Math.floor(b / 20),\n E = Q(p, 5) + X(k, m, h, y) + w + t[k] + f[b] >>> 0;\n w = y, y = h, h = Q(m, 30) >>> 0, m = p, p = E;\n }\n n[0] = n[0] + p >>> 0, n[1] = n[1] + m >>> 0, n[2] = n[2] + h >>> 0, n[3] = n[3] + y >>> 0, n[4] = n[4] + w >>> 0;\n }\n return [n[0] >> 24 & 255, n[0] >> 16 & 255, n[0] >> 8 & 255, 255 & n[0], n[1] >> 24 & 255, n[1] >> 16 & 255, n[1] >> 8 & 255, 255 & n[1], n[2] >> 24 & 255, n[2] >> 16 & 255, n[2] >> 8 & 255, 255 & n[2], n[3] >> 24 & 255, n[3] >> 16 & 255, n[3] >> 8 & 255, 255 & n[3], n[4] >> 24 & 255, n[4] >> 16 & 255, n[4] >> 8 & 255, 255 & n[4]];\n }),\n Z = Y;\nvar ee = Object.freeze({\n __proto__: null,\n v1: function (e, t, n) {\n var r = t && n || 0,\n o = t || new Array(16),\n i = (e = e || {}).node || U,\n a = void 0 !== e.clockseq ? e.clockseq : R;\n if (null == i || null == a) {\n var s = e.random || (e.rng || O)();\n null == i && (i = U = [1 | s[0], s[1], s[2], s[3], s[4], s[5]]), null == a && (a = R = 16383 & (s[6] << 8 | s[7]));\n }\n var c = void 0 !== e.msecs ? e.msecs : Date.now(),\n u = void 0 !== e.nsecs ? e.nsecs : $ + 1,\n l = c - N + (u - $) / 1e4;\n if (l < 0 && void 0 === e.clockseq && (a = a + 1 & 16383), (l < 0 || c > N) && void 0 === e.nsecs && (u = 0), u >= 1e4) throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n N = c, $ = u, R = a;\n var d = (1e4 * (268435455 & (c += 122192928e5)) + u) % 4294967296;\n o[r++] = d >>> 24 & 255, o[r++] = d >>> 16 & 255, o[r++] = d >>> 8 & 255, o[r++] = 255 & d;\n var f = c / 4294967296 * 1e4 & 268435455;\n o[r++] = f >>> 8 & 255, o[r++] = 255 & f, o[r++] = f >>> 24 & 15 | 16, o[r++] = f >>> 16 & 255, o[r++] = a >>> 8 | 128, o[r++] = 255 & a;\n for (var g = 0; g < 6; ++g) o[r + g] = i[g];\n return t || F(o);\n },\n v3: W,\n v4: function (e, t, n) {\n var r = (e = e || {}).random || (e.rng || O)();\n if (r[6] = 15 & r[6] | 64, r[8] = 63 & r[8] | 128, t) {\n n = n || 0;\n for (var o = 0; o < 16; ++o) t[n + o] = r[o];\n return t;\n }\n return F(r);\n },\n v5: Z,\n NIL: \"00000000-0000-0000-0000-000000000000\",\n version: function (e) {\n if (!L(e)) throw TypeError(\"Invalid UUID\");\n return parseInt(e.substr(14, 1), 16);\n },\n validate: L,\n stringify: F,\n parse: V\n});\nconst te = [\"debug\", \"info\", \"warn\", \"error\", \"none\"];\nvar ne = {\n commonBasicLogger: function (e, t) {\n if (e && e.destination && \"function\" != typeof e.destination) throw new Error(\"destination for basicLogger was set to a non-function\");\n function n(e) {\n return function (t) {\n console && console[e] && console[e].call(console, t);\n };\n }\n const r = e && e.destination ? [e.destination, e.destination, e.destination, e.destination] : [n(\"log\"), n(\"info\"), n(\"warn\"), n(\"error\")],\n o = !(!e || !e.destination),\n i = e && void 0 !== e.prefix && null !== e.prefix ? e.prefix : \"[LaunchDarkly] \";\n let a = 1;\n if (e && e.level) for (let t = 0; t < te.length; t++) te[t] === e.level && (a = t);\n function s(e, n, a) {\n if (a.length < 1) return;\n let s;\n const c = o ? n + \": \" + i : i;\n if (1 !== a.length && t) {\n const e = [...a];\n e[0] = c + e[0], s = t(...e);\n } else s = c + a[0];\n try {\n r[e](s);\n } catch (e) {\n console && console.log && console.log(\"[LaunchDarkly] Configured logger's \" + n + \" method threw an exception: \" + e);\n }\n }\n const c = {};\n for (let e = 0; e < te.length; e++) {\n const t = te[e];\n if (\"none\" !== t) if (e < a) c[t] = () => {};else {\n const n = e;\n c[t] = function () {\n s(n, t, arguments);\n };\n }\n }\n return c;\n },\n validateLogger: function (e) {\n te.forEach(t => {\n if (\"none\" !== t && (!e[t] || \"function\" != typeof e[t])) throw new Error(\"Provided logger instance must support logger.\" + t + \"(...) method\");\n });\n }\n};\nfunction re(e) {\n return e && e.message ? e.message : \"string\" == typeof e || e instanceof String ? e : JSON.stringify(e);\n}\nconst oe = \" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initialize-the-client for instructions on SDK initialization.\";\nvar ie = {\n bootstrapInvalid: function () {\n return \"LaunchDarkly bootstrap data is not available because the back end could not read the flags.\";\n },\n bootstrapOldFormat: function () {\n return \"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly.\" + oe;\n },\n clientInitialized: function () {\n return \"LaunchDarkly client initialized\";\n },\n clientNotReady: function () {\n return \"LaunchDarkly client is not ready\";\n },\n debugEnqueueingEvent: function (e) {\n return 'enqueueing \"' + e + '\" event';\n },\n debugPostingDiagnosticEvent: function (e) {\n return \"sending diagnostic event (\" + e.kind + \")\";\n },\n debugPostingEvents: function (e) {\n return \"sending \" + e + \" events\";\n },\n debugStreamDelete: function (e) {\n return 'received streaming deletion for flag \"' + e + '\"';\n },\n debugStreamDeleteIgnored: function (e) {\n return 'received streaming deletion for flag \"' + e + '\" but ignored due to version check';\n },\n debugStreamPatch: function (e) {\n return 'received streaming update for flag \"' + e + '\"';\n },\n debugStreamPatchIgnored: function (e) {\n return 'received streaming update for flag \"' + e + '\" but ignored due to version check';\n },\n debugStreamPing: function () {\n return \"received ping message from stream\";\n },\n debugPolling: function (e) {\n return \"polling for feature flags at \" + e;\n },\n debugStreamPut: function () {\n return \"received streaming update for all flags\";\n },\n deprecated: function (e, t) {\n return t ? '\"' + e + '\" is deprecated, please use \"' + t + '\"' : '\"' + e + '\" is deprecated';\n },\n environmentNotFound: function () {\n return \"Environment not found. Double check that you specified a valid environment/client-side ID.\" + oe;\n },\n environmentNotSpecified: function () {\n return \"No environment/client-side ID was specified.\" + oe;\n },\n errorFetchingFlags: function (e) {\n return \"Error fetching flag settings: \" + re(e);\n },\n eventCapacityExceeded: function () {\n return \"Exceeded event queue capacity. Increase capacity to avoid dropping events.\";\n },\n eventWithoutContext: function () {\n return \"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript\";\n },\n httpErrorMessage: function (e, t, n) {\n return \"Received error \" + e + (401 === e ? \" (invalid SDK key)\" : \"\") + \" for \" + t + \" - \" + (s.isHttpErrorRecoverable(e) ? n : \"giving up permanently\");\n },\n httpUnavailable: function () {\n return \"Cannot make HTTP requests in this environment.\" + oe;\n },\n identifyDisabled: function () {\n return \"identify() has no effect here; it must be called on the main client instance\";\n },\n inspectorMethodError: (e, t) => `an inspector: \"${t}\" of type: \"${e}\" generated an exception`,\n invalidContentType: function (e) {\n return 'Expected application/json content type but got \"' + e + '\"';\n },\n invalidData: function () {\n return \"Invalid data received from LaunchDarkly; connection may have been interrupted\";\n },\n invalidInspector: (e, t) => `an inspector: \"${t}\" of an invalid type (${e}) was configured`,\n invalidKey: function () {\n return \"Event key must be a string\";\n },\n invalidMetricValue: e => `The track function was called with a non-numeric \"metricValue\" (${e}), only numeric metric values are supported.`,\n invalidContext: function () {\n return \"Invalid context specified.\" + oe;\n },\n invalidTagValue: e => `Config option \"${e}\" must only contain letters, numbers, ., _ or -.`,\n localStorageUnavailable: function (e) {\n return \"local storage is unavailable: \" + re(e);\n },\n networkError: e => \"network error\" + (e ? \" (\" + e + \")\" : \"\"),\n optionBelowMinimum: (e, t, n) => 'Config option \"' + e + '\" was set to ' + t + \", changing to minimum value of \" + n,\n streamClosing: function () {\n return \"Closing stream connection\";\n },\n streamConnecting: function (e) {\n return \"Opening stream connection to \" + e;\n },\n streamError: function (e, t) {\n return \"Error on stream connection: \" + re(e) + \", will continue retrying after \" + t + \" milliseconds.\";\n },\n tagValueTooLong: e => `Value of \"${e}\" was longer than 64 characters and was discarded.`,\n unknownCustomEventKey: function (e) {\n return 'Custom event \"' + e + '\" does not exist';\n },\n unknownOption: e => 'Ignoring unknown config option \"' + e + '\"',\n contextNotSpecified: function () {\n return \"No context specified.\" + oe;\n },\n unrecoverableStreamError: e => `Error on stream connection ${re(e)}, giving up permanently`,\n wrongOptionType: (e, t, n) => 'Config option \"' + e + '\" should be of type ' + t + \", got \" + n + \", using default value\",\n wrongOptionTypeBoolean: (e, t) => 'Config option \"' + e + '\" should be a boolean, got ' + t + \", converting to boolean\"\n};\nconst {\n validateLogger: ae\n } = ne,\n se = {\n baseUrl: {\n default: \"https://app.launchdarkly.com\"\n },\n streamUrl: {\n default: \"https://clientstream.launchdarkly.com\"\n },\n eventsUrl: {\n default: \"https://events.launchdarkly.com\"\n },\n sendEvents: {\n default: !0\n },\n streaming: {\n type: \"boolean\"\n },\n sendLDHeaders: {\n default: !0\n },\n requestHeaderTransform: {\n type: \"function\"\n },\n sendEventsOnlyForVariation: {\n default: !1\n },\n useReport: {\n default: !1\n },\n evaluationReasons: {\n default: !1\n },\n eventCapacity: {\n default: 100,\n minimum: 1\n },\n flushInterval: {\n default: 2e3,\n minimum: 2e3\n },\n samplingInterval: {\n default: 0,\n minimum: 0\n },\n streamReconnectDelay: {\n default: 1e3,\n minimum: 0\n },\n allAttributesPrivate: {\n default: !1\n },\n privateAttributes: {\n default: []\n },\n bootstrap: {\n type: \"string|object\"\n },\n diagnosticRecordingInterval: {\n default: 9e5,\n minimum: 2e3\n },\n diagnosticOptOut: {\n default: !1\n },\n wrapperName: {\n type: \"string\"\n },\n wrapperVersion: {\n type: \"string\"\n },\n stateProvider: {\n type: \"object\"\n },\n application: {\n validator: function (e, t, n) {\n const r = {};\n t.id && (r.id = le(`${e}.id`, t.id, n));\n t.version && (r.version = le(`${e}.version`, t.version, n));\n return r;\n }\n },\n inspectors: {\n default: []\n }\n },\n ce = /^(\\w|\\.|-)+$/;\nfunction ue(e) {\n return e && e.replace(/\\/+$/, \"\");\n}\nfunction le(e, t, n) {\n if (\"string\" == typeof t && t.match(ce)) {\n if (!(t.length > 64)) return t;\n n.warn(ie.tagValueTooLong(e));\n } else n.warn(ie.invalidTagValue(e));\n}\nvar de = {\n baseOptionDefs: se,\n validate: function (e, t, n, r) {\n const o = S.extend({\n logger: {\n default: r\n }\n }, se, n),\n i = {};\n function a(e) {\n S.onNextTick(() => {\n t && t.maybeReportError(new s.LDInvalidArgumentError(e));\n });\n }\n let c = S.extend({}, e || {});\n return function (e) {\n const t = e;\n Object.keys(i).forEach(e => {\n if (void 0 !== t[e]) {\n const n = i[e];\n r && r.warn(ie.deprecated(e, n)), n && (void 0 === t[n] && (t[n] = t[e]), delete t[e]);\n }\n });\n }(c), c = function (e) {\n const t = S.extend({}, e);\n return Object.keys(o).forEach(e => {\n void 0 !== t[e] && null !== t[e] || (t[e] = o[e] && o[e].default);\n }), t;\n }(c), c = function (e) {\n const t = S.extend({}, e),\n n = e => {\n if (null === e) return \"any\";\n if (void 0 === e) return;\n if (Array.isArray(e)) return \"array\";\n const t = typeof e;\n return \"boolean\" === t || \"string\" === t || \"number\" === t || \"function\" === t ? t : \"object\";\n };\n return Object.keys(e).forEach(i => {\n const s = e[i];\n if (null != s) {\n const c = o[i];\n if (void 0 === c) a(ie.unknownOption(i));else {\n const o = c.type || n(c.default),\n u = c.validator;\n if (u) {\n const n = u(i, e[i], r);\n void 0 !== n ? t[i] = n : delete t[i];\n } else if (\"any\" !== o) {\n const e = o.split(\"|\"),\n r = n(s);\n e.indexOf(r) < 0 ? \"boolean\" === o ? (t[i] = !!s, a(ie.wrongOptionTypeBoolean(i, r))) : (a(ie.wrongOptionType(i, o, r)), t[i] = c.default) : \"number\" === r && void 0 !== c.minimum && s < c.minimum && (a(ie.optionBelowMinimum(i, s, c.minimum)), t[i] = c.minimum);\n }\n }\n }\n }), t.baseUrl = ue(t.baseUrl), t.streamUrl = ue(t.streamUrl), t.eventsUrl = ue(t.eventsUrl), t;\n }(c), ae(c.logger), c;\n },\n getTags: function (e) {\n const t = {};\n return e && (e.application && void 0 !== e.application.id && null !== e.application.id && (t[\"application-id\"] = [e.application.id]), e.application && void 0 !== e.application.version && null !== e.application.id && (t[\"application-version\"] = [e.application.version])), t;\n }\n};\nconst {\n getLDUserAgentString: fe\n} = S;\nvar ge = {\n getLDHeaders: function (e, t) {\n if (t && !t.sendLDHeaders) return {};\n const n = {};\n n[e.userAgentHeaderName || \"User-Agent\"] = fe(e), t && t.wrapperName && (n[\"X-LaunchDarkly-Wrapper\"] = t.wrapperVersion ? t.wrapperName + \"/\" + t.wrapperVersion : t.wrapperName);\n const r = de.getTags(t),\n o = Object.keys(r);\n return o.length && (n[\"x-launchdarkly-tags\"] = o.sort().map(e => Array.isArray(r[e]) ? r[e].sort().map(t => `${e}/${t}`) : [`${e}/${r[e]}`]).reduce((e, t) => e.concat(t), []).join(\" \")), n;\n },\n transformHeaders: function (e, t) {\n return t && t.requestHeaderTransform ? t.requestHeaderTransform({\n ...e\n }) : e;\n }\n};\nconst {\n v1: ve\n } = ee,\n {\n getLDHeaders: pe,\n transformHeaders: me\n } = ge;\nvar he = function (e, t, n) {\n const r = S.extend({\n \"Content-Type\": \"application/json\"\n }, pe(e, n)),\n o = {};\n return o.sendEvents = (t, o, i) => {\n if (!e.httpRequest) return Promise.resolve();\n const a = JSON.stringify(t),\n c = i ? null : ve();\n return function t(u) {\n const l = i ? r : S.extend({}, r, {\n \"X-LaunchDarkly-Event-Schema\": \"4\",\n \"X-LaunchDarkly-Payload-ID\": c\n });\n return e.httpRequest(\"POST\", o, me(l, n), a).promise.then(e => {\n if (e) return e.status >= 400 && s.isHttpErrorRecoverable(e.status) && u ? t(!1) : function (e) {\n const t = {\n status: e.status\n },\n n = e.header(\"date\");\n if (n) {\n const e = Date.parse(n);\n e && (t.serverTime = e);\n }\n return t;\n }(e);\n }).catch(() => u ? t(!1) : Promise.reject());\n }(!0).catch(() => {});\n }, o;\n};\nconst {\n commonBasicLogger: ye\n} = ne;\nfunction we(e) {\n return \"string\" == typeof e && \"kind\" !== e && e.match(/^(\\w|\\.|-)+$/);\n}\nfunction be(e) {\n return e.includes(\"%\") || e.includes(\":\") ? e.replace(/%/g, \"%25\").replace(/:/g, \"%3A\") : e;\n}\nvar ke = {\n checkContext: function (e, t) {\n if (e) {\n if (t && (void 0 === e.kind || null === e.kind)) return void 0 !== e.key && null !== e.key;\n const n = e.key,\n r = void 0 === e.kind ? \"user\" : e.kind,\n o = we(r),\n i = \"multi\" === r || null != n && \"\" !== n;\n if (\"multi\" === r) {\n const t = Object.keys(e).filter(e => \"kind\" !== e);\n return i && t.every(e => we(e)) && t.every(t => {\n const n = e[t].key;\n return null != n && \"\" !== n;\n });\n }\n return i && o;\n }\n return !1;\n },\n getContextKeys: function (e, t = ye()) {\n if (!e) return;\n const n = {},\n {\n kind: r,\n key: o\n } = e;\n switch (r) {\n case void 0:\n n.user = `${o}`;\n break;\n case \"multi\":\n Object.entries(e).filter(([e]) => \"kind\" !== e).forEach(([e, t]) => {\n t && t.key && (n[e] = t.key);\n });\n break;\n case null:\n t.warn(`null is not a valid context kind: ${e}`);\n break;\n case \"\":\n t.warn(`'' is not a valid context kind: ${e}`);\n break;\n default:\n n[r] = `${o}`;\n }\n return n;\n },\n getContextKinds: function (e) {\n return e ? null === e.kind || void 0 === e.kind ? [\"user\"] : \"multi\" !== e.kind ? [e.kind] : Object.keys(e).filter(e => \"kind\" !== e) : [];\n },\n getCanonicalKey: function (e) {\n if (e) {\n if ((void 0 === e.kind || null === e.kind || \"user\" === e.kind) && e.key) return e.key;\n if (\"multi\" !== e.kind && e.key) return `${e.kind}:${be(e.key)}`;\n if (\"multi\" === e.kind) return Object.keys(e).sort().filter(e => \"kind\" !== e).map(t => `${t}:${be(e[t].key)}`).join(\":\");\n }\n }\n};\nconst {\n getContextKinds: Ee\n} = ke;\nvar De = function () {\n const e = {};\n let t = 0,\n n = 0,\n r = {},\n o = {};\n return e.summarizeEvent = e => {\n if (\"feature\" === e.kind) {\n const i = e.key + \":\" + (null !== e.variation && void 0 !== e.variation ? e.variation : \"\") + \":\" + (null !== e.version && void 0 !== e.version ? e.version : \"\"),\n a = r[i];\n let s = o[e.key];\n s || (s = new Set(), o[e.key] = s), function (e) {\n return e.context ? Ee(e.context) : e.contextKeys ? Object.keys(e.contextKeys) : [];\n }(e).forEach(e => s.add(e)), a ? a.count = a.count + 1 : r[i] = {\n count: 1,\n key: e.key,\n version: e.version,\n variation: e.variation,\n value: e.value,\n default: e.default\n }, (0 === t || e.creationDate < t) && (t = e.creationDate), e.creationDate > n && (n = e.creationDate);\n }\n }, e.getSummary = () => {\n const e = {};\n let i = !0;\n for (const t of Object.values(r)) {\n let n = e[t.key];\n n || (n = {\n default: t.default,\n counters: [],\n contextKinds: [...o[t.key]]\n }, e[t.key] = n);\n const r = {\n value: t.value,\n count: t.count\n };\n void 0 !== t.variation && null !== t.variation && (r.variation = t.variation), void 0 !== t.version && null !== t.version ? r.version = t.version : r.unknown = !0, n.counters.push(r), i = !1;\n }\n return i ? null : {\n startDate: t,\n endDate: n,\n features: e\n };\n }, e.clearSummary = () => {\n t = 0, n = 0, r = {}, o = {};\n }, e;\n};\nfunction xe(e) {\n return e.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nfunction Ce(e) {\n return (e.startsWith(\"/\") ? e.substring(1) : e).split(\"/\").map(e => e.indexOf(\"~\") >= 0 ? e.replace(/~1/g, \"/\").replace(/~0/g, \"~\") : e);\n}\nfunction Pe(e) {\n return !e.startsWith(\"/\");\n}\nfunction Se(e, t) {\n const n = Pe(e),\n r = Pe(t);\n if (n && r) return e === t;\n if (n) {\n const n = Ce(t);\n return 1 === n.length && e === n[0];\n }\n if (r) {\n const n = Ce(e);\n return 1 === n.length && t === n[0];\n }\n return e === t;\n}\nfunction Ie(e) {\n return `/${xe(e)}`;\n}\nvar Oe = {\n cloneExcluding: function (e, t) {\n const n = [],\n r = {},\n o = [];\n for (n.push(...Object.keys(e).map(t => ({\n key: t,\n ptr: Ie(t),\n source: e,\n parent: r,\n visited: [e]\n }))); n.length;) {\n const e = n.pop();\n if (t.some(t => Se(t, e.ptr))) o.push(e.ptr);else {\n const t = e.source[e.key];\n if (null === t) e.parent[e.key] = t;else if (Array.isArray(t)) e.parent[e.key] = [...t];else if (\"object\" == typeof t) {\n if (e.visited.includes(t)) continue;\n e.parent[e.key] = {}, n.push(...Object.keys(t).map(n => {\n return {\n key: n,\n ptr: (r = e.ptr, o = xe(n), `${r}/${o}`),\n source: t,\n parent: e.parent[e.key],\n visited: [...e.visited, t]\n };\n var r, o;\n }));\n } else e.parent[e.key] = t;\n }\n }\n return {\n cloned: r,\n excluded: o.sort()\n };\n },\n compare: Se,\n literalToReference: Ie\n};\nvar Te = function (e) {\n const t = {},\n n = e.allAttributesPrivate,\n r = e.privateAttributes || [],\n o = [\"key\", \"kind\", \"_meta\", \"anonymous\"],\n i = [\"name\", \"ip\", \"firstName\", \"lastName\", \"email\", \"avatar\", \"country\"],\n a = (e, t) => {\n if (\"object\" != typeof e || null === e || Array.isArray(e)) return;\n const {\n cloned: i,\n excluded: a\n } = Oe.cloneExcluding(e, ((e, t) => (n || t && e.anonymous ? Object.keys(e) : [...r, ...(e._meta && e._meta.privateAttributes || [])]).filter(e => !o.some(t => Oe.compare(e, t))))(e, t));\n return i.key = String(i.key), a.length && (i._meta || (i._meta = {}), i._meta.redactedAttributes = a), i._meta && (delete i._meta.privateAttributes, 0 === Object.keys(i._meta).length && delete i._meta), void 0 !== i.anonymous && (i.anonymous = !!i.anonymous), i;\n };\n return t.filter = (e, t = !1) => void 0 === e.kind || null === e.kind ? a((e => {\n const t = {\n ...(e.custom || {}),\n kind: \"user\",\n key: e.key\n };\n void 0 !== e.anonymous && (t.anonymous = !!e.anonymous);\n for (const n of i) delete t[n], void 0 !== e[n] && null !== e[n] && (t[n] = String(e[n]));\n return void 0 !== e.privateAttributeNames && null !== e.privateAttributeNames && (t._meta = t._meta || {}, t._meta.privateAttributes = e.privateAttributeNames.map(e => e.startsWith(\"/\") ? Oe.literalToReference(e) : e)), t;\n })(e), t) : \"multi\" === e.kind ? ((e, t) => {\n const n = {\n kind: e.kind\n },\n r = Object.keys(e);\n for (const o of r) if (\"kind\" !== o) {\n const r = a(e[o], t);\n r && (n[o] = r);\n }\n return n;\n })(e, t) : a(e, t), t;\n};\nconst {\n getContextKeys: Le\n} = ke;\nvar Ue = function (e, t, n, r = null, o = null, i = null) {\n const a = {},\n c = i || he(e, n, t),\n u = S.appendUrlPath(t.eventsUrl, \"/events/bulk/\" + n),\n l = De(),\n d = Te(t),\n f = t.samplingInterval,\n g = t.eventCapacity,\n v = t.flushInterval,\n p = t.logger;\n let m,\n h = [],\n y = 0,\n w = !1,\n b = !1;\n function k() {\n return 0 === f || 0 === Math.floor(Math.random() * f);\n }\n function E(e) {\n const t = S.extend({}, e);\n return \"identify\" === e.kind ? t.context = d.filter(e.context) : \"feature\" === e.kind ? t.context = d.filter(e.context, !0) : (t.contextKeys = Le(e.context, p), delete t.context), \"feature\" === e.kind && (delete t.trackEvents, delete t.debugEventsUntilDate), t;\n }\n function D(e) {\n h.length < g ? (h.push(e), b = !1) : (b || (b = !0, p.warn(ie.eventCapacityExceeded())), r && r.incrementDroppedEvents());\n }\n return a.enqueue = function (e) {\n if (w) return;\n let t = !1,\n n = !1;\n var r;\n if (l.summarizeEvent(e), \"feature\" === e.kind ? k() && (t = !!e.trackEvents, n = !!(r = e).debugEventsUntilDate && r.debugEventsUntilDate > y && r.debugEventsUntilDate > new Date().getTime()) : t = k(), t && D(E(e)), n) {\n const t = S.extend({}, e, {\n kind: \"debug\"\n });\n t.context = d.filter(t.context), delete t.trackEvents, delete t.debugEventsUntilDate, D(t);\n }\n }, a.flush = function () {\n if (w) return Promise.resolve();\n const e = h,\n t = l.getSummary();\n return l.clearSummary(), t && (t.kind = \"summary\", e.push(t)), r && r.setEventsInLastBatch(e.length), 0 === e.length ? Promise.resolve() : (h = [], p.debug(ie.debugPostingEvents(e.length)), c.sendEvents(e, u).then(e => {\n e && (e.serverTime && (y = e.serverTime), s.isHttpErrorRecoverable(e.status) || (w = !0), e.status >= 400 && S.onNextTick(() => {\n o.maybeReportError(new s.LDUnexpectedResponseError(ie.httpErrorMessage(e.status, \"event posting\", \"some events were dropped\")));\n }));\n }));\n }, a.start = function () {\n const e = () => {\n a.flush(), m = setTimeout(e, v);\n };\n m = setTimeout(e, v);\n }, a.stop = function () {\n clearTimeout(m);\n }, a;\n};\nvar Re = function (e) {\n const t = {},\n n = {};\n return t.on = function (e, t, r) {\n n[e] = n[e] || [], n[e] = n[e].concat({\n handler: t,\n context: r\n });\n }, t.off = function (e, t, r) {\n if (n[e]) for (let o = 0; o < n[e].length; o++) n[e][o].handler === t && n[e][o].context === r && (n[e] = n[e].slice(0, o).concat(n[e].slice(o + 1)));\n }, t.emit = function (e) {\n if (!n[e]) return;\n const t = n[e].slice(0);\n for (let e = 0; e < t.length; e++) t[e].handler.apply(t[e].context, Array.prototype.slice.call(arguments, 1));\n }, t.getEvents = function () {\n return Object.keys(n);\n }, t.getEventListenerCount = function (e) {\n return n[e] ? n[e].length : 0;\n }, t.maybeReportError = function (t) {\n t && (n[\"error\"] ? this.emit(\"error\", t) : (e || console).error(t.message));\n }, t;\n};\nconst Ae = \"ready\",\n je = \"initialized\",\n Fe = \"failed\";\nvar Ne = function (e) {\n let t = !1,\n n = !1,\n r = null,\n o = null;\n const i = new Promise(t => {\n const n = () => {\n e.off(Ae, n), t();\n };\n e.on(Ae, n);\n }).catch(() => {});\n return {\n getInitializationPromise: () => o || (t ? Promise.resolve() : n ? Promise.reject(r) : (o = new Promise((t, n) => {\n const r = () => {\n e.off(je, r), t();\n },\n o = t => {\n e.off(Fe, o), n(t);\n };\n e.on(je, r), e.on(Fe, o);\n }), o)),\n getReadyPromise: () => i,\n signalSuccess: () => {\n t || n || (t = !0, e.emit(je), e.emit(Ae));\n },\n signalFailure: o => {\n t || n || (n = !0, r = o, e.emit(Fe, o), e.emit(Ae)), e.maybeReportError(o);\n }\n };\n};\nvar $e = function (e, t, n, r) {\n const o = {};\n function i() {\n let e = \"\";\n const o = r.getContext();\n return o && (e = n || S.btoa(JSON.stringify(o))), \"ld:\" + t + \":\" + e;\n }\n return o.loadFlags = () => e.get(i()).then(e => {\n if (null == e) return null;\n try {\n let t = JSON.parse(e);\n if (t) {\n const e = t.$schema;\n void 0 === e || e < 1 ? t = S.transformValuesToVersionedValues(t) : delete t.$schema;\n }\n return t;\n } catch (e) {\n return o.clearFlags().then(() => null);\n }\n }), o.saveFlags = t => {\n const n = S.extend({}, t, {\n $schema: 1\n });\n return e.set(i(), JSON.stringify(n));\n }, o.clearFlags = () => e.clear(i()), o;\n};\nvar Ve = function (e, t) {\n const n = {};\n let r = !1;\n const o = e => {\n r || (r = !0, t.warn(ie.localStorageUnavailable(e)));\n };\n return n.isEnabled = () => !!e, n.get = t => new Promise(n => {\n e ? e.get(t).then(n).catch(e => {\n o(e), n(void 0);\n }) : n(void 0);\n }), n.set = (t, n) => new Promise(r => {\n e ? e.set(t, n).then(() => r(!0)).catch(e => {\n o(e), r(!1);\n }) : r(!1);\n }), n.clear = t => new Promise(n => {\n e ? e.clear(t).then(() => n(!0)).catch(e => {\n o(e), n(!1);\n }) : n(!1);\n }), n;\n};\nconst {\n appendUrlPath: Me,\n base64URLEncode: qe,\n objectHasOwnProperty: He\n } = S,\n {\n getLDHeaders: ze,\n transformHeaders: Ke\n } = ge,\n {\n isHttpErrorRecoverable: _e\n } = s;\nvar Je = function (e, t, n, r) {\n const o = t.streamUrl,\n i = t.logger,\n a = {},\n s = Me(o, \"/eval/\" + n),\n c = t.useReport,\n u = t.evaluationReasons,\n l = t.streamReconnectDelay,\n d = ze(e, t);\n let f,\n g = !1,\n v = null,\n p = null,\n m = null,\n h = null,\n y = null,\n w = 0;\n function b() {\n const e = (t = function () {\n const e = l * Math.pow(2, w);\n return e > 3e4 ? 3e4 : e;\n }(), t - Math.trunc(.5 * Math.random() * t));\n var t;\n return w += 1, e;\n }\n function k(e) {\n if (e.status && \"number\" == typeof e.status && !_e(e.status)) return x(), i.error(ie.unrecoverableStreamError(e)), void (p && (clearTimeout(p), p = null));\n const t = b();\n g || (i.warn(ie.streamError(e, t)), g = !0), C(!1), x(), E(t);\n }\n function E(e) {\n p || (e ? p = setTimeout(D, e) : D());\n }\n function D() {\n let r;\n p = null;\n let a = \"\";\n const l = {\n headers: d,\n readTimeoutMillis: 3e5\n };\n if (e.eventSourceFactory) {\n null != h && (a = \"h=\" + h), c ? e.eventSourceAllowsReport ? (r = s, l.method = \"REPORT\", l.headers[\"Content-Type\"] = \"application/json\", l.body = JSON.stringify(m)) : (r = Me(o, \"/ping/\" + n), a = \"\") : r = s + \"/\" + qe(JSON.stringify(m)), l.headers = Ke(l.headers, t), u && (a = a + (a ? \"&\" : \"\") + \"withReasons=true\"), r = r + (a ? \"?\" : \"\") + a, x(), i.info(ie.streamConnecting(r)), f = new Date().getTime(), v = e.eventSourceFactory(r, l);\n for (const e in y) He(y, e) && v.addEventListener(e, y[e]);\n v.onerror = k, v.onopen = () => {\n w = 0;\n };\n }\n }\n function x() {\n v && (i.info(ie.streamClosing()), v.close(), v = null);\n }\n function C(e) {\n f && r && r.recordStreamInit(f, !e, new Date().getTime() - f), f = null;\n }\n return a.connect = function (e, t, n) {\n m = e, h = t, y = {};\n for (const e in n || {}) y[e] = function (t) {\n g = !1, C(!0), n[e] && n[e](t);\n };\n E();\n }, a.disconnect = function () {\n clearTimeout(p), p = null, x();\n }, a.isConnected = function () {\n return !!(v && e.eventSourceIsActive && e.eventSourceIsActive(v));\n }, a;\n};\nvar Be = function (e) {\n let t, n, r, o;\n const i = {\n addPromise: (i, a) => {\n t = i, n && n(), n = a, i.then(n => {\n t === i && (r(n), e && e());\n }, n => {\n t === i && (o(n), e && e());\n });\n }\n };\n return i.resultPromise = new Promise((e, t) => {\n r = e, o = t;\n }), i;\n};\nconst {\n transformHeaders: Ge,\n getLDHeaders: We\n } = ge,\n Xe = \"application/json\";\nvar Qe = function (e, t, n) {\n const r = t.baseUrl,\n o = t.useReport,\n i = t.evaluationReasons,\n a = t.logger,\n c = {},\n u = {};\n function l(n, r) {\n if (!e.httpRequest) return new Promise((e, t) => {\n t(new s.LDFlagFetchError(ie.httpUnavailable()));\n });\n const o = r ? \"REPORT\" : \"GET\",\n i = We(e, t);\n r && (i[\"Content-Type\"] = Xe);\n let a = u[n];\n a || (a = Be(() => {\n delete u[n];\n }), u[n] = a);\n const c = e.httpRequest(o, n, Ge(i, t), r),\n l = c.promise.then(e => {\n if (200 === e.status) {\n if (e.header(\"content-type\") && e.header(\"content-type\").substring(0, 16) === Xe) return JSON.parse(e.body);\n {\n const t = ie.invalidContentType(e.header(\"content-type\") || \"\");\n return Promise.reject(new s.LDFlagFetchError(t));\n }\n }\n return Promise.reject(function (e) {\n return 404 === e.status ? new s.LDInvalidEnvironmentIdError(ie.environmentNotFound()) : new s.LDFlagFetchError(ie.errorFetchingFlags(e.statusText || String(e.status)));\n }(e));\n }, e => Promise.reject(new s.LDFlagFetchError(ie.networkError(e))));\n return a.addPromise(l, () => {\n c.cancel && c.cancel();\n }), a.resultPromise;\n }\n return c.fetchJSON = function (e) {\n return l(S.appendUrlPath(r, e), null);\n }, c.fetchFlagSettings = function (e, t) {\n let s,\n c,\n u,\n d = \"\";\n return o ? (c = [r, \"/sdk/evalx/\", n, \"/context\"].join(\"\"), u = JSON.stringify(e)) : (s = S.base64URLEncode(JSON.stringify(e)), c = [r, \"/sdk/evalx/\", n, \"/contexts/\", s].join(\"\")), t && (d = \"h=\" + t), i && (d = d + (d ? \"&\" : \"\") + \"withReasons=true\"), c = c + (d ? \"?\" : \"\") + d, a.debug(ie.debugPolling(c)), l(c, u);\n }, c;\n};\nvar Ye = function (e, t) {\n const n = {};\n let r;\n return n.setContext = function (e) {\n r = S.sanitizeContext(e), r && t && t(S.clone(r));\n }, n.getContext = function () {\n return r ? S.clone(r) : null;\n }, e && n.setContext(e), n;\n};\nconst {\n v1: Ze\n } = ee,\n {\n getContextKinds: et\n } = ke;\nvar tt = function (e) {\n function t(e) {\n return null == e || \"user\" === e ? \"ld:$anonUserId\" : `ld:$contextKey:${e}`;\n }\n function n(n, r) {\n return null !== r.key && void 0 !== r.key ? (r.key = r.key.toString(), Promise.resolve(r)) : r.anonymous ? function (n) {\n return e.get(t(n));\n }(n).then(o => {\n if (o) return r.key = o, r;\n {\n const o = Ze();\n return r.key = o, function (n, r) {\n return e.set(t(r), n);\n }(o, n).then(() => r);\n }\n }) : Promise.reject(new s.LDInvalidUserError(ie.invalidContext()));\n }\n this.processContext = e => {\n if (!e) return Promise.reject(new s.LDInvalidUserError(ie.contextNotSpecified()));\n const t = S.clone(e);\n if (\"multi\" === e.kind) {\n const e = et(t);\n return Promise.all(e.map(e => n(e, t[e]))).then(() => t);\n }\n return n(e.kind, t);\n };\n};\nconst {\n v1: nt\n } = ee,\n {\n baseOptionDefs: rt\n } = de,\n {\n appendUrlPath: ot\n } = S;\nvar it = {\n DiagnosticId: function (e) {\n const t = {\n diagnosticId: nt()\n };\n return e && (t.sdkKeySuffix = e.length > 6 ? e.substring(e.length - 6) : e), t;\n },\n DiagnosticsAccumulator: function (e) {\n let t, n, r, o;\n function i(e) {\n t = e, n = 0, r = 0, o = [];\n }\n return i(e), {\n getProps: () => ({\n dataSinceDate: t,\n droppedEvents: n,\n eventsInLastBatch: r,\n streamInits: o\n }),\n setProps: e => {\n t = e.dataSinceDate, n = e.droppedEvents || 0, r = e.eventsInLastBatch || 0, o = e.streamInits || [];\n },\n incrementDroppedEvents: () => {\n n++;\n },\n setEventsInLastBatch: e => {\n r = e;\n },\n recordStreamInit: (e, t, n) => {\n const r = {\n timestamp: e,\n failed: t,\n durationMillis: n\n };\n o.push(r);\n },\n reset: i\n };\n },\n DiagnosticsManager: function (e, t, n, r, o, i, a) {\n const s = !!e.diagnosticUseCombinedEvent,\n c = \"ld:\" + o + \":$diagnostics\",\n u = ot(i.eventsUrl, \"/events/diagnostic/\" + o),\n l = i.diagnosticRecordingInterval,\n d = n;\n let f,\n g,\n v = !!i.streaming;\n const p = {};\n function m() {\n return {\n sdk: w(),\n configuration: b(),\n platform: e.diagnosticPlatformData\n };\n }\n function h(e) {\n i.logger && i.logger.debug(ie.debugPostingDiagnosticEvent(e)), r.sendEvents(e, u, !0).then(() => {}).catch(() => {});\n }\n function y() {\n h(function () {\n const e = new Date().getTime();\n let t = {\n kind: s ? \"diagnostic-combined\" : \"diagnostic\",\n id: a,\n creationDate: e,\n ...d.getProps()\n };\n return s && (t = {\n ...t,\n ...m()\n }), d.reset(e), t;\n }()), g = setTimeout(y, l), f = new Date().getTime(), s && function () {\n if (t.isEnabled()) {\n const e = {\n ...d.getProps()\n };\n t.set(c, JSON.stringify(e));\n }\n }();\n }\n function w() {\n const t = {\n ...e.diagnosticSdkData\n };\n return i.wrapperName && (t.wrapperName = i.wrapperName), i.wrapperVersion && (t.wrapperVersion = i.wrapperVersion), t;\n }\n function b() {\n return {\n customBaseURI: i.baseUrl !== rt.baseUrl.default,\n customStreamURI: i.streamUrl !== rt.streamUrl.default,\n customEventsURI: i.eventsUrl !== rt.eventsUrl.default,\n eventsCapacity: i.eventCapacity,\n eventsFlushIntervalMillis: i.flushInterval,\n reconnectTimeMillis: i.streamReconnectDelay,\n streamingDisabled: !v,\n allAttributesPrivate: !!i.allAttributesPrivate,\n diagnosticRecordingIntervalMillis: i.diagnosticRecordingInterval,\n usingSecureMode: !!i.hash,\n bootstrapMode: !!i.bootstrap,\n fetchGoalsDisabled: !i.fetchGoals,\n sendEventsOnlyForVariation: !!i.sendEventsOnlyForVariation\n };\n }\n return p.start = () => {\n s ? function (e) {\n if (!t.isEnabled()) return e(!1);\n t.get(c).then(t => {\n if (t) try {\n const e = JSON.parse(t);\n d.setProps(e), f = e.dataSinceDate;\n } catch (e) {}\n e(!0);\n }).catch(() => {\n e(!1);\n });\n }(e => {\n if (e) {\n const e = (f || 0) + l,\n t = new Date().getTime();\n t >= e ? y() : g = setTimeout(y, e - t);\n } else 0 === Math.floor(4 * Math.random()) ? y() : g = setTimeout(y, l);\n }) : (h({\n kind: \"diagnostic-init\",\n id: a,\n creationDate: d.getProps().dataSinceDate,\n ...m()\n }), g = setTimeout(y, l));\n }, p.stop = () => {\n g && clearTimeout(g);\n }, p.setStreaming = e => {\n v = e;\n }, p;\n }\n};\nvar at = function (e, t) {\n let n = !1;\n const r = {\n type: e.type,\n name: e.name,\n synchronous: e.synchronous,\n method: (...o) => {\n try {\n e.method(...o);\n } catch {\n n || (n = !0, t.warn(ie.inspectorMethodError(r.type, r.name)));\n }\n }\n };\n return r;\n};\nconst {\n onNextTick: st\n } = S,\n ct = {\n flagUsed: \"flag-used\",\n flagDetailsChanged: \"flag-details-changed\",\n flagDetailChanged: \"flag-detail-changed\",\n clientIdentityChanged: \"client-identity-changed\"\n };\nObject.freeze(ct);\nvar ut = {\n InspectorTypes: ct,\n InspectorManager: function (e, t) {\n const n = {},\n r = {\n [ct.flagUsed]: [],\n [ct.flagDetailsChanged]: [],\n [ct.flagDetailChanged]: [],\n [ct.clientIdentityChanged]: []\n },\n o = {\n [ct.flagUsed]: [],\n [ct.flagDetailsChanged]: [],\n [ct.flagDetailChanged]: [],\n [ct.clientIdentityChanged]: []\n },\n i = e && e.map(e => at(e, t));\n return i && i.forEach(e => {\n Object.prototype.hasOwnProperty.call(r, e.type) && !e.synchronous ? r[e.type].push(e) : Object.prototype.hasOwnProperty.call(o, e.type) && e.synchronous ? o[e.type].push(e) : t.warn(ie.invalidInspector(e.type, e.name));\n }), n.hasListeners = e => r[e] && r[e].length || o[e] && o[e].length, n.onFlagUsed = (e, t, n) => {\n const i = ct.flagUsed;\n o[i].length && o[i].forEach(r => r.method(e, t, n)), r[i].length && st(() => {\n r[i].forEach(r => r.method(e, t, n));\n });\n }, n.onFlags = e => {\n const t = ct.flagDetailsChanged;\n o[t].length && o[t].forEach(t => t.method(e)), r[t].length && st(() => {\n r[t].forEach(t => t.method(e));\n });\n }, n.onFlagChanged = (e, t) => {\n const n = ct.flagDetailChanged;\n o[n].length && o[n].forEach(n => n.method(e, t)), r[n].length && st(() => {\n r[n].forEach(n => n.method(e, t));\n });\n }, n.onIdentityChanged = e => {\n const t = ct.clientIdentityChanged;\n o[t].length && o[t].forEach(t => t.method(e)), r[t].length && st(() => {\n r[t].forEach(t => t.method(e));\n });\n }, n;\n }\n};\nconst {\n LDTimeoutError: lt\n} = s;\nvar dt = function (e, t) {\n return new Promise((n, r) => {\n setTimeout(() => {\n r(new lt(`${t} timed out after ${e} seconds.`));\n }, 1e3 * e);\n });\n};\nconst {\n commonBasicLogger: ft\n } = ne,\n {\n checkContext: gt,\n getContextKeys: vt\n } = ke,\n {\n InspectorTypes: pt,\n InspectorManager: mt\n } = ut,\n ht = \"change\",\n yt = \"internal-change\";\nvar wt = {\n initialize: function (e, t, n, r, o) {\n const i = function () {\n if (n && n.logger) return n.logger;\n return o && o.logger && o.logger.default || ft(\"warn\");\n }(),\n a = Re(i),\n c = Ne(a),\n u = de.validate(n, a, o, i),\n l = mt(u.inspectors, i),\n d = u.sendEvents;\n let f = e,\n g = u.hash;\n const v = Ve(r.localStorage, i),\n p = he(r, f, u),\n m = u.sendEvents && !u.diagnosticOptOut,\n h = m ? it.DiagnosticId(f) : null,\n y = m ? it.DiagnosticsAccumulator(new Date().getTime()) : null,\n w = m ? it.DiagnosticsManager(r, v, y, p, f, u, h) : null,\n b = Je(r, u, f, y),\n k = u.eventProcessor || Ue(r, u, f, y, a, p),\n E = Qe(r, u, f);\n let D,\n x,\n C,\n P = {},\n I = u.streaming,\n O = !1,\n T = !1,\n L = !0;\n const U = u.stateProvider,\n R = Ye(null, function (e) {\n (function (e) {\n if (U) return;\n e && F({\n kind: \"identify\",\n context: e,\n creationDate: new Date().getTime()\n });\n })(e), l.hasListeners(pt.clientIdentityChanged) && l.onIdentityChanged(R.getContext());\n }),\n A = new tt(v),\n j = v.isEnabled() ? $e(v, f, g, R) : null;\n function F(e) {\n f && (U && U.enqueueEvent && U.enqueueEvent(e) || (e.context ? (L = !1, !d || T || r.isDoNotTrack() || (i.debug(ie.debugEnqueueingEvent(e.kind)), k.enqueue(e))) : L && (i.warn(ie.eventWithoutContext()), L = !1)));\n }\n function N(e, t) {\n l.hasListeners(pt.flagDetailChanged) && l.onFlagChanged(e.key, H(t));\n }\n function $() {\n l.hasListeners(pt.flagDetailsChanged) && l.onFlags(Object.entries(P).map(([e, t]) => ({\n key: e,\n detail: H(t)\n })).reduce((e, t) => (e[t.key] = t.detail, e), {}));\n }\n function V(e, t, n, r) {\n const o = R.getContext(),\n i = new Date(),\n a = {\n kind: \"feature\",\n key: e,\n context: o,\n value: t ? t.value : null,\n variation: t ? t.variationIndex : null,\n default: n,\n creationDate: i.getTime()\n },\n s = P[e];\n s && (a.version = s.flagVersion ? s.flagVersion : s.version, a.trackEvents = s.trackEvents, a.debugEventsUntilDate = s.debugEventsUntilDate), (r || s && s.trackReason) && t && (a.reason = t.reason), F(a);\n }\n function M(e) {\n return gt(e, !1) ? Promise.resolve(e) : Promise.reject(new s.LDInvalidUserError(ie.invalidContext()));\n }\n function q(e, t, n, r, o, i) {\n let a, s;\n return P && S.objectHasOwnProperty(P, e) && P[e] && !P[e].deleted ? (s = P[e], a = H(s), null !== s.value && void 0 !== s.value || (a.value = t)) : a = {\n value: t,\n variationIndex: null,\n reason: {\n kind: \"ERROR\",\n errorKind: \"FLAG_NOT_FOUND\"\n }\n }, n && (o || s?.prerequisites?.forEach(e => {\n q(e, void 0, n, !1, !1, !1);\n }), V(e, a, t, r)), !o && i && function (e, t) {\n l.hasListeners(pt.flagUsed) && l.onFlagUsed(e, t, R.getContext());\n }(e, a), a;\n }\n function H(e) {\n return {\n value: e.value,\n variationIndex: void 0 === e.variation ? null : e.variation,\n reason: e.reason || null\n };\n }\n function z() {\n if (x = !0, !R.getContext()) return;\n const e = e => {\n try {\n return JSON.parse(e);\n } catch (e) {\n return void a.maybeReportError(new s.LDInvalidDataError(ie.invalidData()));\n }\n };\n b.connect(R.getContext(), g, {\n ping: function () {\n i.debug(ie.debugStreamPing());\n const e = R.getContext();\n E.fetchFlagSettings(e, g).then(t => {\n S.deepEquals(e, R.getContext()) && _(t || {});\n }).catch(e => {\n a.maybeReportError(new s.LDFlagFetchError(ie.errorFetchingFlags(e)));\n });\n },\n put: function (t) {\n const n = e(t.data);\n n && (i.debug(ie.debugStreamPut()), _(n));\n },\n patch: function (t) {\n const n = e(t.data);\n if (!n) return;\n const r = P[n.key];\n if (!r || !r.version || !n.version || r.version < n.version) {\n i.debug(ie.debugStreamPatch(n.key));\n const e = {},\n t = S.extend({}, n);\n delete t.key, P[n.key] = t;\n const o = H(t);\n e[n.key] = r ? {\n previous: r.value,\n current: o\n } : {\n current: o\n }, N(n, t), J(e);\n } else i.debug(ie.debugStreamPatchIgnored(n.key));\n },\n delete: function (t) {\n const n = e(t.data);\n if (n) if (!P[n.key] || P[n.key].version < n.version) {\n i.debug(ie.debugStreamDelete(n.key));\n const e = {};\n P[n.key] && !P[n.key].deleted && (e[n.key] = {\n previous: P[n.key].value\n }), P[n.key] = {\n version: n.version,\n deleted: !0\n }, N(n, P[n.key]), J(e);\n } else i.debug(ie.debugStreamDeleteIgnored(n.key));\n }\n });\n }\n function K() {\n x && (b.disconnect(), x = !1);\n }\n function _(e) {\n const t = {};\n if (!e) return Promise.resolve();\n for (const n in P) S.objectHasOwnProperty(P, n) && P[n] && (e[n] && !S.deepEquals(e[n].value, P[n].value) ? t[n] = {\n previous: P[n].value,\n current: H(e[n])\n } : e[n] && !e[n].deleted || (t[n] = {\n previous: P[n].value\n }));\n for (const n in e) S.objectHasOwnProperty(e, n) && e[n] && (!P[n] || P[n].deleted) && (t[n] = {\n current: H(e[n])\n });\n return P = {\n ...e\n }, $(), J(t).catch(() => {});\n }\n function J(e) {\n const t = Object.keys(e);\n if (t.length > 0) {\n const n = {};\n t.forEach(t => {\n const r = e[t].current,\n o = r ? r.value : void 0,\n i = e[t].previous;\n a.emit(ht + \":\" + t, o, i), n[t] = r ? {\n current: o,\n previous: i\n } : {\n previous: i\n };\n }), a.emit(ht, n), a.emit(yt, P), u.sendEventsOnlyForVariation || U || t.forEach(t => {\n V(t, e[t].current);\n });\n }\n return D && j ? j.saveFlags(P) : Promise.resolve();\n }\n function B() {\n const e = I || C && void 0 === I;\n e && !x ? z() : !e && x && K(), w && w.setStreaming(e);\n }\n function G(e) {\n return e === ht || e.substr(0, 7) === ht + \":\";\n }\n if (\"string\" == typeof u.bootstrap && \"LOCALSTORAGE\" === u.bootstrap.toUpperCase() && (j ? D = !0 : i.warn(ie.localStorageUnavailable())), \"object\" == typeof u.bootstrap && (P = function (e) {\n const t = Object.keys(e),\n n = \"$flagsState\",\n r = \"$valid\",\n o = e[n];\n !o && t.length && i.warn(ie.bootstrapOldFormat()), !1 === e[r] && i.warn(ie.bootstrapInvalid());\n const a = {};\n return t.forEach(t => {\n if (t !== n && t !== r) {\n let n = {\n value: e[t]\n };\n o && o[t] ? n = S.extend(n, o[t]) : n.version = 0, a[t] = n;\n }\n }), a;\n }(u.bootstrap)), U) {\n const e = U.getInitialState();\n e ? W(e) : U.on(\"init\", W), U.on(\"update\", function (e) {\n e.context && R.setContext(e.context);\n e.flags && _(e.flags);\n });\n } else (function () {\n if (!e) return Promise.reject(new s.LDInvalidEnvironmentIdError(ie.environmentNotSpecified()));\n return A.processContext(t).then(M).then(e => (R.setContext(e), \"object\" == typeof u.bootstrap ? X() : D ? j.loadFlags().then(e => null == e ? (P = {}, E.fetchFlagSettings(R.getContext(), g).then(e => _(e || {})).then(X).catch(e => {\n Q(new s.LDFlagFetchError(ie.errorFetchingFlags(e)));\n })) : (P = e, S.onNextTick(X), E.fetchFlagSettings(R.getContext(), g).then(e => _(e)).catch(e => a.maybeReportError(e)))) : E.fetchFlagSettings(R.getContext(), g).then(e => {\n P = e || {}, $(), X();\n }).catch(e => {\n P = {}, Q(e);\n })));\n })().catch(Q);\n function W(e) {\n f = e.environment, R.setContext(e.context), P = {\n ...e.flags\n }, S.onNextTick(X);\n }\n function X() {\n i.info(ie.clientInitialized()), O = !0, B(), c.signalSuccess();\n }\n function Q(e) {\n c.signalFailure(e);\n }\n const Y = {\n waitForInitialization: function (e = void 0) {\n if (null != e) {\n if (\"number\" == typeof e) return function (e) {\n e > 5 && i.warn(\"The waitForInitialization function was called with a timeout greater than 5 seconds. We recommend a timeout of 5 seconds or less.\");\n const t = c.getInitializationPromise(),\n n = dt(e, \"waitForInitialization\");\n return Promise.race([n, t]).catch(e => {\n throw e instanceof s.LDTimeoutError && i.error(`waitForInitialization error: ${e}`), e;\n });\n }(e);\n i.warn(\"The waitForInitialization method was provided with a non-numeric timeout.\");\n }\n return i.warn(\"The waitForInitialization function was called without a timeout specified. In a future version a default timeout will be applied.\"), c.getInitializationPromise();\n },\n waitUntilReady: () => c.getReadyPromise(),\n identify: function (e, t, n) {\n if (T) return S.wrapPromiseCallback(Promise.resolve({}), n);\n if (U) return i.warn(ie.identifyDisabled()), S.wrapPromiseCallback(Promise.resolve(S.transformVersionedValuesToValues(P)), n);\n const r = D && j ? j.clearFlags() : Promise.resolve();\n return S.wrapPromiseCallback(r.then(() => A.processContext(e)).then(M).then(e => E.fetchFlagSettings(e, t).then(n => {\n const r = S.transformVersionedValuesToValues(n);\n return R.setContext(e), g = t, n ? _(n).then(() => r) : r;\n })).then(e => (x && z(), e)).catch(e => (a.maybeReportError(e), Promise.reject(e))), n);\n },\n getContext: function () {\n return R.getContext();\n },\n variation: function (e, t) {\n return q(e, t, !0, !1, !1, !0).value;\n },\n variationDetail: function (e, t) {\n return q(e, t, !0, !0, !1, !0);\n },\n track: function (e, t, n) {\n if (\"string\" != typeof e) return void a.maybeReportError(new s.LDInvalidEventKeyError(ie.unknownCustomEventKey(e)));\n void 0 !== n && \"number\" != typeof n && i.warn(ie.invalidMetricValue(typeof n)), r.customEventFilter && !r.customEventFilter(e) && i.warn(ie.unknownCustomEventKey(e));\n const o = R.getContext(),\n c = {\n kind: \"custom\",\n key: e,\n context: o,\n url: r.getCurrentUrl(),\n creationDate: new Date().getTime()\n };\n o && o.anonymous && (c.contextKind = o.anonymous ? \"anonymousUser\" : \"user\"), null != t && (c.data = t), null != n && (c.metricValue = n), F(c);\n },\n on: function (e, t, n) {\n G(e) ? (C = !0, O && B(), a.on(e, t, n)) : a.on(...arguments);\n },\n off: function (e) {\n if (a.off(...arguments), G(e)) {\n let e = !1;\n a.getEvents().forEach(t => {\n G(t) && a.getEventListenerCount(t) > 0 && (e = !0);\n }), e || (C = !1, x && void 0 === I && K());\n }\n },\n setStreaming: function (e) {\n const t = null === e ? void 0 : e;\n t !== I && (I = t, B());\n },\n flush: function (e) {\n return S.wrapPromiseCallback(d ? k.flush() : Promise.resolve(), e);\n },\n allFlags: function () {\n const e = {};\n if (!P) return e;\n for (const t in P) S.objectHasOwnProperty(P, t) && !P[t].deleted && (e[t] = q(t, null, !u.sendEventsOnlyForVariation, !1, !0, !1).value);\n return e;\n },\n close: function (e) {\n if (T) return S.wrapPromiseCallback(Promise.resolve(), e);\n const t = () => {\n T = !0, P = {};\n },\n n = Promise.resolve().then(() => {\n if (K(), w && w.stop(), d) return k.stop(), k.flush();\n }).then(t).catch(t);\n return S.wrapPromiseCallback(n, e);\n }\n };\n return {\n client: Y,\n options: u,\n emitter: a,\n ident: R,\n logger: i,\n requestor: E,\n start: function () {\n d && (w && w.start(), k.start());\n },\n enqueueEvent: F,\n getFlagsInternal: function () {\n return P;\n },\n getEnvironmentId: () => f,\n internalChangeEventName: yt\n };\n },\n commonBasicLogger: ft,\n errors: s,\n messages: ie,\n utils: S,\n getContextKeys: vt\n },\n bt = wt.initialize,\n kt = wt.errors,\n Et = wt.messages;\nfunction Dt(e, t, n) {\n return (t = function (e) {\n var t = function (e, t) {\n if (\"object\" != typeof e || !e) return e;\n var n = e[Symbol.toPrimitive];\n if (void 0 !== n) {\n var r = n.call(e, t || \"default\");\n if (\"object\" != typeof r) return r;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === t ? String : Number)(e);\n }(e, \"string\");\n return \"symbol\" == typeof t ? t : t + \"\";\n }(t)) in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n}\nfunction xt(e, t) {\n var n = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var r = Object.getOwnPropertySymbols(e);\n t && (r = r.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, r);\n }\n return n;\n}\nfunction Ct(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? xt(Object(n), !0).forEach(function (t) {\n Dt(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : xt(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n return e;\n}\nvar Pt = wt.commonBasicLogger;\nvar St = function (e) {\n return Pt(Ct({\n destination: console.log\n }, e));\n};\nvar It = {\n promise: Promise.resolve({\n status: 200,\n header: function () {\n return null;\n },\n body: null\n })\n};\nfunction Ot(e, t, n, r, o) {\n if (o && !function () {\n var e = window.navigator && window.navigator.userAgent;\n if (e) {\n var t = e.match(/Chrom(e|ium)\\/([0-9]+)\\./);\n if (t) return parseInt(t[2], 10) < 73;\n }\n return !0;\n }()) return It;\n var i = new window.XMLHttpRequest();\n for (var a in i.open(e, t, !o), n || {}) Object.prototype.hasOwnProperty.call(n, a) && i.setRequestHeader(a, n[a]);\n if (o) {\n try {\n i.send(r);\n } catch (e) {}\n return It;\n }\n var s,\n c = new Promise(function (e, t) {\n i.addEventListener(\"load\", function () {\n s || e({\n status: i.status,\n header: function (e) {\n return i.getResponseHeader(e);\n },\n body: i.responseText\n });\n }), i.addEventListener(\"error\", function () {\n s || t(new Error());\n }), i.send(r);\n });\n return {\n promise: c,\n cancel: function () {\n s = !0, i.abort();\n }\n };\n}\nvar Tt = e => {\n if (\"string\" != typeof e) throw new TypeError(\"Expected a string\");\n return e.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n};\nfunction Lt(e, t, n, r) {\n var o,\n i,\n a = ((\"substring\" === e.kind || \"regex\" === e.kind) && r.includes(\"/\") ? t : t.replace(r, \"\")).replace(n, \"\");\n switch (e.kind) {\n case \"exact\":\n i = t, o = new RegExp(\"^\" + Tt(e.url) + \"/?$\");\n break;\n case \"canonical\":\n i = a, o = new RegExp(\"^\" + Tt(e.url) + \"/?$\");\n break;\n case \"substring\":\n i = a, o = new RegExp(\".*\" + Tt(e.substring) + \".*$\");\n break;\n case \"regex\":\n i = a, o = new RegExp(e.pattern);\n break;\n default:\n return !1;\n }\n return o.test(i);\n}\nfunction Ut(e, t) {\n for (var n = {}, r = null, o = [], i = 0; i < e.length; i++) for (var a = e[i], s = a.urls || [], c = 0; c < s.length; c++) if (Lt(s[c], window.location.href, window.location.search, window.location.hash)) {\n \"pageview\" === a.kind ? t(\"pageview\", a) : (o.push(a), t(\"click_pageview\", a));\n break;\n }\n return o.length > 0 && (r = function (e) {\n for (var n = function (e, t) {\n for (var n = [], r = 0; r < t.length; r++) for (var o = e.target, i = t[r], a = i.selector, s = document.querySelectorAll(a); o && s.length > 0;) {\n for (var c = 0; c < s.length; c++) o === s[c] && n.push(i);\n o = o.parentNode;\n }\n return n;\n }(e, o), r = 0; r < n.length; r++) t(\"click\", n[r]);\n }, document.addEventListener(\"click\", r)), n.dispose = function () {\n document.removeEventListener(\"click\", r);\n }, n;\n}\nfunction Rt(e, t) {\n var n, r;\n function o() {\n r && r.dispose(), n && n.length && (r = Ut(n, i));\n }\n function i(t, n) {\n var r = e.ident.getContext(),\n o = {\n kind: t,\n key: n.key,\n data: null,\n url: window.location.href,\n creationDate: new Date().getTime(),\n context: r\n };\n return \"click\" === t && (o.selector = n.selector), e.enqueueEvent(o);\n }\n return e.requestor.fetchJSON(\"/sdk/goals/\" + e.getEnvironmentId()).then(function (e) {\n e && e.length > 0 && (r = Ut(n = e, i), function (e, t) {\n var n,\n r = window.location.href;\n function o() {\n (n = window.location.href) !== r && (r = n, t());\n }\n !function e(t, n) {\n t(), setTimeout(function () {\n e(t, n);\n }, n);\n }(o, e), window.history && window.history.pushState ? window.addEventListener(\"popstate\", o) : window.addEventListener(\"hashchange\", o);\n }(300, o)), t();\n }).catch(function (n) {\n e.emitter.maybeReportError(new kt.LDUnexpectedResponseError((n && n.message, n.message))), t();\n }), {};\n}\nvar At = \"goalsReady\",\n jt = {\n fetchGoals: {\n default: !0\n },\n hash: {\n type: \"string\"\n },\n eventProcessor: {\n type: \"object\"\n },\n eventUrlTransformer: {\n type: \"function\"\n },\n disableSyncEventPost: {\n default: !1\n }\n };\nfunction Ft(e, t) {\n var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},\n r = function (e) {\n var t,\n n = {\n userAgentHeaderName: \"X-LaunchDarkly-User-Agent\",\n synchronousFlush: !1\n };\n if (window.XMLHttpRequest) {\n var r = e && e.disableSyncEventPost;\n n.httpRequest = function (e, t, o, i) {\n var a = n.synchronousFlush & !r;\n return n.synchronousFlush = !1, Ot(e, t, o, i, a);\n };\n }\n n.httpAllowsPost = function () {\n return void 0 === t && (t = !!window.XMLHttpRequest && \"withCredentials\" in new window.XMLHttpRequest()), t;\n }, n.httpFallbackPing = function (e) {\n new window.Image().src = e;\n };\n var o,\n i = e && e.eventUrlTransformer;\n n.getCurrentUrl = function () {\n return i ? i(window.location.href) : window.location.href;\n }, n.isDoNotTrack = function () {\n var e;\n return 1 === (e = window.navigator && void 0 !== window.navigator.doNotTrack ? window.navigator.doNotTrack : window.navigator && void 0 !== window.navigator.msDoNotTrack ? window.navigator.msDoNotTrack : window.doNotTrack) || !0 === e || \"1\" === e || \"yes\" === e;\n };\n try {\n window.localStorage && (n.localStorage = {\n get: function (e) {\n return new Promise(function (t) {\n t(window.localStorage.getItem(e));\n });\n },\n set: function (e, t) {\n return new Promise(function (n) {\n window.localStorage.setItem(e, t), n();\n });\n },\n clear: function (e) {\n return new Promise(function (t) {\n window.localStorage.removeItem(e), t();\n });\n }\n });\n } catch (e) {\n n.localStorage = null;\n }\n if (e && e.useReport && \"function\" == typeof window.EventSourcePolyfill && window.EventSourcePolyfill.supportedOptions && window.EventSourcePolyfill.supportedOptions.method ? (n.eventSourceAllowsReport = !0, o = window.EventSourcePolyfill) : (n.eventSourceAllowsReport = !1, o = window.EventSource), window.EventSource) {\n var a = 3e5;\n n.eventSourceFactory = function (e, t) {\n var n = Ct(Ct({}, {\n heartbeatTimeout: a,\n silentTimeout: a,\n skipDefaultHeaders: !0\n }), t);\n return new o(e, n);\n }, n.eventSourceIsActive = function (e) {\n return e.readyState === window.EventSource.OPEN || e.readyState === window.EventSource.CONNECTING;\n };\n }\n return n.userAgent = \"JSClient\", n.version = \"3.5.0\", n.diagnosticSdkData = {\n name: \"js-client-sdk\",\n version: \"3.5.0\"\n }, n.diagnosticPlatformData = {\n name: \"JS\"\n }, n.diagnosticUseCombinedEvent = !0, n;\n }(n),\n o = bt(e, t, n, r, jt),\n i = o.client,\n a = o.options,\n s = o.emitter,\n c = new Promise(function (e) {\n var t = s.on(At, function () {\n s.off(At, t), e();\n });\n });\n i.waitUntilGoalsReady = function () {\n return c;\n }, a.fetchGoals ? Rt(o, function () {\n return s.emit(At);\n }) : s.emit(At), \"complete\" !== document.readyState ? window.addEventListener(\"load\", o.start) : o.start();\n var u = function () {\n r.synchronousFlush = !0, i.flush().catch(function () {}), r.synchronousFlush = !1;\n };\n return document.addEventListener(\"visibilitychange\", function () {\n \"hidden\" === document.visibilityState && u();\n }), window.addEventListener(\"pagehide\", u), i;\n}\nvar Nt = St,\n $t = void 0,\n Vt = \"3.5.0\";\nvar Mt = {\n initialize: function (e, t) {\n var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return console && console.warn && console.warn(Et.deprecated(\"default export\", \"named LDClient export\")), Ft(e, t, n);\n },\n version: Vt\n};\nexport { Nt as basicLogger, $t as createConsoleLogger, Mt as default, Ft as initialize, Vt as version };\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n LaunchDarklyContextProviderService,\n Logger,\n TrackingService,\n UserEvent,\n UserLoginEvent,\n UserLogoutEvent,\n UserService,\n} from '@frontend/vanilla/core';\nimport { LDClient, LDEvaluationDetail, LDFlagChangeset, LDFlagSet, LDOptions, initialize } from 'launchdarkly-js-client-sdk';\nimport { BehaviorSubject, Observable, ReplaySubject, Subscription, catchError, map, merge, of, switchMap, timeout } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { LaunchDarklyConfig } from './launch-darkly.client-config';\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class LaunchDarklyService implements OnDestroy {\n /**\n * LaunchDarkly SDK client object.\n *\n * Can be used directly to access all properties and methods provided by the SDK.\n *\n * For more information, see the [SDK Reference Guide](https://docs.launchdarkly.com/sdk/client-side/javascript).\n */\n client: LDClient;\n defaultOptions: LDOptions = {\n inspectors: [\n {\n type: 'flag-used',\n name: 'flag-used-inspector',\n method: (flagKey: string, flagDetail: LDEvaluationDetail) => this.trackFlagUsed(flagKey, flagDetail),\n },\n ],\n };\n private flags: LDFlagSet = {};\n private userAuthenticationSubscriber: Subscription;\n private _featureFlags = new BehaviorSubject({});\n private isLaunchDarklyConfigured = false;\n\n constructor(\n private userService: UserService,\n private contextProviderService: LaunchDarklyContextProviderService,\n private config: LaunchDarklyConfig,\n private trackingService: TrackingService,\n private cookieService: CookieService,\n private logger: Logger,\n ) {}\n\n private _clientInitialized = new ReplaySubject(1);\n private get clientInitialized(): Observable {\n return this._clientInitialized.pipe(first());\n }\n\n async initialize(clientId: string) {\n this.isLaunchDarklyConfigured = true;\n\n if (!this.client) {\n const options = Object.assign({}, this.defaultOptions, this.config.options);\n const context = await this.contextProviderService.getContext();\n this.client = initialize(clientId, context, options);\n\n this.client\n .waitForInitialization()\n .then(() => {\n this.fetchLDFlags();\n this._clientInitialized.next();\n this.contextProviderService.contextChanged.subscribe(() => {\n this.updateContext();\n });\n this.subscribeToUserAuthenticationEvents();\n })\n .catch((error: unknown) => {\n this.logger.error('[LaunchDarkly] - Error while initializing SDK.', error);\n });\n\n this.client.on('change', async (changedFlags: LDFlagChangeset) => {\n await this.updateFlag(changedFlags);\n this.logger.info('[LaunchDarkly] - Flags changed', changedFlags);\n });\n\n this.client.on('error', (error: any) => {\n this.logger.error('[LaunchDarkly] - General error.', error);\n });\n }\n }\n\n /**\n * Emits the current value for the specified Feature flag.\n *\n * // Usage (component example):\n * export class HeaderComponent implements OnInit\n * {\n * buttonsEnabled = false;\n * ngOnInit() {\n * this.flagsService.getFeatureFlagValue('HeaderButtonsEnabled').subscribe((value) => {\n * this.buttonsEnabled = value;\n * });\n * }\n * }\n *\n * // Usage (Markup)\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 { 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],\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 { 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 { 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 ) {}\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 let isRegisteredAfterEligibilityDate = false;\n if (this.oddsConfig.oddsChangePopupEligibilityDate) {\n const eligibilityDate = new Date(this.oddsConfig.oddsChangePopupEligibilityDate);\n const registrationDate = new Date(this.userService.registrationDate);\n isRegisteredAfterEligibilityDate = registrationDate.getTime() > eligibilityDate.getTime();\n }\n\n return this.userService.isAuthenticated && this.oddsConfig.displayOddsChangePreferencePopup && isRegisteredAfterEligibilityDate;\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 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.FINISH_PLACE_BET, 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 { from } from 'rxjs';\nimport { concatMap, filter, ignoreElements, map, mergeMap, switchMap, tap, withLatestFrom } from 'rxjs/operators';\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({ betslipType: null, selectedByUser: false, systemInfo: null }),\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 filter(() => this.oddChangeConfirmationService.isEligibleForOddsChangePopup()),\n tap(() => this.oddChangeConfirmationService.checkAndOpenOddsChangePopup()),\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({ payload: action.picks, headerTemplate: action.headerTemplate });\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, 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/operators';\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 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 { 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, 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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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\n// eslint-disable-next-line @nx/enforce-module-boundaries\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 'registration': () => import('@frontend/vanilla/features/registration'),\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 // eslint-disable-next-line @nx/enforce-module-boundaries\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 { merge } from 'rxjs';\nimport { first, switchMap } from 'rxjs/operators';\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 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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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);\n } else {\n this.redirectHelper.goToSport(result, SportUrlParam.Betting, SportUrlParam.Competitions);\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 { 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 } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\n\nimport { NavigationService, UrlService } from '@frontend/vanilla/core';\n\nimport { UrlHelperService } from '../navigation-core/url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class OutsideSportsGuard {\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 (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 { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\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 { 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(/* webpackChunkName: \"ms-my-bets\" */ './my-bets/my-bets.module').then((m) => m.MyBetsModule),\n data: { shouldKeepSubNav: true },\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 { LoaderFnConfig } from '@frontend/loaders';\nimport { ClientConfigProductName } from '@frontend/vanilla/core';\n\nexport const DefaultStakeTeaserLoader: LoaderFnConfig = {\n id: 'default-stake-teaser',\n loaderFn: () => import('./default-stake-teaser.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 { DefaultStakeTeaserLoader } from '../default-stake-teaser/default-stake-teaser.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(DefaultStakeTeaserLoader),\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 } from 'rxjs';\nimport { filter } from 'rxjs/operators';\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, noop, timer } from 'rxjs';\nimport { concatMapTo, filter, first, map, repeat } from 'rxjs/operators';\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, merge, of, timer } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';\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/operators';\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 } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsService implements OnAppInit {\n private readonly destroyRef = inject(DestroyRef);\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 } from 'rxjs';\nimport { skip, takeUntil } from 'rxjs/operators';\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, merge, timer } from 'rxjs';\nimport { finalize, tap } from 'rxjs/operators';\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 abstract destroy(): void;\n}\n\nexport abstract class LongRunningBackgroundWorkerService {\n abstract init(): void;\n abstract run(): void;\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 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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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, merge } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 } from 'rxjs';\nimport { map } from 'rxjs/operators';\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 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 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 } from 'rxjs';\nimport { distinctUntilKeyChanged, switchMap, withLatestFrom } from 'rxjs/operators';\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, from, isObservable, of } from 'rxjs';\nimport { debounceTime, mergeMap, takeLast, tap } from 'rxjs/operators';\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 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 } from '@angular/core';\n\nimport { SportsApiVersionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiVersioningInterceptor implements HttpInterceptor {\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 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 } from 'rxjs';\nimport { tap } from 'rxjs/operators';\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, timer } from 'rxjs';\nimport { switchMapTo } from 'rxjs/operators';\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 } from 'rxjs';\nimport { tap } from 'rxjs/operators';\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 } from 'rxjs';\nimport { distinctUntilChanged, map, skip } from 'rxjs/operators';\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 } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\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 { from, of, timer } from 'rxjs';\nimport { concatMap, filter, map, skipWhile, switchMap, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\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/operators';\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/operators';\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/operators';\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 } 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 { 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 { 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 { 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","import { 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\n// FIXME: refactor this to not use the document API\n// eslint-disable-next-line no-restricted-globals\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","IS_SAFARI_BROWSER","InjectionToken","isSafariBrowserFactory","platformId","isPlatformBrowser","userAgent","window","navigator","toLowerCase","includes","provideSafariBrowserToken","provide","useFactory","deps","PLATFORM_ID","DsTouchClickDirective","el","inject","ElementRef","ngZone","NgZone","destroyRef","DestroyRef","isSafariBrowser","touchStartElement","touchStarted$","fromEvent","nativeElement","touchMoved$","touchEnded$","ngOnInit","clickTrigger","pipe","filter","tap","event","target","changedTouches","clickEvent","MouseEvent","bubbles","cancelable","view","clientX","clientY","dispatchEvent","preventDefault","runOutsideAngular","takeUntilDestroyed","subscribe","l","selectors","standalone","_DsTouchClickDirective","DsTabHeader","ngTemplateContextGuard","directive","context","L","_DsTabHeader","DsTabContent","_DsTabContent","ɵɵelementContainer","Ie","ɵɵ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","FocusMonitor","_elementRef","setFocused","set","ngOnDestroy","stopMonitoring","contentQueries","rf","ctx","dirIndex","TemplateRef","v","g","D","Se","B","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","_breakpointObserver","BreakpointObserver","isSmallScreen","toSignal","observe","Breakpoints","XSmall","Small","HandsetLandscape","TabletPortrait","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","_updateScrollDistanceBasedOnName","containerWidthSub","listenToResizeObserver","_tabHeaderItemsContainer","length","contentRect","width","listItemsWidthSub","_tabHeaderItemsList","onDestroy","unsubscribe","handleArrowClick","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","get","Observable","observer","resizeObserver","ResizeObserver","disconnect","debounceTime","DEFAULT_TAB_OPTIONS","fullWidthTabs","defaultScrollDistance","defaultScrollSpeed","DS_TAB_OPTIONS","$item","je","qe","$e","DsTabsGroup_For_6_Conditional_3_ng_container_0_Template","tab_r3","ɵɵpureFunction2","_c7","Ue","ɵɵtext","d","ɵɵtextInterpolate1","Ke","W","ɵɵlistener","$event","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","ɵɵresetView","selectTab","DsTabsGroup_For_6_Conditional_3_Template","DsTabsGroup_For_6_Conditional_4_Template","variant","M","Xe","DsTabsGroup_Conditional_8_Conditional_1_ng_container_0_Template","dsTabsLeftArrowTpl","Ze","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","newTab","oe","__ngFactoryType__","T","Me","ɵɵclassMap","outputs","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ngContentSelectors","_c6","decls","vars","consts","template","Ge","i0","_r1","ɵɵrepeaterCreate","DsTabsGroup_For_6_Template","_forTrack0","DsTabsGroup_Conditional_8_Template","ɵɵrepeater","styles","_DsTabsGroup","DsTabsModule","re","se","_DsTabsModule","SportsThemedTabsDirective","currentTheme","injectCurrentTheme","tabGroup","self","_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","ɵɵpropertyInterpolate","item_r4","class","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","Tt","ɵɵtextInterpolate","text","tooltip","onScrolled","MainItemsComponent_Conditional_0_For_4_Template","scrollSize","filteredItems","scrolled","isEpcotEnabled","ki","item_r6","ɵɵpropertyInterpolate1","isSpecial","ɵɵpureFunction1","hasSeparator","ji","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","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","isSport","activeNavigation","total","sumBy","s","isFixed","filterNavigation","navItems","lastItem","pop","splice","indexOf","closeAll","compactItems","getAverageSize","ɵɵdirectiveInject","AdaptiveLayoutService","NavigationRouterService","ScrollingSizeConfig","PopupManager","EventBridgeService","MenuActionsService","ResizeObserverService","CharsetSizeService","TopNavigationConfig","MenuItemsService","RxStrategyProvider","ɵɵNgOnChangesFeature","MainItemsComponent_Conditional_0_Template","MainItemsComponent_Conditional_1_Template","_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","_NavigationItemsMapper","BaseNavigationItemsProvider","sportsCache","hasLiveItems$","getSportList","counts","live","startWith","SportsCacheService","_BaseNavigationItemsProvider","FixedNavigationItemsProvider","dslService","mapper","evaluatedItems$","defer","fixedItems","afterSports","evaluateContent","navigationItems$","combineLatest","hasLive","DslService","_FixedNavigationItemsProvider","LastSelectedSportProvider","sessionStore","sportService","lastSport","storeKey","lastSport$","lastSelectedSport","mapSport","selectedSport$","whenReady","sportItem","isItemType","ItemType","Sport","sportsConfig","selectedSport","useBeforeSeparator","currentSport","SessionStoreService","_LastSelectedSportProvider","SportNavigationItemsProvider","sportItems$","shareReplay","maxSports","topSportsCount","beforeSports","takeTop","isFirstItem","topSports","_SportNavigationItemsProvider","TopNavigationItemsProvider","sitecore","siteCoreReady$","liveSportCount$","getLiveSportsList","keepLiveItem","liveSportCount","liveCountText","formatLiveCounts","liveItem","isLiveButtonBadgeVisible","itemsToReturn","getFallbackItems","produce","home","getHomeMenuItem","globalMessages","NavHome","getHomeUrl","sportList","reduce","acc","Sitecore","_TopNavigationItemsProvider","NavigationService","trackingService","topItemsProvider","fixedItemsProvider","sportsItemsProvider","lastSportProvider","_topNavigation$","ReplaySubject","topNavigation$","separatorMarker","init$","Subject","distinctUntilLengthChanged","prev","sportsItems","buildNavigation","init","track","mainItems","allItems","sportsIndex","selectedSportIndex","recalculateIndexes","slice","addSelectedSport","allConfigItems","sportsIndexUpdated","selectedSportIndexUpdated","condition","i","TrackingService","_NavigationService","viewModel_r1","isDesktopNavCompact","showSeparator","ɵɵpipeBind1","navigation","NavigationComponent_div_0_nav_1_Template","st","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","Error","updateAnchorLink","onClick","stopPropagation","msLink","setAttribute","removeAttribute","_LinkDirective","SkeletonPage","SkeletonMarqueeComponent","h","SkeletonMarqueeComponent_div_1_Template","ɵɵpureFunction0","b","_SkeletonMarqueeComponent","SkeletonBetslipComponent_div_0_div_16_Template","SkeletonBetslipComponent","device","DeviceService","SkeletonBetslipComponent_div_0_Template","isTablet","_SkeletonBetslipComponent","ɵɵelementContainerStart","I","Pi","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","_SkeletonEventsComponent","SkeletonMinigamesComponent","SkeletonMinigamesComponent_div_6_Template","_SkeletonMinigamesComponent","SkeletonTopsportsComponent","SkeletonTopsportsComponent_div_2_Template","_SkeletonTopsportsComponent","Yi","ɵɵclassMapInterpolate1","team_r1","team1","team2","Xi","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","teams","isMobileOrRacingForecast","SkeletonGridComponent","isHorseRaceForecast","SkeletonGridComponent_div_0_Template","_SkeletonGridComponent","nn","SkeletonMainDestopComponent_div_1_ms_skeleton_betslip_6_Template","on","SkeletonMainDestopComponent_div_2_div_3_Template","SkeletonMainDestopComponent_div_2_div_6_Template","ln","SkeletonMainDestopComponent_div_3_div_7_Template","SkeletonMainDestopComponent_div_4_div_4_Template","SkeletonMainDestopComponent_div_5_div_7_Template","p","SkeletonMainDestopComponent_div_6_div_4_div_5_Template","SkeletonMainDestopComponent_div_6_div_4_div_7_Template","hn","SkeletonMainDestopComponent_div_6_div_5_div_1_Template","_n","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","Favourites","Event","Racing","RacingTomorrow","RacingForecast","J","ue","ge","K","ri","Ee","li","mi","X","_SkeletonMainDestopComponent","Fn","Mn","te","In","Rn","On","SkeletonMainMobileComponent_div_4_div_1_div_3_Template","Ln","SkeletonMainMobileComponent_div_4_div_1_Template","Bn","Dn","SkeletonMainMobileComponent_div_5_div_1_div_3_Template","$n","SkeletonMainMobileComponent_div_5_div_1_Template","jn","Hn","SkeletonMainMobileComponent_div_7_div_4_div_5_Template","SkeletonMainMobileComponent_div_7_div_4_div_7_Template","An","SkeletonMainMobileComponent_div_7_div_5_div_1_Template","SkeletonMainMobileComponent_div_7_div_4_Template","SkeletonMainMobileComponent_div_7_div_5_Template","Zn","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","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","MediaQueryService","_BreadcrumbRouteVisibilityService","BreadcrumbsService","breadcrumbVisibility","LEAGUE_TYPES","league","tournament","race","competition","types","AZ","REGION","SPORT","LEAGUE","TOPLEAGUE","FILTER","_breadcrumbs$","visible","onBreadcrumbVisibilityChange","setBreadcrumbs","breadcrumbs$","_BreadcrumbsService","ao","lo","mo","Z","crumb_r3","BreadcrumbsComponent_div_3_div_1_a_2_ng_container_1_Template","ɵɵsanitizeUrl","linkTemplate_r5","BreadcrumbsComponent_div_3_div_1_ng_template_3_ng_container_1_Template","BreadcrumbsComponent_div_3_div_1_a_2_Template","BreadcrumbsComponent_div_3_div_1_ng_template_3_Template","Y","classes","staticTemplate_r6","BreadcrumbsComponent_div_3_div_1_Template","crumb_r7","leagueId","fallbackIcon","isWithRightImage","imageProfile","BreadcrumbsComponent_ng_template_6_ms_competition_logo_0_Template","BreadcrumbsComponent_ng_template_6_span_1_Template","BreadcrumbsComponent","redirectHelper","breadcrumbsSlot","changeDetector","layoutNavigationConfig","topNavigationItemsProvider","topNavigationConfig","breadcrumbService","adaptiveLayout","urlSerializer","hidden","routeHistory","_doc","DOCUMENT","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","setLiveCounts","goBack","NavBreadcrumb","active","ignoreBrowserHistory","goToPage","__spreadProps","__spreadValues","getAbsolute","refreshLiveCount","getElementsByClassName","Array","from","innerHTML","refreshLiveCountTimer","setInterval","RedirectHelperService","ChangeDetectorRef","LayoutNavigationConfig","UrlSerializer","EpcotConfigService","viewQuery","ViewContainerRef","it","nt","fe","BreadcrumbsComponent_div_3_Template","BreadcrumbsComponent_ng_template_6_Template","NavigationCoreModule","PlainLinkComponent","DirectivesModule","ScrollIosHackDirective","ScrollToDirective","CompetitionLogoComponent","NgIf","NgFor","NgClass","_BreadcrumbsComponent","SubNavigationService","_tabs$","_fullWidth$","_tabSize$","tabs$","tabSize$","fullWidth$","setTabs","setTabSize","tabSize","setFullWith","fullWidth","_SubNavigationService","So","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","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_ng_container_1_Template","tabInverse","click","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Conditional_2_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Conditional_4_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_0_Template","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Conditional_1_Template","subNavigation","LiveInSportPage","wo","SubNavigationComponent_Conditional_0_Conditional_2_For_2_Template","isLiveButtonEnabled","themedTabSize","isFullWidth","Oo","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","push","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","F","_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","PrintModule","RouterModule","LoadingIndicatorModule","_PrintModule","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","hasUiState","uiState","containsUiState","states","UiManagerService","handlers","registerUiHandler","handler","updateUi","__async","_UiManagerService","ComponentLoaderComponent","_ComponentLoaderComponent","ComponentProxyDirective","msComponentProxyData","componentProxy","update","msComponentProxy","viewRef","create","componentLoaded","n","_ComponentProxyDirective","TooltipService","visibility","_tooltipRequested","show","isTouch","showOnLoad","hide","_TooltipService","q","GeneralTooltipComponent","_window","__privateAdd","__privateSet","WINDOW","NgxPopperjsTriggers","distinctUntilKeyChanged","request","tooltipController","content","reference","targetElement","applyClass","setContent","tooltipPlacement","hideOnScroll","__privateGet","setTimeout","appendContent","tooltipMessage","appendChild","join","NgxPopperjsDirective","popper1Content_r1","_GeneralTooltipComponent","ee","InlineTooltipComponent","showOnlyIfOverflowed","onHover","showTooltip","isTooltipVisible","nohover","tooltipContent","isOverflowed","scrollWidth","offsetHeight","scrollHeight","G","_InlineTooltipComponent","OnboardingTooltipComponent","showHelp","closeClicked","closeHelp","message","_OnboardingTooltipComponent","TooltipModule","P","E","NgxPopperjsModule","_TooltipModule","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","subscriber","elapsed","animationFrameScheduler","expand","takeWhile","currContext","takeUntil","finalize","customOptions","isRtl","rtlScrollAxisType","getRtlScrollAxisType","scrollableEl","targetEl","ɵɵ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","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","ColumnComponent","layoutManager","scrollContainer","requestedComponents","componentInstances","Map","initializeComponent","containerRef","initOrUpdateComponent","containerContents","componentRef","createCustomInjector","indicatorRef","createIndicator","providers","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","confirmMobileNumber","updateMobileNumber","u","config_r3","dialogHeading","propertyName","mobileNumber","multiFactorAuthMessage","updateMobileMessage","dialogConfirmButtonText","dialogUpdateButtonText","UpdateMobileNumberComponent","userService","localStorageService","mobileNumberConfig","productHomepagesConfig","updateMobileNumberTrackingService","mobileNumberConfirmationConfig$","redirectURL","updatePhoneNumberURL","getUserMobileNumber","accountId","Confirm","closePopup","saveUserAction","portal","href","PopupIdentifier","acknowledgementList","getItemObject","StorageItemIdentifier","Date","getTime","saveItem","UserService","LocalStorageService","SitecoreMobileConfirmationConfig","ProductHomepagesConfig","UpdateMobileNumberComponent_Conditional_2_Template","tmp_0_0","_UpdateMobileNumberComponent","UpdateMobileNumberService","mobileConfirmationNotificationsConfig","uiStates","confirmationInterval","confirmationIntervalMilliseconds","launchMobileNumberConfirmationPopup","configure","overlayType","settings","showDialogHeader","hideCloseButton","isModalDialog","showCloseBtnText","showMobileNumberConfirmation","QuickBet","mobileNumberAcknowledgement","savedTime","isDifferenceExceedingTimespan","date","calculateTimeDifference","MobileConfirmationNotificationClientConfig","me","_UpdateMobileNumberService","header","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","Qi","MainComponent_ng_container_4_ng_scrollbar_1_Template","MainComponent_ng_container_4_ng_container_2_Template","MainComponent_ng_container_4_ng_template_3_Template","MainComponent_ng_container_4_ng_scrollbar_5_Template","Te","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","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","epcotEnabledClass","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","MainComponent_ng_container_2_Template","Q","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","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","getByThemeOrDefault","default","SportsThemedNotificationDirective","isSelected","notification","themeInverse","themeVariant","selectedVariant","_SportsThemedNotificationDirective","TabGroupWithCounterComponent_For_2_ng_container_1_Conditional_1_ng_container_1_Template","tabGroup_r4","selected_r2","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","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","w","iconTemplate_r4","pill_r5","itemId","WidgetPillComponent_ng_template_4_Conditional_0_Template","WidgetPillComponent_ng_template_4_Conditional_1_Template","display","Logo","WidgetTabBarDisplay","WidgetPillComponent","cdr","widgetTabBarItem","pills","tabItem","WidgetPillComponent_For_3_Template","WidgetPillComponent_ng_template_4_Template","ScrollAdapterComponent","_WidgetPillComponent","Lazy","creator","cached","BaseTreeItem","children","_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","siblings","realCompetitionId","compoundId","VirtualGroupTreeItem","groupOptions","favouriteId","TournamentTreeItem","CalendarTreeItem","interval","SportConstant","Tennis","Tournament","VirtualCompetitionService","favouritesService","sitecoreEventDetails","routeService","subscribe$","virtualCompetition","urlFactory","changeType","FavouriteChangeType","Add","Remove","buildVirtualCompetition","getCompetition","findVirtual","virtualCompetitionGroups","buildTournamentGroups","groups","displayMode","imageType","regionType","allGroups","eventDetails","AllMarketsTemplate","virtualCompetitionGroup","SportUrlParam","Betting","marketOffer","canBeFavourited","tournamentGroups","isFavourite","FavouriteType","League","favouriteName","participants","stageIds","groupIds","favouritesList","concat","FavouritesService","SitecoreEventDetailsConfig","CompetitionRouteService","_VirtualCompetitionService","StandingsService","statisticsConfig","getStandingsGroups","selectedVirtualGroupId","expandedGroups","expandedLeagueTablesCount","Soccer","leagueGroups","getStandingsForVirtualGroups","getStandingsForCompetitions","leagueGroup","flatten","leagueItem","mapVirtualGroups","mapCompetition","standings","toLeagueGroup","selectedVirtualGroup","isVirtualCompetitionGroupItem","virtualGroup","virtualCompetitionId","parentId","virtualCompetitionGroupId","preMatch","collapsible","deferred","StatisticsConfig","_StandingsService","PruneHelperService","prune","filters","isArray","VirtualCompetitionGroup","conference","Conference","clonedSport","pruneRecursively","typeFilters","currentItem","isVirtualCompetition","child","countItem","_PruneHelperService","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","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","WidgetTabBarComponent_Conditional_0_For_3_Template","WidgetTabBarComponent","stretch","updateTabTrackingIds","activetab","WidgetTabBarComponent_Conditional_0_Template","SharedPriceboostModule","PriceboostCountSignpostComponent","_WidgetTabBarComponent","ut","ft","titleData","xt","WidgetHeaderComponent_Conditional_0_Conditional_1_Template","WidgetHeaderComponent_Conditional_0_Conditional_2_Template","titleLogo","kt","ɵɵ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","_WidgetHeaderComponent","WidgetCommonModule","O","ItemComponent","_WidgetCommonModule","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","eventId","unpinInfoVisible","pinEnabled","trackingSource","Default","Video","animation","eventInfos","isCollapsed","mediaExpandState","isLocationAllowsExpand","isExpanded","restoreExpandState","isDefaultExpanded","mediaFeatureKey","mediaStateSelector","mediaEventInfoSelector","mediaActiveSelector","mediaExpandedStateSelector","producer","action","gridUpdate","currentGrid","payload","gridReducer","createReducer","gridInitialState","GridActions","addEvents","grid","grouping","setEvents","topic","updateEvents","updateEvent","replaceEvents","removeEvents","eventIds","collapseEvents","collapseEvent","optionGroupId","setActiveGroup","columnId","groupId","setGroupCollapse","addGroups","updateGroupsBadges","badges","changeSorting","sorting","replaceEvent","targetFixtureId","newFixture","copy","gridId","mapLeague","_sport","parentLeagueId","getLeague","draft","mapForm","winCount","mapDate","toDateString","getDate","day","base","setHours","setMinutes","setSeconds","setMilliseconds","getForm","_e","_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","existing","setGroupCollapseThreshold","threshold","badge","currentEvent","newGrid","collapsedChildren","eventState","clone","newEvent","getEvents","collection","gridEvent","disableGroupSorting","groupingThreshold","initial","differenceBy","optionalParams","GridStoreService","actualState","getEventsState","getColumnState","groupIndex","expiry","now","values","eventKey","until","activeIndex","flatMap","eventsMap","cutOffDate","_GridStoreService","ignoreElementsTyped","ignoreElements","concatLatestFrom","observablesFactory","concatMap","observables","observablesAsArray","ObservableGrid","source","initialized","subject","getModel","gridState","mediaState","mediaTab","media","videoEvent","animationEvent","Animation","statsEvent","Stats","compareModel","previous","currentKeys","previousKeys","subscription","gridStateSelector","getState","complete","eventsList","eventsMapped","gridEvents","eventDictionary","liveGridSourceEvent","preMatchGridEvent","ObservableGridProvider","gridConfig","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","GridConfig","_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","CompetitionListService","bettingContent","bettingCache","tournamentsData","getSportTree","start","end","withTournaments","competitionId","conferenceId","getSport","getConference","sportModelMethods","fromTag","tournaments","getValidTournaments","top","reorderings","getReorderedSportList","locationShiftUp","existingLocation","filterTournament","leaguesSection","BettingOfferApi","TournamentsDataConfig","S","_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","minimumOdds","previousOdds","requestIndex","gameTemplateIds","gridGroupId","gridGroupIds","gameId","resultId","optionMarketId","optionId","happenings","optionMarketParameters","happening","marketTypes","periods","period","positions","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","getCompetitionStatisticsBatch","getCompetitionStatisticsBatchV2","competitionBatchRequest","getFixtureStatistics","firstValueFrom","_StatisticsApi","StatisticsApiService","loggerFactory","cdsStatsService","logger","getLogger","getStats","leagueStatistics$","eventStatistics$","leagueStatistics","eventStatistics","eventStats","leagueStats","rows","catchError","logError","getCompetitionsStatistics","getCompetitionsBatchStatistics","methodName","LoggerFactory","_StatisticsApiService","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","offerSource","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","FixtureTab","ReverseFixtureTab","FixtureView","TeamMenuItem","TeamPagesApiService","teamPagesConfig","m2LocalStore","cdsMasterApi","teamsByComepetitionCache","ExpiringCache","teamsCountByCompetitionsCache","seeMoreStorageKey","getTeamsByCompetitionId","response","participantId","teamType","getFavouriteType","participantImage","getOrCreate","mapTeam","participant","getTeamsByQueryText","query","getCompetitionsAndTeamsCount","seeMoreComp","seeMoreCompetition","competitionData","compIds","comp","competitionName","GetCompetitionsWithSeeMore","getCompetitionName","getCompetitionTabs","getCompetitionCount","competitionwithteam","maxCompetitions","seemorecompetition","k","CompetitionId","ParticipantV2","Participant","TeamPagesConfig","LocalStoreService","MasterdataApiService","_TeamPagesApiService","TeamPagesCoreMarqueeService","bettingOffer","marqueeService","getFixturesMarquees","selectedTeam","marqueeFixtures","loadFixtureMarquees","tabId","buildCountsFixtureRequest","fixtureRequest","getFixtureCounts","getCountsFixtures","favouriteType","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","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","hasFavouriteTeams","selectedCompetitionId","MyTeams","anyActiveTab","SeeMore","Showmore","TeamPagesModuleConfig","_TeamPagesCoreService","FavouriteToggleTrackingService","favouriteTypeMap","Fixture","FixtureV2","trackToggle","isToggled","baseTracking","NOT_APPLICABLE","COMPONENT_CONTENT_POSITION","commonTracking","EVENT_FAVOURITES","additional","_FavouriteToggleTrackingService","FavouriteToggleComponent","flag","handleError","toggleClass","toggled","Favorites","setToggle","add","goToLogin","static","setState","favouritesMessages","RemoveSuccess","AddSuccess","toggleError","notify","_FavouriteToggleComponent","FavouriteLeagueToggleComponent","favouriteTracking","SPORT_ID","SPORT_LEAGUE_ID","_FavouriteLeagueToggleComponent","FavouriteEventToggleComponent","previousValue","currentValue","getType","SPORT_EVENT_ID","_FavouriteEventToggleComponent","FavouriteParticipantToggleComponent","getName","country","_FavouriteParticipantToggleComponent","FavouritesModule","_FavouritesModule","fallbackUrl","Mt","participantImageLoad","participantUrl","showParticipant","TournamentGroupsParticipantsComponent","imagesConfig","utilsService","participantTemplateUrl","participantImageUrl","fallbackImage","FALLBACK_IMAGE_EPCOT","FALLBACK_IMAGE","VirtualCompetitionImageType","Flags","FALLBACK_FLAGS_IMAGE","format","ImageRootPath","_TournamentGroupsParticipantsComponent","ImagesConfig","UtilsService","TournamentGroupsParticipantsComponent_Conditional_0_Template","TournamentGroupsParticipantsComponent_Conditional_1_Template","At","Ot","Bt","TournamentGroupsComponent_li_2_a_1_1_ng_template_0_Template","group_r2","index_r5","Dt","TournamentGroupsComponent_li_2_a_1_1_Template","TournamentGroupsComponent_li_2_a_1_ms_favourite_league_toggle_2_Template","VirtualCompetitionDisplayMode","Pills","pillTemplate_r6","cardTemplate_r7","Rt","TournamentGroupsComponent_li_2_a_1_Template","Cards","be","group_r8","Gt","participant_r9","code","TournamentGroupsComponent_ng_template_5_div_4_div_1_Template","group_r10","Ut","TournamentGroupsComponent_ng_template_5_div_4_Template","TournamentGroupsComponent","timer","scrollAdapter","setArrows","trackTabsBy","getGroupMenuItemId","itemIndex","TimerService","Fe","ke","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","nonAccaBoostTokens","getNonAccaTokens","tokenModel$","tokens","eligibleTokens","rewardTokenType","tokenTypes","uniq","Rewards","RewardTokenEligibleTagComponent_div_0_Template","N","_RewardTokenEligibleTagComponent","Kt","Qt","qt","Yt","FixtureListHeaderComponent_Conditional_0_Conditional_1_Template","FixtureListHeaderComponent_Conditional_0_Conditional_5_Template","showFavoriteToggle","isTournament","offerBadgeTemplate","defaultOfferBadgeTemplate_r2","changed","ei","_r4","changedPill","ii","FixtureListHeaderComponent_ng_template_4_Conditional_0_Template","FixtureListHeaderComponent","headerTitle","isCalendarPage","showPrimaryNavAsPill","primaryNavigationType","getInterval","isInvalidContext","handleLeagueRoute","handleNoLeagueRoute","updateNavigationTabs","routeTab","navigate","replaceUrl","lowerCase","bets","conferences","All","competitionTitle","interpolateDoubleBracesString","ConferenceHeadingTitle","LeagueHeadingTitle","widgetId","CalendarService","FixtureListHeaderComponent_Conditional_0_Template","FixtureListHeaderComponent_Conditional_2_Template","FixtureListHeaderComponent_Conditional_3_Template","FixtureListHeaderComponent_ng_template_4_Template","_FixtureListHeaderComponent","vm_r1","CompetitionHeaderWidgetComponent_ng_container_0_ms_tournament_groups_2_Template","ie","isFavouritesEnabled","CompetitionHeaderWidgetComponent","WidgetComponent","competitionRouteService","virtualCompetitionService","pruneService","payload$","vm$","getModel$","prunnedSportItem","virtualCompetitionItem","virtualCompetitionModel","setWidgetLoaded","onData","CompetitionHeaderWidgetComponent_ng_container_0_Template","_CompetitionHeaderWidgetComponent","TeamPagesComponentLoaderService","ComponentLoaderService","moduleName","getTeamPagesComponent","getComponentProxy","competitionTeamPagesComponent","getModule","TeamPagesModule","_TeamPagesComponentLoaderService","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","_sitemap$","sitemap$","getSiteMapConfiguration","setSitemap","_SitemapService","__decorate","usePreloaderData","preloader","MS2JS","SiteMapLoader","__metadata","SitemapBootstrapService","sitemapService","stateMapper","validSubscription$","sitemapConfiguration","competitionFallback","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","DigitalSettingsActions","_DigitalSettingsActions","ACTION_SCHEMA","BetslipActions","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","BetslipTypesActions","_BetslipTypesActions","SET_EACH_WAY","POPULATE_FROM_STORAGE","SET_ACTIVE_TYPES","SET_LINEAR_TYPES","SET_SELECTED_TYPE","TRIGGER_AUTO_COMBO_SWITCH","SET_ORIGINAL_BASE","SET_FROM_ORIGINAL_BASE","SET_DEFAULT_ORIGINAL_BASE","SET_SELECTED_BY_USER","CHECK_DEFAULT_STAKE","SET_STAKE","SET_DEFAULT_STAKE","setEachWay","populateFromStorage","setActiveTypes","setSelectedType","triggerAutoComboSwitch","setLinearTypes","setOriginalBase","setFromOriginalBase","setDefaultOriginalBase","checkDefaultStake","setSelectedByUser","setStake","setDefaultStake","RewardTokensBannerService","localStoreService","crmTokenimage","intlService","tokensConfig","betRewardBannerDismissKey","MINUTE","HOUR","DAY","_recentlyClickedToken$","recentlyClickedToken$","_isBannerExpaned","isBannerExpanded","isRewardDrawerEnabled","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","TokenCategorySelectedSports","competitionsCount","MultipleCompetitions","meetingsCount","meeting","fixturesCount","TokenCategorySelectedEvents","marketsCount","markets","market","TokenCategorySelectedMarkets","marketTemplatesCount","marketTemplates","templates","TokenCategorySelectedTemplates","marketParametersCount","marketParameters","parseMarketType","TokenCategorySelectedParameters","optionsCount","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","SingleBoxSharedResizeObserver","_box","entry","SharedResizeObserver","_SharedResizeObserver","PlayerAttributesService","sharedFeaturesApiService","SharedFeaturesApiService","playerAttributesEvents","playerAttributes","load","loaded","_PlayerAttributesService","PlayerAttributesDslValuesProvider","dslRecorderService","playerAttributesService","dslCacheService","invalidate","getProviders","PlayerAttributes","createRecordable","createFunction","getCurrentValue","DSL_NOT_READY","DslRecorderService","DslCacheService","_PlayerAttributesDslValuesProvider","registerLazyDslOnModuleInit","LaunchDarklyConfig","LazyClientConfigBase","__ngConditionalFactory__","launchDarklyConfigFactory","LazyClientConfigService","LazyClientConfig","product","ClientConfigProductName","SF","j","U","R","$","V","H","ae","le","ce","de","ve","pe","he","ye","we","De","xe","Ce","Pe","Oe","Le","Re","Ae","Ne","Ve","He","ze","Be","We","Qe","Ye","tt","rt","ot","at","ct","lt","dt","gt","vt","pt","mt","ht","yt","wt","bt","Ct","It","Lt","jt","Ft","LaunchDarklyService","contextProviderService","cookieService","inspectors","method","flagKey","flagDetail","trackFlagUsed","flags","_featureFlags","isLaunchDarklyConfigured","_clientInitialized","clientInitialized","initialize","clientId","client","getContext","waitForInitialization","fetchLDFlags","contextChanged","updateContext","subscribeToUserAuthenticationEvents","catch","changedFlags","updateFlag","getFeatureFlagValue","featureFlagKey","defaultValue","timeout","variation","activateExperiment","variationDetail","getFlagOnly","identify","userAuthenticationSubscriber","allFlags","UserLoginEvent","UserLogoutEvent","reloadContext","reason","inExperiment","triggerEvent","variationIndex","ldExp","CookieName","LdExperiment","ldExpValue","putRaw","LaunchDarklyContextProviderService","CookieService","Logger","_LaunchDarklyService","LaunchDarklyBootstrapService","launchDarklyService","log","onFeatureInit","warnRemote","_LaunchDarklyBootstrapService","runOnFeatureInit","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$","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","_MarketSubTypeLogoHideStrategy","MarketSubTypeLogoShowStrategy","_MarketSubTypeLogoShowStrategy","_STATE_STORAGE_PERSIST_SERVICE","StateStorageFeatureModule","root","statePersistServices","feature","stateSaver","StatePersistServiceRegistry","_StateStorageFeatureModule","StateStorageModule","forFeature","ngModule","multi","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","tooltipToggleChange","output","overlaySubscriptions","_lastObservedWidth","handleCloseOnInteraction","clickTarget","run","contains","overlayElement","onScroll","updatePosition","effect","isAutoOpen","isShown","untracked","initializeAutoOpen","allowSignalWrites","isOpen","createOverlay","adjustArrowPosition","listenToOverlayState","addEventListeners","isIntersecting","shouldAutoClose","onStable","hasAttached","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","passive","removeEventListeners","positionChanges","onResize","cleanupResources","clearTimeout","dispose","handleResize","newWidth","_DsTooltipTrigger","ARROW_HEIGHT","ARROW_WIDTH","TOOLTIP_POSITIONS","bottomstart","offsetY","offsetX","originX","originY","overlayX","overlayY","bottomend","bottommiddle","topstart","topend","topmiddle","leftstart","leftend","leftmiddle","rightstart","rightend","rightmiddle","handleKeydown","containerClasses","DsTooltipContent","tooltipTrigger","customTooltip","outerContainerClasses","positionClass","arrowClass","fullWidthClass","adjustedArrowClass","closed","ariaLabel","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_r3","subtext","OddChangesConfirmationComponent_Conditional_0_For_13_Conditional_4_Template","oddsPreferenceConfig_r5","tooltipText","oddSelectionChange","OddChangesConfirmationComponent_Conditional_0_For_13_Template","ɵɵrepeaterTrackByIdentity","saveOddPreference","OddChangesConfirmationComponent_Conditional_0_ng_template_18_Template","oddsPreferencePopupTitle","tooltipTemplate_r6","oddSelection","oddsOptions","saveButton","helperText","OddChangesConfirmationComponent","bettingSettingsService","userSettings","activeModal","oddsPreferenceConfig","oddsChangeTrackingService","oddChangeConfirmationService","oddsPreferenceConfig$","oddsPreferenceString","acceptAnyOddsLabel","acceptAnyOddsSubtext","acceptOnlyHigherOddsLabel","acceptOnlyHigherOddsSubtext","dontAcceptOddChangesLabel","oddsAcceptanceMode","oddsPreferenceValue","ToastrSchedule","Immediate","oddChangePreferenceSuccess","saveAcknowledgement","onSaveOddPreferenceFailure","oddChangePreferenceError","updatePlayerPreference","acknowledgement","oddsChangePreference","SyncUserSettingsService","UserSettingsService","ActiveModal","SitecoreOddsPreferenceConfig","ToastrQueueService","OddChangeConfirmationService","OddChangesConfirmationComponent_Conditional_0_Template","DsRadioModule","DsRadioButton","DsRadioGroup","_OddChangesConfirmationComponent","modalDialogService","oddsConfig","openOddChangesConfirmationPopup","_modalRef","openDialog","getModalSettings","modelRef","scrollFreezeType","ScrollFreezeServiceTypes","playerPreference","cache","retryCount","showSpinner","resolveWithFullResponse","isEligibleForOddsChangePopup","isRegisteredAfterEligibilityDate","oddsChangePopupEligibilityDate","eligibilityDate","registrationDate","displayOddsChangePreferencePopup","checkAndOpenOddsChangePopup","isAcknowledged","ModalDialogService","OddsConfig","_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","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$","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","DisplayMode","LaunchDarklyFlagManagerService","featureFlagKeys$","getFeatureFlag","flagName","featureFlags","_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","PerformanceProfilingService","performanceConfig","markNameTTI","lastTrackedUrl","navigationStartCallback","markStart","profilingEnabled","isPerformanceProfilingEnabled","browserSupport","performance","measure","markTTI","markEnd","markName","mark","getEntriesByName","clearMarks","clearMeasures","PerformanceProfilingConfig","_PerformanceProfilingService","PerformanceService","_measurements","isLowTierDevice","benchmarkThreshold","measurement","isSlow","_PerformanceService","benchmark","calculatePrimes","VideoStreamStatus","VideoStreamResult","errorType","PlaySource","SelfExcludedCategories","showStreamingMessage","hideWhenStarted","provider","twitchChannel","streamUrl","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","fn","namespace","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","node","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","DslEnvService","_ModuleService","Bl","LoadersConfig","loadersConfigFactory","LOADER_FN_TOKEN","registerLoaderFn","LoadState","LoadStrategy","LoaderService","registeredLoaderFns","webWorkerService","nativeAppService","rtmsService","moduleService","loadStylesService","productService","loadDispatcher","STYLES_LOADER_ID","allLoaders","initLoaders","UserPreHooksLoginEvent","JustLoggedIn","LoggedIn","reset","restart","productChanged","EventType","Vanilla","startEventStrategy","Rtms","eventsFromNative","Native","Preload","AlreadyLoggedIn","WindowEvent","ReadyStateChange","runOnlyCompleteStrategy","loadFeature","featureId","featureImport","additionalStyles","mergeStyles","Promise","featureInjector","getInjector","eventContext","sendToNative","NativeEventType","FEATURE_LOADED","readyState","Complete","loaders","Created","Scheduled","evaluate","strategies","scheduled","ruleId","rules","loaderId","loaderFnConfig","loaderFn","additionalStylesFn","evaluateExpression","checkLoaderEnabledForProduct","Enabled","FeatureEnabledStatus","isSingleDomainApp","createWorker","runLoader","removeWorker","errorRemote","getAdditionalStyles","Loaded","optionStyles","WebWorkerService","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","registration","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","GtmService","tagManagerService","timerService","gtmConfig","lcpService","renderGTMTag","partytown","loadGTM","runAfterLcp","scheduleIdleCallback","loadPartyTownGTM","TagManagerService","GTMConfig","RunAfterLcpService","_GtmService","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","MultiSportsHubGuard","multiSportsConfig","MultiSportsHubConfig","_MultiSportsHubGuard","OutsideSportsGuard","canActivate","parsedUrl","absUrl","forceReload","_OutsideSportsGuard","INTERNAL_SPORTS_WEB_ROUTES","SitemapHomeResolver","pathMatch","loadComponent","EmptyComponent","LinkExternalAccountsModule","authorized","redirectTo","MultiSportsHubSitemapResolver","SettingsModule","FavouritesDashboardModule","shouldKeepSubNav","EventDetailsModule","LiveModule","VirtualListModule","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","DefaultStakeTeaserLoader","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","getData","timing","cdsEntries","getEntriesByType","cdsUrlBase","clearResourceTimings","meanBy","duration","rounded","isNaN","_NetworkPerformancePageViewDataProvider","provideTracking","PAGE_VIEW_DATA_PROVIDER","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$","No","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","bannerComponent_r1","RewardTokensContainerComponent","rewardTokensDataService","bannerComponent$","hasData","proxyComponentLoaded","getRewardTokensComponent","bannerComponentSize","isRegulatoryRestricted","isExpandableRewardBannerEnabled","bannerComponentPadding","isUserAuthenticated","di","ɵɵ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","bind","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","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","MyBetsTitle","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","orientation","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","currentOrientation","isiOS","screen","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","loadKey","takeLast","runInInjectionContext","routerState","ChildrenOutletContexts","_RouteRefreshService","provideDataRefresh","ESportLiveButtonService","WidgetLayoutHook","liveButton","onResolve","getLiveUrl","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","Xo","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","parseInt","_ConnectionLostInterceptor","DuplicateBetplacementInterceptor","requestIds","Set","preventDuplicateRequestOnFrontend","isBetplacementRequest","generateGuid","requestId","getRequestId","errMessage","switchMapTo","body","_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","Fl","Ol","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","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","startsWith","addAction","NgrxReportsService","NgrxReportsConfiguration","_NgrxReportsEffect","provideNgrxReports","numpadInitialState","focus","numpadFeatureKey","numpadReducer","NumpadActions","numpadFocus","provideNumpad","StakeInputModeStrategy","FieldStakeInputModeStrategy","provideRunAfterLcp","PrettyUrlPageViewDataProvider","getPageName","originalPath","setToken","forIn","kebabCase","_PrettyUrlPageViewDataProvider","PrettyUrlRouteProcessor","tryUpdateOriginalPath","stripToken","interpolate","includeName","normalizeName","toName","useMapping","segement","mapping","stripJoin","stripOptional","shift","isWritable","getOwnPropertyDescriptor","writable","formCoupon","_PrettyUrlRouteProcessor","RootInjector","_RootInjector","StorePersistActions","_StorePersistActions","SAVE_STATE","saveState","StorePersistEffects","stateConverter","GRID_ACTION_SCHEMA","SAVE_STORAGE_BUFFER_TIME","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","CURRENT_THEME_TOKEN","IS_ROBOT_TOKEN","MODAL_WINDOW_CONFIG","epcot","animatePopupDismiss","isShowMyBetsPopup","showCloseIcon","PARTICIPANT_IMAGE_CONFIG","FallbackImage","EpcotDefault","AppModule","setAppInjector","Bo","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","nativeWindow","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","previousUrl","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":[60,61,62,63,77,78,121,179,184,224]}