{"version":3,"file":"chunk-n4o6jszi.js","sources":["packages/sports/web/app/src/sub-navigation/sub-navigation-resolve.service.ts","packages/sports/libs/grid/core/feature/store/src/grid.actions.ts","packages/sports/libs/grid/core/feature/store/src/grid.state.ts","node_modules/@angular/material/fesm2022/button.mjs","node_modules/@angular/material/fesm2022/snack-bar.mjs","packages/sports/libs/toaster/feature/src/toaster.component.ts","packages/sports/libs/toaster/feature/src/toaster.service.ts","node_modules/immer/dist/immer.esm.mjs","packages/sports/libs/favourites/core/feature/src/favourites.model.ts","packages/sports/libs/favourites/core/feature/src/helpers.ts","packages/sports/libs/favourites/core/feature/src/favourites-fixtures.service.ts","packages/sports/libs/favourites/core/feature/src/favourites-model.factory.ts","packages/sports/libs/favourites/core/feature/src/favourites.service.ts","packages/sports/libs/grid/core/feature/favourites/src/grid-favourite.service.ts","packages/sports/libs/grid/core/feature/factories/src/grid-base.factory.ts","packages/sports/libs/grid/core/feature/factories/src/grid-fixture.factory.ts","packages/sports/libs/grid/core/feature/factories/src/event.factory.ts","packages/sports/web/app/src/breadcrumbs/breadcrumbs.resolver.ts","packages/sports/web/app/src/router/regex.matcher.ts","packages/sports/web/app/src/router/router.resolver.ts","packages/sports/web/app/src/scoreboards/models/scoreboard-stats.ts","packages/sports/web/app/src/scoreboards/models/scoreboard-timer.ts","packages/sports/web/app/src/scoreboards/models/scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/pair-game-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/set-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/baseball-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/pair-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/darts-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/tournament-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/leaderboard-game-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/penalty-shootout-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/period-game-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/snooker-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/soccer-scoreboard.viewmodel.ts","packages/sports/web/app/src/scoreboards/models/scoreboard-viewmodel.factory.ts","packages/sports/web/app/src/timers/timer-utils.service.ts","packages/design-system/ui/button-icon/src/button-icon.component.ts","packages/sports/web/app/src/native-alerts/alert-config.service.ts","packages/sports/web/app/src/native-alerts/model.ts","packages/sports/web/app/src/native-alerts/subscription-stream.service.ts","packages/sports/web/app/src/native-alerts/alert-subscription.service.ts","packages/sports/web/app/src/native-alerts/native-alerts.service.ts","packages/sports/web/app/src/native-alerts/alert-toast-messages.service.ts","packages/sports/web/app/src/native-alerts/alert-selector/alert-selector.service.ts","packages/sports/web/app/src/native-alerts/alert-selector/alert-selector.html","packages/sports/web/app/src/native-alerts/alert-selector/alert-selector.component.ts","packages/sports/web/app/src/native-alerts/alert-button/alert-button.component.ts","packages/sports/web/app/src/native-alerts/native-alerts.module.ts","packages/sports/web/app/src/directives/scrolled-to-bottom.directive.ts","packages/sports/web/app/src/directives/class-auto-remove.directive.ts","packages/sports/web/app/src/directives/column-width.directive.ts","packages/sports/web/app/src/directives/height-to-bottom.directive.ts","packages/sports/web/app/src/directives/info-tooltip.directive.ts","packages/sports/web/app/src/directives/outside-interaction.directive.ts","packages/sports/web/app/src/directives/scroll-ios-hack/scroll-ios-hack.directive.ts","packages/sports/web/app/src/directives/scroll-to.directive.ts","packages/sports/web/app/src/directives/stop-event-propagation.directive.ts","packages/sports/web/app/src/directives/toolbar-buttons-height.directive.ts","packages/sports/web/app/src/directives/directives.module.ts","packages/sports/web/app/src/common/epcot-config.directive.ts","packages/sports/libs/common/core/utils/timer/src/lib/ticker.service.ts","packages/sports/web/app/src/scoreboards/scoreboard-host.directive.ts","packages/sports/web/app/src/scoreboards/scoreboard-base.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-timer.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-timer.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-time.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-time.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-leaderboard-game-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-leaderboard-game-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-players-pair.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-players-pair.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-game-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-game-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-game-no-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-game-no-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-penalty-shootout-scoreboard-stats.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-penalty-shootout-scoreboard-stats.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-penalty-shootout-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-penalty-shootout-scoreboard.html","packages/sports/web/app/src/scoreboards/components/stats-value.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-scoreboard-stats.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pair-scoreboard-stats.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-pair.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-pair.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-set-scoreboard-stats.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-set-scoreboard-stats.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-set.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-set.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/snooker/my-bets-snooker-scoreboard-stats.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/snooker/my-bets-snooker-scoreboard-stats.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-snooker.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-scoreboard-snooker.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-tournament-game-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-tournament-game-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/baseball/my-bets-baseball-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/baseball/my-bets-baseball-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/darts/my-bets-darts-stats-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/darts/my-bets-darts-stats-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/darts/my-bets-darts-scoreboard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/darts/my-bets-darts-scoreboard.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pairgame-full-scoreboard-stats.html","packages/sports/web/app/src/my-bets/components/scoreboard/general/my-bets-pairgame-full-scoreboard-stats.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/period-game/my-bets-scoreboard-period-game.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/period-game/my-bets-scoreboard-period-game.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/soccer/my-bets-scoreboard-soccer-redcard.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/soccer/my-bets-scoreboard-soccer-goal.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/soccer/my-bets-scoreboard-soccer.component.html","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/soccer/my-bets-scoreboard-soccer.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/tennis/my-bets-scoreboard-tennis.component.ts","packages/sports/web/app/src/my-bets/components/scoreboard/sport-specific/tennis/my-bets-scoreboard-tennis.html","packages/sports/web/app/src/my-bets/components/scoreboard/my-bets-scoreboard-resolve.service.ts","packages/sports/web/app/src/my-bets/components/scoreboard/my-bets-scoreboard.module.ts","node_modules/fast-json-patch/lib/helpers.js","node_modules/fast-json-patch/node_modules/fast-deep-equal/index.js","node_modules/fast-json-patch/lib/core.js","node_modules/fast-json-patch/lib/duplex.js","packages/sports/web/app/src/event-subscription/scoreboard-subscription.service.ts","packages/sports/web/app/src/sitemap/sitemap-routing.ts","packages/sports/web/app/src/my-bets-base/early-payout/tac-dialog/tac-dialog.component.ts","packages/sports/web/app/src/my-bets-base/early-payout/tac-dialog/tac-dialog.html","packages/sports/libs/user/feature/src/model/user.models.ts","packages/sports/libs/user/feature/src/model/early-payout.ts","packages/sports/libs/user/feature/src/helpers/early-payout-acceptance.ts","packages/sports/libs/user/feature/src/helpers/is-turnovertax-applied.ts","packages/sports/libs/common/core/utils/dom/src/lib/trust.pipe.ts","packages/sports/libs/user/feature/src/services/sync-user-settings.service.ts","packages/sports/web/app/src/common/re-bet-my-bets-tabs.models.ts","packages/sports/web/app/src/help-box/help-box-type.ts","packages/sports/web/app/src/help-box/help-box.service.ts","packages/sports/web/app/src/help-box/help-box-badge.component.ts","packages/sports/web/app/src/best-odds-guarantee/services/best-odds-guaranteed.service.ts","packages/sports/web/app/src/best-odds-guarantee/race-view-best-odds-badge.html","packages/sports/web/app/src/best-odds-guarantee/race-view-best-odds-badge.component.ts","packages/sports/web/app/src/help-box/help-box.html","packages/sports/web/app/src/help-box/help-box.component.ts","packages/sports/web/app/src/numpad/stake-input-mode.strategy.ts","packages/sports/web/app/src/common/charset-size.service.ts","packages/sports/libs/user/feature/src/services/betting-settings.service.ts","packages/sports/web/app/src/ui-manager/ui-manager.actions.ts","packages/sports/web/app/src/ui-manager/ui-states.enum.ts","packages/sports/libs/common/core/feature/smooth-scroll/src/lib/smoothScroll.service.ts","packages/sports/web/app/src/common/dynamic-font-resizer.component.ts","packages/sports/web/app/src/numpad/incremental-stakes.service.ts","packages/sports/web/app/src/numpad/numpad-validation-parameters.ts","packages/sports/web/app/src/numpad/numpad-utils.service.ts","packages/sports/web/app/src/numpad/model.ts","packages/sports/web/app/src/numpad/numpad-display.service.ts","packages/sports/web/app/src/numpad/numpad-tracking.service.ts","packages/sports/web/app/src/numpad/stake-update.service.ts","packages/sports/web/app/src/numpad/numpad.service.ts","packages/sports/web/app/src/numpad/incremental-stakes.html","packages/sports/web/app/src/numpad/incremental-stakes.component.ts","packages/sports/web/app/src/numpad/numpad-error.html","packages/sports/web/app/src/numpad/numpad-error.component.ts","packages/sports/web/app/src/numpad/numpad-scroll.service.ts","packages/sports/web/app/src/numpad/numpad.html","packages/sports/web/app/src/numpad/numpad.component.ts","packages/sports/web/app/src/numpad/numpad-host.html","packages/sports/web/app/src/numpad/numpad-host.component.ts","packages/sports/web/app/src/numpad/numpad-keys.html","packages/sports/web/app/src/numpad/numpad-keys.component.ts","packages/sports/web/app/src/numpad/numpad-scroll.directive.ts","packages/sports/web/app/src/numpad/store/actions.ts","packages/sports/web/app/src/numpad/numpad-input-connector.ts","packages/sports/web/app/src/numpad/stake-field.html","packages/sports/web/app/src/numpad/stake-field.component.ts","packages/sports/web/app/src/numpad/stake-font-resizer.directive.ts","packages/sports/web/app/src/numpad/stake-input.html","packages/sports/web/app/src/numpad/stake-input.component.ts","packages/sports/web/app/src/numpad/stake-wrapper.component.ts","packages/sports/web/app/src/numpad/stake.html","packages/sports/web/app/src/numpad/stake.component.ts","packages/sports/web/app/src/numpad/validate-stake-input.directive.ts","packages/sports/web/app/src/numpad/numpad.module.ts","packages/sports/web/app/src/my-bets-base/models/early-payout-types.ts","packages/sports/libs/user/feature/src/services/user-settings.service.ts","packages/sports/libs/common/core/utils/math/src/lib/math.utils.ts","node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","packages/sports/libs/user/feature/src/services/user-odds-format-settings.service.ts","packages/sports/libs/odds/feature/native-price-calculator/src/native-price-calculator.service.ts","packages/sports/libs/odds/feature/native-price-odds-format-converter/src/odds-format-converter.service.ts","packages/sports/web/app/src/event-bridge/event-bridge.service.ts","packages/sports/libs/common/core/utils/string-interpolation/src/string-interpolation.pipe.ts","packages/sports/web/app/src/navigation-core/remove-href.directive.ts","packages/sports/web/app/src/navigation-core/navigation-core.module.ts","node_modules/@angular/cdk/fesm2022/clipboard.mjs","packages/vanilla/lib/shared/clipboard/src/clipboard.service.ts","packages/vanilla/lib/shared/share/src/share.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.client-config.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-bootstrap.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-dsl-values-provider.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.feature.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.models.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance.service.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance-bootstrap.service.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance-dsl-values-provider.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance.feature.ts","packages/vanilla/lib/shared/kyc/src/kyc-status.service.ts","packages/sports/web/app/src/arc/arc-message-frequency.service.ts","packages/sports/web/app/src/arc/arc-restriction-tracking.service.ts","packages/sports/libs/user/feature/src/store/actions.ts","packages/sports/web/app/src/arc/arc-message.component.html","packages/sports/web/app/src/arc/arc-message.component.ts","packages/sports/web/app/src/arc/arc.module.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.actions.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.models.ts","packages/sports/web/app/src/navigation-core/pick-uri.model.ts","packages/sports/web/app/src/navigation-core/pick-uri.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.state.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-copy.html","packages/sports/web/app/src/share-my-bet/share-my-bet-copy.component.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-native-message.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-onboarding.component.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-onboarding.html","packages/sports/web/app/src/share-my-bet/share-my-bet-state-storage.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.html","packages/sports/web/app/src/share-my-bet/share-my-bet.component.ts","packages/sports/web/app/src/share-my-bet-api/actions.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.epic.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.reducer.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.module.ts","packages/sports/web/app/src/betbuilder/components/badge/sgp-plus-badge/sgp-plus-badge.component.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-ratio.pipe.ts","packages/sports/web/app/src/tokens-base/tokens-calculator.service.ts","packages/sports/web/app/src/tokens-base/tokens-summary.service.ts","packages/sports/libs/new-customer-offer-feature/src/lib/customer-offer.service.ts","packages/sports/libs/account-balance/feature/src/account-balance-logger.service.ts","packages/sports/libs/account-balance/feature/src/account-balance.models.ts","packages/sports/libs/account-balance/feature/src/wallet-store.service.ts","packages/sports/libs/account-balance/feature/src/account-balance.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-tac.service.ts","packages/sports/web/app/src/my-bets/models/early-payout.model.ts","packages/sports/web/app/src/my-bets-base/models/my-bets-response.ts","packages/sports/web/app/src/my-bets-base/models/my-bets-viewmodels.ts","packages/sports/web/app/src/my-bets-base/models/early-payout.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout-helpers.ts","packages/sports/web/app/src/my-bets-base/models/early-payout-subscription-source.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-submit.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-subscription-mapper.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-subscription.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/eps-detailed-logger.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-injection-tokens.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-utils.ts","packages/sports/web/app/src/my-bets-base/models/bet-types.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout-base.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout.service.factory.ts","packages/sports/common/betslip/model/edit-mybet/edit-bet-init.ts","packages/sports/web/app/src/crm-promotion/promotion-status-button.component.html","packages/sports/web/app/src/crm-promotion/promotion-status-button.component.ts","packages/sports/web/app/src/crm-promotion/offer-status.service.ts","packages/sports/web/app/src/crm-promotion/tracking.service.ts","packages/sports/web/app/src/crm-promotion/banner-more-info.html","packages/sports/web/app/src/crm-promotion/banner-more-info.component.ts","packages/sports/web/app/src/crm-promotion/banner.service.ts","packages/sports/web/app/src/crm-promotion/promotion-status-button-wrapper.component.html","packages/sports/web/app/src/crm-promotion/promotion-status-button-wrapper.component.ts","packages/vanilla/lib/shared/dark-mode/src/dark-mode.service.ts","packages/sports/libs/competition-logos/feature/src/lib/competition-logos.service.ts","packages/sports/libs/participant-image/feature/provider/src/participant-image-config.token.ts","packages/sports/libs/participant-image/feature/src/participant-image.html","packages/sports/libs/participant-image/feature/src/participant-image.component.ts","packages/sports/libs/competition-logos/feature/src/lib/components/competition-logo.html","packages/sports/libs/competition-logos/feature/src/lib/components/competition-logo.component.ts","packages/design-system/ui/shared/src/ds-atoms-token.interface.ts","packages/design-system/ui/notification-bubble/src/notification-bubble.component.ts","packages/vanilla/lib/features/speculative-link/src/util.ts","packages/vanilla/lib/features/speculative-link/src/matcher.service.ts","packages/vanilla/lib/features/speculative-link/src/prefetch-registry.service.ts","packages/vanilla/lib/features/speculative-link/src/speculative-link-preloader.service.ts","packages/vanilla/lib/features/speculative-link/src/speculative-link-observer.service.ts","packages/vanilla/lib/features/speculative-link/src/speculative-link.client-config.ts","packages/vanilla/lib/features/speculative-link/src/speculative-link.directive.ts","packages/design-system/ui/divider/src/divider.component.ts","packages/sports/libs/tracking/feature/src/track-referring-action.directive.ts","packages/design-system/ui/list-item/src/list-item.component.ts","packages/sports/libs/common/ui/sports-list-items/src/lib/list-item.component.html","packages/sports/libs/common/ui/sports-list-items/src/lib/list-item.component.ts","packages/sports/web/app/src/common/item/item.html","packages/sports/web/app/src/common/item/item.component.ts","packages/sports/libs/common/core/utils/css-support/src/lib/css-support.service.ts","packages/sports/libs/common/core/feature/scroll-adapter/src/lib/scroll-speed.model.ts","packages/sports/libs/common/core/feature/browser/src/lib/hammer-gesture.provider.ts","packages/sports/libs/common/core/feature/scroll-adapter/src/lib/scroll-adapter.model.ts","packages/sports/libs/common/core/feature/scroll-adapter/src/lib/scroll-adapter.component.ts","packages/sports/libs/common/core/feature/scroll-adapter/src/lib/scroll-adapter.html","packages/sports/web/app/src/crm-promotion/badge.component.ts","packages/sports/web/app/src/crm-promotion/badge.html","packages/sports/web/app/src/perf-cdk/lcp-candidate.directive.ts","packages/design-system/ui/card/src/card.component.ts","packages/sports/web/app/src/crm-promotion/banner.html","packages/sports/web/app/src/crm-promotion/banner.component.ts","packages/sports/web/app/src/crm-promotion/promo-item.html","packages/sports/web/app/src/crm-promotion/promo-item.component.ts","packages/sports/web/app/src/crm-promotion/promo-item-list.html","packages/sports/web/app/src/crm-promotion/promo-item-list.component.ts","packages/sports/web/app/src/crm-promotion/crm-promotion.module.ts"],"sourcesContent":["import { ActivatedRouteSnapshot } from '@angular/router';\n\nimport { TabsGroupSizesType } from '@frontend/ui/tabsgroup';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { AdaptiveLayoutState } from '../layout/adaptive-layout.service';\nimport { SubNavigationItem } from './sub-navigation.models';\n\nexport abstract class SubNavigationResolve {\n protected tabs$ = new BehaviorSubject([]);\n protected size$ = new BehaviorSubject('large');\n protected fullWidth$ = new BehaviorSubject(false);\n\n get subNavigation$(): Observable {\n return this.tabs$.asObservable();\n }\n\n get tabSize$(): Observable {\n return this.size$.asObservable();\n }\n\n get tabFullWidth$(): Observable {\n return this.fullWidth$.asObservable();\n }\n\n abstract buildSubNavigation(layout: AdaptiveLayoutState, routeSnapshot: ActivatedRouteSnapshot, model: TModel): void;\n\n cleanup(): void {\n this.tabs$.next([]);\n }\n}\n","import { Fixture } from '@cds/betting-offer';\nimport { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { CouponTypes } from '@frontend/sports/coupons/feature/models';\nimport { GridEvent, GridGrouping, GridModel, GridSorting, Group, GroupBadge, SubscriptionTopic } from '@frontend/sports/grid/core/feature/model';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface IGrid {\n id: string;\n}\n\nexport interface IGridGroup {\n columnId: string;\n groupId: string;\n}\n\nexport interface IGridAddEvent extends IGrid {\n events: GridEvent | GridEvent[];\n grouping?: GridGrouping;\n}\n\nexport interface IGridAddCouponEvent extends IGrid {\n events: Fixture[];\n couponType: CouponTypes;\n}\n\nexport interface IGridSetEvent extends IGridAddEvent {\n topic?: SubscriptionTopic;\n}\n\nexport interface IGridUpdateEvent extends IGrid {\n event: GridEvent;\n}\n\nexport interface IGridReplaceEvent extends IGrid {\n targetFixtureId: string; // Event to be removed\n newFixture: GridEvent; // Event to be inserted\n}\n\nexport interface IGridEventsToReplace {\n currentEvent: GridEvent;\n newEvent?: GridEvent;\n}\n\nexport interface IGridReplaceEvents extends IGrid {\n events: IGridEventsToReplace[];\n}\n\nexport interface IGridCollapseEvent extends IGrid {\n eventId: string;\n optionGroupId?: string;\n}\n\nexport interface IGridSetActiveGroup extends IGrid, IGridGroup {}\n\nexport interface IGridSetActiveGroupType extends IGridSetActiveGroup {\n extended: boolean;\n}\n\nexport interface IGridSetGroupCollapse extends IGrid {\n groupId: number;\n}\n\nexport interface IGridAddGroups extends IGrid {\n groups: Group[];\n}\n\nexport interface IGridUpdateGroupsBadges extends IGrid {\n badges: Record;\n}\n\nexport interface IGridChangeSorting extends IGrid {\n sorting: GridSorting;\n}\n\nexport interface IGridRemoveEvent extends IGrid {\n eventIds: string[];\n}\n\nexport const GRID_ACTION_SCHEMA = '@grid';\n\nexport class GridActions {\n static ADD_EVENTS = `${GRID_ACTION_SCHEMA}/ADD_EVENTS`;\n static SET_EVENTS = `${GRID_ACTION_SCHEMA}/SET_EVENTS`;\n static UPDATE_EVENTS = `${GRID_ACTION_SCHEMA}/UPDATE_EVENTS`;\n static REPLACE_EVENTS = `${GRID_ACTION_SCHEMA}/REPLACE_EVENTS`;\n static REMOVE_EVENTS = `${GRID_ACTION_SCHEMA}/REMOVE_EVENTS`;\n static REPLACE_EVENT = `${GRID_ACTION_SCHEMA}/REPLACE_EVENT`;\n static COLLAPSE_EVENTS = `${GRID_ACTION_SCHEMA}/COLLAPSE_EVENTS`;\n static DESTROY = `${GRID_ACTION_SCHEMA}/DESTROY`;\n static INIT = `${GRID_ACTION_SCHEMA}/INIT`;\n static SET_ACTIVE_GROUP = `${GRID_ACTION_SCHEMA}/SET_ACTIVE_GROUP`;\n static SET_ACTIVE_GROUP_TYPE = `${GRID_ACTION_SCHEMA}/SET_ACTIVE_GROUP_TYPE`;\n static SET_STATE_COLLAPSE = `${GRID_ACTION_SCHEMA}/SET_STATE_COLLAPSE`;\n static SET_GROUP_COLLAPSE = `${GRID_ACTION_SCHEMA}/SET_GROUP_COLLAPSE`;\n static SET_MORE_COLLAPSE = `${GRID_ACTION_SCHEMA}/SET_MORE_COLLAPSE`;\n static ADD_GROUPS = `${GRID_ACTION_SCHEMA}/ADD_GROUPS`;\n static UPDATE_GROUPS_BADGES = `${GRID_ACTION_SCHEMA}/UPDATE_GROUPS_BADGES`;\n static CHANGE_SORTING = `${GRID_ACTION_SCHEMA}/CHANGE_SORTING`;\n static ADD_COUPON_EVENTS = `${GRID_ACTION_SCHEMA}/ADD_COUPON_EVENTS`;\n\n static addEvents = createAction(GridActions.ADD_EVENTS, pprops());\n static setEvents = createAction(GridActions.SET_EVENTS, pprops());\n static updateEvents = createAction(GridActions.UPDATE_EVENTS, pprops());\n static replaceEvents = createAction(GridActions.REPLACE_EVENTS, pprops());\n static removeEvents = createAction(GridActions.REMOVE_EVENTS, pprops());\n static replaceEvent = createAction(GridActions.REPLACE_EVENT, pprops());\n static collapseEvents = createAction(GridActions.COLLAPSE_EVENTS, pprops());\n static destroy = createAction(GridActions.DESTROY, props<{ gridId: string }>());\n static init = createAction(GridActions.INIT, pprops());\n static setActiveGroup = createAction(GridActions.SET_ACTIVE_GROUP, pprops());\n static setActiveGroupType = createAction(GridActions.SET_ACTIVE_GROUP_TYPE, pprops());\n static setGroupCollapse = createAction(GridActions.SET_GROUP_COLLAPSE, pprops());\n static setMoreCollapse = createAction(GridActions.SET_MORE_COLLAPSE, props<{ gridId: string }>());\n static addGroups = createAction(GridActions.ADD_GROUPS, pprops());\n static updateGroupsBadges = createAction(GridActions.UPDATE_GROUPS_BADGES, pprops());\n static changeSorting = createAction(GridActions.CHANGE_SORTING, pprops());\n static addCouponEvents = createAction(GridActions.ADD_COUPON_EVENTS, pprops());\n}\n","import { GridModel } from '@frontend/sports/grid/core/feature/model';\nimport { createFeatureSelector } from '@ngrx/store';\n\nexport interface IGridState {\n [key: string]: GridModel;\n}\n\nexport const gridInitialState: IGridState = {};\n\nexport const gridStateKey = 'grid';\n\nexport interface IGridRootState {\n grid: IGridState;\n}\n\nexport const gridStateSelector = createFeatureSelector(gridStateKey);\n","import * as i1 from '@angular/cdk/platform';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, booleanAttribute, Directive, Input, numberAttribute, ANIMATION_MODULE_TYPE, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, NgModule } from '@angular/core';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { MatRippleLoader, MatCommonModule, MatRippleModule } from '@angular/material/core';\n\n/** Injection token that can be used to provide the default options the button component. */\nconst _c0 = [\"mat-button\", \"\"];\nconst _c1 = [[[\"\", 8, \"material-icons\", 3, \"iconPositionEnd\", \"\"], [\"mat-icon\", 3, \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", 3, \"iconPositionEnd\", \"\"]], \"*\", [[\"\", \"iconPositionEnd\", \"\", 8, \"material-icons\"], [\"mat-icon\", \"iconPositionEnd\", \"\"], [\"\", \"matButtonIcon\", \"\", \"iconPositionEnd\", \"\"]]];\nconst _c2 = [\".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])\", \"*\", \".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]\"];\nconst _c3 = \".mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}\";\nconst _c4 = \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\";\nconst _c5 = [\"mat-fab\", \"\"];\nconst _c6 = [\"mat-mini-fab\", \"\"];\nconst _c7 = \".mat-mdc-fab-base{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-app-corner-large));color:var(--mat-fab-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color)}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color);background-color:var(--mat-fab-disabled-state-container-color)}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-app-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color)}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-mini-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color);background-color:var(--mat-fab-small-disabled-state-container-color)}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-app-level3));height:var(--mdc-extended-fab-container-height);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-app-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-app-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\";\nconst _c8 = [\"mat-icon-button\", \"\"];\nconst _c9 = [\"*\"];\nconst _c10 = \".mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 48px);height:var(--mdc-icon-button-state-layer-size, 48px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 48px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size);color:var(--mdc-icon-button-icon-color, var(--mat-app-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color)}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\";\nconst MAT_BUTTON_CONFIG = /*#__PURE__*/new InjectionToken('MAT_BUTTON_CONFIG');\n/** Shared host configuration for all buttons */\nconst MAT_BUTTON_HOST = {\n '[attr.disabled]': '_getDisabledAttribute()',\n '[attr.aria-disabled]': '_getAriaDisabled()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true',\n '[class]': 'color ? \"mat-\" + color : \"\"'\n};\n/** List of classes to add to buttons instances based on host attribute selector. */\nconst HOST_SELECTOR_MDC_CLASS_PAIR = [{\n attribute: 'mat-button',\n mdcClasses: ['mdc-button', 'mat-mdc-button']\n}, {\n attribute: 'mat-flat-button',\n mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button']\n}, {\n attribute: 'mat-raised-button',\n mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button']\n}, {\n attribute: 'mat-stroked-button',\n mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button']\n}, {\n attribute: 'mat-fab',\n mdcClasses: ['mdc-fab', 'mat-mdc-fab-base', 'mat-mdc-fab']\n}, {\n attribute: 'mat-mini-fab',\n mdcClasses: ['mdc-fab', 'mat-mdc-fab-base', 'mdc-fab--mini', 'mat-mdc-mini-fab']\n}, {\n attribute: 'mat-icon-button',\n mdcClasses: ['mdc-icon-button', 'mat-mdc-icon-button']\n}];\n/** Base class for all buttons. */\nlet MatButtonBase = /*#__PURE__*/(() => {\n class MatButtonBase {\n /**\n * Reference to the MatRipple instance of the button.\n * @deprecated Considered an implementation detail. To be removed.\n * @breaking-change 17.0.0\n */\n get ripple() {\n return this._rippleLoader?.getRipple(this._elementRef.nativeElement);\n }\n set ripple(v) {\n this._rippleLoader?.attachRipple(this._elementRef.nativeElement, v);\n }\n /** Whether the ripple effect is disabled or not. */\n get disableRipple() {\n return this._disableRipple;\n }\n set disableRipple(value) {\n this._disableRipple = value;\n this._updateRippleDisabled();\n }\n /** Whether the button is disabled. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n this._updateRippleDisabled();\n }\n constructor(_elementRef, _platform, _ngZone, _animationMode) {\n this._elementRef = _elementRef;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._animationMode = _animationMode;\n this._focusMonitor = inject(FocusMonitor);\n /**\n * Handles the lazy creation of the MatButton ripple.\n * Used to improve initial load time of large applications.\n */\n this._rippleLoader = inject(MatRippleLoader);\n /** Whether this button is a FAB. Used to apply the correct class on the ripple. */\n this._isFab = false;\n this._disableRipple = false;\n this._disabled = false;\n const config = inject(MAT_BUTTON_CONFIG, {\n optional: true\n });\n const element = _elementRef.nativeElement;\n const classList = element.classList;\n this.disabledInteractive = config?.disabledInteractive ?? false;\n this.color = config?.color ?? null;\n this._rippleLoader?.configureRipple(element, {\n className: 'mat-mdc-button-ripple'\n });\n // For each of the variant selectors that is present in the button's host\n // attributes, add the correct corresponding MDC classes.\n for (const {\n attribute,\n mdcClasses\n } of HOST_SELECTOR_MDC_CLASS_PAIR) {\n if (element.hasAttribute(attribute)) {\n classList.add(...mdcClasses);\n }\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._rippleLoader?.destroyRipple(this._elementRef.nativeElement);\n }\n /** Focuses the button. */\n focus(origin = 'program', options) {\n if (origin) {\n this._focusMonitor.focusVia(this._elementRef.nativeElement, origin, options);\n } else {\n this._elementRef.nativeElement.focus(options);\n }\n }\n _getAriaDisabled() {\n if (this.ariaDisabled != null) {\n return this.ariaDisabled;\n }\n return this.disabled && this.disabledInteractive ? true : null;\n }\n _getDisabledAttribute() {\n return this.disabledInteractive || !this.disabled ? null : true;\n }\n _updateRippleDisabled() {\n this._rippleLoader?.setDisabled(this._elementRef.nativeElement, this.disableRipple || this.disabled);\n }\n static {\n this.ɵfac = function MatButtonBase_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatButtonBase,\n inputs: {\n color: \"color\",\n disableRipple: [2, \"disableRipple\", \"disableRipple\", booleanAttribute],\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n ariaDisabled: [2, \"aria-disabled\", \"ariaDisabled\", booleanAttribute],\n disabledInteractive: [2, \"disabledInteractive\", \"disabledInteractive\", booleanAttribute]\n },\n features: [i0.ɵɵInputTransformsFeature]\n });\n }\n }\n return MatButtonBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Shared host configuration for buttons using the `` tag. */\nconst MAT_ANCHOR_HOST = {\n '[attr.disabled]': '_getDisabledAttribute()',\n '[class.mat-mdc-button-disabled]': 'disabled',\n '[class.mat-mdc-button-disabled-interactive]': 'disabledInteractive',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `mat-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n '[attr.tabindex]': 'disabled && !disabledInteractive ? -1 : tabIndex',\n '[attr.aria-disabled]': '_getDisabledAttribute()',\n // MDC automatically applies the primary theme color to the button, but we want to support\n // an unthemed version. If color is undefined, apply a CSS class that makes it easy to\n // select and style this \"theme\".\n '[class.mat-unthemed]': '!color',\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons.\n '[class.mat-mdc-button-base]': 'true',\n '[class]': 'color ? \"mat-\" + color : \"\"'\n};\n/**\n * Anchor button base.\n */\nlet MatAnchorBase = /*#__PURE__*/(() => {\n class MatAnchorBase extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._haltDisabledEvents = event => {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n }\n ngOnInit() {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n _getAriaDisabled() {\n return this.ariaDisabled == null ? this.disabled : this.ariaDisabled;\n }\n static {\n this.ɵfac = function MatAnchorBase_Factory(__ngFactoryType__) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatAnchorBase,\n inputs: {\n tabIndex: [2, \"tabIndex\", \"tabIndex\", value => {\n return value == null ? undefined : numberAttribute(value);\n }]\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatAnchorBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Material Design button component. Users interact with a button to perform an action.\n * See https://material.io/components/buttons\n *\n * The `MatButton` class applies to native button elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatButton` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nlet MatButton = /*#__PURE__*/(() => {\n class MatButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatButton,\n selectors: [[\"button\", \"mat-button\", \"\"], [\"button\", \"mat-raised-button\", \"\"], [\"button\", \"mat-flat-button\", \"\"], [\"button\", \"mat-stroked-button\", \"\"]],\n hostVars: 14,\n hostBindings: function MatButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 8px);height:var(--mdc-text-button-container-height);font-family:var(--mdc-text-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 8px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, 0);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, 0)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color)}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display)}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-app-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color)}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-filled-button-horizontal-padding, 16px);height:var(--mdc-filled-button-container-height);font-family:var(--mdc-filled-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -4px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -4px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color)}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-app-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-unelevated-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-app-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-app-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color);background-color:var(--mdc-filled-button-disabled-container-color)}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-protected-button-horizontal-padding, 16px);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-app-level1));height:var(--mdc-protected-button-container-height);font-family:var(--mdc-protected-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-app-label-large-weight))}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -4px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -4px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color)}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-raised-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-raised-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-app-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-app-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-app-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-app-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-app-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color);background-color:var(--mdc-protected-button-disabled-container-color)}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-app-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);padding:0 var(--mat-outlined-button-horizontal-padding, 15px);height:var(--mdc-outlined-button-container-height);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-app-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-app-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-app-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-app-corner-full));border-width:var(--mdc-outlined-button-outline-width)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -4px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -4px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color)}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-app-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-outlined-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-app-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-app-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color);border-color:var(--mdc-outlined-button-disabled-outline-color)}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button .mdc-button__ripple{border-width:var(--mdc-outlined-button-outline-width);border-style:solid;border-color:rgba(0,0,0,0)}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-mdc-focus-indicator,.mat-mdc-unelevated-button .mat-mdc-focus-indicator,.mat-mdc-raised-button .mat-mdc-focus-indicator,.mat-mdc-outlined-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-unelevated-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-raised-button:focus .mat-mdc-focus-indicator::before,.mat-mdc-outlined-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-mdc-focus-indicator::before,.mat-mdc-raised-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 3px)*-1)}\", \".cdk-high-contrast-active .mat-mdc-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-unelevated-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-raised-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-outlined-button:not(.mdc-button--outlined),.cdk-high-contrast-active .mat-mdc-icon-button{outline:solid 1px}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design button component for anchor elements. Anchor elements are used to provide\n * links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons\n *\n * The `MatAnchor` class applies to native anchor elements and captures the appearances for\n * \"text button\", \"outlined button\", and \"contained button\" per the Material Design\n * specification. `MatAnchor` additionally captures an additional \"flat\" appearance, which matches\n * \"contained\" but without elevation.\n */\nlet MatAnchor = /*#__PURE__*/(() => {\n class MatAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatAnchor,\n selectors: [[\"a\", \"mat-button\", \"\"], [\"a\", \"mat-raised-button\", \"\"], [\"a\", \"mat-flat-button\", \"\"], [\"a\", \"mat-stroked-button\", \"\"]],\n hostVars: 15,\n hostBindings: function MatAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c3, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token to be used to override the default options for FAB. */\nconst MAT_FAB_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-mdc-fab-default-options', {\n providedIn: 'root',\n factory: MAT_FAB_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_FAB_DEFAULT_OPTIONS_FACTORY() {\n return {\n // The FAB by default has its color set to accent.\n color: 'accent'\n };\n}\n// Default FAB configuration.\nconst defaults = /*#__PURE__*/MAT_FAB_DEFAULT_OPTIONS_FACTORY();\n/**\n * Material Design floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabButton` class has two appearances: normal and extended.\n */\nlet MatFabButton = /*#__PURE__*/(() => {\n class MatFabButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabButton,\n selectors: [[\"button\", \"mat-fab\", \"\"]],\n hostVars: 18,\n hostBindings: function MatFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n extended: [2, \"extended\", \"extended\", booleanAttribute]\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [\".mat-mdc-fab-base{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:56px;height:56px;padding:0;border:none;fill:currentColor;text-decoration:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;overflow:visible;transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1),opacity 15ms linear 30ms,transform 270ms 0ms cubic-bezier(0, 0, 0.2, 1);flex-shrink:0}.mat-mdc-fab-base .mat-mdc-button-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple,.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-fab-base .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-fab-base .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-fab-base .mdc-button__label,.mat-mdc-fab-base .mat-icon{z-index:1;position:relative}.mat-mdc-fab-base .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-fab-base:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-fab-base._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-fab-base::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}.mat-mdc-fab-base[hidden]{display:none}.mat-mdc-fab-base::-moz-focus-inner{padding:0;border:0}.mat-mdc-fab-base:active,.mat-mdc-fab-base:focus{outline:none}.mat-mdc-fab-base:hover{cursor:pointer}.mat-mdc-fab-base>svg{width:100%}.mat-mdc-fab-base .mat-icon,.mat-mdc-fab-base .material-icons{transition:transform 180ms 90ms cubic-bezier(0, 0, 0.2, 1);fill:currentColor;will-change:transform}.mat-mdc-fab-base .mat-mdc-focus-indicator::before{margin:calc(calc(var(--mat-mdc-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-fab-base[disabled],.mat-mdc-fab-base[disabled]:focus,.mat-mdc-fab-base.mat-mdc-button-disabled,.mat-mdc-fab-base.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-fab-base.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-fab{background-color:var(--mdc-fab-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-container-shape, var(--mat-app-corner-large));color:var(--mat-fab-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-touch-target-display)}.mat-mdc-fab .mat-ripple-element{background-color:var(--mat-fab-ripple-color)}.mat-mdc-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-disabled-state-layer-color)}.mat-mdc-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-fab:hover{box-shadow:var(--mdc-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-fab:focus{box-shadow:var(--mdc-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab:active,.mat-mdc-fab:focus:active{box-shadow:var(--mdc-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-fab[disabled],.mat-mdc-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-disabled-state-foreground-color);background-color:var(--mat-fab-disabled-state-container-color)}.mat-mdc-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-mini-fab{width:40px;height:40px;background-color:var(--mdc-fab-small-container-color, var(--mat-app-primary-container));border-radius:var(--mdc-fab-small-container-shape, var(--mat-app-corner-medium));color:var(--mat-fab-small-foreground-color, var(--mat-app-on-primary-container, inherit));box-shadow:var(--mdc-fab-small-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-fab-small-touch-target-display)}.mat-mdc-mini-fab .mat-ripple-element{background-color:var(--mat-fab-small-ripple-color)}.mat-mdc-mini-fab .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-state-layer-color, var(--mat-app-on-primary-container))}.mat-mdc-mini-fab.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-fab-small-disabled-state-layer-color)}.mat-mdc-mini-fab:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-mini-fab.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-mini-fab:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-fab-small-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-mini-fab:hover{box-shadow:var(--mdc-fab-small-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-mini-fab:focus{box-shadow:var(--mdc-fab-small-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab:active,.mat-mdc-mini-fab:focus:active{box-shadow:var(--mdc-fab-small-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-mini-fab[disabled],.mat-mdc-mini-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mat-fab-small-disabled-state-foreground-color);background-color:var(--mat-fab-small-disabled-state-container-color)}.mat-mdc-mini-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-extended-fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;border-radius:24px;padding-left:20px;padding-right:20px;width:auto;max-width:100%;line-height:normal;box-shadow:var(--mdc-extended-fab-container-elevation-shadow, var(--mat-app-level3));height:var(--mdc-extended-fab-container-height);border-radius:var(--mdc-extended-fab-container-shape, var(--mat-app-corner-large));font-family:var(--mdc-extended-fab-label-text-font, var(--mat-app-label-large-font));font-size:var(--mdc-extended-fab-label-text-size, var(--mat-app-label-large-size));font-weight:var(--mdc-extended-fab-label-text-weight, var(--mat-app-label-large-weight));letter-spacing:var(--mdc-extended-fab-label-text-tracking, var(--mat-app-label-large-tracking))}.mat-mdc-extended-fab:hover{box-shadow:var(--mdc-extended-fab-hover-container-elevation-shadow, var(--mat-app-level4))}.mat-mdc-extended-fab:focus{box-shadow:var(--mdc-extended-fab-focus-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab:active,.mat-mdc-extended-fab:focus:active{box-shadow:var(--mdc-extended-fab-pressed-container-elevation-shadow, var(--mat-app-level3))}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab.mat-mdc-button-disabled{cursor:default;pointer-events:none}.mat-mdc-extended-fab[disabled],.mat-mdc-extended-fab[disabled]:focus,.mat-mdc-extended-fab.mat-mdc-button-disabled,.mat-mdc-extended-fab.mat-mdc-button-disabled:focus{box-shadow:none}.mat-mdc-extended-fab.mat-mdc-button-disabled-interactive{pointer-events:auto}[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.mat-icon,[dir=rtl] .mat-mdc-extended-fab .mdc-button__label+.material-icons,.mat-mdc-extended-fab>.mat-icon,.mat-mdc-extended-fab>.material-icons{margin-left:-8px;margin-right:12px}.mat-mdc-extended-fab .mdc-button__label+.mat-icon,.mat-mdc-extended-fab .mdc-button__label+.material-icons,[dir=rtl] .mat-mdc-extended-fab>.mat-icon,[dir=rtl] .mat-mdc-extended-fab>.material-icons{margin-left:12px;margin-right:-8px}.mat-mdc-extended-fab .mat-mdc-button-touch-target{width:100%}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFabButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design mini floating action button (FAB) component. These buttons represent the primary\n * or most common action for users to interact with.\n * See https://material.io/components/buttons-floating-action-button/\n */\nlet MatMiniFabButton = /*#__PURE__*/(() => {\n class MatMiniFabButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMiniFabButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabButton,\n selectors: [[\"button\", \"mat-mini-fab\", \"\"]],\n hostVars: 14,\n hostBindings: function MatMiniFabButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMiniFabButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n *\n * The `MatFabAnchor` class has two appearances: normal and extended.\n */\nlet MatFabAnchor = /*#__PURE__*/(() => {\n class MatFabAnchor extends MatAnchor {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatFabAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFabAnchor,\n selectors: [[\"a\", \"mat-fab\", \"\"]],\n hostVars: 19,\n hostBindings: function MatFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true)(\"mdc-fab--extended\", ctx.extended)(\"mat-mdc-extended-fab\", ctx.extended);\n }\n },\n inputs: {\n extended: [2, \"extended\", \"extended\", booleanAttribute]\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c5,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFabAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design mini floating action button (FAB) component for anchor elements. Anchor elements\n * are used to provide links for the user to navigate across different routes or pages.\n * See https://material.io/components/buttons-floating-action-button/\n */\nlet MatMiniFabAnchor = /*#__PURE__*/(() => {\n class MatMiniFabAnchor extends MatAnchor {\n constructor(elementRef, platform, ngZone, animationMode, _options) {\n super(elementRef, platform, ngZone, animationMode);\n this._options = _options;\n this._isFab = true;\n this._options = this._options || defaults;\n this.color = this._options.color || defaults.color;\n }\n static {\n this.ɵfac = function MatMiniFabAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatMiniFabAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(MAT_FAB_DEFAULT_OPTIONS, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMiniFabAnchor,\n selectors: [[\"a\", \"mat-mini-fab\", \"\"]],\n hostVars: 15,\n hostBindings: function MatMiniFabAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c6,\n ngContentSelectors: _c2,\n decls: 7,\n vars: 4,\n consts: [[1, \"mat-mdc-button-persistent-ripple\"], [1, \"mdc-button__label\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatMiniFabAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementStart(2, \"span\", 1);\n i0.ɵɵprojection(3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(4, 2);\n i0.ɵɵelement(5, \"span\", 2)(6, \"span\", 3);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-button__ripple\", !ctx._isFab)(\"mdc-fab__ripple\", ctx._isFab);\n }\n },\n styles: [_c7],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatMiniFabAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Material Design icon button component. This type of button displays a single interactive icon for\n * users to perform an action.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nlet MatIconButton = /*#__PURE__*/(() => {\n class MatIconButton extends MatButtonBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n this._rippleLoader.configureRipple(this._elementRef.nativeElement, {\n centered: true\n });\n }\n static {\n this.ɵfac = function MatIconButton_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconButton)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconButton,\n selectors: [[\"button\", \"mat-icon-button\", \"\"]],\n hostVars: 14,\n hostBindings: function MatIconButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"aria-disabled\", ctx._getAriaDisabled());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c8,\n ngContentSelectors: _c9,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-mdc-button-persistent-ripple\", \"mdc-icon-button__ripple\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconButton_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n },\n styles: [\".mat-mdc-icon-button{-webkit-user-select:none;user-select:none;display:inline-block;position:relative;box-sizing:border-box;border:none;outline:none;background-color:rgba(0,0,0,0);fill:currentColor;color:inherit;text-decoration:none;cursor:pointer;z-index:0;overflow:visible;border-radius:50%;flex-shrink:0;text-align:center;width:var(--mdc-icon-button-state-layer-size, 48px);height:var(--mdc-icon-button-state-layer-size, 48px);padding:calc(calc(var(--mdc-icon-button-state-layer-size, 48px) - var(--mdc-icon-button-icon-size, 24px)) / 2);font-size:var(--mdc-icon-button-icon-size);color:var(--mdc-icon-button-icon-color, var(--mat-app-on-surface-variant));-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-icon-button[disabled],.mat-mdc-icon-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-icon-button-disabled-icon-color)}.mat-mdc-icon-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-icon-button img,.mat-mdc-icon-button svg{width:var(--mdc-icon-button-icon-size);height:var(--mdc-icon-button-icon-size);vertical-align:baseline}.mat-mdc-icon-button .mat-mdc-button-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-icon-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{content:\\\"\\\";opacity:0}.mat-mdc-icon-button .mdc-button__label,.mat-mdc-icon-button .mat-icon{z-index:1;position:relative}.mat-mdc-icon-button .mat-mdc-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute}.mat-mdc-icon-button:focus .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-icon-button .mat-ripple-element{background-color:var(--mat-icon-button-ripple-color)}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-icon-button-disabled-state-layer-color, var(--mat-app-on-surface-variant))}.mat-mdc-icon-button:hover .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-hover-state-layer-opacity, var(--mat-app-hover-state-layer-opacity))}.mat-mdc-icon-button.cdk-program-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.cdk-keyboard-focused .mat-mdc-button-persistent-ripple::before,.mat-mdc-icon-button.mat-mdc-button-disabled-interactive:focus .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-focus-state-layer-opacity, var(--mat-app-focus-state-layer-opacity))}.mat-mdc-icon-button:active .mat-mdc-button-persistent-ripple::before{opacity:var(--mat-icon-button-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity))}.mat-mdc-icon-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%);display:var(--mat-icon-button-touch-target-display)}.mat-mdc-icon-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-icon-button .mat-mdc-button-persistent-ripple{border-radius:50%}.mat-mdc-icon-button[hidden]{display:none}.mat-mdc-icon-button.mat-unthemed:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-primary:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-accent:not(.mdc-ripple-upgraded):focus::before,.mat-mdc-icon-button.mat-warn:not(.mdc-ripple-upgraded):focus::before{background:rgba(0,0,0,0);opacity:1}\", _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatIconButton;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Material Design icon button component for anchor elements. This button displays a single\n * interaction icon that allows users to navigate across different routes or pages.\n * See https://material.io/develop/web/components/buttons/icon-buttons/\n */\nlet MatIconAnchor = /*#__PURE__*/(() => {\n class MatIconAnchor extends MatAnchorBase {\n constructor(elementRef, platform, ngZone, animationMode) {\n super(elementRef, platform, ngZone, animationMode);\n }\n static {\n this.ɵfac = function MatIconAnchor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatIconAnchor)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatIconAnchor,\n selectors: [[\"a\", \"mat-icon-button\", \"\"]],\n hostVars: 15,\n hostBindings: function MatIconAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"disabled\", ctx._getDisabledAttribute())(\"tabindex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"aria-disabled\", ctx._getDisabledAttribute());\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-button-disabled\", ctx.disabled)(\"mat-mdc-button-disabled-interactive\", ctx.disabledInteractive)(\"_mat-animation-noopable\", ctx._animationMode === \"NoopAnimations\")(\"mat-unthemed\", !ctx.color)(\"mat-mdc-button-base\", true);\n }\n },\n exportAs: [\"matButton\", \"matAnchor\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n attrs: _c8,\n ngContentSelectors: _c9,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-mdc-button-persistent-ripple\", \"mdc-icon-button__ripple\"], [1, \"mat-mdc-focus-indicator\"], [1, \"mat-mdc-button-touch-target\"]],\n template: function MatIconAnchor_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"span\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelement(2, \"span\", 1)(3, \"span\", 2);\n }\n },\n styles: [_c10, _c4],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatIconAnchor;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatButtonModule = /*#__PURE__*/(() => {\n class MatButtonModule {\n static {\n this.ɵfac = function MatButtonModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatButtonModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatButtonModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, MatRippleModule, MatCommonModule]\n });\n }\n }\n return MatButtonModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_BUTTON_CONFIG, MAT_FAB_DEFAULT_OPTIONS, MAT_FAB_DEFAULT_OPTIONS_FACTORY, MatAnchor, MatButton, MatButtonModule, MatFabAnchor, MatFabButton, MatIconAnchor, MatIconButton, MatMiniFabAnchor, MatMiniFabButton };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, inject, ViewChild, Injector, TemplateRef, Injectable, Optional, SkipSelf, NgModule } from '@angular/core';\nimport { MatButton, MatButtonModule } from '@angular/material/button';\nimport { Subject } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport * as i1 from '@angular/cdk/platform';\nimport * as i2 from '@angular/cdk/a11y';\nimport * as i3 from '@angular/cdk/layout';\nimport { Breakpoints } from '@angular/cdk/layout';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Maximum amount of milliseconds that can be passed into setTimeout. */\nfunction SimpleSnackBar_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"button\", 2);\n i0.ɵɵlistener(\"click\", function SimpleSnackBar_Conditional_2_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.action());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.data.action, \" \");\n }\n}\nconst _c0 = [\"label\"];\nfunction MatSnackBarContainer_ng_template_4_Template(rf, ctx) {}\nconst MAX_TIMEOUT = /*#__PURE__*/Math.pow(2, 31) - 1;\n/**\n * Reference to a snack bar dispatched from the snack bar service.\n */\nclass MatSnackBarRef {\n constructor(containerInstance, _overlayRef) {\n this._overlayRef = _overlayRef;\n /** Subject for notifying the user that the snack bar has been dismissed. */\n this._afterDismissed = new Subject();\n /** Subject for notifying the user that the snack bar has opened and appeared. */\n this._afterOpened = new Subject();\n /** Subject for notifying the user that the snack bar action was called. */\n this._onAction = new Subject();\n /** Whether the snack bar was dismissed using the action button. */\n this._dismissedByAction = false;\n this.containerInstance = containerInstance;\n containerInstance._onExit.subscribe(() => this._finishDismiss());\n }\n /** Dismisses the snack bar. */\n dismiss() {\n if (!this._afterDismissed.closed) {\n this.containerInstance.exit();\n }\n clearTimeout(this._durationTimeoutId);\n }\n /** Marks the snackbar action clicked. */\n dismissWithAction() {\n if (!this._onAction.closed) {\n this._dismissedByAction = true;\n this._onAction.next();\n this._onAction.complete();\n this.dismiss();\n }\n clearTimeout(this._durationTimeoutId);\n }\n /**\n * Marks the snackbar action clicked.\n * @deprecated Use `dismissWithAction` instead.\n * @breaking-change 8.0.0\n */\n closeWithAction() {\n this.dismissWithAction();\n }\n /** Dismisses the snack bar after some duration */\n _dismissAfter(duration) {\n // Note that we need to cap the duration to the maximum value for setTimeout, because\n // it'll revert to 1 if somebody passes in something greater (e.g. `Infinity`). See #17234.\n this._durationTimeoutId = setTimeout(() => this.dismiss(), Math.min(duration, MAX_TIMEOUT));\n }\n /** Marks the snackbar as opened */\n _open() {\n if (!this._afterOpened.closed) {\n this._afterOpened.next();\n this._afterOpened.complete();\n }\n }\n /** Cleans up the DOM after closing. */\n _finishDismiss() {\n this._overlayRef.dispose();\n if (!this._onAction.closed) {\n this._onAction.complete();\n }\n this._afterDismissed.next({\n dismissedByAction: this._dismissedByAction\n });\n this._afterDismissed.complete();\n this._dismissedByAction = false;\n }\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed() {\n return this._afterDismissed;\n }\n /** Gets an observable that is notified when the snack bar has opened and appeared. */\n afterOpened() {\n return this.containerInstance._onEnter;\n }\n /** Gets an observable that is notified when the snack bar action is called. */\n onAction() {\n return this._onAction;\n }\n}\n\n/** Injection token that can be used to access the data that was passed in to a snack bar. */\nconst MAT_SNACK_BAR_DATA = /*#__PURE__*/new InjectionToken('MatSnackBarData');\n/**\n * Configuration used when opening a snack-bar.\n */\nclass MatSnackBarConfig {\n constructor() {\n /** The politeness level for the MatAriaLiveAnnouncer announcement. */\n this.politeness = 'assertive';\n /**\n * Message to be announced by the LiveAnnouncer. When opening a snackbar without a custom\n * component or template, the announcement message will default to the specified message.\n */\n this.announcementMessage = '';\n /** The length of time in milliseconds to wait before automatically dismissing the snack bar. */\n this.duration = 0;\n /** Data being injected into the child component. */\n this.data = null;\n /** The horizontal position to place the snack bar. */\n this.horizontalPosition = 'center';\n /** The vertical position to place the snack bar. */\n this.verticalPosition = 'bottom';\n }\n}\n\n/** Directive that should be applied to the text element to be rendered in the snack bar. */\nlet MatSnackBarLabel = /*#__PURE__*/(() => {\n class MatSnackBarLabel {\n static {\n this.ɵfac = function MatSnackBarLabel_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBarLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarLabel,\n selectors: [[\"\", \"matSnackBarLabel\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-label\", \"mdc-snackbar__label\"],\n standalone: true\n });\n }\n }\n return MatSnackBarLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Directive that should be applied to the element containing the snack bar's action buttons. */\nlet MatSnackBarActions = /*#__PURE__*/(() => {\n class MatSnackBarActions {\n static {\n this.ɵfac = function MatSnackBarActions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBarActions)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarActions,\n selectors: [[\"\", \"matSnackBarActions\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-actions\", \"mdc-snackbar__actions\"],\n standalone: true\n });\n }\n }\n return MatSnackBarActions;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Directive that should be applied to each of the snack bar's action buttons. */\nlet MatSnackBarAction = /*#__PURE__*/(() => {\n class MatSnackBarAction {\n static {\n this.ɵfac = function MatSnackBarAction_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBarAction)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSnackBarAction,\n selectors: [[\"\", \"matSnackBarAction\", \"\"]],\n hostAttrs: [1, \"mat-mdc-snack-bar-action\", \"mdc-snackbar__action\"],\n standalone: true\n });\n }\n }\n return MatSnackBarAction;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SimpleSnackBar = /*#__PURE__*/(() => {\n class SimpleSnackBar {\n constructor(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /** Performs the action on the snack bar. */\n action() {\n this.snackBarRef.dismissWithAction();\n }\n /** If the action button should be shown. */\n get hasAction() {\n return !!this.data.action;\n }\n static {\n this.ɵfac = function SimpleSnackBar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SimpleSnackBar)(i0.ɵɵdirectiveInject(MatSnackBarRef), i0.ɵɵdirectiveInject(MAT_SNACK_BAR_DATA));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SimpleSnackBar,\n selectors: [[\"simple-snack-bar\"]],\n hostAttrs: [1, \"mat-mdc-simple-snack-bar\"],\n exportAs: [\"matSnackBar\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 2,\n consts: [[\"matSnackBarLabel\", \"\"], [\"matSnackBarActions\", \"\"], [\"mat-button\", \"\", \"matSnackBarAction\", \"\", 3, \"click\"]],\n template: function SimpleSnackBar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(2, SimpleSnackBar_Conditional_2_Template, 3, 1, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx.data.message, \"\\n\");\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.hasAction ? 2 : -1);\n }\n },\n dependencies: [MatButton, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction],\n styles: [\".mat-mdc-simple-snack-bar{display:flex}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return SimpleSnackBar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the Material snack bar.\n * @docs-private\n */\nconst matSnackBarAnimations = {\n /** Animation that shows and hides a snack bar. */\n snackBarState: /*#__PURE__*/trigger('state', [/*#__PURE__*/state('void, hidden', /*#__PURE__*/style({\n transform: 'scale(0.8)',\n opacity: 0\n })), /*#__PURE__*/state('visible', /*#__PURE__*/style({\n transform: 'scale(1)',\n opacity: 1\n })), /*#__PURE__*/transition('* => visible', /*#__PURE__*/animate('150ms cubic-bezier(0, 0, 0.2, 1)')), /*#__PURE__*/transition('* => void, * => hidden', /*#__PURE__*/animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', /*#__PURE__*/style({\n opacity: 0\n })))])\n};\nlet uniqueId = 0;\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n */\nlet MatSnackBarContainer = /*#__PURE__*/(() => {\n class MatSnackBarContainer extends BasePortalOutlet {\n constructor(_ngZone, _elementRef, _changeDetectorRef, _platform, /** The snack bar configuration. */\n snackBarConfig) {\n super();\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._platform = _platform;\n this.snackBarConfig = snackBarConfig;\n this._document = inject(DOCUMENT);\n this._trackedModals = new Set();\n /** The number of milliseconds to wait before announcing the snack bar's content. */\n this._announceDelay = 150;\n /** Whether the component has been destroyed. */\n this._destroyed = false;\n /** Subject for notifying that the snack bar has announced to screen readers. */\n this._onAnnounce = new Subject();\n /** Subject for notifying that the snack bar has exited from view. */\n this._onExit = new Subject();\n /** Subject for notifying that the snack bar has finished entering the view. */\n this._onEnter = new Subject();\n /** The state of the snack bar animations. */\n this._animationState = 'void';\n /** Unique ID of the aria-live element. */\n this._liveElementId = `mat-snack-bar-container-live-${uniqueId++}`;\n /**\n * Attaches a DOM portal to the snack bar container.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n this.attachDomPortal = portal => {\n this._assertNotAttached();\n const result = this._portalOutlet.attachDomPortal(portal);\n this._afterPortalAttached();\n return result;\n };\n // Use aria-live rather than a live role like 'alert' or 'status'\n // because NVDA and JAWS have show inconsistent behavior with live roles.\n if (snackBarConfig.politeness === 'assertive' && !snackBarConfig.announcementMessage) {\n this._live = 'assertive';\n } else if (snackBarConfig.politeness === 'off') {\n this._live = 'off';\n } else {\n this._live = 'polite';\n }\n // Only set role for Firefox. Set role based on aria-live because setting role=\"alert\" implies\n // aria-live=\"assertive\" which may cause issues if aria-live is set to \"polite\" above.\n if (this._platform.FIREFOX) {\n if (this._live === 'polite') {\n this._role = 'status';\n }\n if (this._live === 'assertive') {\n this._role = 'alert';\n }\n }\n }\n /** Attach a component portal as content to this snack bar container. */\n attachComponentPortal(portal) {\n this._assertNotAttached();\n const result = this._portalOutlet.attachComponentPortal(portal);\n this._afterPortalAttached();\n return result;\n }\n /** Attach a template portal as content to this snack bar container. */\n attachTemplatePortal(portal) {\n this._assertNotAttached();\n const result = this._portalOutlet.attachTemplatePortal(portal);\n this._afterPortalAttached();\n return result;\n }\n /** Handle end of animations, updating the state of the snackbar. */\n onAnimationEnd(event) {\n const {\n fromState,\n toState\n } = event;\n if (toState === 'void' && fromState !== 'void' || toState === 'hidden') {\n this._completeExit();\n }\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n const onEnter = this._onEnter;\n this._ngZone.run(() => {\n onEnter.next();\n onEnter.complete();\n });\n }\n }\n /** Begin animation of snack bar entrance into view. */\n enter() {\n if (!this._destroyed) {\n this._animationState = 'visible';\n // _animationState lives in host bindings and `detectChanges` does not refresh host bindings\n // so we have to call `markForCheck` to ensure the host view is refreshed eventually.\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n this._screenReaderAnnounce();\n }\n }\n /** Begin animation of the snack bar exiting from view. */\n exit() {\n // It's common for snack bars to be opened by random outside calls like HTTP requests or\n // errors. Run inside the NgZone to ensure that it functions correctly.\n this._ngZone.run(() => {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n // Mark this element with an 'exit' attribute to indicate that the snackbar has\n // been dismissed and will soon be removed from the DOM. This is used by the snackbar\n // test harness.\n this._elementRef.nativeElement.setAttribute('mat-exit', '');\n // If the snack bar hasn't been announced by the time it exits it wouldn't have been open\n // long enough to visually read it either, so clear the timeout for announcing.\n clearTimeout(this._announceTimeoutId);\n });\n return this._onExit;\n }\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n ngOnDestroy() {\n this._destroyed = true;\n this._clearFromModals();\n this._completeExit();\n }\n /**\n * Removes the element in a microtask. Helps prevent errors where we end up\n * removing an element which is in the middle of an animation.\n */\n _completeExit() {\n queueMicrotask(() => {\n this._onExit.next();\n this._onExit.complete();\n });\n }\n /**\n * Called after the portal contents have been attached. Can be\n * used to modify the DOM once it's guaranteed to be in place.\n */\n _afterPortalAttached() {\n const element = this._elementRef.nativeElement;\n const panelClasses = this.snackBarConfig.panelClass;\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach(cssClass => element.classList.add(cssClass));\n } else {\n element.classList.add(panelClasses);\n }\n }\n this._exposeToModals();\n // Check to see if the attached component or template uses the MDC template structure,\n // specifically the MDC label. If not, the container should apply the MDC label class to this\n // component's label container, which will apply MDC's label styles to the attached view.\n const label = this._label.nativeElement;\n const labelClass = 'mdc-snackbar__label';\n label.classList.toggle(labelClass, !label.querySelector(`.${labelClass}`));\n }\n /**\n * Some browsers won't expose the accessibility node of the live element if there is an\n * `aria-modal` and the live element is outside of it. This method works around the issue by\n * pointing the `aria-owns` of all modals to the live element.\n */\n _exposeToModals() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with the\n // `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const id = this._liveElementId;\n const modals = this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal=\"true\"]');\n for (let i = 0; i < modals.length; i++) {\n const modal = modals[i];\n const ariaOwns = modal.getAttribute('aria-owns');\n this._trackedModals.add(modal);\n if (!ariaOwns) {\n modal.setAttribute('aria-owns', id);\n } else if (ariaOwns.indexOf(id) === -1) {\n modal.setAttribute('aria-owns', ariaOwns + ' ' + id);\n }\n }\n }\n /** Clears the references to the live element from any modals it was added to. */\n _clearFromModals() {\n this._trackedModals.forEach(modal => {\n const ariaOwns = modal.getAttribute('aria-owns');\n if (ariaOwns) {\n const newValue = ariaOwns.replace(this._liveElementId, '').trim();\n if (newValue.length > 0) {\n modal.setAttribute('aria-owns', newValue);\n } else {\n modal.removeAttribute('aria-owns');\n }\n }\n });\n this._trackedModals.clear();\n }\n /** Asserts that no content is already attached to the container. */\n _assertNotAttached() {\n if (this._portalOutlet.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n }\n /**\n * Starts a timeout to move the snack bar content to the live region so screen readers will\n * announce it.\n */\n _screenReaderAnnounce() {\n if (!this._announceTimeoutId) {\n this._ngZone.runOutsideAngular(() => {\n this._announceTimeoutId = setTimeout(() => {\n const inertElement = this._elementRef.nativeElement.querySelector('[aria-hidden]');\n const liveElement = this._elementRef.nativeElement.querySelector('[aria-live]');\n if (inertElement && liveElement) {\n // If an element in the snack bar content is focused before being moved\n // track it and restore focus after moving to the live region.\n let focusedElement = null;\n if (this._platform.isBrowser && document.activeElement instanceof HTMLElement && inertElement.contains(document.activeElement)) {\n focusedElement = document.activeElement;\n }\n inertElement.removeAttribute('aria-hidden');\n liveElement.appendChild(inertElement);\n focusedElement?.focus();\n this._onAnnounce.next();\n this._onAnnounce.complete();\n }\n }, this._announceDelay);\n });\n }\n }\n static {\n this.ɵfac = function MatSnackBarContainer_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBarContainer)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Platform), i0.ɵɵdirectiveInject(MatSnackBarConfig));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSnackBarContainer,\n selectors: [[\"mat-snack-bar-container\"]],\n viewQuery: function MatSnackBarContainer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(CdkPortalOutlet, 7);\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._portalOutlet = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._label = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-snackbar\", \"mat-mdc-snack-bar-container\"],\n hostVars: 1,\n hostBindings: function MatSnackBarContainer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@state.done\", function MatSnackBarContainer_animation_state_done_HostBindingHandler($event) {\n return ctx.onAnimationEnd($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@state\", ctx._animationState);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 3,\n consts: [[\"label\", \"\"], [1, \"mdc-snackbar__surface\", \"mat-mdc-snackbar-surface\"], [1, \"mat-mdc-snack-bar-label\"], [\"aria-hidden\", \"true\"], [\"cdkPortalOutlet\", \"\"]],\n template: function MatSnackBarContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"div\", 2, 0)(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatSnackBarContainer_ng_template_4_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(5, \"div\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(5);\n i0.ɵɵattribute(\"aria-live\", ctx._live)(\"role\", ctx._role)(\"id\", ctx._liveElementId);\n }\n },\n dependencies: [CdkPortalOutlet],\n styles: [\".mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}.cdk-high-contrast-active .mat-mdc-snackbar-surface{outline:solid 1px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-app-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-app-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-app-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-app-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-app-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-app-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-app-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){color:var(--mat-snack-bar-button-color, var(--mat-app-inverse-primary));--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1}\"],\n encapsulation: 2,\n data: {\n animation: [matSnackBarAnimations.snackBarState]\n }\n });\n }\n }\n return MatSnackBarContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** @docs-private */\nfunction MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY() {\n return new MatSnackBarConfig();\n}\n/** Injection token that can be used to specify default snack bar. */\nconst MAT_SNACK_BAR_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-snack-bar-default-options', {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY\n});\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nlet MatSnackBar = /*#__PURE__*/(() => {\n class MatSnackBar {\n /** Reference to the currently opened snackbar at *any* level. */\n get _openedSnackBarRef() {\n const parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n }\n set _openedSnackBarRef(value) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n } else {\n this._snackBarRefAtThisLevel = value;\n }\n }\n constructor(_overlay, _live, _injector, _breakpointObserver, _parentSnackBar, _defaultConfig) {\n this._overlay = _overlay;\n this._live = _live;\n this._injector = _injector;\n this._breakpointObserver = _breakpointObserver;\n this._parentSnackBar = _parentSnackBar;\n this._defaultConfig = _defaultConfig;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n this._snackBarRefAtThisLevel = null;\n /** The component that should be rendered as the snack bar's simple component. */\n this.simpleSnackBarComponent = SimpleSnackBar;\n /** The container component that attaches the provided template or component. */\n this.snackBarContainerComponent = MatSnackBarContainer;\n /** The CSS class to apply for handset mode. */\n this.handsetCssClass = 'mat-mdc-snack-bar-handset';\n }\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromComponent(component, config) {\n return this._attach(component, config);\n }\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n openFromTemplate(template, config) {\n return this._attach(template, config);\n }\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n open(message, action = '', config) {\n const _config = {\n ...this._defaultConfig,\n ...config\n };\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = {\n message,\n action\n };\n // Since the snack bar has `role=\"alert\"`, we don't\n // want to announce the same message twice.\n if (_config.announcementMessage === message) {\n _config.announcementMessage = undefined;\n }\n return this.openFromComponent(this.simpleSnackBarComponent, _config);\n }\n /**\n * Dismisses the currently-visible snack bar.\n */\n dismiss() {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n }\n ngOnDestroy() {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n }\n /**\n * Attaches the snack bar container component to the overlay.\n */\n _attachSnackBarContainer(overlayRef, config) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this._injector,\n providers: [{\n provide: MatSnackBarConfig,\n useValue: config\n }]\n });\n const containerPortal = new ComponentPortal(this.snackBarContainerComponent, config.viewContainerRef, injector);\n const containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n }\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n _attach(content, userConfig) {\n const config = {\n ...new MatSnackBarConfig(),\n ...this._defaultConfig,\n ...userConfig\n };\n const overlayRef = this._createOverlay(config);\n const container = this._attachSnackBarContainer(overlayRef, config);\n const snackBarRef = new MatSnackBarRef(container, overlayRef);\n if (content instanceof TemplateRef) {\n const portal = new TemplatePortal(content, null, {\n $implicit: config.data,\n snackBarRef\n });\n snackBarRef.instance = container.attachTemplatePortal(portal);\n } else {\n const injector = this._createInjector(config, snackBarRef);\n const portal = new ComponentPortal(content, undefined, injector);\n const contentRef = container.attachComponentPortal(portal);\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver.observe(Breakpoints.HandsetPortrait).pipe(takeUntil(overlayRef.detachments())).subscribe(state => {\n overlayRef.overlayElement.classList.toggle(this.handsetCssClass, state.matches);\n });\n if (config.announcementMessage) {\n // Wait until the snack bar contents have been announced then deliver this message.\n container._onAnnounce.subscribe(() => {\n this._live.announce(config.announcementMessage, config.politeness);\n });\n }\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n }\n /** Animates the old snack bar out and the new one in. */\n _animateSnackBar(snackBarRef, config) {\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe(() => {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (this._openedSnackBarRef == snackBarRef) {\n this._openedSnackBarRef = null;\n }\n if (config.announcementMessage) {\n this._live.clear();\n }\n });\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe(() => {\n snackBarRef.containerInstance.enter();\n });\n this._openedSnackBarRef.dismiss();\n } else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe(() => snackBarRef._dismissAfter(config.duration));\n }\n }\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n _createOverlay(config) {\n const overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n let positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n const isRtl = config.direction === 'rtl';\n const isLeft = config.horizontalPosition === 'left' || config.horizontalPosition === 'start' && !isRtl || config.horizontalPosition === 'end' && isRtl;\n const isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n } else if (isRight) {\n positionStrategy.right('0');\n } else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n } else {\n positionStrategy.bottom('0');\n }\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n }\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n _createInjector(config, snackBarRef) {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n return Injector.create({\n parent: userInjector || this._injector,\n providers: [{\n provide: MatSnackBarRef,\n useValue: snackBarRef\n }, {\n provide: MAT_SNACK_BAR_DATA,\n useValue: config.data\n }]\n });\n }\n static {\n this.ɵfac = function MatSnackBar_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBar)(i0.ɵɵinject(i1$1.Overlay), i0.ɵɵinject(i2.LiveAnnouncer), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i3.BreakpointObserver), i0.ɵɵinject(MatSnackBar, 12), i0.ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatSnackBar,\n factory: MatSnackBar.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return MatSnackBar;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DIRECTIVES = [MatSnackBarContainer, MatSnackBarLabel, MatSnackBarActions, MatSnackBarAction];\nlet MatSnackBarModule = /*#__PURE__*/(() => {\n class MatSnackBarModule {\n static {\n this.ɵfac = function MatSnackBarModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSnackBarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSnackBarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MatSnackBar],\n imports: [OverlayModule, PortalModule, MatButtonModule, MatCommonModule, SimpleSnackBar, MatCommonModule]\n });\n }\n }\n return MatSnackBarModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SNACK_BAR_DATA, MAT_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MatSnackBar, MatSnackBarAction, MatSnackBarActions, MatSnackBarConfig, MatSnackBarContainer, MatSnackBarLabel, MatSnackBarModule, MatSnackBarRef, SimpleSnackBar, matSnackBarAnimations };\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, HostBinding, Inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n\nimport { ToasterModel } from './toaster.service';\n\n@Component({\n selector: 'ms-toaster',\n template: `\n \n \n \n `,\n standalone: true,\n imports: [NgIf, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToasterComponent {\n @HostBinding('class') className = 'toaster';\n\n constructor(@Inject(MAT_SNACK_BAR_DATA) public toast: ToasterModel) {}\n}\n","import { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarDismiss } from '@angular/material/snack-bar';\n\nimport { EpcotConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Observable } from 'rxjs';\n\nimport { ToasterComponent } from './toaster.component';\n\nexport interface ToasterConfig {\n icon?: string;\n duration?: number;\n panelClass?: string;\n}\n\nexport interface ToasterModel {\n icon?: string;\n message: string;\n dismiss: () => void;\n}\n\nexport interface Toaster {\n dismissed: Observable;\n opened: Observable;\n dismiss(): void;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ToasterService {\n private isEpcotEnabled: boolean;\n constructor(\n private snackBar: MatSnackBar,\n private epcotConfigService: EpcotConfig,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled;\n }\n\n open(message: string, { icon, duration, panelClass }: ToasterConfig = {}): Toaster {\n const toasterPanelClass = this.isEpcotEnabled ? 'toaster-panel' : 'row-toaster-panel';\n const panelClasses = [toasterPanelClass];\n if (panelClass) {\n panelClasses.push(...panelClass.split(' '));\n }\n const toaster = this.snackBar.openFromComponent(ToasterComponent, {\n data: {\n icon,\n message,\n dismiss: () => {\n toaster.dismiss();\n },\n },\n horizontalPosition: 'left',\n verticalPosition: 'bottom',\n panelClass: panelClasses,\n duration,\n });\n\n return {\n dismiss: () => {\n toaster.dismiss();\n },\n dismissed: toaster.afterDismissed(),\n opened: toaster.afterOpened(),\n };\n }\n\n dismiss(): void {\n this.snackBar.dismiss();\n }\n}\n","function n(n) {\n for (var r = arguments.length, t = Array(r > 1 ? r - 1 : 0), e = 1; e < r; e++) t[e - 1] = arguments[e];\n if (\"production\" !== process.env.NODE_ENV) {\n var i = Y[n],\n o = i ? \"function\" == typeof i ? i.apply(null, t) : i : \"unknown error nr: \" + n;\n throw Error(\"[Immer] \" + o);\n }\n throw Error(\"[Immer] minified error nr: \" + n + (t.length ? \" \" + t.map(function (n) {\n return \"'\" + n + \"'\";\n }).join(\",\") : \"\") + \". Find the full error at: https://bit.ly/3cXEKWf\");\n}\nfunction r(n) {\n return !!n && !!n[Q];\n}\nfunction t(n) {\n var r;\n return !!n && (function (n) {\n if (!n || \"object\" != typeof n) return !1;\n var r = Object.getPrototypeOf(n);\n if (null === r) return !0;\n var t = Object.hasOwnProperty.call(r, \"constructor\") && r.constructor;\n return t === Object || \"function\" == typeof t && Function.toString.call(t) === Z;\n }(n) || Array.isArray(n) || !!n[L] || !!(null === (r = n.constructor) || void 0 === r ? void 0 : r[L]) || s(n) || v(n));\n}\nfunction e(t) {\n return r(t) || n(23, t), t[Q].t;\n}\nfunction i(n, r, t) {\n void 0 === t && (t = !1), 0 === o(n) ? (t ? Object.keys : nn)(n).forEach(function (e) {\n t && \"symbol\" == typeof e || r(e, n[e], n);\n }) : n.forEach(function (t, e) {\n return r(e, t, n);\n });\n}\nfunction o(n) {\n var r = n[Q];\n return r ? r.i > 3 ? r.i - 4 : r.i : Array.isArray(n) ? 1 : s(n) ? 2 : v(n) ? 3 : 0;\n}\nfunction u(n, r) {\n return 2 === o(n) ? n.has(r) : Object.prototype.hasOwnProperty.call(n, r);\n}\nfunction a(n, r) {\n return 2 === o(n) ? n.get(r) : n[r];\n}\nfunction f(n, r, t) {\n var e = o(n);\n 2 === e ? n.set(r, t) : 3 === e ? n.add(t) : n[r] = t;\n}\nfunction c(n, r) {\n return n === r ? 0 !== n || 1 / n == 1 / r : n != n && r != r;\n}\nfunction s(n) {\n return X && n instanceof Map;\n}\nfunction v(n) {\n return q && n instanceof Set;\n}\nfunction p(n) {\n return n.o || n.t;\n}\nfunction l(n) {\n if (Array.isArray(n)) return Array.prototype.slice.call(n);\n var r = rn(n);\n delete r[Q];\n for (var t = nn(r), e = 0; e < t.length; e++) {\n var i = t[e],\n o = r[i];\n !1 === o.writable && (o.writable = !0, o.configurable = !0), (o.get || o.set) && (r[i] = {\n configurable: !0,\n writable: !0,\n enumerable: o.enumerable,\n value: n[i]\n });\n }\n return Object.create(Object.getPrototypeOf(n), r);\n}\nfunction d(n, e) {\n return void 0 === e && (e = !1), y(n) || r(n) || !t(n) || (o(n) > 1 && (n.set = n.add = n.clear = n.delete = h), Object.freeze(n), e && i(n, function (n, r) {\n return d(r, !0);\n }, !0)), n;\n}\nfunction h() {\n n(2);\n}\nfunction y(n) {\n return null == n || \"object\" != typeof n || Object.isFrozen(n);\n}\nfunction b(r) {\n var t = tn[r];\n return t || n(18, r), t;\n}\nfunction m(n, r) {\n tn[n] || (tn[n] = r);\n}\nfunction _() {\n return \"production\" === process.env.NODE_ENV || U || n(0), U;\n}\nfunction j(n, r) {\n r && (b(\"Patches\"), n.u = [], n.s = [], n.v = r);\n}\nfunction g(n) {\n O(n), n.p.forEach(S), n.p = null;\n}\nfunction O(n) {\n n === U && (U = n.l);\n}\nfunction w(n) {\n return U = {\n p: [],\n l: U,\n h: n,\n m: !0,\n _: 0\n };\n}\nfunction S(n) {\n var r = n[Q];\n 0 === r.i || 1 === r.i ? r.j() : r.g = !0;\n}\nfunction P(r, e) {\n e._ = e.p.length;\n var i = e.p[0],\n o = void 0 !== r && r !== i;\n return e.h.O || b(\"ES5\").S(e, r, o), o ? (i[Q].P && (g(e), n(4)), t(r) && (r = M(e, r), e.l || x(e, r)), e.u && b(\"Patches\").M(i[Q].t, r, e.u, e.s)) : r = M(e, i, []), g(e), e.u && e.v(e.u, e.s), r !== H ? r : void 0;\n}\nfunction M(n, r, t) {\n if (y(r)) return r;\n var e = r[Q];\n if (!e) return i(r, function (i, o) {\n return A(n, e, r, i, o, t);\n }, !0), r;\n if (e.A !== n) return r;\n if (!e.P) return x(n, e.t, !0), e.t;\n if (!e.I) {\n e.I = !0, e.A._--;\n var o = 4 === e.i || 5 === e.i ? e.o = l(e.k) : e.o,\n u = o,\n a = !1;\n 3 === e.i && (u = new Set(o), o.clear(), a = !0), i(u, function (r, i) {\n return A(n, e, o, r, i, t, a);\n }), x(n, o, !1), t && n.u && b(\"Patches\").N(e, t, n.u, n.s);\n }\n return e.o;\n}\nfunction A(e, i, o, a, c, s, v) {\n if (\"production\" !== process.env.NODE_ENV && c === o && n(5), r(c)) {\n var p = M(e, c, s && i && 3 !== i.i && !u(i.R, a) ? s.concat(a) : void 0);\n if (f(o, a, p), !r(p)) return;\n e.m = !1;\n } else v && o.add(c);\n if (t(c) && !y(c)) {\n if (!e.h.D && e._ < 1) return;\n M(e, c), i && i.A.l || x(e, c);\n }\n}\nfunction x(n, r, t) {\n void 0 === t && (t = !1), !n.l && n.h.D && n.m && d(r, t);\n}\nfunction z(n, r) {\n var t = n[Q];\n return (t ? p(t) : n)[r];\n}\nfunction I(n, r) {\n if (r in n) for (var t = Object.getPrototypeOf(n); t;) {\n var e = Object.getOwnPropertyDescriptor(t, r);\n if (e) return e;\n t = Object.getPrototypeOf(t);\n }\n}\nfunction k(n) {\n n.P || (n.P = !0, n.l && k(n.l));\n}\nfunction E(n) {\n n.o || (n.o = l(n.t));\n}\nfunction N(n, r, t) {\n var e = s(r) ? b(\"MapSet\").F(r, t) : v(r) ? b(\"MapSet\").T(r, t) : n.O ? function (n, r) {\n var t = Array.isArray(n),\n e = {\n i: t ? 1 : 0,\n A: r ? r.A : _(),\n P: !1,\n I: !1,\n R: {},\n l: r,\n t: n,\n k: null,\n o: null,\n j: null,\n C: !1\n },\n i = e,\n o = en;\n t && (i = [e], o = on);\n var u = Proxy.revocable(i, o),\n a = u.revoke,\n f = u.proxy;\n return e.k = f, e.j = a, f;\n }(r, t) : b(\"ES5\").J(r, t);\n return (t ? t.A : _()).p.push(e), e;\n}\nfunction R(e) {\n return r(e) || n(22, e), function n(r) {\n if (!t(r)) return r;\n var e,\n u = r[Q],\n c = o(r);\n if (u) {\n if (!u.P && (u.i < 4 || !b(\"ES5\").K(u))) return u.t;\n u.I = !0, e = D(r, c), u.I = !1;\n } else e = D(r, c);\n return i(e, function (r, t) {\n u && a(u.t, r) === t || f(e, r, n(t));\n }), 3 === c ? new Set(e) : e;\n }(e);\n}\nfunction D(n, r) {\n switch (r) {\n case 2:\n return new Map(n);\n case 3:\n return Array.from(n);\n }\n return l(n);\n}\nfunction F() {\n function t(n, r) {\n var t = s[n];\n return t ? t.enumerable = r : s[n] = t = {\n configurable: !0,\n enumerable: r,\n get: function () {\n var r = this[Q];\n return \"production\" !== process.env.NODE_ENV && f(r), en.get(r, n);\n },\n set: function (r) {\n var t = this[Q];\n \"production\" !== process.env.NODE_ENV && f(t), en.set(t, n, r);\n }\n }, t;\n }\n function e(n) {\n for (var r = n.length - 1; r >= 0; r--) {\n var t = n[r][Q];\n if (!t.P) switch (t.i) {\n case 5:\n a(t) && k(t);\n break;\n case 4:\n o(t) && k(t);\n }\n }\n }\n function o(n) {\n for (var r = n.t, t = n.k, e = nn(t), i = e.length - 1; i >= 0; i--) {\n var o = e[i];\n if (o !== Q) {\n var a = r[o];\n if (void 0 === a && !u(r, o)) return !0;\n var f = t[o],\n s = f && f[Q];\n if (s ? s.t !== a : !c(f, a)) return !0;\n }\n }\n var v = !!r[Q];\n return e.length !== nn(r).length + (v ? 0 : 1);\n }\n function a(n) {\n var r = n.k;\n if (r.length !== n.t.length) return !0;\n var t = Object.getOwnPropertyDescriptor(r, r.length - 1);\n if (t && !t.get) return !0;\n for (var e = 0; e < r.length; e++) if (!r.hasOwnProperty(e)) return !0;\n return !1;\n }\n function f(r) {\n r.g && n(3, JSON.stringify(p(r)));\n }\n var s = {};\n m(\"ES5\", {\n J: function (n, r) {\n var e = Array.isArray(n),\n i = function (n, r) {\n if (n) {\n for (var e = Array(r.length), i = 0; i < r.length; i++) Object.defineProperty(e, \"\" + i, t(i, !0));\n return e;\n }\n var o = rn(r);\n delete o[Q];\n for (var u = nn(o), a = 0; a < u.length; a++) {\n var f = u[a];\n o[f] = t(f, n || !!o[f].enumerable);\n }\n return Object.create(Object.getPrototypeOf(r), o);\n }(e, n),\n o = {\n i: e ? 5 : 4,\n A: r ? r.A : _(),\n P: !1,\n I: !1,\n R: {},\n l: r,\n t: n,\n k: i,\n o: null,\n g: !1,\n C: !1\n };\n return Object.defineProperty(i, Q, {\n value: o,\n writable: !0\n }), i;\n },\n S: function (n, t, o) {\n o ? r(t) && t[Q].A === n && e(n.p) : (n.u && function n(r) {\n if (r && \"object\" == typeof r) {\n var t = r[Q];\n if (t) {\n var e = t.t,\n o = t.k,\n f = t.R,\n c = t.i;\n if (4 === c) i(o, function (r) {\n r !== Q && (void 0 !== e[r] || u(e, r) ? f[r] || n(o[r]) : (f[r] = !0, k(t)));\n }), i(e, function (n) {\n void 0 !== o[n] || u(o, n) || (f[n] = !1, k(t));\n });else if (5 === c) {\n if (a(t) && (k(t), f.length = !0), o.length < e.length) for (var s = o.length; s < e.length; s++) f[s] = !1;else for (var v = e.length; v < o.length; v++) f[v] = !0;\n for (var p = Math.min(o.length, e.length), l = 0; l < p; l++) o.hasOwnProperty(l) || (f[l] = !0), void 0 === f[l] && n(o[l]);\n }\n }\n }\n }(n.p[0]), e(n.p));\n },\n K: function (n) {\n return 4 === n.i ? o(n) : a(n);\n }\n });\n}\nfunction T() {\n function e(n) {\n if (!t(n)) return n;\n if (Array.isArray(n)) return n.map(e);\n if (s(n)) return new Map(Array.from(n.entries()).map(function (n) {\n return [n[0], e(n[1])];\n }));\n if (v(n)) return new Set(Array.from(n).map(e));\n var r = Object.create(Object.getPrototypeOf(n));\n for (var i in n) r[i] = e(n[i]);\n return u(n, L) && (r[L] = n[L]), r;\n }\n function f(n) {\n return r(n) ? e(n) : n;\n }\n var c = \"add\";\n m(\"Patches\", {\n $: function (r, t) {\n return t.forEach(function (t) {\n for (var i = t.path, u = t.op, f = r, s = 0; s < i.length - 1; s++) {\n var v = o(f),\n p = i[s];\n \"string\" != typeof p && \"number\" != typeof p && (p = \"\" + p), 0 !== v && 1 !== v || \"__proto__\" !== p && \"constructor\" !== p || n(24), \"function\" == typeof f && \"prototype\" === p && n(24), \"object\" != typeof (f = a(f, p)) && n(15, i.join(\"/\"));\n }\n var l = o(f),\n d = e(t.value),\n h = i[i.length - 1];\n switch (u) {\n case \"replace\":\n switch (l) {\n case 2:\n return f.set(h, d);\n case 3:\n n(16);\n default:\n return f[h] = d;\n }\n case c:\n switch (l) {\n case 1:\n return \"-\" === h ? f.push(d) : f.splice(h, 0, d);\n case 2:\n return f.set(h, d);\n case 3:\n return f.add(d);\n default:\n return f[h] = d;\n }\n case \"remove\":\n switch (l) {\n case 1:\n return f.splice(h, 1);\n case 2:\n return f.delete(h);\n case 3:\n return f.delete(t.value);\n default:\n return delete f[h];\n }\n default:\n n(17, u);\n }\n }), r;\n },\n N: function (n, r, t, e) {\n switch (n.i) {\n case 0:\n case 4:\n case 2:\n return function (n, r, t, e) {\n var o = n.t,\n s = n.o;\n i(n.R, function (n, i) {\n var v = a(o, n),\n p = a(s, n),\n l = i ? u(o, n) ? \"replace\" : c : \"remove\";\n if (v !== p || \"replace\" !== l) {\n var d = r.concat(n);\n t.push(\"remove\" === l ? {\n op: l,\n path: d\n } : {\n op: l,\n path: d,\n value: p\n }), e.push(l === c ? {\n op: \"remove\",\n path: d\n } : \"remove\" === l ? {\n op: c,\n path: d,\n value: f(v)\n } : {\n op: \"replace\",\n path: d,\n value: f(v)\n });\n }\n });\n }(n, r, t, e);\n case 5:\n case 1:\n return function (n, r, t, e) {\n var i = n.t,\n o = n.R,\n u = n.o;\n if (u.length < i.length) {\n var a = [u, i];\n i = a[0], u = a[1];\n var s = [e, t];\n t = s[0], e = s[1];\n }\n for (var v = 0; v < i.length; v++) if (o[v] && u[v] !== i[v]) {\n var p = r.concat([v]);\n t.push({\n op: \"replace\",\n path: p,\n value: f(u[v])\n }), e.push({\n op: \"replace\",\n path: p,\n value: f(i[v])\n });\n }\n for (var l = i.length; l < u.length; l++) {\n var d = r.concat([l]);\n t.push({\n op: c,\n path: d,\n value: f(u[l])\n });\n }\n i.length < u.length && e.push({\n op: \"replace\",\n path: r.concat([\"length\"]),\n value: i.length\n });\n }(n, r, t, e);\n case 3:\n return function (n, r, t, e) {\n var i = n.t,\n o = n.o,\n u = 0;\n i.forEach(function (n) {\n if (!o.has(n)) {\n var i = r.concat([u]);\n t.push({\n op: \"remove\",\n path: i,\n value: n\n }), e.unshift({\n op: c,\n path: i,\n value: n\n });\n }\n u++;\n }), u = 0, o.forEach(function (n) {\n if (!i.has(n)) {\n var o = r.concat([u]);\n t.push({\n op: c,\n path: o,\n value: n\n }), e.unshift({\n op: \"remove\",\n path: o,\n value: n\n });\n }\n u++;\n });\n }(n, r, t, e);\n }\n },\n M: function (n, r, t, e) {\n t.push({\n op: \"replace\",\n path: [],\n value: r === H ? void 0 : r\n }), e.push({\n op: \"replace\",\n path: [],\n value: n\n });\n }\n });\n}\nfunction C() {\n function r(n, r) {\n function t() {\n this.constructor = n;\n }\n a(n, r), n.prototype = (t.prototype = r.prototype, new t());\n }\n function e(n) {\n n.o || (n.R = new Map(), n.o = new Map(n.t));\n }\n function o(n) {\n n.o || (n.o = new Set(), n.t.forEach(function (r) {\n if (t(r)) {\n var e = N(n.A.h, r, n);\n n.p.set(r, e), n.o.add(e);\n } else n.o.add(r);\n }));\n }\n function u(r) {\n r.g && n(3, JSON.stringify(p(r)));\n }\n var a = function (n, r) {\n return (a = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (n, r) {\n n.__proto__ = r;\n } || function (n, r) {\n for (var t in r) r.hasOwnProperty(t) && (n[t] = r[t]);\n })(n, r);\n },\n f = function () {\n function n(n, r) {\n return this[Q] = {\n i: 2,\n l: r,\n A: r ? r.A : _(),\n P: !1,\n I: !1,\n o: void 0,\n R: void 0,\n t: n,\n k: this,\n C: !1,\n g: !1\n }, this;\n }\n r(n, Map);\n var o = n.prototype;\n return Object.defineProperty(o, \"size\", {\n get: function () {\n return p(this[Q]).size;\n }\n }), o.has = function (n) {\n return p(this[Q]).has(n);\n }, o.set = function (n, r) {\n var t = this[Q];\n return u(t), p(t).has(n) && p(t).get(n) === r || (e(t), k(t), t.R.set(n, !0), t.o.set(n, r), t.R.set(n, !0)), this;\n }, o.delete = function (n) {\n if (!this.has(n)) return !1;\n var r = this[Q];\n return u(r), e(r), k(r), r.t.has(n) ? r.R.set(n, !1) : r.R.delete(n), r.o.delete(n), !0;\n }, o.clear = function () {\n var n = this[Q];\n u(n), p(n).size && (e(n), k(n), n.R = new Map(), i(n.t, function (r) {\n n.R.set(r, !1);\n }), n.o.clear());\n }, o.forEach = function (n, r) {\n var t = this;\n p(this[Q]).forEach(function (e, i) {\n n.call(r, t.get(i), i, t);\n });\n }, o.get = function (n) {\n var r = this[Q];\n u(r);\n var i = p(r).get(n);\n if (r.I || !t(i)) return i;\n if (i !== r.t.get(n)) return i;\n var o = N(r.A.h, i, r);\n return e(r), r.o.set(n, o), o;\n }, o.keys = function () {\n return p(this[Q]).keys();\n }, o.values = function () {\n var n,\n r = this,\n t = this.keys();\n return (n = {})[V] = function () {\n return r.values();\n }, n.next = function () {\n var n = t.next();\n return n.done ? n : {\n done: !1,\n value: r.get(n.value)\n };\n }, n;\n }, o.entries = function () {\n var n,\n r = this,\n t = this.keys();\n return (n = {})[V] = function () {\n return r.entries();\n }, n.next = function () {\n var n = t.next();\n if (n.done) return n;\n var e = r.get(n.value);\n return {\n done: !1,\n value: [n.value, e]\n };\n }, n;\n }, o[V] = function () {\n return this.entries();\n }, n;\n }(),\n c = function () {\n function n(n, r) {\n return this[Q] = {\n i: 3,\n l: r,\n A: r ? r.A : _(),\n P: !1,\n I: !1,\n o: void 0,\n t: n,\n k: this,\n p: new Map(),\n g: !1,\n C: !1\n }, this;\n }\n r(n, Set);\n var t = n.prototype;\n return Object.defineProperty(t, \"size\", {\n get: function () {\n return p(this[Q]).size;\n }\n }), t.has = function (n) {\n var r = this[Q];\n return u(r), r.o ? !!r.o.has(n) || !(!r.p.has(n) || !r.o.has(r.p.get(n))) : r.t.has(n);\n }, t.add = function (n) {\n var r = this[Q];\n return u(r), this.has(n) || (o(r), k(r), r.o.add(n)), this;\n }, t.delete = function (n) {\n if (!this.has(n)) return !1;\n var r = this[Q];\n return u(r), o(r), k(r), r.o.delete(n) || !!r.p.has(n) && r.o.delete(r.p.get(n));\n }, t.clear = function () {\n var n = this[Q];\n u(n), p(n).size && (o(n), k(n), n.o.clear());\n }, t.values = function () {\n var n = this[Q];\n return u(n), o(n), n.o.values();\n }, t.entries = function () {\n var n = this[Q];\n return u(n), o(n), n.o.entries();\n }, t.keys = function () {\n return this.values();\n }, t[V] = function () {\n return this.values();\n }, t.forEach = function (n, r) {\n for (var t = this.values(), e = t.next(); !e.done;) n.call(r, e.value, e.value, this), e = t.next();\n }, n;\n }();\n m(\"MapSet\", {\n F: function (n, r) {\n return new f(n, r);\n },\n T: function (n, r) {\n return new c(n, r);\n }\n });\n}\nfunction J() {\n F(), C(), T();\n}\nfunction K(n) {\n return n;\n}\nfunction $(n) {\n return n;\n}\nvar G,\n U,\n W = \"undefined\" != typeof Symbol && \"symbol\" == typeof Symbol(\"x\"),\n X = \"undefined\" != typeof Map,\n q = \"undefined\" != typeof Set,\n B = \"undefined\" != typeof Proxy && void 0 !== Proxy.revocable && \"undefined\" != typeof Reflect,\n H = W ? Symbol.for(\"immer-nothing\") : ((G = {})[\"immer-nothing\"] = !0, G),\n L = W ? Symbol.for(\"immer-draftable\") : \"__$immer_draftable\",\n Q = W ? Symbol.for(\"immer-state\") : \"__$immer_state\",\n V = \"undefined\" != typeof Symbol && Symbol.iterator || \"@@iterator\",\n Y = {\n 0: \"Illegal state\",\n 1: \"Immer drafts cannot have computed properties\",\n 2: \"This object has been frozen and should not be mutated\",\n 3: function (n) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + n;\n },\n 4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n 5: \"Immer forbids circular references\",\n 6: \"The first or second argument to `produce` must be a function\",\n 7: \"The third argument to `produce` must be a function or undefined\",\n 8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n 9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n 10: \"The given draft is already finalized\",\n 11: \"Object.defineProperty() cannot be used on an Immer draft\",\n 12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n 13: \"Immer only supports deleting array indices\",\n 14: \"Immer only supports setting array indices and the 'length' property\",\n 15: function (n) {\n return \"Cannot apply patch, path doesn't resolve: \" + n;\n },\n 16: 'Sets cannot have \"replace\" patches.',\n 17: function (n) {\n return \"Unsupported patch operation: \" + n;\n },\n 18: function (n) {\n return \"The plugin for '\" + n + \"' has not been loaded into Immer. To enable the plugin, import and call `enable\" + n + \"()` when initializing your application.\";\n },\n 20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n 21: function (n) {\n return \"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\" + n + \"'\";\n },\n 22: function (n) {\n return \"'current' expects a draft, got: \" + n;\n },\n 23: function (n) {\n return \"'original' expects a draft, got: \" + n;\n },\n 24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n },\n Z = \"\" + Object.prototype.constructor,\n nn = \"undefined\" != typeof Reflect && Reflect.ownKeys ? Reflect.ownKeys : void 0 !== Object.getOwnPropertySymbols ? function (n) {\n return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n));\n } : Object.getOwnPropertyNames,\n rn = Object.getOwnPropertyDescriptors || function (n) {\n var r = {};\n return nn(n).forEach(function (t) {\n r[t] = Object.getOwnPropertyDescriptor(n, t);\n }), r;\n },\n tn = {},\n en = {\n get: function (n, r) {\n if (r === Q) return n;\n var e = p(n);\n if (!u(e, r)) return function (n, r, t) {\n var e,\n i = I(r, t);\n return i ? \"value\" in i ? i.value : null === (e = i.get) || void 0 === e ? void 0 : e.call(n.k) : void 0;\n }(n, e, r);\n var i = e[r];\n return n.I || !t(i) ? i : i === z(n.t, r) ? (E(n), n.o[r] = N(n.A.h, i, n)) : i;\n },\n has: function (n, r) {\n return r in p(n);\n },\n ownKeys: function (n) {\n return Reflect.ownKeys(p(n));\n },\n set: function (n, r, t) {\n var e = I(p(n), r);\n if (null == e ? void 0 : e.set) return e.set.call(n.k, t), !0;\n if (!n.P) {\n var i = z(p(n), r),\n o = null == i ? void 0 : i[Q];\n if (o && o.t === t) return n.o[r] = t, n.R[r] = !1, !0;\n if (c(t, i) && (void 0 !== t || u(n.t, r))) return !0;\n E(n), k(n);\n }\n return n.o[r] === t && (void 0 !== t || r in n.o) || Number.isNaN(t) && Number.isNaN(n.o[r]) || (n.o[r] = t, n.R[r] = !0), !0;\n },\n deleteProperty: function (n, r) {\n return void 0 !== z(n.t, r) || r in n.t ? (n.R[r] = !1, E(n), k(n)) : delete n.R[r], n.o && delete n.o[r], !0;\n },\n getOwnPropertyDescriptor: function (n, r) {\n var t = p(n),\n e = Reflect.getOwnPropertyDescriptor(t, r);\n return e ? {\n writable: !0,\n configurable: 1 !== n.i || \"length\" !== r,\n enumerable: e.enumerable,\n value: t[r]\n } : e;\n },\n defineProperty: function () {\n n(11);\n },\n getPrototypeOf: function (n) {\n return Object.getPrototypeOf(n.t);\n },\n setPrototypeOf: function () {\n n(12);\n }\n },\n on = {};\ni(en, function (n, r) {\n on[n] = function () {\n return arguments[0] = arguments[0][0], r.apply(this, arguments);\n };\n}), on.deleteProperty = function (r, t) {\n return \"production\" !== process.env.NODE_ENV && isNaN(parseInt(t)) && n(13), on.set.call(this, r, t, void 0);\n}, on.set = function (r, t, e) {\n return \"production\" !== process.env.NODE_ENV && \"length\" !== t && isNaN(parseInt(t)) && n(14), en.set.call(this, r[0], t, e, r[0]);\n};\nvar un = function () {\n function e(r) {\n var e = this;\n this.O = B, this.D = !0, this.produce = function (r, i, o) {\n if (\"function\" == typeof r && \"function\" != typeof i) {\n var u = i;\n i = r;\n var a = e;\n return function (n) {\n var r = this;\n void 0 === n && (n = u);\n for (var t = arguments.length, e = Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) e[o - 1] = arguments[o];\n return a.produce(n, function (n) {\n var t;\n return (t = i).call.apply(t, [r, n].concat(e));\n });\n };\n }\n var f;\n if (\"function\" != typeof i && n(6), void 0 !== o && \"function\" != typeof o && n(7), t(r)) {\n var c = w(e),\n s = N(e, r, void 0),\n v = !0;\n try {\n f = i(s), v = !1;\n } finally {\n v ? g(c) : O(c);\n }\n return \"undefined\" != typeof Promise && f instanceof Promise ? f.then(function (n) {\n return j(c, o), P(n, c);\n }, function (n) {\n throw g(c), n;\n }) : (j(c, o), P(f, c));\n }\n if (!r || \"object\" != typeof r) {\n if (void 0 === (f = i(r)) && (f = r), f === H && (f = void 0), e.D && d(f, !0), o) {\n var p = [],\n l = [];\n b(\"Patches\").M(r, f, p, l), o(p, l);\n }\n return f;\n }\n n(21, r);\n }, this.produceWithPatches = function (n, r) {\n if (\"function\" == typeof n) return function (r) {\n for (var t = arguments.length, i = Array(t > 1 ? t - 1 : 0), o = 1; o < t; o++) i[o - 1] = arguments[o];\n return e.produceWithPatches(r, function (r) {\n return n.apply(void 0, [r].concat(i));\n });\n };\n var t,\n i,\n o = e.produce(n, r, function (n, r) {\n t = n, i = r;\n });\n return \"undefined\" != typeof Promise && o instanceof Promise ? o.then(function (n) {\n return [n, t, i];\n }) : [o, t, i];\n }, \"boolean\" == typeof (null == r ? void 0 : r.useProxies) && this.setUseProxies(r.useProxies), \"boolean\" == typeof (null == r ? void 0 : r.autoFreeze) && this.setAutoFreeze(r.autoFreeze);\n }\n var i = e.prototype;\n return i.createDraft = function (e) {\n t(e) || n(8), r(e) && (e = R(e));\n var i = w(this),\n o = N(this, e, void 0);\n return o[Q].C = !0, O(i), o;\n }, i.finishDraft = function (r, t) {\n var e = r && r[Q];\n \"production\" !== process.env.NODE_ENV && (e && e.C || n(9), e.I && n(10));\n var i = e.A;\n return j(i, t), P(void 0, i);\n }, i.setAutoFreeze = function (n) {\n this.D = n;\n }, i.setUseProxies = function (r) {\n r && !B && n(20), this.O = r;\n }, i.applyPatches = function (n, t) {\n var e;\n for (e = t.length - 1; e >= 0; e--) {\n var i = t[e];\n if (0 === i.path.length && \"replace\" === i.op) {\n n = i.value;\n break;\n }\n }\n e > -1 && (t = t.slice(e + 1));\n var o = b(\"Patches\").$;\n return r(n) ? o(n, t) : this.produce(n, function (n) {\n return o(n, t);\n });\n }, e;\n }(),\n an = new un(),\n fn = an.produce,\n cn = an.produceWithPatches.bind(an),\n sn = an.setAutoFreeze.bind(an),\n vn = an.setUseProxies.bind(an),\n pn = an.applyPatches.bind(an),\n ln = an.createDraft.bind(an),\n dn = an.finishDraft.bind(an);\nexport default fn;\nexport { un as Immer, pn as applyPatches, K as castDraft, $ as castImmutable, ln as createDraft, R as current, J as enableAllPlugins, F as enableES5, C as enableMapSet, T as enablePatches, dn as finishDraft, d as freeze, L as immerable, r as isDraft, t as isDraftable, H as nothing, e as original, fn as produce, cn as produceWithPatches, sn as setAutoFreeze, vn as setUseProxies };\n","import { ImageProfile } from '@cds/betting-offer';\nimport { EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { Omit } from '@frontend/sports/common/core/utils/extended-types';\n\nexport enum FavouriteType {\n League = 'L',\n Participant = 'P',\n ParticipantV2 = 'P2',\n Fixture = 'F',\n FixtureV2 = 'F2',\n}\n\nexport interface FavouritesDto {\n sport: FavouritesSport;\n name: string;\n lang: string;\n type: FavouriteType;\n itemId?: string; // itemId might not be there if we're not adding favourites by id\n region?: FavouritesRegion;\n imageProfile?: ImageProfile;\n order?: number;\n upcomingOrder?: number;\n participantImage?: EventParticipantImage;\n}\n\nexport interface FavouritesSport {\n id: number;\n name: string;\n}\n\nexport interface FavouritesRegion {\n id: number;\n name: string;\n}\n\nexport interface FavouritesViewModel extends Omit {\n key: string;\n id: string;\n itemId: string;\n count: number;\n}\n\nexport class FavouritesResponse {\n favourites: FavouritesViewModel[];\n isDefault: boolean;\n}\n\nexport interface FavouritesError {\n message: string;\n severity: string;\n}\n\nexport interface FavouritesSettings {\n isResponsive: boolean;\n source: string;\n hasRemoveBtn: boolean;\n showRight: boolean;\n showRemove?: boolean;\n swipeCountRemove: boolean;\n}\n","import { FavouriteType, FavouritesViewModel } from './favourites.model';\n\nexport function isFixtureFavourite(favourite: FavouritesViewModel): boolean {\n return favourite.type === FavouriteType.Fixture || favourite.type === FavouriteType.FixtureV2;\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { FixtureType } from '@cds/betting-offer';\nimport { TagCount, TagType } from '@cds/betting-offer/tags';\nimport { BatchRequest, FixtureCountsRequest, FixtureState } from '@cds/query-objects';\nimport { BettingOfferApi } from '@frontend/sports/betting-offer/feature/offer-service';\nimport { toString } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { FavouriteType, FavouritesViewModel } from './favourites.model';\nimport { isFixtureFavourite } from './helpers';\n\n@Injectable({ providedIn: 'root' })\nexport class FavouritesFixturesService {\n constructor(private bettingOffer: BettingOfferApi) {}\n\n getCounts(favourites: FavouritesViewModel[]): Observable<{ [key: string]: TagCount[] }> {\n if (!favourites.length) {\n return of({});\n }\n\n const participantFavourite = (fav: FavouritesViewModel): boolean =>\n fav.type === FavouriteType.Participant || fav.type === FavouriteType.ParticipantV2;\n\n const request: BatchRequest[] = favourites.map((favourite) => {\n const mapped: BatchRequest = {\n batchId: favourite.id,\n request: {\n fixtureTypes: FixtureType.Standard,\n offerSource: this.getOfferSource(favourite),\n state: FixtureState.Latest,\n tagTypes: toString([TagType.Sport, TagType.Region, TagType.Tournament, TagType.Competition]),\n sportIds: toString(favourite.sport.id),\n extendedTags: '',\n fixtureParticipantIds: participantFavourite(favourite) ? toString(favourite.itemId) : '',\n competitionIds: favourite.type === FavouriteType.League ? toString(favourite.itemId) : '',\n fixtureIds: isFixtureFavourite(favourite) ? favourite.itemId : '',\n },\n };\n\n return mapped;\n });\n\n return this.bettingOffer.getBatchCounts(request).pipe(map((result) => result || {}));\n }\n\n private getOfferSource(favourite: FavouritesViewModel): OfferSource | undefined {\n if (favourite.type === FavouriteType.League) {\n return undefined;\n }\n\n if (favourite.type === FavouriteType.FixtureV2 || favourite.type === FavouriteType.ParticipantV2) {\n return OfferSource.V2;\n }\n\n return OfferSource.V1;\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { Injectable } from '@angular/core';\n\nimport { PrettyUrlsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SegmentNormalizer } from '@frontend/sports/navigation/core/feature/url-builder';\nimport { produce } from 'immer';\nimport { clone, trim } from 'lodash-es';\n\nimport { FavouriteType, FavouritesDto, FavouritesViewModel } from './favourites.model';\n\n@Injectable({ providedIn: 'root' })\nexport class FavouritesModelFactory {\n private normalizer: SegmentNormalizer;\n\n constructor(urlConfig: PrettyUrlsConfig) {\n this.normalizer = new SegmentNormalizer(urlConfig);\n }\n\n toModel(dto: FavouritesDto | FavouritesViewModel): Readonly {\n return produce(dto as FavouritesViewModel, (draft) => {\n draft.id = this.getToken(draft.type, draft.name || '', draft.sport.id, draft.itemId || 0);\n draft.key = this.getKey(draft);\n draft.count = 0;\n draft.region = clone(dto.region);\n draft.sport.name = dto.sport.name;\n draft.imageProfile = dto.imageProfile;\n draft.participantImage = dto.participantImage;\n });\n }\n\n toDto(val: FavouritesViewModel): Readonly {\n return val as FavouritesDto;\n }\n\n private getKey(value: FavouritesDto | FavouritesViewModel): string {\n return trim([value.type, 0, value.sport.id, value.itemId, value.name].join(','), ',');\n }\n\n private getToken(type: FavouriteType, name: string, sport: number, item: number | string): string {\n return this.normalizer.normalize(`${type} ${name} ${sport || 0} ${item || ''}`);\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { Injectable } from '@angular/core';\n\nimport { Competition as CompetitionTag, TagCount, TagType } from '@cds/betting-offer/tags';\nimport { EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { FavouritesConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Page } from '@frontend/vanilla/core';\nimport produce from 'immer';\nimport { differenceBy, maxBy } from 'lodash-es';\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, shareReplay, switchMap } from 'rxjs/operators';\n\nimport { FavouritesFixturesService } from './favourites-fixtures.service';\nimport { FavouritesModelFactory } from './favourites-model.factory';\nimport { FavouriteType, FavouritesDto, FavouritesResponse, FavouritesViewModel } from './favourites.model';\n\nexport enum FavouriteChangeType {\n Add = 'Add',\n Remove = 'Remove',\n Get = 'Get',\n Save = 'Save',\n}\n\nexport interface FavouriteChange {\n favourites: FavouritesViewModel[];\n changeType: FavouriteChangeType;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class FavouritesService {\n private favourites: FavouritesViewModel[] = [];\n private cached: Observable;\n\n private updating = false;\n private default: boolean;\n\n private eventSubject = new BehaviorSubject({ favourites: [], changeType: FavouriteChangeType.Get });\n\n constructor(\n private apiService: ApiService,\n private userService: UserService,\n private page: Page,\n private favouritesConfig: FavouritesConfig,\n private sitecore: Sitecore,\n private favouritesData: FavouritesFixturesService,\n private favouritesFactory: FavouritesModelFactory,\n private toaster: ToasterService,\n ) {\n const get = () => this.getList(true).subscribe();\n this.userService.onUserLogin$.pipe(filterSportsEmitLast()).subscribe(get);\n\n get();\n }\n\n get change(): Observable {\n return this.eventSubject;\n }\n\n get favouritesList(): FavouritesViewModel[] {\n return this.favourites;\n }\n\n get isDefault(): boolean {\n return this.default;\n }\n\n get isFull(): boolean {\n return this.favourites.length >= this.favouritesConfig.maxFavourites;\n }\n\n notify(message: string, iconClass?: string): void {\n this.toaster.open(message, { duration: this.favouritesConfig.toastMessageTimeOut, icon: iconClass });\n }\n\n add(\n itemId: string,\n sportId: number,\n type: FavouriteType,\n name: string,\n participantImage?: EventParticipantImage,\n ): Observable {\n if (this.updating) {\n return throwError(() => new Error('UPDATING'));\n }\n\n if (!this.userService.isAuthenticated) {\n return throwError(() => new Error(this.sitecore.favouritesMessages.NotAuthenticated));\n }\n\n if (this.isFull) {\n return throwError(\n () =>\n new Error(this.sitecore.favouritesMessages.TooManyFavourites.replace('{{maxCount}}', `(${this.favouritesConfig.maxFavourites})`)),\n );\n }\n\n const favourite = this.get(itemId, sportId, type);\n\n if (favourite) {\n return of(favourite);\n }\n\n const favForSport = this.favourites.find((f) => f.sport.id === sportId && f.upcomingOrder !== 0);\n const maxUpcomingOrder = maxBy(this.favourites.map((f) => f.upcomingOrder || 0));\n const maxOrder = maxBy(this.favourites.map((f) => f.order || 0));\n const newFavourite = this.favouritesFactory.toModel({\n sport: { id: sportId, name: '' },\n itemId,\n name,\n lang: this.page.culture,\n type,\n order: maxOrder ? maxOrder + 1 : 0,\n upcomingOrder: favForSport?.upcomingOrder || (maxUpcomingOrder ? maxUpcomingOrder + 1 : 0),\n participantImage,\n });\n\n const newFavourites = produce(this.favourites, (favs) => {\n favs.push(newFavourite);\n });\n\n const request = newFavourites.map((current) => this.favouritesFactory.toDto(current));\n\n return this.update(request).pipe(\n switchMap(() => this.loadCounts(newFavourites, true)),\n map((favourites) => {\n this.set(favourites);\n this.eventSubject.next({ favourites: this.favourites, changeType: FavouriteChangeType.Add });\n\n return this.get(itemId, sportId, type);\n }),\n catchError(() => throwError(() => new Error(this.sitecore.favouritesMessages.AddError))),\n );\n }\n\n save(newFavourites: FavouritesViewModel[]): Observable {\n if (this.updating) {\n return throwError(() => new Error('UPDATING'));\n }\n\n if (!this.userService.isAuthenticated) {\n return throwError(() => new Error(this.sitecore.favouritesMessages.NotAuthenticated));\n }\n\n const request = newFavourites.map((current) => this.favouritesFactory.toDto(current));\n\n return this.update(request).pipe(\n switchMap(() => this.loadCounts(newFavourites, true)),\n map((favourites) => {\n this.set(favourites);\n this.eventSubject.next({ favourites: this.favourites, changeType: FavouriteChangeType.Save });\n\n return favourites;\n }),\n catchError(() => throwError(() => new Error(this.sitecore.favouritesDashboard.Save))),\n );\n }\n\n remove(item: FavouritesViewModel | FavouritesViewModel[]): Observable {\n const itemArray = Array.isArray(item) ? item : [item];\n if (this.updating) {\n return throwError(() => new Error('UPDATING'));\n }\n\n if (!this.userService.isAuthenticated) {\n return throwError(() => new Error(this.sitecore.favouritesMessages.NotAuthenticated));\n }\n\n if (itemArray.length === 0) {\n return of();\n }\n\n const diff = differenceBy(this.favourites, itemArray, (current) => `${current.itemId}-${current.type}`);\n const request = diff.map((current) => this.favouritesFactory.toDto(current));\n\n return this.update(request).pipe(\n map(() => {\n this.set(diff);\n this.eventSubject.next({ favourites: this.favourites, changeType: FavouriteChangeType.Remove });\n }),\n );\n }\n\n get(itemId: string, sportId: number, type: FavouriteType): FavouritesViewModel | undefined {\n return this.favourites.find((favourite) => favourite.sport.id === sportId && favourite.itemId === itemId && favourite.type === type);\n }\n\n getList(refresh?: boolean): Observable {\n if (!this.cached || refresh) {\n this.default = !this.userService.isAuthenticated;\n\n this.cached = this.apiService.get('favourites').pipe(\n switchMap((result) => {\n this.default = result.isDefault;\n this.favourites = result.favourites.map((current) => this.favouritesFactory.toModel(current));\n\n return this.loadCounts(this.favourites);\n }),\n map((favourites) => {\n this.favourites = favourites;\n this.eventSubject.next({ favourites: this.favourites, changeType: FavouriteChangeType.Get });\n\n return this.favourites;\n }),\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n }\n\n return this.cached;\n }\n\n private loadCounts(favourites: FavouritesViewModel[], loadAdditionalData = false): Observable {\n return this.favouritesData.getCounts(favourites).pipe(\n map((result) => {\n if (!result) {\n return favourites;\n }\n\n return produce(favourites, (favDraft) => {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n favDraft.forEach((f) => {\n const tags = result[f.id];\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!tags?.length) {\n return;\n }\n\n const tag = this.findTag(tags, TagType.Tournament) || this.findTag(tags, TagType.Region) || tags[0];\n const sportTag = this.findTag(tags, TagType.Sport);\n const competitionTag = this.findTag(tags, TagType.Competition);\n // if it's a participant, the correct count is on the Sport tag otherwise any tag should have the correct count\n const countTag =\n f.type === FavouriteType.Participant || f.type === FavouriteType.ParticipantV2 ? sportTag || tags[0] : tags[0];\n\n if (loadAdditionalData) {\n if (f.type === FavouriteType.League && !f.region) {\n f.region = {\n id: tag.tag.id,\n name: tag.tag.name.value,\n };\n if (competitionTag) {\n f.imageProfile = (competitionTag.tag as CompetitionTag).imageProfile;\n }\n }\n if (sportTag && !f.sport.name) {\n f.sport.name = sportTag.tag.name.value;\n }\n }\n f.count = countTag.live + countTag.preMatch;\n });\n });\n }),\n );\n }\n\n private update(favourites: FavouritesDto[]): Observable {\n this.updating = true;\n\n // below seems to be related to finalize type\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n return this.apiService.post('favourites', { Favourites: favourites }).pipe(finalize(() => (this.updating = false)));\n }\n\n private set(favourites: FavouritesViewModel[]): void {\n this.favourites = favourites;\n this.cached = of(this.favourites).pipe(\n shareReplay({\n bufferSize: 1,\n refCount: true,\n }),\n );\n }\n\n private findTag(tags: TagCount[], type: TagType): TagCount | undefined {\n return tags.find((t) => t.tag.type === type);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { OfferSource } from '@cds';\nimport { FavouriteType, FavouritesService, FavouritesViewModel, isFixtureFavourite } from '@frontend/sports/favourites/core/feature';\nimport { GridEvent } from '@frontend/sports/grid/core/feature/model';\nimport { GridActions, IGridRootState, IGridState, gridStateSelector } from '@frontend/sports/grid/core/feature/store';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Store } from '@ngrx/store';\nimport { difference, flattenDeep, values } from 'lodash-es';\nimport { filter, map, pairwise, withLatestFrom } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class GridFavouriteService {\n constructor(\n private favouriteService: FavouritesService,\n private store: Store,\n private user: UserService,\n ) {\n this.favouriteService.change\n .pipe(\n filterSportsEmitLast(),\n map((change) => change.favourites.filter(isFixtureFavourite)),\n pairwise(),\n map(([previousChange, currentChange]) => [\n ...difference(previousChange, currentChange), // added stuff\n ...difference(currentChange, previousChange), // removed stuff\n ]),\n filter((change) => change.length > 0),\n withLatestFrom(this.store.select(gridStateSelector)),\n takeUntilDestroyed(),\n )\n .subscribe(([change, state]) => {\n this.updateFavourited(change, state);\n });\n }\n\n isFavourited(event: GridEvent): boolean | undefined {\n if (!this.user.isAuthenticated) {\n return;\n }\n\n return !!this.favouriteService.get(event.id, event.sport.id, this.getType(event));\n }\n\n private updateFavourited(diff: FavouritesViewModel[], state: IGridState): void {\n if (diff.length === 0) {\n return;\n }\n\n const grids = values(state);\n\n for (const grid of grids) {\n const events = flattenDeep(grid.groups.map((group) => group.events));\n const changed = events.filter((event) => diff.some((c) => c.itemId === event.id));\n\n for (const change of changed) {\n change.favourited = this.isFavourited(change);\n this.store.dispatch(\n GridActions.updateEvents({\n payload: {\n id: grid.id,\n event: change,\n },\n }),\n );\n }\n }\n }\n\n private getType(event: GridEvent): FavouriteType {\n if (!event.offerSource || event.offerSource === OfferSource.V1) {\n return FavouriteType.Fixture;\n }\n\n return FavouriteType.FixtureV2;\n }\n}\n","import { GridEvent } from '@frontend/sports/grid/core/feature/model';\nimport { Observable, of } from 'rxjs';\n\nimport { BaseFactory, GridSourceEvent } from './event.factory';\n\nexport class GridBaseFactory implements BaseFactory {\n canCreate(events: GridSourceEvent[]): boolean {\n return 'optionGroups' in events[0];\n }\n\n create(events: GridSourceEvent[]): Observable {\n return of(events as GridEvent[]);\n }\n}\n","import { Fixture } from '@cds/betting-offer';\nimport { DetailedFixtureFactory, FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { GridEvent } from '@frontend/sports/grid/core/feature/model';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { BaseFactory, EventOption, GridSourceEvent } from './event.factory';\n\nexport class GridFixtureFactory implements BaseFactory {\n constructor(\n private fixtureFactory: FixtureFactory,\n private detailedFactory: DetailedFixtureFactory,\n private grouping: OfferGroupingService,\n ) {}\n\n canCreate(events: GridSourceEvent[]): boolean {\n return 'games' in events[0] || 'optionMarkets' in events[0];\n }\n\n create(events: GridSourceEvent[], options?: EventOption): Observable {\n const fixtures = events as Fixture[];\n\n if (!options?.marketGrouping) {\n return of(fixtures.map((fixture) => this.fixtureFactory.create(fixture)));\n }\n\n return this.grouping.getFixtureGrouping(fixtures[0].sport.id, 'any').pipe(\n map((groupingConfiguration) =>\n fixtures.map((fixture) => {\n if (!groupingConfiguration) {\n throw new Error('Could not map events without grouping');\n }\n\n return this.detailedFactory.create({\n fixture,\n splitFixtures: [],\n grouping: groupingConfiguration,\n isPriceBoosted: options.isPriceBoosted,\n excludePriceboostedMarketGrouping: options.excludePriceboostedMarketGrouping,\n });\n }),\n ),\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Fixture } from '@cds/betting-offer';\nimport { DetailedFixtureFactory, FixtureFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { OfferGroupingService } from '@frontend/sports/betting-offer/feature/offer-grouping';\nimport { GridFavouriteService } from '@frontend/sports/grid/core/feature/favourites';\nimport { GridEvent } from '@frontend/sports/grid/core/feature/model';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { GridBaseFactory } from './grid-base.factory';\nimport { GridFixtureFactory } from './grid-fixture.factory';\n\nexport type GridSourceEvent = EventModel | Fixture;\n\nexport interface EventOption {\n marketGrouping?: boolean;\n isPriceBoosted?: boolean;\n excludePriceboostedMarketGrouping?: boolean;\n}\n\nexport interface BaseFactory {\n canCreate(events: GridSourceEvent[]): boolean;\n create(events: GridSourceEvent[], options?: EventOption): Observable;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EventFactory {\n private factories: BaseFactory[];\n constructor(\n private favouriteService: GridFavouriteService,\n private fixtureFactory: FixtureFactory,\n private detailedFactory: DetailedFixtureFactory,\n private grouping: OfferGroupingService,\n ) {\n this.factories = [new GridFixtureFactory(this.fixtureFactory, this.detailedFactory, this.grouping), new GridBaseFactory()];\n }\n\n create(events: GridSourceEvent[] | undefined, options?: EventOption): Observable {\n if (!events?.length) {\n return of([]);\n }\n\n for (const factory of this.factories) {\n if (factory.canCreate(events)) {\n return factory.create(events, options).pipe(\n tap((mapped) => {\n this.setFavourited(mapped);\n }),\n );\n }\n }\n\n throw new Error('No market factory found for market');\n }\n\n private setFavourited(events: GridEvent[]): void {\n // eslint-disable-next-line no-param-reassign\n events.forEach((current) => (current.favourited = this.favouriteService.isFavourited(current)));\n }\n}\n","import { Observable } from 'rxjs';\n\nimport { BreadcrumbModel, BreadcrumbOptions } from './breadcrumb.models';\nimport { BreadcrumbSlot } from './breadcrumbs-slot.service';\n\nexport type BreadcrumbData = BreadcrumbModel[] | BreadcrumbSlotResolve;\nexport type BreadcrumbResult = BreadcrumbData | Observable;\n\nexport interface BreadcrumbSlotResolve extends BreadcrumbSlot {\n schemaBreadcrumbs?: BreadcrumbModel[];\n}\n\nexport interface IBreadcrumbsResolve {\n resolve(model: any): BreadcrumbResult;\n}\n\nexport abstract class BreadcrumbsResolve implements IBreadcrumbsResolve {\n protected crumbs: BreadcrumbModel[] = [];\n\n resolve(model: T): BreadcrumbResult {\n this.crumbs = [];\n\n return this.customResolve(model);\n }\n\n protected abstract customResolve(model: T): BreadcrumbResult;\n\n protected createCrumb = (options: BreadcrumbOptions): BreadcrumbModel => {\n if (!options.sportId || !options.leagueId) {\n return {\n icon: options.icon,\n title: options.title,\n url: options.url,\n classes: options.classes,\n ignoreBrowserHistory: options.ignoreBrowserHistory,\n bgColor: options.bgColor,\n color: options.color,\n };\n }\n\n options.isWithRightImage = options.isWithRightImage || false;\n\n return {\n icon: options.icon,\n title: options.title,\n url: options.url,\n sportId: options.sportId,\n leagueId: options.leagueId,\n isWithRightImage: options.isWithRightImage,\n classes: options.classes,\n ignoreBrowserHistory: options.ignoreBrowserHistory,\n bgColor: options.bgColor,\n color: options.color,\n imageProfile: options.imageProfile,\n };\n };\n\n protected addToCrumbs(crumbsToAdd: BreadcrumbModel[]): BreadcrumbModel[] {\n this.crumbs.push(...crumbsToAdd);\n\n return this.crumbs;\n }\n}\n","import { Route, UrlMatchResult, UrlSegment, UrlSegmentGroup } from '@angular/router';\n\nimport { keys } from 'lodash-es';\n\n// uses regex expession defined on route data\n// matcherPattern - regex to match\n// matcherMapping - consumes current segment and maps params from regex matching with the specified result index\nexport function regexMatcher(segments: UrlSegment[], segmentGroup: UrlSegmentGroup, route: Route): UrlMatchResult {\n if (!route.data?.matcherPattern) {\n throw new Error('No regex defined on route');\n }\n\n if (segments.length === 0) {\n return null as any; // the angular matcher function is typed incorrectly and it can actually handle null\n }\n\n const regex = new RegExp(route.data.matcherPattern);\n const max = route.data.matcherMode === 'full' ? segments.length : 1;\n const url = segments\n .filter((segment, index) => index < max)\n .map((segment) => segment.path)\n .join('/');\n\n const match = regex.exec(url);\n const matcherMapping = route.data.matcherMapping;\n\n if (match) {\n if (!matcherMapping) {\n return { consumed: [], posParams: {} };\n }\n\n const posParams: { [name: string]: UrlSegment } = {};\n\n keys(matcherMapping).forEach((key) => {\n const index: number = matcherMapping[key];\n\n posParams[key] = new UrlSegment(match[index], {});\n });\n\n return { consumed: segments.slice(0, max), posParams };\n }\n\n return null as any;\n}\n","import { Type } from '@angular/core';\nimport { Data, ResolveFn } from '@angular/router';\n\nexport class RouteContext implements Data {\n model: TModel;\n}\n\nexport function use<\n TResolver extends {\n resolve: ResolveFn;\n },\n TComponent,\n TModel,\n>(resolver: Type): RouteContext> {\n return {\n model: resolver,\n };\n}\n","import {\n DartsGameScore,\n DartsMatchType,\n EventScoreboard,\n IcehockeyPeriodGameScore,\n PairScore,\n PenaltyStatus,\n SnookerScore,\n TeamShootout,\n} from '@frontend/sports/betting-offer/feature/model';\nimport { ceil, times, values } from 'lodash-es';\n\nexport class ScoreboardStat {\n constructor(\n public name: string,\n public player1: number | string,\n public player2: number | string,\n public order: number,\n public isVisible: boolean = true, // Controlled from expand/collapse\n public icon: string = '',\n public statClasses: string = '',\n ) {\n this.isEnabled = true;\n }\n\n isEnabled: boolean; // Is comming from server (LBAI visibility)\n\n isEmpty(playerNumber: number): boolean {\n switch (playerNumber) {\n case 1:\n return this.player1 === -1;\n case 2:\n return this.player2 === -1;\n }\n\n return true;\n }\n}\n\nexport class ScoreboardStatList {\n constructor() {\n this.values = {};\n this.list = [];\n }\n\n // values and list should not be modified directly.\n values: { [key: string]: ScoreboardStat };\n list: ScoreboardStat[]; // Used for ngFor elements are ordered in it.\n\n addStat(value: ScoreboardStat): void {\n if (value.name in this.values) {\n this.removeStat(value.name);\n }\n this.values[value.name] = value;\n if (this.list.length === 0 || this.list[this.list.length - 1].order <= value.order) {\n this.list.push(value);\n } else {\n for (let i = 0, cnt = this.list.length; i < cnt; i++) {\n if (this.list[i].order > value.order) {\n this.list.splice(i, 0, value);\n\n return;\n }\n }\n }\n }\n\n private findIndex(key: string): number {\n for (let i = 0; i < this.list.length; i++) {\n if (this.list[i].name === key) {\n return i;\n }\n }\n\n return -1;\n }\n\n updateStatValue(key: string, newValue: { player1?: number | null; player2?: number | null; isVisible?: boolean; icon?: string }): void {\n if (key in this.values) {\n const stat = this.values[key];\n if (newValue.player1 != null) {\n stat.player1 = newValue.player1;\n }\n if (newValue.player2 != null) {\n stat.player2 = newValue.player2;\n }\n if (newValue.icon != null) {\n stat.icon = newValue.icon;\n }\n if (newValue.isVisible != null) {\n stat.isVisible = newValue.isVisible;\n }\n }\n }\n\n setIsEnabled(key: string, isEnabled: boolean): void {\n if (key in this.values) {\n const stat1 = this.values[key];\n stat1.isEnabled = isEnabled;\n }\n }\n\n removeStat(key: string): void {\n const indx = this.findIndex(key);\n if (indx > -1) {\n this.list.splice(indx, 1);\n delete this.values[key];\n }\n }\n}\n\nexport class PairGameScoreboardStats extends ScoreboardStatList {\n constructor() {\n super();\n }\n\n setStats(\n statsKey: string,\n order: number,\n periodScore: PairScore | undefined,\n icon: string,\n isVisible: boolean = true,\n classes: string = '',\n ): void {\n if (periodScore) {\n this.addStat(new ScoreboardStat(statsKey, periodScore.participant1, periodScore.participant2, order, isVisible, icon, classes));\n } else {\n const stat = new ScoreboardStat(statsKey, 0, 0, order, false, icon, classes);\n stat.isEnabled = false;\n this.addStat(stat);\n }\n }\n\n updateStatValueFromDoubleCounter(statsKey: string, newPeriodScore: PairScore | undefined): void {\n if (newPeriodScore) {\n this.updateStatValue(statsKey, {\n player1: newPeriodScore.participant1,\n player2: newPeriodScore.participant2,\n });\n this.setIsEnabled(statsKey, true);\n } else {\n this.setIsEnabled(statsKey, false);\n }\n }\n\n updateStatVisibility(statsKey: string, isVisible: boolean): void {\n this.updateStatValue(statsKey, { isVisible });\n }\n}\n\nexport class PeriodGameFullScoreboardStats extends ScoreboardStatList {\n isActive = false;\n periods: ScoreboardStatList;\n points: ScoreboardStat | null = null;\n\n constructor() {\n super();\n this.periods = new ScoreboardStatList();\n }\n}\n\nexport class SnookerScoreboardStats extends PairGameScoreboardStats {\n constructor() {\n super();\n }\n\n currentlyServing: number | undefined;\n player1CurrentScore: number;\n player2CurrentScore: number;\n participant1: number;\n participant2: number;\n\n fillSnookerStats(scoreboard: EventScoreboard): void {\n const score = scoreboard.getScore();\n if (!score) {\n return;\n }\n\n this.player1CurrentScore = score.participant1;\n this.player2CurrentScore = score.participant2;\n this.participant1 = score.frames.participant1;\n this.participant2 = score.frames.participant2;\n this.currentlyServing = score.currentlyServing;\n }\n}\n\nexport class PenaltyShootoutScoreboardStats extends PairGameScoreboardStats {\n constructor() {\n super();\n this.penalties = [];\n this.penaltyScore = [];\n }\n\n penalties: TeamShootout[];\n penaltyScore: number[];\n\n setPenalties(score?: IcehockeyPeriodGameScore): void {\n if (!score) {\n return;\n }\n\n this.penalties = this.getPenaltyScore(score);\n this.penaltyScore = [\n this.penalties[0].penalties.filter((status) => status === PenaltyStatus.Scored).length,\n this.penalties[1].penalties.filter((status) => status === PenaltyStatus.Scored).length,\n ];\n }\n\n private getPenaltyScore(score: IcehockeyPeriodGameScore): TeamShootout[] {\n if (!score || !score.penaltyShootOutScore) {\n return [];\n }\n const visible = 5;\n\n const teams = values(score.penaltyShootOutScore);\n const offset = ceil(teams[0].length / visible - 1) * visible;\n\n return teams.map((team, i) => ({\n points: team.filter((penalty) => penalty.status === PenaltyStatus.Scored).length,\n penalties: times(visible).map((_penalty, index) => (team[index + offset] ? team[index + offset].status : PenaltyStatus.Unset)),\n }));\n }\n}\n\nexport class DartsScoreboardStats extends PairGameScoreboardStats {\n participant1: number;\n participant2: number;\n hundredEighties: PairScore;\n legs: PairScore;\n\n currentlyServing?: number;\n matchType: DartsMatchType;\n\n fillDartsStats(scoreboard: EventScoreboard): void {\n const score = scoreboard.getScore();\n\n if (!score) {\n return;\n }\n\n this.participant1 = score.participant1;\n this.participant2 = score.participant2;\n this.currentlyServing = score.currentlyServing;\n this.matchType = score.matchType;\n\n this.hundredEighties = score.hundredEighties;\n this.legs = score.legs;\n }\n}\n\nexport class SetGameScoreboardStats {\n constructor() {\n this.sets = new ScoreboardStatList();\n this.turn = new ScoreboardStat('turn', 0, 0, 0, false);\n this.points = null;\n this.isActive = false;\n }\n\n sportId: number;\n isActive: boolean;\n\n turn: ScoreboardStat;\n points: ScoreboardStat | null;\n sets: ScoreboardStatList;\n\n private isSetFinished(indx: number): boolean {\n if (indx === this.sets.list.length - 1) {\n return !this.isActive;\n }\n\n return +this.sets.list[indx + 1].player1 > -1 || +this.sets.list[indx + 1].player2 > -1;\n }\n\n isHighlighedSet(indx: number, player: number): boolean {\n if (indx < 0 || indx >= this.sets.list.length) {\n return false;\n }\n const isFinished = this.isSetFinished(indx);\n if (!isFinished) {\n return true;\n }\n\n return (\n (player === 1 && this.sets.list[indx].player1 > this.sets.list[indx].player2) ||\n (player === 2 && this.sets.list[indx].player1 < this.sets.list[indx].player2) ||\n (this.sets.list[indx].player1 === this.sets.list[indx].player2 && +this.sets.list[indx].player1 > -1)\n );\n }\n}\n","import { Timer } from '@cds/scoreboards/v1/shared';\nimport { EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\n\nexport class IncreaseTimer {\n base: number;\n seconds: number;\n running: boolean;\n visible: boolean;\n\n tickTime = 1000;\n\n static fromScoreboardTimer(s: Timer): IncreaseTimer | null {\n if (!s) {\n return null;\n }\n const timer = new IncreaseTimer();\n timer.base = new Date(s.base).getTime();\n timer.running = s.running;\n timer.seconds = s.seconds;\n timer.visible = s.visible;\n\n return timer;\n }\n\n getDisplay(): string {\n const now = new Date();\n const timeDiff = Math.max(0, Math.floor((now.getTime() - this.base) / 1000) + this.seconds);\n\n const seconds = this.running ? timeDiff : this.seconds;\n const displayedMinutes = Math.floor(seconds / 60);\n const displayedseconds = seconds % 60;\n\n return displayedMinutes + ':' + (displayedseconds < 10 ? '0' + displayedseconds : displayedseconds.toString());\n }\n}\n\nexport class DecreaseTimer {\n static countDownMinutesBeforeGame = 60;\n\n future: Date;\n running: boolean;\n tickTime = 60000;\n\n static fromDate(futureDate: Date): DecreaseTimer {\n const timer = new DecreaseTimer();\n timer.future = futureDate;\n const now = new Date();\n timer.running = futureDate > now;\n\n return timer;\n }\n\n get activeTime(): number {\n const minutesLeft = this.getMinutesLeft();\n if (0 < minutesLeft && minutesLeft < DecreaseTimer.countDownMinutesBeforeGame) {\n return minutesLeft;\n } else {\n return 0;\n }\n }\n\n getMinutesLeft(): number {\n if (!this.running) {\n return 0;\n }\n const now = new Date();\n const timeDiff = Math.max(0, Math.ceil((this.future.getTime() - now.getTime()) / 1000));\n if (timeDiff === 0) {\n this.running = false;\n\n return 0;\n }\n\n return Math.ceil(timeDiff / 60);\n }\n}\n\nexport class ScoreboardTimer {\n eventStartDate: Date;\n private indicator: string | null;\n\n private elapsedTimer: IncreaseTimer | null;\n countDownTimer: DecreaseTimer | null;\n\n constructor(\n startTime: Date,\n private scoreboard: EventScoreboard,\n ) {\n this.eventStartDate = startTime;\n this.countDownTimer = scoreboard.started ? null : DecreaseTimer.fromDate(this.eventStartDate);\n this.indicator = scoreboard.started ? scoreboard.timeIndicator || null : null;\n this.elapsedTimer = scoreboard.started && scoreboard.timer ? IncreaseTimer.fromScoreboardTimer(scoreboard.timer) : null;\n }\n\n getTimeMyBets(eventStartingInText: string): string {\n if (this.indicator) {\n return this.indicator;\n }\n if (this.elapsedTimer && this.elapsedTimer.visible && this.scoreboard.timerRunning) {\n return this.elapsedTimer.getDisplay();\n }\n\n return eventStartingInText;\n }\n\n shouldBeVisible(): boolean {\n return !!(\n (this.countDownTimer && this.countDownTimer.activeTime > 0) ||\n this.indicator ||\n (this.elapsedTimer && this.elapsedTimer.visible && this.elapsedTimer.running)\n );\n }\n}\n","import { LapCounter } from '@cds/scoreboards/v1/shared';\nimport { EventModel, EventScoreboard, Weather } from '@frontend/sports/betting-offer/feature/model';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { ScoreboardTimer } from './scoreboard-timer';\n\nexport interface IScoreboardLiveAlert {\n liveAlert: boolean;\n sportId: number;\n eventId: string;\n leagueId: number;\n eventGroupId?: number;\n leagueGroupId?: number;\n title: string;\n live: boolean;\n}\n\nexport interface IEventTimeViewModel {\n startTime: Date;\n isLive: boolean;\n hasStreams: boolean;\n periodInfo: string;\n matchType: number;\n bestOfSets: number;\n bestOfLegs: number;\n timer: ScoreboardTimer | null;\n hasScoreboard: boolean;\n liveAlert: IScoreboardLiveAlert;\n sportId: number;\n periodId: number;\n playersList: number[];\n bestOf: number;\n lapCounter?: LapCounter;\n weather: Weather | null;\n}\n\nexport abstract class ScoreboardViewModel {\n hasScoreboard: boolean;\n started: boolean;\n hasStreams: boolean;\n periodInfo: string;\n startTime: Date;\n timer: ScoreboardTimer | null;\n liveAlert: IScoreboardLiveAlert;\n sportId: number;\n periodId: number;\n playersList: Array;\n matchType: number;\n bestOfSets: number;\n bestOfLegs: number;\n bestOf: number;\n lapCounter?: LapCounter;\n weather: Weather | null = null;\n\n protected constructor() {\n this.started = false;\n this.hasStreams = false;\n this.periodInfo = '';\n this.hasScoreboard = false;\n this.timer = null;\n this.sportId = 0;\n this.periodId = 0;\n this.playersList = [];\n this.bestOf = 0;\n }\n\n getEventTimeViewModel(): IEventTimeViewModel {\n return {\n startTime: this.startTime,\n isLive: this.started,\n hasStreams: this.hasStreams,\n periodInfo: this.periodInfo,\n timer: this.timer,\n hasScoreboard: this.hasScoreboard,\n liveAlert: this.liveAlert,\n sportId: this.sportId,\n periodId: this.periodId,\n playersList: this.playersList,\n matchType: this.matchType,\n bestOfLegs: this.bestOfLegs,\n bestOfSets: this.bestOfSets,\n bestOf: this.bestOf,\n lapCounter: this.lapCounter,\n weather: this.weather,\n };\n }\n\n protected __fillFromEvent(event: EventModel | MyBetsEventModel): void {\n this.hasStreams = !!event.stream;\n this.startTime = new Date(event.startDate);\n this.sportId = event.sport.id;\n this.periodId = (event.scoreboard.period && event.scoreboard.period.id) || 0;\n\n this.liveAlert = {\n liveAlert: event.liveAlert,\n sportId: event.sport.id,\n eventId: event.id.toString(),\n leagueId: event.league.id,\n eventGroupId: event.groupId,\n leagueGroupId: event.league.parentLeagueId,\n title: event.name,\n live: event.live,\n };\n }\n\n /**\n * This method is called to fill the view model from event.\n * It calls fillFromScoreboard if scoreboard is available in the event.\n *\n * @param event\n */\n fillFromEvent(event: EventModel | MyBetsEventModel): void {\n this.__fillFromEvent(event);\n this.fillFromScoreboard(event.scoreboard);\n }\n\n protected __fillFromScoreboard(scoreboard: EventScoreboard): void {\n this.hasScoreboard = true;\n this.started = scoreboard.started;\n this.periodInfo = (scoreboard.period && scoreboard.period.name) || '';\n this.periodId = (scoreboard.period && scoreboard.period.id) || 0;\n this.timer = new ScoreboardTimer(this.startTime, scoreboard);\n }\n\n /**\n * This method is called to fill viewmodel, when scoreboard object is available\n * It is called only once.\n *\n * @param scoreboard\n */\n protected fillFromScoreboard(scoreboard: EventScoreboard): void {\n this.__fillFromScoreboard(scoreboard);\n }\n\n /**\n * Called when push update comes for scoreboard.\n *\n * @param scoreboard\n */\n updateFromScoreboard(scoreboard: EventScoreboard): void {\n if (!this.hasScoreboard) {\n this.fillFromScoreboard(scoreboard);\n } else {\n this.__fillFromScoreboard(scoreboard);\n }\n }\n}\n","import { FixtureViewType } from '@cds/betting-offer';\nimport { EventModel, EventParticipantType } from '@frontend/sports/betting-offer/feature/model';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { ScoreboardViewModel } from './scoreboard.viewmodel';\n\nexport abstract class ScoreboardPairGameViewModel extends ScoreboardViewModel {\n protected scoreKey = 'score';\n\n protected constructor() {\n super();\n }\n\n player1 = '';\n player2 = '';\n eventName = '';\n leagueName = '';\n player1AwayIndicator: boolean;\n player2AwayIndicator: boolean;\n\n protected override __fillFromEvent(event: EventModel | MyBetsEventModel): void {\n super.__fillFromEvent(event);\n this.eventName = event.name;\n this.leagueName = event.league.name;\n\n if (event.participants.length) {\n this.player1 = event.participants[0].name;\n this.player2 = event.participants[1].name;\n this.player1AwayIndicator = event.viewType === FixtureViewType.American && event.participants[0].type === EventParticipantType.Away;\n this.player2AwayIndicator = event.viewType === FixtureViewType.American && event.participants[1].type === EventParticipantType.Away;\n }\n }\n}\n","import { EventModel, EventScoreboard, SetGameScore, Turn } from '@frontend/sports/betting-offer/feature/model';\n\nimport { ScoreboardPairGameViewModel } from './pair-game-scoreboard.viewmodel';\nimport { ScoreboardStat, ScoreboardStatList, SetGameScoreboardStats } from './scoreboard-stats';\n\nexport class SetScoreboardViewModel extends ScoreboardPairGameViewModel {\n protected turnKey = 'turn';\n protected pointsKey = 'points';\n protected setsKey = 'sets';\n\n stats: SetGameScoreboardStats;\n\n constructor() {\n super();\n this.stats = new SetGameScoreboardStats();\n }\n\n private getTurn(score: SetGameScore): { player1: number; player2: number } {\n switch (score.currentlyServing) {\n case Turn.Player01:\n return { player1: 1, player2: 0 };\n case Turn.Player02:\n return { player1: 0, player2: 1 };\n default:\n return { player1: 0, player2: 0 };\n }\n }\n\n private getPoints(score: SetGameScore): { player1: string; player2: string } | null {\n if (!score.participant1 || !score.participant2) {\n return null;\n }\n\n return { player1: score.participant1.points || '', player2: score.participant2.points || '' };\n }\n\n private getSets(score: SetGameScore): { player1: number; player2: number }[] {\n if (!score.participant1 || !score.participant2) {\n return [];\n }\n const player1Sets = score.participant1.sets;\n const player2Sets = score.participant2.sets;\n\n const result: { player1: number; player2: number }[] = [];\n\n for (let i = 0; i < player1Sets.length; i++) {\n const player1 = this.parsePoints(player1Sets[i].points);\n const player2 = this.parsePoints(player2Sets[i].points);\n\n result.push({ player1, player2 });\n }\n\n return result;\n }\n\n protected createStats(): SetGameScoreboardStats {\n return new SetGameScoreboardStats();\n }\n\n protected fillStats(stats: SetGameScoreboardStats, scoreboard: EventScoreboard): void {\n const score = scoreboard.getScore();\n if (!score) {\n return;\n }\n\n stats.isActive = scoreboard.started && score.currentlyServing !== Turn.None;\n\n const turn = this.getTurn(score);\n stats.turn = new ScoreboardStat(this.turnKey, turn.player1, turn.player2, 0, stats.isActive && !scoreboard.isFinished, '');\n\n const points = this.getPoints(score);\n if (points) {\n stats.points = new ScoreboardStat(this.pointsKey, points.player1, points.player2, 1, stats.isActive, '');\n }\n const sets = this.getSets(score);\n for (let i = 0; i < sets.length; i++) {\n const set = sets[i];\n stats.sets.addStat(new ScoreboardStat(`${this.setsKey}_${i}`, set.player1, set.player2, i, true, ''));\n }\n\n this.fillEmptySets(stats, score);\n\n stats.sportId = this.stats.sportId;\n }\n\n protected fillEmptySets(stats: SetGameScoreboardStats, score: SetGameScore): void {}\n\n protected updateStats(scoreboard: EventScoreboard): void {\n const stats = this.createStats();\n this.fillStats(stats, scoreboard);\n this.stats = stats;\n }\n\n override fillFromEvent(event: EventModel): void {\n super.fillFromEvent(event);\n if (event) {\n this.stats.sportId = event.sport.id;\n }\n }\n\n override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n\n this.updateStats(scoreboard);\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n\n this.updateStats(scoreboard);\n }\n\n get turn(): ScoreboardStat {\n return this.stats.turn;\n }\n\n get points(): ScoreboardStat | null {\n return this.stats.points;\n }\n\n get sets(): ScoreboardStatList {\n return this.stats.sets;\n }\n\n private parsePoints(val: string | number): number {\n if (typeof val === 'string') {\n const result = parseInt(val);\n\n return isNaN(result) ? -1 : result;\n }\n\n return val;\n }\n}\n\nexport class TennisScoreboardViewModel extends SetScoreboardViewModel {\n arePointsAreVisible: boolean;\n\n protected override fillStats(stats: SetGameScoreboardStats, scoreboard: EventScoreboard): void {\n super.fillStats(stats, scoreboard);\n if (stats.points) {\n stats.points.isVisible = this.arePointsAreVisible && stats.isActive;\n }\n }\n}\n","import { EventModel, EventScoreboard, SetGameScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { ScoreboardStat, SetGameScoreboardStats } from './scoreboard-stats';\nimport { SetScoreboardViewModel } from './set-scoreboard.viewmodel';\n\nexport class BaseBallscoreboardViewModel extends SetScoreboardViewModel {\n isActive: boolean;\n activeCurrentInning: number;\n participant1runs: string;\n participant2runs: string;\n\n protected override __fillFromEvent(event: EventModel | MyBetsEventModel): void {\n super.__fillFromEvent(event);\n this.updateFromScoreboard(event.scoreboard);\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n\n if (!scoreboard.period) {\n return;\n }\n\n const score = scoreboard.getScore()!;\n this.activeCurrentInning = Number(scoreboard.period.name.replace(/\\D/g, ''));\n\n if (score.participant1 && score.participant1.points) {\n this.participant1runs = score.participant1.points;\n this.participant2runs = score.participant2.points!;\n }\n }\n\n isHighlighedSet(index: number, player: number): boolean {\n if (index === this.activeCurrentInning - 1) {\n if (index < 0 || index >= this.sets.list.length) {\n return false;\n }\n const isFinished = this.isSetFinished(index);\n if (!isFinished) {\n return true;\n }\n\n return (\n (player === 1 && this.sets.list[index].player1 > this.sets.list[index].player2) ||\n (player === 2 && this.sets.list[index].player1 < this.sets.list[index].player2) ||\n (this.sets.list[index].player1 === this.sets.list[index].player2 && +this.sets.list[index].player1 > -1)\n );\n }\n\n return false;\n }\n\n protected override fillEmptySets(stats: SetGameScoreboardStats, score: SetGameScore): void {\n while (stats.sets.list.length < 9) {\n const order = stats.sets.list.length;\n stats.sets.addStat(new ScoreboardStat(`${this.setsKey}_${order}`, '-', '-', order, true));\n }\n }\n\n private isSetFinished(indx: number): boolean {\n if (indx === this.sets.list.length - 1) {\n return !this.isActive;\n }\n\n return +this.sets.list[indx + 1].player1 > -1 || +this.sets.list[indx + 1].player2 > -1;\n }\n}\n","import { EventScoreboard, PairGameScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { ScoreboardPairGameViewModel } from './pair-game-scoreboard.viewmodel';\nimport { PairGameScoreboardStats, ScoreboardStat } from './scoreboard-stats';\n\nexport class PairScoreboardViewModel extends ScoreboardPairGameViewModel {\n stats: PairGameScoreboardStats;\n\n constructor() {\n super();\n this.stats = new PairGameScoreboardStats();\n }\n\n private __fillStats(scoreboard: EventScoreboard): void {\n const score = scoreboard.getScore();\n if (score) {\n this.stats.addStat(new ScoreboardStat(this.scoreKey, score.participant1, score.participant2, 0, true, '', 'bold'));\n } else {\n const stat = new ScoreboardStat(this.scoreKey, 0, 0, 0, true, '', 'bold');\n stat.isEnabled = false;\n this.stats.addStat(stat);\n }\n }\n\n private __updateStats(scoreboard: EventScoreboard): void {\n const score = scoreboard.getScore();\n if (score) {\n this.stats.updateStatValue(this.scoreKey, { player1: score.participant1, player2: score.participant2, isVisible: true });\n } else {\n this.stats.updateStatValue(this.scoreKey, { isVisible: false });\n }\n }\n\n protected override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n this.__fillStats(scoreboard);\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n this.__updateStats(scoreboard);\n }\n\n get score(): ScoreboardStat {\n return this.stats.values[this.scoreKey];\n }\n}\n","import { DartsGameScore, EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { PairScoreboardViewModel } from './pair-scoreboard.viewmodel';\nimport { DartsScoreboardStats } from './scoreboard-stats';\n\nexport class DartsScoreboardViewModel extends PairScoreboardViewModel {\n override stats: DartsScoreboardStats;\n override bestOfLegs: number;\n override bestOfSets: number;\n\n constructor(public sitecore: Sitecore) {\n super();\n this.stats = new DartsScoreboardStats();\n }\n\n protected override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n this.stats.fillDartsStats(scoreboard);\n this.bestOfLegs = scoreboard.bestOfLegs || 0;\n this.bestOfSets = scoreboard.bestOfSets || 0;\n\n const score = scoreboard.getScore();\n if (score) {\n this.matchType = score.matchType;\n }\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n this.stats.fillDartsStats(scoreboard);\n this.bestOfLegs = scoreboard.bestOfLegs || 0;\n this.bestOfSets = scoreboard.bestOfSets || 0;\n }\n}\n","import { EventModel } from '@frontend/sports/betting-offer/feature/model';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { ScoreboardViewModel } from './scoreboard.viewmodel';\n\nexport class ScoreboardTournamentGameViewModel extends ScoreboardViewModel {\n constructor() {\n super();\n this.eventName = '';\n }\n\n eventName: string;\n\n protected override __fillFromEvent(event: EventModel | MyBetsEventModel): void {\n super.__fillFromEvent(event);\n this.eventName = event.name;\n }\n}\n","import { LapCounter } from '@cds/scoreboards/v1/shared';\nimport { EventModel, EventScoreboard, LeaderboardGameScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { IEventTimeViewModel } from './scoreboard.viewmodel';\nimport { ScoreboardTournamentGameViewModel } from './tournament-scoreboard.viewmodel';\n\nexport class ScoreboardLeaderboardGameViewModel extends ScoreboardTournamentGameViewModel {\n constructor() {\n super();\n this.eventName = '';\n this.leagueName = '';\n this.players = [];\n }\n\n override eventName: string;\n leagueName: string;\n players: string[];\n override lapCounter: LapCounter;\n override weather: number | null;\n\n protected override __fillFromEvent(event: EventModel | MyBetsEventModel): void {\n super.__fillFromEvent(event);\n\n this.leagueName = event.league.name;\n const score = event.scoreboard.getScore()!;\n\n this.players = score.participants.slice(0, 3);\n this.lapCounter = { current: score.current, final: score.final, visible: !score.preRace };\n this.weather = score.preRace ? null : score.weather;\n }\n\n override getEventTimeViewModel(): IEventTimeViewModel {\n return super.getEventTimeViewModel();\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n\n const score = scoreboard.getScore();\n if (!score) {\n return;\n }\n\n this.players = score.participants.slice(0, 3);\n this.lapCounter = { current: score.current, final: score.final, visible: !score.preRace };\n this.weather = score.preRace ? null : score.weather;\n }\n}\n","import { EventScoreboard, IcehockeyPeriodGameScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { PairScoreboardViewModel } from './pair-scoreboard.viewmodel';\nimport { PenaltyShootoutScoreboardStats, ScoreboardStat } from './scoreboard-stats';\n\nexport class PenaltyShootoutScoreboardViewModel extends PairScoreboardViewModel {\n override stats: PenaltyShootoutScoreboardStats;\n constructor() {\n super();\n this.stats = new PenaltyShootoutScoreboardStats();\n }\n\n protected override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n this.stats.setPenalties(scoreboard.getScore());\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n this.stats.setPenalties(scoreboard.getScore());\n }\n\n override get score(): ScoreboardStat {\n return this.stats.values[this.scoreKey];\n }\n}\n","import { EventScoreboard, PeriodGameScore, PeriodScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { ScoreboardPairGameViewModel } from './pair-game-scoreboard.viewmodel';\nimport { PeriodGameFullScoreboardStats, ScoreboardStat, ScoreboardStatList } from './scoreboard-stats';\n\nexport class PeriodGameScoreboardViewModel extends ScoreboardPairGameViewModel {\n readonly stats = new PeriodGameFullScoreboardStats();\n\n private periodsKey = 'periods';\n\n constructor() {\n super();\n }\n\n protected override __fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.__fillFromScoreboard(scoreboard);\n\n const score = scoreboard.getScore();\n if (!score) {\n return;\n }\n\n this.stats.isActive = scoreboard.started;\n this.stats.points = this.getPoints(score, scoreboard.started);\n this.stats.periods = this.getPeriods(scoreboard);\n }\n\n get score(): ScoreboardStat {\n return this.stats.values[this.scoreKey];\n }\n\n private getPeriods(scoreboard: EventScoreboard): ScoreboardStatList {\n const periods = new ScoreboardStatList();\n const score = scoreboard.getScore();\n\n if (!score) {\n return periods;\n }\n\n for (let i = 0; i < score.participant1.periods.length; i++) {\n const p1Period = score.participant1.periods[i];\n const p2Period = score.participant2.periods[i];\n\n periods.list.push(this.buildScoreboardStat(p1Period, p2Period));\n }\n\n return periods;\n }\n\n private buildScoreboardStat(p1Period: PeriodScore, p2Period: PeriodScore): ScoreboardStat {\n return new ScoreboardStat('', p1Period.points, p2Period.points, 0, true, '', p1Period.current ? 'highlight' : '');\n }\n\n private getPoints(score: PeriodGameScore, isActive: boolean): ScoreboardStat | null {\n if (!score.participant1 || !score.participant2) {\n return null;\n }\n\n const points = { player1: score.participant1.total.toString(), player2: score.participant2.total.toString() };\n\n return new ScoreboardStat(this.periodsKey, points.player1, points.player2, 1, isActive, '', 'bold');\n }\n}\n","import { EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\n\nimport { ScoreboardPairGameViewModel } from './pair-game-scoreboard.viewmodel';\nimport { SnookerScoreboardStats } from './scoreboard-stats';\n\nexport class SnookerScoreboardViewModel extends ScoreboardPairGameViewModel {\n stats: SnookerScoreboardStats;\n\n constructor() {\n super();\n this.stats = new SnookerScoreboardStats();\n this.bestOf = 0;\n }\n\n protected override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n this.stats.fillSnookerStats(scoreboard);\n this.bestOf = scoreboard.bestOf;\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n this.stats.fillSnookerStats(scoreboard);\n this.bestOf = scoreboard.bestOf;\n }\n}\n","import { EventScoreboard, FootballStats, FootballStatsEntry, PairScore } from '@frontend/sports/betting-offer/feature/model';\n\nimport { PairScoreboardViewModel } from './pair-scoreboard.viewmodel';\nimport { PairGameScoreboardStats, ScoreboardStat } from './scoreboard-stats';\n\nexport class SoccerScoreboardViewModel extends PairScoreboardViewModel {\n private redCardsStats = 'redCards';\n private yellowCardsStats = 'yellowCards';\n private cornersStats = 'corners';\n private penaltiesStats = 'penalties';\n override stats: PairGameScoreboardStats;\n isExpanded: boolean;\n\n constructor() {\n super();\n this.stats = new PairGameScoreboardStats();\n this.isExpanded = false;\n }\n\n private __fillSoccerStats(scoreboard: EventScoreboard): void {\n const stats = scoreboard.statistics as FootballStats;\n\n this.stats.updateStatValue(this.scoreKey, { icon: 'sports-sb-goal-f' });\n\n if (!stats) {\n this.stats.setStats(this.redCardsStats, 1, undefined, 'sports-sb-card', true, 'red');\n this.stats.setStats(this.yellowCardsStats, 1, undefined, 'sports-sb-card', true, 'yellow');\n this.stats.setStats(this.cornersStats, 1, undefined, 'sports-sb-corner');\n this.stats.setStats(this.penaltiesStats, 1, undefined, 'sports-sb-penalty-f');\n\n return;\n }\n\n this.stats.setStats(this.redCardsStats, 1, this.getStatsValue(stats.redcards), 'sports-sb-card', this.isExpanded, 'red');\n this.stats.setStats(this.yellowCardsStats, 2, this.getStatsValue(stats.yellowcards), 'sports-sb-card', this.isExpanded, 'yellow');\n this.stats.setStats(this.cornersStats, 3, this.getStatsValue(stats.corners), 'sports-sb-corner', this.isExpanded);\n this.stats.setStats(this.penaltiesStats, 4, this.getStatsValue(stats.penalties), 'sports-sb-penalty-f', this.isExpanded);\n }\n\n private getStatsValue(entry?: FootballStatsEntry): PairScore | undefined {\n if (!entry) {\n return undefined;\n }\n\n const periods = [];\n if (entry.regularTime) {\n periods.push(entry.regularTime);\n periods.push(entry.extraTime);\n } else {\n periods.push(entry.firstHalf);\n periods.push(entry.secondHalf);\n }\n\n return periods\n .filter((p) => !!p)\n .reduce(\n (acc: PairScore, p) => {\n acc.participant1 += p!.participant1;\n acc.participant2 += p!.participant2;\n\n return acc;\n },\n { participant1: 0, participant2: 0 },\n );\n }\n\n private __updateSoccerStats(scoreboard: EventScoreboard): void {\n const stats = scoreboard.statistics as FootballStats;\n if (!stats) {\n return;\n }\n\n this.stats.updateStatValueFromDoubleCounter(this.redCardsStats, this.getStatsValue(stats.redcards));\n this.stats.updateStatValueFromDoubleCounter(this.yellowCardsStats, this.getStatsValue(stats.yellowcards));\n this.stats.updateStatValueFromDoubleCounter(this.cornersStats, this.getStatsValue(stats.corners));\n this.stats.updateStatValueFromDoubleCounter(this.penaltiesStats, this.getStatsValue(stats.penalties));\n }\n\n setIsExpanded(isExpanded: boolean): void {\n this.stats.updateStatVisibility(this.redCardsStats, isExpanded);\n this.stats.updateStatVisibility(this.yellowCardsStats, isExpanded);\n this.stats.updateStatVisibility(this.cornersStats, isExpanded);\n this.stats.updateStatVisibility(this.penaltiesStats, isExpanded);\n this.isExpanded = isExpanded;\n }\n\n protected override fillFromScoreboard(scoreboard: EventScoreboard): void {\n super.fillFromScoreboard(scoreboard);\n this.__fillSoccerStats(scoreboard);\n }\n\n override updateFromScoreboard(scoreboard: EventScoreboard): void {\n super.updateFromScoreboard(scoreboard);\n this.__updateSoccerStats(scoreboard);\n }\n\n override get score(): ScoreboardStat {\n return this.stats.values[this.scoreKey];\n }\n\n get redCards(): ScoreboardStat {\n return this.stats.values[this.redCardsStats];\n }\n\n get yellowCards(): ScoreboardStat {\n return this.stats.values[this.yellowCardsStats];\n }\n\n get corners(): ScoreboardStat {\n return this.stats.values[this.cornersStats];\n }\n\n get penalties(): ScoreboardStat {\n return this.stats.values[this.penaltiesStats];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { TennisPointsVisibilityService } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { EventModel, FootballScore, IcehockeyPeriodGameScore, ScoreboardType } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { BaseBallscoreboardViewModel } from './baseball-scoreboard.viewmodel';\nimport { DartsScoreboardViewModel } from './darts-scoreboard.viewmodel';\nimport { ScoreboardLeaderboardGameViewModel } from './leaderboard-game-scoreboard.viewmodel';\nimport { PairScoreboardViewModel } from './pair-scoreboard.viewmodel';\nimport { PenaltyShootoutScoreboardViewModel } from './penalty-shootout-scoreboard.viewmodel';\nimport { PeriodGameScoreboardViewModel } from './period-game-scoreboard.viewmodel';\nimport { ScoreboardViewModel } from './scoreboard.viewmodel';\nimport { SetScoreboardViewModel, TennisScoreboardViewModel } from './set-scoreboard.viewmodel';\nimport { SnookerScoreboardViewModel } from './snooker-scoreboard.viewmodel';\nimport { SoccerScoreboardViewModel } from './soccer-scoreboard.viewmodel';\nimport { ScoreboardTournamentGameViewModel } from './tournament-scoreboard.viewmodel';\n\n@Injectable({ providedIn: 'root' })\nexport class ScoreboardViewmodelFactory {\n constructor(\n private pointsVisibilityService: TennisPointsVisibilityService,\n private sitecore: Sitecore,\n ) {}\n\n createMyBetsScoreBoardViewModel(event: MyBetsEventModel): ScoreboardViewModel {\n const viewModel = this.getModel(event, !event.scoreboard.started);\n viewModel.fillFromEvent(event);\n\n return viewModel;\n }\n\n private getModel(event: EventModel | MyBetsEventModel, scoreboardNotStarted: boolean = false): ScoreboardViewModel {\n if (event.participants.length === 0 && event.scoreboard.type !== ScoreboardType.LeaderboardGame) {\n return new ScoreboardTournamentGameViewModel();\n }\n\n if (!event.live || scoreboardNotStarted) {\n if (event.scoreboard.type === ScoreboardType.SetGame) {\n return new SetScoreboardViewModel();\n }\n if (event.scoreboard.type !== ScoreboardType.TournamentGame) {\n return new PairScoreboardViewModel();\n }\n\n return new ScoreboardTournamentGameViewModel();\n }\n\n if (event.scoreboard.type !== ScoreboardType.TournamentGame && event.scoreboard.type !== ScoreboardType.LeaderboardGame) {\n switch (event.sport.id) {\n case SportConstant.Soccer: {\n const score = event.scoreboard.getScore();\n if (score && score.penaltyShootOutScore) {\n return new PenaltyShootoutScoreboardViewModel();\n }\n\n return new SoccerScoreboardViewModel();\n }\n case SportConstant.Darts: {\n return new DartsScoreboardViewModel(this.sitecore);\n }\n case SportConstant.Tennis: {\n const model = new TennisScoreboardViewModel();\n model.arePointsAreVisible = !!event.league && this.pointsVisibilityService.canDisplayPoints(event.league.id);\n\n return model;\n }\n case SportConstant.AmericanFootball:\n case SportConstant.Icehockey:\n case SportConstant.Basketball: {\n const score = event.scoreboard.getScore();\n if (score && score.penaltyShootOutScore) {\n return new PenaltyShootoutScoreboardViewModel();\n }\n\n return new PeriodGameScoreboardViewModel();\n }\n case SportConstant.Snooker: {\n return new SnookerScoreboardViewModel();\n }\n case SportConstant.Baseball: {\n return new BaseBallscoreboardViewModel();\n }\n default: {\n if (event.scoreboard.type === ScoreboardType.SetGame) {\n return new SetScoreboardViewModel();\n }\n\n return new PairScoreboardViewModel();\n }\n }\n }\n switch (event.sport.id) {\n case SportConstant.Biathlon:\n case SportConstant.Motorbikes:\n case SportConstant.Formula1:\n case SportConstant.Skialpine: {\n return new ScoreboardLeaderboardGameViewModel();\n }\n default: {\n return new ScoreboardTournamentGameViewModel();\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { template, templateSettings } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class TimerUtilsService {\n constructor(private sitecore: Sitecore) {}\n\n getEventStartingInText(eventStartDate: number): string {\n const timeDiff = Math.floor((eventStartDate - Date.now()) / 60000);\n\n if (timeDiff >= 60) {\n return this.sitecore.globalMessages.NotStarted;\n }\n if (timeDiff > 1) {\n return this.sitecore.globalMessages.StartingInMinutes.replace(/{{delta}}/, timeDiff.toString());\n }\n if (timeDiff === 1) {\n return this.sitecore.globalMessages.StartingInMinute.replace(/{{delta}}/, '1');\n }\n\n return this.sitecore.globalMessages.StartsNow;\n }\n\n getEventStartingInFullText(eventStartDate: number): string {\n const timeDiff = Math.floor((eventStartDate - Date.now()) / 60000);\n templateSettings.interpolate = /{([\\s\\S]+?)}/g;\n let format = this.sitecore.globalMessages.StartsNowFormatted;\n if (timeDiff >= 60) {\n format = this.sitecore.globalMessages.NotStarted;\n }\n if (timeDiff > 0) {\n format = this.sitecore.globalMessages.TimerStartingInFormatted.replace(/{{delta}}/, timeDiff.toString());\n }\n\n const interpolate = template(format);\n\n return interpolate({ date: timeDiff });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, signal } from '@angular/core';\n\nimport { DsButtonBase } from '@frontend/ui/shared';\n\nexport const DS_BUTTON_ICON_VARIANT_ARRAY = ['flat', 'filled', 'outline', 'flat-reduced'] as const;\nexport type DsButtonIconVariant = (typeof DS_BUTTON_ICON_VARIANT_ARRAY)[number];\n\nexport const DS_BUTTON_ICON_KIND_ARRAY = ['primary', 'secondary', 'tertiary', 'utility'] as const;\nexport type DsButtonIconKind = (typeof DS_BUTTON_ICON_KIND_ARRAY)[number];\n\nexport const DS_BUTTON_ICON_SIZES_ARRAY = ['small', 'medium', 'large'] as const;\nexport type DsButtonIconSizes = (typeof DS_BUTTON_ICON_SIZES_ARRAY)[number];\n\n@Component({\n selector: 'button[ds-button-icon], a[ds-button-icon]',\n standalone: true,\n template: `\n \n \n \n `,\n styleUrl: './button-icon.component.scss',\n host: {\n 'class': 'ds-button-icon',\n '[class]': 'hostClass()',\n '[attr.aria-label]': 'ariaLabel',\n '[class.ds-btn-icon-disabled]': 'disabled ? true : null',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsButtonIcon extends DsButtonBase {\n protected _size = signal('large');\n protected _kind = signal('primary');\n protected _variant = signal('filled');\n protected _ariaLabel = signal('Icon button');\n\n @Input() set variant(value: DsButtonIconVariant) {\n this._variant.set(value);\n }\n get variant() {\n return this._variant();\n }\n @Input() set size(value: DsButtonIconSizes) {\n this._size.set(value);\n }\n get size() {\n return this._size();\n }\n @Input() set kind(value: DsButtonIconKind) {\n this._kind.set(value);\n }\n get kind() {\n return this._kind();\n }\n @Input() set ariaLabel(value: string) {\n this._ariaLabel.set(value);\n }\n get ariaLabel() {\n return this._ariaLabel();\n }\n\n hostClass = computed(() => {\n const variantKindClass = `ds-btn-icon-${this._variant()}-${this._kind()}`;\n const sizeClass = this._variant() === 'flat-reduced' ? `ds-btn-icon-${this._size()}-reduced` : `ds-btn-icon-${this._size()}`;\n return `${variantKindClass} ${sizeClass}`;\n });\n}\n","import { Injectable } from '@angular/core';\n\nimport { NativeAlertsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Alert } from '@frontend/sports/types/components/native-alert';\n\nimport { AlertMessage } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertConfigService {\n constructor(\n private sitecore: Sitecore,\n private nativeAlertsConfig: NativeAlertsConfig,\n ) {}\n\n readonly minuteInMiliseconds = 60000;\n\n getBySport(sportId: number): AlertMessage[] {\n const alertMessages: AlertMessage[] = [];\n const nativeAlertsMessagesConfig = this.sitecore.nativeAlerts?.sports;\n const nativeAlertsConfig = this.nativeAlertsConfig;\n\n if (!nativeAlertsConfig.enabled) {\n return alertMessages;\n }\n\n const sportConfigs = nativeAlertsConfig.sports.filter((x) => x.id === sportId);\n\n if (sportConfigs.length === 0) {\n return alertMessages;\n }\n\n const sportConfig = sportConfigs[0];\n const sports = nativeAlertsMessagesConfig?.filter((x) => x.name.toLowerCase() === sportConfig.name.toLowerCase());\n\n let messages: {} | undefined = {};\n if (sports?.length) {\n messages = sports[0].nativeAlerts;\n }\n\n if (!messages) {\n return alertMessages;\n }\n\n for (const alert of sportConfig.alerts) {\n if (messages[alert.name as keyof typeof messages]) {\n alertMessages.unshift({\n ids: this.extractIds(alert),\n key: alert.name,\n name: messages[alert.name as keyof typeof messages],\n isTop: Boolean(alert.isTop),\n });\n }\n }\n\n return alertMessages;\n }\n\n getTopIdsBySport(sportId: number): number[] {\n let ids: number[] = [];\n\n const sportConfig = this.nativeAlertsConfig.sports.find((x) => x.id === sportId);\n if (sportConfig) {\n ids = sportConfig.alerts.filter((alert) => alert.isTop).reduce((array, alert) => array.concat(this.extractIds(alert)), [] as number[]);\n }\n\n return ids;\n }\n\n private extractIds = (alert: Alert): number[] => {\n if (!alert.id && alert.containedAlerts) {\n return alert.containedAlerts.filter((x) => x.id !== null).map((x) => x.id as number);\n }\n\n return !alert.id ? [] : [alert.id];\n };\n\n isSportEnabled(sportId: number): boolean {\n const sportConfigs = this.nativeAlertsConfig.sports.filter((x) => x.id === sportId);\n\n return sportConfigs.length > 0;\n }\n\n isEnabled(): boolean {\n return this.nativeAlertsConfig.enabled;\n }\n\n get fetchingInterval(): number {\n return this.nativeAlertsConfig.fetchingInterval * this.minuteInMiliseconds;\n }\n}\n","export interface Category {\n id: string;\n groupId?: number;\n idType: Type;\n}\n\nexport class Subscriptions {\n [eventId: number]: Subscription;\n}\n\nexport class Subscription {\n action: Action;\n sportId: number;\n event: Category;\n league: Category;\n scores: number[];\n tracking?: string;\n}\n\nexport interface NativeAlertsResponse {\n subscription: Subscription[];\n}\n\nexport interface AlertEvent {\n sportId: number;\n eventId: string;\n leagueId: number;\n eventGroupId?: number;\n leagueGroupId?: number;\n title: string;\n live: boolean;\n selected?: boolean;\n}\n\nexport interface EventViewModel {\n subscription: Subscription;\n title: string;\n}\n\nexport interface AlertViewModel {\n info: AlertMessage;\n isSelected?: boolean;\n}\n\nexport interface AlertMessage {\n ids: number[];\n key: string;\n name: string;\n isTop: boolean;\n}\n\nexport enum Action {\n Subscribe = 0,\n Unsubscribe = 1,\n Exclude = 2,\n}\n\nexport enum Type {\n NonLive = 0,\n Live,\n}\n\nexport enum Source {\n Mybets = 'mybets',\n Mybet = 'mybet',\n Betslip = 'betslipconfirmation',\n Event = 'event',\n Scoreboard = 'scoreboard',\n}\n\nexport interface AlertPreferences {\n [sportId: number]: number[];\n}\n\nexport enum NativeEventType {\n LiveAlertScreenNavigation = 'LiveAlertScreenNavigation',\n BetScreenNavigation = 'BetScreenNavigation',\n OpenFreeBets = 'OpenFreeBets',\n MyBetsNavigation = 'MyBetsNavigation',\n IsNotificationEnabled = 'isNotificationEnabled',\n}\n\nexport enum Mode {\n Single,\n Multi,\n}\n\nexport enum Page {\n List,\n Detail,\n}\n\nexport enum NotificationEnabled {\n Yes = 'Yes',\n No = 'No',\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { SimpleCallback } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { AlertConfigService } from './alert-config.service';\nimport { NativeAlertsResponse, Subscription } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class SubscriptionStreamService {\n private _data = new BehaviorSubject([]);\n private interval?: SimpleCallback;\n private readonly logger: SportsRemoteLogger;\n\n readonly data$ = this._data.asObservable();\n\n constructor(\n private apiService: ApiService,\n private alertConfigService: AlertConfigService,\n private userService: UserService,\n private timerService: TimerService,\n loggerFactory: LoggerFactory,\n ) {\n if (this.userService.isAuthenticated) {\n this.startGettingSubscriptions();\n }\n\n this.userService.onUserLogin$.pipe(takeUntilDestroyed()).subscribe(() => this.startGettingSubscriptions());\n this.userService.onUserLogout$.pipe(takeUntilDestroyed()).subscribe(() => this.stopGettingSubscriptions());\n\n this.logger = loggerFactory.getLogger('SubscriptionStreamService');\n }\n\n stopGettingSubscriptions(): void {\n if (this.interval) {\n this.interval();\n }\n\n this._data.next([]);\n }\n\n private startGettingSubscriptions(): void {\n if (this.alertConfigService.isEnabled()) {\n this.refreshSubscriptions();\n\n this.interval = this.timerService.setIntervalOutsideAngular(() => {\n this.refreshSubscriptions();\n }, this.alertConfigService.fetchingInterval);\n }\n }\n\n private refreshSubscriptions(): void {\n this.apiService\n .get('nativealerts/getSubscriptions')\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'Refresh Native Alerts Subscriptions failed.');\n\n return of({ subscription: [] });\n }),\n )\n .subscribe((response) => this._data.next(response.subscription));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { BehaviorSubject, Observable, firstValueFrom } from 'rxjs';\n\nimport { Action, AlertEvent, Subscription, Subscriptions, Type } from './model';\nimport { SubscriptionStreamService } from './subscription-stream.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertSubscriptionService {\n private subscriptionsSubject = new BehaviorSubject({});\n private readonly logger: SportsRemoteLogger;\n\n event: Observable = this.subscriptionsSubject.asObservable();\n\n constructor(\n private apiService: ApiService,\n private streamService: SubscriptionStreamService,\n private trackingService: TrackingService,\n loggerFactory: LoggerFactory,\n ) {\n this.streamService.data$.pipe(filterSportsEmitLast(), takeUntilDestroyed()).subscribe(this.processData);\n this.logger = loggerFactory.getLogger('AlertSubscriptionService');\n }\n\n private processData = (data: Subscription[]) => {\n const subscriptions: Record = {};\n if (data) {\n data.forEach((item) => {\n subscriptions[item.event.id] = item;\n });\n }\n\n this.propagate(subscriptions);\n };\n\n private sendSubscriptions(subscriptionsToUpdate: Subscription[]): Promise {\n return firstValueFrom(this.apiService.post('nativealerts/updateSubscriptions', subscriptionsToUpdate));\n }\n\n updateSubscriptions(subscriptionsToUpdate: Subscription[]): Promise {\n subscriptionsToUpdate.forEach((subscription) => {\n subscription.action = subscription.scores && subscription.scores.length > 0 ? Action.Subscribe : Action.Unsubscribe;\n });\n\n this.sendSubscriptions(subscriptionsToUpdate).catch((error) => {\n if (error.errorCode === 'Unauthenticated') {\n this.streamService.stopGettingSubscriptions();\n } else {\n this.logger.error(error, 'Update Native Alerts Subscriptions failed.');\n }\n });\n\n return this.updateLocalCollection(subscriptionsToUpdate);\n }\n\n private updateLocalCollection = (subscriptionsToUpdate: Subscription[]): Promise => {\n return new Promise((resolve) => {\n const subscriptions = this.subscriptionsSubject.getValue();\n subscriptionsToUpdate.forEach((newSubscription) => {\n if (newSubscription.action === Action.Subscribe) {\n this.trackSubscription(newSubscription);\n subscriptions[newSubscription.event.id as unknown as number] = newSubscription;\n } else {\n delete subscriptions[newSubscription.event.id as unknown as number];\n }\n });\n this.propagate(subscriptions);\n resolve(subscriptionsToUpdate);\n });\n };\n\n private trackSubscription(item: Subscription): void {\n if (item.tracking) {\n this.trackingService.track(trackingConstants.EVENT_ALERT_ENABLED, {\n [trackingConstants.PAGE_NAME]: `${item.tracking}_E${item.event.id}_S${item.sportId}`,\n });\n delete item.tracking;\n }\n }\n\n private propagate(newSubscriptions: Subscriptions): void {\n this.subscriptionsSubject.next(newSubscriptions);\n }\n\n unsubscribeAll(subscriptionsToRemove: Subscription[]): Promise {\n subscriptionsToRemove.forEach((subscription) => {\n subscription.scores = [];\n subscription.action = Action.Unsubscribe;\n });\n\n this.sendSubscriptions(subscriptionsToRemove);\n\n return this.updateLocalCollection(subscriptionsToRemove);\n }\n\n private getSubscriptionForEvent(id: string): Subscription {\n return this.subscriptionsSubject.getValue()[id as unknown as number];\n }\n\n private getSubscriptionForGroup(groupId?: number): Subscription | undefined {\n let subscription;\n const currentSubscriptions = this.subscriptionsSubject.getValue();\n Object.keys(currentSubscriptions).forEach((key) => {\n if (currentSubscriptions[key as unknown as number].event.groupId === groupId) {\n subscription = currentSubscriptions[key as unknown as number];\n }\n });\n\n return subscription;\n }\n\n getSubscription(id: string, groupId?: number): Subscription {\n let subscription: any;\n\n subscription = this.getSubscriptionForEvent(id);\n if (!subscription && groupId > 0) {\n subscription = this.getSubscriptionForGroup(groupId);\n }\n\n return subscription;\n }\n\n getSubscriptions(events: AlertEvent[]): Subscription[] {\n return events.map((e) => this.getSubscription(e.eventId, e.eventGroupId)).filter((s) => s);\n }\n\n createNewSubscription(alertEvent: AlertEvent): Subscription {\n return {\n action: Action.Subscribe,\n event: {\n id: alertEvent.eventId,\n groupId: alertEvent.eventGroupId,\n idType: alertEvent.live ? Type.Live : Type.NonLive,\n },\n league: {\n id: alertEvent.leagueId.toString(),\n groupId: alertEvent.leagueGroupId,\n idType: Type.NonLive, // hardcoded per instructions from CNS team\n },\n scores: [],\n sportId: alertEvent.sportId,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NativeAppService, NativeEvent } from '@frontend/vanilla/core';\nimport { Observable, filter } from 'rxjs';\n\nimport { NativeEventType } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NativeAlertsService {\n constructor(private nativeAppService: NativeAppService) {}\n\n subscribeToNotificationCheck(): Observable {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.IsNotificationEnabled,\n });\n\n return this.nativeAppService.eventsFromNative.pipe(filter((e) => e.eventName === NativeEventType.IsNotificationEnabled));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertToastMessagesService {\n private timeout: number;\n constructor(\n private toaster: ToasterService,\n private sitecore: Sitecore,\n ) {\n this.timeout = 3000;\n }\n\n showUnsubscribedToast(): void {\n if (this.sitecore.nativeAlerts) {\n this.startToast(this.sitecore.nativeAlerts.messages.LiveNotificationsUnsubscribed);\n }\n }\n\n showSubscribedToast(): void {\n if (this.sitecore.nativeAlerts) {\n this.startToast(this.sitecore.nativeAlerts.messages.LiveNotificationsSubscribed);\n }\n }\n\n private startToast(toast: string): void {\n this.toaster.open(toast, { duration: this.timeout, icon: 'sports-alert' });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AlertToastMessagesService } from '../alert-toast-messages.service';\nimport { Action, AlertEvent, Mode, Subscription } from '../model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertSelectorService {\n mode: Mode;\n model: AlertEvent[];\n source: string;\n private subscribed: boolean;\n private toast?: Function;\n\n constructor(private toastMessageService: AlertToastMessagesService) {}\n\n showSelector(multi: boolean, source: string, selected: boolean): void {\n delete this.toast;\n this.mode = Mode[multi ? 'Multi' : 'Single'];\n this.source = source;\n this.subscribed = selected;\n }\n\n confirm(subscriptions?: Subscription[]): void {\n if (subscriptions) {\n const newsubscribed = subscriptions.filter((_) => _.action === Action.Subscribe).length;\n if (!this.subscribed && newsubscribed) {\n this.toast = this.toastMessageService.showSubscribedToast.bind(this.toastMessageService);\n }\n if (this.subscribed && !this.model.filter((_) => _.selected).length) {\n this.toast = this.toastMessageService.showUnsubscribedToast.bind(this.toastMessageService);\n }\n }\n\n this.toast?.();\n }\n}\n","
\n @if (showBackButton) {\n
\n \n
\n }\n
{{ title }}
\n \n
\n@if (isListView) {\n
\n
\n
\n \n
\n \n @if (allSelected) {\n Deselect All\n } @else {\n Select All\n }\n \n
\n
\n @for (event of events; track event) {\n
\n 0\"\n [disable]=\"true\"\n (click)=\"toggleEvent(event.subscription)\">\n
\n {{ event.title }}\n
\n \n
\n }\n
\n
\n}\n@if (isDetailView) {\n
\n
\n @for (alert of alerts; track alert) {\n
\n \n
\n {{ alert.info.name }}\n
\n
\n }\n
\n
\n}\n@if (showFooter) {\n
\n @if (showConfirmButton) {\n \n } @else {\n \n {{ sitecore.nativeAlerts.messages.CancelButton }}\n \n }\n
\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { NativeAlertsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\nimport { cloneDeep } from 'lodash-es';\nimport { Subscription as RxjsSubscription } from 'rxjs';\n\nimport { AlertConfigService } from '../alert-config.service';\nimport { AlertSubscriptionService } from '../alert-subscription.service';\nimport { AlertEvent, AlertMessage, AlertPreferences, AlertViewModel, EventViewModel, Mode, NotificationEnabled, Page, Subscription } from '../model';\nimport { NativeAlertsService } from '../native-alerts.service';\nimport { AlertSelectorService } from './alert-selector.service';\n\n@Component({\n selector: 'ms-alert-selector',\n templateUrl: 'alert-selector.html',\n})\nexport class AlertSelectorComponent implements OnInit {\n private page: Page;\n events: EventViewModel[];\n alerts: AlertViewModel[];\n selectedEvent: EventViewModel;\n allSelected: boolean;\n formChanged: boolean;\n private alertPreferences: AlertPreferences = {};\n private alertMessagesCache: { [sportId: number]: AlertMessage[] } = {};\n private detailViewInitValues: { name: string; value: boolean }[] = [];\n private subscription: RxjsSubscription;\n\n // TODO MD\n constructor(\n private selectorService: AlertSelectorService,\n private subscriptionService: AlertSubscriptionService,\n private alertConfigService: AlertConfigService,\n public sitecore: Sitecore,\n private activeModal: ActiveModal,\n private nativeAlertsConfig: NativeAlertsConfig,\n private nativeAlertsService: NativeAlertsService,\n ) {}\n\n ngOnInit(): void {\n this.page = Page.List;\n this.events = this.createEventsModel();\n\n if (this.isSingleMode) {\n this.edit(this.events[0]);\n }\n\n if (this.isMultiMode) {\n this.refreshSelectAllButton();\n }\n this.setInitailValues();\n }\n\n closeSelector(): void {\n this.activeModal.close();\n }\n\n save(): void {\n if (!this.nativeAlertsConfig.appNotificationsEnabledCheck) {\n this.saveAlerts();\n } else {\n this.verifyAndSaveAlerts();\n }\n }\n\n private saveAlerts(): void {\n if (this.isDetailView) {\n this.updateSelectedSubscription();\n }\n\n this.updateEvents();\n }\n\n private verifyAndSaveAlerts(): void {\n this.subscription?.unsubscribe();\n this.subscription = this.nativeAlertsService.subscribeToNotificationCheck().subscribe((data) => {\n if (data?.parameters?.notificationEnabled === NotificationEnabled.Yes) {\n this.saveAlerts();\n }\n this.subscription.unsubscribe();\n });\n }\n\n backToList(): void {\n this.updateSelectedSubscription();\n this.refreshSelectAllButton();\n\n this.page = Page.List;\n }\n\n edit(event: EventViewModel): void {\n this.page = Page.Detail;\n this.selectedEvent = event;\n this.alerts = this.createAlertsModel(event.subscription);\n\n if (!this.formChanged) {\n this.formChanged = !this.hasAnyAlerts(event.subscription);\n }\n }\n\n toggleAlert(alert: AlertViewModel): void {\n alert.isSelected = !alert.isSelected;\n this.formChanged = true;\n }\n\n toggleEvent(subscription: Subscription): void {\n this.toggleScores(subscription, !this.hasAnyAlerts(subscription));\n\n this.refreshSelectAllButton();\n this.formChanged = this.isValueChanged();\n }\n\n toggleAllEvents(): void {\n this.allSelected = !this.allSelected;\n\n this.events.forEach((event) => {\n if (this.allSelected) {\n if (this.hasAnyAlerts(event.subscription)) {\n return;\n }\n\n this.toggleScores(event.subscription, true);\n } else {\n this.toggleScores(event.subscription, false);\n }\n });\n\n this.formChanged = this.isValueChanged();\n }\n\n private toggleScores(subscription: Subscription, subscribe: boolean): void {\n if (subscribe) {\n subscription.scores = this.getAlertsIdsForSport(subscription.sportId);\n this.addTrackingInfo(subscription);\n } else {\n subscription.scores = [];\n delete subscription.tracking;\n }\n }\n\n private updateEvents(): void {\n const subscriptionsToUpdate = this.events.filter((event) => this.shouldUpdate(event.subscription)).map((s) => s.subscription);\n\n if (subscriptionsToUpdate.length > 0) {\n this.subscriptionService\n .updateSubscriptions(subscriptionsToUpdate)\n .then(() => {\n this.selectorService.confirm(subscriptionsToUpdate);\n })\n .finally(() => this.activeModal.close());\n } else {\n this.activeModal.close();\n }\n }\n\n private refreshSelectAllButton(): void {\n const noAlertEvent = this.events.find((e) => !this.hasAnyAlerts(e.subscription));\n this.allSelected = noAlertEvent === undefined ? true : false;\n }\n\n private createEventsModel(): EventViewModel[] {\n return this.selectorService.model.map((alertEvent: AlertEvent) => {\n const subscription = this.subscriptionService.getSubscription(alertEvent.eventId, alertEvent.eventGroupId);\n if (subscription) {\n return {\n subscription: cloneDeep(subscription),\n title: alertEvent.title,\n };\n }\n\n return {\n subscription: this.subscriptionService.createNewSubscription(alertEvent),\n title: alertEvent.title,\n };\n });\n }\n\n private createAlertsModel(subscription: Subscription): AlertViewModel[] {\n const alertsMessages: AlertMessage[] = this.getAlertMessages(subscription.sportId);\n const hasAnyAlerts = this.hasAnyAlerts(subscription);\n const preferences = this.alertPreferences[subscription.sportId];\n\n const model = alertsMessages.map((alertMessage) => {\n const alertViewModel: AlertViewModel = {\n info: alertMessage,\n };\n\n if (hasAnyAlerts) {\n alertViewModel.isSelected = alertMessage.ids.every((id) => subscription.scores.indexOf(id) > -1);\n } else if (preferences) {\n alertViewModel.isSelected = alertMessage.ids.every((id) => preferences.indexOf(id) > -1);\n } else {\n alertViewModel.isSelected = alertMessage.isTop;\n }\n\n return alertViewModel;\n });\n\n return model;\n }\n\n private updateSelectedSubscription(): void {\n const selectedIds = this.getSelectedAlertIds();\n const updatePreferences = !selectedIds.length || selectedIds.sort().join(',') !== this.selectedEvent.subscription.scores.sort().join(',');\n this.selectedEvent.subscription.scores = selectedIds;\n this.addTrackingInfo(this.selectedEvent.subscription);\n\n if (updatePreferences) {\n this.alertPreferences[this.selectedEvent.subscription.sportId] = this.selectedEvent.subscription.scores;\n }\n }\n\n private getSelectedAlertIds(): number[] {\n let ids: number[] = [];\n this.alerts.filter((alert) => alert.isSelected).forEach((_) => (ids = ids.concat(_.info.ids)));\n\n return ids;\n }\n\n private addTrackingInfo(subscription: Subscription): void {\n this.alerts = this.alerts || this.createAlertsModel(subscription);\n const data = this.alerts\n .filter((_) => _.isSelected)\n .map((_) => _.info.key)\n .join('_');\n if (data.length) {\n subscription.tracking = `${this.selectorService.source}_${data}`;\n }\n }\n\n private getAlertsIdsForSport(sportId: number): number[] {\n const preferences = this.alertPreferences[sportId];\n if (preferences) {\n return preferences;\n }\n\n return this.alertConfigService.getTopIdsBySport(sportId);\n }\n\n private hasAnyAlerts(subscription: Subscription): boolean {\n return subscription.scores && subscription.scores.length > 0;\n }\n\n private shouldUpdate(subscription: Subscription): boolean {\n const currentSubscription = this.subscriptionService.getSubscription(subscription.event.id, subscription.event.groupId);\n if (currentSubscription) {\n return currentSubscription.scores.sort().join(',') !== subscription.scores.sort().join(',');\n }\n\n return this.hasAnyAlerts(subscription);\n }\n\n private getAlertMessages(sportId: number): AlertMessage[] {\n if (!this.alertMessagesCache[sportId]) {\n this.alertMessagesCache[sportId] = this.alertConfigService.getBySport(sportId);\n }\n\n return this.alertMessagesCache[sportId];\n }\n\n private setInitailValues() {\n this.detailViewInitValues = this.events.map((e) => ({\n name: e.title,\n value: this.hasAnyAlerts(e.subscription),\n }));\n }\n\n private isValueChanged(): boolean {\n let changed = false;\n this.events.forEach((event) => {\n if (!changed) {\n changed = !!this.detailViewInitValues.find((e) => e.name === event.title && this.hasAnyAlerts(event.subscription) !== e.value);\n }\n });\n\n return changed;\n }\n\n get showConfirmButton(): boolean {\n return this.isSingleMode || (!!this.formChanged && this.isListView);\n }\n\n get showFooter(): boolean {\n return this.isListView || this.isSingleMode;\n }\n\n get showBackButton(): boolean {\n return this.isDetailView && this.isMultiMode;\n }\n\n get isDetailView(): boolean {\n return this.page === Page.Detail;\n }\n\n get isListView(): boolean {\n return this.page === Page.List;\n }\n\n get isMultiMode(): boolean {\n return this.selectorService.mode === Mode.Multi;\n }\n\n get isSingleMode(): boolean {\n return this.selectorService.mode === Mode.Single;\n }\n\n get title(): string {\n return this.isDetailView\n ? this.sitecore.nativeAlerts?.messages.SingleEventSelectorTitle || ''\n : this.sitecore.nativeAlerts?.messages.MultiEventSelectorTitle || '';\n }\n}\n","import { ChangeDetectorRef, Component, DestroyRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NativeAlertsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DialogSettings, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Subscription } from 'rxjs';\n\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport { IScoreboardLiveAlert } from '../../scoreboards/models/scoreboard.viewmodel';\nimport { AlertConfigService } from '../alert-config.service';\nimport { AlertSelectorComponent } from '../alert-selector/alert-selector.component';\nimport { AlertSelectorService } from '../alert-selector/alert-selector.service';\nimport { AlertSubscriptionService } from '../alert-subscription.service';\nimport { AlertToastMessagesService } from '../alert-toast-messages.service';\nimport { AlertEvent, NotificationEnabled, Source, Subscriptions } from '../model';\nimport { NativeAlertsService } from '../native-alerts.service';\n\n@Component({\n selector: 'ms-alert',\n template: '',\n})\nexport class AlertButtonComponent implements OnInit {\n @Input() disable = false;\n @Input() model: any;\n @Input() tracking?: string;\n @Output() alertEnabled = new EventEmitter();\n\n @Input()\n @HostBinding('class.alert-selected')\n selected: boolean;\n\n @HostBinding('class.alert-enabled') enabled = false;\n\n @HostBinding('class.alert-deselected')\n get deselected(): boolean {\n return !this.selected;\n }\n\n @HostBinding('class.sports-alert')\n get alert(): boolean {\n return this.enabled && !this.multiple && this.selected;\n }\n\n @HostBinding('class.sports-alert-o')\n get alertDisabled(): boolean {\n return this.enabled && !this.multiple && !this.selected;\n }\n\n @HostBinding('class.sports-alert-multiple')\n get alertMultiple(): boolean {\n return this.enabled && this.multiple && this.selected;\n }\n\n @HostBinding('class.sports-alert-multiple-o')\n get alertMultipleDisabled(): boolean {\n return this.enabled && this.multiple && !this.selected;\n }\n\n private events: AlertEvent[] = [];\n private multiple = false;\n private dialog?: ModalRef;\n private subscription: Subscription;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private alertsConfig: AlertConfigService,\n private toastMessageService: AlertToastMessagesService,\n private selectorService: AlertSelectorService,\n private subscriptionService: AlertSubscriptionService,\n private userService: UserService,\n private modalDialogService: ModalDialogService,\n private changeDetector: ChangeDetectorRef,\n private redirectService: RedirectHelperService,\n private nativeAlertsConfig: NativeAlertsConfig,\n private nativeAlertsService: NativeAlertsService,\n ) {}\n\n ngOnInit(): void {\n this.events = this.model ? this.getModel(this.model) : this.selectorService.model;\n this.enabled = this.alertsConfig.isEnabled() && this.events && this.alertsConfig.isSportEnabled(this.events[0].sportId);\n this.multiple = this.events && this.events.length > 1;\n\n if (this.enabled) {\n this.alertEnabled.emit();\n this.subscribe();\n }\n }\n\n @HostListener('click', ['$event'])\n clicked(event: Event): void {\n if (!this.userService.isAuthenticated) {\n this.redirectService.goToLogin({ appendReferrer: true });\n\n return;\n }\n\n if (this.disable) {\n return;\n }\n\n if (this.selected && !this.multiple) {\n this.unsubscribe();\n } else {\n this.openDialog();\n }\n\n event.stopPropagation();\n }\n\n private unsubscribe(): void {\n const subscriptions = this.subscriptionService.getSubscriptions(this.events);\n if (subscriptions) {\n this.subscriptionService.unsubscribeAll(subscriptions).then(() => {\n this.selected = false;\n this.toastMessageService.showUnsubscribedToast();\n });\n }\n }\n\n private async openDialog(): Promise {\n if (!this.nativeAlertsConfig.appNotificationsEnabledCheck) {\n this.launchAlertSelector();\n } else {\n this.verifyAndLaunchAlertsSelector();\n }\n }\n\n private launchAlertSelector(): void {\n if (this.dialog) {\n return;\n }\n\n this.selectorService.model = this.events.filter((event: AlertEvent) => this.alertsConfig.isSportEnabled(event.sportId));\n this.selectorService.showSelector(this.multiple, this.tracking || '', this.selected);\n\n const settings: DialogSettings = {\n showPageHeader: false,\n cssClass: 'alerts-selector-popup',\n isModalDialog: false,\n fit: false,\n };\n\n this.dialog = this.modalDialogService.openDialog(AlertSelectorComponent, { settings });\n this.dialog?.result.finally(() => {\n this.dialog = undefined;\n });\n }\n\n private verifyAndLaunchAlertsSelector(): void {\n if (this.dialog) {\n return;\n }\n\n this.subscription?.unsubscribe();\n this.subscription = this.nativeAlertsService.subscribeToNotificationCheck().subscribe((data) => {\n if (data?.parameters?.notificationEnabled === NotificationEnabled.Yes) {\n this.launchAlertSelector();\n }\n this.subscription.unsubscribe();\n });\n }\n\n private subscribe(): void {\n this.subscriptionService.event.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => this.updateProperty(res));\n }\n\n private updateProperty(subscription: Subscriptions): void {\n if (!subscription || this.disable) {\n return;\n }\n\n const wasSelected = this.selected;\n\n this.selected = false;\n this.events.forEach((item) => {\n item.selected = !!this.subscriptionService.getSubscription(item.eventId, item.eventGroupId);\n\n if (item.selected) {\n this.selected = true;\n }\n });\n\n if (wasSelected !== this.selected) {\n this.changeDetector.markForCheck();\n }\n }\n\n private getBetslipModel(item: any): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.clientPick.liveAlert && this.alertsConfig.isSportEnabled(item.clientPick.sportId)) {\n result.push({\n sportId: item.clientPick.sportId,\n eventId: item.clientPick.fixture?.fixtureId ?? item.clientPick.event?.id,\n leagueId: item.clientPick.leagueId ?? item.clientPick.league?.id,\n title: item.clientPick.eventName.name,\n eventGroupId: item.clientPick.event?.groupId,\n leagueGroupId: item.clientPick.league?.parentleagueId,\n live: item.clientPick.isLive,\n });\n }\n\n return result;\n }\n\n private getEventModel(item: EventModel): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sport.id,\n eventId: item.id,\n leagueId: item.league.id,\n title: item.name,\n eventGroupId: item.groupId,\n leagueGroupId: item.league.parentLeagueId,\n live: item.live,\n });\n }\n\n return result;\n }\n\n private getMyBetModel(item: any): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sportsId,\n eventId: item.eventId,\n leagueId: item.leagueId,\n title: item.eventName,\n eventGroupId: item.eventGroupId,\n leagueGroupId: item.leagueGroupId,\n live: item.containsLiveBets,\n });\n }\n\n return result;\n }\n\n private getScoreboardModel(item: IScoreboardLiveAlert): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sportId,\n eventId: item.eventId,\n leagueId: item.leagueId,\n title: item.title,\n eventGroupId: item.eventGroupId,\n leagueGroupId: item.leagueGroupId,\n live: item.live,\n });\n }\n\n return result;\n }\n\n private getMyBetsModel(items: any): AlertEvent[] {\n let result: AlertEvent[] = [];\n items.bets.forEach((item: any) => {\n result = result.concat(this.getMyBetModel(item));\n });\n\n return result;\n }\n\n private getModel(model: any): AlertEvent[] {\n let result: AlertEvent[] = [];\n\n if (!model || model.length === 0) {\n return result;\n }\n\n const models = Array.isArray(model) ? model : [model];\n\n models.forEach((current) => {\n switch (this.tracking) {\n case Source.Mybets: {\n result = result.concat(this.getMyBetsModel(current));\n break;\n }\n case Source.Mybet: {\n result = result.concat(this.getMyBetModel(current));\n break;\n }\n case Source.Betslip: {\n result = result.concat(this.getBetslipModel(current));\n break;\n }\n case Source.Scoreboard: {\n result = result.concat(this.getScoreboardModel(current));\n break;\n }\n default: {\n result = result.concat(this.getEventModel(current));\n break;\n }\n }\n });\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DsButton } from '@frontend/ui/button';\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { AlertButtonComponent } from './alert-button/alert-button.component';\nimport { AlertSelectorComponent } from './alert-selector/alert-selector.component';\n\n@NgModule({\n imports: [CommonModule, DsButton, DsButtonIcon, IconCustomComponent],\n declarations: [AlertButtonComponent, AlertSelectorComponent],\n exports: [AlertButtonComponent, AlertSelectorComponent],\n})\nexport class NativeAlertsModule {}\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2 } from '@angular/core';\n\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { Subscription } from 'rxjs';\n\nimport { ColumnLayoutService } from '../layout/column-layout.service';\n\n@Directive({\n selector: '[msScrolledToBottom]',\n})\nexport class ScrolledToBottomDirective implements OnInit, OnDestroy {\n private readonly DEFAULT_SCROLL_TOLERANCE = 170; // number of px before reaching the footer\n\n @Input() scrollContext: 'self' | 'document' = 'self'; // self = when scroll current element, document when document scrolling\n @Input() toleranceValue: number = this.DEFAULT_SCROLL_TOLERANCE;\n @Input() toleranceType: 'exact' | 'relative' = 'exact';\n @Output() scrollAtBottom = new EventEmitter();\n @Output() scrollAtMid = new EventEmitter();\n\n private subscription: Subscription;\n private previousTop = 0;\n private scrollTolerance?: number;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private layout: ColumnLayoutService,\n private scrollContainer: ScrollContainerService,\n ) {}\n\n ngOnInit(): void {\n this.subscription = this.scrollContext === 'self' ? this.subscribeElement() : this.subscribeContainer();\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n private subscribeElement(): Subscription {\n const handler = (event: Event) => this.onScroll(event.target as HTMLElement | Window);\n const listener = this.renderer.listen(this.elementRef.nativeElement, 'scroll', handler);\n\n return new Subscription(listener);\n }\n\n private subscribeContainer(): Subscription {\n return this.scrollContainer.scroll.subscribe((container) => this.onScroll(container as HTMLElement | Window));\n }\n\n private getHeight(element: HTMLElement | Window): { clientHeight: number; scrollHeight: number; scrollTop: number } {\n let target: HTMLElement;\n let scrollTop: number;\n\n if ('pageYOffset' in element) {\n const windowRef = element;\n target = windowRef.document.documentElement;\n scrollTop = windowRef.pageYOffset;\n } else {\n target = element;\n scrollTop = target.scrollTop;\n }\n\n return {\n clientHeight: target.clientHeight,\n scrollHeight: target.scrollHeight,\n scrollTop,\n };\n }\n\n private setTolerance(clientHeight: number): void {\n this.scrollTolerance = this.toleranceType === 'relative' ? this.toleranceValue * clientHeight : this.toleranceValue;\n }\n\n private onScroll = (element: HTMLElement | Window) => {\n const { clientHeight, scrollHeight, scrollTop } = this.getHeight(element);\n const offsetTop = this.previousTop < scrollTop;\n\n if (!this.scrollTolerance) {\n this.setTolerance(clientHeight);\n }\n\n if (offsetTop && scrollTop + clientHeight + this.layout.currentFooterSize + this.scrollTolerance! >= scrollHeight) {\n this.scrollAtBottom.emit();\n }\n\n const height = clientHeight / 2;\n const isMidLevel = scrollTop - height >= 0;\n this.scrollAtMid.emit(isMidLevel);\n this.previousTop = scrollTop;\n };\n}\n","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output, Renderer2 } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\n\n@Directive({\n selector: '[msClassAutoRemove]',\n})\nexport class ClassAutoRemoveDirective implements OnDestroy {\n @Input('msClassAutoRemove') className = '';\n @Input() msClassAutoRemoveTime = 1000; // Default value: 1 sec.\n @Output() msClassAutoRemoveIsClassVisibleChange = new EventEmitter();\n\n private removeTimer: Nullable<() => void> = null;\n private _isClassVisible: boolean;\n\n @Input('msClassAutoRemoveIsClassVisible')\n get isClassVisible(): boolean {\n return this._isClassVisible;\n }\n\n set isClassVisible(value: boolean) {\n this.applyChanges(value);\n }\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private timerService: TimerService,\n ) {}\n\n ngOnDestroy(): void {\n this.clearTimer();\n }\n\n private applyChanges(value: boolean): void {\n if (value && !this.elementHasClass()) {\n this.addClass();\n this.startTimer();\n } else if (!value && this.elementHasClass()) {\n this.removeClass();\n this.clearTimer();\n }\n }\n\n private addClass(): void {\n this.renderer.addClass(this.elementRef.nativeElement, this.className);\n this._isClassVisible = true;\n this.msClassAutoRemoveIsClassVisibleChange.emit(true);\n }\n\n private removeClass(): void {\n this.renderer.removeClass(this.elementRef.nativeElement, this.className);\n this._isClassVisible = false;\n this.msClassAutoRemoveIsClassVisibleChange.emit(false);\n }\n\n private startTimer(): void {\n this.removeTimer = this.timerService.setTimeout(() => {\n this.removeClass();\n this.removeTimer = null;\n }, this.msClassAutoRemoveTime);\n }\n\n private clearTimer(): void {\n if (this.removeTimer) {\n this.removeTimer = null;\n }\n }\n\n private elementHasClass(): boolean {\n return this.elementRef.nativeElement.classList.contains(this.className);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Input, OnInit, inject } from '@angular/core';\n\n@Directive({\n selector: '[msColumnWidth]',\n})\nexport class ColumnWidthDirective implements OnInit {\n private readonly _doc = inject(DOCUMENT);\n\n constructor(private element: ElementRef) {}\n\n @Input('msColumnWidth') columnSelector = '';\n\n ngOnInit(): void {\n this.setElementWidth();\n }\n\n setElementWidth(): void {\n const column = this.getColumnElement();\n if (!column) {\n throw new Error('could not find .column parent element');\n }\n\n this.element.nativeElement.style.width = column.getBoundingClientRect().width + 'px';\n }\n\n private getColumnElement(): HTMLElement | null {\n return this._doc.querySelector(`.${this.columnSelector}`);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, HostListener, OnInit, inject } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { WINDOW } from '@frontend/vanilla/core';\n\n@Directive({\n selector: '[msHeightToBottom]',\n})\nexport class HeightToBottomDirective implements OnInit {\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(private element: ElementRef) {}\n\n ngOnInit(): void {\n this.setElementHeight();\n }\n\n @HostListener('window:resize')\n setElementHeight(): void {\n const pageHeight = this.#window.innerHeight;\n const bottomNav = this._doc.querySelector('nav.bottom-nav') as Nullable;\n const bottomNavOffsetHeight = bottomNav?.offsetHeight || 50;\n\n const elementOffsetTop = this.element.nativeElement.offsetTop;\n const mainHeader = this._doc.querySelector('header.header') as Nullable;\n const mainHeaderHeight = mainHeader?.offsetHeight || 0;\n\n const elementTop = elementOffsetTop > 0 ? elementOffsetTop : mainHeaderHeight;\n this.element.nativeElement.style.height = pageHeight - bottomNavOffsetHeight - elementTop + 'px';\n }\n}\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[msInfoyTooltip]',\n})\nexport class InfoTooltipDirective implements OnInit {\n constructor(\n private element: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit(): void {\n this.setElementPosition();\n }\n\n private setElementPosition(): void {\n const parent = this.renderer.parentNode(this.element.nativeElement);\n\n if (parent) {\n const leftAlign = parent.offsetLeft;\n this.renderer.setStyle(this.element.nativeElement, 'left', leftAlign + 'px');\n }\n }\n}\n","import { AfterViewInit, DestroyRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Directive({\n selector: '[msOutsideInteraction]',\n})\nexport class OutsideInteractionDirective implements AfterViewInit {\n @Output() msOutsideInteraction = new EventEmitter();\n\n @Input() set msOutsideInteractionExclude(value: string) {\n this.excludeSelectors = (value || '').split(',');\n }\n\n private excludeSelectors: string[] | undefined = undefined;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private elementRef: ElementRef,\n private ngZone: NgZone,\n ) {}\n\n ngAfterViewInit(): void {\n const events = ['click'];\n\n this.ngZone.runOutsideAngular(() => {\n merge(...events.map((event) => fromEvent(this.#window, event)))\n .pipe(\n filter((e) => !this.isOwnClick(e)),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => this.msOutsideInteraction.next());\n });\n }\n\n private isOwnClick(event: Event): boolean {\n const target = event.target as HTMLElement;\n let isOwnEvent = !!target && this.element.contains(target);\n\n if (!isOwnEvent && this.excludeSelectors) {\n this.excludeSelectors.forEach((selector) => (isOwnEvent = isOwnEvent || target.matches(selector)));\n }\n\n return isOwnEvent;\n }\n\n private get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n readonly #window = inject(WINDOW);\n}\n","import { Directive, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\nimport { SimpleCallback } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\n@Directive({\n selector: '[msScrollIosHack]',\n})\nexport class ScrollIosHackDirective implements OnInit, OnDestroy {\n private orientationSubscription?: Subscription;\n private timeout?: SimpleCallback;\n\n constructor(\n private timerService: TimerService,\n private deviceService: DeviceService,\n private renderer: Renderer2,\n private element: ElementRef,\n ) {}\n\n ngOnInit(): void {\n if (!this.deviceService.isiOS) {\n return;\n }\n\n this.orientationSubscription = this.deviceService.orientation.subscribe(this.onOrientationChange);\n }\n\n ngOnDestroy(): void {\n this.orientationSubscription?.unsubscribe();\n\n if (this.timeout) {\n this.timeout();\n }\n }\n\n private onOrientationChange = () => {\n this.changeOverflowScrolling('auto');\n\n this.timeout = this.timerService.setTimeoutOutsideAngular(() => {\n this.changeOverflowScrolling('touch');\n }, 1000);\n };\n\n private changeOverflowScrolling = (value: string) => {\n this.renderer.setStyle(this.element.nativeElement, 'webkitOverflowScrolling', value);\n };\n}\n","import { AfterContentInit, ContentChildren, DestroyRef, Directive, ElementRef, QueryList, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { auditTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[msScrollTo]',\n})\nexport class ScrollToDirective implements AfterContentInit {\n @ContentChildren('msScrollToItem') items: QueryList;\n\n element: HTMLElement;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private elm: ElementRef,\n private deviceService: DeviceService,\n private timer: TimerService,\n ) {\n this.element = this.elm.nativeElement;\n this.deviceService.orientation.pipe(takeUntilDestroyed()).subscribe(this.changeScroll);\n }\n\n ngAfterContentInit(): void {\n if (this.items.length) {\n this.changeScroll();\n }\n\n this.items.changes.pipe(auditTime(150), takeUntilDestroyed(this.destroyRef)).subscribe(this.changeScroll);\n }\n\n private changeScroll = (): void => {\n this.timer.setAnimationFrame(() => {\n if (this.element.scrollWidth > this.element.offsetWidth) {\n this.element.scrollLeft = this.element.scrollWidth;\n }\n });\n };\n}\n","import { Directive, ElementRef, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[msStopEventPropagation]',\n})\nexport class StopEventPropagationDirective implements OnInit, OnDestroy {\n @Input('msStopEventPropagation') eventsList: string;\n private eventHandlerRemovers: Array<() => void> = [];\n\n constructor(\n public element: ElementRef,\n public renderer: Renderer2,\n ) {}\n\n ngOnInit(): void {\n if (this.eventsList) {\n const events = this.eventsList.split(' ');\n events.forEach((event) => {\n const remover = this.renderer.listen(this.element.nativeElement, event, this.eventHandler);\n this.eventHandlerRemovers.push(remover);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.eventHandlerRemovers.forEach((remover) => remover());\n }\n\n private eventHandler = (event: any) => {\n if (event.type === 'touchstart') {\n // HACK\n // stopping the propagation of a touchstart event causes problems with FastClick\n // because the property `targetElement` is not reset inside the FastClick library.\n // When that happens the first click on the interface is missed\n event.touchStartEventPropagationStopped = true;\n } else {\n event.stopPropagation();\n }\n };\n}\n","import { Directive, ElementRef, Input, OnChanges, Renderer2 } from '@angular/core';\n\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\n\n@Directive({\n selector: '[msToolbarButtonsHeight]',\n})\nexport class ToolbarButtonsHeightDirective implements OnChanges {\n @Input() isExpanded: boolean;\n\n private readonly MAX_BUTTONS_CONTAINER_WIDTH = 0.85;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n ) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.isExpanded?.currentValue && !changes.isExpanded?.previousValue) {\n this.trySetButtonsFixedHeight();\n }\n }\n\n private trySetButtonsFixedHeight(): void {\n const buttons = this.element.nativeElement.querySelectorAll('.toolbar-button') as HTMLElement[];\n const toolbarComponent = this.element.nativeElement.closest('.my-bets-toolbar');\n let allButtonsWidth = 0;\n\n for (const button of buttons) {\n allButtonsWidth += button.offsetWidth;\n }\n\n if (allButtonsWidth > toolbarComponent.offsetWidth * this.MAX_BUTTONS_CONTAINER_WIDTH) {\n buttons.forEach((b) => this.renderer.addClass(b, 'fixed-height'));\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ClassAutoRemoveDirective } from './class-auto-remove.directive';\nimport { ColumnWidthDirective } from './column-width.directive';\nimport { HeightToBottomDirective } from './height-to-bottom.directive';\nimport { InfoTooltipDirective } from './info-tooltip.directive';\nimport { OutsideInteractionDirective } from './outside-interaction.directive';\nimport { ScrollIosHackDirective } from './scroll-ios-hack/scroll-ios-hack.directive';\nimport { ScrollSelectedInViewDirective } from './scroll-selected-in-view/scroll-selected-in-view.directive';\nimport { ScrollToDirective } from './scroll-to.directive';\nimport { ScrolledToBottomDirective } from './scrolled-to-bottom.directive';\nimport { StopEventPropagationDirective } from './stop-event-propagation.directive';\nimport { ToolbarButtonsHeightDirective } from './toolbar-buttons-height.directive';\n\n@NgModule({\n imports: [ScrollSelectedInViewDirective],\n declarations: [\n ClassAutoRemoveDirective,\n ColumnWidthDirective,\n HeightToBottomDirective,\n InfoTooltipDirective,\n OutsideInteractionDirective,\n ScrolledToBottomDirective,\n ScrollIosHackDirective,\n ScrollToDirective,\n StopEventPropagationDirective,\n ToolbarButtonsHeightDirective,\n ],\n exports: [\n ClassAutoRemoveDirective,\n ColumnWidthDirective,\n HeightToBottomDirective,\n InfoTooltipDirective,\n OutsideInteractionDirective,\n ScrolledToBottomDirective,\n ScrollIosHackDirective,\n ScrollToDirective,\n StopEventPropagationDirective,\n ToolbarButtonsHeightDirective,\n ScrollSelectedInViewDirective,\n ],\n // needs to be fixed after module reordering\n})\nexport class DirectivesModule {}\n","import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { EpcotConfigService, EpcotModule } from './epcot-config.service';\n\nexport interface IEpcotConfigOptions {\n showInEpcot: boolean;\n module?: EpcotModule;\n}\n\n@Directive({\n selector: '[msShowInEpcot]',\n standalone: true,\n})\nexport class ShowInEpcotDirective implements OnInit {\n constructor(\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private epcotConfigService: EpcotConfigService,\n ) {}\n\n @Input() msShowInEpcot: IEpcotConfigOptions;\n\n ngOnInit(): void {\n if (this.msShowInEpcot.showInEpcot === this.epcotConfigService.isEnabled(this.msShowInEpcot.module)) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SimpleCallback } from '@frontend/sports/common/core/utils/extended-types';\nimport { generateGuid } from '@frontend/sports/common/core/utils/string';\nimport { Subscription } from 'rxjs';\n\nimport { TimerService } from './timer.service';\n\nexport interface TimerConfig {\n id: string;\n interval?: TickerInterval;\n onTick(): void;\n}\n\nexport enum TickerInterval {\n Second = 'Second',\n Minute = 'Minute',\n}\n\n@Injectable({ providedIn: 'root' })\nexport class TickerService {\n private timers: { [id: string]: TimerConfig } = {};\n private second = 1000;\n private minute = this.second * 60;\n private secondsInterval?: SimpleCallback;\n private minutesInterval?: SimpleCallback;\n\n constructor(private timerService: TimerService) {}\n\n subscribe(config: TimerConfig): void;\n subscribe(callback: () => void, interval?: TickerInterval): Subscription;\n subscribe(config: TimerConfig | (() => void), interval?: TickerInterval): Subscription {\n let timer: TimerConfig;\n\n if (config instanceof Function) {\n timer = {\n id: generateGuid(),\n onTick: config,\n interval: interval || TickerInterval.Second,\n };\n } else {\n timer = config;\n timer.interval = timer.interval || TickerInterval.Second;\n }\n\n this.timers[timer.id] = timer;\n this.runInterval();\n\n return new Subscription(() => this.unsubscribe(timer.id));\n }\n\n unsubscribe(id: string): void {\n this.unsubscribeInternal(id, this.timers);\n }\n\n private runInterval(): void {\n if (this.secondsInterval || this.minutesInterval) {\n return;\n }\n\n this.secondsInterval = this.timerService.setIntervalOutsideAngular(() => this.runIntervalType(TickerInterval.Second), this.second);\n this.minutesInterval = this.timerService.setIntervalOutsideAngular(() => this.runIntervalType(TickerInterval.Minute), this.minute);\n }\n\n private runIntervalType(interval: TickerInterval): void {\n const keysForInterval = Object.keys(this.timers).filter((id) => this.timers[id].interval === interval);\n\n if (!keysForInterval.length) {\n return;\n }\n\n keysForInterval.forEach((id) => this.timers[id].onTick());\n }\n\n private unsubscribeInternal(id: string, timers: { [id: string]: TimerConfig }): void {\n if (!timers[id]) {\n return;\n }\n\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-dynamic-delete\n delete timers[id];\n\n if (Object.keys(timers).length) {\n return;\n }\n\n if (this.secondsInterval) {\n this.secondsInterval();\n this.secondsInterval = undefined;\n }\n\n if (this.minutesInterval) {\n this.minutesInterval();\n this.minutesInterval = undefined;\n }\n }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[msScoreboardHost]',\n standalone: true,\n})\nexport class ScoreboardHostDirective {\n constructor(public viewContainerRef: ViewContainerRef) {}\n}\n","import { MyBetsEventModel } from '../my-bets/models/my-bets-event.model';\nimport { ScoreboardViewModel } from './models/scoreboard.viewmodel';\n\nexport abstract class ScoreboardComponentBase {\n protected event: MyBetsEventModel;\n\n vm: ScoreboardViewModel;\n\n update(event: MyBetsEventModel, scoreboardViewModel: ScoreboardViewModel): void {\n this.event = event;\n this.vm = scoreboardViewModel;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnChanges, OnDestroy, SimpleChanges, inject, input } from '@angular/core';\n\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { Subscription } from 'rxjs';\n\nimport { ScoreboardTimer } from '../../../../scoreboards/models/scoreboard-timer';\nimport { TimerUtilsService } from '../../../../timers/timer-utils.service';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ms-my-bets-scoreboard-timer',\n templateUrl: 'my-bets-scoreboard-timer.html',\n})\nexport class MyBetsScoreboardTimerComponent implements OnChanges, OnDestroy {\n private changeDetector = inject(ChangeDetectorRef);\n private ticker = inject(TickerService);\n private timerUtilsService = inject(TimerUtilsService);\n\n vm = input.required();\n private tickerSubscription: Subscription;\n timer: string;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.stopSubscription();\n this.setTime();\n this.tickerSubscription = this.ticker.subscribe(this.setTime, TickerInterval.Second);\n }\n\n private stopSubscription(): void {\n this.tickerSubscription?.unsubscribe();\n }\n\n private setTime = () => {\n const formated = this.timerUtilsService.getEventStartingInText(this.vm().eventStartDate.getTime());\n\n const format = this.vm().getTimeMyBets(formated);\n if (format === this.timer) {\n return;\n }\n this.timer = format;\n this.changeDetector.detectChanges();\n };\n\n ngOnDestroy(): void {\n this.stopSubscription();\n }\n}\n","
{{ timer }}
\n","
\n @switch (showEventDate) {\n @case (true) {\n @if (vm.liveAlert.liveAlert) {\n \n }\n {{ vm.startTime | date: 'shortDate' }}\n \n \n {{ vm.startTime | date: 'shortTime' }}\n }\n @case (false) {\n @if (vm.isLive && !hideLiveBadge) {\n {{ liveText }}\n }\n\n @if (vm.hasStreams) {\n \n }\n\n @if (vm.sportId === 6 && vm.isLive) {\n
\n @if (vm.lapCounter && vm.lapCounter!.visible) {\n \n {{ sitecoreEventDetails.eventDetails['Laps'] }} {{ vm.lapCounter!.current }}/{{ vm.lapCounter!.final }}\n }\n\n \n @if (vm.weather !== null) {\n \n \n \n }\n
\n }\n\n @if (vm.liveAlert.liveAlert) {\n \n }\n\n @if (showPeriodInfo) {\n {{ periodInfo }}\n }\n\n @if (vm.timer && vm.timer!.shouldBeVisible() && showTimer()) {\n \n }\n }\n }\n
\n","import { Component, Input, inject } from '@angular/core';\n\nimport { DartsMatchType } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore, SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport {\n AmericanFootballPeriodInfo,\n BasketballPeriodInfo,\n DartsLegsPeriodInfo,\n DartsSetsAndLegsPeriodInfo,\n IceHockeyPeriodInfo,\n SportConstant,\n} from '@frontend/sports/common/core/data-access/constants';\n\nimport { EpcotModule } from '../../../../common/epcot-config.service';\nimport { DecreaseTimer } from '../../../../scoreboards/models/scoreboard-timer';\nimport { IEventTimeViewModel } from '../../../../scoreboards/models/scoreboard.viewmodel';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-time',\n templateUrl: 'my-bets-scoreboard-time.html',\n})\nexport class MyBetsScoreboardTimeComponent {\n sitecore = inject(Sitecore);\n sitecoreEventDetails = inject(SitecoreEventDetailsConfig);\n\n @Input() vm: IEventTimeViewModel;\n @Input() hideLiveBadge = false;\n module = EpcotModule.MyBetsBetSlip;\n\n get showEventDate(): boolean {\n if (!this.vm.hasScoreboard || !this.vm.timer) {\n return true;\n }\n if (this.vm.timer && this.vm.timer.countDownTimer) {\n const minutesLeft = this.vm.timer.countDownTimer.getMinutesLeft();\n\n return minutesLeft >= DecreaseTimer.countDownMinutesBeforeGame;\n }\n\n return false;\n }\n\n showTimer(): boolean {\n if (this.vm.sportId === SportConstant.Basketball && this.vm.periodId in BasketballPeriodInfo) {\n return false;\n }\n if (this.vm.sportId === SportConstant.AmericanFootball && this.vm.periodId in AmericanFootballPeriodInfo) {\n return false;\n }\n if (this.vm.sportId === SportConstant.Icehockey && this.vm.periodId in IceHockeyPeriodInfo) {\n return false;\n }\n\n const sportsWithoutTimer = [SportConstant.Boxing, SportConstant.Cricket];\n if (sportsWithoutTimer.indexOf(this.vm.sportId) >= 0) {\n return false;\n }\n\n if (\n (this.vm.sportId === SportConstant.Formula1 ||\n this.vm.sportId === SportConstant.Skialpine ||\n this.vm.sportId === SportConstant.Motorbikes ||\n this.vm.sportId === SportConstant.Biathlon ||\n this.vm.sportId === SportConstant.Snooker) &&\n this.vm.isLive\n ) {\n return false;\n }\n\n return true;\n }\n\n get showPeriodInfo(): boolean {\n if (\n (this.vm.sportId === SportConstant.Formula1 ||\n this.vm.sportId === SportConstant.Skialpine ||\n this.vm.sportId === SportConstant.Motorbikes ||\n this.vm.sportId === SportConstant.Biathlon) &&\n this.vm.isLive\n ) {\n return false;\n }\n const now = new Date();\n\n return this.vm.startTime <= now || this.vm.isLive;\n }\n\n get periodInfo(): string {\n if (this.vm.sportId === SportConstant.Darts) {\n if (this.vm.matchType === DartsMatchType.LegOnly) {\n if (this.vm.periodId === DartsLegsPeriodInfo.Finished) {\n return this.vm.periodInfo;\n } else if (this.vm.bestOfLegs) {\n return this.vm.isLive\n ? `${this.sitecore.globalMessages.BestOf} ${this.vm.bestOfLegs} - ${this.vm.periodInfo}`\n : this.sitecore.globalMessages.StartsNow;\n } else {\n return this.vm.isLive\n ? `${this.sitecore.globalMessages.BestOf} ${this.vm.periodId} - ${this.vm.periodInfo}`\n : this.sitecore.globalMessages.StartsNow;\n }\n } else if (this.vm.matchType === DartsMatchType.SetsAndLegs) {\n if (this.vm.periodId === DartsSetsAndLegsPeriodInfo.Finished) {\n return this.vm.periodInfo;\n } else if (this.vm.bestOfSets) {\n return this.vm.isLive\n ? `${this.sitecore.globalMessages.BestOf} ${this.vm.bestOfSets} - ${this.vm.periodInfo}`\n : this.sitecore.globalMessages.StartsNow;\n } else {\n return this.vm.isLive\n ? `${this.sitecore.globalMessages.BestOf} ${this.vm.periodId} - ${this.vm.periodInfo}`\n : this.sitecore.globalMessages.StartsNow;\n }\n } else {\n return this.vm.isLive ? this.vm.periodInfo : this.sitecore.globalMessages.StartsNow;\n }\n } else if (this.vm.sportId === SportConstant.Snooker) {\n return this.vm.isLive ? this.getBestOf() : this.sitecore.globalMessages.StartsNow;\n } else {\n return this.vm.isLive ? this.vm.periodInfo : this.sitecore.globalMessages.StartsNow;\n }\n }\n\n getBestOf(): string {\n return this.vm.bestOf ? `${this.sitecore.globalMessages.BestOf} ${this.vm.bestOf}` : '';\n }\n\n get liveText(): string {\n return this.sitecore.event.Live;\n }\n}\n","
\n
\n
{{ vm.eventName }}: {{ vm.leagueName }}
\n
\n
\n
\n @for (player of vm.players; track player) {\n
{{ $index + 1 }}. {{ player }}
\n }\n
\n
\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { ScoreboardLeaderboardGameViewModel } from '../../../../scoreboards/models/leaderboard-game-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-leaderboard-game-scoreboard',\n templateUrl: './my-bets-leaderboard-game-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsLeaderboardGameScoreboardComponent extends ScoreboardComponentBase {\n @Input() override vm: ScoreboardLeaderboardGameViewModel;\n}\n","
\n
\n
{{ vm().player1 }}
\n \n @if (vm().player1AwayIndicator) {\n {{\n sitecore.globalMessages.AwayIndicator\n }}\n }\n
\n
\n
{{ vm().player2 }}
\n \n @if (vm().player2AwayIndicator) {\n {{\n sitecore.globalMessages.AwayIndicator\n }}\n }\n
\n
\n
\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { ScoreboardPairGameViewModel } from '../../../../scoreboards/models/pair-game-scoreboard.viewmodel';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-players-pair',\n templateUrl: 'my-bets-scoreboard-players-pair.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardPlayersPairComponent {\n sitecore = inject(Sitecore);\n\n vm = input.required();\n}\n","
\n \n @if (vm().started) {\n \n }\n
\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { ScoreboardPairGameViewModel } from '../../../../scoreboards/models/pair-game-scoreboard.viewmodel';\n\n@Component({\n selector: 'ms-my-bets-pair-game-scoreboard',\n templateUrl: './my-bets-pair-game-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsPairGameScoreboardComponent {\n vm = input.required();\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { PairScoreboardViewModel } from '../../../../scoreboards/models/pair-scoreboard.viewmodel';\nimport { SetScoreboardViewModel } from '../../../../scoreboards/models/set-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-pair-game-no-scoreboard',\n templateUrl: 'my-bets-pair-game-no-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsPairGameNoScoreboardComponent extends ScoreboardComponentBase {\n @Input() override vm: PairScoreboardViewModel | SetScoreboardViewModel;\n}\n","\n \n
\n
\n","
\n
\n @for (round of vm().penalties[0].penalties; track $index) {\n
\n }\n
\n
\n @for (round of vm().penalties[1].penalties; track $index) {\n
\n }\n
\n
\n\n
\n @for (point of vm().penaltyScore; track point) {\n
\n {{ point }}\n
\n }\n
\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { PenaltyShootoutScoreboardStats } from '../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './my-bets-penalty-shootout-scoreboard-stats.html',\n selector: 'ms-my-bets-penalty-shootout-scoreboard-stats',\n})\nexport class MyBetsPenaltyShootoutScoreboardStatsComponent {\n vm = input.required();\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { PenaltyShootoutScoreboardViewModel } from '../../../../scoreboards/models/penalty-shootout-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-penalty-shootout-scoreboard',\n templateUrl: 'my-bets-penalty-shootout-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsPenaltyShootoutScoreboardComponent extends ScoreboardComponentBase {\n @Input() override vm: PenaltyShootoutScoreboardViewModel;\n}\n","\n \n \n\n","import { AnimationBuilder, AnimationFactory, animate, group, keyframes, query, style } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'ms-stats-value',\n template: `\n
\n
\n
\n
{{ value }}
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class StatsValueComponent implements OnInit, OnChanges, OnDestroy {\n @Input() value: number;\n private animationFactory: AnimationFactory | null = null;\n private animationTimer = 0;\n @ViewChild('newValue', { static: true }) newValueElement: ElementRef;\n @ViewChild('oldValue', { static: true }) oldValueElement: ElementRef;\n\n @ViewChild('currentValue', { static: true }) valueElement: ElementRef;\n @ViewChild('statsValue', { static: true }) statsElement: ElementRef;\n\n constructor(private animationBuilder: AnimationBuilder) {}\n\n ngOnInit(): void {\n this.animationFactory = this.animationBuilder.build(\n group([\n query(\n '.newValue',\n animate(\n 500,\n keyframes([\n style({ opacity: 0.3, transform: 'translateY(-15%)' }),\n style({ opacity: 0.7, transform: 'translateY(-10%)' }),\n style({ opacity: 1, transform: 'translateY(-8%)' }),\n style({ opacity: 1, transform: 'translateY(-4%)' }),\n style({ opacity: 1, transform: 'translateY(0%)' }),\n ]),\n ),\n ),\n query(\n '.oldValue',\n animate(\n 500,\n keyframes([\n style({ opacity: 1, transform: 'translateY(-45%)' }),\n style({ opacity: 0.7, transform: 'translateY(-40%)' }),\n style({ opacity: 0.3, transform: 'translateY(-35%)' }),\n style({ opacity: 0, transform: 'translateY(-30%)' }),\n ]),\n ),\n ),\n ]),\n );\n }\n\n private doAnimation(previousValue: number, currentValue: number): void {\n if (previousValue !== currentValue && this.animationFactory) {\n this.animationTimer = window.setTimeout(() => {\n // No matter what happens in 500ms hide the elements.\n this.valueElement.nativeElement.style.display = 'block';\n this.newValueElement.nativeElement.style.display = 'none';\n this.oldValueElement.nativeElement.style.display = 'none';\n }, 500);\n\n try {\n this.valueElement.nativeElement.style.display = 'none';\n this.oldValueElement.nativeElement.style.display = 'block';\n this.newValueElement.nativeElement.style.display = 'block';\n\n this.oldValueElement.nativeElement.textContent = previousValue;\n this.newValueElement.nativeElement.textContent = currentValue;\n\n const player = this.animationFactory.create(this.statsElement.nativeElement);\n player.play();\n } catch {}\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('value' in changes && !changes['value'].isFirstChange()) {\n this.doAnimation(changes['value'].previousValue, changes['value'].currentValue);\n }\n }\n\n ngOnDestroy(): void {\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = 0;\n }\n }\n}\n","@if (!!vm()) {\n \n
\n @for (stat of vm().list; track $index) {\n \n @if (stat.isVisible && stat.isEnabled) {\n
\n
\n
\n }\n
\n }\n \n @if (isExpandable()) {\n
\n \n \n \n \n \n \n \n
\n }\n \n}\n","import { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\n\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { EpcotModule } from '../../../../common/epcot-config.service';\nimport { PairGameScoreboardStats } from '../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './my-bets-pair-scoreboard-stats.html',\n selector: 'ms-my-bets-pair-scoreboard-stats',\n})\nexport class MyBetsPairScoreboardStatsComponent {\n private trackingService = inject(TrackingService);\n\n vm = input.required();\n isExpandable = input(false);\n isExpanded = input(false);\n isExpandedChanged = output();\n module = EpcotModule.MyBetsBetSlip;\n\n onExpandCollapse(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.isExpandedChanged.emit(!this.isExpanded());\n this.trackingService.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]: !this.isExpanded() ? 'myBets_StatsON' : 'myBets_StatsOff',\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { PairScoreboardViewModel } from '../../../../scoreboards/models/pair-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-pair',\n templateUrl: 'my-bets-scoreboard-pair.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardPairComponent extends ScoreboardComponentBase {\n @Input() override vm: PairScoreboardViewModel;\n}\n","\n \n \n\n","
\n
\n @if (vm().points?.isVisible) {\n
\n
\n
\n
\n
\n
\n
{{ vm().points?.player1 }}
\n
{{ vm().points?.player2 }}
\n
\n
\n }\n\n @for (stat of vm().sets.list; track stat) {\n
\n @if (stat.isVisible) {\n
{{ stat.isEmpty(1) ? '-' : stat.player1 }}
\n
{{ stat.isEmpty(2) ? '-' : stat.player2 }}
\n
\n }\n
\n }\n
\n
\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { SetGameScoreboardStats } from '../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './my-bets-set-scoreboard-stats.html',\n selector: 'ms-my-bets-set-scoreboard-stats',\n})\nexport class MyBetsSetScoreboardStatsComponent {\n vm = input.required();\n\n getClass(): string {\n if (this.vm().sets.list.length >= 7) {\n return 'mybets-scoreboard_stats__sets_7';\n }\n if (this.vm().sets.list.length >= 5) {\n return 'mybets-scoreboard_stats__sets_5';\n }\n\n return '';\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SetScoreboardViewModel } from '../../../../scoreboards/models/set-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-set',\n templateUrl: 'my-bets-scoreboard-set.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardSetComponent extends ScoreboardComponentBase {\n @Input() override vm: SetScoreboardViewModel;\n}\n","\n \n \n\n","@if (vm()) {\n
\n
\n @if (vm().currentlyServing === 1) {\n \n }\n
\n
\n @if (vm().currentlyServing === 2) {\n \n }\n
\n
\n}\n@if (vm()) {\n
\n
{{ vm().player1CurrentScore }}
\n
{{ vm().player2CurrentScore }}
\n
\n}\n@if (vm()?.participant1 > 0 || vm()?.participant2 > 0) {\n
\n
{{ vm().participant1 }}
\n
{{ vm().participant2 }}
\n
\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { SnookerScoreboardStats } from '../../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n selector: 'ms-my-bets-snooker-scoreboard-stats',\n templateUrl: './my-bets-snooker-scoreboard-stats.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsSnookerScoreboardStatsComponent {\n vm = input.required();\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SnookerScoreboardViewModel } from '../../../../scoreboards/models/snooker-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-snooker-scoreboard',\n templateUrl: './my-bets-scoreboard-snooker.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsSnookerScoreboardComponent extends ScoreboardComponentBase {\n @Input() override vm: SnookerScoreboardViewModel;\n}\n","\n \n \n\n","import { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { ScoreboardTournamentGameViewModel } from '../../../../scoreboards/models/tournament-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-tournament-game-scoreboard',\n templateUrl: './my-bets-tournament-game-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsTournamentGameScoreboardComponent extends ScoreboardComponentBase {\n siteCore = inject(Sitecore);\n\n @Input() override vm: ScoreboardTournamentGameViewModel;\n}\n","
\n
{{ vm.eventName }}
\n
\n
\n","\n@if (vm.started) {\n
\n
\n
\n
\n @if (vm.turn.isVisible) {\n
\n
\n \n
\n
\n \n
\n
\n
\n }\n @for (stat of vm.sets.list | slice: 0 : 9; track stat) {\n
\n
\n {{ stat.isEmpty(1) ? '-' : stat.player1 }}\n
\n
\n {{ stat.isEmpty(2) ? '-' : stat.player2 }}\n
\n
{{ $index + 1 }}
\n
\n }\n @if (vm.sets.list[defaultInnings] && vm.sets.list[defaultInnings].player1 !== '-1') {\n
\n
{{ getSum(vm.sets.list, teamType.Team01) }}
\n
{{ getSum(vm.sets.list, teamType.Team02) }}
\n
{{ sitecore.globalMessages.ExtraInnings }}
\n
\n }\n
\n
\n
\n \n
\n
\n
\n
\n
{{ vm.participant1runs }}
\n
{{ vm.participant2runs }}
\n
{{ sitecore.globalMessages.Runs }}
\n
\n
\n
\n
\n
\n}\n","import { Component, HostBinding, Input, inject } from '@angular/core';\n\nimport { TeamType } from '@frontend/sports/betting-offer/feature/model';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { sumBy } from 'lodash-es';\n\nimport { BaseBallscoreboardViewModel } from '../../../../../scoreboards/models/baseball-scoreboard.viewmodel';\nimport { ScoreboardStat } from '../../../../../scoreboards/models/scoreboard-stats';\nimport { ScoreboardComponentBase } from '../../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-base-ball-scoreboard',\n templateUrl: './my-bets-baseball-scoreboard.html',\n})\nexport class MyBetsBaseballScoreboardComponent extends ScoreboardComponentBase {\n sitecore = inject(Sitecore);\n\n @Input() override vm: BaseBallscoreboardViewModel;\n\n playerSum = 0;\n extraInnings: ScoreboardStat[];\n teamType = TeamType;\n defaultInnings = 9;\n\n @HostBinding('class') className = 'mybets-scoreboard';\n\n getSum(vm: ScoreboardStat[], player: TeamType): number {\n const extraInnings = this.getExtraInnings(vm, player);\n const playerSum = this.getPlayerSum(extraInnings);\n\n return playerSum;\n }\n\n getExtraInnings(vm: ScoreboardStat[], player: TeamType): ScoreboardStat[] {\n return vm.slice(this.defaultInnings).filter((inning) => {\n return player === TeamType.Team01 ? +inning.player1 > 0 : +inning.player2 > 0;\n });\n }\n\n getPlayerSum(extraInnings: ScoreboardStat[]): number {\n return sumBy(extraInnings, (set) => {\n return +set.player1 || +set.player2;\n });\n }\n}\n","
\n @if (vm()) {\n
\n
\n
\n
\n
\n }\n @if (vm()?.matchType === 1) {\n
\n
{{ vm().participant1 }}
\n
{{ vm().participant2 }}
\n
{{ sitecoreEventDetails.eventDetails.Sets }}
\n
\n }\n @if (vm()?.legs) {\n
\n
{{ vm().legs.participant1 }}
\n
{{ vm().legs.participant2 }}
\n
{{ sitecoreEventDetails.eventDetails.Legs }}
\n
\n }\n
\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\n\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\n\nimport { DartsScoreboardStats } from '../../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n selector: 'ms-my-bets-darts-stats-scoreboard',\n templateUrl: 'my-bets-darts-stats-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsDartsStatsScoreboardComponent {\n sitecoreEventDetails = inject(SitecoreEventDetailsConfig);\n\n vm = input.required();\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { DartsScoreboardViewModel } from '../../../../../scoreboards/models/darts-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-darts-scoreboard',\n templateUrl: 'my-bets-darts-scoreboard.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardDartsComponent extends ScoreboardComponentBase {\n @Input() override vm: DartsScoreboardViewModel;\n}\n","\n \n \n\n","@if (vm().periods && vm().points) {\n
\n
\n \n @if (vm().points.isVisible && vm().points.isEnabled) {\n
{{ vm().points.player1 }}
\n
{{ vm().points.player2 }}
\n
\n }\n
\n @for (stat of vm().periods.list; track $index) {\n
\n @if (stat.isVisible) {\n
{{ stat.player1 }}
\n
{{ stat.player2 }}
\n
\n }\n
\n }\n
\n \n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport { PeriodGameFullScoreboardStats } from '../../../../scoreboards/models/scoreboard-stats';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.Default,\n templateUrl: './my-bets-pairgame-full-scoreboard-stats.html',\n selector: 'ms-my-bets-pairgame-full-scoreboard-stats',\n})\nexport class MyBetsPairgameFullScoreboardStatsComponent {\n vm = input.required();\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { PeriodGameScoreboardViewModel } from '../../../../../scoreboards/models/period-game-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-period-game',\n templateUrl: 'my-bets-scoreboard-period-game.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardPeriodGameComponent extends ScoreboardComponentBase {\n @Input() override vm: PeriodGameScoreboardViewModel;\n}\n","\n \n \n\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-soccer-red-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n
\n @for (card of cards; track card) {\n \n }\n
\n `,\n})\nexport class MyBetsScoreboardSoccerRedCardComponent {\n cardsCount = input(0);\n\n get cards(): number[] {\n return this.cardsCount() >= 0 ? Array.apply(0, Array(this.cardsCount())).map((x: any, i: number) => i) : [];\n }\n}\n","import { AnimationBuilder, AnimationFactory, animate, keyframes, query, sequence, style } from '@angular/animations';\nimport { Component, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, inject } from '@angular/core';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-soccer-goal',\n template: `
GOAL
`,\n})\nexport class MyBetsScoreboardSoccerGoalComponent implements OnInit, OnChanges, OnDestroy {\n private animationBuilder = inject(AnimationBuilder);\n\n private animationTimer = 0;\n @Input() score: number;\n @ViewChild('indicator', { static: true }) indicator: ElementRef;\n\n private animationFactory: AnimationFactory | null = null;\n\n ngOnInit(): void {\n this.animationFactory = this.animationBuilder.build([\n sequence([\n animate(\n '0.5s ease-out',\n keyframes([style({ opacity: 0.5, right: '-{{right}}px', offset: 0 }), style({ opacity: 1, right: '0px', offset: 1 })]),\n ),\n query(\n '.inner',\n animate(\n '1.5s linear',\n keyframes([\n style({ opacity: 0 }),\n style({ opacity: 1 }),\n style({ opacity: 0 }),\n style({ opacity: 1 }),\n style({ opacity: 0 }),\n style({ opacity: 1 }),\n ]),\n ),\n ),\n ]),\n ]);\n }\n\n private doAnimation(previousValue: number, currentValue: number): void {\n if (previousValue < currentValue && this.animationFactory) {\n this.animationTimer = window.setTimeout(() => {\n // Remove the indicator in 4s\n this.indicator.nativeElement.style.display = 'none';\n }, 5000);\n\n try {\n this.indicator.nativeElement.style.display = 'inline-block';\n const right = this.indicator.nativeElement.offsetWidth || 50;\n const player = this.animationFactory.create(this.indicator.nativeElement, { params: { right: right + 20 } });\n player.play();\n } catch {}\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('score' in changes && !changes['score'].isFirstChange()) {\n this.doAnimation(changes['score'].previousValue, changes['score'].currentValue);\n }\n }\n\n ngOnDestroy(): void {\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = 0;\n }\n }\n}\n","\n \n @if (!vm.isExpanded) {\n \n }\n \n\n @if (!vm.isExpanded) {\n \n }\n \n \n \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { SoccerScoreboardViewModel } from '../../../../../scoreboards/models/soccer-scoreboard.viewmodel';\nimport { ScoreboardComponentBase } from '../../../../../scoreboards/scoreboard-base.component';\n\n@Component({\n selector: 'ms-bets-scoreboard-soccer',\n templateUrl: 'my-bets-scoreboard-soccer.component.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardSoccerComponent extends ScoreboardComponentBase {\n @Input() override vm: SoccerScoreboardViewModel;\n\n isExpandedChanged(isExpanded: boolean): void {\n this.vm.setIsExpanded(isExpanded);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { TennisScoreboardViewModel } from '../../../../../scoreboards/models/set-scoreboard.viewmodel';\nimport { MyBetsScoreboardSetComponent } from '../../general/my-bets-scoreboard-set.component';\n\n@Component({\n selector: 'ms-my-bets-scoreboard-tennis',\n templateUrl: 'my-bets-scoreboard-tennis.html',\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MyBetsScoreboardTennisComponent extends MyBetsScoreboardSetComponent {\n @Input() override vm: TennisScoreboardViewModel;\n}\n","\n \n \n\n","import { Injectable, Type } from '@angular/core';\n\nimport { FootballScore, IcehockeyPeriodGameScore, ScoreboardType } from '@frontend/sports/betting-offer/feature/model';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\n\nimport { ScoreboardComponentBase } from '../../../scoreboards/scoreboard-base.component';\nimport { MyBetsEventModel } from '../../models/my-bets-event.model';\nimport { MyBetsLeaderboardGameScoreboardComponent } from './general/my-bets-leaderboard-game-scoreboard.component';\nimport { MyBetsPairGameNoScoreboardComponent } from './general/my-bets-pair-game-no-scoreboard.component';\nimport { MyBetsPenaltyShootoutScoreboardComponent } from './general/my-bets-penalty-shootout-scoreboard.component';\nimport { MyBetsScoreboardPairComponent } from './general/my-bets-scoreboard-pair.component';\nimport { MyBetsScoreboardSetComponent } from './general/my-bets-scoreboard-set.component';\nimport { MyBetsSnookerScoreboardComponent } from './general/my-bets-scoreboard-snooker.component';\nimport { MyBetsTournamentGameScoreboardComponent } from './general/my-bets-tournament-game-scoreboard.component';\nimport { MyBetsBaseballScoreboardComponent } from './sport-specific/baseball/my-bets-baseball-scoreboard.component';\nimport { MyBetsScoreboardDartsComponent } from './sport-specific/darts/my-bets-darts-scoreboard.component';\nimport { MyBetsScoreboardPeriodGameComponent } from './sport-specific/period-game/my-bets-scoreboard-period-game.component';\nimport { MyBetsScoreboardSoccerComponent } from './sport-specific/soccer/my-bets-scoreboard-soccer.component';\nimport { MyBetsScoreboardTennisComponent } from './sport-specific/tennis/my-bets-scoreboard-tennis.component';\n\n@Injectable()\nexport class MyBetsScoreboardResolveService {\n getComponent(event: MyBetsEventModel): Type | null {\n if (event.participants.length === 0 && event.scoreboard.type !== ScoreboardType.LeaderboardGame) {\n return MyBetsTournamentGameScoreboardComponent;\n }\n\n if (event.scoreboard.type !== ScoreboardType.TournamentGame && event.scoreboard.type !== ScoreboardType.LeaderboardGame) {\n if (!event.live) {\n return MyBetsPairGameNoScoreboardComponent;\n }\n\n switch (event.sport.id) {\n case SportConstant.Cricket:\n case SportConstant.Boxing: {\n return MyBetsPairGameNoScoreboardComponent;\n }\n case SportConstant.Soccer: {\n const score = event.scoreboard.getScore();\n if (score && score.penaltyShootOutScore) {\n return MyBetsPenaltyShootoutScoreboardComponent;\n }\n\n return MyBetsScoreboardSoccerComponent;\n }\n case SportConstant.Tennis: {\n return MyBetsScoreboardTennisComponent;\n }\n case SportConstant.Basketball:\n case SportConstant.Icehockey:\n case SportConstant.AmericanFootball: {\n const score = event.scoreboard.getScore();\n if (score && score.penaltyShootOutScore) {\n return MyBetsPenaltyShootoutScoreboardComponent;\n }\n\n return MyBetsScoreboardPeriodGameComponent;\n }\n case SportConstant.Darts: {\n return MyBetsScoreboardDartsComponent;\n }\n case SportConstant.Snooker: {\n return MyBetsSnookerScoreboardComponent;\n }\n case SportConstant.Formula1:\n case SportConstant.Skialpine:\n case SportConstant.Motorbikes:\n case SportConstant.Biathlon: {\n return MyBetsLeaderboardGameScoreboardComponent;\n }\n case SportConstant.Baseball: {\n return MyBetsBaseballScoreboardComponent;\n }\n default: {\n if (event.scoreboard.type === ScoreboardType.PairGame) {\n return MyBetsScoreboardPairComponent;\n }\n\n return MyBetsScoreboardSetComponent;\n }\n }\n } else {\n switch (event.sport.id) {\n case SportConstant.Formula1:\n case SportConstant.Skialpine:\n case SportConstant.Motorbikes:\n case SportConstant.Biathlon: {\n return MyBetsLeaderboardGameScoreboardComponent;\n }\n default: {\n return MyBetsTournamentGameScoreboardComponent;\n }\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { ShowInEpcotDirective } from '../../../common/epcot-config.directive';\nimport { DirectivesModule } from '../../../directives/directives.module';\nimport { NativeAlertsModule } from '../../../native-alerts/native-alerts.module';\nimport { StatsValueComponent } from '../../../scoreboards/components/stats-value.component';\nimport { ScoreboardViewmodelFactory } from '../../../scoreboards/models/scoreboard-viewmodel.factory';\nimport { ScoreboardHostDirective } from '../../../scoreboards/scoreboard-host.directive';\nimport { MyBetsLeaderboardGameScoreboardComponent } from './general/my-bets-leaderboard-game-scoreboard.component';\nimport { MyBetsPairGameNoScoreboardComponent } from './general/my-bets-pair-game-no-scoreboard.component';\nimport { MyBetsPairGameScoreboardComponent } from './general/my-bets-pair-game-scoreboard.component';\nimport { MyBetsPairScoreboardStatsComponent } from './general/my-bets-pair-scoreboard-stats.component';\nimport { MyBetsPairgameFullScoreboardStatsComponent } from './general/my-bets-pairgame-full-scoreboard-stats.component';\nimport { MyBetsPenaltyShootoutScoreboardStatsComponent } from './general/my-bets-penalty-shootout-scoreboard-stats.component';\nimport { MyBetsPenaltyShootoutScoreboardComponent } from './general/my-bets-penalty-shootout-scoreboard.component';\nimport { MyBetsScoreboardPairComponent } from './general/my-bets-scoreboard-pair.component';\nimport { MyBetsScoreboardPlayersPairComponent } from './general/my-bets-scoreboard-players-pair.component';\nimport { MyBetsScoreboardSetComponent } from './general/my-bets-scoreboard-set.component';\nimport { MyBetsSnookerScoreboardComponent } from './general/my-bets-scoreboard-snooker.component';\nimport { MyBetsScoreboardTimeComponent } from './general/my-bets-scoreboard-time.component';\nimport { MyBetsScoreboardTimerComponent } from './general/my-bets-scoreboard-timer.component';\nimport { MyBetsSetScoreboardStatsComponent } from './general/my-bets-set-scoreboard-stats.component';\nimport { MyBetsTournamentGameScoreboardComponent } from './general/my-bets-tournament-game-scoreboard.component';\nimport { MyBetsScoreboardResolveService } from './my-bets-scoreboard-resolve.service';\nimport { MyBetsBaseballScoreboardComponent } from './sport-specific/baseball/my-bets-baseball-scoreboard.component';\nimport { MyBetsScoreboardDartsComponent } from './sport-specific/darts/my-bets-darts-scoreboard.component';\nimport { MyBetsDartsStatsScoreboardComponent } from './sport-specific/darts/my-bets-darts-stats-scoreboard.component';\nimport { MyBetsScoreboardPeriodGameComponent } from './sport-specific/period-game/my-bets-scoreboard-period-game.component';\nimport { MyBetsSnookerScoreboardStatsComponent } from './sport-specific/snooker/my-bets-snooker-scoreboard-stats.component';\nimport { MyBetsScoreboardSoccerGoalComponent } from './sport-specific/soccer/my-bets-scoreboard-soccer-goal.component';\nimport { MyBetsScoreboardSoccerRedCardComponent } from './sport-specific/soccer/my-bets-scoreboard-soccer-redcard.component';\nimport { MyBetsScoreboardSoccerComponent } from './sport-specific/soccer/my-bets-scoreboard-soccer.component';\nimport { MyBetsScoreboardTennisComponent } from './sport-specific/tennis/my-bets-scoreboard-tennis.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DirectivesModule,\n ScoreboardHostDirective,\n StatsValueComponent,\n NativeAlertsModule,\n AutomationModule,\n ShowInEpcotDirective,\n IconCustomComponent,\n ],\n declarations: [\n MyBetsScoreboardPlayersPairComponent,\n MyBetsPairgameFullScoreboardStatsComponent,\n MyBetsPairGameScoreboardComponent,\n MyBetsPairGameNoScoreboardComponent,\n MyBetsTournamentGameScoreboardComponent,\n MyBetsScoreboardPairComponent,\n MyBetsScoreboardSetComponent,\n MyBetsScoreboardSoccerComponent,\n MyBetsScoreboardSoccerRedCardComponent,\n MyBetsScoreboardSoccerGoalComponent,\n MyBetsPairScoreboardStatsComponent,\n MyBetsSetScoreboardStatsComponent,\n MyBetsScoreboardDartsComponent,\n MyBetsDartsStatsScoreboardComponent,\n MyBetsSnookerScoreboardComponent,\n MyBetsSnookerScoreboardStatsComponent,\n MyBetsScoreboardTennisComponent,\n MyBetsScoreboardPeriodGameComponent,\n MyBetsScoreboardTimerComponent,\n MyBetsScoreboardTimeComponent,\n MyBetsPenaltyShootoutScoreboardComponent,\n MyBetsPenaltyShootoutScoreboardStatsComponent,\n MyBetsLeaderboardGameScoreboardComponent,\n MyBetsBaseballScoreboardComponent,\n ],\n providers: [MyBetsScoreboardResolveService, ScoreboardViewmodelFactory],\n exports: [MyBetsScoreboardTimeComponent],\n})\nexport class MyBetsScoreboardModule {}\n","/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017 Joachim Wester\n * MIT license\n */\nvar __extends = this && this.__extends || function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwnProperty(obj, key) {\n return _hasOwnProperty.call(obj, key);\n}\nexports.hasOwnProperty = hasOwnProperty;\nfunction _objectKeys(obj) {\n if (Array.isArray(obj)) {\n var keys = new Array(obj.length);\n for (var k = 0; k < keys.length; k++) {\n keys[k] = \"\" + k;\n }\n return keys;\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keys = [];\n for (var i in obj) {\n if (hasOwnProperty(obj, i)) {\n keys.push(i);\n }\n }\n return keys;\n}\nexports._objectKeys = _objectKeys;\n;\n/**\n* Deeply clone the object.\n* https://jsperf.com/deep-copy-vs-json-stringify-json-parse/25 (recursiveDeepCopy)\n* @param {any} obj value to clone\n* @return {any} cloned obj\n*/\nfunction _deepClone(obj) {\n switch (typeof obj) {\n case \"object\":\n return JSON.parse(JSON.stringify(obj));\n //Faster than ES5 clone - http://jsperf.com/deep-cloning-of-objects/5\n case \"undefined\":\n return null;\n //this is how JSON.stringify behaves for array items\n default:\n return obj;\n //no need to clone primitives\n }\n}\nexports._deepClone = _deepClone;\n//3x faster than cached /^\\d+$/.test(str)\nfunction isInteger(str) {\n var i = 0;\n var len = str.length;\n var charCode;\n while (i < len) {\n charCode = str.charCodeAt(i);\n if (charCode >= 48 && charCode <= 57) {\n i++;\n continue;\n }\n return false;\n }\n return true;\n}\nexports.isInteger = isInteger;\n/**\n* Escapes a json pointer path\n* @param path The raw pointer\n* @return the Escaped path\n*/\nfunction escapePathComponent(path) {\n if (path.indexOf('/') === -1 && path.indexOf('~') === -1) return path;\n return path.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\nexports.escapePathComponent = escapePathComponent;\n/**\n * Unescapes a json pointer path\n * @param path The escaped pointer\n * @return The unescaped path\n */\nfunction unescapePathComponent(path) {\n return path.replace(/~1/g, '/').replace(/~0/g, '~');\n}\nexports.unescapePathComponent = unescapePathComponent;\nfunction _getPathRecursive(root, obj) {\n var found;\n for (var key in root) {\n if (hasOwnProperty(root, key)) {\n if (root[key] === obj) {\n return escapePathComponent(key) + '/';\n } else if (typeof root[key] === 'object') {\n found = _getPathRecursive(root[key], obj);\n if (found != '') {\n return escapePathComponent(key) + '/' + found;\n }\n }\n }\n }\n return '';\n}\nexports._getPathRecursive = _getPathRecursive;\nfunction getPath(root, obj) {\n if (root === obj) {\n return '/';\n }\n var path = _getPathRecursive(root, obj);\n if (path === '') {\n throw new Error(\"Object not found in root\");\n }\n return '/' + path;\n}\nexports.getPath = getPath;\n/**\n* Recursively checks whether an object has any undefined values inside.\n*/\nfunction hasUndefined(obj) {\n if (obj === undefined) {\n return true;\n }\n if (obj) {\n if (Array.isArray(obj)) {\n for (var i = 0, len = obj.length; i < len; i++) {\n if (hasUndefined(obj[i])) {\n return true;\n }\n }\n } else if (typeof obj === \"object\") {\n var objKeys = _objectKeys(obj);\n var objKeysLength = objKeys.length;\n for (var i = 0; i < objKeysLength; i++) {\n if (hasUndefined(obj[objKeys[i]])) {\n return true;\n }\n }\n }\n }\n return false;\n}\nexports.hasUndefined = hasUndefined;\nfunction patchErrorMessageFormatter(message, args) {\n var messageParts = [message];\n for (var key in args) {\n var value = typeof args[key] === 'object' ? JSON.stringify(args[key], null, 2) : args[key]; // pretty print\n if (typeof value !== 'undefined') {\n messageParts.push(key + \": \" + value);\n }\n }\n return messageParts.join('\\n');\n}\nvar PatchError = /** @class */function (_super) {\n __extends(PatchError, _super);\n function PatchError(message, name, index, operation, tree) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, patchErrorMessageFormatter(message, {\n name: name,\n index: index,\n operation: operation,\n tree: tree\n })) || this;\n _this.name = name;\n _this.index = index;\n _this.operation = operation;\n _this.tree = tree;\n Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain, see https://stackoverflow.com/a/48342359\n _this.message = patchErrorMessageFormatter(message, {\n name: name,\n index: index,\n operation: operation,\n tree: tree\n });\n return _this;\n }\n return PatchError;\n}(Error);\nexports.PatchError = PatchError;","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n if (arrA != arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n var keys = keyList(a);\n length = keys.length;\n if (length !== keyList(b).length) return false;\n for (i = length; i-- !== 0;) if (!hasProp.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!equal(a[key], b[key])) return false;\n }\n return true;\n }\n return a !== a && b !== b;\n};","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar areEquals = require('fast-deep-equal');\nvar helpers_1 = require(\"./helpers\");\nexports.JsonPatchError = helpers_1.PatchError;\nexports.deepClone = helpers_1._deepClone;\n/* We use a Javascript hash to store each\n function. Each hash entry (property) uses\n the operation identifiers specified in rfc6902.\n In this way, we can map each patch operation\n to its dedicated function in efficient way.\n */\n/* The operations applicable to an object */\nvar objOps = {\n add: function (obj, key, document) {\n obj[key] = this.value;\n return {\n newDocument: document\n };\n },\n remove: function (obj, key, document) {\n var removed = obj[key];\n delete obj[key];\n return {\n newDocument: document,\n removed: removed\n };\n },\n replace: function (obj, key, document) {\n var removed = obj[key];\n obj[key] = this.value;\n return {\n newDocument: document,\n removed: removed\n };\n },\n move: function (obj, key, document) {\n /* in case move target overwrites an existing value,\n return the removed value, this can be taxing performance-wise,\n and is potentially unneeded */\n var removed = getValueByPointer(document, this.path);\n if (removed) {\n removed = helpers_1._deepClone(removed);\n }\n var originalValue = applyOperation(document, {\n op: \"remove\",\n path: this.from\n }).removed;\n applyOperation(document, {\n op: \"add\",\n path: this.path,\n value: originalValue\n });\n return {\n newDocument: document,\n removed: removed\n };\n },\n copy: function (obj, key, document) {\n var valueToCopy = getValueByPointer(document, this.from);\n // enforce copy by value so further operations don't affect source (see issue #177)\n applyOperation(document, {\n op: \"add\",\n path: this.path,\n value: helpers_1._deepClone(valueToCopy)\n });\n return {\n newDocument: document\n };\n },\n test: function (obj, key, document) {\n return {\n newDocument: document,\n test: areEquals(obj[key], this.value)\n };\n },\n _get: function (obj, key, document) {\n this.value = obj[key];\n return {\n newDocument: document\n };\n }\n};\n/* The operations applicable to an array. Many are the same as for the object */\nvar arrOps = {\n add: function (arr, i, document) {\n if (helpers_1.isInteger(i)) {\n arr.splice(i, 0, this.value);\n } else {\n // array props\n arr[i] = this.value;\n }\n // this may be needed when using '-' in an array\n return {\n newDocument: document,\n index: i\n };\n },\n remove: function (arr, i, document) {\n var removedList = arr.splice(i, 1);\n return {\n newDocument: document,\n removed: removedList[0]\n };\n },\n replace: function (arr, i, document) {\n var removed = arr[i];\n arr[i] = this.value;\n return {\n newDocument: document,\n removed: removed\n };\n },\n move: objOps.move,\n copy: objOps.copy,\n test: objOps.test,\n _get: objOps._get\n};\n/**\n * Retrieves a value from a JSON document by a JSON pointer.\n * Returns the value.\n *\n * @param document The document to get the value from\n * @param pointer an escaped JSON pointer\n * @return The retrieved value\n */\nfunction getValueByPointer(document, pointer) {\n if (pointer == '') {\n return document;\n }\n var getOriginalDestination = {\n op: \"_get\",\n path: pointer\n };\n applyOperation(document, getOriginalDestination);\n return getOriginalDestination.value;\n}\nexports.getValueByPointer = getValueByPointer;\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the {newDocument, result} of the operation.\n * It modifies the `document` and `operation` objects - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return `{newDocument, result}` after the operation\n */\nfunction applyOperation(document, operation, validateOperation, mutateDocument, banPrototypeModifications, index) {\n if (validateOperation === void 0) {\n validateOperation = false;\n }\n if (mutateDocument === void 0) {\n mutateDocument = true;\n }\n if (banPrototypeModifications === void 0) {\n banPrototypeModifications = true;\n }\n if (index === void 0) {\n index = 0;\n }\n if (validateOperation) {\n if (typeof validateOperation == 'function') {\n validateOperation(operation, 0, document, operation.path);\n } else {\n validator(operation, 0);\n }\n }\n /* ROOT OPERATIONS */\n if (operation.path === \"\") {\n var returnValue = {\n newDocument: document\n };\n if (operation.op === 'add') {\n returnValue.newDocument = operation.value;\n return returnValue;\n } else if (operation.op === 'replace') {\n returnValue.newDocument = operation.value;\n returnValue.removed = document; //document we removed\n return returnValue;\n } else if (operation.op === 'move' || operation.op === 'copy') {\n // it's a move or copy to root\n returnValue.newDocument = getValueByPointer(document, operation.from); // get the value by json-pointer in `from` field\n if (operation.op === 'move') {\n // report removed item\n returnValue.removed = document;\n }\n return returnValue;\n } else if (operation.op === 'test') {\n returnValue.test = areEquals(document, operation.value);\n if (returnValue.test === false) {\n throw new exports.JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n returnValue.newDocument = document;\n return returnValue;\n } else if (operation.op === 'remove') {\n // a remove on root\n returnValue.removed = document;\n returnValue.newDocument = null;\n return returnValue;\n } else if (operation.op === '_get') {\n operation.value = document;\n return returnValue;\n } else {\n /* bad operation */\n if (validateOperation) {\n throw new exports.JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n } else {\n return returnValue;\n }\n }\n } /* END ROOT OPERATIONS */else {\n if (!mutateDocument) {\n document = helpers_1._deepClone(document);\n }\n var path = operation.path || \"\";\n var keys = path.split('/');\n var obj = document;\n var t = 1; //skip empty element - http://jsperf.com/to-shift-or-not-to-shift\n var len = keys.length;\n var existingPathFragment = undefined;\n var key = void 0;\n var validateFunction = void 0;\n if (typeof validateOperation == 'function') {\n validateFunction = validateOperation;\n } else {\n validateFunction = validator;\n }\n while (true) {\n key = keys[t];\n if (banPrototypeModifications && key == '__proto__') {\n throw new TypeError('JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README');\n }\n if (validateOperation) {\n if (existingPathFragment === undefined) {\n if (obj[key] === undefined) {\n existingPathFragment = keys.slice(0, t).join('/');\n } else if (t == len - 1) {\n existingPathFragment = operation.path;\n }\n if (existingPathFragment !== undefined) {\n validateFunction(operation, 0, document, existingPathFragment);\n }\n }\n }\n t++;\n if (Array.isArray(obj)) {\n if (key === '-') {\n key = obj.length;\n } else {\n if (validateOperation && !helpers_1.isInteger(key)) {\n throw new exports.JsonPatchError(\"Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index\", \"OPERATION_PATH_ILLEGAL_ARRAY_INDEX\", index, operation, document);\n } // only parse key when it's an integer for `arr.prop` to work\n else if (helpers_1.isInteger(key)) {\n key = ~~key;\n }\n }\n if (t >= len) {\n if (validateOperation && operation.op === \"add\" && key > obj.length) {\n throw new exports.JsonPatchError(\"The specified index MUST NOT be greater than the number of elements in the array\", \"OPERATION_VALUE_OUT_OF_BOUNDS\", index, operation, document);\n }\n var returnValue = arrOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new exports.JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n } else {\n if (key && key.indexOf('~') != -1) {\n key = helpers_1.unescapePathComponent(key);\n }\n if (t >= len) {\n var returnValue = objOps[operation.op].call(operation, obj, key, document); // Apply patch\n if (returnValue.test === false) {\n throw new exports.JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return returnValue;\n }\n }\n obj = obj[key];\n }\n }\n}\nexports.applyOperation = applyOperation;\n/**\n * Apply a full JSON Patch array on a JSON document.\n * Returns the {newDocument, result} of the patch.\n * It modifies the `document` object and `patch` - it gets the values by reference.\n * If you would like to avoid touching your values, clone them:\n * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.\n *\n * @param document The document to patch\n * @param patch The patch to apply\n * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.\n * @param mutateDocument Whether to mutate the original document or clone it before applying\n * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.\n * @return An array of `{newDocument, result}` after the patch\n */\nfunction applyPatch(document, patch, validateOperation, mutateDocument, banPrototypeModifications) {\n if (mutateDocument === void 0) {\n mutateDocument = true;\n }\n if (banPrototypeModifications === void 0) {\n banPrototypeModifications = true;\n }\n if (validateOperation) {\n if (!Array.isArray(patch)) {\n throw new exports.JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n }\n if (!mutateDocument) {\n document = helpers_1._deepClone(document);\n }\n var results = new Array(patch.length);\n for (var i = 0, length_1 = patch.length; i < length_1; i++) {\n // we don't need to pass mutateDocument argument because if it was true, we already deep cloned the object, we'll just pass `true`\n results[i] = applyOperation(document, patch[i], validateOperation, true, banPrototypeModifications, i);\n document = results[i].newDocument; // in case root was replaced\n }\n results.newDocument = document;\n return results;\n}\nexports.applyPatch = applyPatch;\n/**\n * Apply a single JSON Patch Operation on a JSON document.\n * Returns the updated document.\n * Suitable as a reducer.\n *\n * @param document The document to patch\n * @param operation The operation to apply\n * @return The updated document\n */\nfunction applyReducer(document, operation, index) {\n var operationResult = applyOperation(document, operation);\n if (operationResult.test === false) {\n // failed test\n throw new exports.JsonPatchError(\"Test operation failed\", 'TEST_OPERATION_FAILED', index, operation, document);\n }\n return operationResult.newDocument;\n}\nexports.applyReducer = applyReducer;\n/**\n * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.\n * @param {object} operation - operation object (patch)\n * @param {number} index - index of operation in the sequence\n * @param {object} [document] - object where the operation is supposed to be applied\n * @param {string} [existingPathFragment] - comes along with `document`\n */\nfunction validator(operation, index, document, existingPathFragment) {\n if (typeof operation !== 'object' || operation === null || Array.isArray(operation)) {\n throw new exports.JsonPatchError('Operation is not an object', 'OPERATION_NOT_AN_OBJECT', index, operation, document);\n } else if (!objOps[operation.op]) {\n throw new exports.JsonPatchError('Operation `op` property is not one of operations defined in RFC-6902', 'OPERATION_OP_INVALID', index, operation, document);\n } else if (typeof operation.path !== 'string') {\n throw new exports.JsonPatchError('Operation `path` property is not a string', 'OPERATION_PATH_INVALID', index, operation, document);\n } else if (operation.path.indexOf('/') !== 0 && operation.path.length > 0) {\n // paths that aren't empty string should start with \"/\"\n throw new exports.JsonPatchError('Operation `path` property must start with \"/\"', 'OPERATION_PATH_INVALID', index, operation, document);\n } else if ((operation.op === 'move' || operation.op === 'copy') && typeof operation.from !== 'string') {\n throw new exports.JsonPatchError('Operation `from` property is not present (applicable in `move` and `copy` operations)', 'OPERATION_FROM_REQUIRED', index, operation, document);\n } else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && operation.value === undefined) {\n throw new exports.JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_REQUIRED', index, operation, document);\n } else if ((operation.op === 'add' || operation.op === 'replace' || operation.op === 'test') && helpers_1.hasUndefined(operation.value)) {\n throw new exports.JsonPatchError('Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)', 'OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED', index, operation, document);\n } else if (document) {\n if (operation.op == \"add\") {\n var pathLen = operation.path.split(\"/\").length;\n var existingPathLen = existingPathFragment.split(\"/\").length;\n if (pathLen !== existingPathLen + 1 && pathLen !== existingPathLen) {\n throw new exports.JsonPatchError('Cannot perform an `add` operation at the desired path', 'OPERATION_PATH_CANNOT_ADD', index, operation, document);\n }\n } else if (operation.op === 'replace' || operation.op === 'remove' || operation.op === '_get') {\n if (operation.path !== existingPathFragment) {\n throw new exports.JsonPatchError('Cannot perform the operation at a path that does not exist', 'OPERATION_PATH_UNRESOLVABLE', index, operation, document);\n }\n } else if (operation.op === 'move' || operation.op === 'copy') {\n var existingValue = {\n op: \"_get\",\n path: operation.from,\n value: undefined\n };\n var error = validate([existingValue], document);\n if (error && error.name === 'OPERATION_PATH_UNRESOLVABLE') {\n throw new exports.JsonPatchError('Cannot perform the operation from a path that does not exist', 'OPERATION_FROM_UNRESOLVABLE', index, operation, document);\n }\n }\n }\n}\nexports.validator = validator;\n/**\n * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.\n * If error is encountered, returns a JsonPatchError object\n * @param sequence\n * @param document\n * @returns {JsonPatchError|undefined}\n */\nfunction validate(sequence, document, externalValidator) {\n try {\n if (!Array.isArray(sequence)) {\n throw new exports.JsonPatchError('Patch sequence must be an array', 'SEQUENCE_NOT_AN_ARRAY');\n }\n if (document) {\n //clone document and sequence so that we can safely try applying operations\n applyPatch(helpers_1._deepClone(document), helpers_1._deepClone(sequence), externalValidator || true);\n } else {\n externalValidator = externalValidator || validator;\n for (var i = 0; i < sequence.length; i++) {\n externalValidator(sequence[i], i, document, undefined);\n }\n }\n } catch (e) {\n if (e instanceof exports.JsonPatchError) {\n return e;\n } else {\n throw e;\n }\n }\n}\nexports.validate = validate;\n/**\n * Default export for backwards compat\n */\nexports.default = {\n JsonPatchError: exports.JsonPatchError,\n deepClone: exports.deepClone,\n getValueByPointer: getValueByPointer,\n applyOperation: applyOperation,\n applyPatch: applyPatch,\n applyReducer: applyReducer,\n validator: validator,\n validate: validate\n};","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*!\n * https://github.com/Starcounter-Jack/JSON-Patch\n * (c) 2017 Joachim Wester\n * MIT license\n */\nvar helpers_1 = require(\"./helpers\");\nvar core_1 = require(\"./core\");\n/* export all core functions and types */\nvar core_2 = require(\"./core\");\nexports.applyOperation = core_2.applyOperation;\nexports.applyPatch = core_2.applyPatch;\nexports.applyReducer = core_2.applyReducer;\nexports.getValueByPointer = core_2.getValueByPointer;\nexports.validate = core_2.validate;\nexports.validator = core_2.validator;\n/* export some helpers */\nvar helpers_2 = require(\"./helpers\");\nexports.JsonPatchError = helpers_2.PatchError;\nexports.deepClone = helpers_2._deepClone;\nexports.escapePathComponent = helpers_2.escapePathComponent;\nexports.unescapePathComponent = helpers_2.unescapePathComponent;\nvar beforeDict = new WeakMap();\nvar Mirror = /** @class */function () {\n function Mirror(obj) {\n this.observers = new Map();\n this.obj = obj;\n }\n return Mirror;\n}();\nvar ObserverInfo = /** @class */function () {\n function ObserverInfo(callback, observer) {\n this.callback = callback;\n this.observer = observer;\n }\n return ObserverInfo;\n}();\nfunction getMirror(obj) {\n return beforeDict.get(obj);\n}\nfunction getObserverFromMirror(mirror, callback) {\n return mirror.observers.get(callback);\n}\nfunction removeObserverFromMirror(mirror, observer) {\n mirror.observers.delete(observer.callback);\n}\n/**\n * Detach an observer from an object\n */\nfunction unobserve(root, observer) {\n observer.unobserve();\n}\nexports.unobserve = unobserve;\n/**\n * Observes changes made to an object, which can then be retrieved using generate\n */\nfunction observe(obj, callback) {\n var patches = [];\n var observer;\n var mirror = getMirror(obj);\n if (!mirror) {\n mirror = new Mirror(obj);\n beforeDict.set(obj, mirror);\n } else {\n var observerInfo = getObserverFromMirror(mirror, callback);\n observer = observerInfo && observerInfo.observer;\n }\n if (observer) {\n return observer;\n }\n observer = {};\n mirror.value = helpers_1._deepClone(obj);\n if (callback) {\n observer.callback = callback;\n observer.next = null;\n var dirtyCheck = function () {\n generate(observer);\n };\n var fastCheck = function () {\n clearTimeout(observer.next);\n observer.next = setTimeout(dirtyCheck);\n };\n if (typeof window !== 'undefined') {\n //not Node\n window.addEventListener('mouseup', fastCheck);\n window.addEventListener('keyup', fastCheck);\n window.addEventListener('mousedown', fastCheck);\n window.addEventListener('keydown', fastCheck);\n window.addEventListener('change', fastCheck);\n }\n }\n observer.patches = patches;\n observer.object = obj;\n observer.unobserve = function () {\n generate(observer);\n clearTimeout(observer.next);\n removeObserverFromMirror(mirror, observer);\n if (typeof window !== 'undefined') {\n window.removeEventListener('mouseup', fastCheck);\n window.removeEventListener('keyup', fastCheck);\n window.removeEventListener('mousedown', fastCheck);\n window.removeEventListener('keydown', fastCheck);\n window.removeEventListener('change', fastCheck);\n }\n };\n mirror.observers.set(callback, new ObserverInfo(callback, observer));\n return observer;\n}\nexports.observe = observe;\n/**\n * Generate an array of patches from an observer\n */\nfunction generate(observer, invertible) {\n if (invertible === void 0) {\n invertible = false;\n }\n var mirror = beforeDict.get(observer.object);\n _generate(mirror.value, observer.object, observer.patches, \"\", invertible);\n if (observer.patches.length) {\n core_1.applyPatch(mirror.value, observer.patches);\n }\n var temp = observer.patches;\n if (temp.length > 0) {\n observer.patches = [];\n if (observer.callback) {\n observer.callback(temp);\n }\n }\n return temp;\n}\nexports.generate = generate;\n// Dirty check if obj is different from mirror, generate patches and update mirror\nfunction _generate(mirror, obj, patches, path, invertible) {\n if (obj === mirror) {\n return;\n }\n if (typeof obj.toJSON === \"function\") {\n obj = obj.toJSON();\n }\n var newKeys = helpers_1._objectKeys(obj);\n var oldKeys = helpers_1._objectKeys(mirror);\n var changed = false;\n var deleted = false;\n //if ever \"move\" operation is implemented here, make sure this test runs OK: \"should not generate the same patch twice (move)\"\n for (var t = oldKeys.length - 1; t >= 0; t--) {\n var key = oldKeys[t];\n var oldVal = mirror[key];\n if (helpers_1.hasOwnProperty(obj, key) && !(obj[key] === undefined && oldVal !== undefined && Array.isArray(obj) === false)) {\n var newVal = obj[key];\n if (typeof oldVal == \"object\" && oldVal != null && typeof newVal == \"object\" && newVal != null) {\n _generate(oldVal, newVal, patches, path + \"/\" + helpers_1.escapePathComponent(key), invertible);\n } else {\n if (oldVal !== newVal) {\n changed = true;\n if (invertible) {\n patches.push({\n op: \"test\",\n path: path + \"/\" + helpers_1.escapePathComponent(key),\n value: helpers_1._deepClone(oldVal)\n });\n }\n patches.push({\n op: \"replace\",\n path: path + \"/\" + helpers_1.escapePathComponent(key),\n value: helpers_1._deepClone(newVal)\n });\n }\n }\n } else if (Array.isArray(mirror) === Array.isArray(obj)) {\n if (invertible) {\n patches.push({\n op: \"test\",\n path: path + \"/\" + helpers_1.escapePathComponent(key),\n value: helpers_1._deepClone(oldVal)\n });\n }\n patches.push({\n op: \"remove\",\n path: path + \"/\" + helpers_1.escapePathComponent(key)\n });\n deleted = true; // property has been deleted\n } else {\n if (invertible) {\n patches.push({\n op: \"test\",\n path: path,\n value: mirror\n });\n }\n patches.push({\n op: \"replace\",\n path: path,\n value: obj\n });\n changed = true;\n }\n }\n if (!deleted && newKeys.length == oldKeys.length) {\n return;\n }\n for (var t = 0; t < newKeys.length; t++) {\n var key = newKeys[t];\n if (!helpers_1.hasOwnProperty(mirror, key) && obj[key] !== undefined) {\n patches.push({\n op: \"add\",\n path: path + \"/\" + helpers_1.escapePathComponent(key),\n value: helpers_1._deepClone(obj[key])\n });\n }\n }\n}\n/**\n * Create an array of patches from the differences in two objects\n */\nfunction compare(tree1, tree2, invertible) {\n if (invertible === void 0) {\n invertible = false;\n }\n var patches = [];\n _generate(tree1, tree2, patches, '', invertible);\n return patches;\n}\nexports.compare = compare;\n/**\n * Default export for backwards compat\n */\n// import just to re-export as default\nvar core = require(\"./core\");\nvar helpers_3 = require(\"./helpers\");\nexports.default = __assign({}, core, {\n // duplex\n unobserve: unobserve,\n observe: observe,\n generate: generate,\n compare: compare,\n // helpers\n JsonPatchError: helpers_3.PatchError,\n deepClone: helpers_1._deepClone,\n escapePathComponent: helpers_1.escapePathComponent,\n unescapePathComponent: helpers_3.unescapePathComponent\n});","import { Injectable } from '@angular/core';\n\nimport { MessageType } from '@cds/push';\nimport { PatchScoreboardCommand } from '@cds/push/fixture-commands';\nimport { ScoreboardFactory } from '@frontend/sports/betting-offer/feature/fixture-factories';\nimport { BaseEventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { ConnectionConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { CdsPushService, CdsSubscription, ScoreboardSubscription } from '@frontend/sports/content-distribution/feature';\nimport { BaseSubscriptionService, MessageCallback, MessageHandler } from '@frontend/sports/event-subscription/feature/base-subscription';\nimport { applyPatch } from 'fast-json-patch';\n\n@Injectable({ providedIn: 'root' })\nexport class ScoreboardSubscriptionService extends BaseSubscriptionService {\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private scoreboardFactory: ScoreboardFactory,\n push: CdsPushService,\n protected connection: ConnectionConfig,\n loggerFactory: LoggerFactory,\n ) {\n super(push);\n this.logger = loggerFactory.getLogger('FullScoreboardSubscriptionService');\n }\n\n protected getContextSubscriptions(event: T, callback: MessageCallback): CdsSubscription[] {\n return [new ScoreboardSubscription(event.offerContext, event.id, this.connection.culture, callback)];\n }\n\n protected getHandlers(): Map> {\n const handlers = new Map>();\n\n handlers.set(MessageType.ScoreboardPatch, (evt, cmd) => this.updateScoreboard(evt, cmd as PatchScoreboardCommand));\n\n return handlers;\n }\n\n private updateScoreboard(event: T, command: PatchScoreboardCommand): T {\n if (!event.fixtureScoreboard) {\n const error = new Error(`Couldn't update full scoreboard on event: ${event.id} because 'fixtureScoreboard' was not present.`);\n this.logger.error(error, 'Error while updating scoreboard');\n throw error;\n }\n\n applyPatch(event.fixtureScoreboard, command.patch.operations);\n event.scoreboard = this.scoreboardFactory.createScoreboard(event.fixtureScoreboard, event);\n\n return event;\n }\n}\n","export enum SitemapRoutingToken {\n SitemapHomeResolver = 'SitemapHomeResolver',\n SitemapEmptyResolver = 'SitemapEmptyResolver',\n CalendarSitemapResolver = 'CalendarSitemapResolver',\n EventDetailsSitemapResolver = 'EventDetailsSitemapResolver',\n SportSitemapResolver = 'SportSitemapResolver',\n CompetitionSitemapResolver = 'CompetitionSitemapResolver',\n CouponSitemapResolver = 'CouponSitemapResolver',\n RegionSitemapResolver = 'RegionSitemapResolver',\n StandingsSitemapResolver = 'StandingsSitemapResolver',\n LiveSitemapResolver = 'LiveSitemapResolver',\n MarketGroupSitemapResolver = 'MarketGroupSitemapResolver',\n FavouritesSitemapResolver = 'FavouritesSitemapResolver',\n MultiBuilderSitemapResolver = 'MultiBuilderSitemapResolver',\n EsportsSitemapResolver = 'EsportsSitemapResolver',\n MultiSportsHubSitemapResolver = 'MultiSportsHubSitemapResolver',\n}\n","import { Component } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\n\n@Component({\n selector: 'ms-earlypayout-tac',\n templateUrl: 'tac-dialog.html',\n standalone: true,\n})\nexport class MyBetsEarlyPayoutTacDialogComponent {\n activationInformation: SafeHtml;\n\n constructor(\n public sitecore: Sitecore,\n private domSanitizer: DomSanitizer,\n private activeModal: ActiveModal,\n ) {\n this.activationInformation = this.domSanitizer.bypassSecurityTrustHtml(this.sitecore.earlyPayoutV2.ActivationInformation);\n }\n\n acceptTac(): void {\n this.activeModal.close(true);\n }\n}\n","
\n
\n
\n
{{ sitecore.earlyPayoutV2.Title }}
\n
\n\n
\n
\n
{{ sitecore.earlyPayoutV2.ActivationCondition1 }}
\n
\n
\n
\n
{{ sitecore.earlyPayoutV2.ActivationCondition2 }}
\n
\n
\n
\n
{{ sitecore.earlyPayoutV2.ActivationCondition3 }}
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n","import { DomainEvent } from '@frontend/sports/common/core/utils/dispatcher';\nimport { PayoutAcceptanceMode } from '@frontend/sports/types/models/user-settings';\n\nimport { EarlyPayoutAcceptance } from './early-payout';\n\nexport enum TaxCalculation {\n Default = 'Default',\n TurnoverTax = 'TurnoverTax',\n}\n\nexport class UserSettingsResponse {\n oddsFormatLimitReached!: boolean;\n succeeded?: boolean;\n}\n\nexport interface IUserBettingSettings {\n defaultStake?: number;\n defaultStakeProposalReviewDate?: string;\n oddsAcceptanceMode?: string;\n betslipEmailNotification?: boolean;\n betslipAppNotification?: boolean;\n earlyPayoutAcceptanceMode?: EarlyPayoutAcceptance | PayoutAcceptanceMode;\n keypadIncrementalStakes?: number[];\n betslipSkipConfirmation?: boolean;\n freeBetsActivated?: boolean;\n earlyPayoutDeactivated?: boolean;\n quickBetEnabled?: boolean;\n isDefaultStakeUserDefined?: boolean;\n stakeChangeConsent?: number;\n}\n\nexport interface IConfigSettings {\n minimumStake: number;\n minimumStakeSystem: number;\n minimumStakeUnit: number;\n minimumStakeSystemUnit: number;\n winningsTaxRate: number;\n allowedV2OfferSports: number[];\n oddsBoostForbiddenSportIds: number[];\n oddsBoostForbiddenGameTemplateIds: number[];\n oddsBoostForbiddenMarketTypes: string[];\n riskFreeForbiddenSportIds: number[];\n riskFreeForbiddenGameTemplateIds: number[];\n riskFreeForbiddenMarketTypes: string[];\n customerDnaProfileId?: string;\n gamblingControlMaxStake: number;\n winningsTaxThreshold: number;\n stakeTaxRate: number;\n minimumGrossStakeUnit: number;\n minimumGrossStakeSystemUnit: number;\n taxCalculation?: string;\n}\n\nexport const UserEvents = {\n /* eslint-disable @typescript-eslint/naming-convention,no-underscore-dangle,id-blacklist,id-match */\n ClaimsChanged: 'CLAIMS_CHANGED',\n M2UserClaimsChanged: 'm2-user-claimsChanged',\n UserSettingsChanged: new DomainEvent('USER_SETTINGS_CHANGED'),\n ClientConfigRefreshed: new DomainEvent('CLIENT_CONFIG_REFRESHED'),\n};\n","export enum EarlyPayoutAcceptance {\n Any = 'AcceptAnyChanges',\n Higher = 'AcceptHigherPayoutAmount',\n}\n\nexport enum AccountMenuVersion {\n V3 = 3,\n}\n","import { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { EarlyPayoutAcceptance } from '../model/early-payout';\nimport { IUserBettingSettings } from '../model/user.models';\n\nexport function mapEarlyPayoutAcceptance(settings: IUserBettingSettings): Nullable {\n if (settings.earlyPayoutAcceptanceMode !== EarlyPayoutAcceptance.Any && settings.earlyPayoutAcceptanceMode !== EarlyPayoutAcceptance.Higher) {\n return null;\n }\n\n return settings.earlyPayoutAcceptanceMode === EarlyPayoutAcceptance.Any ? EarlyPayoutAcceptance.Any : EarlyPayoutAcceptance.Higher;\n}\n","import { IConfigSettings, TaxCalculation } from '../model/user.models';\n\nexport function isTurnoverTaxApplied(settings: IConfigSettings): boolean {\n return settings.stakeTaxRate !== 0 && settings.taxCalculation === TaxCalculation.TurnoverTax;\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'msTrust',\n standalone: true,\n})\nexport class TrustPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(value: string, type: 'html' | 'url' | 'style' | 'resourceurl'): SafeHtml | SafeStyle | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'resourceurl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Can not trust type: ${type as string}`);\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { ConfigSettings } from '@frontend/sports/types/models/config-settings';\nimport { UserSettingsData } from '@frontend/sports/types/models/user-settings';\n\nimport { mapEarlyPayoutAcceptance } from '../helpers/early-payout-acceptance';\nimport { isTurnoverTaxApplied } from '../helpers/is-turnovertax-applied';\nimport { EarlyPayoutAcceptance } from '../model/early-payout';\n\n/**\n * @whatItDoes Service for managing and accessing sport user settings.\n *\n * @description\n *\n * This service is to allow synchronous fetching of data in the betslip and my-bets modules ,\n * as these modules require the {@link SportsUserSettings} data to be available from the moment they are initialized.\n */\n\n@Injectable({ providedIn: 'root' })\nexport class SyncUserSettingsService {\n private readonly userSettings = inject(SportsUserSettings);\n\n get bettingSettings(): UserSettingsData {\n return this.userSettings.bettingSettings;\n }\n\n get configSettings(): ConfigSettings {\n return this.userSettings.configSettings;\n }\n\n get isTurnoverTaxApplied(): boolean {\n return isTurnoverTaxApplied(this.userSettings.configSettings);\n }\n\n get earlyPayoutAcceptance(): Nullable {\n return mapEarlyPayoutAcceptance(this.userSettings.bettingSettings);\n }\n\n get defaultStake(): number | null {\n // use || instead of ?? to keep `null` in case of 0\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return this.userSettings.bettingSettings.defaultStake || null;\n }\n}\n","export enum ReBetMyBetsTabs {\n Live = 'LIVE',\n Open = 'OPEN',\n Settled = 'SETTLED',\n}\n","export const HELP_BOX_TYPE = {\n BestOddsGuarantee: 'bestoddsguarantee',\n AutoCashout: 'autocashout',\n PaidOutAutoCashout: 'paidoutautocashout',\n LineSwitcher: 'lineswitcher',\n ArchivedBets: 'archivedBets',\n ShareMyBet: 'shareMyBet',\n TransactionBets: 'transactionBets',\n TeaserBet: 'teaserBet',\n ReBet: 'reBet',\n ReBetForOpenTab: 'reBetForOpenTab',\n CashOutInfo: 'cashoutinfo',\n};\n\ntype HelpBoxTypeKey = keyof typeof HELP_BOX_TYPE;\nexport type HelpBoxType = (typeof HELP_BOX_TYPE)[HelpBoxTypeKey];\n","import { Injectable } from '@angular/core';\n\nimport {\n BetslipConfig,\n EarlyPayoutConfig,\n MyBetsConfig,\n RacingConfig,\n ReBetConfig,\n ShareMyBetConfig,\n Sitecore,\n TeaserBetConfig,\n} from '@frontend/sports/common/client-config-data-access';\nimport { interpolateSingleBracesString } from '@frontend/sports/common/core/utils/string';\n// This will be refactored by Monzer - soon :D\n// eslint-disable-next-line no-restricted-imports\nimport { SyncUserSettingsService, UserService } from '@frontend/sports/user/feature';\n\nimport { ReBetMyBetsTabs } from '../common/re-bet-my-bets-tabs.models';\nimport { HELP_BOX_TYPE, HelpBoxType } from './help-box-type';\n\nexport interface HelpBoxModel {\n headerTitle: string;\n infoIconLink: string;\n explanationText: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class HelpBoxService {\n constructor(\n private sitecore: Sitecore,\n private racingConfig: RacingConfig,\n private epConfig: EarlyPayoutConfig,\n private userService: UserService,\n protected mybetsConfig: MyBetsConfig,\n protected betslipConfig: BetslipConfig,\n protected shareMyBetConfig: ShareMyBetConfig,\n protected teaserBetConfig: TeaserBetConfig,\n protected rebetConfig: ReBetConfig,\n private earlyPayoutConfig: EarlyPayoutConfig,\n private userSettings: SyncUserSettingsService,\n ) {}\n\n getHelpBoxData(type: HelpBoxType): HelpBoxModel {\n switch (type) {\n case HELP_BOX_TYPE.BestOddsGuarantee: {\n return this.getBOGHelpBoxData();\n }\n case HELP_BOX_TYPE.CashOutInfo: {\n return this.getCashOutInfoData();\n }\n case HELP_BOX_TYPE.AutoCashout: {\n return this.getAutoCashoutHelpBoxData();\n }\n case HELP_BOX_TYPE.LineSwitcher: {\n return this.getLineSwitcherHelpData();\n }\n case HELP_BOX_TYPE.ArchivedBets: {\n return this.getArchivedBetsHelpData();\n }\n case HELP_BOX_TYPE.ShareMyBet: {\n return this.getShareMyBetHelpData();\n }\n case HELP_BOX_TYPE.TransactionBets: {\n return this.getTransactionBetsHelpData();\n }\n case HELP_BOX_TYPE.TeaserBet: {\n return this.getTeaserBetHelpData();\n }\n\n case HELP_BOX_TYPE.ReBet: {\n return this.getReBetHelpBoxData();\n }\n\n case HELP_BOX_TYPE.ReBetForOpenTab: {\n return this.getReBetOpenTabHelpBoxData();\n }\n }\n\n return {};\n }\n\n getHelpBoxBadgeData(type?: HelpBoxType): string {\n switch (type) {\n case HELP_BOX_TYPE.BestOddsGuarantee: {\n return this.sitecore.horseRacing.badges.BOG;\n }\n case HELP_BOX_TYPE.AutoCashout: {\n return this.sitecore.earlyPayoutV2.SetAutocashoutHelpBoxBadgeText;\n }\n case HELP_BOX_TYPE.PaidOutAutoCashout: {\n return this.sitecore.earlyPayoutV2.PaidOutAutoCashoutBadgeText;\n }\n case HELP_BOX_TYPE.LineSwitcher: {\n return this.sitecore.betslip.lineSwitcherHelpBox.Badge;\n }\n case HELP_BOX_TYPE.ArchivedBets: {\n return this.sitecore.betslip.archivedBetsHelpBox.Badge;\n }\n case HELP_BOX_TYPE.ShareMyBet: {\n return this.sitecore.globalMessages.NewBadgeText;\n }\n case HELP_BOX_TYPE.TransactionBets: {\n return this.sitecore.betslip.transactionBetsHelpBox.Badge;\n }\n case HELP_BOX_TYPE.TeaserBet: {\n return this.sitecore.betslip.teaserBet.helpBox.Badge;\n }\n case HELP_BOX_TYPE.ReBet: {\n return this.sitecore.reBet.helpBox.BadgeForSettledTab;\n }\n case HELP_BOX_TYPE.ReBetForOpenTab: {\n return this.sitecore.reBet.helpBox.BadgeForOpenTab;\n }\n }\n\n return '';\n }\n\n isHelpBoxEnabled(type?: HelpBoxType): boolean {\n switch (type) {\n case HELP_BOX_TYPE.BestOddsGuarantee: {\n return this.racingConfig.isBOGEnabled;\n }\n case HELP_BOX_TYPE.CashOutInfo: {\n return this.earlyPayoutConfig.showCashOutInfo;\n }\n case HELP_BOX_TYPE.AutoCashout: {\n return (\n this.epConfig.isAutoCashOutEnabled &&\n this.epConfig.isAutoCashOutHelpEnabled &&\n this.userService.isEarlyPayoutAllowed &&\n !this.userSettings.bettingSettings.earlyPayoutDeactivated\n );\n }\n case HELP_BOX_TYPE.PaidOutAutoCashout: {\n return true;\n }\n case HELP_BOX_TYPE.LineSwitcher: {\n return this.betslipConfig.isLineSwitcherEnabled;\n }\n case HELP_BOX_TYPE.ArchivedBets: {\n return this.mybetsConfig.isArchivedBetsEnabled;\n }\n case HELP_BOX_TYPE.ShareMyBet: {\n return this.shareMyBetConfig.isEnabled && this.shareMyBetConfig.isHelpBoxEnabled;\n }\n case HELP_BOX_TYPE.TransactionBets: {\n return this.mybetsConfig.isTransactionBetsEnabled;\n }\n case HELP_BOX_TYPE.TeaserBet: {\n return (\n this.teaserBetConfig.isEnabled &&\n this.sitecore.betslip.teaserBet.helpBox.HeaderLine.length > 0 &&\n this.sitecore.betslip.teaserBet.helpBox.Text.length > 0 &&\n this.sitecore.betslip.teaserBet.helpBox.Badge.length > 0\n );\n }\n case HELP_BOX_TYPE.ReBet: {\n return (\n this.rebetConfig.helpBoxEnabledTabs.includes(ReBetMyBetsTabs.Settled.toUpperCase()) &&\n this.rebetConfig.enabledTabs.includes(ReBetMyBetsTabs.Settled.toUpperCase())\n );\n }\n case HELP_BOX_TYPE.ReBetForOpenTab: {\n return (\n this.rebetConfig.helpBoxEnabledTabs.includes(ReBetMyBetsTabs.Open.toUpperCase()) &&\n this.rebetConfig.enabledTabs.includes(ReBetMyBetsTabs.Open.toUpperCase())\n );\n }\n }\n\n return false;\n }\n\n private getReBetHelpBoxData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.reBet.helpBox.HeaderLineForSettledTab,\n infoIconLink: this.sitecore.reBet.helpBox.InfoIconLinkForSettledTab,\n explanationText: this.sitecore.reBet.helpBox.TextForSettledTab,\n };\n }\n\n private getReBetOpenTabHelpBoxData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.reBet.helpBox.HeaderLineForOpenTab,\n infoIconLink: this.sitecore.reBet.helpBox.InfoIconLinkForOpenTab,\n explanationText: this.sitecore.reBet.helpBox.TextForOpenTab,\n };\n }\n\n private getBOGHelpBoxData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.horseRacing.helpBox.HeaderLine,\n infoIconLink: this.sitecore.horseRacing.helpBox.InfoIconLink,\n explanationText: this.sitecore.horseRacing.helpBox.Text,\n };\n }\n\n private getCashOutInfoData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.myBets.cashoutInfoHelpBox.HeaderLine,\n infoIconLink: this.sitecore.myBets.cashoutInfoHelpBox.InfoIconLink,\n explanationText: this.sitecore.myBets.cashoutInfoHelpBox.Text,\n };\n }\n\n private getAutoCashoutHelpBoxData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.earlyPayoutV2.SetAutocashoutHelpBoxHeaderLine,\n infoIconLink: this.sitecore.earlyPayoutV2.SetAutocashoutHelpBoxInfoIconLink,\n explanationText: this.sitecore.earlyPayoutV2.SetAutocashoutHelpBoxText,\n };\n }\n\n private getLineSwitcherHelpData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.betslip.lineSwitcherHelpBox.HeaderLine,\n explanationText: this.sitecore.betslip.lineSwitcherHelpBox.Text,\n };\n }\n\n private getArchivedBetsHelpData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.betslip.archivedBetsHelpBox.HeaderLine,\n explanationText: interpolateSingleBracesString(this.sitecore.betslip.archivedBetsHelpBox.Text, {\n archivedMyBetsUrl: this.mybetsConfig.archivedMyBetsUrl ?? '',\n sessionKey: this.userService.ssoToken as string,\n }),\n };\n }\n\n private getShareMyBetHelpData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.shareMyBet.helpBox.Title,\n explanationText: this.sitecore.shareMyBet.helpBox.Text,\n };\n }\n\n private getTransactionBetsHelpData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.betslip.transactionBetsHelpBox.HeaderLine,\n explanationText: interpolateSingleBracesString(this.sitecore.betslip.transactionBetsHelpBox.Text, {\n transactionMyBetsUrl: this.mybetsConfig.stadiumMyBetsTransactionsUrl ?? '',\n sessionKey: this.userService.ssoToken as string,\n }),\n };\n }\n\n private getTeaserBetHelpData(): HelpBoxModel {\n return {\n headerTitle: this.sitecore.betslip.teaserBet.helpBox.HeaderLine,\n explanationText: this.sitecore.betslip.teaserBet.helpBox.Text,\n };\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\n\nimport { HelpBoxType } from './help-box-type';\nimport { HelpBoxService } from './help-box.service';\n\n@Component({\n selector: 'ms-help-box-badge',\n template: `\n @if (isEnabled()) {\n {{ badgeText() }}\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HelpBoxBadgeComponent {\n boxType = input.required();\n isShown = input(false);\n private hbService = inject(HelpBoxService);\n readonly isEnabled = computed(() => this.isShown() || this.hbService.isHelpBoxEnabled(this.boxType()));\n readonly badgeText = computed(() => this.hbService.getHelpBoxBadgeData(this.boxType()));\n}\n","import { Injectable } from '@angular/core';\n\nimport { Observable, concat, count } from 'rxjs';\n\nimport { BestOddsFixtureLikeInput } from '../models/models';\n\n@Injectable()\nexport abstract class BestOddsGuaranteedService {\n abstract isFixtureEligible(fixture: BestOddsFixtureLikeInput): Observable;\n\n getEligibleFixturesCount(fixtures: BestOddsFixtureLikeInput[]): Observable {\n return concat(...fixtures.map((f) => this.isFixtureEligible(f))).pipe(count((eligible) => eligible));\n }\n}\n","@if (showBadge()) {\n \n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\nimport { switchMap } from 'rxjs';\n\nimport { HelpBoxBadgeComponent } from '../help-box/help-box-badge.component';\nimport { BestOddsFixtureLikeInput } from './models/models';\nimport { BestOddsGuaranteedService } from './services/best-odds-guaranteed.service';\n\n@Component({\n selector: 'ms-race-view-best-odds-badge',\n templateUrl: './race-view-best-odds-badge.html',\n standalone: true,\n imports: [HelpBoxBadgeComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RaceViewBestOddsBadgeComponent {\n fixture = input.required();\n fixture$ = toObservable(this.fixture);\n showBadge = toSignal(this.fixture$.pipe(switchMap((fixture) => this.bestOddsService.isFixtureEligible(fixture))), { requireSync: false });\n\n constructor(private bestOddsService: BestOddsGuaranteedService) {}\n}\n","
\n \n \n \n\n
\n {{ helpBoxData().headerTitle }}\n @if (!disableInfoIcon()) {\n
\n }\n
\n \n \n \n
\n {{ sitecore.globalMessages.Close }}\n
\n
\n
\n\n
\n\n\n\n\n
\n \n
\n
\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output, computed, input } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\n\nimport { ShowInEpcotDirective } from '../common/epcot-config.directive';\nimport { HelpBoxBadgeComponent } from './help-box-badge.component';\nimport { HELP_BOX_TYPE, HelpBoxType } from './help-box-type';\nimport { HelpBoxModel, HelpBoxService } from './help-box.service';\n\n@Component({\n selector: 'ms-help-box',\n templateUrl: './help-box.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [ShowInEpcotDirective, NgTemplateOutlet, TrustPipe, HelpBoxBadgeComponent],\n})\nexport class HelpBoxComponent implements OnInit {\n boxType = input(HELP_BOX_TYPE.BestOddsGuarantee);\n disableInfoIcon = input(false);\n helpBoxData = computed(() => this.hbService.getHelpBoxData(this.boxType()));\n @Output() closeButtonClick = new EventEmitter();\n @Output() infoIconClick = new EventEmitter();\n @Output() initHelpBox = new EventEmitter();\n\n constructor(\n public sitecore: Sitecore,\n private hbService: HelpBoxService,\n ) {}\n\n ngOnInit(): void {\n if (this.boxType() === HELP_BOX_TYPE.LineSwitcher) {\n this.initHelpBox.next();\n }\n }\n\n onCloseButtonClick(): void {\n this.closeButtonClick.next();\n }\n\n onInfoIconClick(): void {\n this.infoIconClick.next();\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { Observable, ReplaySubject, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport enum StakeInputMode {\n Field = 1,\n Typing = 2,\n}\n\nexport abstract class StakeInputModeStrategy {\n abstract get inputMode(): Observable;\n}\n\n@Injectable()\nexport class FieldStakeInputModeStrategy extends StakeInputModeStrategy {\n get inputMode(): Observable {\n return of(StakeInputMode.Field);\n }\n}\n\n@Injectable()\nexport class TypingStakeInputModeStrategy extends StakeInputModeStrategy {\n get inputMode(): Observable {\n return of(StakeInputMode.Typing);\n }\n}\n\n@Injectable()\nexport class DynamicInputModeStrategy extends StakeInputModeStrategy implements OnDestroy {\n private subscription: Subscription;\n private subject$: ReplaySubject = new ReplaySubject();\n\n constructor(private mediaService: MediaQueryService) {\n super();\n\n this.subscription = this.mediaService\n .observe()\n .pipe(\n map(() => (this.mediaService.isActive('gt-md') ? StakeInputMode.Typing : StakeInputMode.Field)),\n distinctUntilChanged(),\n )\n .subscribe(this.subject$);\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n get inputMode(): Observable {\n return this.subject$.asObservable();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Page, WINDOW } from '@frontend/vanilla/core';\n\n// noinspection SpellCheckingInspection\nconst charsets = {\n en: 'ABCDEFGHabcdefghijklmnopqrstuvwxyz',\n el: 'αβγδεζηθικλμνξοπρστυφχψως',\n bg: 'абвгдежзийклмнопрстуфхцчшщъьюя',\n};\n\nconst decimals = '0123456789';\nconst separators = '. ,';\n\n@Injectable({ providedIn: 'root' })\nexport class CharsetSizeService {\n private averageWidth?: number;\n private averageDecimalWidth: { [key: number]: number } = {};\n private averageSeparatorWidth: { [key: number]: number } = {};\n\n private DEFAULT_SIZE = 7.25;\n\n private readonly logger: SportsRemoteLogger;\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private page: Page,\n loggerFactory: LoggerFactory,\n ) {\n this.logger = loggerFactory.getLogger('CharsetSizeService');\n }\n\n /**\n * @whatItDoes Returns the average character width for the current language.\n *\n * @description\n *\n * Returns the average character width for the current language(average width of the alphabet letter).\n * The font size is hardcoded to 14px. The font family is body's font family.\n *\n */\n getAverageSize(): number {\n return (this.averageWidth = this.averageWidth || this.getAverageSizeCurrentCharset());\n }\n\n getAverageDecimalSize(fontSize: number): number {\n return (this.averageDecimalWidth[fontSize] = this.averageDecimalWidth[fontSize] || this.getAverageDecimalSizeCurrentCharset(fontSize));\n }\n\n getAverageSeparatorSize(fontSize: number): number {\n return (this.averageSeparatorWidth[fontSize] = this.averageSeparatorWidth[fontSize] || this.getAverageSeparatorSizeCurrentCharset(fontSize));\n }\n\n private getAverageDecimalSizeCurrentCharset(fontSize: number): number {\n try {\n return this.getSampleCharsetWidth(decimals, fontSize) / decimals.length;\n } catch (e) {\n this.logger.warning(`Failed to compute the averageSize for decimals for fontSize : ${fontSize}`);\n\n return this.DEFAULT_SIZE;\n }\n }\n\n private getAverageSeparatorSizeCurrentCharset(fontSize: number): number {\n try {\n return this.getSampleCharsetWidth(separators, fontSize) / separators.length;\n } catch (e) {\n this.logger.warning(`Failed to compute the averageSize for separators for fontSize : ${fontSize}`);\n\n return this.DEFAULT_SIZE;\n }\n }\n\n private getAverageSizeCurrentCharset(): number {\n try {\n const charset = this.getCharsetForLang(this.page.lang);\n const charsetWidth = this.getSampleCharsetWidth(charset);\n\n return charsetWidth / charset.length;\n } catch (e) {\n this.logger.warning(`Failed to compute the averageSize for lang: '${this.page ? this.page.lang : '?'}'`);\n\n return this.DEFAULT_SIZE;\n }\n }\n\n private getSampleCharsetWidth(charset: string, fontSize: number = 14): number {\n let span: HTMLElement | undefined;\n try {\n const styleDec = this.#window.getComputedStyle(this._doc.body);\n span = this._doc.createElement('span');\n span.innerText = charset;\n span.style.fontSize = `${fontSize}px`;\n span.style.fontFamily = styleDec.fontFamily ? styleDec.fontFamily.replace(/['\"]*/g, '').split(',')[0] : span.style.fontFamily;\n this._doc.body.appendChild(span);\n\n return span.offsetWidth;\n } finally {\n if (span) {\n this._doc.body.removeChild(span);\n }\n }\n }\n\n private mapCharset(lang: string): string {\n switch (lang) {\n case 'bg':\n case 'ru':\n return 'bg';\n case 'el':\n return 'el';\n default:\n return 'en';\n }\n }\n\n private getCharsetForLang(lang: string): string {\n return charsets[this.mapCharset(lang) as keyof typeof charsets];\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { Observable, combineLatest, map, shareReplay } from 'rxjs';\n\nimport { mapEarlyPayoutAcceptance } from '../helpers/early-payout-acceptance';\nimport { isTurnoverTaxApplied } from '../helpers/is-turnovertax-applied';\nimport { EarlyPayoutAcceptance } from '../model/early-payout';\nimport { IConfigSettings, IUserBettingSettings } from '../model/user.models';\n\n/**\n * @whatItDoes Service for managing and accessing sport user settings.\n *\n * @description\n *\n * This service provides observables that supply the user-specific betting and configuration settings. It handles\n * the retrieval of user settings and exposes them in a reactive way.\n *\n * # Note\n *\n * This service should be used in all areas to retrieve user settings, except in the betslip and my-bets modules.\n */\n\n@Injectable({ providedIn: 'root' })\nexport class BettingSettingsService {\n private readonly sportsUserSettings = inject(SportsUserSettings);\n\n get bettingSettings$(): Observable> {\n return this.loadSportsUserSettings$().pipe(map((sportsUserSettings) => sportsUserSettings.bettingSettings));\n }\n\n get configSettings$(): Observable> {\n return this.loadSportsUserSettings$().pipe(map((sportsUserSettings) => sportsUserSettings.configSettings));\n }\n\n get allSettings$(): Observable<{ bettingSettings: Readonly; configSettings: Readonly }> {\n return combineLatest([this.bettingSettings$, this.configSettings$]).pipe(\n map(([bettingSettings, configSettings]) => ({ bettingSettings, configSettings })),\n );\n }\n\n get isTurnoverTaxApplied$(): Observable {\n return this.configSettings$.pipe(map(isTurnoverTaxApplied));\n }\n\n get earlyPayoutAcceptance$(): Observable> {\n return this.bettingSettings$.pipe(map((settings) => mapEarlyPayoutAcceptance(settings)));\n }\n\n private loadSportsUserSettings$(): Observable {\n return this.sportsUserSettings.whenReady.pipe(\n map(() => this.sportsUserSettings),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n }\n}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { createAction, props } from '@ngrx/store';\n\nimport { IUiState } from './ui-manager.state';\nimport { UiStates } from './ui-states.enum';\n\nexport interface IUiManagerStateChangedPayload {\n added: UiStates[];\n removed: UiStates[];\n current: UiStates[];\n}\n\nexport class UiManagerActions {\n private static readonly SET_STATE = '@ui-manager/SET_STATE';\n private static readonly ADD_STATE = '@ui-manager/ADD_STATE';\n private static readonly REMOVE_STATE = '@ui-manager/REMOVE_STATE';\n private static readonly REMOVE_MULTI_STATES = '@ui-manager/REMOVE_MULTI_STATES';\n private static readonly TOGGLE_STATE = '@ui-manager/TOGGLE_STATE';\n private static readonly POPULATE_FROM_STORAGE = '@ui-manager/POPULATE_FROM_STORAGE';\n private static readonly STATE_CHANGED = '@ui-manager/STATE_CHANGED';\n\n /**\n * Set one state.\n */\n static setState = createAction(UiManagerActions.SET_STATE, props<{ state: UiStates }>());\n\n /**\n * Add one ui state.\n */\n static addState = createAction(UiManagerActions.ADD_STATE, props<{ state: UiStates }>());\n\n /**\n * Removes a ui state\n */\n static removeState = createAction(UiManagerActions.REMOVE_STATE, props<{ state: UiStates }>());\n\n /**\n * Removes multiple ui states at once.\n */\n static removeMultiStates = createAction(UiManagerActions.REMOVE_MULTI_STATES, props<{ states: UiStates[] }>());\n\n /**\n * toggle a ui state.\n */\n static toggleState = createAction(UiManagerActions.TOGGLE_STATE, props<{ state: UiStates }>());\n\n /**\n * Populate ui state from saved state.\n */\n static populateFromStorage = createAction(UiManagerActions.POPULATE_FROM_STORAGE, props<{ state: IUiState }>());\n\n /**\n * Fires this action after a change in the UI states, the payload is the diff.\n */\n static stateChanged = createAction(UiManagerActions.STATE_CHANGED, pprops());\n}\n","export enum UiStates {\n Home = 'HOME',\n EditBet = 'EDIT_BET',\n EditBetAddSelection = 'EDIT_BET_ADD_SELECTION',\n EditBetAddStake = 'EDIT_BET_ADD_STAKE',\n EditBetSwapSelection = 'EDIT_BET_SWAP_SELECTION',\n EditBetResult = 'EDIT_BET_RESULT',\n RightColumnVisible = 'RIGHT_COLUMN_VISIBLE',\n QuickBet = 'QUICK_BET',\n QuickBetBuilder = 'QUICK_BET_BUILDER',\n LineSwitcher = 'LINE_SWITCHER',\n OverAsk = 'OVER_ASK',\n SheetViewOpened = 'SHEET_VIEW_OPENED',\n MarketSubTypeTooltipShown = 'MARKET_SUB_TYPE_TOOLTIP_SHOWN',\n}\n\nexport const uiStatesThatShouldBeRestored_NotAuthenticated: UiStates[] = [UiStates.Home, UiStates.QuickBet, UiStates.OverAsk]; // TODO: Move OverAsk to Authenticated states in the final version\nexport const uiStatesThatShouldBeRestored_Authenticated: UiStates[] = [...uiStatesThatShouldBeRestored_NotAuthenticated];\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { DOCUMENT } from '@angular/common';\nimport { Injectable, NgZone, inject } from '@angular/core';\n\nimport { WINDOW } from '@frontend/vanilla/core';\n\nenum ScrollDirection {\n Left = 'Left',\n Right = 'Right',\n Top = 'Top',\n Bottom = 'Bottom',\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SmoothScroll {\n private readonly _doc = inject(DOCUMENT);\n readonly #window = inject(WINDOW);\n\n constructor(private zone: NgZone) {}\n\n private requestAnimationFrameFn: (callback: FrameRequestCallback) => void =\n (this.#window.requestAnimationFrame?.bind(this.#window) as (callback: FrameRequestCallback) => void) || this.fallbackFn;\n\n private fallbackFn(callback: FrameRequestCallback): void {\n callback(0);\n }\n\n scrollLeftTo(el: HTMLElement, target: number, duration: number, forceDuration = false): void {\n this.smoothScrollTo(el, target, duration, ScrollDirection.Left, forceDuration);\n }\n\n scrollTopTo(el: HTMLElement, target: number, duration: number, forceDuration = false): void {\n this.smoothScrollTo(el, target, duration, ScrollDirection.Top, forceDuration);\n }\n\n private smoothScrollTo(element: Element, target: number, duration: number, direction: ScrollDirection, forceDuration: boolean): void {\n if ('scrollBehavior' in this._doc.documentElement.style && !forceDuration) {\n const scrollToOptions: ScrollToOptions = {\n behavior: 'smooth',\n };\n //TODO any index issue, probably a defect, please investigate\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n scrollToOptions[direction.toLowerCase()] = target;\n element.scroll(scrollToOptions);\n } else {\n this.doStepScrolling(element, target, duration, direction);\n }\n }\n\n /* istanbul ignore next */\n private doStepScrolling(element: Element, target: number, duration: number, direction: ScrollDirection): void {\n const scrollElement = element;\n const roundedTarget = Math.round(target);\n const roundedDuration = Math.round(duration);\n const scrollDirection = `scroll${direction}`;\n\n if (duration < 0) {\n return;\n }\n if (duration === 0) {\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n scrollElement[scrollDirection] = roundedTarget;\n return;\n }\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n if (!scrollElement || isNaN(scrollElement[scrollDirection])) {\n return;\n }\n\n const startTime = Date.now();\n const endTime = startTime + roundedDuration;\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n const startPos = scrollElement[scrollDirection] as number;\n const previousPos = startPos;\n const distance = roundedTarget - startPos;\n\n // boostrap the animation process\n this.runRafOutsideZone(() => this.scrollFrame(true, startTime, endTime, startPos, previousPos, scrollElement, distance, scrollDirection));\n }\n\n // This is like a think function from a game loop\n private scrollFrame(\n firstRun: boolean,\n startTime: number,\n endTime: number,\n startPos: number,\n previousPos: number,\n element: Element,\n distance: number,\n scrollDirection: string,\n ): void {\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n if (!firstRun && element && element[scrollDirection] !== previousPos) {\n return;\n }\n\n // firstRun = false;\n // set the scroll value for this frame\n const now = Date.now();\n const point = this.smoothStep(startTime, endTime, now);\n const frameTop = Math.round(startPos + distance * point);\n const scrollElement = element;\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n scrollElement[scrollDirection] = frameTop;\n\n // check if we're done!\n if (now >= endTime) {\n return;\n }\n\n // If we were supposed to scroll but didn't, then we\n // probably hit the limit, so consider it done\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n if (scrollElement[scrollDirection] === previousPos && scrollElement[scrollDirection] !== frameTop) {\n // return;\n }\n //@ts-expect-error allow dynamic accessor, please don't use this, instead, use typing.\n const currentPreviousPos = scrollElement[scrollDirection] as number;\n\n // schedule next frame for execution\n this.runRafOutsideZone(() =>\n this.scrollFrame(false, startTime, endTime, startPos, currentPreviousPos, scrollElement, distance, scrollDirection),\n );\n }\n\n // based on http://en.wikipedia.org/wiki/Smoothstep\n private smoothStep(start: number, end: number, point: number): number {\n if (point <= start) {\n return 0;\n }\n if (point >= end) {\n return 1;\n }\n const x = (point - start) / (end - start); // interpolation\n\n return x * x * (3 - 2 * x);\n }\n\n private runRafOutsideZone(callback: FrameRequestCallback): void {\n this.zone.runOutsideAngular(() => this.requestAnimationFrameFn(callback));\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { Subject, debounceTime } from 'rxjs';\n\n@Component({\n selector: 'ms-dynamic-font-resizer',\n template: '{{value}}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class DynamicFontResizerComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() value: string;\n @Input() defaultSize: number;\n\n @HostBinding('style.font-size.em') fontSize?: number;\n @ViewChild('resizerContainer') private resizerContainer: ElementRef;\n\n private resizeObserver: ResizeObserver;\n private parentResized$: Subject;\n private initialWidth: number;\n private initialFontSize: number;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n this.parentResized$ = new Subject();\n\n this.resizeObserver = new ResizeObserver((entries) => this.handleResize(entries));\n\n this.parentResized$.pipe(debounceTime(10)).subscribe((parent) => this.changeFontSize(parent));\n }\n\n ngOnInit(): void {\n this.fontSize = this.defaultSize;\n }\n\n ngOnDestroy(): void {\n this.resizeObserver.disconnect();\n this.parentResized$.complete();\n }\n\n ngAfterViewInit(): void {\n const nativeTextContent = this.resizerContainer?.nativeElement;\n\n if (!nativeTextContent) {\n return;\n }\n\n const parentElement = nativeTextContent.parentElement?.parentElement;\n\n if (!parentElement) {\n return;\n }\n\n this.resizeObserver.observe(parentElement);\n this.initialFontSize = this.fontSize ?? 0;\n this.initialWidth = this.resizerContainer?.nativeElement.getBoundingClientRect().width;\n }\n\n changeFontSize(parentWidth: number): void {\n const currentFontSize = this.fontSize ?? this.defaultSize;\n const textLength = this.value.length;\n const initialWidth = this.initialWidth;\n const initialFontSize = this.initialFontSize;\n\n const newFontSize = this.calculateFontSizeFromBounds(parentWidth, initialWidth, textLength, initialFontSize, this.defaultSize);\n\n if (newFontSize === currentFontSize) {\n return;\n }\n\n this.fontSize = newFontSize;\n this.changeDetectorRef.markForCheck();\n }\n\n private calculateFontSizeFromBounds(\n parentWidth: number,\n initialWidth: number,\n textLength: number,\n initialFontSize: number,\n defaultFontSize: number,\n ): number {\n const targetFontSize = this.calculateRelationalFontSize(parentWidth, initialWidth, textLength, initialFontSize);\n\n if (Number.isNaN(targetFontSize) || !Number.isFinite(targetFontSize) || targetFontSize > defaultFontSize) {\n return defaultFontSize;\n }\n\n return Math.floor(targetFontSize * 100) / 100;\n }\n\n private calculateRelationalFontSize(targetTextWidth: number, initialTextWidth: number, textLength: number, initialFontSize: number): number {\n // Calculating font size in relation to character width with following formular:\n // targetSpacePerChar : targetFontSize = spacePerChar : currentFontSize\n // targetFontSize = currentFontSize * targetSpacePerChar / spacePerChar\n\n const initialSpacePerChar = initialTextWidth / textLength;\n const targetSpacePerChar = targetTextWidth / textLength;\n\n return (initialFontSize * targetSpacePerChar) / initialSpacePerChar;\n }\n\n private handleResize(entries: ResizeObserverEntry[]): void {\n if (entries.length === 0) {\n return;\n }\n\n const parent = entries[0];\n\n if (!parent) {\n return;\n }\n\n this.parentResized$.next(parent.contentRect.width);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BettingSettingsService, UserService } from '@frontend/sports/user/feature';\nimport { Observable, map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IncrementalStakesService {\n constructor(\n private stakeConfig: StakeConfig,\n private userService: UserService,\n private bettingSettingsService: BettingSettingsService,\n ) {}\n\n getValues$(): Observable {\n return this.bettingSettingsService.bettingSettings$.pipe(\n map((bettingSettings) => {\n if (bettingSettings.keypadIncrementalStakes?.length) {\n return bettingSettings.keypadIncrementalStakes;\n }\n\n return this.getDefaultValues();\n }),\n );\n }\n\n getDefaultValues(): number[] {\n const currency = this.userService.currency.toLowerCase();\n\n return this.stakeConfig.addToStakeValues[currency] || this.stakeConfig.addToStakeValues.default;\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { UserService } from '@frontend/sports/user/feature';\n\nimport { NumpadValidationParams } from './model';\nimport { validationParamsFactory } from './numpad.module';\n\nexport const NUMPAD_VALIDATION_PARAMETERS_TOKEN = new InjectionToken('NUMPAD_VALIDATION_PARAMETERS_TOKEN', {\n providedIn: 'root',\n factory: () => {\n const stakeConfig = inject(StakeConfig);\n const userService = inject(UserService);\n\n return validationParamsFactory(stakeConfig, userService);\n },\n});\n","import { NumberSymbol, getLocaleNumberSymbol } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\n\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\n\nimport { NumpadValidationParams } from './model';\nimport { NUMPAD_VALIDATION_PARAMETERS_TOKEN } from './numpad-validation-parameters';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadUtilsService {\n protected readonly localeSeparator: string;\n protected readonly zeroRegex = new RegExp(`^(0+)(\\\\d+)`);\n protected readonly validateRegex: RegExp;\n protected readonly splitRegex = new RegExp(`^-?(\\\\d*)([.,])?(\\\\d*)$`);\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n @Inject(NUMPAD_VALIDATION_PARAMETERS_TOKEN) private validationParameters: NumpadValidationParams,\n private currency: MoneyService,\n ) {\n this.localeSeparator = getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n\n this.validateRegex = new RegExp(\n `^\\\\d{0,${this.validationParameters.maxLeadingDigits}}([.,](\\\\d{0,${this.validationParameters.maxTrailingDigits}})?)?$`,\n );\n }\n\n isValidInput(input: string): boolean {\n return (this.isSeparator(input) || this.validateRegex.test(input)) && !this.zeroRegex.test(input);\n }\n\n normalizeInput(input: string): string {\n const matches = input.match(this.splitRegex);\n if (!matches || matches.length !== 4 || matches[0] === '') {\n return '';\n }\n\n let output = matches[1];\n\n if (this.zeroRegex.test(output)) {\n output = output.replace(this.zeroRegex, '$2');\n }\n\n if (matches[2]) {\n output += this.localeSeparator;\n }\n\n if (this.isSeparator(output)) {\n output = '0' + this.localeSeparator;\n }\n\n if (matches[3]) {\n output += matches[3].substr(0, this.validationParameters.maxTrailingDigits);\n }\n\n return output;\n }\n\n isSeparator(input: string): boolean {\n return /^[.,]$/.test(input);\n }\n\n hasSeparator(input: string): boolean {\n return !!input && /^\\d*[.,]\\d*$/.test(input);\n }\n\n addLocaleSeparator(input: string): string {\n return (input || '').replace(/[.,]/g, this.localeSeparator);\n }\n\n /**\n * Returns the number string formatted with added decimals if the number is a decimal number or alwaysAddDecimals is true.\n * Returns the unformatted input if it is 0 or an empty string.\n */\n toFormattedValue(input: string, alwaysAddDecimals: boolean = false): string {\n if (!this.isValidNumberString(input)) {\n return input;\n }\n\n input = this.addDecimals(input, alwaysAddDecimals);\n\n return this.addLocaleSeparator(input);\n }\n\n /**\n * Returns the number string formatted with thousands separators.\n * Returns an empty string if the input is 0 or an empty string.\n */\n addThousandsSeparators(input: string): string {\n if (!this.isValidNumberString(input)) {\n return '';\n }\n\n const returnValue = this.currency.transform(input, false, this.validationParameters.maxTrailingDigits);\n\n if (this.hasSeparator(input)) {\n return returnValue;\n }\n\n const replace = `[,.]0{1,${this.validationParameters.maxTrailingDigits}}$`;\n const regex = new RegExp(replace, 'g');\n\n return returnValue.replace(regex, '');\n }\n\n private addDecimals(input: string, alwaysAddDecimals: boolean = false): string {\n if (this.isValidNumberString(input) && (alwaysAddDecimals || this.hasSeparator(input))) {\n return Number(input).toFixed(this.validationParameters.maxTrailingDigits);\n }\n\n return input;\n }\n\n private isValidNumberString(input: string) {\n return input !== '0' && !this.isEmptyOrWhiteSpaceString(input);\n }\n\n private isEmptyOrWhiteSpaceString(input: string) {\n return input.trim() === '';\n }\n}\n","import { NumpadService } from './numpad.service';\n\nexport interface ISelectionProvider {\n getSelection(currentValue: string): { start: number; end: number };\n}\n\nexport interface StakeModel {\n value: string;\n formatted: string;\n currencyFormatted: string;\n isEmpty: boolean;\n numpadInput?: number;\n position?: number;\n}\n\nexport interface NumpadState {\n stake: StakeModel;\n isOpened: boolean;\n selectionStart?: number;\n operation?: NumpadOperation;\n confirmed?: boolean;\n}\n\nexport const defaultNumpadState: NumpadState = {\n isOpened: false,\n stake: {\n formatted: '',\n value: '',\n currencyFormatted: '',\n isEmpty: true,\n numpadInput: undefined,\n position: undefined,\n },\n};\n\nexport interface NumpadHostOptions {\n id: string;\n numpadService: NumpadService;\n}\n\nexport interface KeypadOptions {\n id: string;\n showConfirm: boolean;\n showIncrementalStakes: boolean;\n focusOnLoad: boolean;\n numpadSource: NumpadSource;\n}\n\nexport interface NumpadValidationParams {\n maxLeadingDigits: number;\n maxTrailingDigits: number;\n}\n\nexport enum NumpadSource {\n BetSlip = 'BetSlip',\n QuickBet = 'Quick Bet',\n BettingSettings = 'Betting Setting',\n EditMyBet = 'Edit My Bet',\n AutoCashout = '',\n}\n\nexport enum NumpadOperation {\n Open,\n Close,\n Append,\n Increment,\n Remove,\n Type,\n}\n\nexport enum NumpadAction {\n None,\n IncrementalStakeUsed,\n KeypadUsed,\n KeypadTyped,\n}\n\nexport interface StakeChangedEvent {\n action: NumpadAction;\n stake: string;\n}\n\nexport enum Tracking {\n Betting = 'Betting',\n NotApplicable = 'not applicable',\n Opening = 'In-Line KeyPad - Loaded',\n Confirmation = 'OK Button - Clicked',\n Delete = 'Delete Button - Clicked',\n}\n","import { Injectable } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { Observable, Subject } from 'rxjs';\n\nimport { NumpadHostOptions } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadDisplayService {\n private _open = new Subject();\n private _close = new Subject();\n private _isOpen = false;\n private _openedNumpad: Nullable = null;\n\n get open$(): Observable {\n return this._open.asObservable();\n }\n\n get close$(): Observable {\n return this._close.asObservable();\n }\n\n open(options: NumpadHostOptions): void {\n this._openedNumpad = options.id;\n this._isOpen = true;\n\n this._open.next(options);\n }\n\n close(): void {\n if (!this._isOpen) {\n return;\n }\n\n this._openedNumpad = null;\n this._isOpen = false;\n\n this._close.next();\n }\n\n isOpen(id?: string): boolean {\n if (!id) {\n return this._isOpen;\n }\n\n return this._isOpen && id === this._openedNumpad;\n }\n\n tryClose(id: string): void {\n if (this.isOpen(id)) {\n this.close();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { NumpadAction, StakeModel, Tracking } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n getBaseTrackData(): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Betting',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'In-Line KeyPad',\n [trackingConstants.COMPONENT_POSITION_EVENT]: 'In-Line',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: Tracking.NotApplicable,\n [trackingConstants.COMPONENT_URL_CLICKED]: Tracking.NotApplicable,\n };\n }\n\n trackOpening(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Opening,\n });\n }\n\n trackConfirmation(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Confirmation,\n });\n }\n\n trackDeleteButton(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Delete,\n });\n }\n\n trackIncrement(stake: StakeModel, location: string): void {\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Betting',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'In-Line KeyPad',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: 'Fixed value button',\n [trackingConstants.COMPONENT_CONTENT_POSITION]: stake.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: stake.numpadInput?.toString(),\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n this.track(trackingData);\n }\n\n getStakeSelectedData(location: string, stake: Optional, action: Optional): Partial {\n return {\n ...this.getBaseTrackData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Stake Selected',\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.mapAction(action),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: stake || '',\n };\n }\n\n mapAction(action: Optional): string {\n let result = 'Default stake';\n\n switch (action) {\n case NumpadAction.IncrementalStakeUsed:\n result = 'Incremental Stake Quick Stake';\n break;\n case NumpadAction.KeypadTyped:\n result = 'Keyboard typed';\n break;\n case NumpadAction.KeypadUsed:\n result = 'Keypad';\n break;\n }\n\n return result;\n }\n\n private track(additionalTrackData: Partial): void {\n const fullTrackData = { ...this.getBaseTrackData(), ...additionalTrackData };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, fullTrackData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Decimal } from 'decimal.js';\n\nimport { NumpadUtilsService } from './numpad-utils.service';\n\n@Injectable({ providedIn: 'root' })\nexport class StakeUpdateService {\n constructor(private utils: NumpadUtilsService) {}\n\n increment(currentValue: string, value: number): string {\n return new Decimal(currentValue || 0).add(value).toString();\n }\n\n remove(value: string, start: number, end: number): { value: string; position: number } {\n if (value.length === 0 || (start === 0 && end === 0)) {\n return {\n value,\n position: 0,\n };\n }\n\n const moreCharactersSelected = start !== end;\n const position = moreCharactersSelected ? start : start ? start - 1 : 0;\n\n const newValue = this.slice(value, position, end);\n\n return {\n value: newValue,\n position,\n };\n }\n\n append(value: string, character: string, start: number, end: number): { value: string; position: number } {\n let newValue = this.slice(value, start, end, character);\n\n if (!this.utils.isValidInput(newValue)) {\n return {\n value,\n position: start,\n };\n }\n\n newValue = this.utils.normalizeInput(newValue);\n\n const allCharactersSelected = end - start === value.length;\n const position = !value.length || allCharactersSelected ? newValue.length : start + 1;\n\n return {\n value: newValue,\n position,\n };\n }\n\n private slice(value: string, start: number, end: number, character?: string): string {\n character = character || '';\n\n return value.slice(0, start) + character + value.slice(end);\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { Injectable, OnDestroy } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { Store } from '@ngrx/store';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject, merge } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport {\n ISelectionProvider,\n KeypadOptions,\n NumpadAction,\n NumpadHostOptions,\n NumpadOperation,\n NumpadState,\n StakeChangedEvent,\n StakeModel,\n defaultNumpadState,\n} from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadTrackingService } from './numpad-tracking.service';\nimport { NumpadUtilsService } from './numpad-utils.service';\nimport { StakeUpdateService } from './stake-update.service';\n\n@Injectable()\nexport class NumpadService implements OnDestroy {\n private serviceDestroyed$ = new Subject();\n private state = new BehaviorSubject(cloneDeep(defaultNumpadState));\n private stake = new Subject();\n private selectionProvider: ISelectionProvider;\n private stakeValues: number[] = [];\n\n keypadOptions: KeypadOptions;\n\n constructor(\n private numpadDisplayService: NumpadDisplayService,\n private updateService: StakeUpdateService,\n private utils: NumpadUtilsService,\n private numpadTrackingService: NumpadTrackingService,\n //todo please remove this pipe, it is out of place.\n private currencypipe: CurrencyPipe,\n private store: Store,\n ) {}\n\n ngOnDestroy(): void {\n this.serviceDestroyed$.next();\n this.serviceDestroyed$.complete();\n }\n\n get state$(): Observable {\n return this.state.asObservable();\n }\n\n get stake$(): Observable {\n return this.stake.asObservable();\n }\n\n get currentState(): NumpadState {\n return this.state.value;\n }\n\n registerSelectionProvider(selectionProvider: ISelectionProvider): void {\n this.selectionProvider = selectionProvider;\n }\n\n confirm(): void {\n if (this.isDynamicNumpad) {\n this.currentState.confirmed = true;\n\n this.numpadDisplayService.close();\n }\n }\n\n open(): void {\n if (this.currentState.isOpened) {\n return;\n }\n\n this.openNumpad();\n }\n\n private shouldSkipUpdate(newValue: Nullable): boolean {\n return Number(this.currentState.stake.value) === Number(newValue || '');\n }\n\n updateStake(value: Nullable, skipNumberCheck?: boolean): void {\n if (!skipNumberCheck && this.shouldSkipUpdate(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value!),\n };\n this.updateState(state);\n }\n\n initialize(value: Nullable, options: KeypadOptions, stakeValues: number[]): void {\n this.keypadOptions = options;\n this.stakeValues = stakeValues;\n\n const state: Partial = {\n stake: this.toStakeModel(value!),\n isOpened: this.keypadOptions.focusOnLoad,\n };\n this.updateState(state);\n\n if (this.isDynamicNumpad) {\n this.subscribe();\n }\n }\n\n type(input: string): void {\n const value = this.utils.normalizeInput(input);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Type),\n operation: NumpadOperation.Type,\n };\n this.updateState(state, true);\n }\n\n appendCharacter(character: string): void {\n if (!this.selectionProvider) {\n return;\n }\n\n const currentValue = this.currentState.stake.formatted;\n const { start, end } = this.selectionProvider.getSelection(currentValue);\n const { value, position } = this.updateService.append(currentValue, character, start, end);\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Append),\n selectionStart: position,\n operation: NumpadOperation.Append,\n };\n\n const emitNewStake = value !== this.currentState.stake.formatted;\n this.updateState(state, emitNewStake);\n }\n\n increment(input: number): void {\n const value = this.updateService.increment(this.currentState.stake.value, input);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Increment, input),\n operation: NumpadOperation.Increment,\n };\n this.updateState(state, true);\n }\n\n removeLastCharacter(): void {\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n\n if (!this.selectionProvider) {\n return;\n }\n\n const currentValue = this.currentState.stake.formatted;\n const { start, end } = this.selectionProvider.getSelection(currentValue);\n const { value, position } = this.updateService.remove(currentValue, start, end);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Remove),\n selectionStart: position,\n operation: NumpadOperation.Remove,\n };\n this.updateState(state, true);\n }\n\n private get isDynamicNumpad(): boolean {\n return !!this.keypadOptions.id;\n }\n\n private shouldUpdateStake(value: string): boolean {\n return this.utils.isValidInput(value) && value !== this.currentState.stake.formatted;\n }\n\n private subscribe(): void {\n const onOtherNumpadOpen = this.numpadDisplayService.open$.pipe(filter((options) => this.otherNumpadWasOpened(options)));\n\n merge(this.numpadDisplayService.close$, onOtherNumpadOpen)\n .pipe(\n filter(() => this.currentState.isOpened),\n takeUntil(this.serviceDestroyed$),\n )\n .subscribe(() => this.closeNumpad());\n }\n\n private otherNumpadWasOpened(options: NumpadHostOptions): boolean {\n return this.keypadOptions.id !== options.id || this !== options.numpadService;\n }\n\n private openNumpad(): void {\n this.numpadDisplayService.open({\n id: this.keypadOptions.id,\n numpadService: this,\n });\n\n const state: Partial = {\n stake: this.toStakeModel(this.currentState.stake.value, NumpadOperation.Open),\n isOpened: true,\n confirmed: false,\n operation: NumpadOperation.Open,\n };\n this.updateState(state);\n }\n\n private closeNumpad(): void {\n const state: Partial = {\n stake: this.toStakeModel(this.currentState.stake.value),\n isOpened: false,\n operation: NumpadOperation.Close,\n };\n\n if (state.stake && state.stake.value + '0' === state.stake.formatted) {\n state.stake.value = state.stake.formatted;\n\n this.updateState(state, true);\n }\n this.updateState(state);\n }\n\n private toStakeModel(input: string, operation?: NumpadOperation, numpadInput?: number): StakeModel {\n //TODO formatted vs currencyFormatted ? no clear separation of usage. please justify or at least add some comments.\n // Ideally currencyFormatted should be removed, espiceally if the end goal is using currency pipe, let your view handle it. Don't delegate this to the service.\n // Also currency pipe is encapsulating this part of the logic, and it should remain this way.\n let formatted = '';\n let currencyFormatted = '';\n let isEmpty: boolean;\n let position: number | undefined;\n\n const value = (input || '').replace(',', '.');\n switch (operation) {\n case NumpadOperation.Append:\n case NumpadOperation.Remove:\n case NumpadOperation.Type:\n case NumpadOperation.Increment:\n formatted = currencyFormatted = this.utils.addLocaleSeparator(value);\n isEmpty = this.isZero(value) && value.length === 0;\n position = this.stakeValues.indexOf(numpadInput!) !== -1 ? this.stakeValues.indexOf(numpadInput!) + 1 : undefined;\n break;\n case NumpadOperation.Open:\n formatted = currencyFormatted = this.utils.toFormattedValue(value);\n isEmpty = this.isZero(value) && value.length === 0;\n break;\n default:\n const preFormatted = this.utils.toFormattedValue(value, true);\n formatted = this.utils.addThousandsSeparators(preFormatted);\n //TODO I doubt that the operation have an influence on the transformation on display.\n currencyFormatted = this.currencypipe.transform(value) || '';\n isEmpty = this.isZero(value);\n }\n\n return {\n value,\n formatted,\n currencyFormatted,\n isEmpty,\n numpadInput,\n position,\n };\n }\n\n private updateState(newState: Partial, emitNewStake: boolean = false): void {\n delete this.currentState.selectionStart;\n delete this.currentState.operation;\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n\n this.state.next({\n ...this.currentState,\n ...newState,\n });\n\n if (emitNewStake) {\n this.stake.next({\n stake: this.currentState.stake.value,\n action: this.mapToAction(this.currentState.operation),\n });\n }\n\n this.track(this.currentState);\n }\n\n private mapToAction(operation: NumpadOperation | undefined): NumpadAction {\n if (operation === NumpadOperation.Type) {\n return NumpadAction.KeypadTyped;\n }\n\n if (operation === NumpadOperation.Increment) {\n return NumpadAction.IncrementalStakeUsed;\n }\n\n if (operation === NumpadOperation.Append || operation === NumpadOperation.Remove) {\n return NumpadAction.KeypadUsed;\n }\n\n return NumpadAction.None;\n }\n\n private track(state: NumpadState): void {\n const trackingSource = this.keypadOptions?.numpadSource;\n\n if (!trackingSource) {\n return;\n }\n\n if (state.operation === NumpadOperation.Close && state.confirmed) {\n this.numpadTrackingService.trackConfirmation(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Remove) {\n this.numpadTrackingService.trackDeleteButton(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Open) {\n this.numpadTrackingService.trackOpening(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Increment) {\n this.numpadTrackingService.trackIncrement(state.stake, trackingSource);\n }\n }\n\n private isZero(value: Nullable): boolean {\n return Number(value) === 0;\n }\n}\n","
\n @for (stake of stakeValues(); track stake) {\n \n }\n
\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { map } from 'rxjs/operators';\n\nimport { IncrementalStakesService } from './incremental-stakes.service';\nimport { NumpadUtilsService } from './numpad-utils.service';\nimport { NumpadService } from './numpad.service';\n\ninterface StakeModel {\n value: number;\n title: string;\n}\n\n@Component({\n selector: 'ms-incremental-stakes',\n templateUrl: './incremental-stakes.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IncrementalStakesComponent {\n private stakeValues$ = this.incrementalStakesService.getValues$().pipe(map((values) => values.map((v) => this.mapValue(v))));\n stakeValues = toSignal(this.stakeValues$, { initialValue: [] });\n\n constructor(\n private incrementalStakesService: IncrementalStakesService,\n private numpadService: NumpadService,\n private utils: NumpadUtilsService,\n ) {}\n\n addToStake(stakeToAdd: number): void {\n this.numpadService.increment(stakeToAdd);\n }\n\n private mapValue(value: number): StakeModel {\n return {\n value,\n title: `+${this.utils.toFormattedValue(String(value))}`,\n };\n }\n}\n","
\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { Optional, isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\n\nimport { StakeValidationResult } from '../betslip-base/stake-validation/stake-validation.models';\n\n@Component({\n selector: 'ms-numpad-error',\n templateUrl: './numpad-error.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadErrorComponent implements OnChanges {\n @Input() error: Optional;\n\n message: SafeHtml | null = null;\n\n @HostBinding('class.clickable') get clickable(): boolean {\n return !!(this.error && isDefined(this.error.callback));\n }\n\n constructor(private trustPipe: TrustPipe) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.message = this.error ? this.trustAsHtml(this.error.message) : null;\n }\n\n onClick(): void {\n if (this.error && this.error.callback) {\n this.error.callback();\n }\n }\n\n private trustAsHtml(message: any): SafeHtml {\n return this.trustPipe.transform(message, 'html');\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\n@Injectable()\nexport class NumpadScrollService {\n closingNumpadRef: Nullable = null;\n\n getClosingNumpadRect(): ClientRect | null {\n return this.closingNumpadRef && this.closingNumpadRef.nativeElement.getBoundingClientRect();\n }\n}\n","
\n \n \n
\n","import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-numpad',\n templateUrl: './numpad.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadComponent {\n constructor(public numpadService: NumpadService) {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","
\n \n \n
\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\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 { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { StakeValidationResult } from '../betslip-base/stake-validation/stake-validation.models';\nimport { NumpadHostOptions } from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadScrollService } from './numpad-scroll.service';\nimport { NumpadComponent } from './numpad.component';\nimport { NumpadService } from './numpad.service';\n\nexport class NumpadAnimationConfig {\n static maxHeight = 165;\n static duration = 300;\n}\n\n@Component({\n selector: 'ms-numpad-host',\n templateUrl: './numpad-host.html',\n animations: [\n trigger('slideInOut', [\n state(\n 'in',\n style({\n 'max-height': `${NumpadAnimationConfig.maxHeight}px`,\n 'opacity': 1,\n }),\n ),\n state(\n 'out',\n style({\n 'max-height': 0,\n 'opacity': 0,\n }),\n ),\n transition('* => *', animate(`${NumpadAnimationConfig.duration}ms ease-in-out`)),\n ]),\n ],\n providers: [NumpadScrollService],\n})\nexport class NumpadHostComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() error: Nullable;\n\n @ViewChild('numpadhost', { read: ViewContainerRef, static: true })\n private host: ViewContainerRef;\n\n opened = false;\n private removeAfterTransition = false;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private injector: Injector,\n private displayService: NumpadDisplayService,\n private changeDetector: ChangeDetectorRef,\n private scrollService: NumpadScrollService,\n public elementRef: ElementRef,\n ) {}\n\n ngOnInit(): void {\n this.displayService.open$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((options) => this.closeOrOpen(options));\n this.displayService.close$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.closeNumpad());\n }\n\n ngOnDestroy(): void {\n if (this.opened) {\n this.cleanHost();\n\n // Inform display service about destroying and closing keypad\n this.displayService.close();\n }\n }\n\n onTransitionEnd(): void {\n if (!this.removeAfterTransition) {\n return;\n }\n\n this.removeAfterTransition = false;\n this.scrollService.closingNumpadRef = null;\n\n if (this.opened) {\n return;\n }\n\n this.cleanHost();\n }\n\n private cleanHost(): void {\n this.host.remove();\n }\n\n private closeOrOpen(options: NumpadHostOptions): void {\n if (this.id === options.id) {\n if (this.opened) {\n this.cleanHost();\n }\n\n this.createNumpad(options.numpadService);\n } else {\n this.closeNumpad();\n }\n }\n\n private createNumpad(numpadService: NumpadService): void {\n this.createComponent(numpadService);\n\n this.opened = true;\n this.changeDetector.markForCheck();\n }\n\n private createComponent(numpadService: NumpadService): void {\n // When opening and closing the numpad quickly the numpad creation can happen before\n // the old numpad component is removed (onTransitionEnd).\n // This check ensurres that the previous numpad is definitely removed.\n if (this.host.length > 0) {\n this.cleanHost();\n }\n\n this.host.createComponent(NumpadComponent, { index: 0, injector: this.createCustomInjector(numpadService) });\n }\n\n private closeNumpad(): void {\n if (!this.opened) {\n return;\n }\n\n this.scrollService.closingNumpadRef = this.elementRef;\n this.opened = false;\n this.removeAfterTransition = true;\n this.changeDetector.markForCheck();\n setTimeout(this.onTransitionEnd.bind(this), NumpadAnimationConfig.duration);\n }\n\n private createCustomInjector(numpadService: NumpadService): Injector {\n return Injector.create({\n providers: [{ provide: NumpadService, useValue: numpadService }],\n parent: this.injector,\n });\n }\n}\n","
\n \n \n \n \n \n \n \n @if (numpadService.keypadOptions.showConfirm) {\n \n }\n
\n","import { NumberSymbol, getLocaleNumberSymbol } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, LOCALE_ID } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-numpad-keys',\n templateUrl: './numpad-keys.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadKeysComponent {\n readonly separator: string;\n\n constructor(\n public sitecore: Sitecore,\n public numpadService: NumpadService,\n @Inject(LOCALE_ID) locale: string,\n ) {\n this.separator = getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n }\n\n tap(key: string): void {\n this.numpadService.appendCharacter(key);\n }\n\n remove(): void {\n this.numpadService.removeLastCharacter();\n }\n\n ok(): void {\n this.numpadService.confirm();\n }\n}\n","import { DestroyRef, Directive, Input, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SmoothScroll } from '@frontend/sports/common/core/feature/smooth-scroll';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { WINDOW } from '@frontend/vanilla/core';\n\nimport { NumpadHostOptions } from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadAnimationConfig, NumpadHostComponent } from './numpad-host.component';\nimport { NumpadScrollService } from './numpad-scroll.service';\n\n@Directive({\n selector: '[msNumpadScroll]',\n})\nexport class NumpadScrollDirective implements OnInit {\n @Input('msNumpadScroll') scrollEnabled = true;\n\n private currentNumpadRect: Nullable = null;\n private closingNumpadRect: Nullable = null;\n private scrollContainerRect: Nullable = null;\n private pickRect: Nullable = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private numpadHostComponent: NumpadHostComponent,\n private numpadDisplayService: NumpadDisplayService,\n private numpadScrollService: NumpadScrollService,\n private scrollContainerService: ScrollContainerService,\n private smoothScrollService: SmoothScroll,\n ) {}\n\n ngOnInit(): void {\n if (!this.scrollEnabled) {\n return;\n }\n this.numpadDisplayService.open$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((options: NumpadHostOptions) => {\n if (this.numpadHostComponent.id === options.id) {\n this.scrollIntoView();\n }\n });\n }\n\n private scrollIntoView(): void {\n this.initRects();\n if (this.shouldScrollDown()) {\n this.scrollDown();\n }\n\n if (this.shouldScrollUp()) {\n this.scrollUp();\n }\n }\n\n private initRects(): void {\n this.currentNumpadRect = this.numpadHostComponent.elementRef.nativeElement.getBoundingClientRect();\n this.closingNumpadRect = this.numpadScrollService.getClosingNumpadRect();\n this.scrollContainerRect = this.scrollContainerService.container.getBoundingClientRect();\n const pickElement = this.numpadHostComponent.elementRef.nativeElement.parentElement;\n this.pickRect = pickElement.getBoundingClientRect();\n }\n\n private shouldScrollDown(): boolean {\n return this.deltaDown > 0;\n }\n\n private scrollDown(): void {\n setTimeout(() => {\n this.scrollTo(this.deltaY);\n }, 200);\n }\n\n private shouldScrollUp(): boolean {\n return this.deltaUp > 0;\n }\n\n private scrollUp(): void {\n setTimeout(() => {\n this.scrollTo(-this.deltaY);\n }, 200);\n }\n\n private scrollTo(delta: number): void {\n this.smoothScrollService.scrollTopTo(this.scrollContainerService.container, this.scrollContainerService.container.scrollTop + delta, 150);\n }\n\n get deltaY(): number {\n if (this.shouldScrollUp()) {\n return this.deltaUp;\n }\n if (this.shouldScrollDown()) {\n return this.deltaDown;\n }\n\n return 0;\n }\n\n private get closingNumpadHeight(): number {\n return this.closingNumpadRect!.height;\n }\n\n private get openingNumpadHeight(): number {\n return NumpadAnimationConfig.maxHeight;\n }\n\n get deltaDown(): number {\n const windowOverflow = this.scrollContainerRect!.bottom - this.#window.innerHeight;\n let delta = this.currentNumpadRect!.top - this.scrollContainerRect!.bottom + this.openingNumpadHeight;\n if (windowOverflow > 0) {\n delta += windowOverflow;\n }\n if (!this.isClosingNumpadAbove) {\n return delta;\n }\n\n return delta - this.closingNumpadHeight;\n }\n\n private get deltaUp(): number {\n const delta = this.scrollContainerRect!.top - this.pickRect!.top;\n if (!this.isClosingNumpadAbove) {\n return delta;\n }\n\n return delta + this.closingNumpadHeight;\n }\n\n private get isClosingNumpadAbove(): boolean {\n return !!this.closingNumpadRect && this.closingNumpadRect.top < this.currentNumpadRect!.top;\n }\n\n readonly #window = inject(WINDOW);\n}\n","import { createAction, props } from '@ngrx/store';\n\nexport default class NumpadActions {\n static readonly ACTION_SCHEMA = `@numpad`;\n\n private static readonly NUMPAD_FOCUS = `${NumpadActions.ACTION_SCHEMA}/NUMPAD_FOCUS`;\n\n static numpadFocus = createAction(NumpadActions.NUMPAD_FOCUS, props<{ numpadFocus: boolean }>());\n}\n","import { Injectable } from '@angular/core';\n\nimport { CurrencyConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { ISelectionProvider, NumpadOperation, NumpadState } from './model';\nimport { NumpadService } from './numpad.service';\nimport NumpadActions from './store/actions';\n\n@Injectable()\nexport class NumpadInputConnector implements ISelectionProvider {\n private focused: boolean;\n private timeout?: () => void;\n private stateChangeSub?: Subscription;\n input: HTMLInputElement;\n\n constructor(\n private numpadService: NumpadService,\n private timerService: TimerService,\n private currencyConfig: CurrencyConfig,\n private store: Store,\n ) {}\n\n init(input: HTMLInputElement) {\n this.input = input;\n this.numpadService.registerSelectionProvider(this);\n this.stateChangeSub = this.numpadService.state$.subscribe((state) => this.stateChange(state));\n }\n\n deInit() {\n this.cleanTimeout();\n this.stateChangeSub?.unsubscribe();\n }\n\n getSelection(currentValue: string): { start: number; end: number } {\n const length = currentValue.length;\n if (!this.focused) {\n return {\n start: length,\n end: length,\n };\n }\n\n return {\n start: this.input.selectionStart !== null ? this.input.selectionStart : length,\n end: this.input.selectionEnd !== null ? this.input.selectionEnd : length,\n };\n }\n\n clearFocus(): void {\n this.timeout = this.timerService.setTimeoutOutsideAngular(() => {\n this.focused = false;\n this.store.dispatch(NumpadActions.numpadFocus({ numpadFocus: false }));\n }, 200);\n }\n\n focus(): void {\n this.cleanTimeout();\n this.focused = true;\n this.store.dispatch(NumpadActions.numpadFocus({ numpadFocus: true }));\n\n this.numpadService.open();\n }\n\n private cleanTimeout(): void {\n if (!this.timeout) {\n return;\n }\n this.timeout();\n delete this.timeout;\n }\n\n private stateChange(state: NumpadState): void {\n this.input.value = state.stake.isEmpty ? '' : this.currencyConfig.showStakeCurrency ? state.stake.currencyFormatted : state.stake.formatted;\n\n if (state.operation === NumpadOperation.Open) {\n this.input.select();\n this.focusInput();\n }\n\n if (this.focused && state.isOpened && isDefined(state.selectionStart)) {\n this.focusInput(state.selectionStart);\n }\n }\n\n private focusInput(position?: number): void {\n this.timerService.setTimeoutOutsideAngular(() => {\n if (position) {\n this.input.setSelectionRange(position, position);\n }\n\n this.input.focus();\n });\n }\n}\n","@if (this.numpadService.state$ | async; as state) {\n
\n \n @if (adornmentStart) {\n {{ adornmentStart }}\n }\n
\n @if (useStakeFieldCursor) {\n \n } @else {\n \n {{ getStake(state) }}\n \n }\n
\n
\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { CurrencyConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport { ISelectionProvider, NumpadOperation, NumpadState } from './model';\nimport { NumpadInputConnector } from './numpad-input-connector';\nimport { NumpadService } from './numpad.service';\nimport { INumpadRootState } from './store/numpad.state';\n\n@Component({\n selector: 'ms-stake-field',\n templateUrl: './stake-field.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./stake-field.component.scss'],\n providers: [NumpadInputConnector],\n})\nexport class StakeFieldComponent implements AfterViewInit, OnDestroy, ISelectionProvider {\n @Input() disabled = false;\n @Input() emptyCharacter: string;\n @Input() useStakeFieldCursor = false;\n @Input() adornmentStart?: string;\n @ViewChild('inputRef') inputRef?: ElementRef;\n selected = false;\n isEpcotEnabled: boolean;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public numpadService: NumpadService,\n private currencyConfig: CurrencyConfig,\n private store: Store,\n private epcotConfigService: EpcotConfigService,\n private numpadInputConnector: NumpadInputConnector,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n @HostListener('click', ['$event'])\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n }\n\n ngAfterViewInit(): void {\n if (this.useStakeFieldCursor && this.inputElement) {\n this.numpadInputConnector.init(this.inputElement);\n return;\n }\n\n this.numpadService.registerSelectionProvider(this);\n this.numpadService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => this.stateChange(state));\n }\n\n onClick(): void {\n if (this.useStakeFieldCursor) {\n this.numpadInputConnector.focus();\n return;\n }\n\n if (this.numpadService.currentState.isOpened) {\n this.toggleSelected();\n } else {\n this.numpadService.open();\n }\n }\n\n private stateChange(state: NumpadState): void {\n if (state.operation === NumpadOperation.Open) {\n this.setSelected();\n return;\n }\n\n this.setDeselected();\n }\n\n private toggleSelected(): void {\n if (this.selected) {\n this.setDeselected();\n\n return;\n }\n\n this.setSelected();\n }\n\n private setSelected(): void {\n if (this.numpadService.currentState.stake.isEmpty) {\n return;\n }\n\n this.selected = true;\n }\n\n private setDeselected(): void {\n this.selected = false;\n }\n\n getSelection(currentValue: string): { start: number; end: number } {\n return {\n start: this.selected ? 0 : currentValue.length,\n end: currentValue.length,\n };\n }\n\n getStake(state: NumpadState): string {\n return state.stake.isEmpty\n ? this.emptyCharacter\n : this.currencyConfig.showStakeCurrency\n ? state.stake.currencyFormatted\n : state.stake.formatted;\n }\n\n onBlur(): void {\n this.numpadInputConnector.clearFocus();\n }\n\n onFocus(): void {\n this.numpadInputConnector.focus();\n }\n\n ngOnDestroy(): void {\n this.numpadInputConnector.deInit();\n }\n\n private get inputElement(): HTMLInputElement {\n return this.inputRef?.nativeElement;\n }\n}\n","import { AfterViewInit, DestroyRef, Directive, ElementRef, Input, Renderer2, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { delay, map } from 'rxjs/operators';\n\nimport { CharsetSizeService } from '../common/charset-size.service';\nimport { NumpadService } from './numpad.service';\nimport { StakeInputMode } from './stake-input-mode.strategy';\n\n@Directive({\n selector: '[msStakeFontResizer]',\n})\nexport class StakeFontResizerDirective implements AfterViewInit {\n // hardcoded styling values, change when stake styling changes\n private readonly constants = {\n stakeFieldSelector: '.stake-field-container',\n stakeInputSelector: '.stake-input-value',\n stakeLeftPadding: { withError: 14, withOutError: 5 },\n minimumFontSize: 11,\n minimumPaddingSize: 1,\n\n // magic numbers to make sure the size is always small enough\n resizedFontReducer: 1,\n resizedPaddingReducer: 2,\n };\n\n private containerWidth: number;\n\n /* eslint-disable-next-line @angular-eslint/no-input-rename */\n @Input('msStakeFontResizer') resizerOptions: {\n inputMode: StakeInputMode;\n hasError: boolean;\n };\n\n private childElement: HTMLElement;\n private defaultRightPadding: number;\n private defaultFont: number;\n private isInput: boolean;\n private readonly destroyRef = inject(DestroyRef);\n readonly #window = inject(WINDOW);\n\n constructor(\n private stakeElement: ElementRef,\n private numpadService: NumpadService,\n private renderer: Renderer2,\n private charsetService: CharsetSizeService,\n ) {}\n\n ngAfterViewInit(): void {\n this.numpadService.state$\n .pipe(\n map((state) => state.stake),\n delay(20),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((stake) => this.stateChange(stake.formatted));\n }\n\n private stateChange(stake: string): void {\n if (!this.valuesLoaded) {\n this.loadValues();\n }\n\n if (this.valuesLoaded) {\n this.reduceSize(stake);\n }\n }\n\n private reduceSize(stake: string): void {\n if (this.hasOverflow(stake)) {\n const ratio = this.spaceAvailable / this.spaceNeeded(stake);\n\n const newFont = Math.max(\n this.constants.minimumFontSize,\n Math.min(this.defaultFont, this.defaultFont * ratio - this.constants.resizedFontReducer),\n );\n\n const newPadding = Math.max(\n this.constants.minimumPaddingSize,\n Math.min(this.defaultRightPadding, Math.floor(this.defaultRightPadding * ratio - this.constants.resizedPaddingReducer)),\n );\n\n this.setStyle(newFont, newPadding);\n } else {\n this.setStyle(this.defaultFont, this.defaultRightPadding);\n }\n }\n\n private loadValues(): void {\n this.isInput = this.resizerOptions.inputMode === StakeInputMode.Typing;\n this.childElement = this.stakeElement.nativeElement.querySelector(\n this.isInput ? this.constants.stakeInputSelector : this.constants.stakeFieldSelector,\n );\n\n const style = this.#window.getComputedStyle(this.childElement);\n\n // only set default values, when field is visible (in EditMybet & AutoCashout stake is first hidden)\n if (!style.width.includes('px')) {\n return;\n }\n\n this.containerWidth = parseFloat(style.width);\n this.defaultFont = parseFloat(style.fontSize);\n this.defaultRightPadding = parseFloat(style.paddingRight || '0');\n }\n\n private setStyle(fontSize: number, paddingSize: number): void {\n this.renderer.setAttribute(this.childElement, 'style', `font-size: ${fontSize}px; padding-right: ${paddingSize}px;`);\n }\n\n private hasOverflow(stake: string): boolean {\n return this.isInput ? this.spaceNeeded(stake) >= this.spaceAvailable : this.spaceNeeded(stake) > this.spaceAvailable;\n }\n\n private spaceNeeded(stake: string): number {\n const decimalCount = (stake.match(/\\d/g) || []).length;\n const separatorCount = stake.length - decimalCount;\n const averageDecimalWidth = this.charsetService.getAverageDecimalSize(this.defaultFont) + 0.1;\n const averageSeparatorWidth = this.charsetService.getAverageSeparatorSize(this.defaultFont);\n\n return decimalCount * averageDecimalWidth + separatorCount * averageSeparatorWidth + this.defaultRightPadding + this.leftPadding;\n }\n\n private get spaceAvailable(): number {\n return this.containerWidth;\n }\n\n private get leftPadding(): number {\n return this.resizerOptions.hasError ? this.constants.stakeLeftPadding.withError : this.constants.stakeLeftPadding.withOutError;\n }\n\n private get valuesLoaded(): boolean {\n return !!this.childElement && !!this.defaultFont && !!this.defaultRightPadding && !!this.containerWidth;\n }\n}\n","
\n \n @if (adornmentStart) {\n {{ adornmentStart }}\n }\n \n
\n","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport { NumpadInputConnector } from './numpad-input-connector';\nimport { NumpadService } from './numpad.service';\nimport { INumpadRootState } from './store/numpad.state';\n\nexport enum StakeInputBehavior {\n TypingAndNumpad,\n OnlyTyping,\n}\n\n@Component({\n selector: 'ms-stake-input',\n templateUrl: './stake-input.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./stake-input.component.scss'],\n providers: [NumpadInputConnector],\n})\nexport class StakeInputComponent implements OnInit, OnDestroy {\n @Input() disabled: boolean;\n @Input() emptyCharacter: string;\n @Input() adornmentStart?: string;\n @Input() behavior = StakeInputBehavior.TypingAndNumpad;\n\n @ViewChild('inputRef', { static: true }) inputRef: ElementRef;\n\n isEpcotEnabled: boolean;\n\n private get stakeElm(): HTMLInputElement {\n return this.inputRef.nativeElement;\n }\n\n constructor(\n public numpadService: NumpadService,\n private store: Store,\n private epcotConfigService: EpcotConfigService,\n private numpadConnector: NumpadInputConnector,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n }\n\n ngOnInit(): void {\n this.numpadConnector.init(this.stakeElm);\n }\n\n ngOnDestroy(): void {\n this.numpadConnector.deInit();\n }\n\n onBlur(): void {\n this.numpadConnector.clearFocus();\n\n if (this.behavior === StakeInputBehavior.OnlyTyping) {\n this.numpadService.confirm();\n }\n }\n\n onFocus(): void {\n this.numpadConnector.focus();\n }\n\n onPaste(event: ClipboardEvent): void {\n const text = event.clipboardData?.getData('text');\n if (text) {\n this.numpadService.type(text);\n }\n }\n\n onKeyUp($event: KeyboardEvent): void {\n const target = $event.target as HTMLInputElement;\n\n this.numpadService.type(target.value);\n }\n}\n","import { Component } from '@angular/core';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-stake-wrapper',\n template: '',\n providers: [NumpadService],\n})\nexport class StakeWrapperComponent {}\n","@if (numpadInitialized$ | async) {\n @if (modeStrategy.inputMode | async; as inputMode) {\n \n @switch (inputMode) {\n @case (stakeNumpadMode.Typing) {\n \n }\n @default {\n \n }\n }\n \n }\n}\n","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Input, OnChanges, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BetslipConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable, Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChange, ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { Observable, of } from 'rxjs';\nimport { first, map, switchMap, tap } from 'rxjs/operators';\n\nimport { IncrementalStakesService } from './incremental-stakes.service';\nimport { NumpadOperation, NumpadSource, StakeChangedEvent } from './model';\nimport { NumpadService } from './numpad.service';\nimport { StakeInputMode, StakeInputModeStrategy } from './stake-input-mode.strategy';\nimport { StakeInputBehavior } from './stake-input.component';\n\n@Component({\n selector: 'ms-stake',\n templateUrl: './stake.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StakeComponent implements OnChanges, OnInit {\n @Input() showConfirm = true;\n @Input() showIncrementalStakes = true;\n @Input() stake: Nullable;\n @Input() keypadId: string;\n @Input() errors: Observable = of(false);\n @Input() disabled = false;\n @Input() emptyCharacter: Optional;\n @Input() focusOnLoad = false;\n @Input() numpadSource: NumpadSource;\n @Input() adornmentStart?: string;\n @Input() focusPlaceholder?: string;\n @Input() useStakeFieldCursor = false;\n\n @Output() stakeChanged = new EventEmitter();\n @Output() numpadOpen = new EventEmitter();\n @Output() stakeConfirm = new EventEmitter();\n\n private originalEmptyCharacter: Optional;\n stakeNumpadMode = StakeInputMode;\n\n numpadInitialized$: Observable;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private numpadService: NumpadService,\n private sitecore: Sitecore,\n public modeStrategy: StakeInputModeStrategy,\n private betslipConfig: BetslipConfig,\n private incrementalStakesService: IncrementalStakesService,\n ) {}\n\n getStakeContainerClass$: Observable = this.numpadService.state$.pipe(\n switchMap((state) => {\n return this.errors.pipe(\n map((hasErrors) => {\n const result: string[] = [];\n\n if (state.isOpened) {\n result.push(`editable`);\n }\n if (hasErrors) {\n result.push(`has-error`);\n }\n\n return result.join(' ');\n }),\n );\n }),\n );\n\n ngOnInit(): void {\n this.numpadInitialized$ = this.incrementalStakesService.getValues$().pipe(\n first(),\n tap((stakes) => {\n this.numpadService.initialize(\n this.stake,\n {\n showConfirm: this.showConfirm,\n showIncrementalStakes: this.showIncrementalStakes,\n id: this.keypadId,\n focusOnLoad: this.focusOnLoad,\n numpadSource: this.numpadSource,\n },\n stakes,\n );\n }),\n map(() => true),\n );\n\n this.numpadService.stake$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((stake) => {\n this.stakeChanged.emit(stake);\n });\n\n this.originalEmptyCharacter = this.emptyCharacter = this.emptyCharacter || this.sitecore.betslip.messages.Stake;\n\n this.numpadService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((newState) => {\n if (newState.operation === NumpadOperation.Close && newState.confirmed) {\n this.stakeConfirm.emit();\n }\n\n if (newState.operation === NumpadOperation.Open) {\n this.numpadOpen.emit();\n }\n\n if (newState.isOpened) {\n this.emptyCharacter = this.focusPlaceholder ?? '';\n } else {\n this.emptyCharacter = this.originalEmptyCharacter;\n }\n });\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.stake) {\n this.handleStakeChange(changes.stake);\n }\n }\n\n openKeypad(): void {\n this.numpadService.open();\n }\n\n get stakeInputBehavior(): StakeInputBehavior {\n return this.betslipConfig.isLinearKeypadEnabled ? StakeInputBehavior.OnlyTyping : StakeInputBehavior.TypingAndNumpad;\n }\n\n private handleStakeChange(stakeChange: ISimpleChange>): void {\n if (!stakeChange.firstChange) {\n this.numpadService.updateStake(stakeChange.currentValue);\n }\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\nimport { isNumber } from 'lodash-es';\n\nimport { NumpadUtilsService } from './numpad-utils.service';\n\n@Directive({\n selector: '[msValidateStakeInput]',\n})\nexport class ValidateStakeInputDirective {\n @Output() stakepaste: EventEmitter = new EventEmitter();\n\n constructor(\n private utils: NumpadUtilsService,\n private element: ElementRef,\n ) {}\n\n @HostListener('keypress', ['$event'])\n onKeypress(e: KeyboardEvent): boolean {\n const value = this.getValue(this.element.nativeElement, e.key);\n if (this.utils.isValidInput(value)) {\n return true;\n }\n\n e.preventDefault();\n\n return false;\n }\n\n @HostListener('paste', ['$event'])\n onPaste(e: ClipboardEvent): boolean {\n const clipboardData = e.clipboardData || window['clipboardData' as keyof typeof window];\n const pastedText = clipboardData.getData('text');\n const value = this.getValue(this.element.nativeElement, pastedText);\n\n if (this.utils.isValidInput(value)) {\n this.stakepaste.emit(value);\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n return false;\n }\n\n private getValue(inputElement: HTMLInputElement, key: string): string {\n const value = inputElement.value;\n\n const position = isNumber(inputElement.selectionStart) ? inputElement.selectionStart : undefined;\n\n return value.substr(0, position) + key + value.substr(inputElement.selectionEnd || value.length);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CurrencyPipe } from '@frontend/sports/common/core/feature/money';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { DynamicFontResizerComponent } from '../common/dynamic-font-resizer.component';\nimport { ShowInEpcotDirective } from '../common/epcot-config.directive';\nimport { IncrementalStakesComponent } from './incremental-stakes.component';\nimport { NumpadValidationParams } from './model';\nimport { NumpadErrorComponent } from './numpad-error.component';\nimport { NumpadHostComponent } from './numpad-host.component';\nimport { NumpadKeysComponent } from './numpad-keys.component';\nimport { NumpadScrollDirective } from './numpad-scroll.directive';\nimport { NumpadComponent } from './numpad.component';\nimport { StakeFieldComponent } from './stake-field.component';\nimport { StakeFontResizerDirective } from './stake-font-resizer.directive';\nimport { StakeInputComponent } from './stake-input.component';\nimport { StakeWrapperComponent } from './stake-wrapper.component';\nimport { StakeComponent } from './stake.component';\nimport { ValidateStakeInputDirective } from './validate-stake-input.directive';\n\nexport function validationParamsFactory(stakeConfig: StakeConfig, userService: UserService): NumpadValidationParams {\n const currency = userService.currency.toLowerCase();\n\n return {\n maxLeadingDigits: stakeConfig.maxLeadingDigits[currency] ? stakeConfig.maxLeadingDigits[currency] : stakeConfig.maxLeadingDigits.default,\n maxTrailingDigits: 2,\n };\n}\n\n@NgModule({\n imports: [CommonModule, ShowInEpcotDirective, DynamicFontResizerComponent, IconCustomComponent, DsButtonIcon, CurrencyPipe],\n declarations: [\n IncrementalStakesComponent,\n NumpadKeysComponent,\n NumpadComponent,\n NumpadScrollDirective,\n StakeFontResizerDirective,\n StakeComponent,\n StakeFieldComponent,\n NumpadHostComponent,\n StakeInputComponent,\n ValidateStakeInputDirective,\n NumpadErrorComponent,\n StakeWrapperComponent,\n ],\n exports: [\n IncrementalStakesComponent,\n NumpadKeysComponent,\n NumpadComponent,\n StakeComponent,\n StakeFieldComponent,\n NumpadHostComponent,\n NumpadScrollDirective,\n StakeFontResizerDirective,\n StakeInputComponent,\n NumpadErrorComponent,\n StakeWrapperComponent,\n ],\n})\nexport class NumpadModule {}\n","export enum EarlyPayoutStates {\n Allowed = 'EARLY_PAYOUT_ALLOWED',\n ModeHigher = 'EARLY_PAYOUT_MODE_HIGHER',\n Confirm = 'EARLY_PAYOUT_CONFIRM',\n Preparing = 'EARLY_PAYOUT_PREPARING',\n Done = 'EARLY_PAYOUT_DONE',\n PaidOut = 'EARLY_PAYOUT_PAIDOUT',\n Disabled = 'EARLY_PAYOUT_DISSABLED',\n PermanentlyDisabled = 'EARLY_PAYOUT_PERMANENTLY_DISABLED',\n Completed = 'EARLY_PAYOUT_COMPLETED',\n}\n\nexport enum EarlyPayoutConst {\n StatusSucceded = 'PayoutSucceeded',\n StatusPending = 'PayoutPending',\n StatusFailed = 'PayoutFailed',\n EpGeneralError = 'EarlyPayoutNotPossible',\n ModeAny = 'AcceptAnyChanges',\n ModeHigher = 'AcceptHigherPayoutAmount',\n AcGenericError = 'AutoCashoutNotPossible',\n}\n\nexport interface PayoutErrorPick {\n id: number;\n state: EarlyPayoutPickState;\n}\n\nexport interface PayoutError {\n type: string;\n reason?: string;\n errorCode?: string;\n possibleAmount?: number;\n expectedAmount?: number;\n possiblePayout?: number;\n possibleWin?: number;\n minimumAmount?: number;\n passedExpectedPayoutAmount?: number;\n oddsKey?: number;\n optionId?: number;\n cutOffDate?: Date;\n picks?: PayoutErrorPick[];\n errorMessage?: string;\n}\n\nexport interface IEarlyPayoutData {\n value: number;\n error?: PayoutError;\n}\n\nexport interface PayoutPushError {\n name: string;\n error: {\n Title: string;\n Message: string;\n };\n}\n\n// Obsolete: use BPOSv4 contracts\nexport enum EarlyPayoutErrors {\n AutoCashoutNotAllowed = 'AutoCashoutNotAllowed',\n BetLost = 'BetLost',\n BetNotAllowedForEarlyPayout = 'BetNotAllowedForEarlyPayout', // TODO: remove BPOSv4/EPSv4 released on prod\n BetNotFound = 'BetNotFound',\n ChangedBetSlipState = 'ChangedBetSlipState',\n DuplicatedAutoCashout = 'DuplicatedAutoCashout',\n DuplicatedEarlyPayout = 'DuplicatedEarlyPayout',\n EarlyPayoutAmountChanged = 'EarlyPayoutAmountChanged', // TODO: remove BPOSv4/EPSv4 released on prod\n EarlyPayoutNotAllowed = 'EarlyPayoutNotAllowed', // TODO: remove BPOSv4/EPSv4 released on prod\n EarlyPayoutNotFound = 'EarlyPayoutNotFound', // TODO: remove BPOSv4/EPSv4 released on prod\n GeoLocationError = 'GeoLocationError',\n GeoLocationErrorBlockedByClientSoftware = 'GeoLocationErrorBlockedByClientSoftware',\n GeoLocationErrorCloseToBoundary = 'GeoLocationErrorCloseToBoundary',\n GeoLocationErrorDeviceRooted = 'GeoLocationErrorDeviceRooted',\n GeoLocationErrorFraudJumper = 'GeoLocationErrorFraudJumper',\n GeoLocationErrorFraudPotential = 'GeoLocationErrorFraudPotential',\n GeoLocationErrorMinSources = 'GeoLocationErrorMinSources',\n GeoLocationErrorMinSourcesMobile = 'GeoLocationErrorMinSourcesMobile',\n GeoLocationErrorNotAccurateLocation = 'GeoLocationErrorNotAccurateLocation',\n GeoLocationErrorOutOfPermittedArea = 'GeoLocationErrorOutOfPermittedArea',\n GeoLocationErrorProxy = 'GeoLocationErrorProxy',\n GeoLocationErrorRemoteDesktop = 'GeoLocationErrorRemoteDesktop',\n GeoLocationErrorSoftwareOutdated = 'GeoLocationErrorSoftwareOutdated',\n GeoLocationErrorVpnDetection = 'GeoLocationErrorVpnDetection',\n GeoLocationFailed = 'GeoLocationFailed',\n SessionTokenInvalid = 'SessionTokenInvalid',\n OverMaxEarlyPayoutAmount = 'OverMaxEarlyPayoutAmount', // TODO: remove BPOSv4/EPSv4 released on prod\n ResultError = 'ResultError',\n UnderMinimumEarlyPayoutAmount = 'UnderMinimumEarlyPayoutAmount', // TODO: remove BPOSv4/EPSv4 released on prod\n CutOffDateReached = 'CutOffDateReached', // TODO: remove BPOSv4/EPSv4 released on prod\n OptionInvisible = 'OptionInvisible', // TODO: remove BPOSv4/EPSv4 released on prod\n InconsistentMonetaryValue = 'InconsistentMonetaryValue',\n UnderMinOddsKey = 'UnderMinOddsKey',\n ResultNotFound = 'ResultNotFound',\n TechnicalError = 'TechnicalError',\n ChangedOptionStatus = 'ChangedOptionStatus', // TODO: remove BPOSv4/EPSv4 released on prod\n UnderMinCashoutAmount = 'UnderMinCashoutAmount',\n OverMaxCashoutAmount = 'OverMaxCashoutAmount',\n BetNotAllowedForCashout = 'BetNotAllowedForCashout',\n CashoutAmountChanged = 'CashoutAmountChanged',\n CashoutNotAllowed = 'CashoutNotAllowed',\n CashoutNotFound = 'CashoutNotFound',\n BetFromDifferentUser = 'BetFromDifferentUser',\n}\n\nexport enum EarlyPayoutOptionErrors {\n OptionLockSingle = 'OptionLockSingle',\n OptionLockCombo = 'OptionLockCombo',\n OptionHiddenSingle = 'OptionHiddenSingle',\n OptionHiddenCombo = 'OptionHiddenCombo',\n OptionCutOffDateReached = 'OptionCutOffDateReached',\n OptionChangedStatus = 'OptionChangedStatus',\n OptionNotFound = 'OptionNotFound',\n OptionMarketTemplateNotAllowed = 'OptionMarketTemplateNotAllowed',\n}\n\nexport enum EarlyPayoutPickState {\n Cancelled = 'Cancelled',\n ChangedStatus = 'ChangedStatus',\n CutOffDateReached = 'CutOffDateReached',\n Eligible = 'Eligible',\n Hidden = 'Hidden',\n Locked = 'Locked',\n Lost = 'Lost',\n MarketTemplateNotAllowed = 'MarketTemplateNotAllowed',\n NotFound = 'NotFound',\n Unknown = 'Unknown',\n Won = 'Won',\n}\n\n// BPOSv4 contracts\nexport enum EarlyPayoutErrorTypes {\n BetNotFound = 'BetNotFound',\n BetNotAllowedForCashout = 'BetNotAllowedForCashout',\n ChangedBetSlipState = 'ChangedBetSlipState',\n ChangedOptionStatus = 'ChangedOptionStatus',\n DuplicatedCashout = 'DuplicatedCashout',\n CashoutAmountChanged = 'CashoutAmountChanged',\n CashoutNotAllowed = 'CashoutNotAllowed',\n OverMaxCashoutAmount = 'OverMaxCashoutAmount',\n TechnicalError = 'TechnicalError',\n UnderMinCashoutAmount = 'UnderMinCashoutAmount',\n InconsistentMonetaryValue = 'InconsistentMonetaryValue',\n UnderMinOddsKey = 'UnderMinOddsKey',\n BetLost = 'BetLost',\n CashoutNotFound = 'CashoutNotFound',\n AutoCashoutNotAllowed = 'AutoCashoutNotAllowed',\n DuplicatedAutoCashout = 'DuplicatedAutoCashout',\n RewardAwarded = 'RewardAwarded',\n CashoutAmountLowerOrEqualToFreeBet = 'CashoutAmountLowerOrEqualToFreeBet',\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { OddsFormatSettings, SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { ClientConfigService } from '@frontend/vanilla/core';\nimport { firstValueFrom, from, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { IUserBettingSettings, UserEvents, UserSettingsResponse } from '../model/user.models';\nimport { UserService } from './user.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserSettingsService {\n static readonly NOT_AUTHENTICATED = 'NotAuthenticated';\n constructor(\n private userService: UserService,\n private apiService: ApiService,\n protected dispatcher: DispatcherService,\n private clientConfig: ClientConfigService,\n ) {}\n\n /**\n * Set a value for a specific setting. All properties are optional, it can be used to set any setting independently:\n *\n * UserSettings.set({ earlyPayoutAcceptanceMode: \"AcceptAnyChanges\" });\n *\n * @param settings\n * @returns\n *\n * @memberOf UserSettings\n */\n async set(settings: Partial): Promise {\n if (!this.userService.isAuthenticated) {\n throw new Error(UserSettingsService.NOT_AUTHENTICATED);\n }\n\n const apiResult = await firstValueFrom(\n this.apiService\n .post('usersettings', { settings })\n .pipe(\n switchMap((result: UserSettingsResponse) =>\n from(this.clientConfig.reload([SportsUserSettings, OddsFormatSettings])).pipe(map(() => result)),\n ),\n ),\n );\n\n this.dispatcher.dispatch(UserEvents.M2UserClaimsChanged);\n\n return apiResult;\n }\n\n async setOddsFormat(format: OddsDisplayFormat): Promise {\n if (!this.userService.isAuthenticated) {\n throw new Error('NotAuthenticated');\n }\n\n const apiResult = await firstValueFrom(\n this.apiService.post('usersettings/saveoddsformat', { format }).pipe(\n switchMap((result: UserSettingsResponse) => {\n if (result.oddsFormatLimitReached) {\n return of(result);\n }\n\n return from(this.clientConfig.reload([OddsFormatSettings])).pipe(map(() => result));\n }),\n ),\n );\n\n this.dispatcher.dispatch(UserEvents.M2UserClaimsChanged);\n\n return apiResult;\n }\n}\n","export const roundUpward = (val: number, decimals?: number): number => {\n const pow = Math.pow(10, decimals ?? 2);\n const roundedNumber = Math.round(val * pow) / pow;\n return val > roundedNumber ? Math.round((roundedNumber + 1 / pow) * pow) / pow : roundedNumber;\n};\n\nexport const random = (upperLimit: number): number => Math.floor(Math.random() * upperLimit);\n\nexport const toCent = (value: number): number => Math.round(value * 100);\n","import * as i1 from 'rxjs';\nimport { merge, Observable, Subject, defer } from 'rxjs';\nimport { ignoreElements, materialize, map, catchError, filter, groupBy, mergeMap, exhaustMap, dematerialize, take, concatMap, finalize } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, NgModule, Optional, inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';\nimport * as i3 from '@ngrx/store';\nimport { ScannedActionsSubject, createAction, ROOT_STORE_PROVIDER, FEATURE_STATE_PROVIDER, Store } from '@ngrx/store';\nconst DEFAULT_EFFECT_CONFIG = {\n dispatch: true,\n functional: false,\n useEffectsErrorHandler: true\n};\nconst CREATE_EFFECT_METADATA_KEY = '__@ngrx/effects_create__';\n\n/**\n * @description\n *\n * Creates an effect from a source and an `EffectConfig`.\n *\n * @param source A function which returns an observable or observable factory.\n * @param config A `EffectConfig` to configure the effect. By default,\n * `dispatch` is true, `functional` is false, and `useEffectsErrorHandler` is\n * true.\n * @returns If `EffectConfig`#`functional` is true, returns the source function.\n * Else, returns the source function result. When `EffectConfig`#`dispatch` is\n * true, the source function result needs to be `Observable`.\n *\n * @usageNotes\n *\n * ### Class Effects\n *\n * ```ts\n * @Injectable()\n * export class FeatureEffects {\n * // mapping to a different action\n * readonly effect1$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionOne),\n * map(() => FeatureActions.actionTwo())\n * )\n * );\n *\n * // non-dispatching effect\n * readonly effect2$ = createEffect(\n * () => this.actions$.pipe(\n * ofType(FeatureActions.actionTwo),\n * tap(() => console.log('Action Two Dispatched'))\n * ),\n * { dispatch: false } // FeatureActions.actionTwo is not dispatched\n * );\n *\n * constructor(private readonly actions$: Actions) {}\n * }\n * ```\n *\n * ### Functional Effects\n *\n * ```ts\n * // mapping to a different action\n * export const loadUsers = createEffect(\n * (actions$ = inject(Actions), usersService = inject(UsersService)) => {\n * return actions$.pipe(\n * ofType(UsersPageActions.opened),\n * exhaustMap(() => {\n * return usersService.getAll().pipe(\n * map((users) => UsersApiActions.usersLoadedSuccess({ users })),\n * catchError((error) =>\n * of(UsersApiActions.usersLoadedFailure({ error }))\n * )\n * );\n * })\n * );\n * },\n * { functional: true }\n * );\n *\n * // non-dispatching functional effect\n * export const logDispatchedActions = createEffect(\n * () => inject(Actions).pipe(tap(console.log)),\n * { functional: true, dispatch: false }\n * );\n * ```\n */\nfunction createEffect(source, config = {}) {\n const effect = config.functional ? source : source();\n const value = {\n ...DEFAULT_EFFECT_CONFIG,\n ...config // Overrides any defaults if values are provided\n };\n Object.defineProperty(effect, CREATE_EFFECT_METADATA_KEY, {\n value\n });\n return effect;\n}\nfunction getCreateEffectMetadata(instance) {\n const propertyNames = Object.getOwnPropertyNames(instance);\n const metadata = propertyNames.filter(propertyName => {\n if (instance[propertyName] && instance[propertyName].hasOwnProperty(CREATE_EFFECT_METADATA_KEY)) {\n // If the property type has overridden `hasOwnProperty` we need to ensure\n // that the metadata is valid (containing a `dispatch` property)\n // https://github.com/ngrx/platform/issues/2975\n const property = instance[propertyName];\n return property[CREATE_EFFECT_METADATA_KEY].hasOwnProperty('dispatch');\n }\n return false;\n }).map(propertyName => {\n const metaData = instance[propertyName][CREATE_EFFECT_METADATA_KEY];\n return {\n propertyName,\n ...metaData\n };\n });\n return metadata;\n}\nfunction getEffectsMetadata(instance) {\n return getSourceMetadata(instance).reduce((acc, {\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n acc[propertyName] = {\n dispatch,\n useEffectsErrorHandler\n };\n return acc;\n }, {});\n}\nfunction getSourceMetadata(instance) {\n return getCreateEffectMetadata(instance);\n}\nfunction getSourceForInstance(instance) {\n return Object.getPrototypeOf(instance);\n}\nfunction isClassInstance(obj) {\n return !!obj.constructor && obj.constructor.name !== 'Object' && obj.constructor.name !== 'Function';\n}\nfunction isClass(classOrRecord) {\n return typeof classOrRecord === 'function';\n}\nfunction getClasses(classesAndRecords) {\n return classesAndRecords.filter(isClass);\n}\nfunction isToken(tokenOrRecord) {\n return tokenOrRecord instanceof InjectionToken || isClass(tokenOrRecord);\n}\nfunction mergeEffects(sourceInstance, globalErrorHandler, effectsErrorHandler) {\n const source = getSourceForInstance(sourceInstance);\n const isClassBasedEffect = !!source && source.constructor.name !== 'Object';\n const sourceName = isClassBasedEffect ? source.constructor.name : null;\n const observables$ = getSourceMetadata(sourceInstance).map(({\n propertyName,\n dispatch,\n useEffectsErrorHandler\n }) => {\n const observable$ = typeof sourceInstance[propertyName] === 'function' ? sourceInstance[propertyName]() : sourceInstance[propertyName];\n const effectAction$ = useEffectsErrorHandler ? effectsErrorHandler(observable$, globalErrorHandler) : observable$;\n if (dispatch === false) {\n return effectAction$.pipe(ignoreElements());\n }\n const materialized$ = effectAction$.pipe(materialize());\n return materialized$.pipe(map(notification => ({\n effect: sourceInstance[propertyName],\n notification,\n propertyName,\n sourceName,\n sourceInstance\n })));\n });\n return merge(...observables$);\n}\nconst MAX_NUMBER_OF_RETRY_ATTEMPTS = 10;\nfunction defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft = MAX_NUMBER_OF_RETRY_ATTEMPTS) {\n return observable$.pipe(catchError(error => {\n if (errorHandler) errorHandler.handleError(error);\n if (retryAttemptLeft <= 1) {\n return observable$; // last attempt\n }\n // Return observable that produces this particular effect\n return defaultEffectsErrorHandler(observable$, errorHandler, retryAttemptLeft - 1);\n }));\n}\nlet Actions = /*#__PURE__*/(() => {\n class Actions extends Observable {\n constructor(source) {\n super();\n if (source) {\n this.source = source;\n }\n }\n lift(operator) {\n const observable = new Actions();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function Actions_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Actions)(i0.ɵɵinject(ScannedActionsSubject));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Actions,\n factory: Actions.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Actions;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * `ofType` filters an Observable of `Actions` into an Observable of the actions\n * whose type strings are passed to it.\n *\n * For example, if `actions` has type `Actions`, and\n * the type of the `Addition` action is `add`, then\n * `actions.pipe(ofType('add'))` returns an `Observable`.\n *\n * Properly typing this function is hard and requires some advanced TS tricks\n * below.\n *\n * Type narrowing automatically works, as long as your `actions` object\n * starts with a `Actions` instead of generic `Actions`.\n *\n * For backwards compatibility, when one passes a single type argument\n * `ofType('something')` the result is an `Observable`. Note, that `T`\n * completely overrides any possible inference from 'something'.\n *\n * Unfortunately, for unknown 'actions: Actions' these types will produce\n * 'Observable'. In such cases one has to manually set the generic type\n * like `actions.ofType('add')`.\n *\n * @usageNotes\n *\n * Filter the Actions stream on the \"customers page loaded\" action\n *\n * ```ts\n * import { ofType } from '@ngrx/effects';\n * import * fromCustomers from '../customers';\n *\n * this.actions$.pipe(\n * ofType(fromCustomers.pageLoaded)\n * )\n * ```\n */\nfunction ofType(...allowedTypes) {\n return filter(action => allowedTypes.some(typeOrActionCreator => {\n if (typeof typeOrActionCreator === 'string') {\n // Comparing the string to type\n return typeOrActionCreator === action.type;\n }\n // We are filtering by ActionCreator\n return typeOrActionCreator.type === action.type;\n }));\n}\nconst _ROOT_EFFECTS_GUARD = new InjectionToken('@ngrx/effects Internal Root Guard');\nconst USER_PROVIDED_EFFECTS = new InjectionToken('@ngrx/effects User Provided Effects');\nconst _ROOT_EFFECTS = new InjectionToken('@ngrx/effects Internal Root Effects');\nconst _ROOT_EFFECTS_INSTANCES = new InjectionToken('@ngrx/effects Internal Root Effects Instances');\nconst _FEATURE_EFFECTS = new InjectionToken('@ngrx/effects Internal Feature Effects');\nconst _FEATURE_EFFECTS_INSTANCE_GROUPS = new InjectionToken('@ngrx/effects Internal Feature Effects Instance Groups');\nconst EFFECTS_ERROR_HANDLER = new InjectionToken('@ngrx/effects Effects Error Handler', {\n providedIn: 'root',\n factory: () => defaultEffectsErrorHandler\n});\nconst ROOT_EFFECTS_INIT = '@ngrx/effects/init';\nconst rootEffectsInit = createAction(ROOT_EFFECTS_INIT);\nfunction reportInvalidActions(output, reporter) {\n if (output.notification.kind === 'N') {\n const action = output.notification.value;\n const isInvalidAction = !isAction(action);\n if (isInvalidAction) {\n reporter.handleError(new Error(`Effect ${getEffectName(output)} dispatched an invalid action: ${stringify(action)}`));\n }\n }\n}\nfunction isAction(action) {\n return typeof action !== 'function' && action && action.type && typeof action.type === 'string';\n}\nfunction getEffectName({\n propertyName,\n sourceInstance,\n sourceName\n}) {\n const isMethod = typeof sourceInstance[propertyName] === 'function';\n const isClassBasedEffect = !!sourceName;\n return isClassBasedEffect ? `\"${sourceName}.${String(propertyName)}${isMethod ? '()' : ''}\"` : `\"${String(propertyName)}()\"`;\n}\nfunction stringify(action) {\n try {\n return JSON.stringify(action);\n } catch {\n return action;\n }\n}\nconst onIdentifyEffectsKey = 'ngrxOnIdentifyEffects';\nfunction isOnIdentifyEffects(instance) {\n return isFunction(instance, onIdentifyEffectsKey);\n}\nconst onRunEffectsKey = 'ngrxOnRunEffects';\nfunction isOnRunEffects(instance) {\n return isFunction(instance, onRunEffectsKey);\n}\nconst onInitEffects = 'ngrxOnInitEffects';\nfunction isOnInitEffects(instance) {\n return isFunction(instance, onInitEffects);\n}\nfunction isFunction(instance, functionName) {\n return instance && functionName in instance && typeof instance[functionName] === 'function';\n}\nlet EffectSources = /*#__PURE__*/(() => {\n class EffectSources extends Subject {\n constructor(errorHandler, effectsErrorHandler) {\n super();\n this.errorHandler = errorHandler;\n this.effectsErrorHandler = effectsErrorHandler;\n }\n addEffects(effectSourceInstance) {\n this.next(effectSourceInstance);\n }\n /**\n * @internal\n */\n toActions() {\n return this.pipe(groupBy(effectsInstance => isClassInstance(effectsInstance) ? getSourceForInstance(effectsInstance) : effectsInstance), mergeMap(source$ => {\n return source$.pipe(groupBy(effectsInstance));\n }), mergeMap(source$ => {\n const effect$ = source$.pipe(exhaustMap(sourceInstance => {\n return resolveEffectSource(this.errorHandler, this.effectsErrorHandler)(sourceInstance);\n }), map(output => {\n reportInvalidActions(output, this.errorHandler);\n return output.notification;\n }), filter(notification => notification.kind === 'N' && notification.value != null), dematerialize());\n // start the stream with an INIT action\n // do this only for the first Effect instance\n const init$ = source$.pipe(take(1), filter(isOnInitEffects), map(instance => instance.ngrxOnInitEffects()));\n return merge(effect$, init$);\n }));\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectSources_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectSources)(i0.ɵɵinject(i0.ErrorHandler), i0.ɵɵinject(EFFECTS_ERROR_HANDLER));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectSources,\n factory: EffectSources.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectSources;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction effectsInstance(sourceInstance) {\n if (isOnIdentifyEffects(sourceInstance)) {\n return sourceInstance.ngrxOnIdentifyEffects();\n }\n return '';\n}\nfunction resolveEffectSource(errorHandler, effectsErrorHandler) {\n return sourceInstance => {\n const mergedEffects$ = mergeEffects(sourceInstance, errorHandler, effectsErrorHandler);\n if (isOnRunEffects(sourceInstance)) {\n return sourceInstance.ngrxOnRunEffects(mergedEffects$);\n }\n return mergedEffects$;\n };\n}\nlet EffectsRunner = /*#__PURE__*/(() => {\n class EffectsRunner {\n get isStarted() {\n return !!this.effectsSubscription;\n }\n constructor(effectSources, store) {\n this.effectSources = effectSources;\n this.store = store;\n this.effectsSubscription = null;\n }\n start() {\n if (!this.effectsSubscription) {\n this.effectsSubscription = this.effectSources.toActions().subscribe(this.store);\n }\n }\n ngOnDestroy() {\n if (this.effectsSubscription) {\n this.effectsSubscription.unsubscribe();\n this.effectsSubscription = null;\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRunner_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRunner)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(i3.Store));\n };\n }\n /** @nocollapse */\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EffectsRunner,\n factory: EffectsRunner.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return EffectsRunner;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsRootModule = /*#__PURE__*/(() => {\n class EffectsRootModule {\n constructor(sources, runner, store, rootEffectsInstances, storeRootModule, storeFeatureModule, guard) {\n this.sources = sources;\n runner.start();\n for (const effectsInstance of rootEffectsInstances) {\n sources.addEffects(effectsInstance);\n }\n store.dispatch({\n type: ROOT_EFFECTS_INIT\n });\n }\n addEffects(effectsInstance) {\n this.sources.addEffects(effectsInstance);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsRootModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsRootModule)(i0.ɵɵinject(EffectSources), i0.ɵɵinject(EffectsRunner), i0.ɵɵinject(i3.Store), i0.ɵɵinject(_ROOT_EFFECTS_INSTANCES), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8), i0.ɵɵinject(_ROOT_EFFECTS_GUARD, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsRootModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsRootModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsFeatureModule = /*#__PURE__*/(() => {\n class EffectsFeatureModule {\n constructor(effectsRootModule, effectsInstanceGroups, storeRootModule, storeFeatureModule) {\n const effectsInstances = effectsInstanceGroups.flat();\n for (const effectsInstance of effectsInstances) {\n effectsRootModule.addEffects(effectsInstance);\n }\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsFeatureModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsFeatureModule)(i0.ɵɵinject(EffectsRootModule), i0.ɵɵinject(_FEATURE_EFFECTS_INSTANCE_GROUPS), i0.ɵɵinject(i3.StoreRootModule, 8), i0.ɵɵinject(i3.StoreFeatureModule, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsFeatureModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsFeatureModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EffectsModule = /*#__PURE__*/(() => {\n class EffectsModule {\n static forFeature(...featureEffects) {\n const effects = featureEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsFeatureModule,\n providers: [effectsClasses, {\n provide: _FEATURE_EFFECTS,\n multi: true,\n useValue: effects\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _FEATURE_EFFECTS_INSTANCE_GROUPS,\n multi: true,\n useFactory: createEffectsInstances,\n deps: [_FEATURE_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n static forRoot(...rootEffects) {\n const effects = rootEffects.flat();\n const effectsClasses = getClasses(effects);\n return {\n ngModule: EffectsRootModule,\n providers: [effectsClasses, {\n provide: _ROOT_EFFECTS,\n useValue: [effects]\n }, {\n provide: _ROOT_EFFECTS_GUARD,\n useFactory: _provideForRootGuard\n }, {\n provide: USER_PROVIDED_EFFECTS,\n multi: true,\n useValue: []\n }, {\n provide: _ROOT_EFFECTS_INSTANCES,\n useFactory: createEffectsInstances,\n deps: [_ROOT_EFFECTS, USER_PROVIDED_EFFECTS]\n }]\n };\n }\n /** @nocollapse */\n static {\n this.ɵfac = function EffectsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || EffectsModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EffectsModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return EffectsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction createEffectsInstances(effectsGroups, userProvidedEffectsGroups) {\n const effects = [];\n for (const effectsGroup of effectsGroups) {\n effects.push(...effectsGroup);\n }\n for (const userProvidedEffectsGroup of userProvidedEffectsGroups) {\n effects.push(...userProvidedEffectsGroup);\n }\n return effects.map(effectsTokenOrRecord => isToken(effectsTokenOrRecord) ? inject(effectsTokenOrRecord) : effectsTokenOrRecord);\n}\nfunction _provideForRootGuard() {\n const runner = inject(EffectsRunner, {\n optional: true,\n skipSelf: true\n });\n const rootEffects = inject(_ROOT_EFFECTS, {\n self: true\n });\n // check whether any effects are actually passed\n const hasEffects = !(rootEffects.length === 1 && rootEffects[0].length === 0);\n if (hasEffects && runner) {\n throw new TypeError(`EffectsModule.forRoot() called twice. Feature modules should use EffectsModule.forFeature() instead.`);\n }\n return 'guarded';\n}\n\n/**\n * Wraps project fn with error handling making it safe to use in Effects.\n * Takes either a config with named properties that represent different possible\n * callbacks or project/error callbacks that are required.\n */\nfunction act(/** Allow to take either config object or project/error functions */\nconfigOrProject, errorFn) {\n const {\n project,\n error,\n complete,\n operator,\n unsubscribe\n } = typeof configOrProject === 'function' ? {\n project: configOrProject,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n error: errorFn,\n operator: concatMap,\n complete: undefined,\n unsubscribe: undefined\n } : {\n ...configOrProject,\n operator: configOrProject.operator || concatMap\n };\n return source => defer(() => {\n const subject = new Subject();\n return merge(source.pipe(operator((input, index) => defer(() => {\n let completed = false;\n let errored = false;\n let projectedCount = 0;\n return project(input, index).pipe(materialize(), map(notification => {\n switch (notification.kind) {\n case 'E':\n errored = true;\n return {\n kind: 'N',\n value: error(notification.error, input)\n };\n case 'C':\n completed = true;\n return complete ? {\n kind: 'N',\n value: complete(projectedCount, input)\n } : undefined;\n default:\n ++projectedCount;\n return notification;\n }\n }), filter(n => n != null), dematerialize(), finalize(() => {\n if (!completed && !errored && unsubscribe) {\n subject.next(unsubscribe(projectedCount, input));\n }\n }));\n }))), subject);\n });\n}\n\n/**\n * @usageNotes\n *\n * ### Providing effects at the root level\n *\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [provideEffects(RouterEffects)],\n * });\n * ```\n *\n * ### Providing effects at the feature level\n *\n * ```ts\n * const booksRoutes: Route[] = [\n * {\n * path: '',\n * providers: [provideEffects(BooksApiEffects)],\n * children: [\n * { path: '', component: BookListComponent },\n * { path: ':id', component: BookDetailsComponent },\n * ],\n * },\n * ];\n * ```\n */\nfunction provideEffects(...effects) {\n const effectsClassesAndRecords = effects.flat();\n const effectsClasses = getClasses(effectsClassesAndRecords);\n return makeEnvironmentProviders([effectsClasses, {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n inject(ROOT_STORE_PROVIDER);\n inject(FEATURE_STATE_PROVIDER, {\n optional: true\n });\n const effectsRunner = inject(EffectsRunner);\n const effectSources = inject(EffectSources);\n const shouldInitEffects = !effectsRunner.isStarted;\n if (shouldInitEffects) {\n effectsRunner.start();\n }\n for (const effectsClassOrRecord of effectsClassesAndRecords) {\n const effectsInstance = isClass(effectsClassOrRecord) ? inject(effectsClassOrRecord) : effectsClassOrRecord;\n effectSources.addEffects(effectsInstance);\n }\n if (shouldInitEffects) {\n const store = inject(Store);\n store.dispatch(rootEffectsInit());\n }\n }\n }]);\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 { Actions, EFFECTS_ERROR_HANDLER, EffectSources, EffectsFeatureModule, EffectsModule, EffectsRootModule, EffectsRunner, ROOT_EFFECTS_INIT, USER_PROVIDED_EFFECTS, act, createEffect, defaultEffectsErrorHandler, getEffectsMetadata, mergeEffects, ofType, provideEffects, rootEffectsInit };\n","import { Injectable, inject } from '@angular/core';\n\nimport { OddsFormatSettings } from '@frontend/sports/common/client-config-data-access';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserOddsFormatSettingsService {\n private readonly oddsFormatSettings = inject(OddsFormatSettings);\n\n get oddsFormat(): OddsDisplayFormat {\n return this.oddsFormatSettings.generalOddsFormat;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { INativePrice, INativePriceCalculated, NativePrice } from '@frontend/sports/odds/feature/native-price';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\nexport class NativePriceCalculatorService {\n static add(price: NativePrice, otherPrice: NativePrice, oddsFormat: OddsDisplayFormat): NativePrice {\n const resultPrice: INativePrice = {};\n\n switch (oddsFormat) {\n case OddsDisplayFormat.UK:\n resultPrice.numerator = price.fraction.add(otherPrice.fraction).minus(1).toNumber();\n resultPrice.denominator = 1;\n break;\n case OddsDisplayFormat.US:\n const americanDecimal = NativePrice.americanOddsToDecimalOdds(price.americanOdds);\n const otherAmericanDecimal = NativePrice.americanOddsToDecimalOdds(otherPrice.americanOdds);\n\n resultPrice.americanOdds = price.roundDecimalToAmerican(americanDecimal.add(otherAmericanDecimal));\n break;\n default:\n resultPrice.odds = price.odds.add(otherPrice.odds).toNumber();\n }\n\n return NativePrice.fromNativePriceElement(resultPrice);\n }\n\n static multiplyDecimal(price: Decimal, multiplier: Decimal, round: boolean, decimals = 2) {\n return round ? price.times(multiplier).toDecimalPlaces(decimals, Decimal.ROUND_HALF_UP) : price.times(multiplier);\n }\n\n static multiply(price: NativePrice, multiplier: NativePrice | number, oddsFormat: OddsDisplayFormat, roundPriceValues = false): NativePrice {\n const resultPrice: INativePriceCalculated = {};\n const decimalMultiplier = this.getMultiplier(multiplier, oddsFormat);\n\n switch (oddsFormat) {\n case OddsDisplayFormat.UK:\n resultPrice.numerator = this.multiplyDecimal(price.fraction, decimalMultiplier, roundPriceValues).minus(1).toNumber();\n\n resultPrice.denominator = 1;\n break;\n case OddsDisplayFormat.US:\n const americanDecimal = NativePrice.americanOddsToDecimalOdds(price.americanOdds);\n\n resultPrice.americanOdds = price.roundDecimalToAmerican(this.multiplyDecimal(americanDecimal, decimalMultiplier, roundPriceValues));\n resultPrice.americanOddsCalculated = this.multiplyDecimal(\n new Decimal(price.americanOddsCalculation || americanDecimal),\n new Decimal(this.getAmericanOddsCalculation(multiplier) || decimalMultiplier),\n roundPriceValues,\n ).toNumber();\n break;\n default:\n resultPrice.odds = this.multiplyDecimal(price.odds, decimalMultiplier, roundPriceValues).toNumber();\n }\n\n return NativePrice.fromNativePriceElement(resultPrice);\n }\n\n private static getMultiplier(multiplier: NativePrice | number, oddsFormat: OddsDisplayFormat): Decimal {\n if (typeof multiplier === 'number') {\n return new Decimal(multiplier);\n }\n\n switch (oddsFormat) {\n case OddsDisplayFormat.UK:\n return multiplier.fraction;\n case OddsDisplayFormat.US:\n return NativePrice.americanOddsToDecimalOdds(multiplier.americanOdds);\n default:\n return multiplier.odds;\n }\n }\n\n private static getAmericanOddsCalculation(multiplier: NativePrice | number): number | undefined {\n return typeof multiplier === 'number' ? undefined : multiplier.americanOddsCalculation;\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Odds, OddsFormat } from '@bpos';\nimport { NativePrice } from '@frontend/sports/odds/feature/native-price';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { UserOddsFormatSettingsService } from '@frontend/sports/user/feature';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\nexport class OddsFormatConverterService {\n private readonly userOddsFormatSettingsService = inject(UserOddsFormatSettingsService);\n\n /**\n * @param price - The native price object.\n * @returns - the decimal value of the the current odds format calculated from the provided native price\n */\n getOddsByOddsFormat(price: NativePrice): Decimal {\n switch (this.userOddsFormatSettingsService.oddsFormat) {\n case OddsDisplayFormat.UK:\n return price.fraction;\n case OddsDisplayFormat.US:\n return NativePrice.americanOddsToDecimalOdds(price.americanOdds);\n default:\n return price.odds;\n }\n }\n\n /**\n * @param price - The native price object.\n * @returns - the decimal value of the the current odds format calculated from the provided native price\n */\n getCalculatedOddsByFormat(price: NativePrice): Decimal {\n if (this.userOddsFormatSettingsService.oddsFormat === OddsDisplayFormat.US && price.americanOddsCalculation !== undefined) {\n return new Decimal(price.americanOddsCalculation);\n }\n\n return this.getOddsByOddsFormat(price);\n }\n\n getEmptyBposOdds(): Odds {\n return {\n european: 0,\n british: { numerator: 0, denominator: 0 },\n american: 0,\n oddsFormat: this.getBposOddsFormat(),\n };\n }\n\n private getBposOddsFormat(): OddsFormat {\n switch (this.userOddsFormatSettingsService.oddsFormat) {\n case OddsDisplayFormat.UK:\n return OddsFormat.British;\n case OddsDisplayFormat.US:\n return OddsFormat.American;\n default:\n return OddsFormat.European;\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetslipConfig } from '@frontend/sports/common/client-config-data-access';\nimport { NativeAppService } from '@frontend/vanilla/core';\n\nimport { TrackNavArea } from '../navigation/navigation-tracking.model';\n\nexport interface NativeAppEvent {\n eventName: string;\n parameters?: { [key: string]: any };\n}\n\nexport type NativeAppEventHandler = (parameters?: { [key: string]: any }) => void;\n\nexport interface NativeAppEventCommand {\n execute: NativeAppEventHandler;\n}\n\nexport type NativeAppEventUnsubscribe = () => void;\n\nexport enum BridgeEvent {\n // outgoing\n BetPlaced = 'BetPlaced',\n SensitivePageOpened = 'SensitivePage',\n SliderGameOpened = 'OpenSliderGame',\n TrackingTurnover = 'TrackingTurnover',\n AddToBetslip = 'BetSlip',\n BetConfirmation = 'BetConfirmation',\n BetPlacement = 'BetPlacement',\n MenuIteamNavigation = 'MenuIteamNavigation',\n ShareMyBet = 'ShareMyBet',\n\n // incoming\n NavigateTo = 'NavigateTo',\n BetSharedSuccessfully = 'BetSharedSuccessfully',\n}\n\nexport enum BetType {\n Single = 'Single',\n Multi = 'Multi',\n System = 'System',\n Unknown = 'Unknown',\n}\n\nexport interface BetParameters {\n eventName: string;\n eventId: string;\n marketName: string;\n marketId: string;\n resultName: string;\n resultId: string;\n sportName: string;\n sportId: string;\n}\n\n// TODO - this should be declared in the betslip but for now stays here as it is until refactoring of betslip\nexport enum PickType {\n Race,\n Sport,\n}\n@Injectable({ providedIn: 'root' })\nexport class EventBridgeService {\n constructor(\n private nativeApp: NativeAppService,\n private betslipConfig: BetslipConfig,\n ) {}\n\n // used for rate the app\n notifyBetPlaced(isSuccessful: boolean): void {\n this.send(BridgeEvent.BetPlaced, { isSuccessful });\n }\n\n notifySliderGameOpening(sliderGameId: string): void {\n this.send(BridgeEvent.SliderGameOpened, { gameTypeId: sliderGameId });\n }\n\n // used for OL tracking\n // TODO: replace with picks:MS2.Services.Betslip.Pick[]\n notifyBetConfirmation(picks: any, betType: string, stake: number): void {\n if (!this.betslipConfig.disableOLTracking) {\n this.send(BridgeEvent.BetConfirmation, {\n betType,\n stake: stake.toString(),\n bets: this.mapPicksToBetParameters(picks),\n });\n }\n }\n\n // used for OL tracking\n notifySuccessfulBetPlacements(betslipData: any, currency: any): void {\n if (!this.betslipConfig.disableOLTracking) {\n this.send(BridgeEvent.BetPlacement, {\n betType: betslipData.betType,\n bets: this.mapPicksToBetParameters(betslipData.picks),\n stake: betslipData.stake,\n totalPickCount: betslipData.totalPickCount,\n isEachWaySelected: betslipData.isEachWaySelected,\n isLive: betslipData.picks.some((pick: any) => pick.live) ? 'true' : 'false',\n currency,\n });\n }\n }\n\n navigationClick(section: TrackNavArea, ccbKey?: string): void {\n if (ccbKey) {\n this.send(BridgeEvent.MenuIteamNavigation, {\n ccbKey,\n section,\n });\n }\n }\n\n private send(eventName: string, data?: { [key: string]: any }): void {\n if (!eventName) {\n throw new Error('EventName is not defined');\n }\n\n this.nativeApp.sendToNative({\n eventName,\n parameters: data,\n });\n }\n\n // TODO: replace with picks:MS2.Services.Betslip.Pick[]\n private mapPicksToBetParameters(picks: any): any {\n const mappedBets: any[] = [];\n picks.forEach((pick: any) => {\n // pick: MS2.Services.Betslip.Pick\n if (pick.type === PickType.Sport) {\n // TODO: fix the type when betslip is refactored\n const sportPick = pick; // as MS2.Services.Betslip.SportPick;\n mappedBets.push({\n eventName: sportPick.eventName,\n eventId: sportPick.eventId.toString(),\n marketName: sportPick.marketName,\n marketId: sportPick.marketId.toString(),\n resultName: sportPick.optionName,\n resultId: sportPick.optionId.toString(),\n sportId: sportPick.sportId.toString(),\n sportName: this.getSportNameFromId(sportPick.sportId),\n });\n } else if (pick.type === PickType.Race) {\n // 2017-11-06 - no tracking needed for horse racing\n }\n });\n\n return mappedBets;\n }\n\n private getSportNameFromId(sportId: number): string {\n const sportIdToName = {\n 4: 'Football',\n 5: 'Tennis',\n 7: 'Basketball',\n };\n\n return sportIdToName[sportId as 4 | 5 | 7] || 'Other';\n }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\nimport { template, templateSettings } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'msInterpolate',\n standalone: true,\n})\nexport class StringInterpolationPipe implements PipeTransform {\n transform(value: string | null, params: object | undefined): string {\n if (value == null || value === '') {\n return '';\n }\n\n templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n const interpolate = template(value);\n try {\n return interpolate(params);\n } catch {\n return value;\n }\n }\n}\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[msRemoveHref]',\n standalone: true,\n})\nexport class RemoveHrefDirective implements OnChanges {\n @Input('msRemoveHref') removeHref: boolean;\n\n constructor(\n private element: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.removeHref) {\n this.renderer.removeAttribute(this.element.nativeElement, 'href');\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { PlainLinkComponent } from '@frontend/vanilla/core';\n\nimport { RemoveHrefDirective } from './remove-href.directive';\n\n//THIS MODULE IS POINTLESS\n@NgModule({\n imports: [CommonModule, PlainLinkComponent, RemoveHrefDirective],\n declarations: [],\n exports: [RemoveHrefDirective, PlainLinkComponent],\n})\nexport class NavigationCoreModule {}\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, InjectionToken, EventEmitter, Directive, Optional, Input, Output, NgModule } from '@angular/core';\n\n/**\n * A pending copy-to-clipboard operation.\n *\n * The implementation of copying text to the clipboard modifies the DOM and\n * forces a re-layout. This re-layout can take too long if the string is large,\n * causing the execCommand('copy') to happen too long after the user clicked.\n * This results in the browser refusing to copy. This object lets the\n * re-layout happen in a separate tick from copying by providing a copy function\n * that can be called later.\n *\n * Destroy must be called when no longer in use, regardless of whether `copy` is\n * called.\n */\nclass PendingCopy {\n constructor(text, _document) {\n this._document = _document;\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = text;\n // Making the textarea `readonly` prevents the screen from jumping on iOS Safari (see #25169).\n textarea.readOnly = true;\n // The element needs to be inserted into the fullscreen container, if the page\n // is in fullscreen mode, otherwise the browser won't execute the copy command.\n (this._document.fullscreenElement || this._document.body).appendChild(textarea);\n }\n /** Finishes copying the text. */\n copy() {\n const textarea = this._textarea;\n let successful = false;\n try {\n // Older browsers could throw if copy is not supported.\n if (textarea) {\n const currentFocus = this._document.activeElement;\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n successful = this._document.execCommand('copy');\n if (currentFocus) {\n currentFocus.focus();\n }\n }\n } catch {\n // Discard error.\n // Initial setting of {@code successful} will represent failure here.\n }\n return successful;\n }\n /** Cleans up DOM changes used to perform the copy operation. */\n destroy() {\n const textarea = this._textarea;\n if (textarea) {\n textarea.remove();\n this._textarea = undefined;\n }\n }\n}\n\n/**\n * A service for copying text to the clipboard.\n */\nlet Clipboard = /*#__PURE__*/(() => {\n class Clipboard {\n constructor(document) {\n this._document = document;\n }\n /**\n * Copies the provided text into the user's clipboard.\n *\n * @param text The string to copy.\n * @returns Whether the operation was successful.\n */\n copy(text) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n return successful;\n }\n /**\n * Prepares a string to be copied later. This is useful for large strings\n * which take too long to successfully render and be copied in the same tick.\n *\n * The caller must call `destroy` on the returned `PendingCopy`.\n *\n * @param text The string to copy.\n * @returns the pending copy operation.\n */\n beginCopy(text) {\n return new PendingCopy(text, this._document);\n }\n static {\n this.ɵfac = function Clipboard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Clipboard)(i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Clipboard,\n factory: Clipboard.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Clipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token that can be used to provide the default options to `CdkCopyToClipboard`. */\nconst CDK_COPY_TO_CLIPBOARD_CONFIG = /*#__PURE__*/new InjectionToken('CDK_COPY_TO_CLIPBOARD_CONFIG');\n/**\n * Provides behavior for a button that when clicked copies content into user's\n * clipboard.\n */\nlet CdkCopyToClipboard = /*#__PURE__*/(() => {\n class CdkCopyToClipboard {\n constructor(_clipboard, _ngZone, config) {\n this._clipboard = _clipboard;\n this._ngZone = _ngZone;\n /** Content to be copied. */\n this.text = '';\n /**\n * How many times to attempt to copy the text. This may be necessary for longer text, because\n * the browser needs time to fill an intermediate textarea element and copy the content.\n */\n this.attempts = 1;\n /**\n * Emits when some text is copied to the clipboard. The\n * emitted value indicates whether copying was successful.\n */\n this.copied = new EventEmitter();\n /** Copies that are currently being attempted. */\n this._pending = new Set();\n if (config && config.attempts != null) {\n this.attempts = config.attempts;\n }\n }\n /** Copies the current text to the clipboard. */\n copy(attempts = this.attempts) {\n if (attempts > 1) {\n let remainingAttempts = attempts;\n const pending = this._clipboard.beginCopy(this.text);\n this._pending.add(pending);\n const attempt = () => {\n const successful = pending.copy();\n if (!successful && --remainingAttempts && !this._destroyed) {\n // We use 1 for the timeout since it's more predictable when flushing in unit tests.\n this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n } else {\n this._currentTimeout = null;\n this._pending.delete(pending);\n pending.destroy();\n this.copied.emit(successful);\n }\n };\n attempt();\n } else {\n this.copied.emit(this._clipboard.copy(this.text));\n }\n }\n ngOnDestroy() {\n if (this._currentTimeout) {\n clearTimeout(this._currentTimeout);\n }\n this._pending.forEach(copy => copy.destroy());\n this._pending.clear();\n this._destroyed = true;\n }\n static {\n this.ɵfac = function CdkCopyToClipboard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkCopyToClipboard)(i0.ɵɵdirectiveInject(Clipboard), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CDK_COPY_TO_CLIPBOARD_CONFIG, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCopyToClipboard,\n selectors: [[\"\", \"cdkCopyToClipboard\", \"\"]],\n hostBindings: function CdkCopyToClipboard_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CdkCopyToClipboard_click_HostBindingHandler() {\n return ctx.copy();\n });\n }\n },\n inputs: {\n text: [0, \"cdkCopyToClipboard\", \"text\"],\n attempts: [0, \"cdkCopyToClipboardAttempts\", \"attempts\"]\n },\n outputs: {\n copied: \"cdkCopyToClipboardCopied\"\n },\n standalone: true\n });\n }\n }\n return CdkCopyToClipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ClipboardModule = /*#__PURE__*/(() => {\n class ClipboardModule {\n static {\n this.ɵfac = function ClipboardModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ClipboardModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ClipboardModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return ClipboardModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_COPY_TO_CLIPBOARD_CONFIG, CdkCopyToClipboard, Clipboard, ClipboardModule, PendingCopy };\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { DeviceService, WINDOW } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Represents service to interact with clipboard.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\n *\n * @experimental\n */\n@Injectable({ providedIn: 'root' })\nexport class ClipboardService {\n private clipboard = inject(Clipboard);\n private deviceService = inject(DeviceService);\n private textAreaElement: HTMLTextAreaElement | undefined;\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n /**\n * @description Copy the provided text to clipboard.\n * @param text Text to copy to clipboard\n * @returns `boolean` indicating if the text was copied to clipboard\n *\n * @example\n * ```typescript\n * clipboardService.copyFromContent('content');\n * ```\n */\n copy(text: string): boolean {\n if (this.clipboard.copy(text)) {\n return true;\n }\n\n // Fallback for browsers that do not support clipboard API\n this.removeTextArea();\n\n this.textAreaElement = this.createTextArea();\n this._doc.body.appendChild(this.textAreaElement);\n this.textAreaElement.value = text;\n\n try {\n this.selectTextArea(this.textAreaElement);\n const copied = this._doc.execCommand('copy');\n this.clearSelection(this.textAreaElement);\n\n this.removeTextArea();\n\n return copied;\n } catch {\n this.removeTextArea();\n\n return false;\n }\n }\n\n // Create a temp Textarea element to copy from\n private createTextArea(): HTMLTextAreaElement {\n const isRtl = this._doc.documentElement.getAttribute('dir') === 'rtl';\n const textArea = this._doc.createElement('textarea');\n\n // Prevent zooming on iOS\n textArea.style.fontSize = '12pt';\n\n // Reset box model\n textArea.style.border = '0';\n textArea.style.padding = '0';\n textArea.style.margin = '0';\n\n // Move element out of screen horizontally\n textArea.style.position = 'absolute';\n textArea.style[isRtl ? 'right' : 'left'] = '-9999px';\n\n // Move element to the same position vertically\n const yPosition = this.#window.scrollY || this._doc.documentElement.scrollTop;\n textArea.style.top = yPosition + 'px';\n textArea.setAttribute('readonly', '');\n\n return textArea;\n }\n\n private selectTextArea(element: HTMLTextAreaElement) {\n if (this.deviceService.isiOS) {\n const editable = element.contentEditable;\n const readOnly = element.readOnly;\n\n element.contentEditable = 'true';\n element.readOnly = true;\n\n const range = this._doc.createRange();\n range.selectNodeContents(element);\n\n const selection = this.#window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n\n element.setSelectionRange(0, 999999);\n element.contentEditable = editable;\n element.readOnly = readOnly;\n } else {\n element.select();\n }\n }\n\n // Removes current selection and focus from target element.\n private clearSelection(element: HTMLTextAreaElement) {\n element?.blur();\n this.#window.getSelection()?.removeAllRanges();\n }\n\n private removeTextArea() {\n if (this.textAreaElement) {\n this._doc.body.removeChild(this.textAreaElement);\n this.textAreaElement = undefined;\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DeviceService, NativeAppService, NativeEventType, WINDOW } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Represents service to interact with Web Share API.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_API\n *\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ShareService {\n private deviceService = inject(DeviceService);\n private nativeAppService = inject(NativeAppService);\n readonly #window = inject(WINDOW);\n\n /**\n * Shares data using Web Share API.\n * @param data Data to share.\n * @param eventName Event name used to notify native app.\n * @returns `true` if sharing was successful, `false` otherwise.\n */\n async share(data: ShareData, eventName: string = NativeEventType.SHARE): Promise {\n if (this.deviceService.isAndroid && this.nativeAppService.isNativeWrapper) {\n this.nativeAppService.sendToNative({\n eventName,\n parameters: data,\n });\n\n return true;\n }\n\n if (!this.#window.navigator.share) {\n return false;\n }\n\n await this.#window.navigator.share(data);\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BalanceProperties, ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnBalanceProperties', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: balancePropertiesConfigFactory,\n})\nexport class BalancePropertiesConfig extends LazyClientConfigBase {\n balanceProperties: BalanceProperties;\n}\n\nexport function balancePropertiesConfigFactory(service: LazyClientConfigService) {\n return service.get(BalancePropertiesConfig);\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { BalanceProperties, BalanceSettingsConfig, SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { BalanceTransfer, BalanceUpdate } from './balance-properties.models';\n\n/**\n * @whatItDoes Provides access to users balance and means to refresh it or transfer between types.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class BalancePropertiesService {\n readonly balanceInfo = signal(null);\n\n get balanceProperties(): Observable {\n return this.balancePropertiesEvents;\n }\n\n private readonly balancePropertiesEvents = new BehaviorSubject(null);\n\n constructor(\n private userService: UserService,\n private apiService: SharedFeaturesApiService,\n private balanceSettingsConfig: BalanceSettingsConfig,\n ) {}\n\n refresh(propagate: boolean = true) {\n if (this.userService.isAuthenticated) {\n this.apiService.get('balance', undefined, { showSpinner: false }).subscribe((response: BalanceUpdate) => {\n this.balanceInfo.set({ ...response.balance, propagateRefresh: propagate });\n this.balancePropertiesEvents.next({ ...response.balance, propagateRefresh: propagate });\n });\n }\n }\n\n update(balanceProperties: BalanceProperties) {\n this.balanceInfo.set(balanceProperties);\n this.balancePropertiesEvents.next(balanceProperties);\n }\n\n transfer(data: BalanceTransfer): Observable {\n return this.apiService.post('balance/transfer', data);\n }\n\n isLow(balance: number): boolean {\n const lowBalanceThreshold =\n this.balanceSettingsConfig.lowThresholds[this.userService.currency] || this.balanceSettingsConfig.lowThresholds['*'];\n\n if (lowBalanceThreshold == null) {\n return false;\n }\n\n return balance <= lowBalanceThreshold;\n }\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\n\nimport {\n BalanceProperties,\n BalancePropertiesCoreService,\n LocalStoreKey,\n LocalStoreService,\n NativeAppService,\n NativeEvent,\n NativeEventType,\n OnFeatureInit,\n TrackingService,\n UserPreHooksLoginEvent,\n UserService,\n UserUpdateEvent,\n WINDOW,\n WindowEvent,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BalancePropertiesConfig } from './balance-properties.client-config';\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesBootstrapService implements OnFeatureInit {\n readonly #window = inject(WINDOW);\n\n constructor(\n private balancePropertiesService: BalancePropertiesService,\n private balancePropertiesConfig: BalancePropertiesConfig,\n private userService: UserService,\n private nativeAppService: NativeAppService,\n private localStoreService: LocalStoreService,\n private zone: NgZone,\n private trackingService: TrackingService,\n private balancePropertiesCoreService: BalancePropertiesCoreService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.balancePropertiesConfig.whenReady);\n\n this.balancePropertiesService.update(this.balancePropertiesConfig.balanceProperties);\n this.balancePropertiesCoreService.set(this.balancePropertiesService);\n //Necessary for betstation gridconnect login as it's a new login on top of anonymous user.\n this.userService.events.pipe(filter((e) => e instanceof UserPreHooksLoginEvent)).subscribe(() => {\n this.balancePropertiesService.refresh();\n });\n\n this.zone.runOutsideAngular(() => {\n // Refresh balance on focus but do not propagate it to other balances.\n this.#window.addEventListener(WindowEvent.Focus, () => {\n if (this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh(false);\n }\n });\n\n this.#window.addEventListener(WindowEvent.Storage, (event: StorageEvent) => {\n if (event.storageArea == localStorage) {\n const authKey = this.localStoreService.get(LocalStoreKey.AuthStorageKey);\n\n if (authKey === 0 && this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh();\n }\n }\n });\n });\n\n this.nativeAppService.eventsFromNative.subscribe((e: NativeEvent) => {\n const eventName = e.eventName.toUpperCase();\n if (eventName === NativeEventType.GETBALANCE) {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.USERBALANCE,\n parameters: {\n amount: this.balancePropertiesConfig.balanceProperties.accountBalance,\n currencyCode: this.userService.currency,\n },\n });\n } else if (eventName === NativeEventType.UPDATEBALANCE) {\n this.balancePropertiesService.refresh();\n }\n });\n\n this.balancePropertiesService.balanceProperties.pipe(filter(Boolean)).subscribe((balance: BalanceProperties) => {\n this.userService.triggerEvent(new UserUpdateEvent(new Map([['balanceProperties', balance]])));\n\n this.trackingService.triggerEvent('Event.Balance_Refresh', {\n 'user.profile.bal': balance.accountBalance,\n 'user.profile.previousBal': this.balancePropertiesConfig.balanceProperties.accountBalance,\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n BalanceProperties,\n DSL_NOT_READY,\n DslCacheService,\n DslRecordable,\n DslRecorderService,\n DslValuesProvider,\n IntlService,\n} from '@frontend/vanilla/core';\n\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesDslValuesProvider implements DslValuesProvider {\n private balanceProperties: BalanceProperties | null;\n\n constructor(\n private readonly dslRecorderService: DslRecorderService,\n private readonly intlService: IntlService,\n readonly balancePropertiesService: BalancePropertiesService,\n readonly dslCacheService: DslCacheService,\n ) {\n balancePropertiesService.balanceProperties.subscribe((balanceProperties: BalanceProperties | null) => {\n this.balanceProperties = balanceProperties;\n dslCacheService.invalidate(['balance']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n const recordable = this.dslRecorderService.createRecordable('balance');\n const createProperty = (name: string, getProperty: (b: BalanceProperties) => number) => {\n recordable.createProperty({\n name,\n get: () => (this.balanceProperties ? getProperty(this.balanceProperties) : DSL_NOT_READY),\n deps: ['balance'],\n });\n };\n\n createProperty('AccountBalance', (b) => b.accountBalance);\n createProperty('PayPalBalance', (b) => b.payPalBalance);\n createProperty('PayPalRestrictedBalance', (b) => b.payPalRestrictedBalance);\n createProperty('PayPalCashoutableBalance', (b) => b.payPalCashoutableBalance);\n createProperty('BalanceForGameType', (b) => b.balanceForGameType);\n createProperty('BonusWinningsRestrictedBalance', (b) => b.bonusWinningsRestrictedBalance);\n createProperty('CashoutRestrictedBalance', (b) => b.cashoutRestrictedBalance);\n createProperty('CashoutableBalance', (b) => b.cashoutableBalance);\n createProperty('CashoutableBalanceReal', (b) => b.cashoutableBalanceReal);\n createProperty('AvailableBalance', (b) => b.availableBalance);\n createProperty('DepositRestrictedBalance', (b) => b.depositRestrictedBalance);\n createProperty('InPlayAmount', (b) => b.inPlayAmount);\n createProperty('ReleaseRestrictedBalance', (b) => b.releaseRestrictedBalance);\n createProperty('PlayMoneyBalance', (b) => b.playMoneyBalance);\n createProperty('PlayMoneyInPlayAmount', (b) => b.playMoneyInPlayAmount);\n createProperty('OwedAmount', (b) => b.owedAmount);\n createProperty('TaxWithheldAmount', (b) => b.taxWithheldAmount);\n createProperty('PokerWinningsRestrictedBalance', (b) => b.pokerWinningsRestrictedBalance);\n createProperty('CashoutRestrictedCashBalance', (b) => b.cashoutRestrictedCashBalance);\n createProperty('CashoutableBalanceAtOnline', (b) => b.cashoutableBalanceAtOnline);\n createProperty('CashoutableBalanceAtRetail', (b) => b.cashoutableBalanceAtRetail);\n createProperty('CreditCardDepositBalance', (b) => b.creditCardDepositBalance);\n createProperty('CreditCardWinningsBalance', (b) => b.creditCardWinningsBalance);\n createProperty('DebitCardDepositBalance', (b) => b.debitCardDepositBalance);\n createProperty('MainRealBalance', (b) => b.mainRealBalance);\n createProperty('UncollectedFunds', (b) => b.uncollectedFunds);\n createProperty('SportsDepositBalance', (b) => b.sportsDepositBalance);\n createProperty('SportsExclusiveBalance', (b) => b.sportsExclusiveBalance);\n createProperty('GamesDepositBalance', (b) => b.gamesDepositBalance);\n createProperty('SportsWinningsBalance', (b) => b.sportsWinningsBalance);\n createProperty('PokerWinningsBalance', (b) => b.pokerWinningsBalance);\n createProperty('SlotsWinningsBalance', (b) => b.slotsWinningsBalance);\n createProperty('SportsRestrictedBalance', (b) => b.sportsRestrictedBalance);\n createProperty('PokerRestrictedBalance', (b) => b.pokerRestrictedBalance);\n createProperty('SlotsRestrictedBalance', (b) => b.slotsRestrictedBalance);\n createProperty('AllWinningsBalance', (b) => b.allWinningsBalance);\n createProperty('MaxLimitExceededBalance', (b) => b.maxLimitExceededBalance);\n createProperty('PrepaidCardDepositBalance', (b) => b.prepaidCardDepositBalance);\n\n recordable.createFunction({ name: 'IsLow', get: (balance: number) => this.balancePropertiesService.isLow(balance), deps: [] });\n recordable.createFunction({ name: 'Format', get: (balance: number) => this.intlService.formatCurrency(balance), deps: [] });\n\n return { Balance: recordable };\n }\n}\n","import { registerLazyDslOnModuleInit, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BalancePropertiesBootstrapService } from './balance-properties-bootstrap.service';\nimport { BalancePropertiesDslValuesProvider } from './balance-properties-dsl-values-provider';\n\nexport function provide() {\n return [runOnFeatureInit(BalancePropertiesBootstrapService), registerLazyDslOnModuleInit(BalancePropertiesDslValuesProvider)];\n}\n","/**\n * @whatItDoes Represents balance transfer model.\n *\n * @stable\n */\nimport { BalanceProperties } from '@frontend/vanilla/core';\n\nexport interface BalanceTransfer {\n amount: number;\n fromBalanceType: BalanceType;\n toBalanceType: BalanceType;\n}\n\n/**\n * @whatItDoes Represents supported balance types for transfers from/to.\n *\n * @stable\n */\nexport enum BalanceType {\n PayPalBal = 'PAYPAL_BAL',\n MainRealBal = 'MAIN_REAL_BAL',\n}\n\n/**\n * @whatItDoes Represents balance update model.\n */\nexport interface BalanceUpdate {\n balance: BalanceProperties;\n}\n","import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService } from '@frontend/vanilla/core';\nimport { BalancePropertiesService } from '@frontend/vanilla/features/balance-properties';\nimport { flatten, values } from 'lodash-es';\nimport { Observable, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { Bonus, BonusBalance, BonusBalanceResponse } from './bonus-balance.models';\n\n/**\n * @whatItDoes Provides functionality to get bonus balance\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class BonusBalanceService {\n private bonusBalanceEvents = new ReplaySubject(1);\n private bonusBalanceV4Events = new ReplaySubject(1);\n private bonusBalanceRefreshInProgress: boolean;\n private refreshSubscription: Subscription;\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private balancePropertiesService: BalancePropertiesService,\n ) {}\n\n get bonusBalance(): Observable {\n return this.bonusBalanceEvents;\n }\n\n get bonusBalanceV4(): Observable {\n return this.bonusBalanceV4Events;\n }\n\n refresh() {\n this.refreshBonusBalance();\n }\n\n private refreshBonusBalance() {\n if (!this.bonusBalanceRefreshInProgress) {\n this.bonusBalanceRefreshInProgress = true;\n\n this.apiService\n .get('balance/bonus')\n .pipe(\n map((r: BonusBalanceResponse) => {\n this.bonusBalanceV4Events.next(r);\n return this.calculateProductAmounts(flatten(values(r).map((v) => v.bonuses)));\n }),\n )\n .subscribe((bonusBalance) => {\n this.bonusBalanceEvents.next(bonusBalance);\n this.bonusBalanceRefreshInProgress = false;\n this.startRefreshOnBalanceRefresh();\n });\n }\n }\n\n private startRefreshOnBalanceRefresh() {\n if (!this.refreshSubscription) {\n this.refreshSubscription = this.balancePropertiesService.balanceProperties\n .pipe(\n filter(Boolean),\n filter((b) => b.propagateRefresh),\n )\n .subscribe(() => this.refresh());\n }\n }\n\n private calculateProductAmounts(bonuses: Bonus[]): BonusBalance {\n return bonuses.reduce(\n (result, bonus) => {\n let postfix: string;\n\n if (bonus.isBonusActive) {\n postfix = '';\n } else {\n postfix = '_inactive';\n }\n\n bonus.applicableProducts.forEach((p) => (result[p + postfix] = (result[p + postfix] || 0) + bonus.bonusAmount));\n\n return result;\n },\n {},\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BonusBalanceService } from './bonus-balance.service';\n\n@Injectable()\nexport class BonusBalanceBootstrapService implements OnFeatureInit {\n constructor(private bonusBalanceService: BonusBalanceService) {}\n\n onFeatureInit() {\n this.bonusBalanceService.refresh();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DSL_NOT_READY, DslCacheService, DslRecordable, DslRecorderService, DslValuesProvider, UserService } from '@frontend/vanilla/core';\n\nimport { BonusBalance, BonusBalanceResponse } from './bonus-balance.models';\nimport { BonusBalanceService } from './bonus-balance.service';\n\n@Injectable()\nexport class BonusBalanceDslValuesProvider implements DslValuesProvider {\n private bonusBalance: BonusBalance | null = null;\n private bonusBalanceV4: BonusBalanceResponse | null = null;\n private refreshed: boolean = false;\n\n constructor(\n private dslRecorderService: DslRecorderService,\n private bonusBalanceService: BonusBalanceService,\n private user: UserService,\n dslCacheService: DslCacheService,\n ) {\n this.bonusBalanceService.bonusBalance.subscribe((b) => {\n this.bonusBalance = b;\n this.refreshed = true;\n\n dslCacheService.invalidate(['bonusBalance.Get']);\n });\n\n this.bonusBalanceService.bonusBalanceV4.subscribe((b) => {\n this.bonusBalanceV4 = b;\n this.refreshed = true;\n\n dslCacheService.invalidate(['bonusBalance.GetBonusByType']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n return {\n BonusBalance: this.dslRecorderService\n .createRecordable('bonusBalance')\n .createFunction({\n name: 'Get',\n get: (product: string) => this.getCurrentValue(() => (this.bonusBalance ? this.bonusBalance[product] || 0 : DSL_NOT_READY)),\n deps: ['bonusBalance.Get', 'user.isAuthenticated'],\n })\n .createFunction({\n name: 'GetBonusByType',\n get: (product: string) => this.getCurrentValue(() => (this.bonusBalanceV4 ? this.getIndividualBonus(product) : DSL_NOT_READY)),\n deps: ['bonusBalance.GetBonusByType', 'user.isAuthenticated'],\n })\n .createProperty({\n name: 'ThirdParty',\n get: () => (this.user.isAuthenticated ? 0 : -1),\n deps: ['bonusBalance.ThirdParty', 'user.isAuthenticated'],\n }),\n };\n }\n\n private getCurrentValue(get: () => number): number {\n if (!this.user.isAuthenticated) {\n return -1;\n }\n\n if (!this.refreshed) {\n this.refreshed = true;\n this.bonusBalanceService.refresh();\n }\n\n return get();\n }\n\n private getIndividualBonus(bonusType: string): number {\n let balance: number = 0;\n\n if (this.bonusBalanceV4) {\n this.bonusBalanceV4[bonusType.toLocaleLowerCase()]?.bonuses.forEach((bonus) => {\n if (bonus.isBonusActive) balance += bonus.bonusAmount;\n });\n }\n\n return balance;\n }\n}\n","import { registerLazyDslOnModuleInit, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BonusBalanceBootstrapService } from './bonus-balance-bootstrap.service';\nimport { BonusBalanceDslValuesProvider } from './bonus-balance-dsl-values-provider';\n\nexport function provide() {\n return [registerLazyDslOnModuleInit(BonusBalanceDslValuesProvider), runOnFeatureInit(BonusBalanceBootstrapService)];\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject, groupBy, mergeMap, throttleTime } from 'rxjs';\n\n/**\n * @stable\n */\nexport interface KycStatus extends Record {\n accountStatus: string;\n accountVerificationIsRequired: boolean;\n additionalKycInfo: { Key: ''; Value: '' }[];\n additionalRibbonInfo: { Key: ''; Value: '' }[];\n addressVerificationStatus: string;\n ageVerificationGraceDays: number;\n ageVerificationGracePeriod: string;\n ageVerificationStatus: string;\n amlVerificationStatus: string;\n bankAccountIsRegistered: boolean;\n bankIdVerificationStatus: string;\n blackListVerificationStatus: string;\n createDate: string;\n custom3: string;\n custom4: string;\n depositGraceDays: number;\n depositSuppressed: boolean;\n docsPendingWith: string;\n documentUploadStatusIsPending: boolean;\n emailVerificationStatus: string;\n f2FVerificationRequired: boolean;\n graceDaysBeforeNextAction: number;\n graceDaysUnit: string;\n idVerificationGraceDays: number;\n idVerificationStatus: string;\n idVerificationGracePeriod: string;\n isBlackListAttempted: boolean;\n isCommVerified: boolean;\n isEmailVerified: boolean;\n isKycStarted: boolean;\n isMobileNumberVerified: boolean;\n isTransitionPlayer: boolean;\n kycAttempts: number;\n kycAuthenticationStatus: string;\n kycMaxAttempts: number;\n kycMaxAttemptsReached: boolean;\n kycVerified: boolean;\n partiallyVerified: boolean;\n personalIdVerificationStatus: string;\n ribbonStatusCode: string;\n ribbonStatusMessage: string;\n secretPinVerificationStatus: string;\n ssnVerificationAttempts: number;\n ssnVerificationMaxAttempts: number;\n ssnVerificationMaxAttemptsReached: boolean;\n ssnVerificationStatus: string;\n thirdPartyVerificationStatus: string;\n userHasBonuses: boolean;\n verificationDaysLeft: number;\n verificationStatus: string;\n verificationType: string;\n}\n\n/**\n * Options to be passed to {@link KycStatusService#refresh}\n *\n * @experimental\n */\nexport interface KycStatusOptions extends Record {\n /**\n * If provided, it will be passed to the document upload API.\n */\n useCase?: string;\n /**\n * if true it will try to fetch values from cache.\n */\n cached?: boolean;\n}\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class KycStatusService {\n readonly status = signal(null);\n public static UnauthKycStatus: KycStatus = {\n accountStatus: 'Unknown',\n accountVerificationIsRequired: false,\n additionalKycInfo: [],\n additionalRibbonInfo: [],\n addressVerificationStatus: 'Unknown',\n ageVerificationGraceDays: -1,\n ageVerificationGracePeriod: 'Unknown',\n ageVerificationStatus: 'Unknown',\n amlVerificationStatus: 'Unknown',\n bankAccountIsRegistered: false,\n bankIdVerificationStatus: 'Unknown',\n blackListVerificationStatus: 'Unknown',\n createDate: 'Unknown',\n custom3: 'Unknown',\n custom4: 'Unknown',\n depositGraceDays: -1,\n depositSuppressed: false,\n docsPendingWith: '',\n documentUploadStatusIsPending: false,\n emailVerificationStatus: 'Unknown',\n f2FVerificationRequired: false,\n graceDaysBeforeNextAction: -1,\n graceDaysUnit: 'Unknown',\n idVerificationGraceDays: -1,\n idVerificationStatus: 'Unknown',\n idVerificationGracePeriod: 'Unknown',\n isBlackListAttempted: false,\n isCommVerified: false,\n isEmailVerified: false,\n isKycStarted: false,\n isMobileNumberVerified: false,\n isTransitionPlayer: false,\n kycAttempts: -1,\n kycAuthenticationStatus: 'Unknown',\n kycMaxAttempts: -1,\n kycMaxAttemptsReached: false,\n kycVerified: false,\n partiallyVerified: false,\n personalIdVerificationStatus: 'Unknown',\n ribbonStatusCode: 'Unknown',\n ribbonStatusMessage: 'Unknown',\n secretPinVerificationStatus: 'Unknown',\n ssnVerificationAttempts: -1,\n ssnVerificationMaxAttempts: -1,\n ssnVerificationMaxAttemptsReached: false,\n ssnVerificationStatus: 'Unknown',\n thirdPartyVerificationStatus: 'Unknown',\n userHasBonuses: false,\n verificationDaysLeft: -1,\n verificationStatus: 'Unknown',\n verificationType: 'Unspecified',\n };\n\n private kycStatusEvents = new BehaviorSubject(null);\n private refreshSubject = new Subject();\n\n get kycStatus(): Observable {\n return this.kycStatusEvents;\n }\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private user: UserService,\n ) {\n this.refreshSubject\n .pipe(\n groupBy((kycStatusOptions) => JSON.stringify(kycStatusOptions)), // Group by kycStatusOptions value\n mergeMap((group) =>\n group.pipe(\n throttleTime(1000), // Apply throttle to each group\n ),\n ),\n )\n .subscribe((kycStatusOptions) => {\n this.load(kycStatusOptions);\n });\n }\n\n /**\n * @description Will not call the API if user is not authenticated.\n *\n * @param kycStatusOptions Kyc options to be passed to kyc status api.\n */\n refresh(kycStatusOptions?: KycStatusOptions) {\n if (!this.user.isAuthenticated) {\n return;\n }\n\n this.refreshSubject.next(kycStatusOptions);\n }\n\n private load(kycStatusOptions?: KycStatusOptions) {\n if (this.user.isAuthenticated) {\n this.apiService\n .get('kycstatus', { useCase: kycStatusOptions?.useCase, cached: !!kycStatusOptions?.cached })\n .subscribe((status: KycStatus) => {\n this.kycStatusEvents.next(status);\n this.status.set(status);\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\n@Injectable()\nexport class ArcMessageFrequencyService {\n private lastMsgDisplayDate: Date = new Date();\n\n constructor(private localStorage: LocalStoreService) {}\n\n isMessageFrequencyAvailable(key: string, frequency: number, loginActionKey: string, loginActionValue: string): boolean {\n const messageKey = this.localStorage.get(key);\n if (!messageKey || this.localStorage.get(loginActionKey) === loginActionValue) {\n return true;\n }\n\n this.lastMsgDisplayDate = new Date(messageKey as Date);\n this.lastMsgDisplayDate.setDate(this.lastMsgDisplayDate.getDate() + frequency);\n\n if (DateProviderService.getStartOfDay(this.lastMsgDisplayDate) <= DateProviderService.getStartOfDay(new Date())) {\n return true;\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { ArcRestrictionTrackingConstants, ArcRestrictionTrackingData, TrackingEvent } from './arc.model';\n\n@Injectable()\nexport class ArcRestrictionTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackSaferGambalingMessage(trackingEvent: string, trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingEvent, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: trackingData.action,\n [trackingConstants.COMPONENT_POSITION_EVENT]: trackingData.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.SaferGamblingEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n\n trackPlayBreakMessage(trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingEvent.Load,\n [trackingConstants.COMPONENT_POSITION_EVENT]: trackingData.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.PlayBreakEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n\n trackFindOutMoreLink(trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingEvent.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ArcRestrictionTrackingConstants.FindOutMoreLinkPositionEvent,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.SaferGamblingEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n}\n","import { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { createAction, props } from '@ngrx/store';\n\nimport { IConfigSettings, IUserBettingSettings } from '../model/user.models';\nimport { IUserState } from './state';\n\nexport class UserActions {\n static readonly ACTION_SCHEMA = '@sports_user/';\n\n private static readonly INIT_STATE = `${UserActions.ACTION_SCHEMA}INIT_STATE`;\n private static readonly USER_LOGGED_IN = `${UserActions.ACTION_SCHEMA}USER_LOGGED_IN`;\n private static readonly USER_LOGGED_OUT = `${UserActions.ACTION_SCHEMA}USER_LOGGED_OUT`;\n private static readonly UPDATE_STATE = `${UserActions.ACTION_SCHEMA}UPDATE_STATE`;\n private static readonly SET_WALLET_LOADED = `${UserActions.ACTION_SCHEMA}SET_WALLET_LOADED`;\n\n static initState = createAction(UserActions.INIT_STATE, props<{ state: IUserState }>());\n static setWalletLoaded = createAction(UserActions.SET_WALLET_LOADED, props<{ walletLoaded: boolean }>());\n static userLoggedIn = createAction(UserActions.USER_LOGGED_IN);\n static userLoggedOut = createAction(UserActions.USER_LOGGED_OUT);\n static updateState = createAction(\n UserActions.UPDATE_STATE,\n props<{\n settings: IUserBettingSettings;\n config: IConfigSettings;\n oddsFormat?: OddsDisplayFormat;\n }>(),\n );\n}\n","\n
{{ sitecore.betslip.messages.ARCPlayBreakHeader }}
\n
\n \n
\n {{ sitecore.betslip.messages.ARCPlayBreakMessage }} \n
\n
\n
\n\n\n \n
\n \n
{{ sitecore.betslip.arcBetslipMessages.ArcSaferGamblingHeader }}
\n \n
\n \n
\n \n
\n \n
\n
\n
\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ARCConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { PropType } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { isEmpty } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nimport { ArcMessageFrequencyService } from './arc-message-frequency.service';\nimport { ArcRestrictionTrackingService } from './arc-restriction-tracking.service';\nimport { ArcRestrictionService } from './arc-restriction.service';\nimport {\n ArcRestrictionTrackingConstants,\n FeatureLocation,\n IARCProfileConfiguration,\n ProfileActionName,\n ProfileMessageStorageKeys,\n TrackingEvent,\n} from './arc.model';\n\n@Component({\n selector: 'ms-arc-message',\n templateUrl: './arc-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ArcMessageComponent implements OnChanges {\n @Input() profileData: IARCProfileConfiguration;\n @Input() featureLocation: FeatureLocation;\n @HostBinding('class') className = 'playbreak';\n FeatureLocation = FeatureLocation;\n\n expanded = true;\n isMessageFrequency: boolean;\n isUserOnPlayBreak$: Observable;\n frequency: number;\n arcBetslipMessages: PropType, 'arcBetslipMessages'>;\n betslipMessage: string;\n\n constructor(\n public sitecore: Sitecore,\n private arcRestrictionService: ArcRestrictionService,\n private localStorage: LocalStoreService,\n private arcRestrictionTrackingService: ArcRestrictionTrackingService,\n private arcConfig: ARCConfig,\n private arcMessageFrequencyService: ArcMessageFrequencyService,\n ) {\n this.arcBetslipMessages = sitecore.betslip.arcBetslipMessages;\n this.isUserOnPlayBreak$ = this.arcRestrictionService.isUserOnPlayBreak$;\n this.arcRestrictionService.isUserOnPlayBreak$.pipe(takeUntilDestroyed()).subscribe((isBreak) => {\n if (isBreak) {\n this.trackMessage(NOT_APPLICABLE, undefined, isBreak);\n }\n });\n }\n\n ngOnChanges(): void {\n if (!isEmpty(this.profileData)) {\n this.handleBetSlipMessageAndFrequency();\n }\n }\n\n private handleBetSlipMessageAndFrequency(): void {\n const position = this.expanded ? TrackingEvent.Expand : TrackingEvent.Collapse;\n if (\n (!(this.featureLocation === FeatureLocation.PreBetSlipMessage) && !(this.featureLocation === FeatureLocation.PostBetSlipMessage)) ||\n !this.arcConfig.profileActionsSwitch.isBetslipMessagingEnabled\n ) {\n return;\n }\n this.getBetSlipMessage(this.profileData.profileId);\n const profileFrequency =\n this.profileData.profileActions.find((action) =>\n this.featureLocation === FeatureLocation.PreBetSlipMessage\n ? action.name === ProfileActionName.PreBetSlipMessage\n : action.name === ProfileActionName.PostBetSlipMessage,\n )?.frequency ?? 0;\n if (this.featureLocation === FeatureLocation.PreBetSlipMessage) {\n this.isMessageFrequency = this.arcMessageFrequencyService.isMessageFrequencyAvailable(\n ProfileMessageStorageKeys.preBetMessageStorageKey,\n profileFrequency,\n ProfileMessageStorageKeys.actionForMessagedisplayPre,\n ProfileMessageStorageKeys.firstLoginActionPrebet,\n );\n\n if (this.isMessageFrequency) {\n this.setLocalStorage(\n ProfileMessageStorageKeys.preBetMessageStorageKey,\n ProfileMessageStorageKeys.actionForMessagedisplayPre,\n ProfileMessageStorageKeys.firstLoginActionPrebet,\n );\n this.trackMessage(position, TrackingEvent.Load);\n }\n\n return;\n }\n this.isMessageFrequency = this.arcMessageFrequencyService.isMessageFrequencyAvailable(\n ProfileMessageStorageKeys.postBetMessageStorageKey,\n profileFrequency,\n ProfileMessageStorageKeys.actionForMessagedisplayPost,\n ProfileMessageStorageKeys.firstLoginActionPostbet,\n );\n if (this.isMessageFrequency) {\n this.setLocalStorage(\n ProfileMessageStorageKeys.postBetMessageStorageKey,\n ProfileMessageStorageKeys.actionForMessagedisplayPost,\n ProfileMessageStorageKeys.firstLoginActionPostbet,\n );\n this.trackMessage(position, TrackingEvent.Load);\n }\n }\n\n private getBetSlipMessage(profileId: string): void {\n const msgKey = Object.keys(this.arcBetslipMessages).find((key) =>\n this.featureLocation === FeatureLocation.PreBetSlipMessage\n ? key === `${ProfileActionName.PreBetSlipMessage}_${profileId}`\n : key === `${ProfileActionName.PostBetSlipMessage}_${profileId}`,\n );\n this.betslipMessage = msgKey ? this.arcBetslipMessages[msgKey] : this.betslipMessage;\n }\n\n private setLocalStorage(key: string, loginActionKey: string, loginActionValue: string): void {\n this.localStorage.set(key, new Date());\n this.localStorage.set(loginActionKey, loginActionValue);\n }\n\n toggle(): void {\n this.expanded = !this.expanded;\n const action = this.expanded ? TrackingEvent.Expand : TrackingEvent.Collapse;\n const position = action === TrackingEvent.Expand ? TrackingEvent.Collapse : TrackingEvent.Expand;\n this.trackMessage(position, action);\n }\n\n private trackMessage(position: string, action?: string, isPlayBreak?: boolean): void {\n const trackingData = {\n action,\n position,\n source:\n this.featureLocation === FeatureLocation.PreBetSlipMessage || isPlayBreak\n ? ArcRestrictionTrackingConstants.SourceBetslip\n : ArcRestrictionTrackingConstants.SourceBetslipReceipt,\n };\n if (isPlayBreak) {\n trackingData.source =\n this.featureLocation === FeatureLocation.QuickBet ? ArcRestrictionTrackingConstants.SourceBetslipQuickBet : trackingData.source;\n this.arcRestrictionTrackingService.trackPlayBreakMessage(trackingData);\n } else {\n const event = action === TrackingEvent.Load ? trackingConstants.EVENT_CONTENT_VIEW : trackingConstants.EVENT_TRACKING;\n this.arcRestrictionTrackingService.trackSaferGambalingMessage(event, trackingData);\n }\n }\n\n trackHelpLink(): void {\n const trackingData = {\n action: TrackingEvent.Click,\n position: ArcRestrictionTrackingConstants.FindOutMoreLinkPositionEvent,\n source: ArcRestrictionTrackingConstants.SourceBetslipReceipt,\n };\n this.arcRestrictionTrackingService.trackFindOutMoreLink(trackingData);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\n\nimport { ArcMessageFrequencyService } from './arc-message-frequency.service';\nimport { ArcMessageComponent } from './arc-message.component';\nimport { ArcRestrictionTrackingService } from './arc-restriction-tracking.service';\nimport { ArcRestrictionService } from './arc-restriction.service';\n\n@NgModule({\n imports: [CommonModule, TrustPipe],\n declarations: [ArcMessageComponent],\n exports: [ArcMessageComponent],\n providers: [ArcRestrictionService, ArcRestrictionTrackingService, ArcMessageFrequencyService],\n})\nexport class ArcModule {}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { createAction, props } from '@ngrx/store';\n\nimport { IPlacedBetInfo, IShareMyBetState } from './share-my-bet.state';\n\nexport class ShareMyBetActions {\n private static readonly INIT_GENERATE_SHORT_URI = '@share-my-bet/INIT_GENERATE_SHORT_URI';\n private static readonly SHARE = '@share-my-bet/SHARE';\n private static readonly GENERATE_SHORT_URI = '@share-my-bet/GENERATE_SHORT_URI';\n private static readonly OPEN_COPY_LINK_DIALOG = '@share-my-bet/OPEN_COPY_LINK_DIALOG';\n private static readonly CLOSE_COPY_LINK_DIALOG = '@share-my-bet/CLOSE_COPY_LINK_DIALOG';\n private static readonly DESTROY_STATE = '@share-my-bet/DESTROY_STATE';\n private static readonly COPY_SHORT_URI = '@share-my-bet/COPY_SHORT_URI';\n private static readonly REMOVE_COPIED = '@share-my-bet/REMOVE_COPIED';\n private static readonly RECEIVE_BET = '@share-my-bet/RECEIVE_BET';\n private static readonly REMOVE_RECEIVED_BET_MESSAGE = '@share-my-bet/REMOVE_RECEIVED_BET_MESSAGE';\n private static readonly POPULATE_FROM_STORAGE = '@share-my-bet/POPULATE_FROM_STORAGE';\n\n static initGenerateShortUri = createAction(ShareMyBetActions.INIT_GENERATE_SHORT_URI, pprops());\n static generateShortUri = createAction(ShareMyBetActions.GENERATE_SHORT_URI, pprops());\n static share = createAction(ShareMyBetActions.SHARE, pprops<{ uri: string; betInfo: IPlacedBetInfo }>());\n static openCopyLinkDialog = createAction(ShareMyBetActions.OPEN_COPY_LINK_DIALOG, props<{ betslipId: string }>());\n static closeCopyLinkDialog = createAction(ShareMyBetActions.CLOSE_COPY_LINK_DIALOG, props<{ betslipId: string }>());\n static copyShortUri = createAction(ShareMyBetActions.COPY_SHORT_URI, pprops<{ betslipId: string; uri: string }>());\n static removeCopied = createAction(ShareMyBetActions.REMOVE_COPIED, props<{ betslipId: string }>());\n static destroyState = createAction(ShareMyBetActions.DESTROY_STATE, props<{ betslipId: string }>());\n static receiveBet = createAction(ShareMyBetActions.RECEIVE_BET, props<{ pickCount: number }>());\n static removeReceiveBetMessage = createAction(ShareMyBetActions.REMOVE_RECEIVED_BET_MESSAGE);\n static populateFromStorage = createAction(ShareMyBetActions.POPULATE_FROM_STORAGE, pprops());\n}\n","export enum ShareMyBetTracking {\n BetSharing = 'Bet Sharing',\n ShareMyBet = 'Share My Bet',\n ShareBetLink = 'Share Bet Link',\n UserClicksButton = 'User Clicks \"Share My Bet\" Button',\n NotApplicable = 'not applicable',\n ShareMyBetClick = 'Share My Bet - Click',\n BetShared = 'Bet - Shared',\n CopyShareLinkClick = 'Copy Share Link - Click',\n LinkExpiredError = 'Link Expired - Error',\n ErrorLoaded = 'Error - Loaded',\n ErrorOkButton = 'OK CTA - Clicked',\n RefBet = 'refbet',\n}\n\nexport enum ShareMyBetCookie {\n Onboarding = 'shareMyBetOnboarding',\n Complience = 'shareMyBetComplience', // Complience, Needs to be removed after the next release\n Compliance = 'shareMyBetCompliance',\n TrackingRefBet = 'trackingRefbet',\n}\n\nexport const BetReceiptTrackingLocation = 'Bet Receipt';\n","import { Tv1PickData, Tv2PickData } from '@cds/query-objects';\n\nexport interface OptionQuery {\n fixture?: string;\n optionGroup?: number;\n option?: number;\n offerSource?: string;\n priceId?: number;\n tv1Legs?: Tv1PickData[];\n tv2Legs?: Tv2PickData[];\n}\n\nexport interface OptionRequest {\n query: OptionQuery[];\n stake: number | null;\n type: string | null;\n source: string;\n offerSource?: string;\n}\n\nexport interface OptionParams {\n options?: string;\n stake?: string;\n currency?: string;\n type?: string;\n source?: string;\n refbet?: string;\n offerSource?: string;\n}\n\nexport interface PickUriParams {\n stake?: number;\n type?: string;\n currency?: string;\n source?: string;\n userId?: string;\n addPage?: boolean;\n betslipId?: string;\n offerSource?: string;\n}\n\nexport enum BetslipConstants {\n Single = 'Single',\n Combo = 'Combo',\n System = 'System',\n}\n\nexport enum OptionParameters {\n OfferSource = 'offerSource',\n Source = 'source',\n Refbet = 'refbet',\n Currency = 'currency',\n Stake = 'stake',\n Type = 'type',\n Options = 'options',\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { capitalize, floor, reverse, toInteger, toNumber } from 'lodash-es';\n\nimport { BetslipConstants, OptionParameters, OptionParams, OptionQuery, OptionRequest, PickUriParams } from './pick-uri.model';\nimport { UrlHelperService } from './url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PickUriService {\n constructor(\n private urlService: UrlService,\n private urlHelperService: UrlHelperService,\n ) {}\n\n generate(picksParam: OptionQuery[], uriParams: PickUriParams): string {\n const basePath = `/${this.urlHelperService.productPath}`;\n\n const path = uriParams.addPage ? this.urlService.current().path() : basePath;\n const url = this.urlService.parse(path);\n const options = this.mapParams(picksParam);\n\n if (!options.length) {\n return '';\n }\n\n url.search.append(OptionParameters.Options, options.join(','));\n\n if (uriParams.type) {\n url.search.append(OptionParameters.Type, uriParams.type);\n }\n\n if (uriParams.stake) {\n url.search.append(OptionParameters.Stake, uriParams.stake.toString());\n\n if (uriParams.currency) {\n url.search.append(OptionParameters.Currency, uriParams.currency);\n }\n }\n\n if (uriParams.userId && uriParams.betslipId) {\n url.search.append(OptionParameters.Refbet, `${uriParams.userId}|${uriParams.betslipId}`);\n }\n\n if (uriParams.source) {\n url.search.append(OptionParameters.Source, uriParams.source);\n }\n\n if (picksParam.every((pick) => pick.offerSource === OfferSource.BetBuilder.toString())) {\n url.search.append(OptionParameters.OfferSource, OfferSource.BetBuilder.toString());\n }\n\n return url.url();\n }\n\n parse(params: OptionParams, userCurrency: string): OptionRequest {\n const result: OptionRequest = { query: [], stake: null, type: BetslipConstants.Single.valueOf(), source: 'AffliateOffer' };\n\n if (!params.options) {\n return result;\n }\n\n const decodedUri = decodeURIComponent(params.options);\n\n result.query = decodedUri\n .split(',')\n .map((fixture: string) => {\n if (this.isSgp(fixture)) {\n /** new url format for grouped picks (leg separator sign: '~' and also new param separator '_' due to sgpId format):\n * TV1: {fixtureId}_{pickGroupId}_{gameId}.{resultId}_{isClassicBetBuilder}~{fixtureId}_{pickGroupId}_{gameId}.{resultId}_{isClassicBetBuilder}\n * TV2: {fixtureId}_{pickGroupId}_{optionMarketId}_{optionId}_{isClassicBetBuilder}~{fixtureId}_{pickGroupId}_{optionMarketId}_{optionId}_{isClassicBetBuilder}\n */\n const legs = fixture.split('~');\n\n const parsedLegs: OptionQuery = {\n tv1Legs: [],\n tv2Legs: [],\n };\n\n legs.forEach((leg) => {\n const values = leg.split('_');\n\n if (this.isTv2Pick(values[0])) {\n parsedLegs.tv2Legs?.push({\n fixtureId: values[0],\n pickGroupId: values[1],\n optionMarketId: +values[2],\n optionId: +values[3],\n isClassicBetBuilder: JSON.parse(values[4]),\n });\n } else {\n parsedLegs.tv1Legs?.push({\n fixtureId: values[0],\n pickGroupId: values[1],\n gameId: +values[2],\n resultId: +values[3],\n useLiveFallback: JSON.parse(values[4]),\n });\n }\n });\n\n return parsedLegs;\n }\n\n const values = this.extractOptionIds(fixture);\n\n if (!fixture.includes(':') || values.length === 1) {\n return {\n fixture: values[2],\n optionGroup: values[1] ? toInteger(values[1]) : undefined,\n option: toInteger(values[0]),\n };\n } else {\n // check if priceid is passed\n if (values.length === 4) {\n return {\n fixture: values[3],\n optionGroup: values[2] ? toInteger(values[2]) : undefined,\n option: toInteger(values[1]),\n priceId: toInteger(values[0]),\n };\n } else {\n return {\n fixture: values[2],\n optionGroup: values[1] ? toInteger(values[1]) : undefined,\n option: toInteger(values[0]),\n };\n }\n }\n })\n .filter(isDefined);\n\n result.stake = this.getStake(params, userCurrency);\n result.type = this.getBetslipType(params);\n result.source = params.source || result.source;\n result.offerSource = params.offerSource;\n\n return result;\n }\n\n private extractOptionIds(fixture: string): string[] {\n if (fixture.includes('--')) {\n const optionIdIndex = fixture.indexOf('--');\n const optionId = fixture.slice(optionIdIndex);\n const fixtureOptionGroup = fixture.slice(0, optionIdIndex).split('-');\n\n return [optionId.substring(1), fixtureOptionGroup[1], fixtureOptionGroup[0]];\n }\n\n const fixtureParts = fixture.split('-');\n\n if (fixtureParts[1] && !fixtureParts[0]) {\n return [fixture];\n }\n\n return reverse(fixtureParts);\n }\n\n private mapParams(params: OptionQuery[]): string[] {\n const options: string[] = [];\n\n params.forEach((pick) => {\n if (pick.tv1Legs?.length || pick.tv2Legs?.length) {\n const tv1Legs =\n pick.tv1Legs?.map((leg) => `${leg.fixtureId}_${leg.pickGroupId}_${leg.gameId}_${leg.resultId}_${leg.useLiveFallback || false}`) ||\n [];\n const tv2Legs =\n pick.tv2Legs?.map(\n (leg) => `${leg.fixtureId}_${leg.pickGroupId}_${leg.optionMarketId}_${leg.optionId}_${leg.isClassicBetBuilder}`,\n ) || [];\n\n options.push([...tv1Legs, ...tv2Legs].join('~'));\n } else if (pick.priceId) {\n options.push(`${pick.fixture}-${pick.optionGroup}-${pick.option}-${pick.priceId}`);\n } else {\n options.push(`${pick.fixture}-${pick.optionGroup}-${pick.option}`);\n }\n });\n\n return options;\n }\n\n private getStake(params: OptionParams, usersCurrency: string): number | null {\n const currency = (params.currency || usersCurrency).toLowerCase();\n const userCurrency = usersCurrency.toLowerCase();\n\n let stake: number | null = null;\n const value = toNumber(params.stake);\n\n if (value <= 0) {\n return null;\n }\n\n if (userCurrency === currency.toLowerCase() && !isNaN(value)) {\n stake = this.floorNumber(value);\n\n if (stake > 10000000.0) {\n stake = null;\n }\n }\n\n return stake;\n }\n\n private getBetslipType(params: OptionParams): string | null {\n const normalized = capitalize(params.type);\n const allowed = [BetslipConstants.Combo.valueOf(), BetslipConstants.Single.valueOf(), BetslipConstants.System.valueOf()];\n\n if (allowed.indexOf(normalized) === -1) {\n return null;\n }\n\n return normalized;\n }\n\n private isSgp = (fixture: string): boolean => fixture.includes('_');\n\n private isTv2Pick = (value: string) => value.includes(':');\n\n private floorNumber = (val: number, decimals: number = 2): number => {\n return floor(val, decimals);\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { ButtonType, ContentData, DialogSettings, DialogType, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { ShortUriResponse } from '@frontend/sports/types/models/short-uri';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { NavigationService, ProductService } from '@frontend/vanilla/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { PickUriParams } from '../navigation-core/pick-uri.model';\nimport { PickUriService } from '../navigation-core/pick-uri.service';\nimport { ShareMyBetCookie, ShareMyBetTracking } from './share-my-bet.models';\nimport { IPlacedBetInfo } from './share-my-bet.state';\n\n@Injectable()\nexport class ShareMyBetService {\n constructor(\n private shareMyBetConfig: ShareMyBetConfig,\n private apiService: ApiService,\n private pickUriService: PickUriService,\n private modalDialogService: ModalDialogService,\n private navigationService: NavigationService,\n private sitecore: Sitecore,\n private userService: UserService,\n private trackingService: TrackingService,\n private cookieProvider: CookieProvider,\n private epcotConfigService: EpcotConfigService,\n private productService: ProductService,\n ) {}\n\n shortenUri(betInfo: IPlacedBetInfo): Observable {\n const uriParam: PickUriParams = {\n type: betInfo.betType,\n addPage: true,\n };\n\n if (this.userService.accountId) {\n uriParam.userId = this.userService.accountId;\n }\n\n if (betInfo.betslipId) {\n uriParam.betslipId = betInfo.betslipId;\n }\n\n const options = this.pickUriService.generate(betInfo.picksParams, uriParam);\n const uri = encodeURIComponent(`${this.navigationService.location.host()}${options}`);\n\n return this.apiService.get('shortUri/shortenUri', { uri }, { showSpinner: true }).pipe(\n map((urlResponse: ShortUriResponse) => {\n const url = urlResponse.uri;\n const culture = this.navigationService.location.culture;\n const shortUri = `${this.navigationService.location.baseUrl()}/${culture}/${this.productService.isSingleDomainApp ? 'sports/' : ''}share-my-bet/${url?.split('/').pop()}`;\n\n return shortUri;\n }),\n catchError(() => {\n this.showUriExpiredDialog(); // TODO: Change with general error message?\n\n return of('');\n }),\n );\n }\n\n isOnboardingShown(): boolean {\n return !!this.cookieProvider.getCookie(ShareMyBetCookie.Onboarding);\n }\n\n setOnboardingShown(): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.Onboarding, '1');\n }\n\n isComplianceShown(): boolean {\n return !!this.cookieProvider.getCookie(ShareMyBetCookie.Compliance) || !!this.cookieProvider.getCookie(ShareMyBetCookie.Complience); // Complience, Needs to be removed after the next release\n }\n\n setComplianceShown(): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.Compliance, '1', { expires: this.shareMyBetConfig.complianceCookieExpiryDays });\n }\n\n getComplianceDialog(): ModalRef {\n const translations = this.sitecore.modalDialogs.shareMyBetInterceptor;\n\n const contentData: ContentData = {\n type: DialogType.Action,\n firstParagraph: translations.DialogText,\n buttons: [\n {\n type: ButtonType.Cancel,\n text: translations.DialogButtonTextReject,\n buttonConfig: {\n kind: this.epcotConfigService.isEnabled() ? 'secondary' : 'tertiary',\n variant: 'outline',\n size: 'large',\n },\n },\n {\n type: ButtonType.Ok,\n text: translations.DialogButtonTextAccept,\n buttonConfig: {\n kind: 'primary',\n variant: 'filled',\n size: 'large',\n },\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: 'share-my-bet__compliance',\n };\n\n return this.modalDialogService.openMessage(contentData, settings);\n }\n\n showNotSupportedDialog(): void {\n const notSupported = this.sitecore.modalDialogs.notSupported;\n\n const contentData = {\n type: DialogType.Warning,\n firstParagraph: notSupported.DialogText,\n buttons: [\n {\n type: ButtonType.Ok,\n text: notSupported.DialogButtonText,\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: 'share-my-bet__not-supported',\n };\n\n this.modalDialogService.openMessage(contentData, settings);\n }\n\n showUriExpiredDialog(refbet: string = ShareMyBetTracking.NotApplicable): void {\n this.doReceiverErrorTracking(ShareMyBetTracking.ErrorLoaded, refbet);\n\n const linkExpired = this.sitecore.modalDialogs.linkExpired;\n\n const contentData = {\n title: linkExpired.DialogTitle,\n type: DialogType.Warning,\n firstParagraph: linkExpired.DialogText,\n buttons: [\n {\n type: ButtonType.Ok,\n text: linkExpired.DialogButtonText,\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: `share-my-bet__link-expired`,\n };\n\n this.modalDialogService.openMessage(contentData, settings).result.then((buttonType: ButtonType) => {\n if (buttonType === ButtonType.Ok) {\n this.doReceiverErrorTracking(ShareMyBetTracking.ErrorOkButton, refbet);\n }\n });\n }\n\n doSenderTracking(actionEvent: string, location: string, betslipId?: string): void {\n const urlClicked = `${this.userService.accountId}|${betslipId}`;\n const trackData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ShareMyBetTracking.BetSharing,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ShareMyBetTracking.ShareMyBet,\n [trackingConstants.COMPONENT_ACTION_EVENT]: actionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ShareMyBetTracking.ShareBetLink,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ShareMyBetTracking.UserClicksButton,\n [trackingConstants.COMPONENT_URL_CLICKED]:\n actionEvent === ShareMyBetTracking.ShareMyBetClick ? ShareMyBetTracking.NotApplicable : urlClicked,\n };\n\n this.trackingService.triggerEventWithCleaning(trackingConstants.EVENT_TRACKING, trackData);\n }\n\n setRefbet(refbet: string): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.TrackingRefBet, refbet.replace('|', '-'));\n }\n\n private doReceiverErrorTracking(actionEvent: string, refbet: string): void {\n const trackData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ShareMyBetTracking.BetSharing,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ShareMyBetTracking.LinkExpiredError,\n [trackingConstants.COMPONENT_ACTION_EVENT]: actionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ShareMyBetTracking.NotApplicable,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: ShareMyBetTracking.NotApplicable,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ShareMyBetTracking.LinkExpiredError,\n [trackingConstants.COMPONENT_URL_CLICKED]: refbet,\n };\n\n this.trackingService.triggerEventWithCleaning(trackingConstants.EVENT_TRACKING, trackData);\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport { OptionQuery } from '../navigation-core/pick-uri.model';\nimport { IRootState } from '../store/root.state';\n\nexport const shareMyBetFeatureKey = 'shareMyBet';\n\nexport interface IShareMyBetRootState extends IRootState {\n shareMyBet: IShareMyBetState;\n}\n\nexport const shareMyBetStateSelector = createFeatureSelector(shareMyBetFeatureKey);\nexport const receivingStateSelector = createSelector(shareMyBetStateSelector, (state: IShareMyBetState) => state.receivingState);\nexport const sharingStateSelector = (betslipId: string) =>\n createSelector(shareMyBetStateSelector, (state: IShareMyBetState) => state.sharingStates[betslipId]);\n\nexport interface IPlacedBetInfo {\n picksParams: OptionQuery[];\n betslipId: string;\n location: string;\n betType: string;\n pickCount: number;\n eventName?: string;\n systemType?: string;\n}\n\nexport const defaultPlacedBetInfo: IPlacedBetInfo = {\n picksParams: [],\n betslipId: '',\n location: '',\n betType: '',\n pickCount: 0,\n};\n\nexport interface ISharingState {\n uri: string;\n isCopyLinkDialogOpen: boolean;\n isCopied: boolean;\n betInfo: IPlacedBetInfo;\n}\n\nexport const defaultSharingState: ISharingState = {\n uri: '',\n isCopyLinkDialogOpen: false,\n isCopied: false,\n betInfo: defaultPlacedBetInfo,\n};\n\nexport interface IReceivingState {\n pickCount: number;\n showImportMessage: boolean;\n}\n\nexport const defaultReceivingState: IReceivingState = {\n pickCount: 0,\n showImportMessage: false,\n};\n\nexport interface IShareMyBetState {\n betslipId: string; // Initialized after bet placement\n sharingStates: { [key: string]: ISharingState };\n receivingState: IReceivingState;\n}\n\nexport const defaultShareMyBetState: IShareMyBetState = {\n betslipId: '',\n sharingStates: {},\n receivingState: defaultReceivingState,\n};\n","@if (shareMyBetState$ | async; as shareMyBet) {\n @if (shareMyBet.sharingStates[betslipId]; as state) {\n @if (state.isCopyLinkDialogOpen) {\n
\n @if (withHeader) {\n
\n {{ sitecore.shareMyBet.messages.CopyTitle }}\n \n
\n }\n
{{ sitecore.shareMyBet.messages.CopyMessage }}
\n \n
{{ getCopyText(state.isCopied) }}
\n
\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\n\nimport { MyBetsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IShareMyBetRootState, IShareMyBetState, ISharingState, shareMyBetStateSelector } from './share-my-bet.state';\n\n@Component({\n selector: 'ms-share-my-bet-copy',\n templateUrl: './share-my-bet-copy.html',\n styleUrl: './share-my-bet-copy.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShareMyBetCopyComponent {\n @Input() betslipId: string;\n @Input() location: string;\n @Input() withHeader: boolean;\n\n shareMyBetState$: Observable;\n enableRedesignedBetCard: boolean;\n\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n public sitecore: Sitecore,\n private shareMyBetService: ShareMyBetService,\n private store: Store,\n private mybetsConfig: MyBetsConfig,\n ) {\n this.shareMyBetState$ = store.select(shareMyBetStateSelector);\n this.enableRedesignedBetCard = this.mybetsConfig.enableRedesignedBetCard;\n }\n\n copy(betslipId: string, sharingState: ISharingState): void {\n if (sharingState.isCopied) {\n return;\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.CopyShareLinkClick, this.location, betslipId);\n\n this.store.dispatch(ShareMyBetActions.copyShortUri({ payload: { betslipId, uri: sharingState.uri } }));\n }\n\n closeDialog(betslipId: string): void {\n this.store.dispatch(ShareMyBetActions.closeCopyLinkDialog({ betslipId }));\n }\n\n getCopyText(isCopied: boolean): string {\n return isCopied ? this.sitecore.shareMyBet.messages.Copied : this.sitecore.shareMyBet.messages.Copy;\n }\n\n isToolbarExpanded(): string {\n const element = this._doc.getElementById(this.betslipId);\n\n if (!element) {\n return '';\n }\n\n return element.getElementsByClassName('my-bets-toolbar')[0].classList.contains('expanded') ? 'expanded' : '';\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { NativeAppService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BridgeEvent } from '../event-bridge/event-bridge.service';\n\n@Injectable()\nexport class ShareMyBetNativeMessageService implements OnDestroy {\n private subscription: Subscription | undefined;\n\n constructor(\n private toaster: ToasterService,\n private nativeAppService: NativeAppService,\n private sitecore: Sitecore,\n private shareMyBetConfig: ShareMyBetConfig,\n ) {}\n\n listen(): void {\n this.subscription = this.nativeAppService.eventsFromNative\n .pipe(filter((e) => e.eventName === BridgeEvent.BetSharedSuccessfully))\n .subscribe(() => this.showToasterMessage());\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n private showToasterMessage(): void {\n this.toaster.open(this.sitecore.shareMyBet.messages.ShareSuccess, { duration: this.shareMyBetConfig.globalErrorVisibilityTime });\n }\n}\n","import { Component } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { ShareMyBetService } from './share-my-bet.service';\n\n@Component({\n selector: 'ms-share-my-bet-onboarding',\n templateUrl: './share-my-bet-onboarding.html',\n})\nexport class ShareMyBetOnboardingComponent {\n constructor(\n public sitecore: Sitecore,\n private shareMyBetService: ShareMyBetService,\n ) {}\n\n hideOnboarding(event: Event): void {\n event.stopPropagation();\n\n this.shareMyBetService.setOnboardingShown();\n }\n}\n","
{{ sitecore.shareMyBet.messages.OnboardingText }}
\n
\n","import { Injectable } from '@angular/core';\n\nimport { ISavedState, StateLoader, StateSaver } from '../store-persist/state-storage.model';\nimport { IShareMyBetState, ISharingState, defaultShareMyBetState } from './share-my-bet.state';\n\nexport interface IShareMyBetStateStorage {\n sharingStates: { [key: string]: ISharingState };\n}\n\nexport interface IShareMyBetSavedState extends ISavedState {\n shareMyBet: IShareMyBetStateStorage;\n}\n\nexport function isShareMyBetSavedState(savedState: ISavedState | undefined): savedState is IShareMyBetSavedState {\n return !!savedState && 'shareMyBet' in savedState;\n}\n\n@Injectable()\nexport class ShareMyBetStateSaver implements StateSaver {\n save(state: IShareMyBetState): IShareMyBetStateStorage {\n return {\n sharingStates: state.sharingStates,\n };\n }\n}\n\n@Injectable()\nexport class ShareMyBetStateLoader implements StateLoader {\n load(state: IShareMyBetStateStorage | undefined): IShareMyBetState {\n if (!state) {\n return { ...defaultShareMyBetState };\n }\n\n return {\n ...defaultShareMyBetState,\n sharingStates: state.sharingStates,\n };\n }\n}\n","@if (shareMyBetConfig.isEnabled) {\n @if (shareMyBetState$ | async; as shareMyBetState) {\n \n @if (showOnboarding()) {\n \n }\n @if (!shouldShowShareMyBetLabel()) {\n
\n {{ sitecore.shareMyBet.messages.Title }}\n\n @if (hasArrow(shareMyBetState)) {\n \n }\n
\n }\n @if (shareMyBetConfig.isNewBadgeEnabled) {\n {{ sitecore.globalMessages.NewBadgeText }}\n }\n \n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnDestroy, input } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ButtonType } from '@frontend/sports/modal/feature';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { EpcotConfigService, EpcotModule } from '../common/epcot-config.service';\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { BetReceiptTrackingLocation, ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IPlacedBetInfo, IShareMyBetRootState, IShareMyBetState, defaultSharingState, shareMyBetStateSelector } from './share-my-bet.state';\n\n@Component({\n selector: 'ms-share-my-bet',\n templateUrl: './share-my-bet.html',\n styleUrl: './share-my-bet.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShareMyBetComponent implements OnDestroy {\n @Input() placedBetInfo: IPlacedBetInfo;\n @Input() expandable: boolean;\n shouldShowShareMyBetLabel = input(false);\n\n @HostBinding('class') get className() {\n return {\n 'share-my-bet__button': this.shareMyBetConfig.isEnabled,\n 'device-mobile': this.deviceService.isMobile,\n 'share-my-bet__button--epcot': this.shareMyBetConfig.isEnabled && this.isEpcot,\n };\n }\n\n @HostBinding('class.small') get small(): boolean {\n return this.size() === 'small';\n }\n\n size = input<'small' | 'medium' | 'large'>();\n\n shareMyBetState$: Observable;\n\n sharingState = defaultSharingState;\n\n private readonly isEpcot = this.epcotConfig.isEnabled(EpcotModule.Betslip);\n\n constructor(\n public sitecore: Sitecore,\n public shareMyBetConfig: ShareMyBetConfig,\n private shareMyBetService: ShareMyBetService,\n private deviceService: DeviceService,\n private store: Store,\n private epcotConfig: EpcotConfigService,\n ) {\n this.shareMyBetState$ = store.select(shareMyBetStateSelector);\n }\n\n ngOnDestroy(): void {\n if (this.sharingState.isCopyLinkDialogOpen) {\n this.destroy();\n }\n }\n\n showOnboarding(): boolean {\n return (\n this.shareMyBetConfig.isOnboardingEnabled &&\n !this.shareMyBetService.isOnboardingShown() &&\n this.placedBetInfo.location === BetReceiptTrackingLocation\n );\n }\n\n hasArrow(shareMyBetState: IShareMyBetState): boolean {\n this.sharingState = shareMyBetState.sharingStates[this.placedBetInfo.betslipId] || defaultSharingState;\n\n return this.expandable && this.sharingState.isCopyLinkDialogOpen;\n }\n\n onShareButtonClick(shareMyBetState: IShareMyBetState): void {\n this.sharingState = shareMyBetState.sharingStates[this.placedBetInfo.betslipId] || defaultSharingState;\n\n if (this.sharingState.isCopyLinkDialogOpen) {\n return;\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.ShareMyBetClick, this.placedBetInfo.location);\n\n const showCompliance = !this.shareMyBetService.isComplianceShown();\n\n if (showCompliance && !this.deviceService.isMobile) {\n this.shareMyBetService.getComplianceDialog().result.then((buttonType: ButtonType) => {\n if (buttonType === ButtonType.Ok) {\n this.shareMyBetService.setComplianceShown();\n\n this.initGenerateShortUri();\n }\n });\n } else {\n this.initGenerateShortUri();\n }\n }\n\n onToggleClick(event: Event): void {\n event.stopPropagation();\n\n this.store.dispatch(ShareMyBetActions.closeCopyLinkDialog({ betslipId: this.placedBetInfo.betslipId }));\n }\n\n private initGenerateShortUri(): void {\n this.store.dispatch(ShareMyBetActions.initGenerateShortUri({ payload: this.placedBetInfo }));\n }\n\n private destroy(): void {\n this.store.dispatch(ShareMyBetActions.destroyState({ betslipId: this.placedBetInfo.betslipId }));\n }\n}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { ParsedUrl } from '@frontend/vanilla/core';\nimport { createAction, props } from '@ngrx/store';\n\nexport class ShareMyBetApiActions {\n private static readonly ADD_BETSLIP_ID = '@share-my-bet/ADD_BETSLIP_ID';\n private static readonly HANDLE_SHARE_BET = '@share-my-bet/HANDLE_SHARE_BET';\n\n static addBetslipId = createAction(ShareMyBetApiActions.ADD_BETSLIP_ID, props<{ betslipId: string }>());\n static handleShareBet = createAction(ShareMyBetApiActions.HANDLE_SHARE_BET, pprops<{ pickCount: number; uri: ParsedUrl }>());\n}\n","import { Injectable } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { noopAction } from '@frontend/sports/common/core/utils/redux';\nimport { StringInterpolationPipe } from '@frontend/sports/common/core/utils/string-interpolation';\nimport { ButtonType } from '@frontend/sports/modal/feature';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { ClipboardService } from '@frontend/vanilla/shared/clipboard';\nimport { ShareService } from '@frontend/vanilla/shared/share';\nimport { Actions, OnInitEffects, createEffect, ofType } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\nimport { from, of, pipe } from 'rxjs';\nimport { concatMap, debounceTime, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { BridgeEvent } from '../event-bridge/event-bridge.service';\nimport { BetslipConstants } from '../navigation-core/pick-uri.model';\nimport { ShareMyBetApiActions } from '../share-my-bet-api/actions';\nimport StoragePersister from '../store-persist/storage-persister';\nimport { ShareMyBetStateLoader, isShareMyBetSavedState } from './share-my-bet-state-storage';\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IPlacedBetInfo, IShareMyBetRootState, sharingStateSelector } from './share-my-bet.state';\n\n@Injectable()\nexport class ShareMyBetEffect implements OnInitEffects {\n private RECEIVED_BET_MESSAGE_VISIBILITY_TIME_MS = 6000;\n private COPIED_BUTTON_VISIBILITY_TIME_MS = 3000;\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private shareMyBetService: ShareMyBetService,\n public shareMyBetConfig: ShareMyBetConfig,\n private deviceService: DeviceService,\n private toaster: ToasterService,\n public sitecore: Sitecore,\n private interpolationPipe: StringInterpolationPipe,\n private clipboardService: ClipboardService,\n private shareService: ShareService,\n private persister: StoragePersister,\n private stateLoader: ShareMyBetStateLoader,\n ) {}\n\n initGenerateShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.initGenerateShortUri),\n concatMap((action) => of(action).pipe(withLatestFrom(this.store.select(sharingStateSelector(action.payload.betslipId))))),\n concatMap(([action, sharingState]) => {\n if (sharingState?.uri) {\n return [ShareMyBetActions.share({ payload: { uri: sharingState.uri, betInfo: sharingState.betInfo } })];\n }\n\n return [ShareMyBetActions.generateShortUri({ payload: action.payload })];\n }),\n );\n });\n\n generateShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.generateShortUri),\n concatMap((action) =>\n this.shareMyBetService.shortenUri(action.payload).pipe(\n switchMap((uri: string) => {\n const showBetSharingConfirmationOnlyOnFirstBetShare = this.shareMyBetConfig.showBetSharingConfirmationOnlyOnFirstBetShare;\n const isComplianceShown = showBetSharingConfirmationOnlyOnFirstBetShare && this.shareMyBetService.isComplianceShown();\n const showConfirmationDialog = !isComplianceShown && this.deviceService.isMobile;\n\n if (showConfirmationDialog) {\n return from(this.shareMyBetService.getComplianceDialog().result).pipe(\n concatMap((button: ButtonType) => {\n if (button === ButtonType.Cancel) {\n return [];\n }\n\n if (showBetSharingConfirmationOnlyOnFirstBetShare) {\n this.shareMyBetService.setComplianceShown();\n }\n return of(ShareMyBetActions.share({ payload: { uri, betInfo: action.payload } }));\n }),\n );\n }\n return [ShareMyBetActions.share({ payload: { uri, betInfo: action.payload } })];\n }),\n ),\n ),\n );\n });\n\n share$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.share),\n concatMap((action) => {\n if (!this.shareMyBetService.isOnboardingShown()) {\n this.shareMyBetService.setOnboardingShown();\n }\n\n const betInfo = action.payload.betInfo;\n\n if (this.deviceService.isMobile) {\n this.shareService\n .share(\n {\n title: this.sitecore.shareMyBet.messages.Title,\n url: action.payload.uri,\n text: this.getShareText(betInfo),\n },\n BridgeEvent.ShareMyBet,\n )\n .then((success: boolean) => {\n if (success) {\n if (!this.deviceService.isiOS) {\n this.showToasterMessage();\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.BetShared, betInfo.location, betInfo.betslipId);\n } else {\n this.shareMyBetService.showNotSupportedDialog();\n }\n });\n\n return [];\n }\n\n return [ShareMyBetActions.openCopyLinkDialog({ betslipId: betInfo.betslipId })];\n }),\n );\n });\n\n receiveBet$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.receiveBet),\n pipe(\n debounceTime(this.RECEIVED_BET_MESSAGE_VISIBILITY_TIME_MS),\n map(() => ShareMyBetActions.removeReceiveBetMessage()),\n ),\n );\n });\n\n handleShareBet$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetApiActions.handleShareBet),\n concatMap((action) => {\n const uri = action.payload.uri;\n const refbet = decodeURIComponent(uri.search.get(ShareMyBetTracking.RefBet) || ShareMyBetTracking.NotApplicable);\n\n if (action.payload.pickCount) {\n if (refbet === ShareMyBetTracking.NotApplicable) {\n return [];\n }\n\n this.shareMyBetService.setRefbet(refbet);\n\n return [ShareMyBetActions.receiveBet({ pickCount: action.payload.pickCount })];\n }\n\n this.shareMyBetService.showUriExpiredDialog(refbet);\n\n return [];\n }),\n );\n });\n\n copyShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.copyShortUri),\n tap((action) => {\n this.clipboardService.copy(action.payload.uri);\n }),\n debounceTime(this.COPIED_BUTTON_VISIBILITY_TIME_MS),\n map((action) => ShareMyBetActions.removeCopied({ betslipId: action.payload.betslipId })),\n );\n });\n\n // handleSaveToStorageEffect$ = createEffect(() =>\n // \tthis.actions$.pipe(\n // \t\tfilter(action => action.type.startsWith('@share-my-bet')),\n // \t\tdebounceTime(ShareMyBetEffect.SAVE_STATE_DEBOUNCE_TIME),\n // \t\twithLatestFrom(this.store.pipe(select(shareMyBetStateSelector))),\n // \t\tmap(([actions, state]) => {\n // \t\t\tconst savedState = this.stateSaver.save(state);\n //\n // \t\t\t// return RootActions.saveState({\n // \t\t\t// \tpayload: {\n // \t\t\t// \t\tshareMyBet: savedState,\n // \t\t\t// \t} as IShareMyBetSavedState,\n // \t\t\t// });\n // \t\t})\n // \t)\n // );\n\n ngrxOnInitEffects(): Action {\n const state = this.persister.load();\n if (isShareMyBetSavedState(state)) {\n const shareMyBetState = this.stateLoader.load(state.shareMyBet);\n\n return ShareMyBetActions.populateFromStorage({ payload: shareMyBetState });\n }\n\n return noopAction;\n }\n\n private getShareText(betInfo: IPlacedBetInfo): string {\n let translation: string;\n let shareText: string;\n\n if (betInfo.betType === BetslipConstants.Single) {\n translation = this.sitecore.shareMyBet.messages.SingleBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n eventName: betInfo.eventName,\n });\n } else if (betInfo.betType === BetslipConstants.Combo) {\n translation = this.sitecore.shareMyBet.messages.MultiBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n pickCount: betInfo.pickCount,\n });\n } else {\n translation = this.sitecore.shareMyBet.messages.SystemBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n systemType: betInfo.systemType,\n });\n }\n\n return shareText;\n }\n\n private showToasterMessage(): void {\n this.toaster.open(this.sitecore.shareMyBet.messages.ShareSuccess, { duration: this.shareMyBetConfig.globalErrorVisibilityTime });\n }\n}\n","import { createReducer, on } from '@ngrx/store';\nimport produce from 'immer';\nimport { entries } from 'lodash-es';\n\nimport { ShareMyBetApiActions } from '../share-my-bet-api/actions';\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { ISharingState, defaultShareMyBetState } from './share-my-bet.state';\n\nexport const shareMyBetReducer = createReducer(\n defaultShareMyBetState,\n on(ShareMyBetActions.share, (state, action) => ({\n ...state,\n sharingStates: {\n ...state.sharingStates,\n [action.payload.betInfo.betslipId]: {\n uri: action.payload.uri,\n betInfo: action.payload.betInfo,\n isCopied: false,\n isCopyLinkDialogOpen: false,\n },\n },\n })),\n on(ShareMyBetActions.openCopyLinkDialog, (state, action) =>\n produce(state, (draft) => {\n draft.sharingStates[action.betslipId].isCopyLinkDialogOpen = true;\n }),\n ),\n on(ShareMyBetActions.closeCopyLinkDialog, (state, action) =>\n produce(state, (draft) => {\n draft.sharingStates[action.betslipId].isCopyLinkDialogOpen = false;\n draft.sharingStates[action.betslipId].isCopied = false;\n }),\n ),\n on(ShareMyBetActions.copyShortUri, (state, action) =>\n produce(state, (draft) => {\n draft.sharingStates[action.payload.betslipId].isCopied = true;\n }),\n ),\n on(ShareMyBetActions.removeCopied, (state, action) =>\n produce(state, (draft) => {\n draft.sharingStates[action.betslipId].isCopied = false;\n }),\n ),\n on(ShareMyBetActions.receiveBet, (state, action) => ({\n ...state,\n receivingState: {\n pickCount: action.pickCount,\n showImportMessage: true,\n },\n })),\n on(ShareMyBetActions.removeReceiveBetMessage, (state, action) => ({\n ...state,\n receivingState: {\n pickCount: 0,\n showImportMessage: false,\n },\n })),\n on(ShareMyBetApiActions.addBetslipId, (state, action) => ({\n ...state,\n betslipId: action.betslipId,\n })),\n on(ShareMyBetActions.destroyState, (state, action) =>\n produce(state, (draft) => {\n draft.betslipId = '';\n draft.sharingStates[action.betslipId].isCopied = false;\n draft.sharingStates[action.betslipId].isCopyLinkDialogOpen = false;\n }),\n ),\n on(ShareMyBetActions.populateFromStorage, (state, action) => ({\n ...state,\n sharingStates: entries(action.payload.sharingStates).reduce(\n (aggr, current) => {\n aggr[current[0]] = {\n uri: current[1].uri,\n betInfo: {\n ...current[1].betInfo,\n picksParams: current[1].betInfo.picksParams.map((pp) => ({ ...pp })),\n },\n isCopied: false,\n isCopyLinkDialogOpen: false,\n };\n\n return aggr;\n },\n {} as { [key: string]: ISharingState },\n ),\n })),\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { NavigationCoreModule } from '../navigation-core/navigation-core.module';\nimport { ShareMyBetCopyComponent } from './share-my-bet-copy.component';\nimport { ShareMyBetNativeMessageService } from './share-my-bet-native-message.service';\nimport { ShareMyBetOnboardingComponent } from './share-my-bet-onboarding.component';\nimport { ShareMyBetStateLoader, ShareMyBetStateSaver } from './share-my-bet-state-storage';\nimport { ShareMyBetComponent } from './share-my-bet.component';\nimport { ShareMyBetEffect } from './share-my-bet.epic';\nimport { shareMyBetReducer } from './share-my-bet.reducer';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { shareMyBetFeatureKey } from './share-my-bet.state';\n\n@NgModule({\n declarations: [ShareMyBetComponent, ShareMyBetCopyComponent, ShareMyBetOnboardingComponent],\n imports: [\n CommonModule,\n NavigationCoreModule,\n StoreModule.forFeature(shareMyBetFeatureKey, shareMyBetReducer),\n EffectsModule.forFeature([ShareMyBetEffect]),\n ],\n exports: [ShareMyBetComponent, ShareMyBetCopyComponent],\n providers: [ShareMyBetStateSaver, ShareMyBetStateLoader, ShareMyBetService, ShareMyBetNativeMessageService],\n})\nexport class ShareMyBetModule {\n constructor(private shareMyBetNativeMessageService: ShareMyBetNativeMessageService) {\n this.shareMyBetNativeMessageService.listen();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'ms-sgp-plus-badge',\n template: `
`,\n styleUrl: './sgp-plus-badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SGPPlusBadgeComponent {\n @HostBinding('class.large') get large(): boolean {\n return this.size() === 'large';\n }\n\n size = input<'large'>();\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'msAccaBoostRatio',\n})\nexport class AccaBoostRatioPipe implements PipeTransform {\n transform(ratio: number | undefined, prefix: boolean = true, template?: string): string {\n return isDefined(ratio) ? this.format(ratio, prefix, template) : '';\n }\n\n private format(ratio: number, prefix: boolean, template?: string): string {\n const boostRatio = new Decimal(ratio).times(100).toString();\n const formatted = `${prefix ? '+' : ''}${boostRatio}%`;\n\n return template ? this.replaceBoostPlaceholder(template, formatted) : formatted;\n }\n\n private replaceBoostPlaceholder(template: string, boost: string): string {\n return interpolateDoubleBracesString(template, {\n boost,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OddsBoostFormula } from '@bpos';\nimport { AccaBoostConfig, BetslipConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CalculatedOdds, OddsOperations } from '@frontend/sports/odds/feature';\nimport { NativePriceCalculatorService } from '@frontend/sports/odds/feature/native-price-calculator';\nimport { AccaBoostCalculations } from '@frontend/sports/types/components/acca-boost';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\nexport class TokensCalculatorService {\n constructor(\n private betslipConfig: BetslipConfig,\n private accaBoostConfig: AccaBoostConfig,\n ) {}\n\n getBoostedNativeOdds2(\n price: CalculatedOdds | null,\n boostFactor: number,\n oddsBoostFormula: OddsBoostFormula,\n oddsFormat?: OddsDisplayFormat,\n ): CalculatedOdds | null {\n if (!price) {\n return null;\n }\n\n const boostFactorDecimalValue = new Decimal(boostFactor).dividedBy(100);\n const boostMultiplier = boostFactorDecimalValue.plus(1);\n const decimal = OddsOperations.toDecimalValue(price, oddsFormat);\n let boostedOdds = NativePriceCalculatorService.multiplyDecimal(decimal, boostMultiplier, this.betslipConfig.roundPriceValues);\n if (oddsBoostFormula === OddsBoostFormula.Profit) {\n boostedOdds = boostedOdds.minus(boostFactorDecimalValue);\n }\n\n return OddsOperations.fromDecimalValue(boostedOdds);\n }\n\n // if no riskFree or betandget Percentage or stake is supplied, then no calculation will happen\n // and maxPayout is considered as returnAmount\n getTokenPercentageReturns(maxPayout: number, riskFreePercentage?: number, stake?: number, minPayout?: number): number {\n if (riskFreePercentage !== undefined && stake !== undefined) {\n const decimalPercentage = new Decimal(riskFreePercentage);\n const decimalStake = new Decimal(stake);\n const payout = decimalPercentage.times(decimalStake).div(100).toNumber();\n if (minPayout && payout < minPayout) {\n return minPayout;\n }\n\n return Math.min(maxPayout, payout);\n } else {\n return maxPayout;\n }\n }\n\n getAccaBoostReturns(possibleWinnings: Decimal, stake: number, maxBoost: Decimal, boostRatio: Decimal): Decimal {\n if (this.accaBoostConfig.accaBoostCalculation === AccaBoostCalculations.Profit) {\n possibleWinnings = possibleWinnings.minus(stake);\n }\n const calculatedBoost = possibleWinnings.times(boostRatio);\n\n return Decimal.min(calculatedBoost, maxBoost);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport Decimal from 'decimal.js';\nimport { round, trim } from 'lodash-es';\nimport { AccaBoostToken, BetAndGetToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { getAccaBoostRatio } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\n\nimport { AccaBoostRatioPipe } from '../acca-boost-base/acca-boost-ratio.pipe';\nimport { PayoutType, RewardTokenType, RewardTriggerType } from './token-base.models';\nimport { TokensCalculatorService } from './tokens-calculator.service';\n\nexport enum PayoutInfoLocation {\n Summary = 'Summary',\n Drawer = 'Drawer',\n}\n\ntype DisplayPayoutTypes = RewardTokenType.FreeBet | RewardTokenType.OddsBoost | RewardTokenType.RiskFreeBet | RewardTokenType.BetAndGet;\ntype DisplayPayoutTypesMap = { [payoutDisplay in DisplayPayoutTypes]: { [payoutType in PayoutType]: string } | undefined };\n\nconst PRECISION = 2;\n\n@Injectable({ providedIn: 'root' })\nexport class TokensSummaryService {\n private readonly displayPayoutTypes: DisplayPayoutTypesMap;\n\n constructor(\n private moneyService: MoneyService,\n private crmConfig: CrmConfig,\n private tokensCalculator: TokensCalculatorService,\n private sitecore: Sitecore,\n private accaBoostRatioPipe: AccaBoostRatioPipe,\n ) {\n this.displayPayoutTypes = this.createDisplayPayoutTypes();\n }\n\n getBoostedWinningsSummary(payoutType: PayoutType, winningsBoost: Decimal | null): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.OddsBoost, payoutType)) {\n const winningsBoostFormatted = this.moneyService.transform(winningsBoost, true);\n const displayPayoutType = this.getDisplayPayoutType(payoutType, RewardTokenType.OddsBoost);\n\n return interpolateDoubleBracesString(this.sitecore.crmTokens.oddsBoost.betslipSummary.IncludedBoostedWinnings, {\n winningsBoost: winningsBoostFormatted,\n payoutType: displayPayoutType,\n });\n }\n\n return '';\n }\n\n // if no riskFreePercentage or stake is supplied, then no calculation will happen\n // and maxPayout is considered as returnAmount\n getRiskFreeSummary(\n payoutType: PayoutType,\n maxPayout: number,\n riskFreePercentage?: number,\n stake?: number,\n noOfSlabs?: number,\n slabAmount?: number,\n ): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.RiskFreeBet, payoutType)) {\n const riskFreeReturns = this.tokensCalculator.getTokenPercentageReturns(maxPayout, riskFreePercentage, stake);\n const incrementalPayout = this.getIncrementalDetails(payoutType, riskFreeReturns, noOfSlabs, slabAmount) ?? 0;\n const displayPayoutType =\n incrementalPayout > 0\n ? this.sitecore.crmTokens.riskFree.betslipSummary.IncrementalPayoutFreebet\n : this.getDisplayPayoutType(payoutType, RewardTokenType.RiskFreeBet);\n const payoutSummaryTemplate =\n incrementalPayout > 0\n ? this.sitecore.crmTokens.riskFree.betslipSummary.RiskFreeIncrementalPayoutSummary\n : this.sitecore.crmTokens.riskFree.betslipSummary.RiskFreePayoutSummary;\n\n return interpolateDoubleBracesString(payoutSummaryTemplate, {\n payoutType: displayPayoutType,\n amount: this.moneyService.transform(riskFreeReturns, true),\n noOfSlabs: noOfSlabs ?? 1,\n payout: this.moneyService.transform(incrementalPayout, true),\n });\n }\n\n return '';\n }\n\n getBetAndGetSummary(token: BetAndGetToken): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.BetAndGet, token.payoutType)) {\n let displayPayoutTemplate = this.sitecore.crmTokens.betAndGet.betslipSummary.BetAndGetPayoutSummary;\n let displayPayoutValue = this.moneyService.transform(token.payoutValue, true);\n let displayPayoutType = '';\n let displayMaxPayoutValue = '';\n\n if (token.percentagePayout) {\n displayPayoutTemplate = this.sitecore.crmTokens.betAndGet.betslipSummary.BetAndGetPercentagePayoutSummary;\n displayPayoutValue = token.percentagePayout.toString();\n displayMaxPayoutValue = this.moneyService.transform(token.maximumPayout, true);\n }\n\n const displayRewardTriggerType =\n token.rewardTriggerType === RewardTriggerType.BetPlacement\n ? this.sitecore.crmTokens.betAndGet.betslipSummary.BetPlacementTemplate\n : this.sitecore.crmTokens.betAndGet.betslipSummary.BetSettlementTemplate;\n\n switch (token.payoutType) {\n case PayoutType.Bonus:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.BonusPayoutTemplate;\n break;\n case PayoutType.Cash:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.CashPayoutTemplate;\n break;\n case PayoutType.FreeBet:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.FreebetPayoutTemplate;\n break;\n case PayoutType.OddsBoostToken:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.OddsBoostPayoutTemplate;\n displayPayoutValue = '';\n displayMaxPayoutValue = '';\n break;\n case PayoutType.RiskFreeToken:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.RiskFreePayoutTemplate;\n displayPayoutValue = '';\n displayMaxPayoutValue = '';\n break;\n }\n\n return trim(\n interpolateDoubleBracesString(displayPayoutTemplate, {\n payoutType: displayPayoutType,\n value: displayPayoutValue,\n maxAmount: displayMaxPayoutValue,\n triggerType: displayRewardTriggerType,\n }),\n );\n }\n\n return '';\n }\n\n isPayoutInfoEnabled(location: PayoutInfoLocation, tokenType: RewardTokenType, payoutType: PayoutType): boolean {\n const payoutInfo = location === PayoutInfoLocation.Summary ? this.crmConfig.tokens.summaryPayoutInfo : this.crmConfig.tokens.drawerPayoutInfo;\n let config;\n switch (tokenType) {\n case RewardTokenType.OddsBoost:\n config = payoutInfo.oddsBoost;\n break;\n case RewardTokenType.RiskFreeBet:\n config = payoutInfo.riskFree;\n break;\n case RewardTokenType.BetAndGet:\n config = payoutInfo.betAndGet;\n break;\n }\n\n return config\n ? {\n [PayoutType.Bonus]: config.bonus,\n [PayoutType.FreeBet]: config.freeBet,\n [PayoutType.Cash]: config.cash,\n [PayoutType.BonusNoWager]: false,\n [PayoutType.OddsBoostToken]: config.oddsBoostToken,\n [PayoutType.RiskFreeToken]: config.riskFreeToken,\n }[payoutType]\n : false;\n }\n\n getAccaBoostSummary(token: AccaBoostToken, pickCount: number): string {\n const ratio = getAccaBoostRatio(token, pickCount).toNumber();\n return this.getAccaBoostSummaryByRatio(ratio);\n }\n\n getAccaBoostSummaryByRatio(ratio: number): string {\n return this.accaBoostRatioPipe.transform(ratio, false, this.sitecore.accaBoost.BetslipBoostingInfo);\n }\n\n getDisplayPayoutType(payoutType: PayoutType, tokenType: RewardTokenType): string {\n const displayPayoutTypes = this.displayPayoutTypes[tokenType as keyof typeof this.displayPayoutTypes];\n\n return displayPayoutTypes ? (displayPayoutTypes[payoutType] ?? '') : '';\n }\n\n private createDisplayPayoutTypes(): DisplayPayoutTypesMap {\n return {\n [RewardTokenType.OddsBoost]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeFreebet,\n [PayoutType.Bonus]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeBonus,\n [PayoutType.Cash]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeCash,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: '',\n [PayoutType.RiskFreeToken]: '',\n },\n [RewardTokenType.RiskFreeBet]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeFreebet,\n [PayoutType.Bonus]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeBonus,\n [PayoutType.Cash]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeCash,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: '',\n [PayoutType.RiskFreeToken]: '',\n },\n [RewardTokenType.FreeBet]: undefined,\n [RewardTokenType.BetAndGet]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.betAndGet.betslipSummary.FreebetPayoutTemplate,\n [PayoutType.Bonus]: this.sitecore.crmTokens.betAndGet.betslipSummary.BonusPayoutTemplate,\n [PayoutType.Cash]: this.sitecore.crmTokens.betAndGet.betslipSummary.CashPayoutTemplate,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: this.sitecore.crmTokens.betAndGet.betslipSummary.OddsBoostPayoutTemplate,\n [PayoutType.RiskFreeToken]: this.sitecore.crmTokens.betAndGet.betslipSummary.RiskFreePayoutTemplate,\n },\n };\n }\n\n private getIncrementalDetails(payoutType: PayoutType, actualPayout?: number, noOfSlabs?: number, slabAmount?: number): number | undefined {\n if (payoutType === PayoutType.FreeBet && actualPayout && noOfSlabs && noOfSlabs > 1) {\n return slabAmount ?? round(actualPayout / noOfSlabs, PRECISION);\n }\n\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NewCustomerBettingOfferConfig } from '@frontend/sports/common/client-config-data-access';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerOfferService {\n constructor(private customerOfferConfig: NewCustomerBettingOfferConfig) {}\n\n isNewCustomerOffer(leagueId: number | undefined): boolean {\n return leagueId !== undefined && leagueId === this.customerOfferConfig.competitionId;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { InternalFeaturesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { BalanceProperties } from '@frontend/vanilla/core';\n\ntype BalanceWithTime = { accountBalance: number; time: string } | null;\n\n@Injectable({ providedIn: 'root' })\nexport class AccountBalanceLoggerService {\n private readonly logger: SportsRemoteLogger;\n //The last balance property emission from Vanilla balance service\n private lastBalanceProperty: (BalanceProperties & { time: string }) | { balanceInfo: null; time: string } | null;\n //The last balance value that was validated in the betslip\n private lastValidatedBalance: BalanceWithTime;\n //The balance amount that was validated before the last successful bet placement\n private balancePropertiesPostLastPlacement: BalanceWithTime;\n //The amount generated from our formula calculation\n private lastWalletBalanceAmount: BalanceWithTime;\n // a flag to ensure balance properties updates that are happening as bet placement is ongoing should be ignored\n private isPlacing = false;\n\n /**\n * This service will try to collect relevant balance data and log them when an insufficient funds error is returned.\n *\n * @param loggerFactory\n */\n constructor(\n loggerFactory: LoggerFactory,\n private internalFeatureConfig: InternalFeaturesConfig,\n ) {\n this.logger = loggerFactory.getLogger('AccountBalanceLogger');\n }\n\n freezeLogWhilePlacement() {\n this.isPlacing = true;\n }\n\n enableLogs() {\n this.reset();\n }\n\n setBalanceInfo(balanceInfo: BalanceProperties | null) {\n if (this.isPlacing) {\n return;\n }\n if (balanceInfo) {\n this.lastBalanceProperty = {\n ...balanceInfo,\n time: this.getCurrentFormattedDate(),\n };\n } else {\n this.lastBalanceProperty = {\n balanceInfo: null,\n time: this.getCurrentFormattedDate(),\n };\n }\n }\n\n setBalanceInfoPostSuccessfulBetPlacement() {\n this.balancePropertiesPostLastPlacement = this.lastValidatedBalance;\n }\n\n setLastValidatedBalance(accountBalance: number) {\n if (this.isPlacing) {\n return;\n }\n this.lastValidatedBalance = this.buildBalanceAndTimeObject(accountBalance);\n }\n\n setLastWalletBalance(accountBalance: number) {\n if (this.isPlacing) {\n return;\n }\n this.lastWalletBalanceAmount = this.buildBalanceAndTimeObject(accountBalance);\n }\n\n log(requestId: string) {\n if (!this.internalFeatureConfig.isBalanceLoggingEnabled) {\n return;\n }\n this.logger.error(this.getStringifiedLogObject(requestId));\n this.reset();\n }\n\n private buildBalanceAndTimeObject(accountBalance: number) {\n return {\n accountBalance,\n time: this.getCurrentFormattedDate(),\n };\n }\n\n private getStringifiedLogObject(requestId: string) {\n return JSON.stringify({\n message: 'Unexpected Insufficient Funds Error',\n requestId,\n lastBalanceProperty: this.lastBalanceProperty,\n lastValidatedBalance: this.lastValidatedBalance,\n balancePropertiesPostLastPlacement: this.balancePropertiesPostLastPlacement,\n lastWalletBalanceAmount: this.lastWalletBalanceAmount,\n });\n }\n\n private reset() {\n this.lastBalanceProperty = null;\n this.lastValidatedBalance = null;\n this.lastWalletBalanceAmount = null;\n this.isPlacing = false;\n }\n\n private getCurrentFormattedDate() {\n return new Date().toISOString();\n }\n}\n","export enum WalletType {\n Any = 'Any',\n PayPal = 'PayPal',\n Main = 'Main',\n}\n\nexport interface WalletItem {\n type: WalletType;\n amount: number;\n selected: boolean;\n title: string;\n shortTitle: string;\n icon: string;\n}\n\nexport enum WalletPersistenceType {\n Temporary = 'Temporary',\n Permanent = 'Permanent',\n}\n\nexport enum Tracking {\n Wallets = 'Wallets',\n PayPalWallet = 'PayPal Wallet',\n Desktop = 'Desktop V6',\n Mobile = 'Mobile V6',\n NotApplicable = 'not applicable',\n SportsSiteSection = 'Sports',\n DialogSelectorLabelEvent = 'PayPal - Choose Wallet Interceptor',\n Betslip = 'Betslip',\n}\n","import { Injectable } from '@angular/core';\n\nimport { LocalStoreService, SessionStoreService } from '@frontend/vanilla/core';\n\nimport { WalletType } from './account-balance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class WalletStoreService {\n private walletTypeKey = 'walletType';\n private walletSelectorShownKey = 'walletSelectorIsShown';\n\n constructor(\n private localStoreService: LocalStoreService,\n private sessionStoreService: SessionStoreService,\n ) {}\n\n setSelectedWallet(walletType: WalletType, persistPermanently?: boolean): void {\n if (persistPermanently) {\n this.sessionStoreService.remove(this.walletTypeKey);\n this.localStoreService.set(this.walletTypeKey, walletType);\n } else {\n this.sessionStoreService.set(this.walletTypeKey, walletType);\n }\n }\n\n get isPermanentWallet(): boolean {\n return !!this.localStoreService.get(this.walletTypeKey);\n }\n\n get selectedWallet(): WalletType | null {\n return this.localStoreService.get(this.walletTypeKey) || this.sessionStoreService.get(this.walletTypeKey);\n }\n\n set walletSelectorIsShown(newValue: boolean) {\n this.sessionStoreService.set(this.walletSelectorShownKey, newValue);\n }\n\n get walletSelectorIsShown(): boolean {\n return !!this.sessionStoreService.get(this.walletSelectorShownKey);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { AccountBalanceConfig, BetslipConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { UserActions, UserService } from '@frontend/sports/user/feature';\nimport { BalanceProperties } from '@frontend/vanilla/core';\nimport { BalancePropertiesService } from '@frontend/vanilla/features/balance-properties';\nimport { BonusBalance, BonusBalanceService } from '@frontend/vanilla/features/bonus-balance';\nimport { KycStatus, KycStatusService } from '@frontend/vanilla/shared/kyc';\nimport { Store } from '@ngrx/store';\nimport {\n BehaviorSubject,\n Observable,\n TimeoutError,\n TimeoutInfo,\n catchError,\n combineLatest,\n filter,\n map,\n retry,\n skip,\n startWith,\n take,\n tap,\n throwError,\n timeout,\n} from 'rxjs';\n\nimport { AccountBalanceLoggerService } from './account-balance-logger.service';\nimport { WalletItem, WalletPersistenceType, WalletType } from './account-balance.models';\nimport { WalletStoreService } from './wallet-store.service';\n\nexport class CustomTimeoutError implements TimeoutError {\n constructor(info: TimeoutInfo) {\n this.name = 'CustomTimeoutError';\n this.info = info;\n }\n\n info: TimeoutInfo | null;\n name: string;\n message: string;\n stack?: string | undefined;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AccountBalanceService {\n private balanceProperties$ = new BehaviorSubject(null);\n private _availableWallets = new BehaviorSubject([]);\n private _selectedWalletType$ = new BehaviorSubject(WalletType.Any);\n private readonly logger: SportsRemoteLogger;\n private kycStatus: KycStatus | null;\n private bonusAmount = 0;\n private isWalletSet = false;\n public readonly selectedWallet$: Observable;\n\n constructor(\n private balanceService: BalancePropertiesService,\n private bonusBalanceService: BonusBalanceService,\n loggerFactory: LoggerFactory,\n private userService: UserService,\n private siteCore: Sitecore,\n private betslipConfig: BetslipConfig,\n private walletStoreService: WalletStoreService,\n private kycStatusService: KycStatusService,\n private store: Store,\n private globalBalanceLogger: AccountBalanceLoggerService,\n private accountBalanceConfig: AccountBalanceConfig,\n ) {\n this.balanceService.balanceProperties\n .pipe(filterSportsEmitLast(), takeUntilDestroyed())\n .subscribe((balanceProperties) => this.balanceProperties$.next(balanceProperties));\n\n combineLatest([\n this.balanceService.balanceProperties.pipe(\n startWith(null),\n tap((balance) => {\n this.globalBalanceLogger.setBalanceInfo(balance);\n }),\n ),\n this.bonusBalanceService.bonusBalance.pipe(startWith(null)),\n this.kycStatusService.kycStatus.pipe(startWith(null)),\n this.userService.onUserLogInWithSettings$.pipe(startWith(null)),\n this.selectedWalletType$,\n ])\n .pipe(filterSportsEmitLast(), takeUntilDestroyed())\n .subscribe(([balanceProperties, bonus, kycStatus]) => {\n this.buildAvailableWalletsForBonus(bonus?.['BETTING'] || bonus?.['SPORTSBOOK'] || 0);\n this.setNewKycStatus(kycStatus);\n this.buildAvailableWallets(balanceProperties);\n });\n this.logger = loggerFactory.getLogger('AccountBalanceService');\n this.selectedWallet$ = this._availableWallets.pipe(map((wallets) => wallets.find((wallet) => wallet.selected) ?? null));\n }\n\n private setNewKycStatus(status: KycStatus | null): void {\n this.kycStatus = status;\n }\n\n // TODO: @epcot port changes\n private buildAvailableWalletsForBonus(bonus: number) {\n this.bonusAmount = bonus;\n }\n\n // This is a simple alternative to the complex method refresh$ which was used to wait for balance refresh\n refresh(): void {\n this.balanceService.refresh();\n this.globalBalanceLogger.enableLogs();\n }\n\n /**\n * @param expectBalanceChange: use this parameter if an explicit change in balance properties is expected\n * @returns an observable that will emit once the balance values are updated\n * the observable will emit only once.\n */\n refresh$(expectBalanceChange = true, balanceBeforeRefresh?: number): Observable {\n const oldBalance = balanceBeforeRefresh ? balanceBeforeRefresh : this.balanceProperties$.value?.accountBalance;\n this.balanceService.refresh();\n // this.bonusBalanceService.refresh();\n //enable balance logs on refresh.\n this.globalBalanceLogger.enableLogs();\n\n return this.currentBalanceObservable.pipe(\n //this is neccessary because currentBalanceObservable is a behavior subject\n skip(1),\n filter((data) => !!data && (!expectBalanceChange || data.accountBalance !== oldBalance)),\n take(1),\n //throw a timeout exception after 100 seconds\n timeout({\n each: this.accountBalanceConfig.timeout,\n with: (info) => throwError(() => new CustomTimeoutError(info)),\n }),\n catchError((err: Error) => {\n //try to retrigger balance refresh if the error was a timeout error\n //(is this even a good idea ?)\n if (err instanceof CustomTimeoutError) this.balanceService.refresh();\n throw err;\n }),\n //retry in case of failure\n retry({ count: this.accountBalanceConfig.retry, delay: this.accountBalanceConfig.retryDelay }),\n catchError((err: Error) => {\n //if you end up here, try tracing propagated errors and make sure that tolerateBalanceIndifference is passed correctly (false only when an explicit change is expected)\n this.logger.error(`Balance Refresh Failed ${err.name}`);\n //we add a catch here to set wallets to 0 to prevent unwanted behavior in case the balance refresh wasn't successful or didn't finish\n this.setWallets([]);\n //propagate error\n throw err;\n }),\n );\n }\n\n get availableWallets(): Observable {\n return this._availableWallets.asObservable();\n }\n\n get currentBalanceAmount(): number {\n return (this.selectedWallet && this.selectedWallet.amount) || 0;\n }\n\n get currentBalanceObservable(): Observable {\n return this.balanceService.balanceProperties;\n }\n\n get currentBalanceProperties(): BalanceProperties | null {\n return this.balanceProperties$.value;\n }\n\n get currentBonusBalanceObservable(): Observable {\n return this.bonusBalanceService.bonusBalance;\n }\n\n get selectedWallet(): WalletItem | undefined {\n return this._availableWallets.getValue().find((b) => b.selected);\n }\n\n get selectedWalletType$(): Observable {\n return this._selectedWalletType$.asObservable();\n }\n\n get availableBalance(): Observable {\n return this.balanceService.balanceProperties;\n }\n\n selectWallet(walletType: WalletType, persistanceType?: WalletPersistenceType): void {\n const isPermanentWallet =\n persistanceType === undefined ? this.walletStoreService.isPermanentWallet : persistanceType === WalletPersistenceType.Permanent;\n\n this.walletStoreService.setSelectedWallet(walletType, isPermanentWallet);\n this._selectedWalletType$.next(walletType);\n }\n\n private getDefaultWallet(balanceProperties: BalanceProperties): WalletType {\n const userWalletType = this.walletStoreService.selectedWallet;\n\n if (userWalletType) {\n return userWalletType;\n }\n\n const mainBalance = this.calculateMainBalance(balanceProperties);\n const paypalBalance = this.calculatePaypalBalance(balanceProperties);\n\n return paypalBalance > mainBalance ? WalletType.PayPal : WalletType.Main;\n }\n\n private calculateMainBalance(balanceProperties: BalanceProperties): number {\n return this.betslipConfig.paypalWalletUseNewFormula\n ? this.calcualateMainWithNewFormula(balanceProperties)\n : this.calculateMainWithOldFormula(balanceProperties);\n }\n\n private calculatePaypalBalance(balanceProperties: BalanceProperties): number {\n return this.betslipConfig.paypalWalletUseNewFormula\n ? balanceProperties.payPalRestrictedBalance + balanceProperties.sportsExclusiveBalance\n : balanceProperties.payPalBalance;\n }\n\n private isAllowedCountry = (userCountry: string): boolean =>\n !!this.betslipConfig.payPalWalletSelectionEnabledForCountries.find((countryCode) => userCountry === countryCode);\n\n private buildAvailableWallets(balanceProperties: BalanceProperties | null): void {\n if (!this.userService.isAuthenticated || !balanceProperties) {\n this.setWallets([]);\n if (this.isWalletSet) {\n this.isWalletSet = false;\n this.store.dispatch(UserActions.setWalletLoaded({ walletLoaded: this.isWalletSet }));\n }\n\n return;\n }\n\n if (this.isAllowedCountry(this.userService.country)) {\n const walletType = this.getDefaultWallet(balanceProperties);\n\n const wallets = [\n {\n type: WalletType.PayPal,\n amount: this.calculatePaypalBalance(balanceProperties),\n selected: walletType === WalletType.PayPal,\n title: this.siteCore.betslip.wallet.PayPalBalance,\n shortTitle: this.siteCore.betslip.wallet.PayPal,\n icon: this.betslipConfig.paypalWalletIconClass['paypal'],\n },\n {\n type: WalletType.Main,\n amount: this.calculateMainBalance(balanceProperties),\n selected: walletType === WalletType.Main,\n title: this.siteCore.betslip.wallet.MainBalance,\n shortTitle: this.siteCore.betslip.wallet.Main,\n icon: this.betslipConfig.paypalWalletIconClass['main'],\n },\n ];\n this.setWallets(wallets);\n } else {\n this.setWallets([\n {\n type: WalletType.Any,\n amount: balanceProperties.availableBalance + (this.bonusAmount || 0),\n selected: true,\n title: '',\n shortTitle: '',\n icon: '',\n },\n ]);\n }\n if (!this.isWalletSet) {\n this.isWalletSet = true;\n this.store.dispatch(UserActions.setWalletLoaded({ walletLoaded: this.isWalletSet }));\n }\n }\n\n setWallets(wallets: WalletItem[]) {\n const selectedWalletAmount = wallets.find((t) => t.selected)?.amount ?? 0;\n this.globalBalanceLogger.setLastWalletBalance(selectedWalletAmount);\n this._availableWallets.next(wallets);\n }\n\n private calcualateMainWithNewFormula(balanceProperties: BalanceProperties): number {\n let balance =\n balanceProperties.sportsDepositBalance +\n balanceProperties.sportsWinningsBalance +\n balanceProperties.allWinningsBalance +\n balanceProperties.cashoutRestrictedBalance -\n balanceProperties.payPalRestrictedBalance;\n\n if (this.kycStatus && this.kycStatus.kycVerified) {\n balance += balanceProperties.pokerWinningsBalance + balanceProperties.slotsWinningsBalance + balanceProperties.sportsRestrictedBalance;\n }\n\n return balance;\n }\n\n private calculateMainWithOldFormula(balanceProperties: BalanceProperties): number {\n return balanceProperties.cashoutRestrictedBalance + balanceProperties.cashoutableBalance - balanceProperties.payPalBalance;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { ModalDialogService } from '@frontend/sports/modal/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { EarlyPayoutAcceptance, SyncUserSettingsService, UserSettingsService } from '@frontend/sports/user/feature';\nimport { LoadingIndicatorService } from '@frontend/vanilla/core';\n\nexport enum EarlyPayoutTACSource {\n MyBets,\n EventView,\n EditBet,\n}\n\nexport interface IEarlyPayoutTACTrackingData {\n source: EarlyPayoutTACSource;\n forLiveBet: boolean;\n}\n\nconst loadTacDialog = () => import('./tac-dialog/tac-dialog.component').then((m) => m.MyBetsEarlyPayoutTacDialogComponent);\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutTacService {\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private modalDialog: ModalDialogService,\n private loadingIndicator: LoadingIndicatorService,\n private userSettingsService: UserSettingsService,\n private tracker: TrackingService,\n loggerFactory: LoggerFactory,\n private userSettings: SyncUserSettingsService,\n ) {\n this.logger = loggerFactory.getLogger('EarlyPayoutTacService');\n }\n\n get hasUserAcceptedTAC(): boolean {\n return this.userSettings.earlyPayoutAcceptance !== null;\n }\n\n async acceptEarlyPayoutTaC(trackingData: IEarlyPayoutTACTrackingData): Promise {\n try {\n const accepted = await this.modalDialog.openDialog(await loadTacDialog(), {\n settings: { showDialogHeader: true, cssClass: 'early-payout-tac-dialog' },\n }).result;\n if (accepted) {\n return await this.tryUpdateUserSettings(trackingData);\n }\n } catch (e) {\n this.logger.error(e);\n }\n\n return false;\n }\n\n private trackingContext(source: EarlyPayoutTACSource): string {\n switch (source) {\n case EarlyPayoutTACSource.EditBet:\n return '_editBet';\n case EarlyPayoutTACSource.EventView:\n return '_eventView';\n case EarlyPayoutTACSource.MyBets:\n return '_myBets';\n }\n }\n\n private async tryUpdateUserSettings(trackingData: IEarlyPayoutTACTrackingData): Promise {\n const trackingContext = this.trackingContext(trackingData.source);\n const loadingIndicator = this.loadingIndicator.start();\n let result = false;\n try {\n await this.userSettingsService.set({ earlyPayoutAcceptanceMode: EarlyPayoutAcceptance.Higher });\n this.tracker.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]:\n (trackingData.forLiveBet ? 'LIVE/EarlyPayout_TCSuccessful' : 'MAIN/EarlyPayout_TCSuccessful') + trackingContext,\n });\n result = true;\n } catch (error) {\n this.tracker.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]: (trackingData.forLiveBet ? 'LIVE/EarlyPayout_TCError' : 'MAIN/EarlyPayout_TCError') + trackingContext,\n });\n this.logger.error(error, 'Failed to accept Early payout TAC');\n }\n loadingIndicator.done();\n\n return result;\n }\n}\n","export const EarlyPayoutDispatcherEvent = {\n CashOut: {\n Updated: 'EARLY_PAYOUT_UPDATED',\n PushToLower: 'EARLYPAYOUT_PUSH_TOLOWER',\n EarlyPayoutSuccess: 'EARLY_PAYOUT_SUCCESS',\n EarlyPayoutFailed: 'EARLY_PAYOUT_FAILED',\n CashOutAlreadyExecuted: 'CASH_OUT_ALREADY_EXECUTED',\n },\n};\n","import { BetSlip } from '@bpos/v1/my-bets';\nimport { BetslipListType, OpenBetsSummary } from '@frontend/sports/types/models/my-bets';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\n\nexport enum MyBetsRaceBetType {\n Win = 0,\n EachWay,\n Place,\n Forecast,\n Tricast,\n CombinationForecast,\n CombinationTricast,\n}\n\nexport interface PinnedBets {\n betslipNumber: string;\n isMigratedBet: boolean;\n}\n\nexport interface MyBetsFilteredResponse {\n events: { [key: string]: MyBetsEventModel };\n betslips: BetSlip[];\n summary: OpenBetsSummary;\n typeFilter: BetslipListType;\n errorLoadingBets: boolean | undefined;\n}\n\nexport const myBetsFilteredErrorResponse = (): MyBetsFilteredResponse => ({\n betslips: [],\n events: {},\n summary: {\n openEvents: {},\n openBetsCount: 0,\n liveBetsCount: 0,\n betNumbers: [],\n isMigrationSummary: false,\n hasError: false,\n },\n typeFilter: BetslipListType.Settled,\n errorLoadingBets: true,\n});\n\nexport interface MyBetsSingleResponse {\n betslip: BetSlip | null;\n events: { [key: string]: MyBetsEventModel };\n}\n\nexport const myBetsSingleErrorResponse = (): MyBetsSingleResponse => ({\n betslip: null,\n events: {},\n});\n\nexport interface MyBetsListSlimResponse {\n betslips: BetSlip[];\n events: { [key: string]: MyBetsEventModel };\n errorLoadingBets?: boolean;\n}\n\nexport const myBetsListSlimErrorResponse = (): MyBetsListSlimResponse => ({\n betslips: [],\n events: {},\n errorLoadingBets: true,\n});\n","import {\n AdditionalInformation as AdditionalInformationBpos,\n BetGroupType,\n BetSlipType,\n KeyValueInformation,\n Money,\n Odds,\n OddsFormat,\n SystemType,\n} from '@bpos';\nimport { BetType } from '@bpos/common';\nimport { AccaBoostDeviationReason } from '@bpos/extended';\nimport {\n BestOddsGuaranteedInformation,\n BestOddsGuaranteedState,\n Bet,\n BetBuilderBetState,\n BetGroup,\n BetProtectorInformation,\n BetSlip,\n BetState,\n EditBetHistoryInformation as EditBetHistoryInformationBpos,\n EdsPromotionToken,\n FixtureType,\n ParticipantPick,\n PlaceTerm,\n PromotionToken,\n ProtectorState,\n SignPost,\n SignPostType,\n SlipState,\n SystemBetDetails,\n Tax,\n TaxInformation as TaxInformationResponse,\n} from '@bpos/v1/my-bets';\nimport { OfferSource } from '@cds';\nimport { PicksView } from '@cds/betting-offer/domain-specific';\nimport { CrmConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable, exhaustiveCheckGuard } from '@frontend/sports/common/core/utils/extended-types';\nimport { BetslipListType } from '@frontend/sports/types/models/my-bets';\nimport { isEmpty, partition, sortBy } from 'lodash-es';\nimport { BetAndGetEdsToken, PromoTokenPlaceBetSignPostingInfo } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { isEdsPromoTokenBetAndGet } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { IEarlyPayoutPicksResult } from './early-payout';\nimport { EarlyPayoutStates, IEarlyPayoutData, PayoutError } from './early-payout-types';\nimport { MyBetsRaceBetType } from './my-bets-response';\n\nexport interface IEarlyPayoutResultedPicks {\n resultedPicks: IEarlyPayoutPicksResult[];\n}\n\nexport class EarlyPayout implements IEarlyPayoutData, IEarlyPayoutResultedPicks {\n state: EarlyPayoutStates;\n value: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tShould not be send to EPS during Cashout!\n\t\tUsed only to show to the customer and in Web tracking.\n\t\tcurrency.pipe ensures the new value is rounded and formatted accordingly\n */\n valueWithoutStake?: number;\n userExpectedValue: number;\n acceptMode: any;\n earlyPayoutPossible: boolean;\n editBetPossible: boolean;\n error?: PayoutError;\n autoCashOutValue?: number;\n /**\n\t\tHas Value only for FreeBets.\n\t\tUsed only to show to the customer.\n */\n autoCashOutValueWithoutStake?: number;\n autoCashoutNotificationValue?: number;\n /**\n\t\tHas Value only for FreeBets.\n\t\tUsed only to show to the customer.\n */\n autoCashoutNotificationValueWithoutStake?: number;\n resultedPicks: IEarlyPayoutPicksResult[];\n pushUpdate?: boolean;\n}\n\nexport enum MigrationTabType {\n After = 'After',\n Before = 'Before',\n}\n\nexport enum TaxationModel {\n OnWinnings = 'OnWinnings',\n OnStake = 'OnStake',\n}\n\nexport enum SgpType {\n Sgp = 'Sgp',\n SgpPlus = 'Sgp+',\n}\n\nexport class EditBetHistoryInformation {\n betSlipNumber: string;\n editDate: Date | null;\n editOrder: number;\n\n constructor(editBetsHistory: EditBetHistoryInformationBpos | undefined) {\n if (editBetsHistory) {\n this.betSlipNumber = editBetsHistory.betNumber;\n this.editDate = new Date(editBetsHistory.editDate);\n this.editOrder = editBetsHistory.editOrder;\n } else {\n this.betSlipNumber = '';\n this.editDate = null;\n this.editOrder = 0;\n }\n }\n}\n\nexport class MyBetsBetV2ViewModel {\n fixtureId: number;\n compoundId: string;\n\n get fixtureCompoundId(): string {\n return this.compoundId ? this.compoundId : `2:${this.fixtureId}`;\n }\n}\n\nexport class MyBetsParticipantData extends MyBetsBetV2ViewModel {\n isStartingPrice: boolean;\n placeDeadHeatDivisor: string | undefined;\n ruleFourDeduction: string | undefined;\n placeRule4Deduction: string | undefined;\n xCastSettlementDeviated: boolean;\n deadheatDivisor: string | undefined;\n betType: MyBetsRaceBetType;\n betTypeName: string;\n marketId: string | undefined;\n participants: string[];\n participantInfo: { [participantFixtureId: number]: number };\n bestOddsGuaranteedState: BestOddsGuaranteedState;\n}\n\nexport class MyBetsResultData {\n constructor() {\n this.event = null;\n }\n\n event: MyBetsEventModel | null;\n eventId: number;\n eventName: string;\n eventDate: Date;\n marketId: number;\n marketName: string;\n optionId: number;\n optionName: string;\n leagueId: number;\n odds: number;\n}\n\nenum HbsFixtureType {\n Antepost = 0,\n DayOfRace = 1,\n Standard = 2,\n PairGame = 3,\n Tournament = 4,\n Unknown = 5,\n}\n\nexport class MyBetsOptionMarketData extends MyBetsBetV2ViewModel {\n fixtureName: string;\n fixtureType: HbsFixtureType;\n optionMarketId: number;\n optionId: number;\n event: MyBetsEventModel | null;\n virtualSport: boolean;\n priceId: number;\n betType?: BetType;\n isStartingPrice: boolean;\n bestOddsGuaranteedState: BestOddsGuaranteedState;\n}\n\nexport class MyBetsBetBuilderData extends MyBetsOptionMarketData {\n constructor() {\n super();\n this.event = null;\n }\n\n eventId: number;\n legs: MyBetsBetBuilderLeg[];\n offerSource: OfferSource;\n betBuilderType: 'Ogp' | 'BetBuilder';\n}\n\nexport interface MyBetsBetBuilderLeg {\n name: string;\n betState: BetBuilderLegState | BetState;\n cancellationReason?: string;\n marketId?: number;\n marketName?: string;\n optionId?: number;\n optionName?: string;\n}\n\nexport enum BetBuilderLegState {\n Open = 'OPEN',\n Lost = 'LOST',\n Won = 'WON',\n Cancelled = 'CANCELED',\n}\n\nexport class MyBetsListContext {\n isEventView: boolean;\n isPrintView: boolean;\n eventId?: string;\n eventName?: string;\n listType?: BetslipListType;\n migrationTabType: MigrationTabType | null;\n associatedAccount: Nullable;\n showMigrationTabs?: boolean;\n showPrintButton?: boolean;\n showFilter?: boolean;\n showDownloadButton?: boolean;\n}\n\nexport const enum ExportButtonType {\n Print = 'Print',\n Download = 'Download',\n}\n\nexport class EarlyPayoutInformation {\n autoCashoutTriggered: boolean;\n autoCashoutThresholdValue: number;\n}\n\nexport enum ResettlementEffectOnCustomer {\n Positive = 'Positive',\n Negative = 'Negative',\n}\n\nexport enum BetStateCssClass {\n BetInProgress = 'bet-in-progress',\n BetSettled = 'bet-settled',\n BetWon = 'bet-won',\n BetLost = 'bet-lost',\n BetCancelled = 'bet-cancelled',\n}\n\nexport class AdditionalInformation {\n boostedOdds?: number;\n boostedNativeOdds?: Odds;\n boostedWinnings?: number;\n boostedWinningsCurrencyCode?: string;\n winningsBoost?: number;\n winningsBoostCurrencyCode?: string;\n riskFreeMaxCompensation?: number;\n riskFreePercentage?: number;\n tokenNotRewarded?: boolean;\n positiveResettlementEffectOnCustomer?: boolean;\n negativeResettlementEffectOnCustomer?: boolean;\n accaBoostDeviationReason?: AccaBoostDeviationReason;\n boostRatio?: number;\n bestOddsBonus?: number;\n fixedPriceWinnings?: number;\n liability?: number;\n possibleLiability?: number;\n totalTax?: number;\n possibleTotalTax?: number;\n currencyCode?: string;\n\n private static getNativeBoostedOdds(additionalInformations: AdditionalInformationBpos): Odds | undefined {\n const mapIterable = additionalInformations.informationItems.map(({ key, value }) => [key, value] as [string, string]);\n const additionalInfoMap = new Map(mapIterable);\n\n const oddsFormat = additionalInfoMap.get('BoostedOdds.OddsFormat');\n if (oddsFormat == null) {\n return;\n }\n\n const odds = {\n oddsFormat,\n } as Odds;\n\n switch (oddsFormat) {\n case OddsFormat.European:\n const euValue = additionalInfoMap.get('BoostedOdds.European');\n odds.european = Number(euValue);\n break;\n case OddsFormat.British:\n const numerator = additionalInfoMap.get('BoostedOdds.British.Numerator');\n const denominator = additionalInfoMap.get('BoostedOdds.British.Denominator');\n odds.british = {\n numerator: Number(numerator),\n denominator: Number(denominator),\n };\n break;\n case OddsFormat.American:\n const usValue = additionalInfoMap.get('BoostedOdds.American');\n odds.american = Number(usValue);\n break;\n }\n\n return odds;\n }\n\n static createFromAdditionalInfoResponse(additionalInformation: AdditionalInformationBpos, state?: SlipState): AdditionalInformation {\n const model = new AdditionalInformation();\n\n if (!additionalInformation?.informationItems) {\n return model;\n }\n\n model.boostedNativeOdds = this.getNativeBoostedOdds(additionalInformation);\n for (const info of additionalInformation.informationItems) {\n switch (info.key) {\n case 'BoostedOdds':\n model.boostedOdds = Number(info.value);\n break;\n case 'BoostedWinnings':\n model.boostedWinnings = Number(info.value);\n break;\n case 'BoostedWinningsCurrencyCode':\n model.boostedWinningsCurrencyCode = info.value;\n break;\n case 'WinningsBoost':\n model.winningsBoost = Number(info.value);\n break;\n case 'WinningsBoostCurrencyCode':\n model.winningsBoostCurrencyCode = info.value;\n break;\n case 'RiskFreeMaxCompensation':\n model.riskFreeMaxCompensation = Number(info.value);\n break;\n case 'RiskFreePercentage':\n model.riskFreePercentage = Number(info.value);\n break;\n case 'TokenNotRewarded':\n model.tokenNotRewarded = info.value === 'true';\n break;\n case 'ResettlementEffectOnCustomer':\n model.positiveResettlementEffectOnCustomer = info.value === ResettlementEffectOnCustomer.Positive;\n model.negativeResettlementEffectOnCustomer = info.value === ResettlementEffectOnCustomer.Negative;\n break;\n case 'AccaBoostDeviationReason':\n model.accaBoostDeviationReason = info.value as AccaBoostDeviationReason;\n break;\n case 'AccaBoostRatio':\n model.boostRatio = Number(info.value);\n break;\n case 'FixedPriceWinnings':\n model.fixedPriceWinnings = Number(info.value);\n break;\n case 'BestOddsBonus':\n model.bestOddsBonus = Number(info.value);\n break;\n case 'liability':\n if (state === SlipState.Open) {\n model.possibleLiability = Number(info.value);\n break;\n }\n\n model.liability = Number(info.value);\n break;\n case 'possibleLiability':\n model.possibleLiability = Number(info.value);\n break;\n case 'totalTax':\n if (state === SlipState.Open) {\n model.possibleTotalTax = Number(info.value);\n break;\n }\n\n model.totalTax = Number(info.value);\n break;\n case 'possibleTotalTax':\n model.possibleTotalTax = Number(info.value);\n break;\n case 'currencyCode':\n model.currencyCode = info.value;\n break;\n }\n }\n\n if (model.bestOddsBonus && model.fixedPriceWinnings) {\n model.boostedWinnings = model.fixedPriceWinnings + model.bestOddsBonus;\n }\n\n return model;\n }\n}\n\nexport enum TokenType {\n FreeBetToken = 'FreeBetToken',\n OddsBoostToken = 'OddsBoostToken',\n RiskFreeToken = 'RiskFreeToken',\n AccaBoostToken = 'AccaBoostToken',\n BestOddsToken = 'BestOddsToken',\n BetAndGetToken = 'BetAndGetToken',\n}\n\nexport enum PayoutType {\n Cash = 'Cash',\n FreeBet = 'FreeBet',\n Bonus = 'Bonus',\n}\n\nexport class UsedRewardToken {\n payoutType?: PayoutType;\n tokenType: TokenType;\n additionalInformation?: AdditionalInformation;\n\n static createFromResponse(promoToken: PromotionToken, state?: SlipState): UsedRewardToken {\n const parsedValue = new UsedRewardToken();\n\n if (promoToken.payoutType) {\n parsedValue.payoutType = PayoutType[promoToken.payoutType as any as PayoutType];\n }\n\n parsedValue.tokenType = TokenType[`${promoToken.tokenType.toString()}Token` as TokenType];\n parsedValue.additionalInformation = AdditionalInformation.createFromAdditionalInfoResponse(promoToken.additionalInformation, state);\n\n return parsedValue;\n }\n}\n\nexport class TaxInformation {\n taxes: Tax[];\n additionalInformation: AdditionalInformationBpos;\n}\n\ninterface IMyBetsBet {\n eventDate: Date;\n eventName: string; // V1 Event Name, V2 Racing Fixture Name (Antepost), V2 Meeting Name ( Day of Race ), V2 Golf - Fixture Group\n marketName: string; // V1 Market Name, V2 Market Name (Racing - None, Golf - Fixture Name)\n betTypeName: string; // V1 (None), V2 (To Win, Each Way, Forecast, Tricast ... )\n optionName: string; // V1 Option Name, V2 Participant(s) or Option Market name.\n\n marketId: number;\n\n outcome: string; // Option that won. ( Can be option name which won)\n state: BetState; // If our pick won or lost. When Cached out this can be LOST but betslip will be WON.\n\n isBanker: boolean;\n cancellationReason: string;\n betIndex: number;\n\n odds: Odds;\n\n sportName: string;\n leagueName: string;\n sportId: number;\n leagueId: number;\n}\n\nexport interface IMyBetsBetWithResultInfo extends IMyBetsBet {\n resultInfo: MyBetsResultData;\n}\n\nexport interface IMyBetsBetWithOptionMarketInfo extends IMyBetsBet {\n optionMarketInfo: MyBetsOptionMarketData;\n}\n\nexport interface IMyBetsBetWithParticipantInfo extends IMyBetsBet {\n participantInfo: MyBetsParticipantData;\n}\n\nexport interface IMyBetsBetWithBetBuilderInfo extends IMyBetsBet {\n betBuilderInfo: MyBetsBetBuilderData;\n}\n\nexport interface OgpRepricingInfo {\n isPending: boolean;\n odds?: Odds;\n}\n\nexport class MyBetsBet implements IMyBetsBet {\n eventDate: Date;\n eventName: string; // V1 Event Name, V2 Racing Fixture Name (Antepost), V2 Meeting Name ( Day of Race ), V2 Golf - Fixture Group\n marketName: string; // V1 Market Name, V2 Market Name (Racing - None, Golf - Fixture Name)\n betTypeName: string; // V1 (None), V2 (To Win, Each Way, Forecast, Tricast ... )\n optionName: string; // V1 Option Name, V2 Participant(s) or Option Market name.\n marketId: number;\n optionNames: string[]; // V1 (None), V2 (Forecast, Tricast ... )\n\n outcome: string; // Option that won. ( Can be option name which won)\n state: BetState; // If our pick won or lost. When Cached out this can be LOST but betslip will be WON.\n\n isBanker: boolean;\n cancellationReason: string;\n betIndex: number;\n odds: Odds;\n participantInfo: MyBetsParticipantData | null;\n resultInfo: MyBetsResultData | null;\n optionMarketInfo: MyBetsOptionMarketData | null;\n betBuilderInfo: MyBetsBetBuilderData | null;\n leagueName: string;\n sportId: number;\n sportName: string;\n leagueId: number;\n priceBoostOriginalOdds: Odds;\n isPriceBoosted: boolean;\n ogpRepricingInfo: OgpRepricingInfo | undefined;\n betType?: string;\n\n /**\n * Generates place terms formatted text e.g. 1/3 1-2-3\n *\n * @param terms Place terms data from the response\n */\n private static getPlaceTermsText(terms: PlaceTerm): string {\n const places = [...Array(terms.numberOfFirstPlaces)].map((_, i) => i + 1).join('-');\n\n return `${terms.fraction.numerator}/${terms.fraction.denominator} ${places}`;\n }\n\n static createFromBetResponse(bet: Bet): MyBetsBet {\n const viewModel = new MyBetsBet();\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.outcome = bet.outcome;\n viewModel.isBanker = bet.isBanker;\n viewModel.cancellationReason = bet.cancellationReason || '';\n viewModel.betIndex = bet.index;\n viewModel.eventName = bet.fixture.name || '';\n viewModel.marketName = bet.market.name || '';\n viewModel.marketId = bet.market.id!;\n viewModel.optionName = bet.option?.name || '';\n if (bet.participantBetDetails) {\n viewModel.participantInfo = MyBetsBet.createFromParticipantBetDetails(bet);\n viewModel.optionName = viewModel.participantInfo.participants.join(', ');\n // TODO: BPOSv4 investigate if both fields `betTypeName` are actually needed\n viewModel.betTypeName = viewModel.participantInfo.betTypeName;\n } else if (bet.optionBetDetails) {\n const isBetBuilder = Boolean(bet.optionBetDetails.isBetBuilder && bet.optionBetDetails.betBuilderData);\n if (isBetBuilder) {\n viewModel.betBuilderInfo = this.createFromBetBuilderDetails(bet);\n viewModel.betBuilderInfo.betBuilderType = 'BetBuilder';\n } else {\n viewModel.optionMarketInfo = this.createFromOptionBetDetails(bet);\n }\n viewModel.optionNames = bet.optionBetDetails.picks.map((o) => o.optionName);\n if (viewModel.optionMarketInfo) viewModel.optionMarketInfo.isStartingPrice = bet.optionBetDetails.isStartingPrice;\n viewModel.isPriceBoosted = bet.optionBetDetails.isPriceBoost;\n viewModel.priceBoostOriginalOdds = bet.optionBetDetails.priceBoostData?.originalOdds;\n viewModel.betType = bet.optionBetDetails.betType?.toString();\n viewModel.betTypeName = bet.optionBetDetails.betTypeName ?? '';\n if (bet.optionBetDetails.betType === BetType.EachWay && bet.optionBetDetails.placeTerm != null) {\n viewModel.betTypeName = `${bet.optionBetDetails.betTypeName} ${MyBetsBet.getPlaceTermsText(bet.optionBetDetails.placeTerm)}`;\n }\n } else {\n viewModel.resultInfo = MyBetsBet.createFromRegularOption(bet);\n }\n viewModel.odds = bet.odds;\n viewModel.state = bet.state;\n viewModel.leagueName = bet.competition?.name ?? '';\n viewModel.sportName = bet.sport.name ?? '';\n viewModel.sportId = bet.sport.id;\n // buildabet doesn't have competition\n viewModel.leagueId = bet.competition?.id ?? 0;\n\n return viewModel;\n }\n\n static createFromOgpBetGroupResponse(betGroup: BetGroup, bets: Bet[]): MyBetsBet {\n const bet = bets[0];\n const viewModel = new MyBetsBet();\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.outcome = betGroup.outcome;\n viewModel.betIndex = betGroup.index ?? 0;\n viewModel.eventName = bet.fixture.name ?? '';\n viewModel.betBuilderInfo = new MyBetsBetBuilderData();\n viewModel.betBuilderInfo.betBuilderType = 'Ogp';\n viewModel.betBuilderInfo.fixtureId = bet.fixture.id;\n viewModel.betBuilderInfo.legs = bets.map((b) => ({\n name: this.resolveLegName(b),\n marketName: b.market.name,\n marketId: b.market.id,\n optionName: b.option.name,\n optionId: b.option.id,\n betState: b.state,\n cancellationReason: b.cancellationReason ?? '',\n }));\n viewModel.odds = betGroup.odds;\n viewModel.state = betGroup.betGroupState;\n viewModel.leagueName = bet.competition?.name ?? '';\n viewModel.sportName = bet.sport.name ?? '';\n viewModel.sportId = bet.sport.id;\n // buildabet doesn't have competition\n viewModel.leagueId = bet.competition?.id ?? 0;\n viewModel.betBuilderInfo.compoundId = bet.fixture.compoundId;\n viewModel.ogpRepricingInfo = betGroup.ogpBetGroupDetails?.repricingInfo;\n\n return viewModel;\n }\n\n private static resolveLegName(bet: Bet): string {\n if (bet.participantBetDetails) {\n const participants = this.mapParticipants(bet.participantBetDetails.picks);\n\n return participants.join(', ');\n } else {\n return `${bet.market.name} - ${bet.option?.name}`;\n }\n }\n\n static createFromRegularOption(bet: Bet): MyBetsResultData {\n const viewModel = new MyBetsResultData();\n\n viewModel.eventId = bet.fixture.id;\n viewModel.eventName = bet.fixture.name || '';\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.marketId = bet.market.id!;\n viewModel.marketName = bet.market.name || '';\n viewModel.optionId = bet.option.id;\n viewModel.optionName = bet.option.name || '';\n viewModel.leagueId = bet.competition.id!;\n\n return viewModel;\n }\n\n static createFromParticipantBetDetails(bet: Bet): MyBetsParticipantData {\n const viewModel = new MyBetsParticipantData();\n viewModel.betTypeName = bet.participantBetDetails.betTypeName;\n viewModel.isStartingPrice = bet.participantBetDetails.isStartingPrice;\n viewModel.placeDeadHeatDivisor = bet.participantBetDetails.placeDeadHeatDivisor?.toString();\n viewModel.deadheatDivisor = bet.deadHeatDivisor?.toString();\n viewModel.placeRule4Deduction = bet.participantBetDetails.placeRule4Deduction?.toString();\n viewModel.ruleFourDeduction = bet.participantBetDetails.rule4Deduction?.toString();\n viewModel.xCastSettlementDeviated = bet.participantBetDetails.xCastSettlementDeviated;\n viewModel.betType = bet.participantBetDetails.betTypeId;\n viewModel.marketId = bet.market.id?.toString();\n\n if (viewModel.betType === MyBetsRaceBetType.EachWay && bet.participantBetDetails.placeTerm != null) {\n viewModel.betTypeName = `${viewModel.betTypeName} ${MyBetsBet.getPlaceTermsText(bet.participantBetDetails.placeTerm)}`;\n }\n viewModel.participants = this.mapParticipants(bet.participantBetDetails.picks);\n\n viewModel.bestOddsGuaranteedState = bet.participantBetDetails.bestOddsGuaranteedState;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.compoundId = bet.fixture.compoundId;\n viewModel.participantInfo = bet.participantBetDetails.picks.reduce(\n (result, curr) => {\n result[curr.fixtureParticipantId] = curr.positionInBet;\n\n return result;\n },\n {} as Record,\n );\n\n return viewModel;\n }\n\n private static mapParticipants(participantPick: ParticipantPick[]): string[] {\n return participantPick\n .sort((a, b) => {\n return a.positionInBet > b.positionInBet ? 1 : a.positionInBet < b.positionInBet ? -1 : 0;\n })\n .map((p) => p.participantName);\n }\n\n static createFromOptionBetDetails(bet: Bet): MyBetsOptionMarketData {\n const getFixtureType = (fixtureType?: FixtureType): HbsFixtureType => {\n switch (fixtureType) {\n case FixtureType.Antepost:\n return HbsFixtureType.Antepost;\n case FixtureType.DayOfRace:\n return HbsFixtureType.DayOfRace;\n case FixtureType.PairGame:\n return HbsFixtureType.PairGame;\n case FixtureType.Standard:\n return HbsFixtureType.Standard;\n case FixtureType.Tournament:\n return HbsFixtureType.Tournament;\n }\n\n return HbsFixtureType.Unknown;\n };\n\n const viewModel = new MyBetsOptionMarketData();\n viewModel.fixtureName = bet.fixture.name;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.fixtureType = getFixtureType(bet.fixture.type);\n viewModel.optionMarketId = bet.market.id!;\n viewModel.optionId = bet.option.id;\n viewModel.virtualSport = bet.optionBetDetails.isVirtual;\n viewModel.priceId = bet.optionBetDetails.pick?.id;\n viewModel.betType = bet.optionBetDetails.betType;\n viewModel.compoundId = bet.fixture.compoundId;\n\n return viewModel;\n }\n\n static createFromBetBuilderDetails(bet: Bet): MyBetsBetBuilderData {\n const { betBuilderData } = bet.optionBetDetails;\n const viewModel = new MyBetsBetBuilderData();\n\n viewModel.eventId = betBuilderData.tv1BetBuilderInfo?.event.id;\n viewModel.offerSource = betBuilderData.tv1BetBuilderInfo ? OfferSource.V1 : OfferSource.V2;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.compoundId = bet.fixture.compoundId;\n viewModel.optionMarketId = bet.market.id!;\n viewModel.optionId = bet.option.id;\n viewModel.legs = (betBuilderData.legs || []).map(({ name, betState }) => ({ name, betState: convertBetBuilderBetState(betState) }));\n\n return viewModel;\n }\n\n constructor() {\n this.eventName = '';\n this.marketName = '';\n this.betTypeName = '';\n this.optionName = '';\n this.outcome = '';\n this.cancellationReason = '';\n this.state = BetState.Open;\n this.participantInfo = null;\n this.resultInfo = null;\n this.optionMarketInfo = null;\n this.betBuilderInfo = null;\n this.isBanker = false;\n }\n\n get isLive(): boolean {\n return !!(this.event && this.event.scoreboard.started && !this.event.scoreboard.isFinished);\n }\n\n get isVirtual(): boolean {\n return !!(this.optionMarketInfo && this.optionMarketInfo.virtualSport);\n }\n\n get needToShowEventView(): boolean {\n return !this.isVirtual && !!this.event && this.state === BetState.Open;\n }\n\n get event(): MyBetsEventModel | null {\n if (this.resultInfo) {\n return this.resultInfo.event;\n }\n\n if (this.betBuilderInfo) {\n return this.betBuilderInfo.event;\n }\n\n if (this.optionMarketInfo) {\n return this.optionMarketInfo.event;\n }\n\n return null;\n }\n}\n\nexport class MyBetsBetslipBase {\n betType: BetSlipType;\n stake: Money;\n isPotentialEP: boolean;\n betPlacedDate: Date;\n betslipRealId: string;\n state: SlipState;\n isCachedOut: boolean;\n earlyPayout?: EarlyPayout;\n hideEP?: boolean;\n typeAsName: string;\n containsLiveBets: boolean;\n isFreeBet: boolean;\n get isSingleBet(): boolean {\n return this.betType === BetSlipType.Single;\n }\n\n sgpType?: SgpType;\n}\n\nexport interface SignPostingData {\n offerId: string;\n offerType: string;\n rewardTime: number;\n rewards: RewardData[];\n}\n\nexport interface RewardData {\n currency: string;\n maxCap?: number;\n type: string;\n value: number;\n noOfSlabs?: number;\n slabAmount?: number;\n}\n\n// TODO: Use the SignPostingReward below instead of bpos/v4 SignPostingReward, as it has been deprecated.\nexport interface SignPostingReward {\n currency: string;\n maxCap?: number;\n offerId: string;\n offerType: string;\n rewardTime: number;\n type: string;\n value: number;\n noOfSlabs?: number;\n slabAmount?: number;\n}\n\nexport class MyBetsBetSlip extends MyBetsBetslipBase {\n systemType: SystemType | null;\n betslipId: string;\n bets: MyBetsBet[];\n totalOdds: Odds | undefined;\n isOGPRepricePending: boolean;\n totalOGPRepricedOdds: Odds | undefined;\n possibleWinnings: Money;\n payoutAmount: Money;\n systemBetDetails?: SystemBetDetails;\n /**\n * This includes taxation amount\n */\n grossPossibleWinnings: Money;\n /**\n * This includes taxation amount\n */\n grossPayoutAmount: Money;\n /**\n * Returns true when slip is lost, but bet protection is won\n */\n isRefunded: boolean;\n betProtectorInformation: BetProtectorInformation;\n taxInformation: TaxInformation;\n /**\n * Regulation specific e.g. italian regulator ticket\n */\n externalTicketId: string | null;\n /**\n * Regulation specific e.g. italian regulator license\n */\n licenseId: string | null;\n columnId: number;\n showDate: boolean;\n dateKey: number;\n isBasicModel: boolean;\n typeTranslated: string;\n bestOddsGuaranteeInformation: BestOddsGuaranteedInformation;\n earlyPayoutInformation?: EarlyPayoutInformation;\n isEditBet: boolean;\n editBetHistory: EditBetHistoryInformation[];\n isRecoveringAfterEditBet: boolean;\n signPostingRewards: SignPostingReward[];\n placeBetSignPosting: PromoTokenPlaceBetSignPostingInfo | BetAndGetEdsToken | undefined;\n usedRewardTokens: UsedRewardToken[];\n edsPromoTokens: EdsPromotionToken[];\n reBetPicks?: PicksView;\n listType?: BetslipListType;\n isPendingPayout: boolean;\n isTeaserBet: boolean;\n teasedAmount?: number;\n\n override get isSingleBet(): boolean {\n return this.betType === BetSlipType.Single || (this.betType === BetSlipType.Combo && this.bets.length === 1);\n }\n\n static createFromBetslipResponse(betslip: BetSlip, events: { [key: number]: MyBetsEventModel }, tokensConfig: CrmConfig): MyBetsBetSlip {\n const viewModel = new MyBetsBetSlip();\n viewModel.betType = betslip.slipType;\n viewModel.systemType = betslip.systemType || null;\n viewModel.betslipId = betslip.betSlipNumber;\n viewModel.betslipRealId = betslip.editBetInformation?.betSlipRealNumber || betslip.betSlipNumber;\n viewModel.betPlacedDate = new Date(betslip.conclusionDateUtc);\n viewModel.dateKey = calculateDateKey(betslip.conclusionDateUtc);\n viewModel.totalOdds = betslip.totalOdds;\n viewModel.isFreeBet = betslip.isFreeBet;\n viewModel.isCachedOut = betslip.isEarlyPayout;\n viewModel.isBasicModel = betslip.isBasicModel;\n viewModel.stake = betslip.stake || emptyMoney();\n viewModel.possibleWinnings = getCalculatedPossibleWinnings(tokensConfig, betslip);\n viewModel.payoutAmount = getCalculatedPayoutAmount(tokensConfig, betslip);\n viewModel.grossPossibleWinnings = betslip.grossPossibleWinnings || emptyMoney();\n viewModel.grossPayoutAmount = betslip.grossPayout || emptyMoney();\n viewModel.betProtectorInformation = betslip.betProtectorInformation || emptyBetProtector();\n viewModel.isRefunded = viewModel.betProtectorInformation.state === ProtectorState.Won;\n viewModel.taxInformation = getTaxInformation(betslip.taxInformation);\n viewModel.externalTicketId = betslip.externalTicketId || null;\n viewModel.licenseId = betslip.licenseId || null;\n viewModel.typeAsName = betslip.typeAsName;\n viewModel.typeTranslated = betslip.type;\n viewModel.containsLiveBets = betslip.containsLiveBets || false;\n viewModel.bets = MyBetsBetSlip.createFromApiResponse(betslip);\n viewModel.enhanceBetsWithEventData(events);\n viewModel.bestOddsGuaranteeInformation = betslip.bestOddsGuaranteedInformation || emptyBestOddsGuaranteed();\n viewModel.isEditBet = this.checkIsEditBet(betslip);\n viewModel.editBetHistory = (betslip.editBetInformation?.editBetHistory || []).map((e) => new EditBetHistoryInformation(e));\n viewModel.earlyPayoutInformation = betslip.earlyPayoutInformation as EarlyPayoutInformation;\n viewModel.isRecoveringAfterEditBet = betslip.editBetInformation?.editBetProgressInformation?.isRecovering || false;\n viewModel.usedRewardTokens = [MyBetsBetSlip.getUsedReward(betslip)!].filter(Boolean);\n\n const [placeBetSignPosting, postBetSignPosting] = partition(betslip.signPostings, (signPost) => signPost.type === SignPostType.BetPlacement);\n viewModel.signPostingRewards = getSignPostingRewards(postBetSignPosting, betslip);\n viewModel.placeBetSignPosting = betslip.isFreeBet ? undefined : getPlaceBetSignPosting(placeBetSignPosting, betslip);\n\n viewModel.state = betslip.state;\n viewModel.systemBetDetails = betslip.systemBetDetails;\n viewModel.edsPromoTokens = betslip.edsPromoTokens;\n viewModel.isPendingPayout = betslip.isEarlyPayout && betslip.isDelayedForEarlyPayout;\n const { isTeaserBet, teaserPoints } = MyBetsBetSlip.resolveTeaserBetInfo(betslip);\n\n viewModel.isTeaserBet = isTeaserBet;\n viewModel.teasedAmount = teaserPoints;\n viewModel.sgpType = MyBetsBetSlip.getSgpType(betslip);\n viewModel.isOGPRepricePending = betslip.betGroups.some((betGroup) => betGroup.ogpBetGroupDetails?.repricingInfo?.isPending);\n viewModel.totalOGPRepricedOdds = betslip.ogpRepricingInfo?.totalOdds;\n return viewModel;\n }\n\n static getUsedReward(betslip: BetSlip): Nullable {\n if (betslip.isFreeBet) {\n return { tokenType: TokenType.FreeBetToken };\n } else if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n return { tokenType: TokenType.BetAndGetToken };\n } else if (!isEmpty(betslip.promoTokens)) {\n return UsedRewardToken.createFromResponse(betslip.promoTokens[0], SlipState.Open);\n } else {\n return null;\n }\n }\n\n private static checkIsEditBet(betslip: BetSlip): boolean {\n if (betslip.isEditBet === undefined) {\n return !!betslip.editBetInformation;\n }\n\n return betslip.isEditBet;\n }\n\n get usedRewardToken(): Nullable {\n if (this.usedRewardTokens && this.usedRewardTokens.length) {\n return this.usedRewardTokens[0];\n }\n\n return null;\n }\n\n private enhanceBetsWithEventData(events: { [key: string]: MyBetsEventModel }): void {\n for (const bet of this.bets) {\n if (bet.resultInfo) {\n bet.resultInfo.event = events[bet.resultInfo.eventId] || null;\n }\n if (bet.betBuilderInfo) {\n if (bet.betBuilderInfo.legs.length > 1 && !!bet.betBuilderInfo.compoundId) {\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.compoundId] ?? events[bet.betBuilderInfo.fixtureId] ?? null;\n }\n\n switch (bet.betBuilderInfo.offerSource) {\n case OfferSource.V1:\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.eventId] ?? null;\n break;\n case OfferSource.V2:\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.compoundId] ?? null;\n break;\n }\n }\n\n if (bet.optionMarketInfo) {\n bet.optionMarketInfo.event = events[bet.optionMarketInfo.compoundId] ?? null;\n }\n }\n }\n\n private static createFromApiResponse(betslip: BetSlip): MyBetsBet[] {\n const betslipBets = betslip.bets ?? [];\n const betslipGroups = betslip.betGroups ?? [];\n const betslipBetOGPGroups = betslipGroups.filter((betGroup) => betGroup.betGroupType === BetGroupType.Ogp);\n\n // The betslip.Bets collection contains bets that are part of groups and stand-alone bets. For bets that are part of OGP groups we will consider them as legs,\n // hence we skip them from regular bet mapping and use a custom mapper that will yield a single mapped bet\n const betsByGroupMap = new Map();\n const standAloneBets: Bet[] = [];\n for (const bet of betslipBets) {\n let isStandAloneBet = true;\n for (const betGroup of betslipBetOGPGroups) {\n const groupBets = betsByGroupMap.get(betGroup) || [];\n if (betGroup.bets.some((betIndex) => bet.index === betIndex)) {\n isStandAloneBet = false;\n groupBets.push(bet);\n }\n betsByGroupMap.set(betGroup, groupBets);\n }\n if (isStandAloneBet) {\n standAloneBets.push(bet);\n }\n }\n\n const ogpBetGroups = Array.from(betsByGroupMap.keys());\n\n const mappedStandAloneBets = standAloneBets.map((bet) => MyBetsBet.createFromBetResponse(bet));\n const groupBets = ogpBetGroups.map((betGroup) => MyBetsBet.createFromOgpBetGroupResponse(betGroup, betsByGroupMap.get(betGroup)!));\n\n return sortBy(groupBets.concat(mappedStandAloneBets), (mappedBet) => mappedBet.betIndex);\n }\n\n private static resolveTeaserBetInfo(betslip: BetSlip): { isTeaserBet: boolean; teaserPoints: number | undefined } {\n // we are expecting that there is only one TeaserBet per slip\n const teaserBetGroup = betslip.betGroups?.find((betGroup) => betGroup.betGroupType === BetGroupType.Teaser);\n\n return { isTeaserBet: !!teaserBetGroup, teaserPoints: teaserBetGroup?.teaserBetGroupDetails?.teaserPoints };\n }\n\n static getSgpType(betslip: BetSlip): SgpType | undefined {\n const sgpGroups = betslip.betGroups.filter((g) => g.index !== undefined && g.betGroupType === BetGroupType.Ogp);\n\n // if no bet groups - undefined\n if (!Array.isArray(sgpGroups) || !sgpGroups.length) {\n return undefined;\n }\n\n if (sgpGroups.length === 1) {\n const allBetsInSameGroup = betslip.bets.every((bet) => {\n return sgpGroups[0].bets.includes(bet.index);\n });\n\n return allBetsInSameGroup ? SgpType.Sgp : SgpType.SgpPlus;\n }\n\n // if more than one sgp group - SgpPlus\n return SgpType.SgpPlus;\n }\n}\n\n// These function are scoped inside module and do NOT leak into window-object\nfunction calculateDateKey(isoDate: string): number {\n const [datePart]: string[] = isoDate.split('T');\n\n return parseInt(datePart.replace(/-/g, ''));\n}\n\nfunction getTaxInformation(taxInformation: TaxInformationResponse): TaxInformation {\n if (!taxInformation) {\n return emptyTaxInformation();\n }\n\n return {\n taxes: taxInformation.taxes,\n additionalInformation: taxInformation.additionalInformation,\n };\n}\n\nfunction emptyBestOddsGuaranteed(): BestOddsGuaranteedInformation {\n return {\n state: BestOddsGuaranteedState.NotEligible,\n fixedPriceWinnings: {\n value: 0,\n currency: '',\n },\n };\n}\n\nfunction emptyBetProtector(): BetProtectorInformation {\n return {\n fee: 0,\n } as BetProtectorInformation;\n}\n\nfunction emptyMoney(): Money {\n return {\n value: 0,\n currency: '',\n };\n}\n\nfunction emptyAdditionalInformation(): AdditionalInformationBpos {\n return {\n informationItems: [],\n };\n}\n\nfunction emptyTaxInformation(): TaxInformation {\n return {\n taxes: [],\n additionalInformation: emptyAdditionalInformation(),\n };\n}\n\nfunction getCalculatedPossibleWinnings(tokensConfig: CrmConfig, betslip: BetSlip): Money {\n if (tokensConfig.tokens?.useFreebetStakeInCalculations && betslip.isFreeBet) {\n return betslip.grossPossibleWinnings || emptyMoney();\n }\n\n return betslip.maxPayout || emptyMoney();\n}\n\nfunction getCalculatedPayoutAmount(tokensConfig: CrmConfig, betslip: BetSlip): Money {\n if (tokensConfig.tokens?.useFreebetStakeInCalculations && betslip.isFreeBet) {\n return betslip.grossPayout || emptyMoney();\n }\n\n return betslip.payout || emptyMoney();\n}\n\nexport class MyBetsSlipEditBetHistoryViewModel extends MyBetsBetSlip {\n editBetTitle: string;\n\n static createEditBetFromBetslipResponse(betslip: BetSlip, title: string, tokensConfig: CrmConfig): MyBetsSlipEditBetHistoryViewModel {\n const viewModel = MyBetsBetSlip.createFromBetslipResponse(betslip, [], tokensConfig) as MyBetsSlipEditBetHistoryViewModel;\n viewModel.editBetTitle = title;\n\n return viewModel;\n }\n}\n\nexport interface IBetSlipRepositoryResult {\n betslips: MyBetsBetSlip[];\n hasMore: boolean;\n pageIndex: number;\n listType: BetslipListType | null;\n errorLoadingBets: boolean | undefined;\n}\n\nfunction convertBetBuilderBetState(betBuilderBetState: BetBuilderBetState): BetBuilderLegState {\n switch (betBuilderBetState) {\n case BetBuilderBetState.Canceled:\n return BetBuilderLegState.Cancelled;\n case BetBuilderBetState.Lost:\n return BetBuilderLegState.Lost;\n case BetBuilderBetState.Open:\n return BetBuilderLegState.Open;\n case BetBuilderBetState.Won:\n return BetBuilderLegState.Won;\n default:\n return exhaustiveCheckGuard(betBuilderBetState);\n }\n}\n\n// When the new betslip.signPostings object have no postBetPlacement data and exists betslip.signPostingRewards then return betslip.signPostingRewards\nfunction getSignPostingRewards(signPostings: SignPost[], betslip: BetSlip): SignPostingReward[] {\n try {\n if (signPostings.length === 0) {\n return betslip.signPostingRewards ?? [];\n }\n\n const parsedSignPostDetails = signPostings.map((signPost) => JSON.parse(signPost.data) as SignPostingData);\n parsedSignPostDetails.sort((a, b) => a.rewardTime - b.rewardTime);\n\n return parsedSignPostDetails.flatMap((obj) =>\n obj.rewards.map((reward) => ({\n currency: reward.currency,\n offerId: obj.offerId,\n offerType: obj.offerType,\n rewardTime: obj.rewardTime,\n type: reward.type,\n value: reward.value,\n maxCap: reward.maxCap,\n noOfSlabs: reward.noOfSlabs,\n slabAmount: reward.slabAmount,\n })),\n );\n } catch (error) {\n throw new Error('Error while parsing post bet placement signposting JSON');\n }\n}\n\n// When the new betslip.signPostings object have no betPlacement data and the betslip.edsPromoTokens tokenType is BetAndGet\n// then return betslip.edsPromoTokens[0].additionalInformation PlaceBetSignPostingData\nfunction getPlaceBetSignPosting(signPostings: SignPost[], betslip: BetSlip): PromoTokenPlaceBetSignPostingInfo | BetAndGetEdsToken | undefined {\n try {\n if (signPostings.length) {\n const parsedData = JSON.parse(signPostings[0].data);\n if (!isEmpty(betslip.promoTokens)) {\n return parsedData as PromoTokenPlaceBetSignPostingInfo;\n }\n if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n return parsedData as BetAndGetEdsToken;\n }\n } else {\n if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n const placeBetSignPost = betslip.edsPromoTokens[0].additionalInformation.informationItems.find(\n (item: KeyValueInformation) => item.key === 'PlaceBetSignPostingData',\n )?.value;\n\n return placeBetSignPost ? (JSON.parse(placeBetSignPost) as BetAndGetEdsToken) : undefined;\n }\n }\n\n return;\n } catch (error) {\n throw new Error('Error while parsing bet placement signposting JSON');\n }\n}\n","import { Money } from '@bpos';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { PayoutError } from './early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from './my-bets-viewmodels';\n\nexport interface EarlyPayoutSubscription {\n betNumber: string;\n}\n\nexport interface PayoutStatus {\n type: string;\n expectedPayout?: number;\n actualPayout?: number;\n queryStatusRetryDelay?: number;\n pendingQueryStatusRetryDelay?: number;\n overdueRetryDelay: string;\n pendingOverdueRetryDelay?: number;\n error: PayoutError;\n}\n\nexport interface EarlyPayoutCallResponse {\n payout: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n payoutWithoutStake?: number;\n error?: PayoutError;\n}\n\nexport interface EarlyPayoutSuccessResponse {\n payout: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n payoutWithoutStake?: number;\n betslipId: string;\n}\n\nexport interface EarlyPayoutFailedResponse {\n error: Nullable;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n possibleAmountWithoutStake?: number;\n betslipId: string;\n}\n\nexport interface PossibleEarlyPayoutResponse {\n earlyPayouts: EarlyPayoutPossibility[];\n}\n\nexport interface IEarlyPayoutPicksResult {\n optionId: number;\n state: EarlyPayoutResultedPickState;\n}\n\nexport enum EarlyPayoutResultedPickState {\n Won = 0,\n Lost = 1,\n Cancelled = 2,\n}\n\nexport enum EarlyPayoutBetslipType {\n Single = 'Single',\n Combo = 'Combo',\n}\n\nexport interface EarlyPayoutPossibility {\n betNumber: string;\n earlyPayoutPossible: boolean;\n earlyPayoutValue: number;\n earlyPayoutError?: PayoutError;\n editBetPossible?: boolean;\n autoCashOutValue?: number;\n autoCashoutNotificationValue?: number;\n resultedPicks?: IEarlyPayoutPicksResult[]; // Used in Editbet\n}\n\nexport interface BetRequest {\n key: number;\n betNumber: string;\n acceptanceMode: string;\n expectedPayout: number;\n}\n\nexport interface IEarlyPayoutParams {\n betslipId: string;\n earlyPayoutStake: number | null;\n}\n\nexport interface EarlyPayoutRequest {\n bet: BetRequest;\n}\n\nexport interface EarlyPayoutResponse {\n requestId: string;\n betslipId: string;\n payoutStatus: PayoutStatus;\n}\n\nexport enum EditBetStatus {\n Succeeded = 'Succeeded',\n Failed = 'Failed',\n Pending = 'Pending',\n}\n\nexport interface EditBetPlacementStatus {\n status: EditBetStatus;\n delayInSeconds?: number;\n}\n\nexport interface PossibleEarlyPayoutByBetNumberResponse {\n earlyPayoutPossibilities: EarlyPayoutPossibility[];\n}\n\nexport interface EarlyPayoutValueSubscription {\n betNumber: string;\n}\n\nexport interface SubscribeRequest {\n subscriptions: EarlyPayoutValueSubscription[];\n calculateEarlyPayout: boolean;\n}\n\nexport interface EarlyPayoutsWithBetslip {\n earlyPayout: EarlyPayoutPossibility;\n betslip: MyBetsBetslipBase;\n}\n\nexport interface AutoCashoutResponse {\n betNumber?: string;\n setAutoCashoutErrors: PayoutError[];\n possible?: boolean;\n}\n\nexport interface CashoutSettingsBetInfo {\n betslipId: string;\n earlyPayout?: EarlyPayout;\n possibleWinnings: Money;\n grossPossibleWinnings: Money;\n isFreeBet: boolean;\n stake: Money;\n betType: string;\n containsLiveBets: boolean;\n}\n\nexport enum CashoutSettingsType {\n Auto = 1,\n Notify = 2,\n}\n\nexport interface SetAutoCashoutRequest {\n betNumber: string;\n autoCashoutValue: number;\n autoCashoutType: CashoutSettingsType;\n}\n\nexport interface RemoveAutoCashoutRequest {\n betNumber: string;\n autoCashoutType: CashoutSettingsType;\n}\n\nexport enum AutoCashoutState {\n Available = 0,\n Processing = 1,\n Disabled = 2,\n}\n\nexport interface AutocashoutValidation {\n valid: boolean;\n errorMessage: string;\n}\n\nexport interface AutoCashoutTracking {\n setType: CashoutSettingsType;\n betNumber: string;\n eventName: string;\n trackingName: string;\n value?: number;\n betType: string;\n isFreeBet: boolean;\n labelEvent: string;\n containsLiveBets: boolean;\n}\n\nexport interface IAutoCashoutBetslipNumbers {\n betslipId: string;\n betslipRealId: string;\n}\n\nexport interface EarlyPayoutEnhancedBet {\n betNumber: string;\n autoCashoutValue: number;\n autoCashoutNotificationValue: number;\n}\n\nexport interface EarlyPayoutByBetNumberResponse {\n data: EarlyPayoutEnhancedBet[];\n}\n","import { Injectable } from '@angular/core';\n\nimport { SlipState } from '@bpos/v1/my-bets';\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\n\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { EarlyPayoutErrorTypes, EarlyPayoutOptionErrors, EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetSlip, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutHelpers {\n // Extend the set with all supported bet not allowed reasons\n private readonly betNotAllowedReasons = new Set(['livesgp']);\n\n constructor(private moneyService: MoneyService) {}\n\n isEarlyPayoutDisabled(betslip: MyBetsBetslipBase): boolean {\n let result = false;\n if (\n !betslip ||\n !betslip.earlyPayout ||\n betslip.earlyPayout.state === EarlyPayoutStates.Done ||\n betslip.earlyPayout.state === EarlyPayoutStates.PaidOut ||\n betslip.earlyPayout.state === EarlyPayoutStates.PermanentlyDisabled ||\n betslip.earlyPayout.state === EarlyPayoutStates.Completed\n ) {\n result = true;\n }\n\n return result;\n }\n\n isEarlyPayoutPermanentlyDisabled(ep: EarlyPayoutPossibility): boolean {\n return (\n !ep.earlyPayoutPossible &&\n this.getEarlyPayoutErrorTypeLowerCase(ep.earlyPayoutError?.type, ep.earlyPayoutError?.reason) ===\n EarlyPayoutErrorTypes.BetNotAllowedForCashout.toLowerCase()\n );\n }\n\n mapDisabledEarlyPayouts(betslips: MyBetsBetslipBase[]): void {\n betslips\n .filter((betslip) => betslip && !betslip.isCachedOut && !betslip.earlyPayout)\n .forEach((betslip) => {\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n });\n }\n\n mapPermanentlyDisabledEarlyPayouts(earlyPayouts: EarlyPayoutPossibility[], potentialEPbetslips: MyBetsBetslipBase[]): void {\n earlyPayouts\n .filter((earlyPayout: EarlyPayoutPossibility) => this.isEarlyPayoutPermanentlyDisabled(earlyPayout))\n .forEach((earlyPayout: EarlyPayoutPossibility) => {\n potentialEPbetslips\n .filter((betslip: MyBetsBetslipBase) => betslip.betslipRealId === earlyPayout.betNumber && betslip.state === SlipState.Open)\n .forEach((betslip: MyBetsBetslipBase) => {\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.PermanentlyDisabled;\n });\n });\n }\n\n mapHiddenEarlyPayouts(betslips: MyBetsBetslipBase[]): void {\n betslips.forEach((betslip) => {\n betslip.hideEP = betslip.earlyPayout && betslip.earlyPayout.state === EarlyPayoutStates.PermanentlyDisabled;\n });\n }\n\n mapEarlyPayoutsWithBetslip(potentialEPbetslips: MyBetsBetslipBase[], betsEpEligible: EarlyPayoutPossibility[]): EarlyPayoutsWithBetslip[] {\n return betsEpEligible\n .map((ep) => {\n return {\n earlyPayout: ep,\n betslip: potentialEPbetslips.find((betslip) => betslip.betslipRealId === ep.betNumber)!,\n };\n })\n .filter((match) => match.earlyPayout && match.betslip);\n }\n\n // For Italy labels money.service floors the amount instead of rounding it\n // For FreeBet cashouts there might be inconsistent amounts shown if cashouts are enabled on Italy\n getValueWithoutFreeBetStake(stake: number, earlyPayoutValue: number | undefined, isFreeBet: boolean): number | undefined {\n return isFreeBet && earlyPayoutValue ? this.moneyService.roundMoney(earlyPayoutValue - stake) : undefined;\n }\n\n // For Italy labels money.service floors the amount instead of rounding it\n // For FreeBet cashouts there might be inconsistent amounts shown if cashouts are enabled on Italy\n getValueWithFreeBetStake(stake: number, earlyPayoutValue: number, isFreeBet: boolean): number | undefined {\n return isFreeBet && earlyPayoutValue ? this.moneyService.roundMoney(earlyPayoutValue + stake) : undefined;\n }\n\n getEarlyPayoutErrorTypeLowerCase(type?: string, reason?: string): string | undefined {\n if (type && reason && this.isLiveSgpError(type, reason)) {\n return `${type}${reason}`.toLowerCase();\n }\n\n return type?.toLowerCase();\n }\n\n isLiveSgpError(type?: string, reason?: string): boolean {\n const typeToLowerCase = type?.toLowerCase();\n const reasonToLowerCase = reason?.toLowerCase();\n\n return (\n typeToLowerCase === EarlyPayoutErrorTypes.BetNotAllowedForCashout.toLowerCase() &&\n !!reasonToLowerCase &&\n this.betNotAllowedReasons.has(reasonToLowerCase)\n );\n }\n\n earlyPayoutIsNotOffered(betslip: MyBetsBetSlip): boolean {\n const earlyPayoutError = betslip.earlyPayout?.error;\n return (\n !!earlyPayoutError &&\n (earlyPayoutError.type === EarlyPayoutErrorTypes.BetNotAllowedForCashout ||\n earlyPayoutError.type === EarlyPayoutOptionErrors.OptionMarketTemplateNotAllowed ||\n (!!betslip.isTeaserBet && earlyPayoutError.type === EarlyPayoutErrorTypes.CashoutNotAllowed))\n );\n }\n}\n","export enum EarlyPayoutSubscriptionSource {\n MyBets = 'mybets',\n EditBet = 'editbet',\n}\n","import { inject } from '@angular/core';\n\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\n\nimport { EarlyPayoutDispatcherEvent } from '../../my-bets/models/early-payout.model';\nimport { EarlyPayoutCallResponse, EarlyPayoutFailedResponse, EarlyPayoutSuccessResponse } from '../models/early-payout';\nimport { EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutService } from './early-payout.service';\n\nexport abstract class EarlyPayoutSubmitService {\n private betslipPayoutStatuses: { [id: string]: EarlyPayoutStates } = {};\n private betslipsWithExecutedPayoutOperation: { [id: string]: MyBetsBetslipBase } = {};\n\n private readonly dispatcher = inject(DispatcherService);\n\n constructor(private epService: EarlyPayoutService) {}\n\n submitPayout(betslip: MyBetsBetslipBase, context: string, betTypeInfo?: string): Promise {\n const deferred = new Deferred();\n const betslipId = betslip.betslipRealId;\n\n this.betslipPayoutStatuses[betslipId] = EarlyPayoutStates.Preparing;\n\n this.epService\n .place(betslip, context, betTypeInfo)\n .then((response: EarlyPayoutCallResponse) => {\n if (response.error) {\n delete this.betslipPayoutStatuses[betslipId];\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutFailed, {\n error: response.error,\n possibleAmountWithoutStake: response.payoutWithoutStake,\n betslipId,\n });\n\n return;\n }\n\n this.betslipPayoutStatuses[betslipId] = EarlyPayoutStates.PaidOut;\n const earlyPayout = this.betslipsWithExecutedPayoutOperation[betslipId]?.earlyPayout;\n if (earlyPayout !== undefined) {\n earlyPayout.state = EarlyPayoutStates.PaidOut;\n }\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutSuccess, {\n payout: response.payout,\n payoutWithoutStake: response.payoutWithoutStake,\n betslipId,\n });\n deferred.resolve(response);\n })\n .catch((error) => {\n delete this.betslipPayoutStatuses[betslipId];\n\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n if (error.error) {\n betslip.earlyPayout.error = error.error;\n }\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutFailed, {\n error: error.error,\n betslipId,\n });\n })\n .finally(() => {\n delete this.betslipsWithExecutedPayoutOperation[betslipId];\n });\n\n return deferred.promise;\n }\n\n adjustPayoutStatus(betslip: MyBetsBetslipBase): void {\n const betslipId = betslip.betslipRealId;\n const earlyPayoutState = this.betslipPayoutStatuses[betslipId];\n const earlyPayout = betslip.earlyPayout;\n\n if (earlyPayout !== undefined && earlyPayoutState !== undefined) {\n earlyPayout.state = earlyPayoutState;\n\n if (earlyPayoutState === EarlyPayoutStates.Preparing) {\n this.betslipsWithExecutedPayoutOperation[betslipId] = betslip;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ErrorKind, PickState, PickWithState } from '@cds/push/cashout-commands';\n\nimport { EarlyPayoutBetslipType } from '../models/early-payout';\nimport { EarlyPayoutErrorTypes, EarlyPayoutOptionErrors, EarlyPayoutPickState, PayoutError, PayoutErrorPick } from '../models/early-payout-types';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionMapperService {\n mapToEarlyPayoutError(error?: PayoutError): PayoutError | undefined {\n if (!error) {\n return;\n }\n\n return {\n ...error,\n type: this.convertOptionToPayoutErrorType(error),\n };\n }\n\n convertPicksToPickStatus(picks?: PickWithState[]): PayoutErrorPick[] {\n if (!picks) {\n return [];\n }\n\n return picks.map((pick) => ({\n id: pick.id,\n state: this.convertEarlyPayoutPushPickStateToEarlyPayoutErrorPick(pick.pickState),\n }));\n }\n\n convertPushUpdateErrorKindToEarlyPayoutError(error: ErrorKind, picks: PickWithState[]): string {\n switch (error) {\n case ErrorKind.BetLost:\n return EarlyPayoutErrorTypes.BetLost;\n case ErrorKind.BetNotFound:\n return EarlyPayoutErrorTypes.BetNotFound;\n case ErrorKind.CashoutNotFound:\n return EarlyPayoutErrorTypes.CashoutNotFound;\n case ErrorKind.ChangedBetSlipState:\n return EarlyPayoutErrorTypes.ChangedBetSlipState;\n case ErrorKind.DuplicatedCashout:\n return EarlyPayoutErrorTypes.DuplicatedCashout;\n case ErrorKind.OverMaxCashoutAmount:\n return EarlyPayoutErrorTypes.OverMaxCashoutAmount;\n case ErrorKind.UnderMinCashoutAmount:\n return EarlyPayoutErrorTypes.UnderMinCashoutAmount;\n case ErrorKind.BetNotAllowedForCashout:\n return EarlyPayoutErrorTypes.BetNotAllowedForCashout;\n case ErrorKind.Option:\n return this.convertPushUpdateOptionErrorToPayoutErrorType(this.convertPicksToPickStatus(picks));\n case ErrorKind.UnderMinOddsKey:\n return EarlyPayoutErrorTypes.UnderMinOddsKey;\n case ErrorKind.CashoutNotAllowed:\n return EarlyPayoutErrorTypes.CashoutNotAllowed;\n case ErrorKind.InconsistentMonetaryValue:\n return EarlyPayoutErrorTypes.InconsistentMonetaryValue;\n case ErrorKind.AutoCashoutNotAllowed:\n return EarlyPayoutErrorTypes.AutoCashoutNotAllowed;\n case ErrorKind.DuplicatedAutoCashout:\n return EarlyPayoutErrorTypes.DuplicatedAutoCashout;\n case ErrorKind.CashoutAmountLowerOrEqualToFreeBet:\n return EarlyPayoutErrorTypes.CashoutAmountLowerOrEqualToFreeBet;\n default:\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n }\n\n convertOptionToPayoutErrorType(error: PayoutError): string {\n if (error.type === EarlyPayoutErrorTypes.ChangedOptionStatus) {\n return this.convertPushUpdateOptionErrorToPayoutErrorType(error.picks);\n }\n\n return error.type;\n }\n\n private convertEarlyPayoutPushPickStateToEarlyPayoutErrorPick(pickState: PickState): EarlyPayoutPickState {\n switch (pickState) {\n case PickState.Won:\n return EarlyPayoutPickState.Won;\n case PickState.Lost:\n return EarlyPayoutPickState.Lost;\n case PickState.Cancelled:\n return EarlyPayoutPickState.Cancelled;\n case PickState.ChangedStatus:\n return EarlyPayoutPickState.ChangedStatus;\n case PickState.CutOffDateReached:\n return EarlyPayoutPickState.CutOffDateReached;\n case PickState.Eligible:\n return EarlyPayoutPickState.Eligible;\n case PickState.Hidden:\n return EarlyPayoutPickState.Hidden;\n case PickState.Locked:\n return EarlyPayoutPickState.Locked;\n case PickState.MarketTemplateNotAllowed:\n return EarlyPayoutPickState.MarketTemplateNotAllowed;\n case PickState.NotFound:\n return EarlyPayoutPickState.NotFound;\n default:\n return EarlyPayoutPickState.Unknown;\n }\n }\n\n private convertPushUpdateOptionErrorToPayoutErrorType(picks?: PayoutErrorPick[]): string {\n if (!picks) {\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n\n const betslipType = picks.length === 1 ? EarlyPayoutBetslipType.Single : EarlyPayoutBetslipType.Combo;\n const pickStates = this.getPickstatesSortedByVisiblePriorityDesc();\n\n let highestPriorityPickStateIndex = 0;\n let highestPriorityPickState = '';\n picks.forEach((pick) => {\n if (pickStates[pick.state] && pickStates[pick.state] > highestPriorityPickStateIndex) {\n highestPriorityPickStateIndex = pickStates[pick.state];\n highestPriorityPickState = pick.state.toString();\n }\n });\n\n switch (highestPriorityPickState) {\n case EarlyPayoutPickState.MarketTemplateNotAllowed:\n return EarlyPayoutOptionErrors.OptionMarketTemplateNotAllowed;\n case EarlyPayoutPickState.CutOffDateReached:\n return EarlyPayoutOptionErrors.OptionCutOffDateReached;\n case EarlyPayoutPickState.ChangedStatus:\n return EarlyPayoutOptionErrors.OptionChangedStatus;\n case EarlyPayoutPickState.NotFound:\n return EarlyPayoutOptionErrors.OptionNotFound;\n case EarlyPayoutPickState.Hidden: {\n if (betslipType === EarlyPayoutBetslipType.Single) {\n return EarlyPayoutOptionErrors.OptionHiddenSingle;\n }\n\n return EarlyPayoutOptionErrors.OptionHiddenCombo;\n }\n case EarlyPayoutPickState.Locked: {\n if (betslipType === EarlyPayoutBetslipType.Single) {\n return EarlyPayoutOptionErrors.OptionLockSingle;\n }\n\n return EarlyPayoutOptionErrors.OptionLockCombo;\n }\n default:\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n }\n\n private getPickstatesSortedByVisiblePriorityDesc(): { [state: string]: number } {\n return {\n [EarlyPayoutPickState.Locked]: 1,\n [EarlyPayoutPickState.Hidden]: 2,\n [EarlyPayoutPickState.ChangedStatus]: 3,\n [EarlyPayoutPickState.NotFound]: 4,\n [EarlyPayoutPickState.CutOffDateReached]: 5,\n [EarlyPayoutPickState.MarketTemplateNotAllowed]: 6,\n };\n }\n}\n","import { inject } from '@angular/core';\n\nimport { MessageEnvelope } from '@cds/push';\nimport { CashoutNotification, ErrorKind, PickState, PickWithState } from '@cds/push/cashout-commands';\nimport { EarlyPayoutConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { CachoutSubscription, CdsPushService } from '@frontend/sports/content-distribution/feature';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\nimport { values } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { debounceTime, groupBy, mergeMap } from 'rxjs/operators';\n\nimport { EarlyPayoutDispatcherEvent } from '../../my-bets/models/early-payout.model';\nimport {\n EarlyPayoutPossibility,\n EarlyPayoutResultedPickState,\n EarlyPayoutSubscription,\n EarlyPayoutsWithBetslip,\n IEarlyPayoutPicksResult,\n} from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutErrorTypes, EarlyPayoutStates } from '../models/early-payout-types';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport abstract class EarlyPayoutSubscriptionService {\n private timer: number;\n private useBatch = false;\n private resubscribeBetNumbersOnExpiredDate = false;\n private callback?: (earlyPayoutsWithBetslip: EarlyPayoutsWithBetslip) => void;\n private subscribedList: EarlyPayoutSubscription[] = [];\n private potentialEPbetslips: MyBetsBetslipBase[] = [];\n\n private subject = new Subject();\n private subscriptions: { [key: string]: CachoutSubscription } = {};\n private logger: SportsRemoteLogger = inject(LoggerFactory).getLogger('EarlyPayoutSubscriptionService');\n\n private readonly epConfig = inject(EarlyPayoutConfig);\n private readonly cdsPush = inject(CdsPushService);\n private readonly epHelpers = inject(EarlyPayoutHelpers);\n private readonly dispatcher = inject(DispatcherService);\n private readonly userSettings = inject(SyncUserSettingsService);\n private readonly earlyPayoutSubscriptionMapperService = inject(EarlyPayoutSubscriptionMapperService);\n\n constructor(private earlyPayoutService: EarlyPayoutService) {\n this.subject\n .pipe(\n groupBy((message) => message.betNumber),\n mergeMap((messageGroup) => messageGroup.pipe(debounceTime(10))),\n )\n .subscribe((message) => this.handleEarlyPayoutPush(message));\n }\n\n subscribeEarlyPayoutChanges(\n potentialEPbetslips: MyBetsBetslipBase[],\n betslipsToSubscribe: MyBetsBetslipBase[],\n useBatchCalls: boolean = false,\n callback?: (ep: EarlyPayoutsWithBetslip) => void,\n ): void {\n this.potentialEPbetslips = potentialEPbetslips;\n this.resubscribeBetNumbersOnExpiredDate = true;\n this.callback = callback;\n\n const newSubscriptions = this.createSubscriptions(betslipsToSubscribe);\n\n this.subscribedList.push(...newSubscriptions);\n\n this.subscribeEarlyPayoutValueChanges(this.subscribedList, useBatchCalls);\n }\n\n unsubscribeEarlyPayoutService(): void {\n this.resubscribeBetNumbersOnExpiredDate = false;\n\n this.cdsPush.unsubscribe(values(this.subscriptions));\n\n this.subscriptions = {};\n this.subscribedList = [];\n\n clearTimeout(this.timer);\n }\n\n private createSubscriptions(betslips: MyBetsBetslipBase[]): EarlyPayoutSubscription[] {\n const tempSubscriptions: EarlyPayoutSubscription[] = betslips.map((betslip: MyBetsBetslipBase) => {\n return {\n betNumber: betslip.betslipRealId,\n };\n });\n\n return tempSubscriptions;\n }\n\n private handleEarlyPayoutValuePushUpdate = (earlyPayouts: EarlyPayoutPossibility[]): void => {\n this.epHelpers.mapPermanentlyDisabledEarlyPayouts(earlyPayouts, this.potentialEPbetslips);\n this.epHelpers.mapDisabledEarlyPayouts(this.potentialEPbetslips);\n this.epHelpers.mapHiddenEarlyPayouts(this.potentialEPbetslips);\n\n const eligibleBetslips = this.potentialEPbetslips.filter((match) => !this.epHelpers.isEarlyPayoutDisabled(match));\n const earlyPayoutsWithBetslip = this.epHelpers.mapEarlyPayoutsWithBetslip(eligibleBetslips, earlyPayouts);\n const earlyPayoutAcceptanceMode = this.userSettings.earlyPayoutAcceptance || EarlyPayoutConst.ModeHigher;\n\n earlyPayoutsWithBetslip.forEach((match) => {\n const matchedBetslip = match.betslip;\n const earlyPayout = match.earlyPayout;\n\n if (this.callback) {\n this.callback(match);\n }\n\n // set new values\n if (matchedBetslip.earlyPayout) {\n if (\n matchedBetslip.earlyPayout.state === EarlyPayoutStates.Confirm &&\n matchedBetslip.earlyPayout.value > earlyPayout.earlyPayoutValue &&\n earlyPayoutAcceptanceMode === EarlyPayoutConst.ModeHigher\n ) {\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.PushToLower, true);\n }\n matchedBetslip.earlyPayout.acceptMode = earlyPayoutAcceptanceMode;\n matchedBetslip.earlyPayout.value = earlyPayout.earlyPayoutValue;\n matchedBetslip.earlyPayout.valueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n matchedBetslip.stake.value,\n earlyPayout.earlyPayoutValue,\n matchedBetslip.isFreeBet,\n );\n matchedBetslip.earlyPayout.earlyPayoutPossible = earlyPayout.earlyPayoutPossible;\n\n if (earlyPayout.earlyPayoutPossible && matchedBetslip.earlyPayout.state === EarlyPayoutStates.ModeHigher) {\n return;\n }\n\n if (matchedBetslip.earlyPayout.state === EarlyPayoutStates.Preparing) {\n return;\n }\n\n if (earlyPayout.earlyPayoutPossible && matchedBetslip.earlyPayout.state === EarlyPayoutStates.Disabled) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Allowed;\n matchedBetslip.earlyPayout.error = undefined;\n }\n\n if (!earlyPayout.earlyPayoutPossible && earlyPayout.earlyPayoutError!.type === EarlyPayoutErrorTypes.DuplicatedCashout) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Completed;\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.CashOutAlreadyExecuted);\n\n return;\n }\n\n if (!earlyPayout.earlyPayoutPossible) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n\n if (earlyPayout.earlyPayoutError) {\n matchedBetslip.earlyPayout.pushUpdate = true;\n matchedBetslip.earlyPayout.error = earlyPayout.earlyPayoutError;\n }\n }\n }\n });\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.Updated);\n };\n\n private subscribeEarlyPayoutValueChanges(bettingData: EarlyPayoutSubscription[], useBatchCalls?: boolean): void {\n const subscriptions: CachoutSubscription[] = [];\n\n bettingData.forEach((data) => {\n if (this.epConfig.isEarlyPayoutPushEnabled) {\n const bet = data.betNumber;\n\n if (!this.subscriptions[bet]) {\n const subscription = new CachoutSubscription(bet, this.handler);\n\n this.subscriptions[bet] = subscription;\n subscriptions.push(subscription);\n }\n }\n });\n\n this.useBatch = useBatchCalls === true;\n this.cdsPush.subscribe(subscriptions);\n }\n\n private handler = (data: MessageEnvelope) => {\n this.subject.next(data.payload);\n };\n\n private convertPicksToPickStatus(picks?: PickWithState[]): IEarlyPayoutPicksResult[] {\n if (!picks) {\n return [];\n }\n\n return picks\n .filter((pick) => pick.pickState === PickState.Won || pick.pickState === PickState.Lost || pick.pickState === PickState.Cancelled)\n .map((pick) => ({\n optionId: pick.id,\n state: this.convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState(pick.pickState),\n }));\n }\n\n private convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState(state: PickState): EarlyPayoutResultedPickState {\n switch (state) {\n case PickState.Won:\n return EarlyPayoutResultedPickState.Won;\n case PickState.Lost:\n return EarlyPayoutResultedPickState.Lost;\n default:\n return EarlyPayoutResultedPickState.Cancelled;\n }\n }\n\n private async handleEarlyPayoutPush(data: CashoutNotification): Promise {\n if (!data.subscriptionExpired) {\n const earlyPayoutError = data.errorKind\n ? {\n type: this.earlyPayoutSubscriptionMapperService.convertPushUpdateErrorKindToEarlyPayoutError(\n data.errorKind ?? ErrorKind.Unknown,\n data.picks,\n ),\n reason: data.betNotAllowedReason,\n picks: this.earlyPayoutSubscriptionMapperService.convertPicksToPickStatus(data.picks),\n }\n : undefined;\n\n this.handleEarlyPayoutValuePushUpdate([\n {\n betNumber: data.betNumber,\n earlyPayoutPossible: data.possible,\n earlyPayoutValue: data.possible ? data.value : 0,\n earlyPayoutError,\n resultedPicks: this.convertPicksToPickStatus(data.picks),\n },\n ]);\n }\n\n if (this.resubscribeBetNumbersOnExpiredDate && data.subscriptionExpired) {\n const betNumbersToCheck = [data.betNumber];\n const cancelationToken = new Deferred();\n\n // TODO group consequent push updates (i.e. 200 mls) and call checkEarlyPayoutAndSubscribe with several bet numbers\n try {\n const response = await this.earlyPayoutService.checkEarlyPayoutAndSubscribe(betNumbersToCheck, cancelationToken);\n const betNumbers = response.earlyPayouts.filter((bet) => bet.earlyPayoutPossible).map((bet) => bet.betNumber);\n if (betNumbers.length) {\n const betNumber = betNumbers[0];\n this.subscribeEarlyPayoutValueChanges([{ betNumber }], this.useBatch);\n }\n\n const betNumbersWithCashOutComplete = response.earlyPayouts\n .filter((ep) => !ep.earlyPayoutPossible && ep.earlyPayoutError?.type === EarlyPayoutErrorTypes.DuplicatedCashout)\n .map((ep) => ep.betNumber);\n\n if (betNumbersWithCashOutComplete.length) {\n const earlyPayoutNotPossible: EarlyPayoutPossibility[] = betNumbersWithCashOutComplete.map(\n (ep) =>\n {\n betNumber: ep,\n earlyPayoutPossible: false,\n earlyPayoutValue: 0,\n earlyPayoutError: { type: EarlyPayoutErrorTypes.DuplicatedCashout },\n },\n );\n\n this.handleEarlyPayoutValuePushUpdate(earlyPayoutNotPossible);\n }\n } catch (e) {\n this.logger.error(e, 'handleEarlyPayoutPush');\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { InternalFeaturesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BaseCustomLogger } from '@frontend/sports/common/core/feature/logging';\n\nimport { EarlyPayoutPossibility } from '../models/early-payout';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EPSDetailedLogger extends BaseCustomLogger {\n constructor(\n api: ApiService,\n private internalConfig: InternalFeaturesConfig,\n ) {\n super(api, 'epslogger/logcheckresponse');\n }\n\n protected override isEnabled = (): boolean => this.internalConfig.isEPSDetailedLoggingEnabled;\n}\n","import { inject } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { toCent } from '@frontend/sports/common/core/utils/math';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { EPSDetailedLogger } from 'packages/sports/web/app/src/my-bets-base/early-payout/eps-detailed-logger.service';\nimport { firstValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport {\n EarlyPayoutByBetNumberResponse,\n EarlyPayoutCallResponse,\n EarlyPayoutEnhancedBet,\n EarlyPayoutRequest,\n EarlyPayoutResponse,\n PayoutStatus,\n PossibleEarlyPayoutResponse,\n} from '../models/early-payout';\nimport { EarlyPayoutSubscriptionSource } from '../models/early-payout-subscription-source';\nimport { EarlyPayoutConst, PayoutError } from '../models/early-payout-types';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nclass TrackingData {\n containsLiveBets: boolean;\n context: string;\n isFreeBet: boolean;\n stake: number;\n betType: string;\n}\n\nexport abstract class EarlyPayoutService {\n private firstCall: boolean;\n private readonly logger: SportsRemoteLogger = inject(LoggerFactory).getLogger('EarlyPayoutService');\n\n private readonly apiService = inject(ApiService);\n private readonly tracker = inject(TrackingService);\n private readonly redirectService = inject(RedirectHelperService);\n private readonly timerService = inject(TimerService);\n private readonly epsLogger = inject(EPSDetailedLogger);\n private readonly epsMapper = inject(EarlyPayoutSubscriptionMapperService);\n private readonly earlyPayoutHelpers = inject(EarlyPayoutHelpers);\n\n constructor(private source: EarlyPayoutSubscriptionSource) {\n this.firstCall = true;\n }\n\n async checkEarlyPayoutAndSubscribe(betNumbers: string[], cancelationToken: Deferred): Promise {\n return firstValueFrom(\n this.apiService\n .get('CashoutCheckAndSubscribe', { betNumbers, source: this.source }, { cancelationToken })\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'Possible EarlyPayout response failed.');\n\n return of({ earlyPayouts: [] });\n }),\n map((result) => {\n if (result?.earlyPayouts?.length) {\n result.earlyPayouts.forEach((ep) => this.epsLogger.log(ep));\n }\n\n return result || { earlyPayouts: [] };\n }),\n ),\n );\n }\n\n async enhanceEarlyPayout(betNumbers: string[], cancelationToken: Deferred): Promise {\n return firstValueFrom(\n await this.apiService\n .get('autoCashout/GetByBetNumbers', { betNumbers: betNumbers.join() }, { cancelationToken })\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'EarlyPayout ehancement response failed.');\n\n return of({ data: [] });\n }),\n map((result) => {\n return result.data || [];\n }),\n ),\n );\n }\n\n place = async (betslip: MyBetsBetslipBase, context: string, betTypeInfo?: string): Promise => {\n if (!betslip.earlyPayout || !betslip.earlyPayout.acceptMode) {\n this.logger.error(JSON.stringify(betslip), `AcceptanceMode is empty.`);\n\n return Promise.resolve({\n payout: 0,\n error: { type: EarlyPayoutConst.EpGeneralError },\n });\n }\n\n // additional tracking values\n const trackingData: TrackingData = {\n containsLiveBets: betslip.containsLiveBets,\n context,\n isFreeBet: betslip.isFreeBet,\n stake: betslip.stake.value,\n betType: betTypeInfo ?? (betslip.sgpType ? betslip.sgpType.toLowerCase() : betslip.betType.toLowerCase()),\n };\n\n const request: EarlyPayoutRequest = {\n bet: {\n acceptanceMode: betslip.earlyPayout.acceptMode || EarlyPayoutConst.ModeHigher,\n betNumber: betslip.betslipRealId,\n key: 1,\n expectedPayout: betslip.earlyPayout.userExpectedValue,\n },\n };\n\n return await firstValueFrom(this.apiService.post('cashout', request))\n .then((response) => this.queue(response, trackingData))\n .catch((reason) => this.errorPayout(reason, betslip.betslipRealId, trackingData));\n };\n\n private checkEarlyPayoutStatus = async (requestId: string, betslipId: string, trackingData: TrackingData): Promise => {\n return await firstValueFrom(this.apiService.get('cashout', { requestId }))\n .then((response) => this.queue(response, trackingData, betslipId))\n .catch((reason) => this.errorPayout(reason, betslipId, trackingData));\n };\n\n private queue = (response: EarlyPayoutResponse, trackingData: TrackingData, betslipId?: string): Promise => {\n const payoutStatus = response.payoutStatus;\n const currentBetslipId = betslipId || response.betslipId;\n\n return new Promise((resolve) => {\n switch (payoutStatus.type) {\n case EarlyPayoutConst.StatusPending:\n const callDelay = this.firstCall ? payoutStatus.pendingQueryStatusRetryDelay : payoutStatus.pendingOverdueRetryDelay;\n this.timerService.setTimeout(async () => {\n this.firstCall = false;\n const nextCheck = await this.checkEarlyPayoutStatus(response.requestId, currentBetslipId, trackingData);\n\n return resolve(nextCheck);\n }, callDelay);\n break;\n case EarlyPayoutConst.StatusSucceded:\n return resolve(this.doneSuccess(payoutStatus, currentBetslipId, trackingData));\n default:\n return resolve(this.doneFail(payoutStatus, currentBetslipId, trackingData));\n }\n });\n };\n\n private errorPayout = (reason: { status: number }, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse => {\n if (reason.status === 403 || reason.status === 401) {\n this.redirectService.goToLogin({\n appendReferrer: true,\n referrerNeedsLoggedInUser: true,\n });\n }\n const reasonText = JSON.stringify(reason);\n this.logger.error(`EarlyPayout Unknown System Error. Reason: ${reasonText}`);\n\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(false, betslipId, trackingData.betType, trackingData.isFreeBet),\n [trackingConstants.COMPONENT_LOCATION_EVENT]:\n (trackingData.containsLiveBets ? 'live/earlypayout_UnknownSystem' : 'main/earlypayout_UnknownSystem') + trackingData.context,\n error: reasonText,\n });\n\n return { payout: 0, error: { type: EarlyPayoutConst.EpGeneralError } };\n };\n\n private doneSuccess(payoutStatus: PayoutStatus, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse {\n if (!payoutStatus || !payoutStatus.actualPayout) {\n return {};\n }\n\n const payoutWithoutStake = this.earlyPayoutHelpers.getValueWithoutFreeBetStake(\n trackingData.stake,\n payoutStatus.actualPayout,\n trackingData.isFreeBet,\n );\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(true, betslipId, trackingData.betType, trackingData.isFreeBet),\n earlyPayoutAmount: toCent(payoutWithoutStake || payoutStatus.actualPayout),\n [trackingConstants.COMPONENT_LOCATION_EVENT]:\n (trackingData.containsLiveBets ? 'live/earlypayout' : 'main/earlypayout') + trackingData.context,\n });\n\n return { payout: payoutStatus.actualPayout, payoutWithoutStake };\n }\n\n private doneFail(payoutStatus: PayoutStatus, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse {\n const response: EarlyPayoutCallResponse = {};\n const payoutError = payoutStatus.error;\n\n payoutError.type = this.epsMapper.convertOptionToPayoutErrorType(payoutError);\n\n response.error = payoutError || { type: EarlyPayoutConst.EpGeneralError };\n response.payout = payoutError?.possibleAmount || 0;\n\n let trackingAmount = response.payout;\n const payoutWithoutStake = this.earlyPayoutHelpers.getValueWithoutFreeBetStake(trackingData.stake, response.payout, trackingData.isFreeBet);\n if (payoutWithoutStake !== undefined) {\n response.payoutWithoutStake = payoutWithoutStake > 0 ? payoutWithoutStake : 0;\n trackingAmount = response.payoutWithoutStake;\n }\n\n const pageName = trackingData.containsLiveBets ? `live/earlypayout_${payoutError.type}` : `main/earlypayout_${payoutError.type}`;\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(false, betslipId, trackingData.betType, trackingData.isFreeBet),\n earlyPayoutAmount: toCent(trackingAmount),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: pageName + trackingData.context,\n });\n\n return response;\n }\n\n private getBaseTrackingData(success: boolean, betslipId: string, betType: string, isFreeBet: boolean): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'early payout',\n [trackingConstants.COMPONENT_LABEL_EVENT]: success ? 'success' : 'failure',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'attempt',\n [trackingConstants.COMPONENT_POSITION_EVENT]: betType,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: isFreeBet ? 'freebet' : 'real money bet',\n earlyPayoutSlipID: betslipId,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EarlyPayoutSubscriptionSource } from '../models/early-payout-subscription-source';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutService } from './early-payout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutMyBetsService extends EarlyPayoutService {\n constructor() {\n super(EarlyPayoutSubscriptionSource.MyBets);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutEditBetService extends EarlyPayoutService {\n constructor() {\n super(EarlyPayoutSubscriptionSource.EditBet);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionMyBetsService extends EarlyPayoutSubscriptionService {\n constructor(earlyPayoutService: EarlyPayoutMyBetsService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionEditBetService extends EarlyPayoutSubscriptionService {\n constructor(earlyPayoutService: EarlyPayoutEditBetService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubmitMyBetsService extends EarlyPayoutSubmitService {\n constructor(earlyPayoutService: EarlyPayoutMyBetsService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubmitEditBetService extends EarlyPayoutSubmitService {\n constructor(earlyPayoutService: EarlyPayoutEditBetService) {\n super(earlyPayoutService);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetType } from '@bpos/common';\nimport { SlipState } from '@bpos/v1/my-bets';\nimport { EarlyPayoutConfig, MyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { SyncUserSettingsService, UserService } from '@frontend/sports/user/feature';\n\nimport { EarlyPayoutFailedResponse } from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutErrorTypes, EarlyPayoutStates, PayoutError } from '../models/early-payout-types';\nimport { EarlyPayout, MigrationTabType, MyBetsBetSlip, MyBetsBetslipBase, MyBetsListContext, TokenType } from '../models/my-bets-viewmodels';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutUtils {\n constructor(\n private epConfig: EarlyPayoutConfig,\n private m2User: UserService,\n private userSettingsService: SyncUserSettingsService,\n private mybetsConfig: MyBetsConfig,\n ) {}\n\n isEarlyPayoutAvailable(betslip: MyBetsBetSlip): boolean {\n return this.isEarlyPayoutAllowed() && this.isEarlyPayoutAvailableForBetslip(betslip);\n }\n\n isEarlyPayoutAllowed(): boolean {\n if (!this.epConfig.isEarlyPayoutEnabled || !this.m2User.isEarlyPayoutAllowed) {\n return false;\n }\n\n return !this.userSettingsService.bettingSettings.earlyPayoutDeactivated;\n }\n\n isEditBetDisabled(betslip: MyBetsBetSlip): boolean {\n return (\n betslip.isFreeBet ||\n !!betslip.sgpType ||\n (!!betslip.earlyPayout && betslip.earlyPayout.earlyPayoutPossible && !betslip.earlyPayout.editBetPossible)\n );\n }\n\n private isEarlyPayoutAvailableForBetslip(betslip: MyBetsBetSlip): boolean {\n return Boolean(betslip.earlyPayout && betslip.isPotentialEP && !betslip.hideEP);\n }\n\n onlyAllowedBetTypes(betslip: MyBetsBetslipBase): boolean {\n if (betslip instanceof MyBetsBetSlip) {\n return betslip.bets.every(\n (b) =>\n b.sportId !== SportConstant.Horses &&\n (b.resultInfo ||\n (b.optionMarketInfo && b.optionMarketInfo.betType !== BetType.EachWay) ||\n (b.betBuilderInfo && b.betBuilderInfo.betBuilderType === 'Ogp')),\n );\n }\n\n return false;\n }\n\n handleEarlyPayoutPlaceError(response: EarlyPayoutFailedResponse, earlyPayout?: EarlyPayout): void {\n if (!response || !response.error) {\n return;\n }\n\n const error = response.error;\n const acceptMode = (earlyPayout && earlyPayout.acceptMode) || EarlyPayoutConst.ModeHigher;\n earlyPayout = earlyPayout || new EarlyPayout();\n\n if (error.type !== EarlyPayoutErrorTypes.CashoutAmountChanged) {\n earlyPayout.state = EarlyPayoutStates.Disabled;\n earlyPayout.error = error;\n } else if (response.possibleAmountWithoutStake !== undefined && response.possibleAmountWithoutStake <= 0) {\n // When error is CashoutAmountChanged, bet is placed with freeBet (possibleAmountWithoutStake has value)\n // and possibleAmountWithoutStake has changed to lower or equal to Stake\n earlyPayout.state = EarlyPayoutStates.Disabled;\n earlyPayout.error = { type: EarlyPayoutErrorTypes.CashoutAmountLowerOrEqualToFreeBet };\n } else {\n earlyPayout.value = error.possibleAmount || 0;\n earlyPayout.valueWithoutStake = response.possibleAmountWithoutStake;\n earlyPayout.state = EarlyPayoutStates.Allowed;\n earlyPayout.error = error;\n }\n\n earlyPayout.acceptMode = acceptMode;\n }\n\n isEditButtonVisible(betslip: MyBetsBetSlip, myBetsListContext: MyBetsListContext): boolean {\n if (\n betslip.isRecoveringAfterEditBet ||\n betslip.isCachedOut ||\n betslip.state !== SlipState.Open ||\n myBetsListContext.migrationTabType === MigrationTabType.Before ||\n betslip.usedRewardToken?.tokenType === TokenType.OddsBoostToken ||\n betslip.usedRewardToken?.tokenType === TokenType.AccaBoostToken ||\n betslip.usedRewardToken?.tokenType === TokenType.RiskFreeToken ||\n betslip.usedRewardToken?.tokenType === TokenType.BetAndGetToken\n ) {\n return false;\n }\n\n return !!(this.mybetsConfig.isEditMyBetEnabled && !this.isEditBetDisabled(betslip));\n }\n}\n","export enum SlipTypeId {\n Single = 1,\n Combo = 2,\n System2Of3 = 3,\n SystemPatent = 4,\n SystemTrixie = 5,\n System2Of4 = 6,\n System3Of4 = 7,\n SystemYankee = 8,\n SystemLucky15 = 9,\n System2Of5 = 10,\n System3Of5 = 11,\n System4Of5 = 12,\n SystemCanadian = 13,\n SystemLucky31 = 14,\n System2Of6 = 15,\n System3Of6 = 16,\n System4Of6 = 17,\n System5Of6 = 18,\n SystemHeinz = 19,\n SystemLucky63 = 20,\n System2Of7 = 21,\n System3Of7 = 22,\n System4Of7 = 23,\n System5Of7 = 24,\n System6Of7 = 25,\n SystemSuperHeinz = 26,\n System2Of8 = 27,\n System3Of8 = 28,\n System4Of8 = 29,\n System5Of8 = 30,\n System6Of8 = 31,\n System7Of8 = 32,\n SystemGoliath = 33,\n SystemBankerSingles = 34,\n}\n\nexport enum MyBetsConstants {\n OutcomeEarlyPayout = 'EARLY_PAYOUT',\n ScopeLive = 'LIVE',\n ScopeAll = 'ALL',\n TypeSingle = 'Single bet',\n TypeMulti = 'Multi bet',\n}\n","import { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { PayoutAcceptanceMode } from '@frontend/sports/types/models/user-settings';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport interface IMyBetsEarlyPayoutSubscription {\n dropEarlyPayoutSubscription(): void;\n}\n\nexport abstract class MyBetsEarlyPayoutBaseService implements IMyBetsEarlyPayoutSubscription {\n protected cancelToken: Deferred | null = null;\n protected callback?: (ep: EarlyPayout) => void;\n protected cancelEnhancementToken: Deferred | null = null;\n protected readonly logger: SportsRemoteLogger;\n\n constructor(\n protected earlyPayoutService: EarlyPayoutService,\n protected epSubService: EarlyPayoutSubscriptionService,\n protected epHelpers: EarlyPayoutHelpers,\n protected loggerFactory: LoggerFactory,\n protected earlyPayoutSubmitService: EarlyPayoutSubmitService,\n protected epsLogger: EPSDetailedLogger,\n protected earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n private userSettings: SyncUserSettingsService,\n ) {\n this.cancelToken = new Deferred();\n this.cancelEnhancementToken = new Deferred();\n this.logger = loggerFactory.getLogger('MyBetsEarlyPayoutService');\n }\n\n protected abstract isPotentialEarlyPayoutable(betslip: MyBetsBetslipBase): boolean;\n\n protected abstract prepareEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): Promise;\n\n private mapEarlyPayoutPossibility(ep: EarlyPayoutPossibility, betslipEp: EarlyPayout | undefined): EarlyPayout {\n return {\n value: ep.earlyPayoutValue,\n state: EarlyPayoutStates.Allowed,\n acceptMode: this.getDefaultUserAcceptMode(),\n earlyPayoutPossible: ep.earlyPayoutPossible,\n editBetPossible: (betslipEp && betslipEp.editBetPossible) || ep.editBetPossible,\n resultedPicks: ep.resultedPicks,\n error: ep.earlyPayoutError,\n };\n }\n\n protected callbackFunction = (ep: EarlyPayoutsWithBetslip): void => {\n if (this.callback) {\n this.callback(this.mapEarlyPayoutPossibility(ep.earlyPayout, ep.betslip.earlyPayout));\n }\n };\n\n async mapEarlyPayoutAmount(betslips: MyBetsBetslipBase[], callback?: (ep: EarlyPayout) => void): Promise {\n this.cancelToken = this.refreshCancelationToken();\n this.callback = callback;\n\n const potentialEPbetslips: MyBetsBetslipBase[] = [];\n const betslipIds: string[] = [];\n for (const betslip of betslips) {\n betslip.isPotentialEP = this.isPotentialEarlyPayoutable(betslip);\n if (betslip.isPotentialEP) {\n potentialEPbetslips.push(betslip);\n betslipIds.push(betslip.betslipRealId);\n }\n }\n\n if (betslipIds.length) {\n try {\n const result = await this.earlyPayoutService.checkEarlyPayoutAndSubscribe(betslipIds, this.cancelToken);\n if (result.earlyPayouts) {\n result.earlyPayouts.map(\n (ep) => (ep.earlyPayoutError = this.earlyPayoutSubscriptionMapperService.mapToEarlyPayoutError(ep.earlyPayoutError)),\n );\n await this.prepareEarlyPayouts(result.earlyPayouts, potentialEPbetslips, this.callbackFunction);\n }\n } catch (error: any) {\n if (error && error.status === -1) {\n // request was probably canceled\n return;\n }\n this.logger.error(error, 'Failed to load early payout values.');\n }\n }\n }\n\n protected adjustPayoutStatus(potentialEPbetslips: MyBetsBetslipBase[]): void {\n potentialEPbetslips.forEach((betslip) => this.earlyPayoutSubmitService.adjustPayoutStatus(betslip));\n }\n\n protected async enhanceEligibleBetslips(eligibleBetslips: EarlyPayoutPossibility[]): Promise {\n if (!eligibleBetslips.length) {\n return [];\n }\n\n const betNumbers = eligibleBetslips.map((slip) => slip.betNumber);\n\n this.cancelEnhancementToken = this.refreshCancelationEnhancementToken();\n\n try {\n const result = await this.earlyPayoutService.enhanceEarlyPayout(betNumbers, this.cancelEnhancementToken);\n if (result && result.length) {\n for (const current of result) {\n const index = eligibleBetslips.findIndex((el) => el.betNumber === current.betNumber);\n\n eligibleBetslips[index].autoCashOutValue = current.autoCashoutValue || 0;\n eligibleBetslips[index].autoCashoutNotificationValue = current.autoCashoutNotificationValue || 0;\n }\n }\n\n eligibleBetslips.forEach((r) => this.epsLogger.log(r));\n\n return eligibleBetslips;\n } catch (error: any) {\n if (error && error.status === -1) {\n return eligibleBetslips;\n }\n this.logger.error(error, 'Failed to enhance early payout values.');\n\n return eligibleBetslips;\n }\n }\n\n protected mapEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): void {\n this.epHelpers.mapPermanentlyDisabledEarlyPayouts(earlyPayouts, potentialEPbetslips);\n this.epHelpers.mapDisabledEarlyPayouts(potentialEPbetslips);\n this.epHelpers.mapHiddenEarlyPayouts(potentialEPbetslips);\n\n const eligibleEPbetslips = this.mapMatchedEpBetslips(potentialEPbetslips, earlyPayouts, true);\n const notEligibleEPbetslips = this.mapMatchedEpBetslips(potentialEPbetslips, earlyPayouts, false);\n this.epSubService.subscribeEarlyPayoutChanges(potentialEPbetslips, eligibleEPbetslips.concat(notEligibleEPbetslips), true, callback);\n\n this.adjustPayoutStatus(potentialEPbetslips);\n }\n\n protected mapMatchedEpBetslips(\n potentialEPbetslips: MyBetsBetslipBase[],\n earlyPayouts: EarlyPayoutPossibility[],\n eligibleBetslips: boolean,\n ): MyBetsBetslipBase[] {\n if (!earlyPayouts || !earlyPayouts.length) {\n return [];\n }\n\n const betsEpToMatch = eligibleBetslips\n ? earlyPayouts.filter((ep) => !!ep.earlyPayoutPossible)\n : earlyPayouts.filter((ep) => !ep.earlyPayoutPossible);\n const betslipWithEPBetslip = this.epHelpers.mapEarlyPayoutsWithBetslip(potentialEPbetslips, betsEpToMatch);\n\n betslipWithEPBetslip.forEach((match) => {\n if (eligibleBetslips) {\n match.betslip.earlyPayout = {\n value: match.earlyPayout.earlyPayoutValue,\n valueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.earlyPayoutValue,\n match.betslip.isFreeBet,\n ),\n state: EarlyPayoutStates.Allowed,\n acceptMode: this.getDefaultUserAcceptMode(),\n earlyPayoutPossible: match.earlyPayout.earlyPayoutPossible,\n editBetPossible: match.earlyPayout.editBetPossible,\n autoCashoutNotificationValue: match.earlyPayout.autoCashoutNotificationValue,\n autoCashoutNotificationValueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashoutNotificationValue,\n match.betslip.isFreeBet,\n ),\n autoCashOutValue: match.earlyPayout.autoCashOutValue,\n autoCashOutValueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashOutValue,\n match.betslip.isFreeBet,\n ),\n resultedPicks: match.earlyPayout.resultedPicks || [],\n error: match.earlyPayout.earlyPayoutError,\n };\n } else {\n match.betslip.earlyPayout = match.betslip.earlyPayout || new EarlyPayout();\n match.betslip.earlyPayout.earlyPayoutPossible = match.earlyPayout.earlyPayoutPossible;\n match.betslip.earlyPayout.editBetPossible = !!match.earlyPayout.editBetPossible;\n match.betslip.earlyPayout.autoCashoutNotificationValue = match.earlyPayout.autoCashoutNotificationValue;\n match.betslip.earlyPayout.autoCashoutNotificationValueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashoutNotificationValue,\n match.betslip.isFreeBet,\n );\n match.betslip.earlyPayout.autoCashOutValue = match.earlyPayout.autoCashOutValue;\n match.betslip.earlyPayout.autoCashOutValueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashOutValue,\n match.betslip.isFreeBet,\n );\n match.betslip.earlyPayout.resultedPicks = match.earlyPayout.resultedPicks || [];\n match.betslip.earlyPayout.error = match.earlyPayout.earlyPayoutError;\n }\n });\n\n return betslipWithEPBetslip.map((slip: EarlyPayoutsWithBetslip) => slip.betslip);\n }\n\n private getDefaultUserAcceptMode(): string {\n return this.userSettings.bettingSettings.earlyPayoutAcceptanceMode === PayoutAcceptanceMode.AcceptAnyChanges\n ? EarlyPayoutConst.ModeAny\n : EarlyPayoutConst.ModeHigher;\n }\n\n protected refreshCancelationToken(): Deferred {\n if (this.cancelToken) {\n this.cancelToken.resolve();\n }\n\n return new Deferred();\n }\n\n private refreshCancelationEnhancementToken(): Deferred {\n if (this.cancelEnhancementToken) {\n this.cancelEnhancementToken.resolve();\n }\n\n return new Deferred();\n }\n\n private dropCancelationToken(): void {\n if (this.cancelToken) {\n this.cancelToken.resolve();\n }\n this.cancelToken = null;\n\n if (this.cancelEnhancementToken) {\n this.cancelEnhancementToken.resolve();\n }\n this.cancelEnhancementToken = null;\n }\n\n dropEarlyPayoutSubscription(): void {\n this.dropCancelationToken();\n this.epSubService.unsubscribeEarlyPayoutService();\n }\n}\n","import { SlipState } from '@bpos/v1/my-bets';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport { MyBetsConstants } from '../models/bet-types';\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutUtils } from './early-payout-utils';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { MyBetsEarlyPayoutBaseService } from './my-bets-earlypayout-base.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport class MyBetsEarlyPayoutService extends MyBetsEarlyPayoutBaseService {\n constructor(\n earlyPayoutService: EarlyPayoutService,\n epSubService: EarlyPayoutSubscriptionService,\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutSubmitService: EarlyPayoutSubmitService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n userSettings: SyncUserSettingsService,\n private earlyPayoutUtils: EarlyPayoutUtils,\n ) {\n super(\n earlyPayoutService,\n epSubService,\n epHelpers,\n loggerFactory,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n userSettings,\n );\n }\n\n isPotentialEarlyPayoutable(betslip: MyBetsBetslipBase): boolean {\n return (\n betslip.state === SlipState.Open &&\n (betslip.isSingleBet || betslip.typeAsName === MyBetsConstants.TypeMulti) &&\n this.earlyPayoutUtils.onlyAllowedBetTypes(betslip)\n );\n }\n\n async prepareEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): Promise {\n try {\n const enhancedEarlyPayouts = await this.enhanceEligibleBetslips(earlyPayouts);\n this.mapEarlyPayouts(enhancedEarlyPayouts, potentialEPbetslips, this.callbackFunction);\n } catch (error) {\n this.logger.error(error, 'Failed to enhance eligible betslips.');\n this.mapEarlyPayouts(earlyPayouts, potentialEPbetslips, this.callbackFunction);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport {\n EarlyPayoutEditBetService,\n EarlyPayoutMyBetsService,\n EarlyPayoutSubmitEditBetService,\n EarlyPayoutSubmitMyBetsService,\n EarlyPayoutSubscriptionEditBetService,\n EarlyPayoutSubscriptionMyBetsService,\n} from './early-payout-injection-tokens';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutUtils } from './early-payout-utils';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\nimport { MyBetsEarlyPayoutService } from './my-bets-earlypayout.service';\n\nclass MyBetsEarlyPayoutServiceFactory {\n constructor(\n private epHelpers: EarlyPayoutHelpers,\n private loggerFactory: LoggerFactory,\n private earlyPayoutService: EarlyPayoutService,\n private earlyPayoutSubscriptionService: EarlyPayoutSubscriptionService,\n private earlyPayoutSubmitService: EarlyPayoutSubmitService,\n private epsLogger: EPSDetailedLogger,\n private earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n private earlyPayoutUtils: EarlyPayoutUtils,\n private userSettings: SyncUserSettingsService,\n ) {}\n\n create(): MyBetsEarlyPayoutService {\n return new MyBetsEarlyPayoutService(\n this.earlyPayoutService,\n this.earlyPayoutSubscriptionService,\n this.epHelpers,\n this.loggerFactory,\n this.earlyPayoutSubmitService,\n this.epsLogger,\n this.earlyPayoutSubscriptionMapperService,\n this.userSettings,\n this.earlyPayoutUtils,\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MyBetsEarlyPayoutServiceMyBetsFactory extends MyBetsEarlyPayoutServiceFactory {\n constructor(\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutService: EarlyPayoutMyBetsService,\n earlyPayoutSubscriptionService: EarlyPayoutSubscriptionMyBetsService,\n earlyPayoutSubmitService: EarlyPayoutSubmitMyBetsService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n earlyPayoutUtils: EarlyPayoutUtils,\n userSettings: SyncUserSettingsService,\n ) {\n super(\n epHelpers,\n loggerFactory,\n earlyPayoutService,\n earlyPayoutSubscriptionService,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n earlyPayoutUtils,\n userSettings,\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MyBetsEarlyPayoutServiceEditBetFactory extends MyBetsEarlyPayoutServiceFactory {\n constructor(\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutService: EarlyPayoutEditBetService,\n earlyPayoutSubscriptionService: EarlyPayoutSubscriptionEditBetService,\n earlyPayoutSubmitService: EarlyPayoutSubmitEditBetService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n earlyPayoutUtils: EarlyPayoutUtils,\n userSettings: SyncUserSettingsService,\n ) {\n super(\n epHelpers,\n loggerFactory,\n earlyPayoutService,\n earlyPayoutSubscriptionService,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n earlyPayoutUtils,\n userSettings,\n );\n }\n}\n","import { PicksView } from '@cds/betting-offer/domain-specific';\nimport { MyBetsBetSlip } from 'packages/sports/web/app/src/my-bets-base/models/my-bets-viewmodels';\nimport { MarketUrlParam } from 'packages/sports/web/app/src/navigation-core/url-helper.service';\n\nexport interface IEditMyBetInitPayload {\n sourceBetslip: MyBetsBetSlip;\n}\nexport interface EditMyBetPicksPayload extends IEditMyBetInitPayload {\n picksView: PicksView;\n sourcePageState: IBetslipSourcePageState;\n}\n\nexport enum SourcePageType {\n MyBets,\n Event,\n None,\n}\n\nexport interface SourcePageEventOptions {\n eventId: string;\n eventName: string;\n market: MarketUrlParam;\n}\n\nexport interface IBetslipSourcePageState {\n pageType: SourcePageType;\n options: SourcePageEventOptions | null;\n}\n","@switch (offerStatus) {\n @case (offersStatusEnum.OptIn) {\n
\n {{ promotion.banner?.callToAction || translations.OptInButton }}\n
\n }\n @case (offersStatusEnum.OptedIn) {\n
\n \n {{ translations.OptedInButton }}\n
\n }\n @case (offersStatusEnum.Expired) {\n
\n \n {{ translations.ExpiredButton }}\n
\n }\n @case (offersStatusEnum.Error) {\n
\n \n {{ translations.ErrorButton }}\n
\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CrmPromotionsBanners } from '@frontend/sports/types/components/sitecore';\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { OfferStatus, Promotion } from '../crm-offer-data/crm-offer.model';\n\n@Component({\n selector: 'ms-crm-promotion-status-button',\n templateUrl: './promotion-status-button.component.html',\n standalone: true,\n imports: [DsButtonIcon, IconCustomComponent],\n})\nexport class PromotionStatusButtonComponent {\n translations: CrmPromotionsBanners;\n offersStatusEnum = OfferStatus;\n\n @Input() promotion: Promotion;\n @Output() buttonClick = new EventEmitter();\n\n constructor(sitecore: Sitecore) {\n this.translations = sitecore.crmPromotionsBanners;\n }\n\n get offerStatus(): OfferStatus {\n return this.promotion.status;\n }\n\n onButtonClick(event: Event): void {\n this.buttonClick.emit(event);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { OfferStatus, OfferStatusRequest, OfferStatusResponse, OfferStatusType, Promotion } from '../crm-offer-data/crm-offer.model';\n\n@Injectable({ providedIn: 'root' })\nexport class OfferStatusService {\n private optinResponseToStatus = {\n OFFERED: OfferStatus.OptIn,\n NOT_OFFERED: OfferStatus.NoOptIn,\n EXPIRED: OfferStatus.Expired,\n OPTED_IN: OfferStatus.OptedIn,\n };\n\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private api: ApiService,\n loggerFactory: LoggerFactory,\n ) {\n this.logger = loggerFactory.getLogger('OfferStatusService');\n }\n\n setOfferStatus(promotion: Promotion): Observable {\n const request: OfferStatusRequest = {\n id: promotion.id,\n type: OfferStatusType[promotion.type as keyof typeof OfferStatusType],\n source: 'SPORTS',\n };\n\n return this.api.post('crmPromotions/offerStatus', request).pipe(\n map((response) => this.optinResponseToStatus[response.status as keyof typeof this.optinResponseToStatus] || OfferStatus.Error),\n catchError((error) => {\n this.logger.error(error, 'OfferStatusService');\n\n return of(OfferStatus.Error);\n }),\n );\n }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { WidgetPage } from '@frontend/sports/types/components/widget';\n\nimport { OfferStatus, Promotion } from '../crm-offer-data/crm-offer.model';\nimport { ModularConfigAccessorService } from '../widget/core/modular-config-accessor.service';\n\nexport enum CTALocation {\n OptIn = 'OptIn',\n MoreDetails = 'MoreDetails',\n Banner = 'Banner',\n}\n\nexport interface CtaTrackingData {\n promotion: Promotion;\n trackingSource?: string;\n ctaLocation: CTALocation;\n position?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class CrmPromotionTracking {\n private ctaTrackingLocations = {\n [CTALocation.OptIn]: 'OptIn',\n [CTALocation.MoreDetails]: 'More Details',\n [CTALocation.Banner]: 'Banner',\n };\n\n private failedOptinText: Record = {\n [OfferStatus.NoOptIn]: ':???:',\n [OfferStatus.Expired]: 'Promotion Expired',\n [OfferStatus.Error]: 'OptIn Call Failed',\n [OfferStatus.OptedIn]: 'Opted In',\n [OfferStatus.OptIn]: 'Unknown Error',\n };\n\n constructor(\n private trackingService: TrackingService,\n @Optional() private configAccessor: ModularConfigAccessorService,\n ) {}\n\n trackViewed(promotion: Promotion, trackingSource?: string): void {\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, {\n ...this.baseTracking(promotion, trackingSource),\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Load',\n });\n }\n\n trackCTA(data: CtaTrackingData): void {\n let url = NOT_APPLICABLE;\n\n if (data.ctaLocation === CTALocation.MoreDetails) {\n url = (data.promotion.banner && data.promotion.banner.moreInfo) || NOT_APPLICABLE;\n }\n\n this.trackingService.track(trackingConstants.EVENT_CLICKS, {\n ...this.baseTracking(data.promotion, data.trackingSource),\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.getEventDetails(data.promotion),\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.ctaTrackingLocations[data.ctaLocation] ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_URL_CLICKED]: url,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: data.position?.toString() ?? NOT_APPLICABLE,\n });\n }\n\n trackOptinResult(data: { promotion: Promotion; trackingSource?: string; status: OfferStatus }): void {\n if (data.status === OfferStatus.OptedIn) {\n return;\n }\n\n this.trackingService.track(trackingConstants.EVENT_CLICKS, {\n ...this.baseTracking(data.promotion, data.trackingSource),\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Error - Load',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: this.failedOptinText[data.status],\n });\n }\n\n private baseTracking(promotion: Promotion, tracingSource?: string): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Sports Teaser Banners',\n [trackingConstants.COMPONENT_LABEL_EVENT]: this.getLabelEvent(promotion),\n [trackingConstants.COMPONENT_POSITION_EVENT]: tracingSource ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: this.getLocationEvent(),\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: NOT_APPLICABLE,\n };\n }\n\n private getLabelEvent(promotion: Promotion): string {\n return ['SPORTS', promotion.id, promotion.banner && promotion.banner.title].filter((x) => x).join('|');\n }\n\n private getEventDetails(promotion: Promotion): string {\n return promotion.banner?.title ?? 'CTA';\n }\n\n private getLocationEvent(): string {\n const page = this.configAccessor?.getPage();\n switch (page) {\n case WidgetPage.EventDetailsPage:\n return 'event details page';\n default:\n return NOT_APPLICABLE;\n }\n }\n}\n","@if (promotion.details) {\n @if (promotion.details.backgroundImageUrl) {\n
\n \n @if (promotion.details.heroImageUrl) {\n \n }\n
\n }\n
\n\n \n\n
\n
\n \n \n
\n @if (tncVisible) {\n
\n }\n
\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingSource } from '@frontend/sports/tracking/feature';\nimport { CrmPromotionsBanners } from '@frontend/sports/types/components/sitecore';\n\nimport { OfferStatus, Promotion } from '../crm-offer-data/crm-offer.model';\nimport { OfferStatusService } from './offer-status.service';\nimport { CTALocation, CrmPromotionTracking } from './tracking.service';\n\n@Component({\n selector: 'ms-crm-promotion-banner-more-info',\n templateUrl: './banner-more-info.html',\n styleUrl: './banner-more-info.scss',\n})\nexport class BannerMoreInfoComponent {\n tncVisible = true;\n offersStatusEnum = OfferStatus;\n translation: CrmPromotionsBanners;\n\n @Input() promotion: Promotion;\n @Input() tracking?: TrackingSource;\n\n constructor(\n public sitecore: Sitecore,\n private offerStatusService: OfferStatusService,\n private trackingService: CrmPromotionTracking,\n ) {\n this.translation = sitecore.crmPromotionsBanners;\n }\n\n toggleTnc(): void {\n this.tncVisible = !this.tncVisible;\n }\n\n onButtonClick(event: Event): void {\n event.stopPropagation();\n\n this.trackingService.trackCTA({\n promotion: this.promotion,\n trackingSource: this.tracking?.source,\n ctaLocation: CTALocation.MoreDetails,\n position: this.tracking?.position,\n });\n\n this.offerStatusService.setOfferStatus(this.promotion).subscribe((response) => {\n this.promotion.status = response;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { TrackingSource } from '@frontend/sports/tracking/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { CampaignDetails } from '../crm-offer-data/crm-offer.server.model';\nimport { BannerMoreInfoComponent } from './banner-more-info.component';\nimport { CrmPromotionFactory } from './crm-promotion.factory';\n\n@Injectable({ providedIn: 'root' })\nexport class BannerService {\n private dialog: ModalRef;\n storageKey = 'promoBanner';\n\n constructor(\n private crmPromotionFactory: CrmPromotionFactory,\n private apiService: ApiService,\n private localStorage: LocalStoreService,\n private modalDialogService: ModalDialogService,\n ) {}\n\n async loadBannerDetails(promotion: Promotion): Promise {\n if (promotion.details) {\n return;\n }\n\n await firstValueFrom(this.apiService.get('crmPromotions/getBannerDetails', { cmsItemId: promotion.cmsItemId })).then(\n (result: any) => {\n result && this.crmPromotionFactory.setBannerDetails(promotion, result);\n },\n );\n }\n\n async openDetailsPage(promotion: Promotion, tracking: TrackingSource | undefined, callback: () => void): Promise {\n await this.loadBannerDetails(promotion);\n if (!promotion.details) {\n return;\n }\n\n this.localStorage.set(this.storageKey, promotion.id);\n this.dialog = this.modalDialogService.openDialog(BannerMoreInfoComponent, {\n data: {\n promotion,\n tracking,\n },\n settings: {\n title: promotion.details.title,\n cssClass: 'crm-promotion-more-info',\n isModalDialog: false,\n fit: false,\n showDialogHeader: true,\n },\n });\n this.dialog.result.finally(() => {\n this.localStorage.set(this.storageKey, undefined);\n callback();\n });\n }\n\n get detailsPopupRef(): ModalRef | undefined {\n return this.dialog;\n }\n}\n","@if (!optInInvisible) {\n \n}\n
\n {{ translations.MoreInfo }}\n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, inject } from '@angular/core';\n\nimport { CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingSource } from '@frontend/sports/tracking/feature';\nimport { CrmPromotionsBanners } from '@frontend/sports/types/components/sitecore';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { WINDOW } from '@frontend/vanilla/core';\n\nimport { Promotion } from '../crm-offer-data/crm-offer.model';\nimport { BannerService } from './banner.service';\nimport { OfferStatusService } from './offer-status.service';\nimport { PromotionStatusButtonComponent } from './promotion-status-button.component';\nimport { CTALocation, CrmPromotionTracking } from './tracking.service';\n\n@Component({\n selector: 'ms-promotion-status-button-wrapper',\n templateUrl: 'promotion-status-button-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [PromotionStatusButtonComponent],\n})\nexport class PromotionStatusButtonWrapperComponent {\n translations: CrmPromotionsBanners;\n\n @Input() promotion: Promotion;\n @Input() tracking?: TrackingSource;\n @Output() detailsPopupChange = new EventEmitter();\n @Output() optInButtonClicked = new EventEmitter();\n\n @HostBinding('class') className = 'info-panel';\n\n private optInRedirect = false;\n optInInvisible = false;\n\n constructor(\n private trackingService: CrmPromotionTracking,\n private crmConfig: CrmConfig,\n private m2User: UserService,\n public sitecore: Sitecore,\n private offerStatusService: OfferStatusService,\n private changeDetectorRef: ChangeDetectorRef,\n private bannerService: BannerService,\n ) {\n this.translations = sitecore.crmPromotionsBanners;\n\n const { optInRedirectBlackListedCountries, optInInvisibleBlackListedCountries } = this.crmConfig.promotions;\n this.optInRedirect = optInRedirectBlackListedCountries.includes(this.m2User.country);\n this.optInInvisible = optInInvisibleBlackListedCountries.includes(this.m2User.country);\n }\n\n async onButtonClick(event: Event): Promise {\n event.stopPropagation();\n\n if (this.optInRedirect) {\n this.detailsPopupChange.emit(true);\n await this.bannerService.openDetailsPage(this.promotion, this.tracking, () => {\n this.detailsPopupChange.emit(false);\n this.changeDetectorRef.detectChanges();\n });\n\n return;\n }\n\n this.setOfferStatus();\n this.optInButtonClicked.emit(true);\n }\n\n private setOfferStatus(): void {\n this.trackClick(CTALocation.OptIn);\n\n this.offerStatusService.setOfferStatus(this.promotion).subscribe((response) => {\n this.promotion.status = response;\n this.trackingService.trackOptinResult({ promotion: this.promotion, trackingSource: this.tracking?.source, status: response });\n this.changeDetectorRef.detectChanges();\n });\n }\n\n async moreInfoClick(event?: Event): Promise {\n event && event.stopPropagation();\n\n this.trackClick(CTALocation.MoreDetails);\n\n const moreInfoLink = this.promotion.banner && this.promotion.banner.moreInfo;\n if (moreInfoLink) {\n this.#window.open(moreInfoLink, '_blank');\n\n return;\n }\n this.detailsPopupChange.emit(true);\n await this.bannerService.openDetailsPage(this.promotion, this.tracking, () => {\n this.detailsPopupChange.emit(false);\n this.changeDetectorRef.detectChanges();\n });\n }\n\n closeDialog(): void {\n this.bannerService.detailsPopupRef?.close();\n }\n\n private trackClick(ctaLocation: CTALocation): void {\n this.trackingService.trackCTA({\n promotion: this.promotion,\n trackingSource: this.tracking?.source,\n ctaLocation,\n position: this.tracking?.position,\n });\n }\n\n readonly #window = inject(WINDOW);\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { CookieName, CookieService, PERMANENT_COOKIE_EXPIRATION, WINDOW } from '@frontend/vanilla/core';\n\nconst DisabledCookieValue: string = '0';\nconst EnabledCookieValueOldDesktop: string = '1';\nconst EnabledCookieValue: string = '2';\n\n/**\n * @whatItDoes Allows toggling of dark mode and check if feature is enabled.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DarkModeService {\n private _isEnabled = this.getIsEnabled();\n\n get isEnabled(): boolean {\n return this._isEnabled;\n }\n readonly #window = inject(WINDOW);\n\n constructor(private cookieService: CookieService) {}\n\n toggle() {\n this.writeCookie(this._isEnabled ? DisabledCookieValue : EnabledCookieValue);\n this._isEnabled = this.getIsEnabled();\n this.#window.location.reload();\n }\n\n private writeCookie(value: string) {\n this.cookieService.putRaw(CookieName.DarkMode, value, { expires: PERMANENT_COOKIE_EXPIRATION });\n }\n\n private getIsEnabled(): boolean {\n const value = this.cookieService.get(CookieName.DarkMode);\n\n return value === EnabledCookieValue || value === EnabledCookieValueOldDesktop;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ImageProfile } from '@cds/betting-offer';\nimport { GridConfig, ImagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { UtilsService } from '@frontend/vanilla/core';\nimport { DarkModeService } from '@frontend/vanilla/shared/dark-mode';\nimport { keyBy } from 'lodash-es';\n\n@Injectable({ providedIn: 'root' })\nexport class CompetitionLogosService {\n private competitionLogos = keyBy(this.imagesConfig.competitionLogos, (l) => l.sportId);\n private overriddenCompetitionLogo = keyBy(this.gridConfig.overriddenCompetitionLogo, (l) => l.sportId);\n\n constructor(\n private imagesConfig: ImagesConfig,\n private gridConfig: GridConfig,\n private utilsService: UtilsService,\n private darkModeService: DarkModeService,\n ) {}\n\n getLogoUrl(sportId?: number, leagueId?: number, isLogoOverrideEnabled?: boolean, imageRootPath?: string): string {\n let competitionImageName;\n const overridenCompetitionImageName = this.getCompetitionImageName(sportId, leagueId, isLogoOverrideEnabled);\n if (isLogoOverrideEnabled && overridenCompetitionImageName !== '') {\n //for few competitions need to display overridden icon instead of logo for lgv/composable\n competitionImageName = overridenCompetitionImageName;\n } else {\n competitionImageName = this.getCompetitionImageName(sportId, leagueId);\n }\n\n return competitionImageName\n ? this.utilsService.format(this.imagesConfig.competitionLogoUrl, imageRootPath, sportId, competitionImageName)\n : '';\n }\n\n getImageProfileLogoUrl(sportId?: number, imageProfile?: ImageProfile, imageRootPath?: string) {\n return imageProfile?.logo\n ? this.utilsService.format(this.imagesConfig.competitionLogoUrl, imageRootPath, sportId, imageProfile?.logo?.split('.')[0])\n : '';\n }\n\n hasLogo(sportId?: number, leagueId?: number): boolean {\n return !!this.getCompetitionImageName(sportId, leagueId);\n }\n\n private getCompetitionImageName(sportId?: number, leagueId?: number, isLogoOverrideEnabled?: boolean): string {\n if (!sportId || !leagueId) {\n return '';\n }\n\n const sport = isLogoOverrideEnabled ? this.overriddenCompetitionLogo[sportId] : this.competitionLogos[sportId];\n\n if (!sport) {\n return '';\n }\n\n const league = sport.leagues.find((l) => l.ids.indexOf(leagueId) > -1);\n\n if (league?.imageDark && this.darkModeService.isEnabled) {\n return league.imageDark;\n }\n\n if (league?.image) {\n return league.image;\n }\n\n return '';\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport enum FallbackImage {\n Default = 'fallback',\n EpcotDefault = 'epcot_fallback',\n}\n\nexport interface ParticipantImageConfig {\n fallbackImage: FallbackImage;\n}\n\nexport const PARTICIPANT_IMAGE_CONFIG = new InjectionToken('PARTICIPANT_IMAGE_CONFIG');\n","\n \n\n","import { NgClass, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, OnChanges, Optional, Output } from '@angular/core';\n\nimport { EventParticipantImage } from '@frontend/sports/betting-offer/feature/model';\nimport { ImagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { hasValue } from '@frontend/sports/common/core/utils/extended-types';\nimport { OptionalNonRootToken } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\nimport { FallbackImage, PARTICIPANT_IMAGE_CONFIG, ParticipantImageConfig } from '@frontend/sports/participant-image/feature/provider';\nimport { UtilsService } from '@frontend/vanilla/core';\n\nconst sportsToReversePlayer2Image: number[] = [SportConstant.Icehockey, SportConstant.AmericanFootball, SportConstant.Baseball];\n\nexport enum ImageType {\n Logo = 'Logo',\n Jersey = 'Jersey',\n Headshot = 'Headshot',\n Fallback = 'Fallback',\n}\n\nexport enum ImageRootPath {\n Live = 'live',\n Prod = 'prod',\n}\n\nexport interface Image {\n type: ImageType;\n url: string;\n}\n\nexport enum ParticipantType {\n Player = 'Player',\n Team = 'Team',\n}\n\n@Component({\n selector: 'ms-participant-image',\n styleUrl: 'participant-image.scss',\n templateUrl: 'participant-image.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgIf],\n standalone: true,\n})\nexport class ParticipantImageComponent implements OnChanges {\n private readonly participantImageUrl: string;\n private readonly participantLogoUrl: string;\n private readonly fallbackImage: FallbackImage;\n\n @Input() participantImage?: EventParticipantImage;\n @Input() sportId: number;\n @Input() shouldRotate = false;\n @Input() showFallback = true;\n @Input() showLogoColor = false;\n @Input() participantType: ParticipantType;\n @Output() logoLoaded = new EventEmitter();\n\n loaded = false;\n imageType = ImageType;\n imageClass = '';\n image?: Image;\n rotateImage = false;\n fallbackColor = false;\n backgroundColor?: string;\n showBackgroundCircle = false;\n\n private images: Image[];\n\n constructor(\n private imagesConfig: ImagesConfig,\n private utilsService: UtilsService,\n @Optional() @Inject(OptionalNonRootToken(PARTICIPANT_IMAGE_CONFIG)) private config: Partial | undefined,\n ) {\n this.participantImageUrl = this.imagesConfig.participantImageUrl;\n this.participantLogoUrl = this.imagesConfig.participantLogoUrl;\n this.fallbackImage = this.config?.fallbackImage ?? FallbackImage.Default;\n }\n\n ngOnChanges(): void {\n this.settingImage();\n this.showBackgroundCircle = this.showLogoColor && this.imagesConfig.isLogoBackgroundEnabled;\n this.fallbackColor = this.getFallbackColor();\n this.backgroundColor = this.getBackgroundColor();\n }\n\n private settingImage() {\n this.loaded = false;\n\n this.images = [];\n\n this.setHeadshotImage();\n this.images.push({ type: ImageType.Logo, url: this.getImageUrl(ImageType.Logo) });\n this.images.push({ type: ImageType.Jersey, url: this.getImageUrl(ImageType.Jersey) });\n\n if (this.showFallback) {\n this.images.push({ type: ImageType.Fallback, url: this.getImageUrl(ImageType.Fallback) });\n }\n\n this.images = this.images.filter((image) => hasValue(image.url));\n\n this.image = this.images.shift();\n\n this.rotateImage = this.shouldRotate && sportsToReversePlayer2Image.some((s) => s === this.sportId) && this.image?.type !== ImageType.Logo;\n }\n\n onImageFailedLoaded(): void {\n if (this.isPlayer) {\n this.image = this.images.at(-1);\n return;\n }\n\n this.image = this.images.shift();\n this.logoLoaded.emit(false);\n }\n\n get isPlayer(): boolean {\n return this.participantType === ParticipantType.Player;\n }\n\n private setHeadshotImage() {\n if (this.isPlayer) {\n if (this.participantImage?.headshot) {\n this.images.push({ type: ImageType.Headshot, url: this.getImageUrl(ImageType.Headshot) });\n } else {\n this.images.push({ type: ImageType.Fallback, url: this.getImageUrl(ImageType.Fallback) });\n }\n }\n }\n\n private getImageUrl(imageType: ImageType): string {\n let participantImageName;\n let participantUrl = this.participantImageUrl;\n\n switch (imageType) {\n case ImageType.Headshot:\n participantImageName = this.participantImage?.headshot;\n const headshotExtension = this.participantImage?.headshot?.split('.').pop();\n participantUrl =\n [this.participantLogoUrl, this.participantImageUrl].find((url) => {\n const ext = url.split('.').pop();\n return ext === headshotExtension;\n }) ?? this.participantImageUrl;\n break;\n case ImageType.Logo:\n participantImageName = this.participantImage && this.participantImage.logo;\n participantUrl = this.participantLogoUrl;\n break;\n case ImageType.Jersey:\n participantImageName = this.participantImage && this.participantImage.jersey;\n break;\n case ImageType.Fallback:\n if (this.isPlayer) {\n participantImageName = FallbackImage.EpcotDefault;\n } else {\n participantImageName = this.showFallback ? this.fallbackImage : '';\n }\n break;\n }\n\n const rootpath = this.getRootPath();\n const participantImageProfileName = participantImageName?.split('.')[0];\n\n return participantImageName ? this.utilsService.format(participantUrl, rootpath, this.sportId, participantImageProfileName) : '';\n }\n\n private getRootPath(): string {\n let rootpath;\n if (this.isPlayer && !this.participantImage?.isParticipantProfile) {\n rootpath = ImageRootPath.Prod;\n } else {\n rootpath = this.participantImage?.isParticipantProfile ? ImageRootPath.Prod : ImageRootPath.Live;\n }\n return rootpath;\n }\n\n private getBackgroundColor(): string | undefined {\n const logoColor = this.participantImage?.logoColor ? `#${this.participantImage.logoColor}` : undefined;\n if (this.isPlayer) {\n return logoColor;\n }\n if (this.showBackgroundCircle && this.participantImage?.isParticipantProfile) {\n return logoColor;\n }\n return undefined;\n }\n\n private getFallbackColor(): boolean {\n if (this.isPlayer) {\n return !this.participantImage?.logoColor;\n }\n return !!(this.showBackgroundCircle && this.participantImage?.isParticipantProfile && !this.participantImage?.logoColor);\n }\n}\n","\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, OnChanges } from '@angular/core';\n\nimport { ImageProfile } from '@cds/betting-offer';\nimport { ImagesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { ImageRootPath } from '@frontend/sports/participant-image/feature';\n\nimport { CompetitionLogosService } from '../competition-logos.service';\n\n@Component({\n standalone: true,\n selector: 'ms-competition-logo',\n templateUrl: './competition-logo.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class CompetitionLogoComponent implements OnChanges {\n @Input() sportId: number;\n @Input() leagueId: number | string;\n @Input() fallbackIcon?: string;\n @Input() isWithRightImage?: boolean;\n @Input() isLogoOverrideEnabled?: boolean;\n @Input() imageProfile?: ImageProfile;\n @Input() showLogoCircle = false;\n\n @HostBinding('class') get hostImage(): string {\n const cls = ['competition-logo-container'];\n if (this.isWithRightImage) {\n cls.push('right-image');\n }\n\n return cls.join(' ');\n }\n\n competitionLogoUrl: string;\n logoLoaded = false;\n loadingError = false;\n showBackgroundCircle = false;\n fallbackColor = false;\n logoColor?: string;\n\n constructor(\n private competitionLogosService: CompetitionLogosService,\n private changeDetectorRef: ChangeDetectorRef,\n private imagesConfig: ImagesConfig,\n ) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.showBackgroundCircle =\n this.showLogoCircle && !!this.imageProfile && this.imagesConfig.isLogoBackgroundEnabled && this.imagesConfig.isCompetitionImageProfile;\n const { sportId, leagueId, imageProfile } = changes;\n if (\n (sportId && sportId.currentValue !== sportId.previousValue) ||\n (leagueId && leagueId.currentValue !== leagueId.previousValue) ||\n (imageProfile && imageProfile.currentValue !== imageProfile.previousValue)\n ) {\n this.updateCompetitionLogoUrl(this.imageProfile);\n this.changeDetectorRef.markForCheck();\n }\n this.fallbackColor = this.getFallbackColor();\n this.logoColor = this.getLogoColor();\n }\n\n loadLogo(): void {\n this.logoLoaded = true;\n this.changeDetectorRef.detectChanges();\n }\n\n private updateCompetitionLogoUrl(imageProfile?: ImageProfile): void {\n const updatedLogoUrl =\n imageProfile && this.imagesConfig.isCompetitionImageProfile\n ? this.competitionLogosService.getImageProfileLogoUrl(this.sportId, this.imageProfile, ImageRootPath.Prod)\n : this.competitionLogosService.getLogoUrl(this.sportId, +this.leagueId, this.isLogoOverrideEnabled, ImageRootPath.Live);\n if (updatedLogoUrl !== this.competitionLogoUrl) {\n this.logoLoaded = false;\n this.competitionLogoUrl = updatedLogoUrl;\n }\n }\n\n private getLogoColor(): string | undefined {\n return this.showBackgroundCircle ? (this.imageProfile?.logoColor ? '#' + this.imageProfile?.logoColor : undefined) : undefined;\n }\n\n private getFallbackColor(): boolean {\n return !!(this.showBackgroundCircle && !this.imageProfile?.logoColor);\n }\n\n onLoadingError() {\n this.loadingError = true;\n this.changeDetectorRef.detectChanges();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n * Unique identifier used for retrieving instances of `DsAtoms` from Angular's dependency injection framework.\n */\nexport const DS_ATOMS = new InjectionToken('ds-atoms');\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\n\nimport { DS_ATOMS } from '@frontend/ui/shared';\n\nexport const DS_NOTIFICATION_BUBBLE_VARIANT_ARRAY = ['primary', 'utility', 'live', 'neutral', 'live-dot', 'utility-dot'] as const;\nexport type DsNotificationBubbleVariant = (typeof DS_NOTIFICATION_BUBBLE_VARIANT_ARRAY)[number];\n\nexport const DS_NOTIFICATION_BUBBLE_SIZE_ARRAY = ['small', 'medium', 'large'] as const;\nexport type DsNotificationBubbleSize = (typeof DS_NOTIFICATION_BUBBLE_SIZE_ARRAY)[number];\n\n@Component({\n selector: 'ds-notification-bubble',\n template: `\n @if (variant === 'live-dot' || variant === 'utility-dot') {\n
\n } @else {\n \n }\n `,\n host: {\n 'class': 'ds-notification-bubble',\n '[class]': `hostClass`,\n '[class.ds-notification-bubble-disabled]': 'disabled ? true : null',\n '[class.ds-notification-bubble-inverse]': 'inverse',\n '[attr.aria-label]': `getAriaLabel()`,\n '[attr.role]': `'status'`,\n },\n\n styleUrl: 'notification-bubble.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: DS_ATOMS,\n useFactory: () => 'ds-notification-bubble',\n },\n ],\n})\nexport class DsNotificationBubble {\n @Input() size: DsNotificationBubbleSize = 'medium';\n @Input() variant: DsNotificationBubbleVariant = 'primary';\n @Input({ transform: booleanAttribute }) disabled? = false;\n @Input({ transform: booleanAttribute }) inverse? = false;\n\n get hostClass() {\n return `ds-notification-bubble-${this.size} ds-notification-bubble-${this.variant}`;\n }\n constructor(public elementRef: ElementRef) {}\n\n public getAriaLabel(): string {\n if (this.variant.includes('dot')) {\n return this.variant === 'live-dot' ? 'Live notification indicator' : 'Utility notification indicator';\n }\n\n // const content = this.elementRef.nativeElement.textContent?.trim();\n let content = '';\n if (this.elementRef.nativeElement.textContent) {\n content = `Notification ${this.elementRef.nativeElement.textContent.trim()}`;\n }\n\n if (this.disabled) {\n return `Disabled notification ${content}`;\n }\n\n return content;\n }\n}\n","import { PRIMARY_OUTLET, Route, Routes } from '@angular/router';\n\nexport const PATTERN_ALIAS = '__MatcherPlaceholder__';\n\nexport type PathDetails = { url: string; matcherRoutes: Routes };\n\n// copy-paste of ngx-quicklink\nexport const findPathDetails = (config: Routes, route: Route): PathDetails => {\n config = config.slice();\n const parent = new Map();\n const visited = new Set();\n while (config.length) {\n const el = config.shift();\n if (!el) {\n continue;\n }\n visited.add(el);\n if (el === route) break;\n\n let children = el.children ?? (el as any)._loadedRoutes ?? [];\n\n const lazyChildren = (el as any)._loadedRoutes || [];\n\n for (const lazyChild of lazyChildren) {\n if (lazyChild && lazyChild.children) {\n children = children.concat(lazyChild.children);\n }\n }\n children.forEach((r: Route) => {\n if (visited.has(r)) return;\n parent.set(r, el);\n config.push(r);\n });\n }\n let path = '';\n let current: Route | undefined = route;\n let matcherRoutes: Routes = [];\n\n while (current) {\n const currentPath = current.matcher ? PATTERN_ALIAS : current.path;\n if (current.matcher) {\n matcherRoutes.unshift(current);\n }\n if (isPrimaryRoute(current)) {\n path = `/${currentPath}${path}`;\n } else {\n path = `/(${current.outlet}:${currentPath}${path})`;\n }\n current = parent.get(current);\n }\n /**\n * Remove duplicate slashes\n * - If route contains multiple / it will transform them only\n * example url -> ///section///sub-section/// = /section/sub-section/\n */\n const url = path.replace(/\\/+/g, '/').replace(/\\/$/, '');\n return { url, matcherRoutes };\n};\n\nexport function getPreResolveRoutes(route: Route) {\n const preResolveRoutes = [];\n if (route.data?.preResolve) {\n preResolveRoutes.push(route);\n }\n\n // Angular internal method for lazy loaded routes\n const loadedRoutes = (route)['_loadedRoutes'];\n const children: Routes = route.children ?? loadedRoutes;\n if (children?.length) {\n children.forEach((child) => {\n preResolveRoutes.push(...getPreResolveRoutes(child));\n });\n }\n return preResolveRoutes;\n}\n\nfunction isPrimaryRoute(route: Route) {\n return route.outlet === PRIMARY_OUTLET || !route.outlet;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { PRIMARY_OUTLET, Params, Route, Router, Routes, UrlMatchResult, UrlSegment, UrlSegmentGroup, UrlTree } from '@angular/router';\n\nimport { PATTERN_ALIAS, findPathDetails } from './util';\n\ninterface UrlSegmentWithRoute extends UrlSegment {\n route: Route;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MatcherService {\n readonly #router = inject(Router);\n\n getMatches(routeTree: UrlTree, tree: UrlTree): Params | null {\n const matchingSegments = matchingSegmentGroups(tree.root, routeTree.root, routeTree.root.segments);\n\n if (matchingSegments) {\n return matchResultToParams(matchingSegments);\n }\n\n return null;\n }\n\n getExtendedTree(route: Route) {\n const { url, matcherRoutes } = findPathDetails(this.#router.config, route);\n\n return extendTreeWithMatcherRoutes(this.#router.parseUrl(url), matcherRoutes);\n }\n}\n\nfunction matchResultToParams(matches: boolean | UrlMatchResult[]): Params {\n if (typeof matches === 'boolean') return {};\n return Object.fromEntries(matches.flatMap(({ posParams }) => Object.entries(posParams || {})).map(([key, value]) => [key, value.path]));\n}\n\nfunction matchingSegmentGroups(container: UrlSegmentGroup, containee: UrlSegmentGroup, containeePaths: UrlSegment[]): boolean | UrlMatchResult[] {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n return !containee.hasChildren() && matchesSegmentGroup(current, container, containeePaths);\n }\n if (container.segments.length !== containeePaths.length) {\n const current = containeePaths.slice(0, container.segments.length);\n const matchResults = matchesSegmentGroup(container.segments, container, current);\n if (!matchResults || !container.children[PRIMARY_OUTLET]) return false;\n const next = containeePaths.slice(container.segments.length);\n const matchedChildren = matchingSegmentGroups(container.children[PRIMARY_OUTLET], containee, next); //@TODO needs to concat results\n if (matchedChildren) {\n if (matchResults === true) {\n return matchedChildren;\n }\n if (matchedChildren === true) {\n return matchedChildren;\n }\n return matchResults.concat(matchedChildren);\n }\n }\n const matchResults = matchesSegmentGroup(container.segments, container, containeePaths);\n if (!matchResults) return false;\n if (!containee.hasChildren()) return matchResults;\n\n const results: UrlMatchResult[] = typeof matchResults === 'boolean' ? [] : matchResults;\n let result = false;\n for (const c in containee.children) {\n if (!container.children[c]) break;\n const matchedChildren = matchingSegmentGroups(container.children[c], containee.children[c]!, containee.children[c]!.segments);\n if (typeof matchedChildren !== 'boolean') {\n results.push(...matchedChildren);\n } else if (matchedChildren) {\n result = matchedChildren;\n }\n }\n if (results.length > 0) {\n return results;\n }\n return result;\n}\n\nfunction matchesSegmentGroup(\n registered: UrlSegment[],\n registeredGroup: UrlSegmentGroup,\n current: (UrlSegment | UrlSegmentWithRoute)[],\n): boolean | UrlMatchResult[] {\n if (registered.length !== current.length) return false;\n\n return registered.reduce((accumulator, registeredItem, index) => {\n if (accumulator === false) return false;\n\n const currentItem = current[index]!;\n\n if (registeredItem.path === currentItem.path) return accumulator;\n\n if (currentItem.path.startsWith(':') || registeredItem.path.startsWith(':')) {\n const urlMatch: UrlMatchResult = {\n consumed: [registeredItem],\n posParams: { [currentItem.path.replace(':', '')]: registeredItem },\n };\n if (typeof accumulator === 'boolean') {\n return [urlMatch];\n }\n accumulator.push(urlMatch);\n return accumulator;\n }\n\n if (currentItem.path !== PATTERN_ALIAS) return false;\n\n const urlMatch: UrlMatchResult | null = (currentItem)['route'].matcher!(\n [registeredItem],\n registeredGroup,\n (currentItem)['route'],\n );\n\n if (!urlMatch) return false;\n\n return accumulator === true ? [urlMatch] : [...accumulator, urlMatch];\n }, true);\n}\n\nfunction extendTreeWithMatcherRoutes(tree: UrlTree, matcherRoutes: Routes) {\n if (!matcherRoutes.length) return tree;\n\n extendUrlSegmentGroup(tree.root, matcherRoutes);\n\n return tree;\n}\n\nfunction extendUrlSegmentGroup(group: UrlSegmentGroup, matcherRoutes: Routes, currentMatcher = 0) {\n for (const segment of group.segments) {\n if (segment.path === PATTERN_ALIAS) {\n (segment)['route'] = matcherRoutes[currentMatcher];\n currentMatcher++;\n }\n }\n if (group.hasChildren()) {\n Object.values(group.children).forEach((child) => extendUrlSegmentGroup(child, matcherRoutes, currentMatcher));\n }\n}\n","import { Injectable, Injector, NgZone, inject, runInInjectionContext } from '@angular/core';\nimport { PRIMARY_OUTLET, Params, Route, Router, Routes, UrlSegment, UrlSegmentGroup, UrlTree } from '@angular/router';\n\nimport { TimerService } from '@frontend/vanilla/core';\nimport { remove, uniqBy } from 'lodash-es';\n\nimport { MatcherService } from './matcher.service';\nimport { PATTERN_ALIAS, PathDetails, findPathDetails, getPreResolveRoutes } from './util';\n\n@Injectable({ providedIn: 'root' })\nexport class PrefetchRegistry {\n readonly #router = inject(Router);\n readonly #injector = inject(Injector);\n readonly #ngZone = inject(NgZone);\n\n readonly #timerService = inject(TimerService);\n readonly #matcherService = inject(MatcherService);\n\n readonly #trees: UrlTree[] = [];\n readonly #routeToPreResolve = new Map void)[]>();\n readonly #preResolveRoutes: Route[] = [];\n readonly #preResolveExec = new WeakMap<() => void, number>();\n readonly #preResolveParams = new Map void>>();\n readonly #THROTTLE_TIME = 15_000;\n\n add(tree: UrlTree) {\n this.#trees.push(tree);\n this.#setLinkPreResolver(tree);\n }\n\n has(tree: UrlTree) {\n return this.#trees.some((t) => t === tree);\n }\n\n remove(tree: UrlTree) {\n remove(this.#trees, (registeredTree) => registeredTree === tree);\n }\n\n registerRoutes(route: Route): void {\n const preResolveRoutes = getPreResolveRoutes(route);\n this.#preResolveRoutes.push(...preResolveRoutes);\n\n if (this.shouldPrefetch(route)) {\n const urls = new Map void)[]>();\n preResolveRoutes.forEach((route) => {\n const matches = this.#getMatches(route);\n matches.forEach(({ url, params }) => {\n // The data passed to the preResolve fn is a basic mock of activated route\n const preResolve = this.#getPreResolverFn(route, url, params);\n if (urls.has(url)) {\n urls.get(url)!.push(preResolve);\n } else {\n urls.set(url, [preResolve]);\n }\n });\n });\n for (const [url, preResolvers] of urls) {\n if (!this.#routeToPreResolve.has(url)) {\n this.#routeToPreResolve.set(url, preResolvers);\n }\n this.preResolve(url);\n }\n }\n }\n\n shouldPrefetch(route: Route) {\n if (this.#trees.length === 0) return false; // Do not check if in prefetch trees if is empty\n const { url, matcherRoutes } = findPathDetails(this.#router.config, route);\n const tree = this.#router.parseUrl(url);\n (tree)['matchers'] = matcherRoutes;\n return this.#trees.some(containsTree.bind(null, tree));\n }\n\n preResolve(treeOrUrl: UrlTree | string) {\n const url = typeof treeOrUrl === 'string' ? treeOrUrl : this.#router.serializeUrl(treeOrUrl);\n if (this.#routeToPreResolve.has(url)) {\n const preResolvers = this.#routeToPreResolve.get(url) ?? [];\n preResolvers.forEach((preResolve) => {\n const exec = this.#preResolveExec.get(preResolve);\n if (!exec || new Date().getTime() - exec > this.#THROTTLE_TIME) {\n this.#preResolveExec.set(preResolve, new Date().getTime());\n this.#timerService.scheduleIdleCallback(() => {\n runInInjectionContext(this.#injector, () => {\n this.#ngZone.runOutsideAngular(() => {\n preResolve();\n });\n });\n });\n }\n });\n }\n }\n\n #getPreResolverFn(route: Route, url: string, params: Params): () => void {\n const paramsKey = JSON.stringify(params);\n if (!this.#preResolveParams.has(route)) {\n this.#preResolveParams.set(route, new Map());\n }\n if (!this.#preResolveParams.get(route)!.has(paramsKey)) {\n const fn = () => route.data!.preResolve({ data: route.data, preResolverUrl: url, params });\n this.#preResolveParams.get(route)!.set(paramsKey, fn);\n }\n return this.#preResolveParams.get(route)!.get(paramsKey)!;\n }\n\n #setLinkPreResolver(tree: UrlTree) {\n const preResolverUrl = this.#router.serializeUrl(tree);\n const preResolveFns: (() => void)[] = [];\n for (const route of this.#preResolveRoutes) {\n const preResolveRouteTree = this.#matcherService.getExtendedTree(route);\n const params = this.#matcherService.getMatches(preResolveRouteTree, tree);\n if (params) {\n preResolveFns.push(() => route.data!.preResolve({ data: route.data, preResolverUrl, params }));\n }\n }\n\n if (preResolveFns.length) {\n this.#routeToPreResolve.set(preResolverUrl, preResolveFns);\n this.preResolve(preResolverUrl);\n }\n }\n\n #getMatches(route: Route, trees = this.#trees): { url: string; params: Params }[] {\n const routeTree = this.#matcherService.getExtendedTree(route);\n\n return uniqBy(\n trees.map((registeredTree) => ({\n url: this.#router.serializeUrl(registeredTree),\n registeredTree: registeredTree,\n })),\n 'url',\n )\n .map(({ url, registeredTree }) => {\n const params = this.#matcherService.getMatches(routeTree, registeredTree);\n if (params) {\n return { url, params };\n }\n return null;\n })\n .filter((match): match is { url: string; params: Params } => match !== null);\n }\n}\n\nfunction containsQueryParams(container: Params, containee: Params): boolean {\n // TODO: This does not handle array params correctly.\n return Object.keys(containee).length <= Object.keys(container).length && Object.keys(containee).every((key) => containee[key] === container[key]);\n}\n\nfunction containsTree(containee: UrlTree, container: UrlTree): boolean {\n return (\n containsQueryParams(container.queryParams, containee.queryParams) &&\n containsSegmentGroup(container.root, containee.root, containee.root.segments, (containee)['matchers'])\n );\n}\n\ntype TreeWithRoutes = UrlTree & { matchers: Routes };\n\nfunction containsSegmentGroup(\n container: UrlSegmentGroup,\n containee: UrlSegmentGroup,\n containeePaths: UrlSegment[],\n matchers: PathDetails['matcherRoutes'],\n): boolean {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths, matchers)) return false;\n return !containee.hasChildren();\n } else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths, matchers)) return false;\n if (!containee.hasChildren()) return true;\n\n for (const c in containee.children) {\n if (!container.children[c]) break;\n if (containsSegmentGroup(container.children[c], containee.children[c]!, containee.children[c]!.segments, matchers)) return true;\n }\n return false;\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, matchers)) return false;\n if (!container.children[PRIMARY_OUTLET]) return false;\n return containsSegmentGroup(container.children[PRIMARY_OUTLET], containee, next, matchers);\n }\n}\n\nfunction equalPath(as: UrlSegment[], bs: UrlSegment[], matchers: PathDetails['matcherRoutes']): boolean {\n if (as.length !== bs.length) return false;\n return as.every((a, i) => a.path === bs[i]!.path || a.path.startsWith(':') || bs[i]!.path.startsWith(':') || matchesMatcher(a, bs, i, matchers));\n}\n\nfunction matchesMatcher(a: UrlSegment, bs: UrlSegment[], i: number, matchers?: PathDetails['matcherRoutes']): boolean {\n if (matchers && matchers.length && matchers[0]!.matcher && bs[i]!.path === PATTERN_ALIAS) {\n // @TODO: This does not remove the matcher so it does not work properly if route contains multiple URL matchers\n return !!matchers[0]!.matcher([a], [] as any, matchers[0]!);\n }\n return false;\n}\n","import { Injectable, inject } from '@angular/core';\nimport { PreloadingStrategy, Route, RouteConfigLoadEnd, Router } from '@angular/router';\n\nimport { TimerService } from '@frontend/vanilla/core';\nimport { EMPTY, Observable, filter, tap } from 'rxjs';\n\nimport { PrefetchRegistry } from './prefetch-registry.service';\n\n@Injectable({ providedIn: 'root' })\nexport class SpeculativeLinkPreloader implements PreloadingStrategy {\n #loading = new Set();\n #registry = inject(PrefetchRegistry);\n #timerService = inject(TimerService);\n\n constructor(router: Router) {\n router.events\n .pipe(\n filter((event): event is RouteConfigLoadEnd => event instanceof RouteConfigLoadEnd),\n tap((event) => {\n /**\n * The idleCallback is necessary because routes have loaded but not yet processed, the fields we\n * access to load the preResolvers and the required data like _loadRoutes are only present after\n * it's done processing.\n */\n this.#timerService.scheduleIdleCallback(() => {\n this.#registry.registerRoutes(event.route);\n });\n }),\n )\n .subscribe();\n }\n\n preload(route: Route, load: () => Observable): any {\n if (this.#loading.has(route)) {\n // Don't preload the same route twice\n return EMPTY;\n }\n const conn = typeof navigator !== 'undefined' ? (navigator as any).connection : undefined;\n if (conn) {\n // Don't preload if the user is on 2G. or if Save-Data is enabled.\n if ((conn.effectiveType || '').includes('2g') || conn.saveData) return EMPTY;\n }\n // Prevent from preloading\n if (route.data && route.data['preload'] === false) {\n return EMPTY;\n }\n\n if (this.#registry.shouldPrefetch(route)) {\n this.#loading.add(route);\n return load();\n }\n\n return EMPTY;\n }\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\nimport { RouterPreloader } from '@angular/router';\n\nimport { TimerService } from '@frontend/vanilla/core';\n\nimport { PrefetchRegistry } from './prefetch-registry.service';\nimport type { SpeculativeLinkDirective } from './speculative-link.directive';\n\n@Injectable({ providedIn: 'root' })\nexport class SpeculativeLinkObserver {\n #loader = inject(RouterPreloader);\n #registry = inject(PrefetchRegistry);\n #ngZone = inject(NgZone);\n #timerService = inject(TimerService);\n\n #elementLink = new Map();\n\n #intersectionObserver = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const link = entry.target as HTMLAnchorElement;\n\n const urlTree = this.#elementLink.get(link)?.urlTree();\n if (!urlTree) {\n return;\n }\n if (this.#registry.has(urlTree)) {\n this.#registry.preResolve(urlTree);\n } else {\n this.#registry.add(urlTree);\n // Idle callback is here to not block the main thread as recommended in the docs\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n this.#timerService.scheduleIdleCallback(() => {\n this.#loader.preload().subscribe(() => void 0);\n });\n }\n }\n });\n },\n {\n threshold: 0.1,\n },\n );\n\n register(el: SpeculativeLinkDirective) {\n this.#elementLink.set(el.element, el);\n this.#ngZone.runOutsideAngular(() => {\n this.#intersectionObserver.observe(el.element);\n });\n }\n\n unregister(el: SpeculativeLinkDirective) {\n if (el.registeredTree) {\n this.#registry.remove(el.registeredTree);\n }\n if (this.#elementLink.has(el.element)) {\n this.#intersectionObserver.unobserve(el.element);\n this.#elementLink.delete(el.element);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n@LazyClientConfig({ key: 'vnSpeculativeLink', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: speculativeLinkConfigFactory,\n})\nexport class SpeculativeLinkConfig extends LazyClientConfigBase {\n isEnabled: boolean;\n}\n\nexport function speculativeLinkConfigFactory(service: LazyClientConfigService): SpeculativeLinkConfig {\n return service.get(SpeculativeLinkConfig);\n}\n","import { Directive, ElementRef, OnDestroy, computed, effect, inject, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { Router, UrlTree } from '@angular/router';\n\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { PageVisibilityService } from '@frontend/vanilla/features/page-visibility';\nimport { map } from 'rxjs';\n\nimport { SpeculativeLinkObserver } from './speculative-link-observer.service';\nimport { SpeculativeLinkConfig } from './speculative-link.client-config';\n\n/**\n *\n * Inspired by the [Speculation Rules API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API}\n *\n * @whatItDoes When the link is observed in the viewport it will preload its route and execute its preResolvers.\n *\n */\n\n@Directive({ selector: '[vnSpeculativeLink]', standalone: true })\nexport class SpeculativeLinkDirective implements OnDestroy {\n path = input.required({ alias: 'vnSpeculativeLink' });\n\n readonly #router = inject(Router);\n readonly #window = inject(WINDOW);\n\n readonly #pageVisibilityService = inject(PageVisibilityService);\n readonly #observer = inject(SpeculativeLinkObserver);\n\n readonly #configService = inject(SpeculativeLinkConfig);\n\n registeredTree: UrlTree | null = null;\n\n readonly #isPageVisible = toSignal(this.#pageVisibilityService.visibilityChange().pipe(map(({ isVisible }) => isVisible)));\n readonly #isEnabled = toSignal(this.#configService.whenReady.pipe(map(() => this.#configService.isEnabled)));\n urlTree = computed(() => {\n // If the config has loaded and the feature is not enabled we do not register the signals in the effect\n if (this.#configService.isConfigReady && !this.#configService.isEnabled) {\n return null;\n }\n\n const path = this.path();\n const isEnabled = this.#isEnabled();\n\n if (!isEnabled || !path) {\n return null;\n }\n\n return this.parseUrl(path);\n });\n\n private parseUrl(path: string): UrlTree | null {\n if (!path.includes('http')) {\n return this.#router.parseUrl(path);\n }\n const url = new URL(path);\n if (this.#window.location.hostname !== url.hostname) {\n return null;\n }\n return this.#router.parseUrl(url.pathname);\n }\n\n element = inject>(ElementRef).nativeElement;\n\n #register = effect(() => {\n this.#observer.unregister(this);\n if (this.urlTree() && this.#isPageVisible()) {\n this.#observer.register(this);\n }\n this.registeredTree = this.urlTree();\n });\n\n ngOnDestroy() {\n this.#observer.unregister(this);\n this.#register.destroy();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\n\nexport const DS_DIVIDER_VARIANT_ARRAY = ['on-surface', 'on-surface-lowest', 'on-surface-low', 'on-surface-high', 'on-surface-highest'] as const;\nexport type DsDividerVariant = (typeof DS_DIVIDER_VARIANT_ARRAY)[number];\n\n// eslint-disable-next-line @nx/workspace-component-tests-present\n@Component({\n selector: 'ds-divider',\n standalone: true,\n template: ``,\n host: {\n 'class': 'ds-divider',\n '[class]': `[ variant]`,\n '[class.ds-divider-vertical]': 'vertical',\n '[class.ds-divider-inverse]': 'inverse',\n 'role': 'separator',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./divider.component.scss'],\n})\nexport class DsDivider {\n @Input({ transform: booleanAttribute }) vertical? = false;\n @Input() variant: DsDividerVariant = 'on-surface-lowest';\n @Input({ transform: booleanAttribute }) inverse = false;\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\nimport { trackingConstants } from './tracking.models';\nimport { TrackingService } from './tracking.service';\n\n@Directive({\n selector: '[msTrackReferringActionDirective]',\n standalone: true,\n})\nexport class TrackReferringACtionDirective {\n @Input() trackingValue?: string;\n @Input() cleanAfterTrack = false;\n\n constructor(private trackerService: TrackingService) {}\n\n @HostListener('click') onClick() {\n this.trackerService.update({ [trackingConstants.PAGE_REFERRING_ACTION]: this.trackingValue });\n\n if (this.cleanAfterTrack) {\n this.trackerService.triggerEventWithCleaning();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport const DS_LISTITEM_SIZE_ARRAY = ['medium', 'medium-condensed', 'large', 'large-condensed'] as const;\nexport type DsListItemSize = (typeof DS_LISTITEM_SIZE_ARRAY)[number];\n\n@Component({\n selector: 'ds-list-item',\n standalone: true,\n imports: [CommonModule],\n template: `\n \n @if (showCenterSlot()) {\n
\n \n {{ title() }}\n \n @if (subtitle()) {\n {{ subtitle() }}\n }\n @if (subtext()) {\n {{ subtext() }}\n }\n
\n }\n
\n \n
\n `,\n styleUrl: './list-item.component.scss',\n host: {\n 'class': 'ds-list-item',\n '[class.ds-list-item-selected]': 'selected()',\n '[class.ds-list-item-inverse]': 'inverse()',\n '[class]': '\"ds-list-item-\"+size()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsListItem {\n title = input.required();\n subtitle = input('');\n subtext = input('');\n selected = input(false, { transform: booleanAttribute });\n inverse = input(false, { transform: booleanAttribute });\n boldTitle = input(true, { transform: booleanAttribute });\n showCenterSlot = input(true, { transform: booleanAttribute });\n size = input('large');\n}\n","@if (!href) {\n
\n \n \n} @else {\n \n \n \n}\n\n\n \n @if (showStartSlot) {\n \n @if (icon) {\n \n }\n \n \n }\n\n
\n \n @if (badge) {\n \n }\n @if (!title) {\n \n }\n @if (count) {\n \n {{ count }}\n \n }\n @if (arrow) {\n \n }\n
\n \n \n
\n@if (isShowBorder) {\n \n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { DsDivider } from '@frontend/ui/divider';\nimport { DsListItem } from '@frontend/ui/list-item';\nimport { DsNotificationBubble } from '@frontend/ui/notification-bubble';\nimport { PlainLinkComponent } from '@frontend/vanilla/core';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\n@Component({\n selector: 'ms-list-item',\n templateUrl: './list-item.component.html',\n standalone: true,\n styleUrls: ['./list-item.component.scss'],\n imports: [IconCustomComponent, DsListItem, DsDivider, DsNotificationBubble, NgTemplateOutlet, PlainLinkComponent, SpeculativeLinkDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListItemComponent {\n @HostBinding('class') className = 'list-item-ds';\n\n @Input() title?: string;\n @Input() boldTitle = false;\n @Input() subTitle?: string;\n @Input() count?: number;\n @Input() icon?: string;\n @Input() iconSize?: string;\n @Input() href?: string;\n @Input() arrow = true;\n @Input() isShowBorder = true;\n @Input() badge = false;\n @Input() isActive = false;\n @Input() showStartSlot = true;\n @Output() itemClicked = new EventEmitter();\n\n clicked() {\n this.itemClicked.emit();\n }\n}\n","\n \n\n\n\n \n \n \n\n\n\n
\n \n \n
\n
\n {{ title }}\n \n \n
\n
{{ count }}
\n
\n \n
\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { PlainLinkComponent } from '@frontend/vanilla/core';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\n\n@Component({\n selector: 'ms-item',\n templateUrl: 'item.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgIf, AutomationModule, NgTemplateOutlet, PlainLinkComponent, SpeculativeLinkDirective],\n})\nexport class ItemComponent {\n @Input() title?: string;\n @Input() count?: number;\n @Input() icon?: string;\n @Input() href?: string;\n @Input() regionIds?: number[];\n @Input() tracking = 'M2_quicklinks';\n @Input() arrow = true;\n @Input() attribute?: string;\n @HostBinding('class') className = 'list-item';\n @Output() itemClicked = new EventEmitter();\n constructor(private trackerService: TrackingService) {}\n\n clicked(): void {\n if (this.tracking) {\n this.trackerService.update({ [trackingConstants.PAGE_REFERRING_ACTION]: this.tracking });\n\n if (this.href?.indexOf('http') === 0) {\n this.trackerService.triggerEventWithCleaning();\n }\n }\n this.itemClicked.emit();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { WINDOW } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CssSupportService {\n private cssSupports: (feature: string, value: string) => boolean;\n readonly #window = inject(WINDOW);\n\n constructor() {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n this.cssSupports = this.#window['CSS'] && this.#window['CSS'].supports;\n }\n\n isFeatureSupported(feature: string, value: string): boolean {\n if (!this.cssSupports) {\n return false;\n }\n\n return this.cssSupports(feature, value);\n }\n\n isTouchActionSupported(): boolean {\n return this.isFeatureSupported('touch-action', 'pan-y');\n }\n}\n","import { clone } from 'lodash-es';\n\nexport enum ScrollSpeedConstants {\n Default = 'default',\n}\n\nexport class ScrollSpeed {\n private _breakpoints: { [key: string]: string };\n private _default: string;\n\n constructor(config: { [key: string]: string }) {\n const parsedConfig = this.parseConfig(config);\n this._breakpoints = parsedConfig.breakpoints;\n this._default = parsedConfig.default;\n }\n\n get breakpoints(): { [key: string]: string } {\n return this._breakpoints;\n }\n\n get default(): string {\n return this._default;\n }\n\n private parseConfig(config: { [key: string]: string }): { breakpoints: { [key: string]: string }; default: string } {\n const clonedConfig = clone(config);\n\n const defaultValue = clonedConfig[ScrollSpeedConstants.Default];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete clonedConfig[ScrollSpeedConstants.Default];\n\n return {\n breakpoints: clonedConfig,\n default: defaultValue,\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HammerGestureConfig } from '@angular/platform-browser';\n\nimport { TouchMouseInput } from 'hammerjs';\n\n// https://stackoverflow.com/questions/41017202/vertical-scroll-is-not-working-with-hammerjs-and-angular2\n@Injectable()\nexport class HammerGestureConfigProvider extends HammerGestureConfig {\n override overrides = {\n pinch: { enable: false },\n rotate: { enable: false },\n swipe: {\n direction: Hammer.DIRECTION_HORIZONTAL,\n },\n };\n\n // https://github.com/hammerjs/hammer.js/issues/1240\n override options = {\n inputClass: TouchMouseInput,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface ScrollAdapterConfig {\n disableHorizontalScrollOnDesktop: boolean;\n}\n\nexport const SCROLL_ADAPTER_CONFIG = new InjectionToken('ms-scroll-adapter');\n","import {\n AfterViewInit,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n Optional,\n Output,\n Renderer2,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angular/platform-browser';\n\nimport { ScrollingSizeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { HammerGestureConfigProvider } from '@frontend/sports/common/core/feature/browser';\nimport { SmoothScroll } from '@frontend/sports/common/core/feature/smooth-scroll';\nimport { CssSupportService } from '@frontend/sports/common/core/utils/css-support';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { OptionalNonRootToken } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\nimport { DeviceService, MediaQueryService, NativeAppService } from '@frontend/vanilla/core';\nimport { fromEvent, merge } from 'rxjs';\nimport { auditTime } from 'rxjs/operators';\n\nimport { SCROLL_ADAPTER_CONFIG, ScrollAdapterConfig } from './scroll-adapter.model';\nimport { ScrollSpeed } from './scroll-speed.model';\n\nexport enum ScrollAdapterButtonSize {\n Small = 24,\n Large = 36,\n}\n\nexport type SwipeEvents = 'swipeleft' | 'swiperight';\n\n@Component({\n selector: 'ms-scroll-adapter',\n templateUrl: 'scroll-adapter.html',\n standalone: true,\n providers: [\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: HammerGestureConfigProvider,\n },\n ],\n})\nexport class ScrollAdapterComponent implements OnChanges, AfterViewInit {\n @Input() scrollSize = 200;\n @Input() scrollSpeed?: ScrollSpeed;\n @Input() alwaysShowArrows = false;\n @Input() stretch = false;\n @Input() buttonSize = ScrollAdapterButtonSize.Small;\n /**\n * Can be used to reset the state of the scroll adapter by passing the reference of the list/object/object-count\n * rendered in the content\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() scrollItems?: any[];\n @Output() select = new EventEmitter<'left' | 'right'>();\n @Output() mobileSwipe = new EventEmitter();\n\n @HostBinding('class') get className(): string {\n const cls = ['scroll-adapter'];\n if (this.buttonSize === ScrollAdapterButtonSize.Large) {\n cls.push('scroll-adapter--large-arrows');\n }\n\n return cls.join(' ');\n }\n\n @ViewChild('contentTemplate', { static: true }) content: ElementRef;\n @ViewChild('containerTemplate', { static: true }) container: ElementRef;\n @ViewChild('leftArrow', { static: true }) leftArrow: ElementRef;\n @ViewChild('rightArrow', { static: true }) rightArrow: ElementRef;\n\n canScrollLeft = false;\n canScrollRight = false;\n showArrows: boolean; // is touch\n\n private readonly hiddenArrowClass = 'scroll-adapter__arrow--hidden';\n private readonly disabledArrowClass = 'scroll-adapter__arrow--disabled';\n private readonly scrollableLeftClass = 'scroll-adapter__container--scrollable-left';\n private readonly scrollableRightClass = 'scroll-adapter__container--scrollable-right';\n\n private scrollDuration = 200;\n private hasScrolled = false;\n private readonly destroyRef = inject(DestroyRef);\n\n private get containerElement(): HTMLElement {\n return this.container.nativeElement;\n }\n\n private get contentElement(): HTMLElement {\n return this.content.nativeElement;\n }\n\n constructor(\n private deviceService: DeviceService,\n private smoothScroll: SmoothScroll,\n private renderer: Renderer2,\n private scrollSizeConfig: ScrollingSizeConfig,\n private mediaService: MediaQueryService,\n private timer: TimerService,\n public elementRef: ElementRef,\n private nativeAppService: NativeAppService,\n private cssSupportService: CssSupportService,\n @Inject(HAMMER_GESTURE_CONFIG) private hammerGestureConfig: HammerGestureConfig,\n @Optional() @Inject(OptionalNonRootToken(SCROLL_ADAPTER_CONFIG)) private scrollAdapterConfig: ScrollAdapterConfig | null,\n ) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.showArrows = !this.deviceService.isMobile || this.nativeAppService.isTerminal || this.alwaysShowArrows;\n\n if (changes.scrollItems && !changes.scrollItems.firstChange) {\n this.resetArrows();\n }\n }\n\n updatedScrollPosition(buffer = 0): void {\n // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style\n const child = this.contentElement.querySelector('.active') as HTMLElement;\n if (!child) {\n return;\n }\n\n if (this.containerElement) {\n this.containerElement.scrollLeft = child.offsetLeft - buffer - this.containerElement.clientLeft / 2 + child.clientLeft / 2;\n }\n this.setArrows();\n }\n\n ngAfterViewInit(): void {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const scrollElement: HTMLElement | null = this.elementRef.nativeElement;\n if (scrollElement && this.cssSupportService.isTouchActionSupported()) {\n const hammer = this.hammerGestureConfig.buildHammer(scrollElement);\n\n merge(fromEvent(hammer, 'swiperight'), fromEvent(hammer, 'swipeleft'))\n .pipe(takeUntilDestroyed(this.destroyRef))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n .subscribe((event: any) => this.groupsSwiped(event));\n }\n\n if (!this.showArrows) {\n return;\n }\n\n if (this.scrollAdapterConfig?.disableHorizontalScrollOnDesktop && !this.deviceService.isMobile) {\n this.containerElement.style.overflowX = 'hidden'; // make overflowX hidden so scrolling over will scroll column vertically\n }\n\n merge(fromEvent(this.containerElement, 'scroll'), fromEvent(window, 'resize'))\n .pipe(auditTime(30), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setArrows());\n\n this.setArrows();\n }\n\n scrollLeft(): void {\n this.scroll(this.containerElement.scrollLeft - this.calculateScrollSize());\n this.select.emit('left');\n }\n\n scrollRight(): void {\n this.hasScrolled = true;\n this.scroll(this.containerElement.scrollLeft + this.calculateScrollSize());\n this.select.emit('right');\n }\n\n setArrows(): void {\n if (!this.showArrows) {\n return;\n }\n\n // animationFrame is needed as the method might be called before the content is rendered,\n // even though the ngOnChange was triggered, so the measurement is wrong for the\n // width/scroll position\n this.timer.setAnimationFrame(() => {\n const scrollLeft = this.containerElement.scrollLeft;\n const offsetWidth = this.containerElement.offsetWidth;\n const scrollWidth = this.containerElement.scrollWidth;\n\n if (scrollLeft > 0) {\n this.hasScrolled = true;\n }\n\n // If we have arrows visible and the content can fit in the container,\n // we do not need the arrows visible. This happens when the right/left column width changes with code.\n // If you resize the browser windows manually, this is not reproducible.\n if (\n this.containerElement.offsetWidth !== this.containerElement.scrollWidth &&\n this.containerElement.offsetWidth > this.contentElement.offsetWidth\n ) {\n this.canScrollRight = false;\n this.canScrollLeft = false;\n } else {\n this.canScrollRight = scrollLeft + offsetWidth < scrollWidth - 5;\n this.canScrollLeft = scrollLeft > 5;\n }\n\n this.updateUi();\n });\n }\n\n resetArrows(): void {\n // we reset the inner state of the scroll adapter and force update ui prior\n // to setting the arrows to avoid flickering\n this.hasScrolled = false;\n this.canScrollLeft = false;\n this.canScrollRight = false;\n\n this.containerElement.scrollLeft = 0;\n\n this.updateUi();\n this.setArrows();\n }\n\n groupsSwiped(event: HammerInput): void {\n this.mobileSwipe.emit(event.type as SwipeEvents);\n event.srcEvent.stopPropagation();\n }\n\n private scroll(left: number): void {\n this.smoothScroll.scrollLeftTo(this.containerElement, left, this.scrollDuration);\n }\n\n private updateUi(): void {\n this.setClass(this.leftArrow, this.hiddenArrowClass, !this.leftArrowVisible());\n this.setClass(this.rightArrow, this.hiddenArrowClass, !this.rightArrowVisible());\n\n this.setClass(this.leftArrow, this.disabledArrowClass, !this.canScrollLeft);\n this.setClass(this.rightArrow, this.disabledArrowClass, !this.canScrollRight);\n\n this.setClass(this.container, this.scrollableLeftClass, this.leftArrowVisible());\n this.setClass(this.container, this.scrollableRightClass, this.rightArrowVisible());\n }\n\n private leftArrowVisible(): boolean {\n return this.hasScrolled && this.canScrollLeft;\n }\n\n private rightArrowVisible(): boolean {\n return this.canScrollRight;\n }\n\n /**\n * Add or removes a class from elements depending of direction\n *\n * @param el element to be modified\n * @param className class name\n * @param direction when true adds the class when false removes the class.\n */\n private setClass(el: ElementRef, className: string, direction: boolean): void {\n const hasClass = el.nativeElement.classList.contains(className);\n if (direction && !hasClass) {\n this.renderer.addClass(el.nativeElement, className);\n } else if (!direction && hasClass) {\n this.renderer.removeClass(el.nativeElement, className);\n }\n }\n\n private calculateScrollSize(): number {\n if (this.scrollSpeed) {\n const scrollPercentage = this.getScrollPercentage(this.scrollSpeed);\n\n if (scrollPercentage) {\n return this.containerElement.offsetWidth * scrollPercentage;\n }\n }\n\n return this.scrollSize;\n }\n\n private getScrollPercentage(scrollSpeed: ScrollSpeed): number | undefined {\n let activeBreakpoint = this.getActiveBreakpoint(scrollSpeed.breakpoints);\n\n if (!activeBreakpoint) {\n activeBreakpoint = scrollSpeed.default;\n }\n\n return this.scrollSizeConfig.scrollingSpeed[activeBreakpoint];\n }\n\n private getActiveBreakpoint(breakpoints: { [key: string]: string }): string | null {\n const keys = Object.keys(breakpoints);\n const activeBreakpointKey = keys.find((br) => this.mediaService.isActive(br));\n\n if (!activeBreakpointKey) {\n return null;\n }\n\n return breakpoints[activeBreakpointKey];\n }\n}\n","
\n
\n
\n\n \n\n\n \n\n","import { Component } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\n@Component({\n selector: 'ms-promotion-badge',\n templateUrl: './badge.html',\n standalone: true,\n imports: [IconCustomComponent],\n})\nexport class BadgeComponent {\n promotionTitle: string;\n\n constructor(public sitecore: Sitecore) {\n this.promotionTitle = sitecore.crmPromotions.Promotion;\n }\n}\n","\n {{ promotionTitle }}\n\n","import { Directive, inject } from '@angular/core';\n\nimport { LcpCandidateConfig } from '@frontend/sports/common/client-config-data-access';\n\n/**\n *\n * @experimental\n *\n * @whatItDoes Makes the element eligible to be considered the largest contentful paint by adding an invisible svg as a\n * background image. For more information on what makes a candidate eligible to be largest contentful paint read the\n * official specs. {@link https://w3c.github.io/largest-contentful-paint/#sec-terminology|W3C Largest Contentful Paint}\n *\n */\n\n@Directive({\n standalone: true,\n host: {\n '[class]': 'candidateClass',\n },\n})\nexport class LcpCandidateDirective {\n #config = inject(LcpCandidateConfig);\n candidateClass = this.#config.isEnabled ? 'sports-sports-lcp-candidate' : null;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport const DS_CARD_VARIANT_ARRAY = ['surface-lowest', 'surface-low', 'surface-high', 'surface-highest'] as const;\nexport type DsCardVariant = (typeof DS_CARD_VARIANT_ARRAY)[number];\n\n@Component({\n selector: 'ds-card',\n template: ``,\n host: {\n 'class': 'ds-card',\n '[class]': `hostClass()`,\n '[class.ds-card-hover-effect]': 'withHover()',\n '[class.ds-card-no-elevation]': '!elevated()',\n '[class.ds-card-overflow-hidden]': 'noOverflow()',\n '[class.ds-card-no-border]': 'noBorder()',\n '[class.ds-card-no-border-radius]': 'noBorderRadius()',\n '[class.ds-card-inverse]': 'inverse()',\n },\n styleUrl: 'card.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DsCard {\n variant = input('surface-lowest');\n elevated = input(true, { transform: booleanAttribute });\n inverse = input(false, { transform: booleanAttribute });\n withHover = input(false, { transform: booleanAttribute });\n /* applying a css class with overflow:hidden style */\n noOverflow = input(false, { transform: booleanAttribute });\n noBorderRadius = input(false, { transform: booleanAttribute });\n noBorder = input(false, { transform: booleanAttribute });\n hostClass = computed(() => `ds-card-${this.variant()}`);\n}\n","
\n
\n \n\n \n\n
\n
\n
{{ promotion.banner?.title }}
\n
\n
\n \n
\n
\n\n
\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { SafeStyle } from '@angular/platform-browser';\n\nimport { CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { WindowEventService } from '@frontend/sports/common/core/utils/window-event';\nimport { TrackingSource as TrackingSourceData } from '@frontend/sports/tracking/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\nimport { OfferStatus, Promotion, TrackingSource } from '../crm-offer-data/crm-offer.model';\nimport { LcpCandidateDirective } from '../perf-cdk/lcp-candidate.directive';\nimport { BannerService } from './banner.service';\nimport { OfferStatusService } from './offer-status.service';\nimport { CTALocation, CrmPromotionTracking } from './tracking.service';\n\n@Component({\n selector: 'ms-crm-promotion-banner',\n templateUrl: 'banner.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [CrmPromotionTracking], // additionally registering dedicated crm promo tracking service, to make sure modular-tracking.service overrides tracking.service\n hostDirectives: [LcpCandidateDirective],\n})\nexport class BannerComponent implements OnInit, OnChanges, AfterContentInit {\n overlayActiveBreakpointPx = 358;\n translations: { [key: string]: string } = {};\n optInInvisible = false;\n private optInRedirect = false;\n\n @Input() promotion: Promotion;\n @Input() listIndex = 0;\n @Input() isDynamicSize = false;\n @Input() trackingSource = TrackingSource.Teaser;\n\n @HostBinding('style.background-image') backgroundImage: SafeStyle;\n @HostBinding('class.overlay-active') overlayActive: boolean;\n @HostBinding('class.large-dynamic-banner') largeDynamicBannerClass: boolean;\n\n private largeBannerWidthPx = 608;\n trackingSourceText: string;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private elementRef: ElementRef,\n public sitecore: Sitecore,\n private tracking: CrmPromotionTracking,\n private changeDetectorRef: ChangeDetectorRef,\n private bannerService: BannerService,\n private windowEvent: WindowEventService,\n private localStorage: LocalStoreService,\n private crmConfig: CrmConfig,\n private m2User: UserService,\n private offerStatusService: OfferStatusService,\n ) {\n this.optInRedirect = this.crmConfig.promotions.optInRedirectBlackListedCountries.indexOf(this.m2User.country) > -1;\n this.optInInvisible = this.crmConfig.promotions.optInInvisibleBlackListedCountries.indexOf(this.m2User.country) > -1;\n }\n\n get trackingSourceData(): TrackingSourceData {\n return {\n source: this.trackingSourceText,\n position: this.listIndex,\n };\n }\n\n async ngOnInit(): Promise {\n this.trackingSourceText = `${this.trackingSource}_${this.listIndex + 1}`;\n this.tracking.trackViewed(this.promotion, this.trackingSourceText);\n\n const storedId = this.localStorage.get(this.bannerService.storageKey);\n\n if (storedId !== this.promotion.id) {\n return;\n }\n\n if (this.optInRedirect || this.optInInvisible) {\n await this.bannerService.openDetailsPage(this.promotion, this.trackingSourceData, () => {\n this.changeDetectorRef.detectChanges();\n });\n }\n\n this.localStorage.set(this.bannerService.storageKey, undefined);\n if (this.promotion?.status !== OfferStatus.NoOptIn) {\n this.setOfferStatus();\n }\n }\n\n @HostListener('click')\n async onclick(): Promise {\n this.trackClick(CTALocation.Banner);\n await this.bannerService.openDetailsPage(this.promotion, this.trackingSourceData, () => {\n this.changeDetectorRef.detectChanges();\n });\n }\n\n ngOnChanges(): void {\n if (this.promotion && this.promotion.banner && this.promotion.banner.backgroundImageUrl) {\n this.backgroundImage = `url(${this.promotion.banner.backgroundImageUrl})`;\n }\n }\n\n ngAfterContentInit(): void {\n // TODO Roxin - this will reflow content .. a few times\n this.overlayActive = this.elementRef.nativeElement.offsetWidth < this.overlayActiveBreakpointPx;\n\n this.isDynamicSize && this.setDynamicSizeBanner();\n }\n\n private setDynamicSizeBanner(): void {\n this.windowEvent.resize\n .asObservable()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.setClasses());\n\n this.setClasses();\n }\n\n private setOfferStatus(): void {\n this.trackClick(CTALocation.OptIn);\n\n this.offerStatusService.setOfferStatus(this.promotion).subscribe((response) => {\n this.promotion.status = response;\n this.tracking.trackOptinResult({ promotion: this.promotion, trackingSource: this.trackingSourceText, status: response });\n this.changeDetectorRef.detectChanges();\n });\n }\n\n private setClasses(): void {\n this.largeDynamicBannerClass = this.elementRef.nativeElement.offsetWidth > this.largeBannerWidthPx;\n }\n\n private trackClick(ctaLocation: CTALocation): void {\n this.tracking.trackCTA({\n promotion: this.promotion,\n trackingSource: this.trackingSourceText,\n ctaLocation,\n position: this.listIndex,\n });\n }\n}\n","@if (!href || popup) {\n \n} @else {\n \n \n \n}\n\n\n
\n @if (sportsIcon) {\n \n } @else if (icon) {\n \n }\n \n \n
\n @if (isMiniCarouselLayout) {\n \n } @else {\n \n }\n
\n\n\n
\n @if (title) {\n {{ title }}\n }\n \n @if (badgesEnabled) {\n \n }\n @if (showLiveBadge) {\n
{{ sitecore.event.Live }}
\n }\n
\n @if (count) {\n
{{ count }}
\n }\n @if (arrow) {\n
\n }\n
\n","import { NgClass, NgOptimizedImage, NgTemplateOutlet } from '@angular/common';\nimport { Component, Input, OnChanges } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { TrackingService } from '@frontend/sports/tracking/feature';\nimport { LinkListLayout } from '@frontend/sports/types/components/widget/types';\nimport { PlainLinkComponent } from '@frontend/vanilla/core';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { ItemComponent } from '../common/item/item.component';\nimport { BadgeComponent } from './badge.component';\n\n@Component({\n selector: 'ms-promo-item',\n templateUrl: './promo-item.html',\n standalone: true,\n imports: [\n AutomationModule,\n NgTemplateOutlet,\n BadgeComponent,\n NgClass,\n PlainLinkComponent,\n SpeculativeLinkDirective,\n NgOptimizedImage,\n IconCustomComponent,\n ],\n})\nexport class PromoItemComponent extends ItemComponent implements OnChanges {\n @Input() badgesEnabled = false;\n @Input() showLiveBadge = false;\n @Input() popup: string;\n @Input() leagueTitle?: string;\n @Input() leagueIcon?: string;\n @Input() sportsIcon?: string;\n @Input() layout?: LinkListLayout;\n\n isMiniCarouselLayout: boolean;\n readonly isEpcotEnabled = this.epcotConfigService.isEnabled();\n\n constructor(\n public sitecore: Sitecore,\n trackerService: TrackingService,\n private epcotConfigService: EpcotConfigService,\n ) {\n super(trackerService);\n }\n\n ngOnChanges(): void {\n this.isMiniCarouselLayout = this.layout === LinkListLayout.MiniCarousel && !!this.leagueTitle && this.isEpcotEnabled;\n }\n}\n","@if (isStackedLayout && items?.length) {\n \n @for (item of items; track $index; let last = $last) {\n \n @if (item.colouredIcon) {\n \n \n \n }\n \n }\n \n} @else {\n @if (items?.length) {\n @if (isCarouselLayout) {\n \n @if (isMiniCarouselLayout) {\n
    \n \n
\n } @else {\n \n }\n
\n } @else {\n \n }\n }\n\n \n @for (item of items; track $index) {\n \n @if (hasCompetitionLogo(item.sportId, item.leagueId)) {\n \n }\n\n @if (item.colouredIcon) {\n \n }\n \n }\n \n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, signal } from '@angular/core';\n\nimport { EpcotConfig } from '@frontend/sports/common/client-config-data-access';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { CompetitionLogosService } from '@frontend/sports/competition-logos/feature';\nimport { LinkListLayout } from '@frontend/sports/types/components/widget/types';\nimport { keys } from 'lodash-es';\n\nimport { ListItem } from '../common/item/item.model';\nimport { PopupManager, PopupTypes } from '../popup/popup-manager.service';\nimport { QuickLinkItem } from '../quick-links/quick-links.models';\n\n@Component({\n selector: 'ms-promo-item-list',\n templateUrl: 'promo-item-list.html',\n styleUrl: './promo-item-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PromoItemListComponent implements OnInit {\n @Input() tracking?: string;\n @Input() arrow = true;\n @Input() items: ListItem[] | QuickLinkItem[];\n @Input() itemClass = '';\n @Input() promotedCompetitionIdsMap = {};\n @Input() promotedSportIdsMap = {};\n @Input() layout?: LinkListLayout;\n @Output() itemClick = new EventEmitter();\n @ViewChild(ScrollAdapterComponent) scrollAdapter?: ScrollAdapterComponent;\n cleanedAfterTrack = signal(false);\n private isEpcotEnabled: boolean;\n @HostBinding('class.mini-carousel-with-subheader') get isMiniCarouselLayout(): boolean {\n return this.layout === LinkListLayout.MiniCarousel && this.isEpcotEnabled;\n }\n\n @HostBinding('class.stacked-item-list') get isStackedList(): boolean {\n return this.layout === LinkListLayout.Stacked;\n }\n\n isStackedLayout = false;\n\n constructor(\n private competitionLogoService: CompetitionLogosService,\n private popupManager: PopupManager,\n private epcotConfig: EpcotConfig,\n private timer: TimerService,\n ) {\n this.isEpcotEnabled = this.epcotConfig.isEnabled;\n }\n\n ngOnInit(): void {\n this.timer.setTimeout(() => this.scrollAdapter?.setArrows());\n this.isStackedLayout = this.layout === LinkListLayout.Stacked;\n }\n\n clicked(item: ListItem | QuickLinkItem): void {\n this.cleanedAfterTrack.update(() => item.href?.indexOf('http') === 0 || false);\n this.itemClick.emit(item);\n\n if ('popup' in item && !!item.popup) {\n this.popupManager.toggle(item.popup);\n }\n }\n\n hasCompetitionLogo(sportId: number, leagueId: number): boolean {\n return this.competitionLogoService.hasLogo(sportId, leagueId);\n }\n\n hasBgcolorForTilesOrGridView(item: ListItem): boolean {\n return !!(item.bgColor && this.layout && [LinkListLayout.TilesCarousel, LinkListLayout.Grid].includes(this.layout));\n }\n\n areBadgesEnabled(item: ListItem): boolean {\n if (!item.attributes) {\n return false;\n }\n\n const sportIds = item.attributes['promotedSportId']?.toString().split(',') || [];\n const leagueIds = item.attributes['promotedLeagueId']?.toString().split(',') || [];\n\n return (\n keys(this.promotedSportIdsMap).some((key) => sportIds.includes(key)) ||\n keys(this.promotedCompetitionIdsMap).some((key) => leagueIds.includes(key))\n );\n }\n\n itemIndexTrackBy(index: any, item: any): string {\n return index;\n }\n\n get isCarouselLayout(): boolean {\n return !!this.layout && [LinkListLayout.MiniCarousel, LinkListLayout.TilesCarousel].includes(this.layout);\n }\n}\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AutomationModule } from '@frontend/sports/automation/core-feature';\nimport { ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { ListItemComponent } from '@frontend/sports/common/ui/sports-list-items';\nimport { CompetitionLogoComponent } from '@frontend/sports/competition-logos/feature';\nimport { TrackReferringACtionDirective } from '@frontend/sports/tracking/feature';\nimport { DsButton } from '@frontend/ui/button';\nimport { DsCard } from '@frontend/ui/card';\nimport { PlainLinkComponent } from '@frontend/vanilla/core';\nimport { SpeculativeLinkDirective } from '@frontend/vanilla/features/speculative-link';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { BadgeComponent } from './badge.component';\nimport { BannerMoreInfoComponent } from './banner-more-info.component';\nimport { BannerComponent } from './banner.component';\nimport { PromoItemListComponent } from './promo-item-list.component';\nimport { PromoItemComponent } from './promo-item.component';\nimport { PromotionStatusButtonWrapperComponent } from './promotion-status-button-wrapper.component';\nimport { PromotionStatusButtonComponent } from './promotion-status-button.component';\nimport { SimpleBadgeComponent } from './simple-badge.component';\n\n@NgModule({\n imports: [\n AutomationModule,\n CommonModule,\n CompetitionLogoComponent,\n NgOptimizedImage,\n PlainLinkComponent,\n NgOptimizedImage,\n ScrollAdapterComponent,\n BadgeComponent,\n PromotionStatusButtonComponent,\n PromotionStatusButtonWrapperComponent,\n PromoItemComponent,\n SpeculativeLinkDirective,\n IconCustomComponent,\n DsButton,\n TrackReferringACtionDirective,\n ListItemComponent,\n DsCard,\n ],\n declarations: [BannerComponent, BannerMoreInfoComponent, PromoItemListComponent, SimpleBadgeComponent],\n exports: [\n BannerComponent,\n SimpleBadgeComponent,\n BannerMoreInfoComponent,\n PromoItemComponent,\n PromoItemListComponent,\n PromotionStatusButtonComponent,\n PromotionStatusButtonWrapperComponent,\n ],\n})\nexport class CrmPromotionModule {}\n"],"names":["SubNavigationResolve","constructor","tabs$","BehaviorSubject","size$","fullWidth$","subNavigation$","asObservable","tabSize$","tabFullWidth$","cleanup","next","GRID_ACTION_SCHEMA","GridActions","_GridActions","ADD_EVENTS","SET_EVENTS","UPDATE_EVENTS","REPLACE_EVENTS","REMOVE_EVENTS","REPLACE_EVENT","COLLAPSE_EVENTS","DESTROY","INIT","SET_ACTIVE_GROUP","SET_ACTIVE_GROUP_TYPE","SET_STATE_COLLAPSE","SET_GROUP_COLLAPSE","SET_MORE_COLLAPSE","ADD_GROUPS","UPDATE_GROUPS_BADGES","CHANGE_SORTING","ADD_COUPON_EVENTS","addEvents","createAction","pprops","setEvents","updateEvents","replaceEvents","removeEvents","replaceEvent","collapseEvents","destroy","props","init","setActiveGroup","setActiveGroupType","setGroupCollapse","setMoreCollapse","addGroups","updateGroupsBadges","changeSorting","addCouponEvents","gridInitialState","gridStateKey","gridStateSelector","createFeatureSelector","_c0","_c1","_c2","MAT_BUTTON_CONFIG","InjectionToken","HOST_SELECTOR_MDC_CLASS_PAIR","MatButtonBase","_MatButtonBase","_a","v","value","_elementRef","_platform","_ngZone","_animationMode","inject","FocusMonitor","MatRippleLoader","config","element","classList","attribute","mdcClasses","origin","options","__ngFactoryType__","ɵɵinvalidFactory","ɵɵdefineDirective","booleanAttribute","ɵɵInputTransformsFeature","MatButton","_MatButton","elementRef","platform","ngZone","animationMode","ɵɵdirectiveInject","ElementRef","Platform","NgZone","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassMap","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵprojectionDef","ɵɵelement","ɵɵprojection","ɵɵelementStart","ɵɵelementEnd","SimpleSnackBar_Conditional_2_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","MatSnackBarContainer_ng_template_4_Template","MAX_TIMEOUT","MatSnackBarRef","containerInstance","_overlayRef","Subject","duration","MAT_SNACK_BAR_DATA","MatSnackBarConfig","MatSnackBarLabel","_MatSnackBarLabel","MatSnackBarActions","_MatSnackBarActions","MatSnackBarAction","_MatSnackBarAction","SimpleSnackBar","_SimpleSnackBar","snackBarRef","data","ɵɵtemplate","ɵɵconditional","matSnackBarAnimations","trigger","state","style","transition","animate","uniqueId","MatSnackBarContainer","_MatSnackBarContainer","BasePortalOutlet","_changeDetectorRef","snackBarConfig","DOCUMENT","portal","result","event","fromState","toState","onEnter","panelClasses","cssClass","label","labelClass","id","modals","i","modal","ariaOwns","newValue","inertElement","liveElement","focusedElement","ChangeDetectorRef","ɵɵviewQuery","CdkPortalOutlet","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵsyntheticHostListener","$event","ɵɵsyntheticHostProperty","MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY","MAT_SNACK_BAR_DEFAULT_OPTIONS","MatSnackBar","_MatSnackBar","parent","_overlay","_live","_injector","_breakpointObserver","_parentSnackBar","_defaultConfig","component","template","message","action","_config","__spreadValues","overlayRef","userInjector","injector","Injector","containerPortal","ComponentPortal","containerRef","content","userConfig","y","container","TemplateRef","TemplatePortal","contentRef","Breakpoints","takeUntil","overlayConfig","OverlayConfig","positionStrategy","isRtl","isLeft","isRight","ɵɵinject","Overlay","LiveAnnouncer","BreakpointObserver","ɵɵdefineInjectable","D","ɵɵproperty","ctx_r0","toast","icon","ToasterComponent","className","selectors","hostVars","hostBindings","ToasterComponent_i_0_Template","dismiss","ɵɵsanitizeHtml","NgIf","NgClass","encapsulation","changeDetection","_ToasterComponent","ToasterService","snackBar","epcotConfigService","isEpcotEnabled","isEnabled","open","panelClass","push","split","toaster","openFromComponent","horizontalPosition","verticalPosition","dismissed","afterDismissed","opened","afterOpened","EpcotConfig","z","factory","ɵfac","providedIn","_ToasterService","n","r","t","e","Q","Z","L","s","o","nn","u","a","f","c","X","q","p","l","rn","d","h","b","tn","_","U","j","g","O","S","w","P","M","x","H","A","I","k","E","N","en","on","R","G","W","B","un","an","fn","cn","sn","vn","ln","immer_esm_default","FavouriteType","isFixtureFavourite","favourite","type","Fixture","FixtureV2","FavouritesFixturesService","bettingOffer","getCounts","favourites","length","of","participantFavourite","fav","Participant","ParticipantV2","request","map","batchId","fixtureTypes","offerSource","getOfferSource","tagTypes","toString","sportIds","sport","extendedTags","fixtureParticipantIds","itemId","competitionIds","League","fixtureIds","getBatchCounts","pipe","BettingOfferApi","_FavouritesFixturesService","FavouritesModelFactory","urlConfig","normalizer","SegmentNormalizer","toModel","dto","produce","draft","getToken","name","key","getKey","count","region","clone","imageProfile","participantImage","toDto","val","trim","join","item","normalize","PrettyUrlsConfig","_FavouritesModelFactory","FavouriteChangeType","FavouritesService","apiService","userService","page","favouritesConfig","sitecore","favouritesData","favouritesFactory","updating","eventSubject","changeType","Get","get","getList","subscribe","onUserLogin$","filterSportsEmitLast","change","favouritesList","isDefault","default","isFull","maxFavourites","notify","iconClass","toastMessageTimeOut","add","sportId","throwError","Error","isAuthenticated","favouritesMessages","NotAuthenticated","TooManyFavourites","replace","favForSport","find","upcomingOrder","maxUpcomingOrder","maxBy","maxOrder","order","newFavourite","lang","culture","newFavourites","favs","current","update","switchMap","loadCounts","set","Add","catchError","AddError","save","Save","favouritesDashboard","remove","itemArray","Array","isArray","diff","differenceBy","Remove","refresh","cached","shareReplay","bufferSize","refCount","loadAdditionalData","favDraft","forEach","tags","tag","findTag","sportTag","competitionTag","countTag","live","preMatch","post","Favourites","finalize","ApiService","UserService","Page","FavouritesConfig","Sitecore","_FavouritesService","GridFavouriteService","favouriteService","store","user","filter","pairwise","previousChange","currentChange","difference","withLatestFrom","select","takeUntilDestroyed","updateFavourited","isFavourited","getType","grids","values","grid","changed","flattenDeep","groups","group","events","some","favourited","dispatch","payload","Store","_GridFavouriteService","GridBaseFactory","canCreate","create","GridFixtureFactory","fixtureFactory","detailedFactory","grouping","fixtures","marketGrouping","getFixtureGrouping","groupingConfiguration","fixture","splitFixtures","isPriceBoosted","excludePriceboostedMarketGrouping","EventFactory","factories","tap","mapped","setFavourited","FixtureFactory","DetailedFixtureFactory","OfferGroupingService","_EventFactory","BreadcrumbsResolve","crumbs","createCrumb","leagueId","title","url","classes","ignoreBrowserHistory","bgColor","color","isWithRightImage","resolve","model","customResolve","addToCrumbs","crumbsToAdd","regexMatcher","segments","segmentGroup","route","matcherPattern","regex","RegExp","max","matcherMode","segment","index","path","match","exec","matcherMapping","consumed","posParams","keys","UrlSegment","slice","use","resolver","ScoreboardStat","player1","player2","isVisible","statClasses","isEmpty","playerNumber","ScoreboardStatList","list","addStat","removeStat","cnt","splice","findIndex","updateStatValue","stat","setIsEnabled","stat1","indx","PairGameScoreboardStats","setStats","statsKey","periodScore","participant1","participant2","updateStatValueFromDoubleCounter","newPeriodScore","updateStatVisibility","PeriodGameFullScoreboardStats","isActive","points","periods","SnookerScoreboardStats","fillSnookerStats","scoreboard","score","getScore","player1CurrentScore","player2CurrentScore","frames","currentlyServing","PenaltyShootoutScoreboardStats","penalties","penaltyScore","setPenalties","getPenaltyScore","status","PenaltyStatus","Scored","penaltyShootOutScore","visible","teams","offset","ceil","team","penalty","times","_penalty","Unset","DartsScoreboardStats","fillDartsStats","matchType","hundredEighties","legs","SetGameScoreboardStats","sets","turn","isSetFinished","isHighlighedSet","player","IncreaseTimer","tickTime","fromScoreboardTimer","timer","base","Date","getTime","running","seconds","getDisplay","timeDiff","Math","floor","displayedMinutes","displayedseconds","DecreaseTimer","fromDate","futureDate","future","now","activeTime","minutesLeft","getMinutesLeft","countDownMinutesBeforeGame","_DecreaseTimer","ScoreboardTimer","startTime","eventStartDate","countDownTimer","started","indicator","timeIndicator","elapsedTimer","getTimeMyBets","eventStartingInText","timerRunning","shouldBeVisible","ScoreboardViewModel","weather","hasStreams","periodInfo","hasScoreboard","periodId","playersList","bestOf","getEventTimeViewModel","isLive","liveAlert","bestOfLegs","bestOfSets","lapCounter","__fillFromEvent","stream","startDate","period","eventId","league","eventGroupId","groupId","leagueGroupId","parentLeagueId","fillFromEvent","fillFromScoreboard","__fillFromScoreboard","updateFromScoreboard","ScoreboardPairGameViewModel","scoreKey","eventName","leagueName","participants","player1AwayIndicator","viewType","EventParticipantType","Away","player2AwayIndicator","SetScoreboardViewModel","turnKey","pointsKey","setsKey","stats","getTurn","Turn","Player01","Player02","getPoints","getSets","player1Sets","player2Sets","parsePoints","createStats","fillStats","None","isFinished","fillEmptySets","updateStats","parseInt","isNaN","TennisScoreboardViewModel","arePointsAreVisible","BaseBallscoreboardViewModel","activeCurrentInning","Number","participant1runs","participant2runs","PairScoreboardViewModel","__fillStats","__updateStats","DartsScoreboardViewModel","ScoreboardTournamentGameViewModel","ScoreboardLeaderboardGameViewModel","players","final","preRace","PenaltyShootoutScoreboardViewModel","PeriodGameScoreboardViewModel","periodsKey","getPeriods","p1Period","p2Period","buildScoreboardStat","total","SnookerScoreboardViewModel","SoccerScoreboardViewModel","redCardsStats","yellowCardsStats","cornersStats","penaltiesStats","isExpanded","__fillSoccerStats","statistics","undefined","getStatsValue","redcards","yellowcards","corners","entry","regularTime","extraTime","firstHalf","secondHalf","reduce","acc","__updateSoccerStats","setIsExpanded","redCards","yellowCards","ScoreboardViewmodelFactory","pointsVisibilityService","createMyBetsScoreBoardViewModel","viewModel","getModel","scoreboardNotStarted","ScoreboardType","LeaderboardGame","SetGame","TournamentGame","SportConstant","Soccer","Darts","Tennis","canDisplayPoints","AmericanFootball","Icehockey","Basketball","Snooker","Baseball","Biathlon","Motorbikes","Formula1","Skialpine","TennisPointsVisibilityService","_ScoreboardViewmodelFactory","TimerUtilsService","getEventStartingInText","globalMessages","NotStarted","StartingInMinutes","StartingInMinute","StartsNow","getEventStartingInFullText","templateSettings","interpolate","format","StartsNowFormatted","TimerStartingInFormatted","date","_TimerUtilsService","DsButtonIcon","DsButtonBase","_size","signal","_kind","_variant","_ariaLabel","hostClass","computed","variantKindClass","sizeClass","variant","size","kind","ariaLabel","hostAttrs","disabled","m","_DsButtonIcon","AlertConfigService","nativeAlertsConfig","minuteInMiliseconds","extractIds","alert","containedAlerts","getBySport","alertMessages","nativeAlertsMessagesConfig","nativeAlerts","sports","enabled","sportConfigs","sportConfig","toLowerCase","messages","alerts","unshift","ids","isTop","Boolean","getTopIdsBySport","array","concat","isSportEnabled","fetchingInterval","NativeAlertsConfig","_AlertConfigService","Action","Type","Source","NativeEventType","Mode","NotificationEnabled","SubscriptionStreamService","alertConfigService","timerService","loggerFactory","_data","data$","startGettingSubscriptions","onUserLogout$","stopGettingSubscriptions","logger","getLogger","interval","refreshSubscriptions","setIntervalOutsideAngular","err","error","subscription","response","TimerService","LoggerFactory","_SubscriptionStreamService","AlertSubscriptionService","streamService","trackingService","subscriptionsSubject","processData","subscriptions","propagate","updateLocalCollection","subscriptionsToUpdate","Promise","getValue","newSubscription","Subscribe","trackSubscription","sendSubscriptions","firstValueFrom","updateSubscriptions","scores","Unsubscribe","catch","errorCode","tracking","track","trackingConstants","EVENT_ALERT_ENABLED","PAGE_NAME","newSubscriptions","unsubscribeAll","subscriptionsToRemove","getSubscriptionForEvent","getSubscriptionForGroup","currentSubscriptions","Object","getSubscription","getSubscriptions","createNewSubscription","alertEvent","idType","Live","NonLive","TrackingService","_AlertSubscriptionService","NativeAlertsService","nativeAppService","subscribeToNotificationCheck","sendToNative","IsNotificationEnabled","eventsFromNative","NativeAppService","_NativeAlertsService","AlertToastMessagesService","timeout","showUnsubscribedToast","startToast","LiveNotificationsUnsubscribed","showSubscribedToast","LiveNotificationsSubscribed","_AlertToastMessagesService","AlertSelectorService","toastMessageService","showSelector","multi","source","selected","mode","subscribed","confirm","newsubscribed","bind","_AlertSelectorService","backToList","qe","Je","event_r5","_r4","$implicit","toggleEvent","edit","ɵɵtextInterpolate","_r3","toggleAllEvents","AlertSelectorComponent_Conditional_6_Conditional_6_Template","AlertSelectorComponent_Conditional_6_Conditional_7_Template","ɵɵrepeaterCreate","AlertSelectorComponent_Conditional_6_For_9_Template","ɵɵrepeaterTrackByIdentity","allSelected","ɵɵrepeater","alert_r7","_r6","toggleAlert","isSelected","info","AlertSelectorComponent_Conditional_7_For_3_Template","ɵɵpureFunction1","showFooter","_r8","ConfirmButton","et","_r9","closeSelector","CancelButton","tt","AlertSelectorComponent_Conditional_8_section_0_Conditional_1_Template","AlertSelectorComponent_Conditional_8_section_0_Conditional_2_Template","showConfirmButton","it","AlertSelectorComponent_Conditional_8_section_0_Template","AlertSelectorComponent","selectorService","subscriptionService","activeModal","nativeAlertsService","alertPreferences","alertMessagesCache","detailViewInitValues","ngOnInit","List","createEventsModel","isSingleMode","isMultiMode","refreshSelectAllButton","setInitailValues","close","appNotificationsEnabledCheck","verifyAndSaveAlerts","saveAlerts","isDetailView","updateSelectedSubscription","unsubscribe","parameters","notificationEnabled","Yes","Detail","selectedEvent","createAlertsModel","formChanged","hasAnyAlerts","toggleScores","isValueChanged","getAlertsIdsForSport","addTrackingInfo","shouldUpdate","then","finally","noAlertEvent","cloneDeep","alertsMessages","getAlertMessages","preferences","alertMessage","alertViewModel","every","indexOf","selectedIds","getSelectedAlertIds","updatePreferences","sort","currentSubscription","isListView","showBackButton","Multi","Single","_b","SingleEventSelectorTitle","MultiEventSelectorTitle","ActiveModal","$","decls","vars","consts","AlertSelectorComponent_Conditional_1_Template","AlertSelectorComponent_Conditional_6_Template","AlertSelectorComponent_Conditional_7_Template","AlertSelectorComponent_Conditional_8_Template","_AlertSelectorComponent","AlertButtonComponent","deselected","multiple","alertDisabled","alertMultiple","alertMultipleDisabled","alertsConfig","modalDialogService","changeDetector","redirectService","disable","alertEnabled","EventEmitter","destroyRef","DestroyRef","emit","clicked","goToLogin","appendReferrer","openDialog","stopPropagation","__async","verifyAndLaunchAlertsSelector","launchAlertSelector","dialog","settings","showPageHeader","isModalDialog","fit","res","updateProperty","wasSelected","markForCheck","getBetslipModel","_c","_d","_e","clientPick","fixtureId","parentleagueId","getEventModel","getMyBetModel","sportsId","containsLiveBets","getScoreboardModel","getMyBetsModel","items","bets","Mybets","Mybet","Betslip","Scoreboard","ModalDialogService","RedirectHelperService","_AlertButtonComponent","NativeAlertsModule","ue","CommonModule","DsButton","IconCustomComponent","_NativeAlertsModule","Se","ScrolledToBottomDirective","renderer","layout","scrollContainer","DEFAULT_SCROLL_TOLERANCE","scrollContext","toleranceValue","toleranceType","scrollAtBottom","scrollAtMid","previousTop","onScroll","clientHeight","scrollHeight","scrollTop","getHeight","offsetTop","scrollTolerance","setTolerance","currentFooterSize","height","isMidLevel","subscribeElement","subscribeContainer","ngOnDestroy","handler","target","listener","listen","nativeElement","Subscription","scroll","windowRef","document","documentElement","pageYOffset","Renderer2","ColumnLayoutService","ScrollContainerService","inputs","outputs","_ScrolledToBottomDirective","ClassAutoRemoveDirective","isClassVisible","_isClassVisible","applyChanges","msClassAutoRemoveTime","msClassAutoRemoveIsClassVisibleChange","removeTimer","clearTimer","elementHasClass","addClass","startTimer","removeClass","setTimeout","contains","_ClassAutoRemoveDirective","ColumnWidthDirective","_doc","columnSelector","setElementWidth","column","getColumnElement","width","getBoundingClientRect","querySelector","_ColumnWidthDirective","HeightToBottomDirective","_window","__privateAdd","__privateSet","WINDOW","setElementHeight","pageHeight","__privateGet","innerHeight","bottomNav","bottomNavOffsetHeight","offsetHeight","elementOffsetTop","mainHeader","mainHeaderHeight","elementTop","ɵɵresolveWindow","_HeightToBottomDirective","InfoTooltipDirective","setElementPosition","parentNode","leftAlign","offsetLeft","setStyle","_InfoTooltipDirective","OutsideInteractionDirective","msOutsideInteraction","excludeSelectors","msOutsideInteractionExclude","ngAfterViewInit","runOutsideAngular","merge","fromEvent","isOwnClick","isOwnEvent","selector","matches","_OutsideInteractionDirective","ScrollIosHackDirective","deviceService","onOrientationChange","changeOverflowScrolling","setTimeoutOutsideAngular","isiOS","orientationSubscription","orientation","DeviceService","_ScrollIosHackDirective","ScrollToDirective","elm","changeScroll","setAnimationFrame","scrollWidth","offsetWidth","scrollLeft","ngAfterContentInit","changes","auditTime","contentQueries","dirIndex","Y","_ScrollToDirective","StopEventPropagationDirective","eventHandlerRemovers","eventHandler","touchStartEventPropagationStopped","eventsList","remover","_StopEventPropagationDirective","ToolbarButtonsHeightDirective","MAX_BUTTONS_CONTAINER_WIDTH","ngOnChanges","currentValue","previousValue","trySetButtonsFixedHeight","buttons","querySelectorAll","toolbarComponent","closest","allButtonsWidth","button","features","ɵɵNgOnChangesFeature","_ToolbarButtonsHeightDirective","DirectivesModule","_DirectivesModule","ShowInEpcotDirective","templateRef","viewContainer","msShowInEpcot","showInEpcot","module","createEmbeddedView","clear","ViewContainerRef","EpcotConfigService","standalone","_ShowInEpcotDirective","TickerInterval","TickerService","timers","second","minute","Function","generateGuid","onTick","Second","runInterval","unsubscribeInternal","secondsInterval","minutesInterval","runIntervalType","Minute","keysForInterval","_TickerService","ScoreboardHostDirective","viewContainerRef","_ScoreboardHostDirective","ScoreboardComponentBase","scoreboardViewModel","vm","MyBetsScoreboardTimerComponent","ticker","timerUtilsService","input","required","setTime","formated","detectChanges","stopSubscription","tickerSubscription","_MyBetsScoreboardTimerComponent","Gt","ɵɵelementContainerStart","ɵɵelementContainer","MyBetsScoreboardTimeComponent_Case_1_Conditional_0_Template","MyBetsScoreboardTimeComponent_Case_1_ng_container_4_Template","MyBetsScoreboardTimeComponent_Case_1_ng_container_5_Template","ɵɵpipeBind2","liveText","$t","ɵɵtextInterpolate3","sitecoreEventDetails","eventDetails","ɵɵpropertyInterpolate1","MyBetsScoreboardTimeComponent_Case_2_Conditional_2_Conditional_1_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_2_Conditional_3_Template","Qt","Yt","MyBetsScoreboardTimeComponent_Case_2_Conditional_0_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_1_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_2_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_3_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_4_Template","MyBetsScoreboardTimeComponent_Case_2_Conditional_5_Template","hideLiveBadge","showPeriodInfo","showTimer","MyBetsScoreboardTimeComponent","SitecoreEventDetailsConfig","EpcotModule","MyBetsBetSlip","showEventDate","BasketballPeriodInfo","AmericanFootballPeriodInfo","IceHockeyPeriodInfo","Boxing","Cricket","DartsMatchType","LegOnly","DartsLegsPeriodInfo","Finished","BestOf","SetsAndLegs","DartsSetsAndLegsPeriodInfo","getBestOf","MyBetsScoreboardTimeComponent_Case_1_Template","MyBetsScoreboardTimeComponent_Case_2_Template","tmp_0_0","ot","se","mt","$e","_MyBetsScoreboardTimeComponent","zt","ɵɵtextInterpolate2","$index_r2","player_r1","MyBetsLeaderboardGameScoreboardComponent","MyBetsLeaderboardGameScoreboardComponent_For_8_Template","_MyBetsLeaderboardGameScoreboardComponent","AwayIndicator","MyBetsScoreboardPlayersPairComponent","ngContentSelectors","MyBetsScoreboardPlayersPairComponent_Conditional_5_Template","MyBetsScoreboardPlayersPairComponent_Conditional_10_Template","Ze","_MyBetsScoreboardPlayersPairComponent","Xt","Zt","ei","MyBetsPairGameScoreboardComponent","MyBetsPairGameScoreboardComponent_Conditional_2_Template","_MyBetsPairGameScoreboardComponent","MyBetsPairGameNoScoreboardComponent","T","_MyBetsPairGameNoScoreboardComponent","round_r1","round_r2","point_r3","MyBetsPenaltyShootoutScoreboardStatsComponent","MyBetsPenaltyShootoutScoreboardStatsComponent_For_3_Template","ɵɵrepeaterTrackByIndex","MyBetsPenaltyShootoutScoreboardStatsComponent_For_6_Template","MyBetsPenaltyShootoutScoreboardStatsComponent_For_9_Template","_MyBetsPenaltyShootoutScoreboardStatsComponent","MyBetsPenaltyShootoutScoreboardComponent","ct","_MyBetsPenaltyShootoutScoreboardComponent","ri","ai","mi","StatsValueComponent","animationBuilder","animationFactory","animationTimer","build","query","keyframes","opacity","transform","doAnimation","window","valueElement","display","newValueElement","oldValueElement","textContent","statsElement","play","isFirstChange","clearTimeout","AnimationBuilder","viewQuery","_StatsValueComponent","stat_r1","fi","MyBetsPairScoreboardStatsComponent_Conditional_0_For_3_Conditional_1_Template","bi","_c4","ctx_r2","Ci","_r2","onExpandCollapse","MyBetsPairScoreboardStatsComponent_Conditional_0_Conditional_4_span_1_Template","MyBetsPairScoreboardStatsComponent_Conditional_0_Conditional_4_span_2_Template","_c3","MyBetsPairScoreboardStatsComponent_Conditional_0_For_3_Template","MyBetsPairScoreboardStatsComponent_Conditional_0_Conditional_4_Template","ɵɵpureFunction2","isExpandable","MyBetsPairScoreboardStatsComponent","isExpandedChanged","output","preventDefault","EVENT_PAGE_VIEW","MyBetsPairScoreboardStatsComponent_Conditional_0_Template","oe","lt","_MyBetsPairScoreboardStatsComponent","MyBetsScoreboardPairComponent","me","_MyBetsScoreboardPairComponent","tmp_4_0","tmp_5_0","tmp_6_0","$index_r4","stat_r3","MyBetsSetScoreboardStatsComponent_For_4_Conditional_1_Template","MyBetsSetScoreboardStatsComponent","getClass","MyBetsSetScoreboardStatsComponent_Conditional_2_Template","MyBetsSetScoreboardStatsComponent_For_4_Template","tmp_1_0","_MyBetsSetScoreboardStatsComponent","MyBetsScoreboardSetComponent","ce","_MyBetsScoreboardSetComponent","Ii","MyBetsSnookerScoreboardStatsComponent_Conditional_0_Conditional_2_Template","MyBetsSnookerScoreboardStatsComponent_Conditional_0_Conditional_4_Template","Ti","MyBetsSnookerScoreboardStatsComponent","MyBetsSnookerScoreboardStatsComponent_Conditional_0_Template","MyBetsSnookerScoreboardStatsComponent_Conditional_1_Template","MyBetsSnookerScoreboardStatsComponent_Conditional_2_Template","tmp_2_0","_MyBetsSnookerScoreboardStatsComponent","MyBetsSnookerScoreboardComponent","ft","_MyBetsSnookerScoreboardComponent","MyBetsTournamentGameScoreboardComponent","siteCore","_MyBetsTournamentGameScoreboardComponent","stat_r2","$index_r3","getSum","teamType","Team01","Team02","ExtraInnings","MyBetsBaseballScoreboardComponent_Conditional_1_Conditional_4_Template","MyBetsBaseballScoreboardComponent_Conditional_1_For_6_Template","MyBetsBaseballScoreboardComponent_Conditional_1_Conditional_8_Template","ɵɵpipeBind3","defaultInnings","Runs","MyBetsBaseballScoreboardComponent","playerSum","TeamType","extraInnings","getExtraInnings","getPlayerSum","inning","sumBy","MyBetsBaseballScoreboardComponent_Conditional_1_Template","je","_MyBetsBaseballScoreboardComponent","Li","Sets","Ai","Legs","MyBetsDartsStatsScoreboardComponent","MyBetsDartsStatsScoreboardComponent_Conditional_1_Template","MyBetsDartsStatsScoreboardComponent_Conditional_2_Template","MyBetsDartsStatsScoreboardComponent_Conditional_3_Template","_MyBetsDartsStatsScoreboardComponent","MyBetsScoreboardDartsComponent","gt","_MyBetsScoreboardDartsComponent","MyBetsPairgameFullScoreboardStatsComponent_Conditional_0_For_5_Conditional_1_Template","MyBetsPairgameFullScoreboardStatsComponent_Conditional_0_Conditional_3_Template","MyBetsPairgameFullScoreboardStatsComponent_Conditional_0_For_5_Template","MyBetsPairgameFullScoreboardStatsComponent","MyBetsPairgameFullScoreboardStatsComponent_Conditional_0_Template","_MyBetsPairgameFullScoreboardStatsComponent","MyBetsScoreboardPeriodGameComponent","xt","_MyBetsScoreboardPeriodGameComponent","MyBetsScoreboardSoccerRedCardComponent","cardsCount","cards","apply","MyBetsScoreboardSoccerRedCardComponent_For_2_Template","_MyBetsScoreboardSoccerRedCardComponent","MyBetsScoreboardSoccerGoalComponent","sequence","right","params","zi","_MyBetsScoreboardSoccerGoalComponent","MyBetsScoreboardSoccerComponent","MyBetsScoreboardSoccerComponent_Conditional_2_Template","MyBetsScoreboardSoccerComponent_Conditional_4_Template","Bt","Et","_MyBetsScoreboardSoccerComponent","MyBetsScoreboardTennisComponent","_MyBetsScoreboardTennisComponent","MyBetsScoreboardResolveService","getComponent","PairGame","_MyBetsScoreboardResolveService","MyBetsScoreboardModule","xe","imports","AutomationModule","_MyBetsScoreboardModule","require_helpers","__commonJSMin","exports","__extends","extendStatics","__","_hasOwnProperty","hasOwnProperty","obj","_objectKeys","_deepClone","isInteger","str","len","charCode","escapePathComponent","unescapePathComponent","_getPathRecursive","root","found","getPath","hasUndefined","objKeys","objKeysLength","patchErrorMessageFormatter","args","messageParts","PatchError","_super","operation","tree","_newTarget","_this","require_fast_deep_equal","keyList","hasProp","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","require_core","areEquals","helpers_1","objOps","removed","getValueByPointer","originalValue","applyOperation","valueToCopy","arrOps","arr","removedList","pointer","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","validator","returnValue","existingPathFragment","validateFunction","applyPatch","patch","results","length_1","applyReducer","operationResult","pathLen","existingPathLen","existingValue","validate","externalValidator","require_duplex","__assign","core_1","core_2","helpers_2","beforeDict","Mirror","ObserverInfo","callback","observer","getMirror","getObserverFromMirror","mirror","removeObserverFromMirror","unobserve","observe","patches","observerInfo","dirtyCheck","generate","fastCheck","invertible","_generate","temp","newKeys","oldKeys","deleted","oldVal","newVal","compare","tree1","tree2","core","helpers_3","import_fast_json_patch","ie","ScoreboardSubscriptionService","BaseSubscriptionService","scoreboardFactory","connection","getContextSubscriptions","ScoreboardSubscription","offerContext","getHandlers","handlers","Map","evt","cmd","updateScoreboard","command","fixtureScoreboard","operations","createScoreboard","ScoreboardFactory","CdsPushService","ConnectionConfig","_ScoreboardSubscriptionService","SitemapRoutingToken","MyBetsEarlyPayoutTacDialogComponent","domSanitizer","activationInformation","bypassSecurityTrustHtml","earlyPayoutV2","ActivationInformation","acceptTac","DomSanitizer","Title","ActivationCondition1","ActivationCondition2","ActivationCondition3","ActivationButton","_MyBetsEarlyPayoutTacDialogComponent","TaxCalculation","UserEvents","ClaimsChanged","M2UserClaimsChanged","UserSettingsChanged","DomainEvent","ClientConfigRefreshed","EarlyPayoutAcceptance","AccountMenuVersion","mapEarlyPayoutAcceptance","earlyPayoutAcceptanceMode","Any","Higher","isTurnoverTaxApplied","stakeTaxRate","taxCalculation","TurnoverTax","TrustPipe","sanitizer","bypassSecurityTrustUrl","bypassSecurityTrustStyle","bypassSecurityTrustResourceUrl","pure","_TrustPipe","SyncUserSettingsService","userSettings","SportsUserSettings","bettingSettings","configSettings","earlyPayoutAcceptance","defaultStake","_SyncUserSettingsService","ReBetMyBetsTabs","HELP_BOX_TYPE","BestOddsGuarantee","AutoCashout","PaidOutAutoCashout","LineSwitcher","ArchivedBets","ShareMyBet","TransactionBets","TeaserBet","ReBet","ReBetForOpenTab","CashOutInfo","HelpBoxService","racingConfig","epConfig","mybetsConfig","betslipConfig","shareMyBetConfig","teaserBetConfig","rebetConfig","earlyPayoutConfig","getHelpBoxData","getBOGHelpBoxData","getCashOutInfoData","getAutoCashoutHelpBoxData","getLineSwitcherHelpData","getArchivedBetsHelpData","getShareMyBetHelpData","getTransactionBetsHelpData","getTeaserBetHelpData","getReBetHelpBoxData","getReBetOpenTabHelpBoxData","getHelpBoxBadgeData","horseRacing","badges","BOG","SetAutocashoutHelpBoxBadgeText","PaidOutAutoCashoutBadgeText","betslip","lineSwitcherHelpBox","Badge","archivedBetsHelpBox","NewBadgeText","transactionBetsHelpBox","teaserBet","helpBox","reBet","BadgeForSettledTab","BadgeForOpenTab","isHelpBoxEnabled","isBOGEnabled","showCashOutInfo","isAutoCashOutEnabled","isAutoCashOutHelpEnabled","isEarlyPayoutAllowed","earlyPayoutDeactivated","isLineSwitcherEnabled","isArchivedBetsEnabled","isTransactionBetsEnabled","HeaderLine","Text","helpBoxEnabledTabs","includes","Settled","toUpperCase","enabledTabs","Open","headerTitle","HeaderLineForSettledTab","infoIconLink","InfoIconLinkForSettledTab","explanationText","TextForSettledTab","HeaderLineForOpenTab","InfoIconLinkForOpenTab","TextForOpenTab","InfoIconLink","myBets","cashoutInfoHelpBox","SetAutocashoutHelpBoxHeaderLine","SetAutocashoutHelpBoxInfoIconLink","SetAutocashoutHelpBoxText","interpolateSingleBracesString","archivedMyBetsUrl","sessionKey","ssoToken","shareMyBet","transactionMyBetsUrl","stadiumMyBetsTransactionsUrl","RacingConfig","EarlyPayoutConfig","MyBetsConfig","BetslipConfig","ShareMyBetConfig","TeaserBetConfig","ReBetConfig","_HelpBoxService","badgeText","HelpBoxBadgeComponent","boxType","isShown","hbService","HelpBoxBadgeComponent_Conditional_0_Template","_HelpBoxBadgeComponent","BestOddsGuaranteedService","getEligibleFixturesCount","isFixtureEligible","eligible","_BestOddsGuaranteedService","RaceViewBestOddsBadgeComponent","bestOddsService","fixture$","toObservable","showBadge","toSignal","requireSync","RaceViewBestOddsBadgeComponent_Conditional_0_Template","_RaceViewBestOddsBadgeComponent","fe","ke","HelpBoxComponent_ng_container_1_ng_container_1_Template","headerBadge_r1","Le","onInfoIconClick","helpBoxData","Me","HelpBoxComponent_ng_container_6_ng_container_1_Template","Ae","onCloseButtonClick","Close","_r5","HelpBoxComponent","disableInfoIcon","closeButtonClick","infoIconClick","initHelpBox","HelpBoxComponent_ng_container_1_Template","HelpBoxComponent_Conditional_5_Template","HelpBoxComponent_ng_container_6_Template","HelpBoxComponent_div_7_Template","HelpBoxComponent_div_8_Template","HelpBoxComponent_ng_template_12_Template","ɵɵtemplateRefExtractor","ɵɵpureFunction0","NgTemplateOutlet","_HelpBoxComponent","StakeInputMode","StakeInputModeStrategy","FieldStakeInputModeStrategy","inputMode","Field","_FieldStakeInputModeStrategy","TypingStakeInputModeStrategy","Typing","_TypingStakeInputModeStrategy","DynamicInputModeStrategy","mediaService","subject$","ReplaySubject","distinctUntilChanged","MediaQueryService","_DynamicInputModeStrategy","charsets","el","bg","decimals","separators","CharsetSizeService","averageDecimalWidth","averageSeparatorWidth","DEFAULT_SIZE","getAverageSize","averageWidth","getAverageSizeCurrentCharset","getAverageDecimalSize","fontSize","getAverageDecimalSizeCurrentCharset","getAverageSeparatorSize","getAverageSeparatorSizeCurrentCharset","getSampleCharsetWidth","warning","charset","getCharsetForLang","span","styleDec","getComputedStyle","body","createElement","innerText","fontFamily","appendChild","removeChild","mapCharset","_CharsetSizeService","BettingSettingsService","sportsUserSettings","bettingSettings$","loadSportsUserSettings$","configSettings$","allSettings$","combineLatest","isTurnoverTaxApplied$","earlyPayoutAcceptance$","whenReady","_BettingSettingsService","UiManagerActions","_UiManagerActions","SET_STATE","ADD_STATE","REMOVE_STATE","REMOVE_MULTI_STATES","TOGGLE_STATE","POPULATE_FROM_STORAGE","STATE_CHANGED","setState","addState","removeState","removeMultiStates","toggleState","populateFromStorage","stateChanged","UiStates","uiStatesThatShouldBeRestored_NotAuthenticated","Home","QuickBet","OverAsk","uiStatesThatShouldBeRestored_Authenticated","ScrollDirection","SmoothScroll","zone","requestAnimationFrameFn","requestAnimationFrame","fallbackFn","scrollLeftTo","forceDuration","smoothScrollTo","Left","scrollTopTo","Top","direction","scrollToOptions","behavior","doStepScrolling","scrollElement","roundedTarget","round","roundedDuration","scrollDirection","endTime","startPos","previousPos","distance","runRafOutsideZone","scrollFrame","firstRun","point","smoothStep","frameTop","currentPreviousPos","start","end","_SmoothScroll","DynamicFontResizerComponent","changeDetectorRef","parentResized$","resizeObserver","ResizeObserver","entries","handleResize","debounceTime","changeFontSize","defaultSize","disconnect","complete","nativeTextContent","resizerContainer","parentElement","initialFontSize","initialWidth","parentWidth","currentFontSize","textLength","newFontSize","calculateFontSizeFromBounds","defaultFontSize","targetFontSize","calculateRelationalFontSize","isFinite","targetTextWidth","initialTextWidth","initialSpacePerChar","targetSpacePerChar","contentRect","ɵɵstyleProp","St","_DynamicFontResizerComponent","IncrementalStakesService","stakeConfig","bettingSettingsService","getValues$","keypadIncrementalStakes","getDefaultValues","currency","addToStakeValues","StakeConfig","_IncrementalStakesService","NUMPAD_VALIDATION_PARAMETERS_TOKEN","validationParamsFactory","NumpadUtilsService","locale","validationParameters","zeroRegex","splitRegex","localeSeparator","getLocaleNumberSymbol","NumberSymbol","CurrencyDecimal","validateRegex","maxLeadingDigits","maxTrailingDigits","isValidInput","isSeparator","test","normalizeInput","substr","hasSeparator","addLocaleSeparator","toFormattedValue","alwaysAddDecimals","isValidNumberString","addDecimals","addThousandsSeparators","toFixed","isEmptyOrWhiteSpaceString","LOCALE_ID","MoneyService","_NumpadUtilsService","defaultNumpadState","isOpened","stake","formatted","currencyFormatted","numpadInput","position","NumpadSource","NumpadOperation","NumpadAction","Tracking","NumpadDisplayService","_open","_close","_isOpen","_openedNumpad","open$","close$","isOpen","tryClose","_NumpadDisplayService","NumpadTrackingService","getBaseTrackData","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_EVENT_DETAILS","NotApplicable","COMPONENT_URL_CLICKED","trackOpening","location","COMPONENT_LOCATION_EVENT","COMPONENT_ACTION_EVENT","Opening","trackConfirmation","Confirmation","trackDeleteButton","Delete","trackIncrement","trackingData","COMPONENT_CONTENT_POSITION","NOT_APPLICABLE","getStakeSelectedData","__spreadProps","mapAction","IncrementalStakeUsed","KeypadTyped","KeypadUsed","additionalTrackData","fullTrackData","EVENT_TRACKING","_NumpadTrackingService","StakeUpdateService","utils","increment","Decimal","append","character","allCharactersSelected","_StakeUpdateService","NumpadService","numpadDisplayService","updateService","numpadTrackingService","currencypipe","serviceDestroyed$","stakeValues","state$","stake$","currentState","registerSelectionProvider","selectionProvider","isDynamicNumpad","confirmed","openNumpad","shouldSkipUpdate","updateStake","skipNumberCheck","toStakeModel","updateState","initialize","keypadOptions","focusOnLoad","shouldUpdateStake","appendCharacter","getSelection","Append","selectionStart","emitNewStake","Increment","removeLastCharacter","MarketSubTypeTooltipShown","onOtherNumpadOpen","otherNumpadWasOpened","closeNumpad","numpadService","isZero","preFormatted","newState","mapToAction","trackingSource","numpadSource","CurrencyPipe","_NumpadService","stake_r2","addToStake","IncrementalStakesComponent","incrementalStakesService","stakeValues$","mapValue","initialValue","stakeToAdd","String","IncrementalStakesComponent_For_2_Template","_IncrementalStakesComponent","onClick","NumpadErrorComponent","clickable","isDefined","trustPipe","trustAsHtml","NumpadErrorComponent_div_0_Template","ae","_NumpadErrorComponent","NumpadScrollService","closingNumpadRef","getClosingNumpadRect","_NumpadScrollService","NumpadComponent","NumpadComponent_ms_incremental_stakes_1_Template","showIncrementalStakes","_NumpadComponent","gi","NumpadAnimationConfig","_NumpadAnimationConfig","maxHeight","NumpadHostComponent","displayService","scrollService","removeAfterTransition","closeOrOpen","cleanHost","onTransitionEnd","host","createNumpad","createComponent","createCustomInjector","providers","provide","useValue","Si","NumpadHostComponent_ms_numpad_error_1_Template","NumpadHostComponent_ng_template_2_Template","Wt","_NumpadHostComponent","vi","ok","numpad","Ok","NumpadKeysComponent","separator","NumpadKeysComponent_Conditional_25_Template","showConfirm","J","Lt","_NumpadKeysComponent","NumpadScrollDirective","numpadHostComponent","numpadScrollService","scrollContainerService","smoothScrollService","scrollEnabled","currentNumpadRect","closingNumpadRect","scrollContainerRect","pickRect","scrollIntoView","initRects","shouldScrollDown","scrollDown","shouldScrollUp","scrollUp","pickElement","deltaDown","scrollTo","deltaY","deltaUp","delta","closingNumpadHeight","openingNumpadHeight","windowOverflow","bottom","top","isClosingNumpadAbove","ne","_NumpadScrollDirective","NumpadActions","_NumpadActions","ACTION_SCHEMA","NUMPAD_FOCUS","numpadFocus","NumpadInputConnector","currencyConfig","stateChangeSub","stateChange","deInit","cleanTimeout","focused","selectionEnd","clearFocus","focus","showStakeCurrency","focusInput","setSelectionRange","CurrencyConfig","_NumpadInputConnector","ti","adornmentStart","onFocus","onBlur","i0","ɵɵstyleMap","getStake","state_r4","ɵɵpropertyInterpolate","emptyCharacter","StakeFieldComponent_Conditional_0_Conditional_2_Template","StakeFieldComponent_Conditional_0_Conditional_4_Template","StakeFieldComponent_Conditional_0_Conditional_5_Template","useStakeFieldCursor","StakeFieldComponent","numpadInputConnector","inputElement","toggleSelected","setSelected","setDeselected","inputRef","StakeFieldComponent_Conditional_0_Template","ɵɵpipeBind1","Te","_StakeFieldComponent","StakeFontResizerDirective","stakeElement","charsetService","constants","stakeFieldSelector","stakeInputSelector","stakeLeftPadding","withError","withOutError","minimumFontSize","minimumPaddingSize","resizedFontReducer","resizedPaddingReducer","delay","valuesLoaded","loadValues","reduceSize","hasOverflow","ratio","spaceAvailable","spaceNeeded","newFont","min","defaultFont","newPadding","defaultRightPadding","isInput","resizerOptions","childElement","containerWidth","parseFloat","paddingRight","paddingSize","setAttribute","decimalCount","separatorCount","leftPadding","hasError","_StakeFontResizerDirective","StakeInputBehavior","StakeInputComponent","stakeElm","numpadConnector","TypingAndNumpad","OnlyTyping","onPaste","text","clipboardData","getData","onKeyUp","StakeInputComponent_Conditional_2_Template","_StakeInputComponent","StakeWrapperComponent","ɵɵProvidersFeature","ut","_StakeWrapperComponent","stakeInputBehavior","StakeComponent_Conditional_0_Conditional_0_Case_3_Template","StakeComponent_Conditional_0_Conditional_0_Case_4_Template","getStakeContainerClass$","inputMode_r2","errors","stakeNumpadMode","StakeComponent_Conditional_0_Conditional_0_Template","modeStrategy","StakeComponent","stakeChanged","numpadOpen","stakeConfirm","hasErrors","numpadInitialized$","first","stakes","keypadId","originalEmptyCharacter","Stake","focusPlaceholder","handleStakeChange","openKeypad","isLinearKeypadEnabled","stakeChange","firstChange","StakeComponent_Conditional_0_Template","_StakeComponent","ValidateStakeInputDirective","stakepaste","onKeypress","pastedText","isNumber","_ValidateStakeInputDirective","NumpadModule","_NumpadModule","AsyncPipe","EarlyPayoutStates","EarlyPayoutConst","EarlyPayoutErrors","EarlyPayoutOptionErrors","EarlyPayoutPickState","EarlyPayoutErrorTypes","UserSettingsService","dispatcher","clientConfig","NOT_AUTHENTICATED","apiResult","from","reload","OddsFormatSettings","setOddsFormat","oddsFormatLimitReached","_UserSettingsService","DispatcherService","ClientConfigService","roundUpward","pow","roundedNumber","toCent","DEFAULT_EFFECT_CONFIG","CREATE_EFFECT_METADATA_KEY","createEffect","effect","getCreateEffectMetadata","instance","propertyName","metaData","getSourceMetadata","getSourceForInstance","isClassInstance","isClass","classOrRecord","getClasses","classesAndRecords","isToken","tokenOrRecord","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","sourceName","observables$","useEffectsErrorHandler","observable$","effectAction$","ignoreElements","materialize","notification","MAX_NUMBER_OF_RETRY_ATTEMPTS","defaultEffectsErrorHandler","errorHandler","retryAttemptLeft","Actions","_Actions","Observable","operator","observable","ScannedActionsSubject","ofType","allowedTypes","typeOrActionCreator","_ROOT_EFFECTS_GUARD","USER_PROVIDED_EFFECTS","_ROOT_EFFECTS","_ROOT_EFFECTS_INSTANCES","_FEATURE_EFFECTS","_FEATURE_EFFECTS_INSTANCE_GROUPS","EFFECTS_ERROR_HANDLER","ROOT_EFFECTS_INIT","rootEffectsInit","reportInvalidActions","reporter","isAction","getEffectName","stringify","isMethod","onIdentifyEffectsKey","isOnIdentifyEffects","isFunction","onRunEffectsKey","isOnRunEffects","onInitEffects","isOnInitEffects","functionName","EffectSources","_EffectSources","effectSourceInstance","groupBy","effectsInstance","mergeMap","source$","effect$","exhaustMap","resolveEffectSource","dematerialize","init$","take","ErrorHandler","mergedEffects$","EffectsRunner","_EffectsRunner","effectSources","EffectsRootModule","_EffectsRootModule","sources","runner","rootEffectsInstances","storeRootModule","storeFeatureModule","guard","StoreRootModule","StoreFeatureModule","ɵɵdefineNgModule","ɵɵdefineInjector","EffectsFeatureModule","_EffectsFeatureModule","effectsRootModule","effectsInstanceGroups","effectsInstances","EffectsModule","_EffectsModule","featureEffects","effects","effectsClasses","createEffectsInstances","rootEffects","_provideForRootGuard","effectsGroups","userProvidedEffectsGroups","effectsGroup","userProvidedEffectsGroup","effectsTokenOrRecord","UserOddsFormatSettingsService","oddsFormatSettings","oddsFormat","generalOddsFormat","_UserOddsFormatSettingsService","NativePriceCalculatorService","price","otherPrice","resultPrice","numerator","fraction","minus","toNumber","denominator","americanDecimal","NativePrice","americanOddsToDecimalOdds","americanOdds","otherAmericanDecimal","roundDecimalToAmerican","odds","fromNativePriceElement","multiplyDecimal","multiplier","toDecimalPlaces","ROUND_HALF_UP","multiply","roundPriceValues","decimalMultiplier","getMultiplier","americanOddsCalculated","americanOddsCalculation","getAmericanOddsCalculation","_NativePriceCalculatorService","OddsFormatConverterService","userOddsFormatSettingsService","getOddsByOddsFormat","getCalculatedOddsByFormat","getEmptyBposOdds","european","british","american","getBposOddsFormat","_OddsFormatConverterService","BridgeEvent","PickType","EventBridgeService","nativeApp","notifyBetPlaced","isSuccessful","send","BetPlaced","notifySliderGameOpening","sliderGameId","SliderGameOpened","gameTypeId","notifyBetConfirmation","picks","betType","disableOLTracking","BetConfirmation","mapPicksToBetParameters","notifySuccessfulBetPlacements","betslipData","BetPlacement","totalPickCount","isEachWaySelected","pick","navigationClick","section","ccbKey","MenuIteamNavigation","mappedBets","Sport","sportPick","marketName","marketId","resultName","optionName","resultId","optionId","sportName","getSportNameFromId","Race","_EventBridgeService","StringInterpolationPipe","_StringInterpolationPipe","RemoveHrefDirective","removeHref","removeAttribute","_RemoveHrefDirective","NavigationCoreModule","_NavigationCoreModule","PendingCopy","_document","textarea","styles","successful","currentFocus","Clipboard","_Clipboard","pendingCopy","ClipboardService","clipboard","copy","removeTextArea","textAreaElement","createTextArea","selectTextArea","copied","execCommand","clearSelection","getAttribute","textArea","border","padding","margin","yPosition","scrollY","editable","contentEditable","readOnly","range","createRange","selectNodeContents","selection","removeAllRanges","addRange","blur","_ClipboardService","ShareService","share","SHARE","isAndroid","isNativeWrapper","navigator","_ShareService","BalancePropertiesConfig","LazyClientConfigBase","__ngConditionalFactory__","balancePropertiesConfigFactory","LazyClientConfigService","__decorate","LazyClientConfig","product","ClientConfigProductName","SF","service","BalancePropertiesService","balanceProperties","balancePropertiesEvents","balanceSettingsConfig","balanceInfo","showSpinner","balance","propagateRefresh","transfer","isLow","lowBalanceThreshold","lowThresholds","SharedFeaturesApiService","BalanceSettingsConfig","_BalancePropertiesService","BalancePropertiesBootstrapService","balancePropertiesService","balancePropertiesConfig","localStoreService","balancePropertiesCoreService","onFeatureInit","UserPreHooksLoginEvent","addEventListener","WindowEvent","Focus","Storage","storageArea","localStorage","LocalStoreKey","AuthStorageKey","GETBALANCE","USERBALANCE","amount","accountBalance","currencyCode","UPDATEBALANCE","triggerEvent","UserUpdateEvent","LocalStoreService","BalancePropertiesCoreService","_BalancePropertiesBootstrapService","BalancePropertiesDslValuesProvider","dslRecorderService","intlService","dslCacheService","invalidate","getProviders","recordable","createRecordable","createProperty","getProperty","DSL_NOT_READY","deps","payPalBalance","payPalRestrictedBalance","payPalCashoutableBalance","balanceForGameType","bonusWinningsRestrictedBalance","cashoutRestrictedBalance","cashoutableBalance","cashoutableBalanceReal","availableBalance","depositRestrictedBalance","inPlayAmount","releaseRestrictedBalance","playMoneyBalance","playMoneyInPlayAmount","owedAmount","taxWithheldAmount","pokerWinningsRestrictedBalance","cashoutRestrictedCashBalance","cashoutableBalanceAtOnline","cashoutableBalanceAtRetail","creditCardDepositBalance","creditCardWinningsBalance","debitCardDepositBalance","mainRealBalance","uncollectedFunds","sportsDepositBalance","sportsExclusiveBalance","gamesDepositBalance","sportsWinningsBalance","pokerWinningsBalance","slotsWinningsBalance","sportsRestrictedBalance","pokerRestrictedBalance","slotsRestrictedBalance","allWinningsBalance","maxLimitExceededBalance","prepaidCardDepositBalance","createFunction","formatCurrency","Balance","DslRecorderService","IntlService","DslCacheService","_BalancePropertiesDslValuesProvider","runOnFeatureInit","registerLazyDslOnModuleInit","BalanceType","BonusBalanceService","bonusBalanceEvents","bonusBalanceV4Events","bonusBalance","bonusBalanceV4","refreshBonusBalance","bonusBalanceRefreshInProgress","calculateProductAmounts","flatten","bonuses","startRefreshOnBalanceRefresh","refreshSubscription","bonus","postfix","isBonusActive","applicableProducts","bonusAmount","_BonusBalanceService","BonusBalanceBootstrapService","bonusBalanceService","_BonusBalanceBootstrapService","BonusBalanceDslValuesProvider","refreshed","BonusBalance","getCurrentValue","getIndividualBonus","bonusType","toLocaleLowerCase","_BonusBalanceDslValuesProvider","KycStatusService","kycStatus","kycStatusEvents","refreshSubject","kycStatusOptions","JSON","throttleTime","load","useCase","_KycStatusService","UnauthKycStatus","accountStatus","accountVerificationIsRequired","additionalKycInfo","additionalRibbonInfo","addressVerificationStatus","ageVerificationGraceDays","ageVerificationGracePeriod","ageVerificationStatus","amlVerificationStatus","bankAccountIsRegistered","bankIdVerificationStatus","blackListVerificationStatus","createDate","custom3","custom4","depositGraceDays","depositSuppressed","docsPendingWith","documentUploadStatusIsPending","emailVerificationStatus","f2FVerificationRequired","graceDaysBeforeNextAction","graceDaysUnit","idVerificationGraceDays","idVerificationStatus","idVerificationGracePeriod","isBlackListAttempted","isCommVerified","isEmailVerified","isKycStarted","isMobileNumberVerified","isTransitionPlayer","kycAttempts","kycAuthenticationStatus","kycMaxAttempts","kycMaxAttemptsReached","kycVerified","partiallyVerified","personalIdVerificationStatus","ribbonStatusCode","ribbonStatusMessage","secretPinVerificationStatus","ssnVerificationAttempts","ssnVerificationMaxAttempts","ssnVerificationMaxAttemptsReached","ssnVerificationStatus","thirdPartyVerificationStatus","userHasBonuses","verificationDaysLeft","verificationStatus","verificationType","ArcMessageFrequencyService","lastMsgDisplayDate","isMessageFrequencyAvailable","frequency","loginActionKey","loginActionValue","messageKey","setDate","getDate","DateProviderService","getStartOfDay","_ArcMessageFrequencyService","ArcRestrictionTrackingService","trackSaferGambalingMessage","trackingEvent","ArcRestrictionTrackingConstants","CategoryEvent","LabelEvent","SaferGamblingEventDetails","trackPlayBreakMessage","EVENT_CONTENT_VIEW","TrackingEvent","Load","PlayBreakEventDetails","trackFindOutMoreLink","Click","FindOutMoreLinkPositionEvent","_ArcRestrictionTrackingService","UserActions","_UserActions","INIT_STATE","USER_LOGGED_IN","USER_LOGGED_OUT","UPDATE_STATE","SET_WALLET_LOADED","initState","setWalletLoaded","userLoggedIn","userLoggedOut","ARCPlayBreakHeader","ARCPlayBreakMessage","pe","trackHelpLink","arcBetslipMessages","FindOutMore","ArcMessageComponent_ng_template_2_ng_container_0_ng_container_6_div_4_Template","vt","C","betslipMessage","featureLocation","FeatureLocation","PostBetSlipMessage","toggle","ArcMessageComponent_ng_template_2_ng_container_0_ng_container_6_Template","ArcSaferGamblingHeader","expanded","ArcMessageComponent_ng_template_2_ng_container_0_Template","isMessageFrequency","ArcMessageComponent","arcRestrictionService","arcRestrictionTrackingService","arcConfig","arcMessageFrequencyService","isUserOnPlayBreak$","isBreak","trackMessage","profileData","handleBetSlipMessageAndFrequency","Expand","Collapse","PreBetSlipMessage","profileActionsSwitch","isBetslipMessagingEnabled","getBetSlipMessage","profileId","profileFrequency","profileActions","ProfileActionName","ProfileMessageStorageKeys","preBetMessageStorageKey","actionForMessagedisplayPre","firstLoginActionPrebet","setLocalStorage","postBetMessageStorageKey","actionForMessagedisplayPost","firstLoginActionPostbet","msgKey","isPlayBreak","SourceBetslip","SourceBetslipReceipt","SourceBetslipQuickBet","ArcRestrictionService","ARCConfig","ArcMessageComponent_ng_container_0_Template","ve","ArcMessageComponent_ng_template_2_Template","Ui","betslipMessageContainer_r4","Yi","Ve","Lr","_ArcMessageComponent","ArcModule","_ArcModule","ShareMyBetActions","_ShareMyBetActions","INIT_GENERATE_SHORT_URI","GENERATE_SHORT_URI","OPEN_COPY_LINK_DIALOG","CLOSE_COPY_LINK_DIALOG","DESTROY_STATE","COPY_SHORT_URI","REMOVE_COPIED","RECEIVE_BET","REMOVE_RECEIVED_BET_MESSAGE","initGenerateShortUri","generateShortUri","openCopyLinkDialog","closeCopyLinkDialog","copyShortUri","removeCopied","destroyState","receiveBet","removeReceiveBetMessage","ShareMyBetTracking","ShareMyBetCookie","BetReceiptTrackingLocation","BetslipConstants","OptionParameters","PickUriService","urlService","urlHelperService","isSgp","isTv2Pick","floorNumber","picksParam","uriParams","basePath","productPath","addPage","parse","mapParams","search","Options","Currency","userId","betslipId","Refbet","OfferSource","userCurrency","valueOf","decodedUri","decodeURIComponent","parsedLegs","tv1Legs","tv2Legs","leg","pickGroupId","optionMarketId","isClassicBetBuilder","gameId","useLiveFallback","extractOptionIds","optionGroup","toInteger","option","priceId","getBetslipType","optionIdIndex","fixtureOptionGroup","substring","fixtureParts","reverse","usersCurrency","normalized","capitalize","Combo","System","UrlService","UrlHelperService","_PickUriService","ShareMyBetService","pickUriService","navigationService","cookieProvider","productService","shortenUri","betInfo","uriParam","accountId","picksParams","uri","encodeURIComponent","urlResponse","baseUrl","isSingleDomainApp","pop","showUriExpiredDialog","isOnboardingShown","getCookie","Onboarding","setOnboardingShown","setCookie","isComplianceShown","Compliance","Complience","setComplianceShown","expires","complianceCookieExpiryDays","getComplianceDialog","translations","modalDialogs","shareMyBetInterceptor","contentData","DialogType","firstParagraph","DialogText","ButtonType","Cancel","DialogButtonTextReject","buttonConfig","DialogButtonTextAccept","openMessage","showNotSupportedDialog","notSupported","Warning","DialogButtonText","refbet","doReceiverErrorTracking","ErrorLoaded","linkExpired","DialogTitle","buttonType","ErrorOkButton","doSenderTracking","actionEvent","urlClicked","trackData","BetSharing","ShareBetLink","UserClicksButton","ShareMyBetClick","triggerEventWithCleaning","setRefbet","TrackingRefBet","LinkExpiredError","NavigationService","CookieProvider","ProductService","_ShareMyBetService","shareMyBetFeatureKey","shareMyBetStateSelector","createSelector","receivingState","sharingStateSelector","sharingStates","defaultPlacedBetInfo","pickCount","defaultSharingState","isCopyLinkDialogOpen","isCopied","defaultReceivingState","showImportMessage","defaultShareMyBetState","closeDialog","enableRedesignedBetCard","isToolbarExpanded","CopyTitle","ShareMyBetCopyComponent_Conditional_0_Conditional_0_Conditional_0_Conditional_1_Template","withHeader","CopyMessage","getCopyText","ShareMyBetCopyComponent_Conditional_0_Conditional_0_Conditional_0_Template","ShareMyBetCopyComponent_Conditional_0_Conditional_0_Template","ShareMyBetCopyComponent","shareMyBetService","shareMyBetState$","sharingState","CopyShareLinkClick","Copied","Copy","getElementById","getElementsByClassName","ShareMyBetCopyComponent_Conditional_0_Template","_ShareMyBetCopyComponent","ShareMyBetNativeMessageService","BetSharedSuccessfully","showToasterMessage","ShareSuccess","globalErrorVisibilityTime","_ShareMyBetNativeMessageService","ShareMyBetOnboardingComponent","hideOnboarding","OnboardingText","_ShareMyBetOnboardingComponent","isShareMyBetSavedState","savedState","ShareMyBetStateSaver","_ShareMyBetStateSaver","ShareMyBetStateLoader","_ShareMyBetStateLoader","onToggleClick","ShareMyBetComponent_Conditional_0_Conditional_0_Conditional_2_Conditional_3_Template","hasArrow","shareMyBetState_r2","onShareButtonClick","ShareMyBetComponent_Conditional_0_Conditional_0_Conditional_1_Template","ShareMyBetComponent_Conditional_0_Conditional_0_Conditional_2_Template","ShareMyBetComponent_Conditional_0_Conditional_0_Conditional_3_Template","showOnboarding","shouldShowShareMyBetLabel","isNewBadgeEnabled","ShareMyBetComponent_Conditional_0_Conditional_0_Template","ShareMyBetComponent","isMobile","isEpcot","small","epcotConfig","isOnboardingEnabled","placedBetInfo","shareMyBetState","expandable","ShareMyBetComponent_Conditional_0_Template","_ShareMyBetComponent","ShareMyBetApiActions","_ShareMyBetApiActions","ADD_BETSLIP_ID","HANDLE_SHARE_BET","addBetslipId","handleShareBet","ShareMyBetEffect","actions$","interpolationPipe","clipboardService","shareService","persister","stateLoader","RECEIVED_BET_MESSAGE_VISIBILITY_TIME_MS","COPIED_BUTTON_VISIBILITY_TIME_MS","initGenerateShortUri$","concatMap","generateShortUri$","showBetSharingConfirmationOnlyOnFirstBetShare","share$","getShareText","success","BetShared","receiveBet$","handleShareBet$","RefBet","copyShortUri$","ngrxOnInitEffects","noopAction","translation","shareText","SingleBetShareText","MultiBetShareText","SystemBetShareText","systemType","StoragePersister","_ShareMyBetEffect","shareMyBetReducer","createReducer","aggr","pp","ShareMyBetModule","shareMyBetNativeMessageService","StoreModule","forFeature","_ShareMyBetModule","SGPPlusBadgeComponent","large","Hi","_SGPPlusBadgeComponent","AccaBoostRatioPipe","prefix","boostRatio","replaceBoostPlaceholder","boost","interpolateDoubleBracesString","Vi","_AccaBoostRatioPipe","TokensCalculatorService","accaBoostConfig","getBoostedNativeOdds2","boostFactor","oddsBoostFormula","boostFactorDecimalValue","dividedBy","boostMultiplier","plus","decimal","OddsOperations","toDecimalValue","boostedOdds","fromDecimalValue","getTokenPercentageReturns","maxPayout","riskFreePercentage","minPayout","decimalPercentage","decimalStake","payout","div","getAccaBoostReturns","possibleWinnings","maxBoost","accaBoostCalculation","calculatedBoost","AccaBoostConfig","_TokensCalculatorService","PayoutInfoLocation","PRECISION","TokensSummaryService","moneyService","crmConfig","tokensCalculator","accaBoostRatioPipe","displayPayoutTypes","createDisplayPayoutTypes","getBoostedWinningsSummary","payoutType","winningsBoost","isPayoutInfoEnabled","Summary","RewardTokenType","OddsBoost","winningsBoostFormatted","displayPayoutType","getDisplayPayoutType","crmTokens","oddsBoost","betslipSummary","IncludedBoostedWinnings","getRiskFreeSummary","noOfSlabs","slabAmount","RiskFreeBet","riskFreeReturns","incrementalPayout","getIncrementalDetails","riskFree","IncrementalPayoutFreebet","payoutSummaryTemplate","RiskFreeIncrementalPayoutSummary","RiskFreePayoutSummary","getBetAndGetSummary","token","BetAndGet","displayPayoutTemplate","betAndGet","BetAndGetPayoutSummary","displayPayoutValue","payoutValue","displayMaxPayoutValue","percentagePayout","BetAndGetPercentagePayoutSummary","maximumPayout","displayRewardTriggerType","rewardTriggerType","RewardTriggerType","BetPlacementTemplate","BetSettlementTemplate","PayoutType","Bonus","BonusPayoutTemplate","Cash","CashPayoutTemplate","FreeBet","FreebetPayoutTemplate","OddsBoostToken","OddsBoostPayoutTemplate","RiskFreeToken","RiskFreePayoutTemplate","maxAmount","triggerType","tokenType","payoutInfo","tokens","summaryPayoutInfo","drawerPayoutInfo","freeBet","cash","BonusNoWager","oddsBoostToken","riskFreeToken","getAccaBoostSummary","getAccaBoostRatio","getAccaBoostSummaryByRatio","accaBoost","BetslipBoostingInfo","PayoutTypeFreebet","PayoutTypeBonus","PayoutTypeCash","actualPayout","CrmConfig","_TokensSummaryService","CustomerOfferService","customerOfferConfig","isNewCustomerOffer","competitionId","NewCustomerBettingOfferConfig","_CustomerOfferService","AccountBalanceLoggerService","internalFeatureConfig","isPlacing","freezeLogWhilePlacement","enableLogs","reset","setBalanceInfo","lastBalanceProperty","time","getCurrentFormattedDate","setBalanceInfoPostSuccessfulBetPlacement","balancePropertiesPostLastPlacement","lastValidatedBalance","setLastValidatedBalance","buildBalanceAndTimeObject","setLastWalletBalance","lastWalletBalanceAmount","log","requestId","isBalanceLoggingEnabled","getStringifiedLogObject","toISOString","InternalFeaturesConfig","_AccountBalanceLoggerService","WalletType","WalletPersistenceType","WalletStoreService","sessionStoreService","walletTypeKey","walletSelectorShownKey","setSelectedWallet","walletType","persistPermanently","isPermanentWallet","selectedWallet","walletSelectorIsShown","SessionStoreService","_WalletStoreService","CustomTimeoutError","AccountBalanceService","balanceService","walletStoreService","kycStatusService","globalBalanceLogger","accountBalanceConfig","balanceProperties$","_availableWallets","_selectedWalletType$","isWalletSet","isAllowedCountry","userCountry","payPalWalletSelectionEnabledForCountries","countryCode","startWith","onUserLogInWithSettings$","selectedWalletType$","buildAvailableWalletsForBonus","setNewKycStatus","buildAvailableWallets","selectedWallet$","wallets","wallet","refresh$","expectBalanceChange","balanceBeforeRefresh","oldBalance","currentBalanceObservable","skip","each","with","retry","retryDelay","setWallets","availableWallets","currentBalanceAmount","currentBalanceProperties","currentBonusBalanceObservable","selectWallet","persistanceType","Permanent","getDefaultWallet","userWalletType","mainBalance","calculateMainBalance","calculatePaypalBalance","PayPal","Main","paypalWalletUseNewFormula","calcualateMainWithNewFormula","calculateMainWithOldFormula","walletLoaded","country","PayPalBalance","shortTitle","paypalWalletIconClass","MainBalance","selectedWalletAmount","AccountBalanceConfig","_AccountBalanceService","EarlyPayoutTACSource","loadTacDialog","EarlyPayoutTacService","modalDialog","loadingIndicator","userSettingsService","tracker","hasUserAcceptedTAC","acceptEarlyPayoutTaC","showDialogHeader","tryUpdateUserSettings","trackingContext","EditBet","EventView","MyBets","forLiveBet","done","LoadingIndicatorService","_EarlyPayoutTacService","EarlyPayoutDispatcherEvent","CashOut","Updated","PushToLower","EarlyPayoutSuccess","EarlyPayoutFailed","CashOutAlreadyExecuted","MyBetsRaceBetType","myBetsFilteredErrorResponse","betslips","summary","openEvents","openBetsCount","liveBetsCount","betNumbers","isMigrationSummary","typeFilter","errorLoadingBets","myBetsSingleErrorResponse","myBetsListSlimErrorResponse","EarlyPayout","MigrationTabType","SgpType","EditBetHistoryInformation","editBetsHistory","betSlipNumber","betNumber","editDate","editOrder","MyBetsBetV2ViewModel","fixtureCompoundId","compoundId","MyBetsParticipantData","MyBetsResultData","HbsFixtureType","MyBetsOptionMarketData","MyBetsBetBuilderData","BetBuilderLegState","MyBetsListContext","ResettlementEffectOnCustomer","BetStateCssClass","AdditionalInformation","getNativeBoostedOdds","additionalInformations","mapIterable","informationItems","additionalInfoMap","euValue","usValue","createFromAdditionalInfoResponse","additionalInformation","boostedNativeOdds","boostedWinnings","boostedWinningsCurrencyCode","winningsBoostCurrencyCode","riskFreeMaxCompensation","tokenNotRewarded","positiveResettlementEffectOnCustomer","Positive","negativeResettlementEffectOnCustomer","Negative","accaBoostDeviationReason","fixedPriceWinnings","bestOddsBonus","possibleLiability","liability","possibleTotalTax","totalTax","TokenType","UsedRewardToken","createFromResponse","promoToken","parsedValue","MyBetsBet","getPlaceTermsText","terms","places","numberOfFirstPlaces","createFromBetResponse","bet","eventDate","outcome","isBanker","cancellationReason","betIndex","market","participantBetDetails","participantInfo","createFromParticipantBetDetails","betTypeName","optionBetDetails","isBetBuilder","betBuilderData","betBuilderInfo","createFromBetBuilderDetails","betBuilderType","optionMarketInfo","createFromOptionBetDetails","optionNames","isStartingPrice","isPriceBoost","priceBoostOriginalOdds","priceBoostData","originalOdds","placeTerm","resultInfo","createFromRegularOption","competition","createFromOgpBetGroupResponse","betGroup","resolveLegName","betState","betGroupState","ogpRepricingInfo","ogpBetGroupDetails","repricingInfo","mapParticipants","placeDeadHeatDivisor","deadheatDivisor","deadHeatDivisor","placeRule4Deduction","ruleFourDeduction","rule4Deduction","xCastSettlementDeviated","betTypeId","EachWay","bestOddsGuaranteedState","curr","fixtureParticipantId","positionInBet","participantPick","participantName","getFixtureType","fixtureType","Antepost","DayOfRace","Standard","Tournament","Unknown","fixtureName","virtualSport","isVirtual","tv1BetBuilderInfo","convertBetBuilderBetState","needToShowEventView","MyBetsBetslipBase","isSingleBet","createFromBetslipResponse","tokensConfig","slipType","betslipRealId","editBetInformation","betSlipRealNumber","betPlacedDate","conclusionDateUtc","dateKey","calculateDateKey","totalOdds","isFreeBet","isCachedOut","isEarlyPayout","isBasicModel","emptyMoney","getCalculatedPossibleWinnings","payoutAmount","getCalculatedPayoutAmount","grossPossibleWinnings","grossPayoutAmount","grossPayout","betProtectorInformation","emptyBetProtector","isRefunded","taxInformation","getTaxInformation","externalTicketId","licenseId","typeAsName","typeTranslated","createFromApiResponse","enhanceBetsWithEventData","bestOddsGuaranteeInformation","bestOddsGuaranteedInformation","emptyBestOddsGuaranteed","isEditBet","checkIsEditBet","editBetHistory","earlyPayoutInformation","isRecoveringAfterEditBet","editBetProgressInformation","isRecovering","usedRewardTokens","getUsedReward","placeBetSignPosting","postBetSignPosting","partition","signPostings","signPost","signPostingRewards","getSignPostingRewards","getPlaceBetSignPosting","systemBetDetails","edsPromoTokens","isPendingPayout","isDelayedForEarlyPayout","isTeaserBet","teaserPoints","resolveTeaserBetInfo","teasedAmount","sgpType","getSgpType","isOGPRepricePending","betGroups","isPending","totalOGPRepricedOdds","FreeBetToken","isEdsPromoTokenBetAndGet","BetAndGetToken","promoTokens","usedRewardToken","betslipBets","betslipBetOGPGroups","betGroupType","betsByGroupMap","standAloneBets","isStandAloneBet","groupBets","ogpBetGroups","mappedStandAloneBets","sortBy","mappedBet","teaserBetGroup","teaserBetGroupDetails","sgpGroups","Sgp","SgpPlus","isoDate","datePart","taxes","emptyTaxInformation","fee","emptyAdditionalInformation","useFreebetStakeInCalculations","MyBetsSlipEditBetHistoryViewModel","createEditBetFromBetslipResponse","editBetTitle","betBuilderBetState","Cancelled","Lost","Won","exhaustiveCheckGuard","parsedSignPostDetails","rewardTime","flatMap","rewards","reward","offerId","offerType","maxCap","parsedData","placeBetSignPost","EarlyPayoutResultedPickState","EarlyPayoutBetslipType","EditBetStatus","CashoutSettingsType","AutoCashoutState","EarlyPayoutHelpers","betNotAllowedReasons","Set","isEarlyPayoutDisabled","earlyPayout","Done","PaidOut","PermanentlyDisabled","Completed","isEarlyPayoutPermanentlyDisabled","ep","earlyPayoutPossible","getEarlyPayoutErrorTypeLowerCase","earlyPayoutError","reason","BetNotAllowedForCashout","mapDisabledEarlyPayouts","Disabled","mapPermanentlyDisabledEarlyPayouts","earlyPayouts","potentialEPbetslips","mapHiddenEarlyPayouts","hideEP","mapEarlyPayoutsWithBetslip","betsEpEligible","getValueWithoutFreeBetStake","earlyPayoutValue","roundMoney","getValueWithFreeBetStake","isLiveSgpError","typeToLowerCase","reasonToLowerCase","has","earlyPayoutIsNotOffered","OptionMarketTemplateNotAllowed","CashoutNotAllowed","_EarlyPayoutHelpers","EarlyPayoutSubscriptionSource","EarlyPayoutSubmitService","epService","betslipPayoutStatuses","betslipsWithExecutedPayoutOperation","submitPayout","context","betTypeInfo","deferred","Deferred","Preparing","place","possibleAmountWithoutStake","payoutWithoutStake","promise","adjustPayoutStatus","earlyPayoutState","EarlyPayoutSubscriptionMapperService","mapToEarlyPayoutError","convertOptionToPayoutErrorType","convertPicksToPickStatus","convertEarlyPayoutPushPickStateToEarlyPayoutErrorPick","pickState","convertPushUpdateErrorKindToEarlyPayoutError","BetLost","BetNotFound","CashoutNotFound","ChangedBetSlipState","DuplicatedCashout","OverMaxCashoutAmount","UnderMinCashoutAmount","convertPushUpdateOptionErrorToPayoutErrorType","UnderMinOddsKey","InconsistentMonetaryValue","AutoCashoutNotAllowed","DuplicatedAutoCashout","CashoutAmountLowerOrEqualToFreeBet","TechnicalError","ChangedOptionStatus","ChangedStatus","CutOffDateReached","Eligible","Hidden","Locked","MarketTemplateNotAllowed","NotFound","betslipType","pickStates","getPickstatesSortedByVisiblePriorityDesc","highestPriorityPickStateIndex","highestPriorityPickState","OptionCutOffDateReached","OptionChangedStatus","OptionNotFound","OptionHiddenSingle","OptionHiddenCombo","OptionLockSingle","OptionLockCombo","_EarlyPayoutSubscriptionMapperService","EarlyPayoutSubscriptionService","earlyPayoutService","useBatch","resubscribeBetNumbersOnExpiredDate","subscribedList","subject","cdsPush","epHelpers","earlyPayoutSubscriptionMapperService","handleEarlyPayoutValuePushUpdate","eligibleBetslips","earlyPayoutsWithBetslip","ModeHigher","matchedBetslip","Confirm","acceptMode","valueWithoutStake","Allowed","pushUpdate","messageGroup","handleEarlyPayoutPush","subscribeEarlyPayoutChanges","betslipsToSubscribe","useBatchCalls","createSubscriptions","subscribeEarlyPayoutValueChanges","unsubscribeEarlyPayoutService","bettingData","isEarlyPayoutPushEnabled","CachoutSubscription","convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState","subscriptionExpired","errorKind","betNotAllowedReason","possible","resultedPicks","betNumbersToCheck","cancelationToken","checkEarlyPayoutAndSubscribe","betNumbersWithCashOutComplete","earlyPayoutNotPossible","EPSDetailedLogger","BaseCustomLogger","api","internalConfig","isEPSDetailedLoggingEnabled","_EPSDetailedLogger","EarlyPayoutService","epsLogger","epsMapper","earlyPayoutHelpers","EpGeneralError","acceptanceMode","expectedPayout","userExpectedValue","queue","errorPayout","checkEarlyPayoutStatus","payoutStatus","currentBetslipId","StatusPending","callDelay","firstCall","pendingQueryStatusRetryDelay","pendingOverdueRetryDelay","nextCheck","StatusSucceded","doneSuccess","doneFail","referrerNeedsLoggedInUser","reasonText","EVENT_EARLYPAYOUT","getBaseTrackingData","enhanceEarlyPayout","earlyPayoutAmount","payoutError","possibleAmount","trackingAmount","pageName","earlyPayoutSlipID","EarlyPayoutMyBetsService","_EarlyPayoutMyBetsService","EarlyPayoutEditBetService","_EarlyPayoutEditBetService","EarlyPayoutSubscriptionMyBetsService","_EarlyPayoutSubscriptionMyBetsService","EarlyPayoutSubscriptionEditBetService","_EarlyPayoutSubscriptionEditBetService","EarlyPayoutSubmitMyBetsService","_EarlyPayoutSubmitMyBetsService","EarlyPayoutSubmitEditBetService","_EarlyPayoutSubmitEditBetService","EarlyPayoutUtils","m2User","isEarlyPayoutAvailable","isEarlyPayoutAvailableForBetslip","isEarlyPayoutEnabled","isEditBetDisabled","editBetPossible","isPotentialEP","onlyAllowedBetTypes","Horses","handleEarlyPayoutPlaceError","CashoutAmountChanged","isEditButtonVisible","myBetsListContext","migrationTabType","Before","AccaBoostToken","isEditMyBetEnabled","_EarlyPayoutUtils","MyBetsConstants","MyBetsEarlyPayoutBaseService","epSubService","earlyPayoutSubmitService","cancelToken","cancelEnhancementToken","callbackFunction","mapEarlyPayoutPossibility","betslipEp","getDefaultUserAcceptMode","mapEarlyPayoutAmount","refreshCancelationToken","betslipIds","isPotentialEarlyPayoutable","prepareEarlyPayouts","enhanceEligibleBetslips","slip","refreshCancelationEnhancementToken","autoCashOutValue","autoCashoutValue","autoCashoutNotificationValue","mapEarlyPayouts","eligibleEPbetslips","mapMatchedEpBetslips","notEligibleEPbetslips","betsEpToMatch","betslipWithEPBetslip","autoCashoutNotificationValueWithoutStake","autoCashOutValueWithoutStake","ModeAny","dropCancelationToken","dropEarlyPayoutSubscription","MyBetsEarlyPayoutService","earlyPayoutUtils","TypeMulti","enhancedEarlyPayouts","MyBetsEarlyPayoutServiceFactory","earlyPayoutSubscriptionService","MyBetsEarlyPayoutServiceMyBetsFactory","_MyBetsEarlyPayoutServiceMyBetsFactory","MyBetsEarlyPayoutServiceEditBetFactory","_MyBetsEarlyPayoutServiceEditBetFactory","SourcePageType","onButtonClick","promotion","banner","callToAction","OptInButton","OptedInButton","ExpiredButton","ErrorButton","PromotionStatusButtonComponent","offersStatusEnum","OfferStatus","buttonClick","crmPromotionsBanners","offerStatus","PromotionStatusButtonComponent_Case_0_Template","PromotionStatusButtonComponent_Case_1_Template","PromotionStatusButtonComponent_Case_2_Template","PromotionStatusButtonComponent_Case_3_Template","OptIn","OptedIn","Expired","_PromotionStatusButtonComponent","OfferStatusService","optinResponseToStatus","OFFERED","NOT_OFFERED","NoOptIn","EXPIRED","OPTED_IN","setOfferStatus","OfferStatusType","_OfferStatusService","CTALocation","CrmPromotionTracking","configAccessor","ctaTrackingLocations","MoreDetails","Banner","failedOptinText","trackViewed","baseTracking","trackCTA","ctaLocation","moreInfo","EVENT_CLICKS","getEventDetails","trackOptinResult","tracingSource","getLabelEvent","getLocationEvent","getPage","ModularConfigAccessorService","_CrmPromotionTracking","details","heroImageUrl","Dt","BannerMoreInfoComponent_Conditional_0_Conditional_0_Conditional_2_Template","backgroundImageUrl","termsAndConditions","BannerMoreInfoComponent_Conditional_0_Conditional_0_Template","toggleTnc","BannerMoreInfoComponent_Conditional_0_Conditional_7_Template","description","tncVisible","TermsAndConditions","BannerMoreInfoComponent","offerStatusService","BannerMoreInfoComponent_Conditional_0_Template","_BannerMoreInfoComponent","BannerService","crmPromotionFactory","storageKey","loadBannerDetails","cmsItemId","setBannerDetails","openDetailsPage","detailsPopupRef","CrmPromotionFactory","_BannerService","PromotionStatusButtonWrapperComponent","bannerService","detailsPopupChange","optInButtonClicked","optInRedirect","optInInvisible","optInRedirectBlackListedCountries","optInInvisibleBlackListedCountries","promotions","trackClick","moreInfoClick","moreInfoLink","PromotionStatusButtonWrapperComponent_Conditional_0_Template","MoreInfo","_PromotionStatusButtonWrapperComponent","DisabledCookieValue","EnabledCookieValueOldDesktop","EnabledCookieValue","DarkModeService","cookieService","_isEnabled","getIsEnabled","writeCookie","putRaw","CookieName","DarkMode","PERMANENT_COOKIE_EXPIRATION","CookieService","_DarkModeService","CompetitionLogosService","imagesConfig","gridConfig","utilsService","darkModeService","competitionLogos","keyBy","overriddenCompetitionLogo","getLogoUrl","isLogoOverrideEnabled","imageRootPath","competitionImageName","overridenCompetitionImageName","getCompetitionImageName","competitionLogoUrl","getImageProfileLogoUrl","logo","hasLogo","leagues","imageDark","image","ImagesConfig","GridConfig","UtilsService","_CompetitionLogosService","FallbackImage","PARTICIPANT_IMAGE_CONFIG","onImageFailedLoaded","imageClass","ɵɵsanitizeUrl","sportsToReversePlayer2Image","ImageType","ImageRootPath","ParticipantType","ParticipantImageComponent","shouldRotate","showFallback","showLogoColor","logoLoaded","loaded","imageType","rotateImage","fallbackColor","showBackgroundCircle","participantImageUrl","participantLogoUrl","fallbackImage","Default","settingImage","isLogoBackgroundEnabled","getFallbackColor","backgroundColor","getBackgroundColor","images","setHeadshotImage","Logo","getImageUrl","Jersey","Fallback","hasValue","shift","isPlayer","at","participantType","Player","headshot","Headshot","participantImageName","participantUrl","headshotExtension","jersey","EpcotDefault","rootpath","getRootPath","participantImageProfileName","isParticipantProfile","Prod","logoColor","OptionalNonRootToken","ParticipantImageComponent_img_1_Template","ɵɵpureFunction3","_ParticipantImageComponent","fallbackIcon","loadLogo","onLoadingError","loadingError","CompetitionLogoComponent","hostImage","cls","competitionLogosService","showLogoCircle","isCompetitionImageProfile","updateCompetitionLogoUrl","getLogoColor","updatedLogoUrl","CompetitionLogoComponent_span_0_Template","CompetitionLogoComponent_div_1_Template","_CompetitionLogoComponent","DS_ATOMS","DsNotificationBubble","inverse","getAriaLabel","useFactory","DsNotificationBubble_Conditional_0_Template","DsNotificationBubble_Conditional_1_Template","_DsNotificationBubble","PATTERN_ALIAS","findPathDetails","visited","children","_loadedRoutes","lazyChildren","lazyChild","matcherRoutes","currentPath","matcher","isPrimaryRoute","outlet","getPreResolveRoutes","preResolveRoutes","preResolve","loadedRoutes","child","PRIMARY_OUTLET","MatcherService","_router","Router","getMatches","routeTree","matchingSegments","matchingSegmentGroups","matchResultToParams","getExtendedTree","extendTreeWithMatcherRoutes","parseUrl","_MatcherService","fromEntries","containee","containeePaths","hasChildren","matchesSegmentGroup","matchResults","matchedChildren","registered","registeredGroup","accumulator","registeredItem","currentItem","startsWith","urlMatch","extendUrlSegmentGroup","currentMatcher","PrefetchRegistry","_timerService","_matcherService","_trees","_routeToPreResolve","_preResolveRoutes","_preResolveExec","_preResolveParams","_THROTTLE_TIME","_PrefetchRegistry_instances","getPreResolverFn_fn","setLinkPreResolver_fn","getMatches_fn","WeakMap","__privateMethod","registeredTree","registerRoutes","shouldPrefetch","urls","preResolvers","containsTree","treeOrUrl","serializeUrl","scheduleIdleCallback","runInInjectionContext","#getPreResolverFn","paramsKey","preResolverUrl","#setLinkPreResolver","preResolveFns","preResolveRouteTree","#getMatches","trees","uniqBy","_PrefetchRegistry","containsQueryParams","queryParams","containsSegmentGroup","matchers","equalPath","as","bs","matchesMatcher","SpeculativeLinkPreloader","_loading","_registry","router","RouteConfigLoadEnd","preload","EMPTY","conn","effectiveType","saveData","_SpeculativeLinkPreloader","SpeculativeLinkObserver","_loader","_elementLink","_intersectionObserver","RouterPreloader","IntersectionObserver","isIntersecting","link","urlTree","threshold","register","unregister","delete","_SpeculativeLinkObserver","SpeculativeLinkConfig","speculativeLinkConfigFactory","SpeculativeLinkDirective","_pageVisibilityService","_observer","_configService","_isPageVisible","_register","alias","PageVisibilityService","visibilityChange","isConfigReady","URL","hostname","pathname","_SpeculativeLinkDirective","DsDivider","vertical","_DsDivider","TrackReferringACtionDirective","trackerService","cleanAfterTrack","PAGE_REFERRING_ACTION","trackingValue","_TrackReferringACtionDirective","subtitle","subtext","DsListItem_Conditional_1_Conditional_3_Template","DsListItem_Conditional_1_Conditional_4_Template","boldTitle","DsListItem","showCenterSlot","DsListItem_Conditional_1_Template","_DsListItem","ListItemComponent_Conditional_0_ng_container_1_Template","itemTemplate_r1","st","ListItemComponent_Conditional_1_ng_container_1_Template","href","iconSize","ListItemComponent_ng_template_2_Conditional_1_Conditional_1_Template","ListItemComponent_ng_template_2_Conditional_1_Template","ListItemComponent_ng_template_2_Conditional_4_Template","ListItemComponent_ng_template_2_Conditional_5_Template","ListItemComponent_ng_template_2_Conditional_6_Template","ListItemComponent_ng_template_2_Conditional_7_Template","subTitle","showStartSlot","badge","arrow","ListItemComponent","isShowBorder","itemClicked","ListItemComponent_Conditional_0_Template","ListItemComponent_Conditional_1_Template","ListItemComponent_ng_template_2_Template","ListItemComponent_Conditional_4_Template","PlainLinkComponent","_ListItemComponent","ItemComponent_a_0_ng_container_1_Template","itemTemplate_r3","ItemComponent_ng_template_1_ng_container_1_Template","ItemComponent_ng_template_3_span_1_Template","ItemComponent_ng_template_3_span_4_Template","ItemComponent_ng_template_3_div_7_Template","ItemComponent_ng_template_3_div_8_Template","ItemComponent","ItemComponent_a_0_Template","ItemComponent_ng_template_1_Template","ItemComponent_ng_template_3_Template","hrefTemplate_r5","AutomationDirective","_ItemComponent","CssSupportService","cssSupports","supports","isFeatureSupported","feature","isTouchActionSupported","_CssSupportService","ScrollSpeedConstants","ScrollSpeed","parsedConfig","parseConfig","_breakpoints","breakpoints","_default","clonedConfig","defaultValue","import_hammerjs","de","HammerGestureConfigProvider","HammerGestureConfig","overrides","pinch","enable","rotate","swipe","Hammer","DIRECTION_HORIZONTAL","inputClass","TouchMouseInput","_HammerGestureConfigProvider","SCROLL_ADAPTER_CONFIG","ScrollAdapterButtonSize","ScrollAdapterComponent","buttonSize","Large","containerElement","contentElement","smoothScroll","scrollSizeConfig","cssSupportService","hammerGestureConfig","scrollAdapterConfig","scrollSize","alwaysShowArrows","stretch","Small","mobileSwipe","canScrollLeft","canScrollRight","hiddenArrowClass","disabledArrowClass","scrollableLeftClass","scrollableRightClass","scrollDuration","hasScrolled","showArrows","isTerminal","scrollItems","resetArrows","updatedScrollPosition","buffer","clientLeft","setArrows","hammer","buildHammer","groupsSwiped","disableHorizontalScrollOnDesktop","overflowX","calculateScrollSize","scrollRight","updateUi","srcEvent","left","setClass","leftArrow","leftArrowVisible","rightArrow","rightArrowVisible","hasClass","scrollSpeed","scrollPercentage","getScrollPercentage","activeBreakpoint","getActiveBreakpoint","scrollingSpeed","activeBreakpointKey","br","ScrollingSizeConfig","HAMMER_GESTURE_CONFIG","useClass","_ScrollAdapterComponent","BadgeComponent","promotionTitle","crmPromotions","Promotion","_BadgeComponent","LcpCandidateDirective","LcpCandidateConfig","candidateClass","_LcpCandidateDirective","DsCard","elevated","withHover","noOverflow","noBorderRadius","noBorder","_DsCard","listIndex","img_r1","keyTerms","BannerComponent","windowEvent","overlayActiveBreakpointPx","isDynamicSize","TrackingSource","Teaser","largeBannerWidthPx","trackingSourceData","trackingSourceText","onclick","backgroundImage","overlayActive","setDynamicSizeBanner","resize","setClasses","largeDynamicBannerClass","WindowEventService","ɵɵHostDirectivesFeature","BannerComponent_img_2_Template","BannerComponent_div_10_Template","_BannerComponent","PromoItemComponent_Conditional_0_ng_container_0_Template","PromoItemComponent_Conditional_1_ng_container_1_Template","sportsIcon","leagueIcon","leagueTitle","PromoItemComponent_ng_template_2_Conditional_5_Conditional_2_Template","PromoItemComponent_ng_template_2_Conditional_5_Conditional_3_Template","PromoItemComponent_ng_template_2_Conditional_5_ng_container_4_Template","titleTemplate_r4","PromoItemComponent_ng_template_2_Conditional_6_ng_container_0_Template","PromoItemComponent_ng_template_2_Conditional_1_Template","PromoItemComponent_ng_template_2_Conditional_2_Template","PromoItemComponent_ng_template_2_Conditional_5_Template","PromoItemComponent_ng_template_2_Conditional_6_Template","isMiniCarouselLayout","PromoItemComponent_ng_template_4_Conditional_1_Template","PromoItemComponent_ng_template_4_Conditional_3_Template","PromoItemComponent_ng_template_4_Conditional_4_Template","PromoItemComponent_ng_template_4_Conditional_5_Template","PromoItemComponent_ng_template_4_Conditional_6_Template","badgesEnabled","showLiveBadge","PromoItemComponent","popup","PromoItemComponent_Conditional_0_Template","PromoItemComponent_Conditional_1_Template","PromoItemComponent_ng_template_2_Template","PromoItemComponent_ng_template_4_Template","NgOptimizedImage","_PromoItemComponent","item_r2","colouredIcon","PromoItemListComponent_Conditional_0_For_2_Conditional_1_Template","cleanedAfterTrack","tmp_15_0","ɵ$index_4_r4","ɵ$count_4_r5","areBadgesEnabled","PromoItemListComponent_Conditional_0_For_2_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_0_Conditional_1_ng_container_2_Template","promoItemTemplate_r6","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_0_Conditional_2_ng_container_0_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_0_Conditional_1_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_0_Conditional_2_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_1_ng_container_0_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_0_Template","PromoItemListComponent_Conditional_1_Conditional_0_Conditional_1_Template","isCarouselLayout","item_r8","_r7","PromoItemListComponent_Conditional_1_ng_template_1_For_1_Conditional_1_Template","PromoItemListComponent_Conditional_1_ng_template_1_For_1_Conditional_2_Template","hasCompetitionLogo","hasBgcolorForTilesOrGridView","itemClass","PromoItemListComponent_Conditional_1_ng_template_1_For_1_Template","PromoItemListComponent_Conditional_1_Conditional_0_Template","PromoItemListComponent_Conditional_1_ng_template_1_Template","PromoItemListComponent","isStackedList","competitionLogoService","popupManager","promotedCompetitionIdsMap","promotedSportIdsMap","itemClick","isStackedLayout","scrollAdapter","attributes","leagueIds","itemIndexTrackBy","PopupManager","PromoItemListComponent_Conditional_0_Template","PromoItemListComponent_Conditional_1_Template","Pe","K","_PromoItemListComponent","CrmPromotionModule","_CrmPromotionModule"],"mappings":"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","x_google_ignoreList":[3,4,7,112,113,114,115,177,185]}