{"version":3,"file":"chunk-i27jlbfn.js","sources":["packages/sports/web/app/src/sub-navigation/sub-navigation-resolve.service.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","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","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.component.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/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/immer/dist/immer.esm.mjs","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/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","packages/sports/web/app/src/quick-links/top-bottom-section-links/top-bottom-section-links.component.ts","packages/sports/web/app/src/quick-links/top-bottom-section-links/top-bottom-section-links.component.html","packages/sports/web/app/src/quick-links/quick-links.models.ts","packages/sports/web/app/src/quick-links/link-list-widget.component.html","packages/sports/web/app/src/quick-links/link-list-widget.component.ts","packages/sports/web/app/src/quick-links/quick-links.bootstrap.ts","packages/sports/libs/common/core/feature/money/src/lib/currency.pipe.ts","packages/sports/web/app/src/my-bets-base/pipes/my-bets-odds.pipe.ts","packages/sports/web/app/src/my-bets-base/my-bets-base.module.ts","packages/sports/libs/modal/feature/src/dialog/confirmation-dialog.model.ts","packages/sports/libs/modal/feature/src/dialog/confirmation-dialog.html","packages/sports/libs/modal/feature/src/dialog/confirmation-dialog.component.ts","packages/sports/libs/modal/feature/src/dialog/confirmation-dialog.service.ts","packages/sports/libs/common/ui/shared/src/lib/tokens.ts","packages/sports/libs/common/ui/sports-themed-button/src/lib/sports-themed-button.directive.ts","packages/sports/libs/user/feature/src/services/sports-client-config-refresh.service.ts","packages/sports/web/app/src/data-refresh/fresh-data-provider.service.ts","packages/sports/web/app/src/data-refresh/ellapsed-timer.ts","packages/sports/web/app/src/data-refresh/online-detection.service.ts","packages/sports/web/app/src/data-refresh/fresh-data.service.ts","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/store/src/grid.actions.ts","packages/sports/libs/grid/core/feature/store/src/grid.state.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/directives/scroll-selected-in-view/scroll-selected-in-view.directive.ts","node_modules/@rx-angular/cdk/fesm2022/cdk-internals-scheduler.mjs","node_modules/@rx-angular/cdk/fesm2022/cdk-coercing.mjs","node_modules/@rx-angular/cdk/fesm2022/cdk-render-strategies.mjs","packages/sports/web/app/src/tab-bar/tab-bar.html","packages/sports/web/app/src/tab-bar/tab-bar.component.ts","packages/sports/web/app/src/tab-bar/tab-bar.module.ts","packages/sports/web/app/src/common/epcotNotifications/notification.html","packages/sports/web/app/src/common/epcotNotifications/notification.component.ts","packages/sports/libs/content-distribution/feature/src/cds-push.models.ts","packages/sports/libs/common/core/feature/font-resizer/src/lib/font-resizer-base.service.ts","packages/sports/libs/common/core/feature/font-resizer/src/lib/font-resizer.html","packages/sports/libs/common/core/feature/font-resizer/src/lib/font-resizer.component.ts","packages/sports/web/app/src/shared-priceboost/Components/priceboost-count-signpost.component.html","packages/sports/web/app/src/shared-priceboost/Components/priceboost-count-signpost.component.ts","packages/sports/web/app/src/navigation/navigation-tracking.model.ts","packages/sports/libs/common/core/utils/route-params/src/lib/route-params.ts","packages/sports/web/app/src/navigation/navigation-router.service.ts","packages/sports/web/app/src/geo-location/geo-location.model.ts","packages/sports/web/app/src/geo-location/geo-coordinator.service.ts","packages/geo-coordinator-lib/permissions-manager/src/permissions-manager.component.ts","packages/geo-coordinator-lib/permissions-manager/src/permissions-manager.component.html","packages/geo-coordinator-lib/permissions-manager/src/geocoordinator-permissions-manager.service.ts","packages/sports/web/app/src/geo-location/geo-location-check.service.ts","packages/sports/web/app/src/timers/count-down.component.ts","packages/sports/web/app/src/timers/live-timer.component.ts","packages/sports/web/app/src/timers/prematch-timer.component.ts","packages/sports/web/app/src/timers/event-timer.html","packages/sports/web/app/src/timers/event-timer.component.ts","packages/sports/web/app/src/timers/timer.module.ts","packages/sports/web/app/src/betbuilder/components/badge/sgp-badge/sgp-badge.component.ts","packages/sports/web/app/src/betbuilder/components/badge/sgp-plus-badge/sgp-plus-badge.component.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/design-system/ui/segmented-control/src/segmented-control.token.ts","packages/design-system/ui/segmented-control/src/segmented-control.component.html","packages/design-system/ui/segmented-control/src/segmented-control.component.ts","packages/design-system/ui/segmented-control/src/index.ts","node_modules/ngx-popperjs/fesm2022/ngx-popperjs.mjs","packages/vanilla/lib/shared/copy-right/src/copyright.component.ts","node_modules/swiper/shared/ssr-window.esm.mjs","node_modules/swiper/shared/utils.mjs","node_modules/swiper/shared/swiper-core.mjs","node_modules/swiper/shared/create-element-if-not-defined.mjs","node_modules/swiper/modules/navigation.mjs","node_modules/swiper/shared/classes-to-selector.mjs","node_modules/swiper/modules/pagination.mjs","node_modules/swiper/modules/autoplay.mjs","node_modules/swiper/shared/effect-init.mjs","node_modules/swiper/shared/effect-target.mjs","node_modules/swiper/shared/create-shadow.mjs","node_modules/swiper/modules/effect-coverflow.mjs","packages/vanilla/lib/shared/swiper/src/swiper.html","packages/vanilla/lib/shared/swiper/src/swiper.component.ts","packages/vanilla/lib/features/svg/src/svg.component.ts","packages/vanilla/lib/features/svg/src/svg.component.html","packages/vanilla/lib/features/popper/src/popper-content.html","packages/vanilla/lib/features/popper/src/popper-content.component.ts","packages/vanilla/lib/shared/badge/src/badge.client-config.ts","packages/vanilla/lib/features/menus/src/menu-item-badge.directive.ts","packages/vanilla/lib/shared/auth/src/authstate.directive.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.client-config.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.service.ts","packages/vanilla/lib/shared/tooltips/src/tooltips.html","packages/vanilla/lib/shared/tooltips/src/tooltips.component.ts","packages/vanilla/lib/features/menus/src/menu-item-click-handler.service.ts","packages/vanilla/lib/features/menus/src/menu-item-text-content.html","packages/vanilla/lib/features/menus/src/menu-item-text-content.component.ts","packages/vanilla/lib/features/menus/src/menu-item.html","packages/vanilla/lib/features/menus/src/menu-item.component.ts","packages/vanilla/lib/features/menus/src/menu-item-action.directive.ts","packages/vanilla/lib/features/menus/src/menu-item-tracking.directive.ts","node_modules/@cloudflare/stream-angular/fesm2020/cloudflare-stream-angular.mjs","packages/vanilla/lib/features/content/src/page-matrix.service.ts","packages/vanilla/lib/features/content/src/page-matrix.directive.ts","packages/vanilla/lib/features/content/src/pc-component.ts","packages/vanilla/lib/features/content/src/pc-scrollmenu.directive.ts","packages/vanilla/lib/features/content/src/pm-component.ts","packages/vanilla/lib/features/content/src/profiles.directive.ts","packages/vanilla/lib/features/content/src/components-v2/pc-component-header.html","packages/vanilla/lib/features/content/src/components-v2/pc-component-header.component.ts","packages/vanilla/lib/features/content/src/components-v2/pc-menu-item.html","packages/vanilla/lib/features/content/src/components-v2/pc-menu-item.component.ts","packages/vanilla/lib/features/content/src/components-v2/pm-1col-page.html","packages/vanilla/lib/features/content/src/components-v2/pc-text.html","packages/vanilla/lib/features/content/src/components-v2/pc-text-with-header-bar.html","packages/vanilla/lib/features/content/src/components-v2/pc-header-for-mpp-page.html","packages/vanilla/lib/features/content/src/components-v2/pc-toggle.html","packages/vanilla/lib/features/content/src/components-v2/pc-image.html","packages/vanilla/lib/features/content/src/components-v2/pc-image-text.html","packages/vanilla/lib/features/content/src/components-v2/pc-video.html","packages/vanilla/lib/features/content/src/components-v2/pc-teaser.html","packages/vanilla/lib/features/content/src/components-v2/pc-container.html","packages/vanilla/lib/features/content/src/components-v2/pc-component-folder.html","packages/vanilla/lib/features/content/src/components-v2/pc-menu.html","packages/vanilla/lib/features/content/src/components-v2/pc-regional-component.html","packages/vanilla/lib/features/content/src/components-v2/pc-raw-image.html","packages/vanilla/lib/features/content/src/components-v2/pc-carousel.html","packages/vanilla/lib/features/content/src/components-v2/pc-scrollmenu.html","packages/vanilla/lib/features/content/src/components-v2/pc.components.ts","packages/vanilla/lib/features/content/src/components-v2/pc-raw-text.html","packages/vanilla/lib/features/content/src/content-filter.component.ts","packages/vanilla/lib/features/content/src/page-matrix-bootstrap.service.ts","packages/vanilla/lib/features/content/src/content.feature.ts","packages/vanilla/lib/features/content/src/page-matrix.component.ts","packages/vanilla/lib/features/content-messages/src/content-messages-tracking.service.ts","packages/vanilla/lib/features/content-messages/src/content-message.html","packages/vanilla/lib/features/content-messages/src/content-message.component.ts","packages/vanilla/lib/features/content-messages/src/close-message.component.ts","packages/vanilla/lib/features/content-messages/src/content-messages-bootstrap.service.ts","packages/vanilla/lib/features/content-messages/src/content-messages.feature.ts","packages/vanilla/lib/features/content-messages/src/content-messages.service.ts","packages/vanilla/lib/features/content-messages/src/content-messages.html","packages/vanilla/lib/features/content-messages/src/content-messages.component.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher.client-config.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher-tracking.service.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher.service.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher-bootstrap.service.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher.feature.ts","packages/vanilla/lib/features/label-switcher/src/label-switcher.html","packages/vanilla/lib/features/label-switcher/src/label-switcher.component.ts","packages/vanilla/lib/features/footer/src/footer.client-config.ts","packages/vanilla/lib/features/footer/src/footer-menu-item.component.ts","packages/vanilla/lib/features/footer/src/footer-menu-item.html","packages/vanilla/lib/features/footer/src/footer-menu-section.html","packages/vanilla/lib/features/footer/src/footer-menu-section.component.ts","packages/vanilla/lib/features/footer/src/sub-components/help-button.html","packages/vanilla/lib/features/footer/src/sub-components/help-button.component.ts","packages/vanilla/lib/features/footer/src/footer.html","packages/vanilla/lib/features/footer/src/footer.component.ts","packages/vanilla/lib/features/footer/src/footer-bootstrap.service.ts","packages/vanilla/lib/features/footer/src/footer.feature.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 { 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 * 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","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, catchError, of } from 'rxjs';\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 standalone: true,\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: [AlertButtonComponent, CommonModule, DsButton, DsButtonIcon, IconCustomComponent],\n declarations: [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 { filter, fromEvent, merge } from 'rxjs';\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';\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","
\n
\n @if (vm().currentlyServing === 1) {\n \n }\n
\n
\n @if (vm().currentlyServing === 2) {\n \n }\n
\n
\n
\n
{{ vm().player1CurrentScore }}
\n
{{ vm().player2CurrentScore }}
\n
\n\n@if (vm().participant1 || vm().participant2) {\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.component.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 { 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, distinctUntilChanged, map, of } from 'rxjs';\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, filter, merge, takeUntil } from 'rxjs';\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';\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';\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, first, map, of, switchMap, tap } from 'rxjs';\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, map, of, switchMap } from 'rxjs';\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\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","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 { 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, catchError, map, of } from 'rxjs';\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, filter } from 'rxjs';\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 { concatMap, debounceTime, from, map, of, pipe, switchMap, tap, withLatestFrom } from 'rxjs';\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 { 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, debounceTime, groupBy, mergeMap } from 'rxjs';\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 { catchError, firstValueFrom, map, of } from 'rxjs';\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(\n 'CashoutCheckAndSubscribe',\n {\n betNumbers,\n source: this.source,\n },\n { cancelationToken },\n )\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 = (\n reason: {\n status: number;\n },\n betslipId: string,\n trackingData: TrackingData,\n ): 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, catchError, map, of } from 'rxjs';\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 = '0';\nconst EnabledCookieValueOldDesktop = '1';\nconst EnabledCookieValue = '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 { auditTime, fromEvent, merge } from 'rxjs';\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","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Input, OnChanges, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { StringDictionary } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { LinkListLayout } from '@frontend/sports/types/components/widget/types';\n\nimport { ListItem } from '../../common/item/item.model';\nimport { CrmPromotionProviderService, PromotionMap } from '../../crm-promotion/crm-promotion-provider.service';\nimport { CrmPromotionModule } from '../../crm-promotion/crm-promotion.module';\n\n@Component({\n standalone: true,\n imports: [CrmPromotionModule],\n selector: 'ms-top-bottom-sectionlinks',\n templateUrl: 'top-bottom-section-links.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TopBottomSectionLinksComponent implements OnInit, OnChanges {\n @Input() itemClass = '';\n @Input() itemListClass = '';\n @Input() tracking?: string;\n @Input() showArrows = true;\n @Input() items: ListItem[];\n @Input() moduleName?: string;\n @Input() modulePosition?: number;\n @Input() moduleSection?: string;\n @Input() layout = ''; // TODO: this should not be a string\n @Input() showSmallIcons = false;\n\n promotedCompetitionIdsMap: StringDictionary = {};\n promotedSportIdsMap: StringDictionary = {};\n linkClass = '';\n linkLayout?: LinkListLayout;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private trackingService: TrackingService,\n private crmPromotionProvider: CrmPromotionProviderService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n ngOnChanges(): void {\n this.setItemClass();\n }\n\n ngOnInit(): void {\n this.crmPromotionProvider.promotionsMap$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((ids) => this.promotionMapChanged(ids));\n }\n\n setTrackingDetails(data: ListItem): void {\n const index = this.items.indexOf(data);\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'Quick Links',\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Links',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_CONTENT_POSITION]: index,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: NOT_APPLICABLE,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: data.title ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_SITECORE_ID]: data.sitecoreId ?? NOT_APPLICABLE,\n [trackingConstants.COMPONENT_USER_SEGMENTS]: data.userSegmentGroups ?? NOT_APPLICABLE,\n });\n }\n\n private promotionMapChanged(promoMap: PromotionMap): void {\n this.promotedCompetitionIdsMap = promoMap.competitions;\n this.promotedSportIdsMap = promoMap.sports;\n this.changeDetectorRef.markForCheck();\n }\n\n private setItemClass(): void {\n let layoutClass = '';\n\n switch (this.layout) {\n case LinkListLayout.Stacked:\n this.linkLayout = LinkListLayout.Stacked;\n layoutClass = 'stacked-view';\n break;\n case LinkListLayout.TilesCarousel:\n this.linkLayout = LinkListLayout.TilesCarousel;\n layoutClass = this.showSmallIcons ? 'tiles-carousel-view small-icons' : 'tiles-carousel-view';\n break;\n case LinkListLayout.TilesCarouselSmallIcon:\n this.linkLayout = LinkListLayout.TilesCarouselSmallIcon;\n break;\n case LinkListLayout.MiniCarousel:\n this.linkLayout = LinkListLayout.MiniCarousel;\n layoutClass = 'mini-carousel-view';\n break;\n case LinkListLayout.Grid:\n this.linkLayout = LinkListLayout.Grid;\n layoutClass = 'grid-view';\n break;\n }\n\n this.linkClass = [this.itemClass, layoutClass].join(' ');\n }\n}\n","\n","import { QuickLinkViewModel } from '@frontend/sports/types/components/quick-links';\n\nimport { ListItem } from '../common/item/item.model';\n\nexport interface QuickLinkItem extends ListItem {\n linkType?: string;\n sportId?: number;\n leagueId?: number;\n popup?: string;\n leagueTitle?: string;\n leagueIcon?: string;\n sportsIcon?: string;\n}\n\nexport interface Positionable {\n top: T;\n bottom: T;\n}\n\nexport interface QuickLinkList {\n title: string | null;\n links: QuickLinkItem[];\n maxItems: number;\n mobileLayout: string;\n desktopLayout: string;\n}\n\nexport interface SectionLinks {\n pickedLinks: QuickLinkViewModel[];\n visibleOnLobby: boolean;\n sectionTitle: string;\n location: string;\n maxItems: number;\n showTitleOnMobileResolutionsXSandS?: boolean;\n desktopLayout: string;\n mobileLayout: string;\n showTitleOnDesktopResolutions: boolean;\n setTilesCarouselIconsAsSmall: boolean;\n}\n\nexport enum QuickLinksSections {\n BetConfirmation = 'BetConfirmation',\n EmptyBetslip = 'EmptyBetslip',\n}\n\nexport enum LinkType {\n HomeLobby = '1',\n SportLobby = '2',\n Both = '3',\n}\n\nexport interface QuickLinksView {\n showQuicklinksTitle: boolean;\n showQuicklinksinDesktop: boolean;\n}\n\nexport function toQuickLinkItem(quickLink: QuickLinkViewModel): QuickLinkItem {\n return {\n icon: quickLink.colouredIcon ? '' : quickLink.icon,\n href: quickLink.linkModel?.href,\n popup: quickLink.linkModel?.popup,\n title: quickLink.linkModel?.link ?? '',\n linkType: quickLink.linkType,\n sportId: quickLink.sportId,\n leagueId: quickLink.leagueId,\n attributes: quickLink.attributes || {},\n bgColor: quickLink.backgroundColor,\n colouredIcon: quickLink.colouredIcon,\n sitecoreId: quickLink.sitecoreId,\n userSegmentGroups: quickLink.userSegmentGroups,\n leagueTitle: quickLink.leagueTitle,\n leagueIcon: quickLink.leagueIcon,\n sportsIcon: quickLink.sportsIcon,\n };\n}\n","\n
{{ title }}
\n \n \n
\n","import { NgIf } from '@angular/common';\nimport { Component, HostBinding } from '@angular/core';\n\nimport { LinkListLayout, LinkListPayload } from '@frontend/sports/types/components/widget/types';\nimport { kebabCase } from 'lodash-es';\n\nimport { WidgetComponent } from '../widget/core/widget-registry.service';\nimport { QuickLinkItem, toQuickLinkItem } from './quick-links.models';\nimport { TopBottomSectionLinksComponent } from './top-bottom-section-links/top-bottom-section-links.component';\n\n@Component({\n standalone: true,\n imports: [NgIf, TopBottomSectionLinksComponent],\n selector: 'ms-link-list-widget',\n templateUrl: './link-list-widget.component.html',\n})\nexport class LinkListWidgetComponent extends WidgetComponent {\n @HostBinding('class') get className(): string {\n const classes = ['link-list-widget'];\n\n if (this.title || this.layout === LinkListLayout.MiniCarousel) {\n classes.push('list', 'list-card');\n }\n\n if (this.layout && this.layout != LinkListLayout.Stacked) {\n classes.push(`link-list-${kebabCase(this.layout)}`);\n }\n\n return classes.join(' ');\n }\n\n title: string | undefined;\n layout?: LinkListLayout;\n links: QuickLinkItem[] | undefined;\n smallIcon: boolean;\n\n protected override onData({ title, links, layout }: LinkListPayload): void {\n this.title = title;\n this.links = links?.map(toQuickLinkItem);\n this.hasData = !!links?.length;\n\n if (layout === LinkListLayout.TilesCarouselSmallIcon) {\n this.smallIcon = true;\n this.layout = LinkListLayout.TilesCarousel;\n } else {\n this.smallIcon = false;\n this.layout = layout;\n }\n this.setWidgetLoaded();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { WidgetType } from '@frontend/sports/types/components/widget';\nimport { DynamicLayoutService, OnFeatureInit, SingleSlot, SlotType } from '@frontend/vanilla/core';\n\nimport { WidgetRegistryService } from '../widget/core/widget-registry.service';\nimport { LinkListWidgetComponent } from './link-list-widget.component';\n\nexport const COUNT_QUICKLINKS = 'count-quick-links';\nexport const QUICK_LINKS = 'quick-links';\n\n@Injectable()\nexport class BootstrapQuickLink implements OnFeatureInit {\n constructor(\n private widgetRegistry: WidgetRegistryService,\n private slot: DynamicLayoutService,\n ) {}\n\n onFeatureInit() {\n this.widgetRegistry.registerLazy(WidgetType.LinkList, LinkListWidgetComponent);\n }\n\n registerCountQuickLinks(): void {\n try {\n const currentAppSlot = this.slot.getSlot(COUNT_QUICKLINKS, SlotType.Single);\n if (!currentAppSlot) {\n this.slot.registerSlot(COUNT_QUICKLINKS, SlotType.Single);\n }\n } catch {\n this.slot.registerSlot(COUNT_QUICKLINKS, SlotType.Single);\n }\n }\n\n registerQuickLinks(): void {\n try {\n const currentAppSlot = this.slot.getSlot(QUICK_LINKS, SlotType.Single);\n if (!currentAppSlot) {\n this.slot.registerSlot(QUICK_LINKS, SlotType.Single);\n }\n } catch {\n this.slot.registerSlot(QUICK_LINKS, SlotType.Single);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { Pipe, PipeTransform, inject } from '@angular/core';\n\nimport { CurrencyPipeInput } from './model';\nimport { MoneyService } from './money.service';\n\n@Pipe({\n name: 'msCurrency',\n standalone: true,\n})\nexport class CurrencyPipe implements PipeTransform {\n private readonly moneyService = inject(MoneyService);\n\n transform(\n input: CurrencyPipeInput,\n symbol: boolean = false,\n fractionSize: number = 2,\n hideEmptyFraction: boolean = false,\n locale?: string,\n currencyCode?: string,\n formatCurrency: boolean = true,\n ): string {\n return this.moneyService.transform(input, symbol, fractionSize, hideEmptyFraction, locale, currencyCode, formatCurrency);\n }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\nimport { Odds, OddsFormat } from '@bpos';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'msMyBetsOddsPipe',\n})\nexport class MyBetsOddsPipe implements PipeTransform {\n transform(odds: Odds | undefined): string {\n if (!odds) {\n return '-';\n }\n\n if (odds.oddsFormat === OddsFormat.American) {\n const value = odds.american!;\n\n return (value > 0 ? '+' : '') + value;\n }\n if (odds.oddsFormat === OddsFormat.British) {\n const { numerator, denominator } = odds.british;\n\n return `${numerator}/${denominator}`;\n }\n\n return odds.european!.toFixed(3).replace(/0$/, '');\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DsButton } from '@frontend/ui/button';\n\nimport { MyBetsOddsPipe } from './pipes/my-bets-odds.pipe';\n\n@NgModule({\n imports: [DsButton],\n declarations: [MyBetsOddsPipe],\n exports: [MyBetsOddsPipe],\n})\nexport class MyBetsBaseModule {}\n","import { DsButtonKind, DsButtonSize, DsButtonVariant } from '@frontend/ui/button';\n\nimport { IDialogTracking } from './modal-dialog.model';\n\nexport interface IConfirmationDialogComponentModel {\n message: string;\n buttons: IConfirmationDialogButton[];\n tracking?: IDialogTracking;\n icon?: string;\n cssClass?: string;\n}\n\nexport interface IConfirmationDialogModel extends IConfirmationDialogComponentModel {\n title: string;\n backdropClass?: string;\n}\n\nexport interface IConfirmationDialogButton {\n buttonType: ConfirmationDialogButtonType;\n buttonOrderClass?: string;\n buttonTitle: string;\n buttonConfig?: {\n kind: DsButtonKind;\n variant: DsButtonVariant;\n size: DsButtonSize;\n };\n cssClass?: string;\n}\n\nexport enum ConfirmationDialogButtonType {\n Ok = 'Ok',\n Cancel = 'Cancel',\n}\n\nexport interface IConfirmationDialogInput {\n contentModel: IConfirmationDialogModel;\n}\n","
\n
\n @if (contentModel.icon) {\n \n }\n {{ contentModel.message }}\n
\n @if (contentModel.buttons.length && isDesignSystem) {\n
\n @for (button of contentModel.buttons; track $index) {\n @if (button.buttonConfig) {\n \n {{ button.buttonTitle }}\n \n }\n }\n
\n } @else {\n
\n @for (button of contentModel.buttons; track $index) {\n \n }\n
\n }\n
\n","import { NgClass } from '@angular/common';\nimport { AfterViewInit, Component, Input } from '@angular/core';\n\nimport { TrackingService, TrackingType, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { DsButton } from '@frontend/ui/button';\n\nimport { ActiveModal } from '../common/modal-ref';\nimport { IConfirmationDialogButton, IConfirmationDialogComponentModel } from './confirmation-dialog.model';\n\n@Component({\n selector: 'ms-confirmation-dialog',\n templateUrl: './confirmation-dialog.html',\n standalone: true,\n imports: [NgClass, DsButton],\n})\nexport class ConfirmationDialogComponent implements AfterViewInit {\n @Input() contentModel: IConfirmationDialogComponentModel;\n\n get isDesignSystem(): boolean {\n return this.contentModel.buttons.every((b) => b.buttonConfig);\n }\n\n constructor(\n private activeModal: ActiveModal,\n private trackingService: TrackingService,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.contentModel.tracking) {\n switch (this.contentModel.tracking.type) {\n case TrackingType.PageName:\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.trackingService.track(this.contentModel.tracking.name, this.contentModel.tracking.data || {});\n break;\n case TrackingType.Referring:\n this.trackingService.update({ [trackingConstants.PAGE_REFERRING_ACTION]: this.contentModel.tracking.name });\n break;\n }\n }\n }\n\n handleClick(button: IConfirmationDialogButton): void {\n this.activeModal.close(button.buttonType);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ModalRef } from '../common/modal-ref';\nimport { ConfirmationDialogComponent } from './confirmation-dialog.component';\nimport { IConfirmationDialogInput, IConfirmationDialogModel } from './confirmation-dialog.model';\nimport { DialogSettings } from './modal-dialog.model';\nimport { ModalDialogService } from './modal-dialog.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationDialogService {\n constructor(private modalDialogService: ModalDialogService) {}\n\n showDialog(model: IConfirmationDialogModel): ModalRef {\n const confirmationDialogCssClass = 'confirmation-dialog';\n\n const input: IConfirmationDialogInput = {\n contentModel: model,\n };\n\n const settings: DialogSettings = {\n showDialogHeader: true,\n hideCloseButton: true,\n title: model.title,\n cssClass: [confirmationDialogCssClass, model.cssClass || ''].join(' '),\n isModalDialog: false,\n };\n if (model.backdropClass) {\n settings.backdropClass = model.backdropClass;\n }\n\n return this.modalDialogService.openDialog(ConfirmationDialogComponent, { data: input, settings });\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\n\nimport { NonRootToken } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\n\nimport { SportsTheme } from './themes';\n\nexport const CURRENT_THEME_TOKEN = new InjectionToken('CURRENT_THEME');\nexport const IS_ROBOT_TOKEN = new InjectionToken('IS_ROBOT_TOKEN');\n\nexport const injectCurrentTheme = () => inject(NonRootToken(CURRENT_THEME_TOKEN));\nexport const injectIsRobot = () => inject(NonRootToken(IS_ROBOT_TOKEN));\n","import { Directive, Input, OnChanges, inject } from '@angular/core';\n\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { ThemeOptions, injectCurrentTheme } from '@frontend/sports/common/ui/shared';\nimport { DsButton, DsButtonKind, DsButtonSize, DsButtonVariant } from '@frontend/ui/button';\n\n@Directive({\n selector: '[msThemedButton]',\n standalone: true,\n})\nexport class SportsThemedButtonDirective implements OnChanges {\n dsButton = inject(DsButton, { self: true });\n currentTheme = injectCurrentTheme();\n\n @Input() themeKind: ThemeOptions = {};\n @Input() themeVariant: ThemeOptions = {};\n @Input() themeSize: ThemeOptions = {};\n @Input() themeInverse: ThemeOptions = {};\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.themeKind?.currentValue[this.currentTheme]) {\n const kind = changes.themeKind.currentValue[this.currentTheme];\n if (kind) {\n this.dsButton.kind = kind;\n }\n }\n\n if (changes.themeVariant?.currentValue[this.currentTheme]) {\n const variant = changes.themeVariant.currentValue[this.currentTheme];\n if (variant) {\n this.dsButton.variant = variant;\n }\n }\n\n if (changes.themeSize?.currentValue[this.currentTheme]) {\n const size = changes.themeSize.currentValue[this.currentTheme];\n if (size) {\n this.dsButton.size = size;\n }\n }\n if (changes.themeInverse?.currentValue[this.currentTheme]) {\n const inverse = changes.themeInverse.currentValue[this.currentTheme];\n if (inverse) {\n this.dsButton.inverse = inverse;\n }\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { MarqueeTilesConfig, SportsUserConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { GeoLocationStatus, MarqueeTile } from '@frontend/sports/types/components/content';\nimport { ClientConfigService, GeolocationService, OnAppInit } from '@frontend/vanilla/core';\nimport { ReplaySubject, combineLatest, concatMap, distinctUntilChanged, first, from, map, skip, startWith, switchMap, tap } from 'rxjs';\n\nimport { UserEvents } from '../model/user.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SportsClientConfigRefreshService implements OnAppInit {\n private readonly BET_PLACE_SUCCESS = 'BET_PLACE_SUCCESS';\n private _locationDependantDataNeeded$ = new ReplaySubject(1);\n\n readonly locationDependantDataNeeded$ = this._locationDependantDataNeeded$.asObservable();\n\n constructor(\n private geolocationService: GeolocationService,\n private injector: Injector,\n private dispatcher: DispatcherService,\n private sportsUserConfig: SportsUserConfig,\n private marqueeTilesConfig: MarqueeTilesConfig,\n private router: Router,\n ) {}\n\n onAppInit(): void {\n const clientConfig = this.injector.get(ClientConfigService);\n\n const firstNavigationFinished$ = this.router.events.pipe(first((e) => e instanceof NavigationEnd));\n\n this.geolocationService.whenReady\n .pipe(\n first(),\n concatMap(() =>\n combineLatest([this.geolocationService.positionChanges, firstNavigationFinished$, this.marqueeTilesConfig.whenReady]).pipe(\n map(([location]) => location.mappedLocation?.locationId),\n distinctUntilChanged(),\n switchMap(() => from(clientConfig.reload([MarqueeTilesConfig]))),\n tap(() => {\n this.dispatcher.dispatch(UserEvents.ClientConfigRefreshed);\n }),\n map(() => this.marqueeTilesConfig.tiles.some((t: MarqueeTile) => t.geoLocationStatus === GeoLocationStatus.Restricted)),\n startWith(false),\n distinctUntilChanged(),\n skip(1), // we don't care about the first value which is emitted from startWith - it's used just for distinctUntilChanged\n ),\n ),\n )\n .subscribe(() => {\n this._locationDependantDataNeeded$.next();\n });\n\n this.dispatcher.on(this.BET_PLACE_SUCCESS).subscribe(() => {\n if (this.sportsUserConfig.isEligibleForNewCustomerOffer) {\n clientConfig.reload([SportsUserConfig]);\n }\n });\n }\n}\n","import { Observable } from 'rxjs';\n\nexport enum FreshDataType {\n DataAndPush,\n Data,\n}\n\nexport abstract class FreshDataProvider {\n abstract isRefreshNeeded(): Observable;\n}\n","export class EllapsedTimer {\n private startedAt: number = Date.now();\n\n private constructor() {}\n\n get ellapsedMilliseconds(): number {\n return Date.now() - this.startedAt;\n }\n\n static start(): EllapsedTimer {\n return new EllapsedTimer();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { filterSports } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, fromEvent, merge } from 'rxjs';\n\nimport { EllapsedTimer } from './ellapsed-timer';\n\n@Injectable({ providedIn: 'root' })\nexport class OnlineDetectionService {\n readonly #window = inject(WINDOW);\n private offlineTimer?: EllapsedTimer;\n private online$: BehaviorSubject<{ isOnline: boolean; offlineDuration?: number }>;\n\n constructor() {\n this.online$ = new BehaviorSubject({ isOnline: this.#window.navigator.onLine });\n\n merge(fromEvent(this.#window, 'online'), fromEvent(this.#window, 'offline'))\n .pipe(filterSports())\n .subscribe(() => this.updateOnlineStatus());\n }\n\n onlineChange(): Observable<{ isOnline: boolean; offlineDuration?: number }> {\n return this.online$.asObservable();\n }\n\n private updateOnlineStatus = () => {\n const isOnline = this.#window.navigator.onLine;\n\n const offlineDuration = isOnline && this.offlineTimer ? this.offlineTimer.ellapsedMilliseconds : undefined;\n this.offlineTimer = isOnline ? undefined : EllapsedTimer.start();\n\n this.online$.next({ isOnline, offlineDuration });\n };\n}\n","import { Inject, Injectable } from '@angular/core';\n\nimport { AppConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CdsPushProvider, CdsPushService } from '@frontend/sports/content-distribution/feature';\nimport { NonRootToken } from '@frontend/sports/host-app/sports-product/feature/non-root-token';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { SportsClientConfigRefreshService, UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, NativeAppService } from '@frontend/vanilla/core';\nimport { PageVisibilityService } from '@frontend/vanilla/features/page-visibility';\nimport { Subject, filter, merge, throttleTime } from 'rxjs';\n\nimport { FreshDataProvider, FreshDataType } from './fresh-data-provider.service';\nimport { OnlineDetectionService } from './online-detection.service';\n\n@Injectable({ providedIn: 'root' })\nexport class FreshDataService {\n private reloadNeededStream = new Subject();\n private isOnline = false;\n private isVisible = true;\n\n constructor(\n pageVisibilityService: PageVisibilityService,\n onlineDetection: OnlineDetectionService,\n private pushProvider: CdsPushProvider,\n private appConfig: AppConfig,\n private ms2Tracking: TrackingService,\n deviceService: DeviceService,\n nativeApp: NativeAppService,\n userService: UserService,\n @Inject(NonRootToken(FreshDataProvider)) freshDataProviders: FreshDataProvider[],\n clientConfigRefresh: SportsClientConfigRefreshService,\n private cdsPushService: CdsPushService,\n ) {\n pageVisibilityService\n .visibilityChange()\n .pipe(\n filter(() => deviceService.isMobile),\n filterSportsEmitLast(),\n )\n .subscribe(this.visibilityChange);\n\n onlineDetection.onlineChange().pipe(filterSportsEmitLast()).subscribe(this.onlineChange);\n\n nativeApp.eventsFromNative\n .pipe(\n filter((e) => e.eventName === 'APP_FOREGRND'),\n filterSportsEmitLast(),\n )\n .subscribe(() => this.requestReload(FreshDataType.DataAndPush));\n\n merge(...freshDataProviders.map((_) => _.isRefreshNeeded()))\n .pipe(filterSportsEmitLast())\n .subscribe((type) => this.requestReload(type));\n\n merge(userService.onAuthenticationChange$, clientConfigRefresh.locationDependantDataNeeded$)\n .pipe(filterSportsEmitLast())\n .subscribe(() => {\n this.requestReload(FreshDataType.Data);\n });\n }\n\n readonly reloadNeeded = this.reloadNeededStream.pipe(throttleTime(150));\n\n private visibilityChange = ({ isVisible, pageHiddenDuration }: { isVisible: boolean; pageHiddenDuration?: number }) => {\n this.isVisible = isVisible;\n if (!this.isVisible) {\n return;\n }\n\n const pageHiddenForTooLong =\n (pageHiddenDuration || 0) > this.appConfig.pageHiddenReloadThreshold && this.appConfig.pageHiddenReloadThreshold > 0;\n\n if (this.isOnline && (this.pushProvider.isDisconnected || pageHiddenForTooLong)) {\n if (pageHiddenForTooLong) {\n this.ms2Tracking.track(trackingConstants.EVENT_RELOAD_HIDDEN, {\n [trackingConstants.PAGE_RELOAD_AFTER_HIDDEN]: pageHiddenDuration,\n });\n }\n this.requestReload(FreshDataType.DataAndPush);\n }\n };\n\n private onlineChange = ({ isOnline, offlineDuration }: { isOnline: boolean; offlineDuration?: number }) => {\n this.isOnline = isOnline;\n\n if (!isOnline) {\n return;\n }\n\n const offlineForTooLong =\n (offlineDuration || 0) > this.appConfig.offlineDurationReloadThreshold && this.appConfig.offlineDurationReloadThreshold > 0;\n\n if (this.isVisible && (offlineForTooLong || this.pushProvider.isDisconnected)) {\n if (offlineForTooLong) {\n this.ms2Tracking.track(trackingConstants.EVENT_RELOAD_OFFLINE, {\n [trackingConstants.PAGE_RELOAD_AFTER_OFFLINE]: offlineDuration,\n });\n }\n this.requestReload(FreshDataType.DataAndPush);\n }\n };\n\n private async requestReload(type: FreshDataType): Promise {\n if (type === FreshDataType.DataAndPush) {\n await this.cdsPushService.restart();\n }\n\n this.reloadNeededStream.next(type);\n }\n}\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, map, of } from 'rxjs';\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, catchError, finalize, map, of, shareReplay, switchMap, throwError } from 'rxjs';\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 { 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 { 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';\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, map, of } from 'rxjs';\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, tap } from 'rxjs';\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\n create(events: GridSourceEvent[], options?: EventOption): Observable;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EventFactory {\n private factories: BaseFactory[];\n\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 { Attribute, DestroyRef, Directive, ElementRef, Input, NgZone, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SmoothScroll } from '@frontend/sports/common/core/feature/smooth-scroll';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { DeviceService } from '@frontend/vanilla/core';\n\ninterface ViewportPosition {\n scrollLeft: number;\n width: number;\n}\n\ntype Mode = 'center' | 'next-item';\n\n@Directive({\n selector: '[msScrollSelectedInView]',\n standalone: true,\n})\nexport class ScrollSelectedInViewDirective implements OnInit {\n private lastSelectedItem?: string;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private element: ElementRef,\n private smoothScroll: SmoothScroll,\n private timerService: TimerService,\n private deviceService: DeviceService,\n private ngZone: NgZone,\n @Attribute('mode') private mode: Mode,\n ) {\n this.mode = this.mode || 'center';\n }\n\n @Input('msScrollSelectedInView')\n set target(value: string) {\n this.ngZone.runOutsideAngular(() => {\n this.timerService.setTimeout(() => this.selectedItemChangedHandler(value), 250);\n });\n }\n\n ngOnInit(): void {\n this.ngZone.runOutsideAngular(() => {\n this.deviceService.orientation.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.onOrientationChange);\n });\n }\n\n private selectedItemChangedHandler(value: string): void {\n if ((this.deviceService.isMobile && this.lastSelectedItem === value) || (!this.deviceService.isMobile && !value)) {\n return;\n }\n\n this.lastSelectedItem = value;\n\n const scrollableContainer = this.element.nativeElement.children[0];\n if (!scrollableContainer) {\n return;\n }\n\n const child = scrollableContainer.querySelector(`[data-menu-item-id=\"${value}\"]`);\n if (!child) {\n return;\n }\n\n const viewportPosition: ViewportPosition = {\n scrollLeft: scrollableContainer.scrollLeft,\n width: scrollableContainer.offsetWidth,\n };\n\n let scrollLeft = 0;\n if (this.mode === 'center') {\n scrollLeft = this.centerScroller(child, viewportPosition);\n } else {\n scrollLeft = this.nextItemScroller(child, viewportPosition);\n }\n\n this.smoothScroll.scrollLeftTo(scrollableContainer, scrollLeft, 350);\n }\n\n private centerScroller(child: HTMLElement, viewportPosition: ViewportPosition): number {\n const childPosition = this.elementViewportPosition(child, viewportPosition);\n const viewportMiddle = viewportPosition.width / 2;\n\n const childPositionMiddle = childPosition.scrollLeft + childPosition.width / 2;\n const scrollLeft = viewportPosition.scrollLeft + (childPositionMiddle - viewportMiddle);\n\n return Math.max(0, scrollLeft);\n }\n\n private nextItemScroller(child: HTMLElement, viewportPosition: ViewportPosition): number {\n const dontScroll = viewportPosition.scrollLeft;\n\n const nextElement = child.nextElementSibling;\n if (nextElement) {\n const nextPosition = this.elementViewportPosition(nextElement, viewportPosition);\n const nextScrollLeft = nextPosition.scrollLeft + nextPosition.width - viewportPosition.width;\n\n if (nextScrollLeft > 0) {\n return nextScrollLeft + viewportPosition.scrollLeft;\n }\n } else {\n return child.offsetLeft;\n }\n\n const prevElement = child.previousElementSibling;\n if (prevElement) {\n const prevPosition = this.elementViewportPosition(prevElement, viewportPosition);\n const prevScrollLeft = prevPosition.scrollLeft;\n\n if (prevScrollLeft < 0) {\n return prevScrollLeft + viewportPosition.scrollLeft;\n }\n } else {\n return 0;\n }\n\n return dontScroll;\n }\n\n private elementViewportPosition(element: HTMLElement, viewportPosition: ViewportPosition): ViewportPosition {\n return {\n scrollLeft: element.offsetLeft - viewportPosition.scrollLeft,\n width: element.offsetWidth,\n };\n }\n\n private onOrientationChange = () => {\n if (this.lastSelectedItem) {\n this.selectedItemChangedHandler(this.lastSelectedItem);\n }\n };\n}\n","import { ɵglobal as _global } from '@angular/core';\nfunction push(heap, node) {\n const index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n const first = heap[0];\n return first === undefined ? null : first;\n}\nfunction pop(heap) {\n const first = heap[0];\n if (first !== undefined) {\n const last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n return first;\n } else {\n return null;\n }\n}\nfunction siftUp(heap, node, i) {\n let index = i;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const parentIndex = index - 1 >>> 1;\n const parent = heap[parentIndex];\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n}\nfunction siftDown(heap, node, i) {\n let index = i;\n const length = heap.length;\n while (index < length) {\n const leftIndex = (index + 1) * 2 - 1;\n const left = heap[leftIndex];\n const rightIndex = leftIndex + 1;\n const right = heap[rightIndex];\n // If the left or right node is smaller, swap with the smaller of those.\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n}\nfunction compare(a, b) {\n // Compare sort index first, then task id.\n const diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\n// see https://github.com/facebook/react/blob/main/packages/scheduler/src/forks/Scheduler.js\nlet getCurrentTime;\nconst hasPerformanceNow = typeof _global.performance === 'object' && typeof _global.performance.now === 'function';\nif (hasPerformanceNow) {\n const localPerformance = _global.performance;\n getCurrentTime = () => localPerformance.now();\n} else {\n const localDate = Date;\n const initialTime = localDate.now();\n getCurrentTime = () => localDate.now() - initialTime;\n}\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nconst maxSigned31BitInt = 1073741823;\n// Times out immediately\nconst IMMEDIATE_PRIORITY_TIMEOUT = -1;\n// Eventually times out\nconst USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nconst NORMAL_PRIORITY_TIMEOUT = 5000;\nconst LOW_PRIORITY_TIMEOUT = 10000;\n// Never times out\nconst IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt;\n// Tasks are stored on a min heap\nconst taskQueue = [];\nconst timerQueue = [];\n// Incrementing id counter. Used to maintain insertion order.\nlet taskIdCounter = 1;\nlet currentTask = null;\nlet currentPriorityLevel = 3 /* PriorityLevel.NormalPriority */;\n// This is set while performing work, to prevent re-entrancy.\nlet isPerformingWork = false;\nlet isHostCallbackScheduled = false;\nlet isHostTimeoutScheduled = false;\n// Capture local references to native APIs, in case a polyfill overrides them.\nconst setTimeout = _global.setTimeout;\nconst clearTimeout = _global.clearTimeout;\nconst setImmediate = _global.setImmediate; // IE and Node.js + jsdom\nconst messageChannel = _global.MessageChannel;\nconst defaultZone = {\n run: fn => fn()\n};\nfunction advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n let timer = peek(timerQueue);\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n timer = peek(timerQueue);\n }\n}\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n const firstTimer = peek(timerQueue);\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\nfunction flushWork(hasTimeRemaining, initialTime) {\n // We'll need a host callback the next time work is scheduled.\n isHostCallbackScheduled = false;\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n isPerformingWork = true;\n const previousPriorityLevel = currentPriorityLevel;\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\nfunction workLoop(hasTimeRemaining, initialTime, _currentTask) {\n let currentTime = initialTime;\n if (_currentTask) {\n currentTask = _currentTask;\n } else {\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n }\n let zoneChanged = false;\n const hitDeadline = () => currentTask && currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost());\n if (!hitDeadline()) {\n const ngZone = currentTask.ngZone || defaultZone;\n ngZone.run(() => {\n while (currentTask !== null && !zoneChanged) {\n if (hitDeadline()) {\n break;\n }\n const callback = currentTask.callback;\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n const continuationCallback = callback(didUserCallbackTimeout);\n currentTime = getCurrentTime();\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n currentTask = peek(taskQueue);\n zoneChanged = currentTask?.ngZone != null && currentTask.ngZone !== ngZone;\n }\n });\n }\n // we need to check if leaving `NgZone` (tick => detectChanges) caused other\n // directives to add tasks to the queue. If there is one and we still didn't\n // hit the deadline, run the workLoop again in order to flush everything thats\n // left.\n // Otherwise, newly added tasks won't run as `performingWork` is still `true`\n currentTask = currentTask ?? peek(taskQueue);\n // We should also re-calculate the currentTime, as we need to account for the execution\n // time of the NgZone tasks as well.\n // If there is still a task in the queue, but no time is left for executing it,\n // the scheduler will re-schedule the next tick anyway\n currentTime = getCurrentTime();\n if (zoneChanged || currentTask && !hitDeadline()) {\n return workLoop(hasTimeRemaining, currentTime, currentTask);\n }\n // Return whether there's additional work\n if (currentTask !== null) {\n return true;\n } else {\n const firstTimer = peek(timerQueue);\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n return false;\n }\n}\nfunction scheduleCallback(priorityLevel, callback, options) {\n const currentTime = getCurrentTime();\n let startTime;\n if (typeof options === 'object' && options !== null) {\n const delay = options.delay;\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n let timeout;\n switch (priorityLevel) {\n case 1 /* PriorityLevel.ImmediatePriority */:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n case 2 /* PriorityLevel.UserBlockingPriority */:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n case 5 /* PriorityLevel.IdlePriority */:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n case 4 /* PriorityLevel.LowPriority */:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n case 3 /* PriorityLevel.NormalPriority */:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n const expirationTime = startTime + timeout;\n const newTask = {\n id: taskIdCounter++,\n callback,\n priorityLevel,\n startTime,\n expirationTime,\n sortIndex: -1,\n ngZone: options?.ngZone || null\n };\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n }\n // Schedule a timeout.\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n // Schedule a host callback, if needed. If we're already performing work,\n // wait until the next time we yield.\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n // Null out the callback to indicate the task has been canceled. (Can't\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n task.callback = null;\n}\nlet isMessageLoopRunning = false;\nlet scheduledHostCallback = null;\nlet taskTimeoutID = -1;\n// Scheduler periodically yields in case there is other work on the main\n// thread, like user events. By default, it yields multiple times per frame.\n// It does not attempt to align with frame boundaries, since most tasks don't\n// need to be frame aligned; for those that do, use requestAnimationFrame.\nlet yieldInterval = 16;\nlet needsPaint = false;\nlet queueStartTime = -1;\nfunction shouldYieldToHost() {\n if (needsPaint) {\n // There's a pending paint (signaled by `requestPaint`). Yield now.\n return true;\n }\n const timeElapsed = getCurrentTime() - queueStartTime;\n if (timeElapsed < yieldInterval) {\n // The main thread has only been blocked for a really short amount of time;\n // smaller than a single frame. Don't yield yet.\n return false;\n }\n // `isInputPending` isn't available. Yield now.\n return true;\n}\nfunction requestPaint() {\n needsPaint = true;\n}\nfunction forceFrameRate(fps) {\n if (fps < 0 || fps > 125) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.error('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n }\n return;\n }\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n // be aware of browser housekeeping work (~6ms per frame)\n // according to https://developers.google.com/web/fundamentals/performance/rendering\n yieldInterval = Math.max(5, yieldInterval - 6);\n}\nconst performWorkUntilDeadline = () => {\n if (scheduledHostCallback !== null) {\n const currentTime = getCurrentTime();\n // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n queueStartTime = currentTime;\n const hasTimeRemaining = true;\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n //\n // Intentionally not using a try-catch, since that makes some debugging\n // techniques harder. Instead, if `scheduledHostCallback` errors, then\n // `hasMoreWork` will remain true, and we'll continue the work loop.\n let hasMoreWork = true;\n try {\n hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n } finally {\n if (hasMoreWork) {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n schedulePerformWorkUntilDeadline();\n } else {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n }\n }\n } else {\n isMessageLoopRunning = false;\n }\n // Yielding to the browser will give it a chance to paint, so we can\n // reset this.\n needsPaint = false;\n};\nlet schedulePerformWorkUntilDeadline;\nif (typeof setImmediate === 'function') {\n // Node.js and old IE.\n // There's a few reasons for why we prefer setImmediate.\n //\n // Unlike MessageChannel, it doesn't prevent a Node.js process from exiting.\n // (Even though this is a DOM fork of the Scheduler, you could get here\n // with a mix of Node.js 15+, which has a MessageChannel, and jsdom.)\n // https://github.com/facebook/react/issues/20756\n //\n // But also, it runs earlier which is the semantic we want.\n // If other browsers ever implement it, it's better to use it.\n // Although both of these would be inferior to native scheduling.\n schedulePerformWorkUntilDeadline = () => {\n setImmediate(performWorkUntilDeadline);\n };\n} else if (typeof messageChannel !== 'undefined') {\n const channel = new messageChannel();\n const port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = () => {\n port.postMessage(null);\n };\n} else {\n // We should only fallback here in non-browser environments.\n schedulePerformWorkUntilDeadline = () => {\n setTimeout(performWorkUntilDeadline, 0);\n };\n}\nfunction requestHostCallback(callback) {\n scheduledHostCallback = callback;\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n schedulePerformWorkUntilDeadline();\n }\n}\nfunction requestHostTimeout(callback, ms) {\n taskTimeoutID = setTimeout(() => {\n callback(getCurrentTime());\n }, ms);\n}\nfunction cancelHostTimeout() {\n clearTimeout(taskTimeoutID);\n taskTimeoutID = -1;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { cancelCallback, forceFrameRate, scheduleCallback };\n","import { isObservable, of, Subject } from 'rxjs';\nimport { map, switchAll, distinctUntilChanged } from 'rxjs/operators';\n\n/**\n * This Observable factory creates an Observable out of a static value or an Observable.\n *\n * @param o - the value to coerce\n */\nfunction coerceObservable(o) {\n return isObservable(o) ? o : of(o);\n}\n\n/**\n * This operator maps an Observable out of a static value or an Observable.\n *\n */\nfunction coerceObservableWith() {\n return o$ => map(coerceObservable)(o$);\n}\n\n/**\n * This operator takes an Observable of values ot Observables aof values and\n * It forwards only distinct values from distinct incoming Observables or values.\n * This comes in handy in any environment where you handle processing of incoming dynamic values and their state.\n *\n * Optionally you can pass a flatten strategy to get find grained control of the flattening process. E.g. mergeAll, switchAll\n *\n * @param flattenOperator - determines the flattening strategy e.g. mergeAll, concatAll, exhaust, switchAll. default is switchAll\n *\n */\nfunction coerceDistinctWith(flattenOperator) {\n flattenOperator = flattenOperator || switchAll();\n return o$ => o$.pipe(coerceObservableWith(), distinctUntilChanged(), flattenOperator, distinctUntilChanged());\n}\n\n/**\n * A factory function returning an object to handle the process of merging Observable next notifications into one\n * Observable. This API takes away the clumsy handling of static values and Observable, reduces the number of\n * emissions by:\n * - only merging distinct Observables\n * - only emit distinct values of the merged result\n *\n * You can next a Observable of `U` multiple times and merge them into the Observable exposed under one optimized\n * `values$`\n *\n */\nfunction coerceAllFactory(subjectFactory, flattenOperator) {\n const observablesSubject = subjectFactory ? subjectFactory() : new Subject();\n flattenOperator = flattenOperator || switchAll();\n const values$ = observablesSubject.pipe(coerceDistinctWith(flattenOperator));\n return {\n next(observable) {\n observablesSubject.next(observable);\n },\n values$\n };\n}\n\n/**\n * This Observable factory creates an Observable out of a static value or an Observable.\n * It forwards only distinct values from distinct incoming Observables or values.\n * This comes in handy in any environment where you handle processing of incoming dynamic values and their state.\n *\n * Optionally you can pass a flatten strategy to get find grained control of the flattening process. E.g. mergeAll, switchAll\n *\n * @param o$ - The Observable to coerce and map to a Observable with distinct values\n * @param flattenOperator - determines the flattening strategy e.g. mergeAll, concatAll, exhaust, switchAll. default is switchAll\n */\nfunction coerceDistinctObservable(o$, flattenOperator) {\n flattenOperator = flattenOperator || switchAll();\n return coerceObservable(o$).pipe(distinctUntilChanged(), flattenOperator, distinctUntilChanged());\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { coerceAllFactory, coerceDistinctObservable, coerceDistinctWith, coerceObservable, coerceObservableWith };\n","import { coalescingManager, coalesceWith } from '@rx-angular/cdk/coalescing';\nimport { forceFrameRate, scheduleCallback, cancelCallback } from '@rx-angular/cdk/internals/scheduler';\nimport { Observable, throwError, ReplaySubject, BehaviorSubject, fromEvent } from 'rxjs';\nimport { filter, switchMap, mapTo, tap, catchError, map, take, switchAll, startWith, share, shareReplay, takeUntil } from 'rxjs/operators';\nimport * as i0 from '@angular/core';\nimport { NgZone, InjectionToken, Injectable, Optional, Inject } from '@angular/core';\nimport { getZoneUnPatchedApi } from '@rx-angular/cdk/internals/core';\nimport { coerceAllFactory } from '@rx-angular/cdk/coercing';\n\n// set default to 60fps\nforceFrameRate(60);\nconst immediateStrategy = {\n name: 'immediate',\n work: cdRef => cdRef.detectChanges(),\n behavior: ({\n work,\n scope,\n ngZone\n }) => {\n return o$ => o$.pipe(scheduleOnQueue(work, {\n ngZone,\n priority: 1 /* PriorityLevel.ImmediatePriority */,\n scope\n }));\n }\n};\nconst userBlockingStrategy = {\n name: 'userBlocking',\n work: cdRef => cdRef.detectChanges(),\n behavior: ({\n work,\n scope,\n ngZone\n }) => {\n return o$ => o$.pipe(scheduleOnQueue(work, {\n ngZone,\n priority: 2 /* PriorityLevel.UserBlockingPriority */,\n scope\n }));\n }\n};\nconst normalStrategy = {\n name: 'normal',\n work: cdRef => cdRef.detectChanges(),\n behavior: ({\n work,\n scope,\n ngZone\n }) => {\n return o$ => o$.pipe(scheduleOnQueue(work, {\n ngZone,\n priority: 3 /* PriorityLevel.NormalPriority */,\n scope\n }));\n }\n};\nconst lowStrategy = {\n name: 'low',\n work: cdRef => cdRef.detectChanges(),\n behavior: ({\n work,\n scope,\n ngZone\n }) => {\n return o$ => o$.pipe(scheduleOnQueue(work, {\n ngZone,\n priority: 4 /* PriorityLevel.LowPriority */,\n scope\n }));\n }\n};\nconst idleStrategy = {\n name: 'idle',\n work: cdRef => cdRef.detectChanges(),\n behavior: ({\n work,\n scope,\n ngZone\n }) => {\n return o$ => o$.pipe(scheduleOnQueue(work, {\n ngZone,\n priority: 5 /* PriorityLevel.IdlePriority */,\n scope\n }));\n }\n};\nfunction scheduleOnQueue(work, options) {\n const scope = options.scope || {};\n return o$ => o$.pipe(filter(() => !coalescingManager.isCoalescing(scope)), switchMap(v => new Observable(subscriber => {\n coalescingManager.add(scope);\n const task = scheduleCallback(options.priority, () => {\n work();\n coalescingManager.remove(scope);\n subscriber.next(v);\n }, {\n delay: options.delay,\n ngZone: options.ngZone\n });\n return () => {\n coalescingManager.remove(scope);\n cancelCallback(task);\n };\n }).pipe(mapTo(v))));\n}\nconst RX_CONCURRENT_STRATEGIES = {\n immediate: immediateStrategy,\n userBlocking: userBlockingStrategy,\n normal: normalStrategy,\n low: lowStrategy,\n idle: idleStrategy\n};\nconst animationFrameTick = () => new Observable(subscriber => {\n // use the unpatched API no avoid zone interference\n const id = getZoneUnPatchedApi('requestAnimationFrame')(() => {\n subscriber.next(0);\n subscriber.complete();\n });\n return () => {\n // use the unpatched API no avoid zone interference\n getZoneUnPatchedApi('cancelAnimationFrame')(id);\n };\n});\nconst localCredentials = {\n name: 'local',\n work: (cdRef, _, notification) => {\n cdRef.detectChanges();\n },\n behavior: ({\n work,\n scope,\n ngZone\n }) => o$ => o$.pipe(coalesceWith(animationFrameTick(), scope), tap(() => ngZone ? ngZone.run(() => work()) : work()))\n};\nconst noopCredentials = {\n name: 'noop',\n work: () => void 0,\n behavior: () => o$ => o$\n};\nconst nativeCredentials = {\n name: 'native',\n work: cdRef => cdRef.markForCheck(),\n behavior: ({\n work,\n ngZone\n }) => o$ => o$.pipe(tap(() => ngZone && !NgZone.isInAngularZone() ? ngZone.run(() => work()) : work()))\n};\nconst RX_NATIVE_STRATEGIES = {\n native: nativeCredentials,\n noop: noopCredentials,\n local: localCredentials\n};\nconst RX_RENDER_STRATEGIES_CONFIG = new InjectionToken('rxa-render-strategies-config');\nconst RX_RENDER_STRATEGIES_DEFAULTS = {\n primaryStrategy: 'normal',\n customStrategies: {\n ...RX_NATIVE_STRATEGIES,\n ...RX_CONCURRENT_STRATEGIES\n },\n patchZone: true,\n parent: false\n};\nfunction mergeDefaultConfig(cfg) {\n const custom = cfg ? cfg : {\n customStrategies: {}\n };\n return {\n ...RX_RENDER_STRATEGIES_DEFAULTS,\n ...custom,\n customStrategies: {\n ...custom.customStrategies,\n ...RX_RENDER_STRATEGIES_DEFAULTS.customStrategies\n }\n };\n}\n\n/**\n * @internal\n *\n * @param value\n * @param strategy\n * @param workFactory\n * @param options\n */\nfunction onStrategy(value, strategy, workFactory, options = {}) {\n return new Observable(subscriber => {\n subscriber.next(value);\n }).pipe(strategy.behavior({\n work: () => workFactory(value, strategy.work, options),\n scope: options.scope || {},\n ngZone: options.ngZone\n }), catchError(error => throwError(() => [error, value])), map(() => value), take(1));\n}\n\n/**\n * @internal\n *\n * A factory function returning an object to handle the process of turning strategy names into `RxStrategyCredentials`\n * You can next a strategy name as Observable or string and get an Observable of `RxStrategyCredentials`\n *\n * @param defaultStrategyName\n * @param strategies\n */\nfunction strategyHandling(defaultStrategyName, strategies) {\n const hotFlattened = coerceAllFactory(() => new ReplaySubject(1), switchAll());\n return {\n strategy$: hotFlattened.values$.pipe(startWith(defaultStrategyName), nameToStrategyCredentials(strategies, defaultStrategyName), share()),\n next(name) {\n hotFlattened.next(name);\n }\n };\n}\n/**\n * @internal\n */\nfunction nameToStrategyCredentials(strategies, defaultStrategyName) {\n return o$ => o$.pipe(map(name => name && Object.keys(strategies).includes(name) ? strategies[name] : strategies[defaultStrategyName]));\n}\n\n/**\n * @description\n * RxStrategyProvider is a wrapper service that you can use to consume strategies and schedule your code execution.\n *\n * @example\n * Component({\n * selector: 'app-service-communicator',\n * template: ``\n * });\n * export class ServiceCommunicationComponent {\n * private currentUserSettings;\n *\n * constructor(\n * private strategyProvider: RxStrategyProvider,\n * private userService: UserService,\n * private backgroundSync: BackgroundSyncService\n * ) {\n * this.userService.fetchCurrentUserSettings\n * .pipe(\n * tap(settings => (this.currentUserSettings = settings)),\n * this.strategyProvider.scheduleWith(\n * settings => this.backgroundSync.openConnection(settings),\n * { strategy: 'idle' }\n * )\n * )\n * .subscribe();\n * }\n * }\n *\n * @docsCategory RxStrategyProvider\n * @docsPage RxStrategyProvider\n */\nlet RxStrategyProvider = /*#__PURE__*/(() => {\n class RxStrategyProvider {\n _strategies$ = new BehaviorSubject(undefined);\n _primaryStrategy$ = new BehaviorSubject(undefined);\n _cfg;\n /**\n * @description\n * Returns current `RxAngularConfig` used in the service.\n * Config includes:\n * - strategy that currently in use - `primaryStrategy`\n * - array of custom user defined strategies - `customStrategies`\n * - setting that is responsible for running in our outside of the zone.js - `patchZone`\n */\n get config() {\n return this._cfg;\n }\n /**\n * @description\n * Returns object that contains key-value pairs of strategy names and their credentials (settings) that are available in the service.\n */\n get strategies() {\n return this._strategies$.getValue();\n }\n /**\n * @description\n * Returns an array of strategy names available in the service.\n */\n get strategyNames() {\n return Object.values(this.strategies).map(s => s.name);\n }\n /**\n * @description\n * Returns current strategy of the service.\n */\n get primaryStrategy() {\n return this._primaryStrategy$.getValue().name;\n }\n /**\n * @description\n * Set's the strategy that will be used by the service.\n */\n set primaryStrategy(strategyName) {\n this._primaryStrategy$.next(this.strategies[strategyName]);\n }\n /**\n * @description\n * Current strategy of the service as an observable.\n */\n primaryStrategy$ = this._primaryStrategy$.asObservable();\n /**\n * @description\n * Returns observable of an object that contains key-value pairs of strategy names and their credentials (settings) that are available in the service.\n */\n strategies$ = this._strategies$.asObservable();\n /**\n * @description\n * Returns an observable of an array of strategy names available in the service.\n */\n strategyNames$ = this.strategies$.pipe(map(strategies => Object.values(strategies).map(s => s.name)), shareReplay({\n bufferSize: 1,\n refCount: true\n }));\n /**\n * @internal\n */\n constructor(cfg) {\n this._cfg = mergeDefaultConfig(cfg);\n this._strategies$.next(this._cfg.customStrategies);\n this.primaryStrategy = this.config.primaryStrategy;\n }\n /**\n * @description\n * Allows to schedule a work inside rxjs `pipe`. Accepts the work and configuration options object.\n * - work is any function that should be executed\n * - (optional) options includes strategy, patchZone and scope\n *\n * Scope is by default a subscription but you can also pass `this` and then the scope will be current component.\n * Scope setup is useful if your work is some of the methods of `ChangeDetectorRef`. Only one change detection will be triggered if you have multiple schedules of change detection methods and scope is set to `this`.\n *\n * @example\n * myObservable$.pipe(\n * this.strategyProvider.scheduleWith(() => myWork(), {strategy: 'idle', patchZone: false})\n * ).subscribe();\n *\n * @return MonoTypeOperatorFunction\n */\n scheduleWith(work, options) {\n const strategy = this.strategies[options?.strategy || this.primaryStrategy];\n const scope = options?.scope || {};\n const _work = getWork(work, options?.patchZone);\n const ngZone = options?.patchZone || undefined;\n return o$ => o$.pipe(switchMap(v => onStrategy(v, strategy, _v => {\n _work(_v);\n }, {\n scope,\n ngZone\n })));\n }\n /**\n * @description\n * Allows to schedule a work as an observable. Accepts the work and configuration options object.\n * - work is any function that should be executed\n * - (optional) options includes strategy, patchZone and scope\n *\n * Scope is by default a subscription but you can also pass `this` and then the scope will be current component.\n * Scope setup is especially useful if you provide work that will trigger a change detection.\n *\n * @example\n * this.strategyProvider.schedule(() => myWork(), {strategy: 'idle', patchZone: false}).subscribe();\n *\n * @return Observable\n */\n schedule(work, options) {\n const strategy = this.strategies[options?.strategy || this.primaryStrategy];\n const scope = options?.scope || {};\n const _work = getWork(work, options?.patchZone);\n const ngZone = options?.patchZone || undefined;\n let returnVal;\n return onStrategy(null, strategy, () => {\n returnVal = _work();\n }, {\n scope,\n ngZone\n }).pipe(map(() => returnVal));\n }\n /**\n * @description\n * Allows to schedule a change detection cycle. Accepts the ChangeDetectorRef and configuration options object.\n * Options include:\n * - afterCD which is the work that should be executed after change detection cycle.\n * - abortCtrl is an AbortController that you can use to cancel the scheduled cycle.\n *\n * @example\n * this.strategyProvider.scheduleCd(this.changeDetectorRef, {afterCD: myWork()});\n *\n * @return AbortController\n */\n scheduleCD(cdRef, options) {\n const strategy = this.strategies[options?.strategy || this.primaryStrategy];\n const scope = options?.scope || cdRef;\n const abC = options?.abortCtrl || new AbortController();\n const ngZone = options?.patchZone || undefined;\n const work = getWork(() => {\n strategy.work(cdRef, scope);\n if (options?.afterCD) {\n options.afterCD();\n }\n }, options.patchZone);\n onStrategy(null, strategy, () => {\n work();\n }, {\n scope,\n ngZone\n }).pipe(takeUntil(fromEvent(abC.signal, 'abort'))).subscribe();\n return abC;\n }\n /** @nocollapse */\n static ɵfac = function RxStrategyProvider_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || RxStrategyProvider)(i0.ɵɵinject(RX_RENDER_STRATEGIES_CONFIG, 8));\n };\n /** @nocollapse */\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RxStrategyProvider,\n factory: RxStrategyProvider.ɵfac,\n providedIn: 'root'\n });\n }\n return RxStrategyProvider;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getWork(work, patchZone) {\n let _work = work;\n if (patchZone) {\n _work = args => patchZone.run(() => work(args));\n }\n return _work;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RX_CONCURRENT_STRATEGIES, RX_NATIVE_STRATEGIES, RX_RENDER_STRATEGIES_CONFIG, RxStrategyProvider, onStrategy, strategyHandling };\n","\n \n\n\n\n
    \n
  • \n \n \n \n \n \n \n \n \n
  • \n
\n
\n\n\n \n {{ badge.title }}\n\n
\n\n \n \n \n\n \n \n {{ tab.title }}\n \n\n \n {{ tab.count }}\n \n\n","import { Component, EventEmitter, HostBinding, Input, NgZone, OnChanges, Output, SimpleChanges, TemplateRef, ViewChild, inject } from '@angular/core';\n\nimport { ScrollAdapterButtonSize, ScrollAdapterComponent } from '@frontend/sports/common/core/feature/scroll-adapter';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\n\nimport { RedirectHelperService } from '../navigation-core/redirect-helper.service';\nimport { TabBarEvent, TabBarItem } from './tab-bar.models';\n\n@Component({\n selector: 'ms-tab-bar',\n templateUrl: 'tab-bar.html',\n})\nexport class TabBarComponent implements OnChanges {\n @Input() tabs: TabBarItem[];\n @Input() scrollSize = 200;\n @Input() scrollEnabled = true;\n @Input() stretch = false;\n @Input() class = '';\n @Input() iconTemplate: TemplateRef;\n @Input() buttonSize = ScrollAdapterButtonSize.Small;\n @Output() select = new EventEmitter();\n @Input() signPostTemplate: TemplateRef;\n @Input() isNewFixture = false;\n @ViewChild(ScrollAdapterComponent) scrollAdapter: ScrollAdapterComponent;\n @Output() arrowSelect = new EventEmitter<'left' | 'right'>();\n\n @HostBinding('class')\n get componentClass(): string {\n return `${this.hostClass} ${this.class}`.trim();\n }\n\n get hostClass(): string {\n return 'tab-bar';\n }\n\n get containerClass(): string {\n return 'tab-bar-container';\n }\n\n get itemClass(): string {\n return 'tab-bar-item';\n }\n\n get active(): TabBarItem | undefined {\n return this.tabs && this.tabs.filter((tab) => tab.active).pop();\n }\n\n private ngZone = inject(NgZone);\n\n constructor(\n private timer: TimerService,\n private redirectHelperService: RedirectHelperService,\n private deviceService: DeviceService,\n private strategy: RxStrategyProvider,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.scrollEnabled && changes.tabs && !changes.tabs.firstChange) {\n this.timer.setTimeout(() => this.scrollAdapter.setArrows());\n }\n if (this.isNewFixture) {\n this.scrollAdapter?.resetArrows();\n }\n }\n\n selected(event: Event, selected: TabBarItem): void {\n event.preventDefault();\n\n const canBeSelected = !selected.disabled && !selected.active;\n if (canBeSelected) {\n this.tabs.forEach((tab) => (tab.active = tab.id === selected.id));\n\n this.strategy\n .schedule(\n () => {\n this.select.emit({ ...event, active: selected });\n\n const shouldNavigate = selected.url && !this.shouldNavigateByUrl(selected);\n if (shouldNavigate) {\n this.redirectHelperService.goToPage(selected.url, selected.ignoreBrowserHistory);\n }\n },\n { scope: this, patchZone: this.ngZone },\n )\n .subscribe();\n }\n }\n\n shouldNavigateByUrl(tab: TabBarItem): boolean {\n return Boolean(tab.url && (this.deviceService.isRobot || !tab.ignoreBrowserHistory));\n }\n\n trackTab(index: number, tab: TabBarItem): number {\n return tab.id;\n }\n\n tabClass(tab: TabBarItem): string {\n let classes = this.itemClass;\n\n if (tab.classes) {\n classes += ` ${tab.classes}`;\n }\n\n if (tab.active) {\n classes += ' active';\n }\n\n if (tab.disabled) {\n classes += ' disabled';\n }\n\n return classes;\n }\n\n tabFormatted(text: string): boolean {\n return text?.includes('<');\n }\n\n track(event: any) {\n this.arrowSelect.emit(event);\n }\n}\n","import { CommonModule } 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 { PlainLinkComponent } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { CrmPromotionModule } from '../crm-promotion/crm-promotion.module';\nimport { DirectivesModule } from '../directives/directives.module';\nimport { TabBarComponent } from './tab-bar.component';\n\n@NgModule({\n imports: [CommonModule, DirectivesModule, AutomationModule, CrmPromotionModule, PlainLinkComponent, ScrollAdapterComponent, IconCustomComponent],\n exports: [TabBarComponent],\n declarations: [TabBarComponent],\n})\nexport class TabBarModule {}\n","
\n
\n
\n
\n \n @if (showCloseButton) {\n \n }\n
\n
\n
\n {{ notificationHeaderTitle }} \n
\n \n @if (linkValues?.link && linkValues?.href) {\n \n }\n
\n
\n
\n
\n
\n
\n
\n","import { NgClass, NgIf } from '@angular/common';\nimport { AfterViewChecked, Component, ElementRef, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\nimport { DsButtonIcon } from '@frontend/ui/button-icon';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nenum EpcotNotificationTypes {\n Info = 'info',\n Error = 'error',\n Success = 'success',\n Warning = 'warning',\n}\n\nexport interface LinkValues {\n href: string;\n link: string;\n target: string;\n}\n\n@Component({\n selector: 'ms-epcot-notification',\n templateUrl: 'notification.html',\n standalone: true,\n styleUrls: ['notification.scss'],\n imports: [NgClass, NgIf, IconCustomComponent, DsButtonIcon],\n})\nexport class EpcotNotificationComponent implements AfterViewChecked, OnChanges {\n @Input() notificationType?: string;\n @Input() message?: string;\n @Input() notificationHeaderTitle?: string;\n @Input() showCloseButton = false;\n @Input() linkValues?: LinkValues;\n @Output() linkClick = new EventEmitter();\n @Output() closeButtonClick = new EventEmitter();\n\n notificationInfo: { type: string; icon: string; iconColor: string } = {\n type: 'info',\n icon: 'theme-info-i',\n iconColor: 'info-Icon',\n };\n\n iconColor: string;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnChanges(): void {\n switch (this.notificationType) {\n case EpcotNotificationTypes.Info:\n this.notificationInfo = { type: 'info', icon: 'theme-info-i', iconColor: 'info-Icon' };\n break;\n case EpcotNotificationTypes.Error:\n this.notificationInfo = { type: 'error', icon: 'theme-error-i', iconColor: 'error-Icon' };\n break;\n case EpcotNotificationTypes.Success:\n this.notificationInfo = { type: 'success', icon: 'theme-win', iconColor: 'success-Icon' };\n break;\n case EpcotNotificationTypes.Warning:\n this.notificationInfo = { type: 'warning', icon: 'theme-warning', iconColor: 'warning-Icon' };\n break;\n }\n }\n\n onCloseClick(): void {\n this.closeButtonClick.next();\n }\n\n ngAfterViewChecked(): void {\n if (this.elementRef.nativeElement.querySelector('#maxstakeSettings')) {\n this.linkClick.emit();\n }\n }\n\n onLinkClick(): void {\n this.linkClick.emit();\n }\n}\n","import { FixtureBase, Game, Option, OptionMarket, Participant } from '@cds/betting-offer';\nimport { FixtureAddons } from '@cds/betting-offer/add-ons';\nimport { MessageEnvelope, MessageType } from '@cds/push';\nimport { BetBuilderExpiringSubscriptionCommand, BetBuilderOfferUpdateCommand } from '@cds/push/bet-builder-commands';\nimport { CashoutNotification } from '@cds/push/cashout-commands';\nimport {\n FixtureCommandBase,\n FixtureUpdateCommand,\n GameDeleteCommand,\n GameUpdateCommand,\n OptionMarketDeleteCommand,\n OptionMarketUpdateCommand,\n ParticipantUpdateCommand,\n PatchScoreboardCommand,\n PlayerStatsCommand,\n SlimScoreboardCommand,\n} from '@cds/push/fixture-commands';\nimport { OverAskOfferUpdateCommand } from '@cds/push/over-ask-commands';\nimport { merge } from 'lodash-es';\n\nexport interface FixtureMessageEnvelope extends MessageEnvelope {\n payload: FixtureCommandBase;\n}\n\nexport interface GameUpdateMessageEnvelope extends FixtureMessageEnvelope {\n payload: GameUpdateCommand;\n}\n\nexport interface GameDeleteMessageEnvelope extends FixtureMessageEnvelope {\n payload: GameDeleteCommand;\n}\n\nexport interface OptionMarketUpdateMessageEnvelope extends FixtureMessageEnvelope {\n payload: OptionMarketUpdateCommand;\n}\nexport interface FixtureUpdateMessageEnvelope extends FixtureMessageEnvelope {\n payload: FixtureUpdateCommand;\n}\n\nexport interface OptionMarketDeleteMessageEnvelope extends FixtureMessageEnvelope {\n payload: OptionMarketDeleteCommand;\n}\n\nexport interface ParticipantUpdateMessageEnvelope extends FixtureMessageEnvelope {\n payload: ParticipantUpdateCommand;\n}\n\nexport interface ScoreboardPatchMessageEnvelope extends FixtureMessageEnvelope {\n payload: PatchScoreboardCommand;\n}\n\nexport interface ScoreboardSlimMessageEnvelope extends FixtureMessageEnvelope {\n payload: SlimScoreboardCommand;\n}\n\nexport interface PlayerStatsUpdateMessageEnvelope extends FixtureMessageEnvelope {\n payload: PlayerStatsCommand;\n}\n\nexport interface CashoutUpdateMessageEnvelope extends MessageEnvelope {\n payload: CashoutNotification;\n}\n\nexport interface OverAskUpdateMessageEnvelope extends MessageEnvelope {\n payload: OverAskOfferUpdateCommand;\n}\n\nexport interface BetBuilderOfferUpdateMessageEnvelope extends MessageEnvelope {\n payload: BetBuilderOfferUpdateCommand;\n}\n\nexport interface BetBuilderExpiringSubscriptionEnvelope extends MessageEnvelope {\n payload: BetBuilderExpiringSubscriptionCommand;\n}\n\nexport function isFixtureUpdateEnvelope(envelope: MessageEnvelope): envelope is FixtureMessageEnvelope {\n return (\n isGameUpdateEnvelope(envelope) ||\n isGameDeleteEnvelope(envelope) ||\n isOptionMarketUpdateEnvelope(envelope) ||\n isOptionMarketDeleteEnvelope(envelope) ||\n isParticipantUpdateEnvelope(envelope) ||\n isScoreboardPatchEnvelope(envelope) ||\n isScoreboardSlimEnvelope(envelope) ||\n isFixtureSlimUpdateEnvelope(envelope) ||\n isPlayerStatsUpdateEnvelope(envelope)\n );\n}\n\nexport function isGameDeleteEnvelope(envelope: MessageEnvelope): envelope is GameDeleteMessageEnvelope {\n return envelope.messageType === MessageType.GameDelete;\n}\n\nexport function isGameUpdateEnvelope(envelope: MessageEnvelope): envelope is GameUpdateMessageEnvelope {\n return !!(envelope.messageType === MessageType.GameUpdate && (envelope.payload as GameUpdateCommand).game);\n}\n\nexport function isOptionMarketDeleteEnvelope(envelope: MessageEnvelope): envelope is OptionMarketDeleteMessageEnvelope {\n return envelope.messageType === MessageType.OptionMarketDelete;\n}\n\nexport function isOptionMarketUpdateEnvelope(envelope: MessageEnvelope): envelope is OptionMarketUpdateMessageEnvelope {\n return !!(envelope.messageType === MessageType.OptionMarketUpdate && (envelope.payload as OptionMarketUpdateCommand).optionMarket);\n}\n\nexport function isOptionMarketEnvelope(envelope: MessageEnvelope): envelope is OptionMarketUpdateMessageEnvelope | OptionMarketDeleteMessageEnvelope {\n return isOptionMarketUpdateEnvelope(envelope) || isOptionMarketDeleteEnvelope(envelope);\n}\n\nexport function isFixtureSlimUpdateEnvelope(envelope: MessageEnvelope): envelope is FixtureUpdateMessageEnvelope {\n return !!(envelope.messageType === MessageType.FixtureUpdate);\n}\n\nexport function isParticipantUpdateEnvelope(envelope: MessageEnvelope): envelope is ParticipantUpdateMessageEnvelope {\n return !!(envelope.messageType === MessageType.ParticipantUpdate && (envelope.payload as ParticipantUpdateCommand).participant);\n}\n\nexport function isScoreboardPatchEnvelope(envelope: MessageEnvelope): envelope is ScoreboardPatchMessageEnvelope {\n return !!(envelope.messageType === MessageType.ScoreboardPatch && (envelope.payload as PatchScoreboardCommand).patch);\n}\n\nexport function isScoreboardSlimEnvelope(envelope: MessageEnvelope): envelope is ScoreboardSlimMessageEnvelope {\n return !!(envelope.messageType === MessageType.ScoreboardSlim && (envelope.payload as SlimScoreboardCommand).scoreboard);\n}\n\nexport function isPlayerStatsUpdateEnvelope(envelope: MessageEnvelope): envelope is PlayerStatsUpdateMessageEnvelope {\n return !!(envelope.messageType === MessageType.PlayerStatsUpdate && (envelope.payload as PlayerStatsCommand).hybridPlayerStats);\n}\n\nexport function isCashoutUpdateEnvelope(envelope: MessageEnvelope): envelope is CashoutUpdateMessageEnvelope {\n return envelope.messageType === MessageType.CashoutUpdate;\n}\n\nexport function isOverAskUpdateEnvelope(envelope: MessageEnvelope): envelope is OverAskUpdateMessageEnvelope {\n return envelope.messageType === MessageType.OverAskOfferUpdate;\n}\n\nexport function isBetBuilderOfferUpdateEnvelope(envelope: MessageEnvelope): envelope is BetBuilderOfferUpdateMessageEnvelope {\n return envelope.messageType === MessageType.BetBuilderOfferUpdate;\n}\n\nexport function isBetBuilderExpiringSubscriptionEnvelope(envelope: MessageEnvelope): envelope is BetBuilderExpiringSubscriptionEnvelope {\n return envelope.messageType === MessageType.BetBuilderExpiringSubscription;\n}\n\nexport interface RealParticipant extends Participant {\n id: number;\n}\n\nexport interface ParticipantFixtureLike {\n id: string;\n participants: TParticipant[];\n}\n\nfunction updateObjectInCollection(\n updatedObj: TPush,\n collection: O[],\n creator: (push: TPush) => O,\n updater: (push: TPush, client: O) => O,\n): O[] {\n const newCollection: O[] = [];\n let isUpdated = false;\n for (const item of collection) {\n if (item.id === updatedObj.id) {\n isUpdated = true;\n const updated = updater(updatedObj, item);\n newCollection.push(updated);\n } else {\n newCollection.push(item);\n }\n }\n if (!isUpdated) {\n // new object add at the end.\n newCollection.push(creator(updatedObj));\n }\n\n return newCollection;\n}\n\nfunction getUpdatedOptionMarkets(\n updatedObj: TPush,\n collection: O[],\n creator: (push: TPush) => O,\n updater: (push: TPush, client: O) => O,\n): O[] {\n const newCollection: O[] = [];\n let isUpdated = false;\n for (const item of collection) {\n if (item.id === updatedObj.id) {\n isUpdated = true;\n const updated = updater(updatedObj, item);\n updated.options = updatedObj.options;\n newCollection.push(updated);\n } else {\n newCollection.push(item);\n }\n }\n if (!isUpdated) {\n // new object add at the end.\n newCollection.push(creator(updatedObj));\n }\n\n return newCollection;\n}\n\nfunction defaultCreator(input: TInput): TOutput {\n return input as TOutput;\n}\n\nfunction defaultUpdater(input: TInput, current: TOutput): TOutput {\n return merge({}, current, input);\n}\n\nexport interface IFixtureUpdateLike extends Pick {\n addons: Pick;\n}\n\nexport function updateFixture(fixture: T, message: FixtureUpdateMessageEnvelope): T {\n const payload = message.payload;\n if (payload.fixtureId !== fixture.id) {\n return fixture;\n }\n\n return {\n ...fixture,\n startDate: payload.startDate,\n cutOffDate: payload.cutOffDate,\n stage: payload.stage,\n addons: {\n ...fixture.addons,\n isResulted: payload.isResulted,\n isRaceOver: payload.isRaceOver,\n isRaceOff: payload.isRaceOff,\n pricingState: payload.pricingState,\n raceSummary: payload.raceSummary,\n },\n };\n}\n\nexport function updateFixtureParticipants<\n TParticipantFixture extends ParticipantFixtureLike,\n TClientParticipant extends RealParticipant,\n>(\n fixture: TParticipantFixture,\n message: ParticipantUpdateMessageEnvelope,\n options: {\n creator?: (push: RealParticipant) => TClientParticipant;\n updater?: (push: RealParticipant, client: TClientParticipant) => TClientParticipant;\n },\n): TParticipantFixture {\n if (message.payload.fixtureId !== fixture.id) {\n return fixture;\n }\n const messageParticipant = message.payload.participant as RealParticipant;\n const creator = options.creator || defaultCreator;\n const updater = options.updater || defaultUpdater;\n\n return {\n ...fixture,\n participants: updateObjectInCollection(messageParticipant, fixture.participants, creator, updater),\n };\n}\n\ninterface OptionMarketFixtureLike {\n id: string;\n optionMarkets: OptionMarket[];\n}\n\nexport function updateFixtureOptionMarkets(\n fixture: TOptionMarketFixture,\n message: OptionMarketUpdateMessageEnvelope | OptionMarketDeleteMessageEnvelope,\n): TOptionMarketFixture {\n if (message.payload.fixtureId !== fixture.id) {\n return fixture;\n }\n if (isOptionMarketDeleteEnvelope(message)) {\n return {\n ...fixture,\n optionMarkets: fixture.optionMarkets.filter((o) => o.id !== message.payload.marketId),\n };\n } else {\n const updatedMarket = message.payload.optionMarket;\n\n return {\n ...fixture,\n optionMarkets: getUpdatedOptionMarkets(updatedMarket, fixture.optionMarkets, defaultCreator, defaultUpdater),\n };\n }\n}\n\ninterface GamesFixtureLike {\n id: string;\n games: Game[];\n}\n\nexport function updateFixtureGames(\n fixture: TGamesFixture,\n message: GameUpdateMessageEnvelope | GameDeleteMessageEnvelope,\n): TGamesFixture {\n if (message.payload.fixtureId !== fixture.id) {\n return fixture;\n }\n if (isGameDeleteEnvelope(message)) {\n return {\n ...fixture,\n games: fixture.games.filter((o) => o.id !== message.payload.gameId),\n };\n } else {\n const updatedGame = message.payload.game;\n\n return {\n ...fixture,\n games: updateObjectInCollection(updatedGame, fixture.games, defaultCreator, defaultUpdater),\n };\n }\n}\n","export interface FontResizerSettings {\n skipResize?: boolean;\n threshold?: number;\n minimumFontSize?: number;\n}\nexport abstract class FontResizerBaseService {\n abstract getSettings(valueLen: number): FontResizerSettings;\n}\n","{{ value }}\n{{ value }}\n","import { NgIf } from '@angular/common';\nimport { Component, EventEmitter, HostBinding, Input, OnChanges, OnInit, Optional, Output, SimpleChanges } from '@angular/core';\n\nimport { OddsConfig } from '@frontend/sports/common/client-config-data-access';\n\nimport { FontResizerBaseService, FontResizerSettings } from './font-resizer-base.service';\n\n@Component({\n selector: 'ms-font-resizer',\n templateUrl: 'font-resizer.html',\n standalone: true,\n imports: [NgIf],\n})\nexport class FontResizerComponent implements OnChanges, OnInit {\n // added to give a small space to text and borders\n private fontSizeThreshold = 0.03;\n private oldLength = 0;\n\n @Input() value: string;\n @Input() maxChars: number;\n @Input() defaultSize: number;\n @Input() shouldGetExtSettings?: boolean;\n @Input() shouldSkipCustomStyling?: boolean = false;\n @Output() fontChange = new EventEmitter();\n\n @HostBinding('style.font-size.em') fontSize?: number;\n\n private settings?: FontResizerSettings;\n shouldUseCustomStyle: boolean;\n\n constructor(\n @Optional() private fontResizerService: FontResizerBaseService | null,\n private oddsConfig: OddsConfig,\n ) {}\n\n ngOnInit(): void {\n this.shouldUseCustomStyle = this.oddsConfig.display.useCustomOddsFontStyle && !this.shouldSkipCustomStyling;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const valueChange = changes['value'];\n\n if (!valueChange) {\n return;\n }\n\n if (valueChange.previousValue === valueChange.currentValue || this.shouldUseCustomStyle) {\n return;\n }\n\n if (this.shouldGetExtSettings) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n this.settings = this.fontResizerService?.getSettings(valueChange.currentValue.length);\n }\n if (this.settings?.threshold !== undefined) {\n this.fontSizeThreshold = this.settings.threshold;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.calculateSize(valueChange.currentValue);\n }\n\n private calculateSize(value: string): void {\n if (!value) {\n this.oldLength = 0;\n\n return;\n }\n\n const valueLength = value.length;\n if (valueLength === this.oldLength) {\n return;\n }\n\n this.oldLength = valueLength;\n\n const newFontSize = this.getFontSize(valueLength);\n if (this.fontSize === newFontSize) {\n return;\n }\n\n this.fontSize = newFontSize;\n this.fontChange.emit(newFontSize);\n }\n\n private getFontSize(valueLength: number): number {\n const newFontSize =\n valueLength > this.getMaxChars() && !this.settings?.skipResize\n ? +((this.defaultSize * this.getMaxChars()) / valueLength - this.fontSizeThreshold).toFixed(2)\n : this.defaultSize;\n\n return Math.max(newFontSize, this.settings?.minimumFontSize || newFontSize);\n }\n\n private getMaxChars(): number {\n return this.maxChars - 1;\n }\n}\n","\n@if (showPriceBoostCount && count) {\n \n \n \n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { PriceBoostConfig } from '@frontend/sports/common/client-config-data-access';\nimport { FontResizerComponent } from '@frontend/sports/common/core/feature/font-resizer';\nimport { EpcotConfigService } from 'packages/sports/web/app/src/common/epcot-config.service';\n\n@Component({\n selector: 'ms-priceboost-count-signpost',\n templateUrl: './priceboost-count-signpost.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [FontResizerComponent],\n})\nexport class PriceboostCountSignpostComponent implements OnInit {\n @HostBinding('class') className = 'count-signpost-container';\n @HostBinding('class.large-signpost') largeSignpost = false;\n @HostBinding('class.count-signpost') countSignpost: boolean;\n @HostBinding('class.epcot-signpost')\n get shouldApplyClass(): boolean {\n return this.epcotConfigService.isEnabled();\n }\n\n @Input() count: string;\n @Input() isLargeSignPost = false;\n showPriceBoostCount = false;\n constructor(\n public priceBoostConfig: PriceBoostConfig,\n private epcotConfigService: EpcotConfigService,\n ) {}\n\n ngOnInit(): void {\n this.showPriceBoostCount = this.priceBoostConfig.showCount || this.isLargeSignPost;\n this.largeSignpost = this.isLargeSignPost;\n this.countSignpost = !this.isLargeSignPost;\n }\n}\n","export enum TrackNavArea {\n NavTop = 'TopNav',\n NavBottom = 'BottomNav',\n NavSub = 'SubNav',\n NavLive = 'LiveNav',\n NavVirtual = 'VirtualNav',\n NavBreadcrumb = 'Breadcrumb',\n}\n","import { ActivatedRouteSnapshot, Params } from '@angular/router';\n\nexport function getAllParams(route: ActivatedRouteSnapshot | undefined): Params {\n let params = { ...route?.params };\n let parentRoute = route?.parent;\n\n while (parentRoute) {\n params = Object.assign(params, parentRoute.params);\n parentRoute = parentRoute.parent;\n }\n\n return params;\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivationEnd } from '@angular/router';\n\nimport { BetslipBarConfig, LayoutNavigationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { RouteTag } from '@frontend/sports/common/core/data-access/route';\nimport { getAllParams } from '@frontend/sports/common/core/utils/route-params';\nimport { RouterEventsService } from '@frontend/sports/common/core/utils/router-events';\nimport { HeaderService, MenuItemsService, MenuSection } from '@frontend/vanilla/core';\nimport { toInteger } from 'lodash-es';\nimport { Observable, Subject, combineLatest, filter } from 'rxjs';\n\nimport { PopupManager } from '../popup/popup-manager.service';\nimport { TrackNavArea } from './navigation-tracking.model';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationRouterService {\n private lastActiveItemName: string | null;\n private navigationState$ = new Subject();\n private lastSelectedSport$ = new Subject();\n private _activeNavigation?: string;\n private selectedEventId?: string;\n\n constructor(\n private eventRouter: RouterEventsService,\n private menuService: MenuItemsService,\n private popupManager: PopupManager,\n private headerService: HeaderService,\n private layoutNavigationConfig: LayoutNavigationConfig,\n public betslipBarConfig: BetslipBarConfig,\n ) {\n this.eventRouter.currentActivationEnd\n .pipe(\n filter((e) => !!e),\n takeUntilDestroyed(),\n )\n .subscribe((event) => this.handleRouterEvent(event));\n this.popupManager.setLastActiveItem.pipe(takeUntilDestroyed()).subscribe(() => this.restoreLastActiveItem());\n\n combineLatest([this.navigationState$, this.headerService.whenReady])\n .pipe(takeUntilDestroyed())\n .subscribe(([navigationState, _]) => this.headerService.highlightProduct(navigationState));\n }\n\n setNavigation(active: string | null): void {\n const activeValue = toInteger(active);\n\n if (active && activeValue) {\n this.lastSelectedSport$.next(activeValue);\n }\n\n if (active !== 'all') {\n this.lastActiveItemName = active;\n }\n\n this.setActiveItem(active);\n\n if (active === 'live' || active === 'virtual') {\n this.navigationState$.next(active);\n } else {\n this.navigationState$.next(null);\n }\n }\n\n restoreLastActiveItem(): void {\n this.setActiveItem(this.lastActiveItemName);\n }\n\n resetNavigation(): void {\n this.setActiveItem(null);\n }\n\n get activeNavigation(): string | undefined {\n return this._activeNavigation;\n }\n\n get selectedSport$(): Observable {\n return this.lastSelectedSport$.asObservable();\n }\n\n get getSelectedEventId(): string | undefined {\n return this.selectedEventId;\n }\n\n private setActiveItem(itemName: string | null): void {\n this.menuService.setActive(TrackNavArea.NavTop, itemName);\n let bottomNavItem: string | null = null;\n\n if (itemName) {\n bottomNavItem =\n this.layoutNavigationConfig.bottomNavItemsMapping[itemName] ||\n this.layoutNavigationConfig.bottomNavItemsMapping['fallback'] ||\n itemName;\n }\n\n this.menuService.setActive(MenuSection.BottomNav, bottomNavItem);\n this._activeNavigation = itemName ?? undefined;\n }\n\n private handleRouterEvent(event: ActivationEnd | undefined): void {\n const params = getAllParams(event?.snapshot);\n\n let eventId: string = params.sportId || params.sport;\n\n if (event?.snapshot?.data?.tag === RouteTag.EsportsLobby) {\n eventId = event?.snapshot.data?.tag;\n }\n\n const popupQueryParams = event?.snapshot.queryParams?.['popup'];\n const isAzMenuOpened = popupQueryParams === 'sports';\n if (!isAzMenuOpened && eventId) {\n this.setNavigation(eventId);\n }\n this.selectedEventId = params.event;\n }\n}\n","export interface ToastMessage {\n message: string;\n errorType: string;\n}\n\nexport enum ErrorType {\n Error = 'ERROR',\n Info = 'INFO',\n Success = 'SUCCESS',\n}\n\nexport enum RetryType {\n NonRetry = 0,\n Retry = 1,\n}\n\nexport interface GDSResponse extends DeviceInfoResponse {\n locationStatus: string;\n isLocationAvailable: boolean;\n errorCode: number;\n errorMsg: string;\n troubleShooterMessages?: { tsMsgs?: GDSTsMsg[] };\n}\n\nexport interface DeviceInfoResponse {\n regionCode?: string;\n deviceUUid?: string;\n deviceModelSolution?: string;\n regionName?: string;\n deviceModelOS?: string;\n}\n\nexport interface GDSTsMsg {\n rule: string;\n retry: number;\n message: string;\n}\n","import { Injectable, isDevMode } from '@angular/core';\n\nimport {\n CoordinatorStates,\n ICoordinatorProbeResult,\n IErrorData,\n IInitializationInput,\n IIntegrationApp,\n OnError,\n OnInitialized,\n OnProbed,\n OnUninitialized,\n PLCIdentifier,\n} from '@frontend/geo-coordinator/client-stub';\nimport { PermissionsManagerable } from '@frontend/geo-coordinator/permissions-manager';\nimport { GeolocationConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class GeolocationCoordinatorService implements IIntegrationApp {\n private geolocationCoordinator: Optional & PermissionsManagerable;\n private _initializePending = false;\n private _uninitializePending = false;\n private _initializationInput: Optional;\n private _unInitializedHooks: Partial<{\n onInitialized: OnInitialized;\n onUninitialized: OnUninitialized;\n onError: OnError;\n onProbed: OnProbed;\n }> = {};\n\n private readonly _ready$ = new ReplaySubject(1);\n readonly ready$ = this._ready$.asObservable();\n\n constructor(\n private geolocationConfig: GeolocationConfig,\n private user: UserService,\n ) {\n this.hookupCoordinator();\n addEventListener(\n 'geolocationcoordinator:bootstrapped',\n () => {\n this.hookupCoordinator();\n },\n {\n once: true,\n },\n );\n }\n\n get appDownloadUrl(): string {\n if (isDevMode() && !this.geolocationCoordinator) {\n throw new Error('geolocationCoordinator is not ready yet, use the ready$ observable to determine when this is the case');\n }\n\n return this.geolocationCoordinator?.appDownloadUrl ?? '';\n }\n\n get permissionsManager() {\n return this.geolocationCoordinator?.permissionsManager;\n }\n\n set onInitialized(value: OnInitialized) {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onInitialized = value;\n } else {\n this._unInitializedHooks.onInitialized = value;\n }\n }\n\n set onUninitialized(value: OnUninitialized) {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onUninitialized = value;\n } else {\n this._unInitializedHooks.onUninitialized = value;\n }\n }\n\n set onError(value: OnError) {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onError = value;\n } else {\n this._unInitializedHooks.onError = value;\n }\n }\n\n set onProbed(value: OnProbed) {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.onProbed = value;\n } else {\n this._unInitializedHooks.onProbed = value;\n }\n }\n\n initialize(input?: IInitializationInput): void {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.initialize({\n session: (this.user && this.user.ssoToken) || 'NotAvailable',\n channelId: this.geolocationConfig.coordinatorSettings.channelId,\n plcIdentifier: this.geolocationConfig.coordinatorSettings.plcIdentifier as PLCIdentifier,\n showPLCPopup: input && input.showPLCPopup,\n productId: this.geolocationConfig.coordinatorSettings.productId,\n });\n } else {\n this._initializePending = true;\n this._initializationInput = input;\n }\n }\n\n uninitialize(): void {\n if (this.geolocationCoordinator) {\n this.geolocationCoordinator.uninitialize();\n } else {\n this._uninitializePending = true;\n }\n }\n\n probe(): void {\n if (isDevMode() && !this.geolocationCoordinator) {\n throw new Error('geolocationCoordinator is not ready yet, use the ready$ observable to determine when this is the case');\n }\n this.geolocationCoordinator?.probe?.();\n }\n\n triggerFetchLocation(): void {\n if (isDevMode() && !this.geolocationCoordinator) {\n throw new Error('geolocationCoordinator is not ready yet, use the ready$ observable to determine when this is the case');\n }\n this.geolocationCoordinator?.triggerFetchLocation?.();\n }\n\n private onGeolocationInitialized(initializationData: CoordinatorStates): void {\n if (this.onInitialized) {\n this.onInitialized(initializationData);\n }\n }\n\n private onGeolocationUninitialized(): void {\n if (this.onUninitialized) {\n this.onUninitialized();\n }\n }\n\n private onGeolocationError(errorData: IErrorData): void {\n if (this.onError) {\n this.onError(errorData);\n }\n }\n\n private onGeolocationProbed(probeResult: ICoordinatorProbeResult): void {\n if (this.onProbed) {\n this.onProbed(probeResult);\n }\n }\n\n private hookupCoordinator(): void {\n const geolocationCoordinator = (window as any).geolocationCoordinator as Optional & PermissionsManagerable;\n if (geolocationCoordinator) {\n this.geolocationCoordinator = geolocationCoordinator;\n this.geolocationCoordinator.onInitialized = this._unInitializedHooks.onInitialized ?? this.onGeolocationInitialized.bind(this);\n this.geolocationCoordinator.onUninitialized = this._unInitializedHooks.onUninitialized ?? this.onGeolocationUninitialized.bind(this);\n this.geolocationCoordinator.onError = this._unInitializedHooks.onError ?? this.onGeolocationError.bind(this);\n this.geolocationCoordinator.onProbed = this._unInitializedHooks.onProbed ?? this.onGeolocationProbed.bind(this);\n\n if (this._initializePending) {\n this._initializePending = false;\n this.initialize(this._initializationInput);\n this._initializationInput = undefined;\n\n return;\n }\n if (this._uninitializePending) {\n this._uninitializePending = false;\n this.uninitialize();\n }\n this._ready$.next();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n ViewChild,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { DeviceService } from '@frontend/vanilla/core';\n\n@Component({\n selector: 'cs-geo-permissions-manager',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n host: {\n 'class': 'geo-coordinator permissions-manager',\n '[class]': 'managerClasses()',\n '[class.android]': 'deviceService.isAndroid ? true : null',\n '[class.iOS]': 'deviceService.isiOS ? true : null',\n '[class.chrome]': 'deviceService.isChrome ? true : null',\n '[class.nexus]': 'deviceService.isNexus ? true : null',\n '[class.touch]': 'deviceService.isTouch ? true : null',\n '[class.mobile]': 'deviceService.isMobile ? true : null',\n '[class.mobile-phone]': 'deviceService.isMobilePhone ? true : null',\n '[class.robot]': 'deviceService.isRobot ? true : null',\n },\n templateUrl: './permissions-manager.component.html',\n})\nexport class PermissionsManagerComponent implements AfterViewInit {\n @ViewChild('templateLoaderHost')\n templateLoaderHost: ElementRef | null = null;\n\n private readonly matContext = inject(MAT_DIALOG_DATA);\n private readonly dialogRef = inject(MatDialogRef);\n readonly deviceService = inject(DeviceService);\n\n permissionsInfo = input<{ [key: string]: string }>(this.matContext?.permissionsInfo ?? {});\n permissionsConfig = input<{ [key: string]: string }>(this.matContext?.permissionsConfig ?? {});\n private geoCoordinatorService = this.matContext?.geoCoordinatorService;\n\n parsedConfig = computed(() => this.prepareConfig(this.permissionsConfig()));\n templateContent = signal('');\n\n managerClasses = computed(() => {\n const permissionInfoClasses = `permissions-info-status-${this.permissionsInfo()['status'] || ''} permissions-info-reason-${this.permissionsInfo()['reason'] || ''}`;\n const devicePropertyClasses = `orientation-${this.deviceService.currentOrientation} ${this.deviceService.deviceType} os-${this.deviceService.osName} os-version-${this.deviceService.osVersion} vendor-${this.deviceService.vendor}`;\n const browserClasses = `browser-name-${this.deviceService.getCapability('browserName')} browser-version-${this.deviceService.getCapability('browserVersion')}`;\n\n return `${permissionInfoClasses} ${devicePropertyClasses} ${browserClasses}`;\n });\n\n async ngAfterViewInit(): Promise {\n if (this.geoCoordinatorService) {\n if (this.geoCoordinatorService?.permissionsManager?.loadAssets) {\n await this.geoCoordinatorService.permissionsManager.loadAssets({\n configStore: this.permissionsConfig(),\n hostElement: this.templateLoaderHost?.nativeElement,\n activateTemplate: true,\n });\n }\n }\n }\n\n @HostListener('document:closeGeoPermissionsManagerDialog', ['$event'])\n @HostListener('closeGeoPermissionsManagerDialog', ['$event'])\n handleCloseDialog() {\n if (this.dialogRef) {\n this.dialogRef.close();\n }\n }\n\n private prepareConfig(permissionsConfig: { [key: string]: string }) {\n const parsedConfig: { [key: string]: string } = {};\n const permissionDictionaryConfig = permissionsConfig['GeoComply_Hints_Permissions_Dictionary'] ?? '';\n if (permissionDictionaryConfig) {\n const dictionaryEntries = permissionDictionaryConfig.split(';');\n if (dictionaryEntries && dictionaryEntries.length > 0) {\n dictionaryEntries\n .filter((x) => (x || '').trim())\n .forEach((dictEntry) => {\n const [key, value] = dictEntry.split('=');\n parsedConfig[key] = value || '';\n });\n }\n }\n\n return parsedConfig;\n }\n}\n\nexport enum PermissionsTypes {\n geoPermissions = 'geo-permissions',\n geoCurrentState = 'geo-current-state',\n}\n","\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\n\nimport { IIntegrationApp } from '@frontend/geo-coordinator/client-stub';\n\nimport { PermissionsManagerComponent } from './permissions-manager.component';\n\n@Injectable({ providedIn: 'root' })\nexport class GeoCoordinatorPermissionsManagerService {\n private readonly dialog = inject(MatDialog);\n private readonly documentRef = inject(DOCUMENT);\n\n private dialogRef: MatDialogRef | null = null;\n private _permissionsInfoOptions: PermissionsInfoOptions | null = null;\n\n handlePermissionsInfo(options: PermissionsInfoOptions): void {\n console.log('[GeoCoordinatorPermissionsManagerService]', '[handlePermissionsInfo]', options);\n if (this.canReopenDialog(this._permissionsInfoOptions, options)) {\n this.closePermissionsInfo();\n this._permissionsInfoOptions = options;\n this.dialogRef = this.dialog.open(PermissionsManagerComponent, {\n width: '100%',\n disableClose: true,\n data: {\n permissionsInfo: options.permissionsInfo,\n permissionsConfig: options.textDictionary,\n geoCoordinatorService: options.geoCoordinatorService,\n },\n panelClass: 'geo-permission-manager-popup',\n });\n }\n this.handleDialogClassesDecoration(['geo-location-permission-overlay', 'cdk-global-scrollblock'], this.dialogRef, this.documentRef);\n }\n\n closePermissionsInfo() {\n if (this.dialogRef) {\n this.dialogRef.close();\n this._permissionsInfoOptions = null;\n }\n }\n\n private handleDialogClassesDecoration(\n whichClasses: string[],\n dialogRef: MatDialogRef | null,\n documentRef: Document,\n ) {\n if (dialogRef) {\n dialogRef.afterOpened().subscribe(() => {\n if (documentRef) {\n whichClasses.forEach((cls) => {\n documentRef.documentElement.classList.add(cls);\n });\n }\n });\n dialogRef.afterClosed().subscribe(() => {\n if (documentRef) {\n whichClasses.forEach((cls) => {\n documentRef.documentElement.classList.remove(cls);\n });\n }\n // this._permissionsInfoOptions = null;\n });\n }\n }\n\n private canReopenDialog(existing: PermissionsInfoOptions | null, incoming: PermissionsInfoOptions | null) {\n if (!existing && !incoming) {\n return true;\n }\n\n if (existing || incoming) {\n if (existing !== incoming) {\n return !(\n existing?.permissionsInfo?.status === incoming?.permissionsInfo?.status &&\n existing?.permissionsInfo?.reason === incoming?.permissionsInfo?.reason\n );\n }\n }\n return false;\n }\n}\n\nexport interface PermissionsInfoOptions {\n readonly permissionsInfo: { readonly status: string; readonly reason: string };\n readonly textDictionary: { [key: string]: string };\n readonly geoCoordinatorService: IIntegrationApp;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { CoordinatorStates, Optional } from '@frontend/geo-coordinator/client-stub';\nimport { GeoCoordinatorPermissionsManagerService, PermissionInfo } from '@frontend/geo-coordinator/permissions-manager';\nimport { ApiServiceExternal } from '@frontend/sports/common/api-utils';\nimport { GeolocationConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { ModalDialogService } from '@frontend/sports/modal/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DeviceService, LoadingIndicatorHandler, LoadingIndicatorService, NativeAppService, TimerService } from '@frontend/vanilla/core';\nimport { once } from 'lodash-es';\nimport { Observable, Subscription } from 'rxjs';\n\nimport { EpcotConfigService, EpcotModule } from '../common/epcot-config.service';\nimport { GeolocationCoordinatorService } from './geo-coordinator.service';\nimport { DeviceInfoResponse, GDSResponse, RetryType } from './geo-location.model';\n\nconst loadDownloadAppComponent = () =>\n import(/* webpackChunkName: \"ms-download-app\" */ './download-native-app/download-app.component').then((m) => m.DownloadAppComponent);\nconst loadGeoGuardValidationComponent = () =>\n import(/* webpackChunkName: \"ms-geo-guard-validation\" */ './geo-guard-validation/geo-guard-validation.component').then(\n (m) => m.GeoGuardValidationComponent,\n );\nconst loadGeoLocationErrorComponent = () =>\n import(/* webpackChunkName: \"ms-geo-location-error\" */ './geo-location-error/geo-location-error.component').then(\n (m) => m.GeoLocationErrorComponent,\n );\nconst loadGeoLocationInstallerComponent = () =>\n import(/* webpackChunkName: \"ms-geo-location-installer\" */ './geo-location-installer/geo-location-installer.component').then(\n (m) => m.GeoLocationInstallerComponent,\n );\n\n@Injectable({ providedIn: 'root' })\nexport class GeolocationCheckService {\n constructor(\n private geolocationCoordinatorService: GeolocationCoordinatorService,\n private modalDialogService: ModalDialogService,\n private deviceService: DeviceService,\n private nativeAppService: NativeAppService,\n private geolocationConfig: GeolocationConfig,\n private user: UserService,\n private loadingIndicator: LoadingIndicatorService,\n private apiServiceExternal: ApiServiceExternal,\n private timerService: TimerService,\n private trackingService: TrackingService,\n loggerFactory: LoggerFactory,\n private epcotConfigService: EpcotConfigService,\n private geoCoordinatorPermissionsManagerService: GeoCoordinatorPermissionsManagerService,\n public sitecore: Sitecore,\n ) {\n this.logger = loggerFactory.getLogger('GeolocationCheckService');\n }\n\n private readonly _doc = inject(DOCUMENT);\n private readonly logger: SportsRemoteLogger;\n private isLocationFetched = false;\n private loading: LoadingIndicatorHandler | null;\n isLocationFetchTimeOut = false;\n gdsSubscription: Subscription;\n resetTimer: Nullable = null;\n gdsApiInterval = this.geolocationConfig.initialRetryInterval;\n geoComplyErrorCodes = this.geolocationConfig.retriableErrorCodes;\n resetTimerAndRefetchLocation = false;\n errorResponse: GDSResponse;\n private deviceInfoResponse: DeviceInfoResponse = {};\n\n /**\n * Check geolocation restriction and calls the `callback` function at most once.\n * This function uses a callback instead of something like Observables because it's used in many places (like the pick component) and we don't want to introduce an overhead.\n *\n * @param [callback]\n * @param [options]\n * @returns\n * @memberof GeolocationCheckService\n */\n checkGeolocation(callback?: (isLocationFailed: boolean) => void, options?: { waitForLocationAvailable: boolean }): void {\n const cb = once(callback || (() => {}));\n\n if (\n this.geolocationConfig.isGeolocationEnabled &&\n this.nativeAppService.isNative &&\n this.user.isAuthenticated &&\n options?.waitForLocationAvailable\n ) {\n this.validateLocation(cb);\n } else {\n if (this.checkBetRestriction()) {\n return;\n }\n\n if (!this.isGeoLocationRestrictionEnabled()) {\n cb(false);\n\n return;\n }\n\n if (!this.loading && !this.isLocationFetched) {\n this.loading = this.loadingIndicator.start();\n }\n\n this.geolocationCoordinatorService.onInitialized = (initializationStatus: Optional) => {\n if (initializationStatus === CoordinatorStates.INITIALIZED) {\n this.stopLoader();\n\n if (options?.waitForLocationAvailable) {\n this.validateLocation(cb);\n } else {\n cb(false);\n }\n }\n };\n\n this.geolocationCoordinatorService.onUninitialized = () => {\n cb(true);\n\n if (!this.geolocationConfig.isNDBSEnabled) {\n if (this.deviceService.isMobile) {\n this.showLocationConfirm();\n } else {\n this.showGeoLocationInstallerDialog();\n }\n }\n\n this.stopLoader();\n };\n\n this.geolocationCoordinatorService.onError = () => {\n this.stopLoader();\n };\n\n //NDBS stands for \"No Download Browser Solution\" and is one of the Geolocation fetch solutions provided by GeoComply\n //which elimnates the need to install the geolocation downloader when enabled\n if (!this.geolocationConfig.isNDBSEnabled) {\n this.geolocationCoordinatorService.initialize({ showPLCPopup: false });\n return;\n }\n\n const permissionsManager = this.geolocationCoordinatorService?.permissionsManager;\n if (!permissionsManager) {\n this.stopLoader();\n cb(false);\n return;\n }\n\n permissionsManager.onPermissionInfo = (permissionsInfo: PermissionInfo) => {\n if (permissionsInfo.status === 'available') {\n this.geoCoordinatorPermissionsManagerService.closePermissionsInfo();\n this.geolocationCoordinatorService.initialize({ showPLCPopup: false });\n this.stopLoader();\n return;\n }\n\n if (permissionsInfo.status === 'notavailable') {\n this.geoCoordinatorPermissionsManagerService.handlePermissionsInfo({\n permissionsInfo,\n textDictionary: <{ [key: string]: string }>(this.sitecore.globalMessages as unknown),\n geoCoordinatorService: this.geolocationCoordinatorService,\n });\n this.stopLoader();\n }\n };\n\n permissionsManager.seekPermission();\n }\n }\n\n checkGeoLocation$(options: { waitForLocationAvailable: boolean }): Observable {\n return new Observable((subscriber) => {\n this.checkGeolocation((isLocationFailed) => {\n subscriber.next(isLocationFailed);\n subscriber.complete();\n }, options);\n });\n }\n\n private stopLoader(): void {\n this.loading?.done();\n this.loading = null;\n }\n\n private isGeoLocationRestrictionEnabled(): boolean {\n return this.geolocationConfig.isGeolocationEnabled && this.user.isAuthenticated && !this.nativeAppService.isNative;\n }\n\n private validateLocation(callback: (isLocationFailed: boolean) => void): void {\n this.isLocationFetchTimeOut = false;\n this.isLocationFetched = false;\n this.resetTimerAndRefetchLocation = false;\n this.errorResponse = {} as GDSResponse;\n this.gdsApiInterval = this.geolocationConfig.initialRetryInterval;\n this.getLocationDetailsfromGDS(callback);\n this.startTimer(callback);\n }\n\n private startTimer(callback: (isLocationFailed: boolean) => void): void {\n this.clearTimer();\n\n this.resetTimer = this.timerService.setTimeout(() => {\n this.isLocationFetchTimeOut = true;\n if (!this.isLocationFetched) {\n if (this.geolocationConfig.logGenericFailureResults) {\n this.logGeoLocationError(new Date(), this.errorResponse);\n }\n this.showGeoLocationError();\n callback(true);\n\n return;\n }\n }, this.gdsApiInterval);\n }\n\n private getLocationDetailsfromGDS(callback: (isLocationFailed: boolean) => void): void {\n if (this.isLocationFetchTimeOut || !this.geolocationConfig.gdsUrl) {\n return;\n }\n\n const startGDSDate = new Date();\n let payload = `ssoKey=${this.user.ssoToken}`;\n\n if (this.geolocationConfig.isNDBSEnabled) {\n payload += '&licenseSolution=ndbs';\n }\n\n this.apiServiceExternal.post(this.geolocationConfig.gdsUrl, payload).subscribe(\n (result) => this.processGDSResponse(result, callback),\n (error) => this.logGeoLocationError(startGDSDate, error),\n );\n }\n\n private processGDSResponse(result: GDSResponse, callback: (isLocationFailed: boolean) => void): void {\n if (!result?.isLocationAvailable) {\n this.handleUnavailableLocation(result, callback);\n return;\n }\n\n if (result.locationStatus === 'VALID_LOCATION' && result.errorCode === 0) {\n this.handleValidLocation(result, callback);\n } else {\n this.handleInvalidLocation(result, callback);\n }\n }\n\n private handleValidLocation(result: GDSResponse, callback: (isLocationFailed: boolean) => void): void {\n this.isLocationFetched = true;\n this.deviceInfoResponse = this.getDeviceResponse(result);\n callback(false);\n }\n\n private handleInvalidLocation(result: GDSResponse, callback: (isLocationFailed: boolean) => void): void {\n this.errorResponse = result;\n if (this.isRetryableError(result)) {\n this.isLocationFetched = false;\n this.refetchLocationOnRetryableErrorCodes(callback);\n this.refetchGdsApi(callback);\n } else {\n this.clearTimer();\n this.showGeoLocationError();\n callback(true);\n }\n }\n\n private handleUnavailableLocation(result: GDSResponse, callback: (isLocationFailed: boolean) => void): void {\n this.errorResponse = result;\n this.refetchGdsApi(callback);\n }\n\n private isRetryableError(result: GDSResponse): boolean {\n return (\n this.geolocationConfig.isRetryButtonEnabled &&\n !!result?.troubleShooterMessages?.tsMsgs?.some((errMsg) => errMsg.retry === RetryType.Retry)\n );\n }\n\n private refetchLocationOnRetryableErrorCodes(callback: (isLocationFailed: boolean) => void): void {\n if (!this.resetTimerAndRefetchLocation) {\n this.isLocationFetchTimeOut = false;\n this.gdsApiInterval = this.geolocationConfig.retryInterval;\n this.resetTimerAndRefetchLocation = true;\n this.startTimer(callback);\n }\n }\n\n private clearTimer(): void {\n if (this.resetTimer) {\n this.timerService.clearTimeout(this.resetTimer);\n }\n }\n\n private refetchGdsApi(callback: (isLocationFailed: boolean) => void): void {\n this.timerService.setTimeout(() => {\n this.getLocationDetailsfromGDS(callback);\n }, 1000);\n }\n\n private async showGeoLocationError(): Promise {\n const modalHandler = this.modalDialogService.openPopup(await loadGeoLocationErrorComponent(), {\n settings: {\n cssClass: this.getDialogClassNames(),\n showPageHeader: true,\n fit: false,\n isModalDialog: true,\n },\n data: { errorMessages: this.errorResponse?.troubleShooterMessages?.tsMsgs || [] },\n });\n if (this.isEpcotEnabled() && this.isQuickbetShowing()) {\n modalHandler.addBackdropClass('fadeout-quickbet-geo-location');\n }\n this.geolocationCoordinatorService.onError = undefined;\n this.geolocationCoordinatorService.onInitialized = undefined;\n this.doTracking();\n }\n\n private async showGeoLocationInstallerDialog(): Promise {\n this.modalDialogService.openPopup(await loadGeoLocationInstallerComponent(), {\n settings: {\n cssClass: 'geo-location-popup',\n showPageHeader: true,\n fit: false,\n isModalDialog: false,\n },\n });\n this.geolocationCoordinatorService.onError = undefined;\n this.geolocationCoordinatorService.onInitialized = undefined;\n }\n\n private async showLocationConfirm(): Promise {\n this.modalDialogService.openPopup(await loadGeoGuardValidationComponent(), {\n settings: {\n cssClass: 'geo-guard-validation',\n showPageHeader: true,\n fit: false,\n isModalDialog: false,\n },\n });\n this.geolocationCoordinatorService.onError = undefined;\n this.geolocationCoordinatorService.onInitialized = undefined;\n }\n\n private async showDownloadAppDialog(): Promise {\n this.modalDialogService.openPopup(await loadDownloadAppComponent(), {\n settings: {\n cssClass: 'native-app-installer',\n showPageHeader: true,\n fit: false,\n isModalDialog: false,\n },\n });\n }\n\n private checkBetRestriction(): boolean {\n if (\n this.geolocationConfig.isBetRestrictionEnabled &&\n !this.nativeAppService.isNative &&\n !this.nativeAppService.isNative &&\n this.user.isAuthenticated\n ) {\n this.showDownloadAppDialog();\n\n return true;\n }\n\n return false;\n }\n\n private doTracking(): void {\n this.trackingService.track(trackingConstants.EVENT_GEOLOCATION_ERROR, {\n [trackingConstants.GEOLOCATION_ERRORCODE]: this.errorResponse?.errorCode,\n [trackingConstants.GEOLOCATION_ERRORMESSAGE]: this.errorResponse?.errorMsg,\n });\n }\n\n private isEpcotEnabled(): boolean {\n return this.epcotConfigService.isEnabled(EpcotModule.QuickBet);\n }\n\n private isQuickbetShowing(): boolean {\n const hasQuickBet = this._doc.getElementsByClassName('quick-bet__body');\n\n return !!hasQuickBet;\n }\n\n private getDialogClassNames(): string {\n if (this.isEpcotEnabled() && this.isQuickbetShowing()) {\n return 'geo-comply-error-dialog has-quickbet';\n }\n\n return 'geo-comply-error-dialog';\n }\n\n private logGeoLocationError(startGDSDate: Date, errorMessage: GDSResponse | any): void {\n if (this.geolocationConfig.logGenericFailureResults) {\n this.logger.error(\n `GDS api url: ${this.geolocationConfig.gdsUrl}, ran for: ${new Date().valueOf() - startGDSDate.valueOf()}ms, error: ${JSON.stringify(errorMessage)}, ssotoken: ${this.user.ssoToken?.substring(0, 100)}`,\n );\n }\n }\n\n private getDeviceResponse(response: GDSResponse): DeviceInfoResponse {\n return {\n regionCode: response.regionCode,\n deviceUUid: response.deviceUUid,\n deviceModelSolution: response.deviceModelSolution,\n regionName: response.regionName,\n deviceModelOS: response.deviceModelOS,\n };\n }\n\n getDeviceInfoResponse(): DeviceInfoResponse {\n return this.deviceInfoResponse;\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, OnChanges, OnDestroy, Output } from '@angular/core';\n\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { padStart } from 'lodash-es';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ms-count-down',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CountDownComponent implements OnDestroy, OnChanges {\n @Input() until: Date;\n @Output() end = new EventEmitter();\n @Output() tick = new EventEmitter();\n @HostBinding('class') className = 'count-down';\n\n private subscription: Subscription;\n\n constructor(\n private tickerService: TickerService,\n private elementRef: ElementRef,\n ) {}\n\n ngOnDestroy(): void {\n this.stop();\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (!changes.until || !changes.until.currentValue) {\n throw new Error('Until should be defined');\n }\n\n const diff = this.diff();\n\n this.stop();\n this.text(diff);\n\n if (diff > 0) {\n this.start();\n }\n }\n\n private start(): void {\n this.stop();\n\n this.subscription = this.tickerService.subscribe(() => this.ticked(), TickerInterval.Second);\n }\n\n private stop(): void {\n this.subscription?.unsubscribe();\n }\n\n private ticked(): void {\n const diff = this.diff();\n\n if (diff <= 0) {\n this.stop();\n this.end.emit();\n }\n\n this.text(diff);\n this.tick.emit(diff);\n }\n\n private text(diff: number): void {\n this.elementRef.nativeElement.textContent = this.format(diff);\n }\n\n private diff(): number {\n const diff = (this.until.getTime() - DateProviderService.now()) / 1000;\n\n return Math.max(Math.ceil(diff), 0);\n }\n\n private format(diff: number): string {\n const pad = (value: number) => padStart(value.toString(), 2, '0');\n\n const seconds = Math.floor(diff % 60);\n const minutes = Math.floor((diff / 60) % 60);\n const hours = Math.floor(diff / (60 * 60));\n\n const segments = [];\n\n if (hours) {\n segments.push(hours);\n segments.push(pad(minutes));\n } else {\n segments.push(minutes);\n }\n\n segments.push(pad(seconds));\n\n return segments.join(':');\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { EventScoreboard, ScoreboardType, TournamentScore } from '@frontend/sports/betting-offer/feature/model';\nimport { SitecoreEventDetailsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { AmericanFootballPeriodInfo, SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { EventDetailsModel } from '@frontend/sports/types/configuration/client-configuration';\nimport { ceil, padStart } from 'lodash-es';\nimport { Subscription, firstValueFrom } from 'rxjs';\n\n@Component({\n selector: 'ms-live-timer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class LiveTimerComponent implements OnDestroy, OnChanges, OnInit {\n @Input() scoreboard: EventScoreboard;\n @Input() timeValue?: string;\n @Input() eventId?: number;\n\n private gameTime: number; // seconds\n private serverTime: string;\n private tickerFormattedTime = '';\n private startTime = 0;\n\n private tickerSubscription: Subscription;\n private formatterFunc: () => string;\n\n constructor(\n private sitecoreEventDetails: SitecoreEventDetailsConfig,\n private ticker: TickerService,\n private elementRef: ElementRef,\n ) {}\n\n async ngOnInit(): Promise {\n await firstValueFrom(this.sitecoreEventDetails.whenReady);\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (!changes.scoreboard) {\n return;\n }\n\n const scoreboardTypeChanged =\n changes.scoreboard.previousValue && changes.scoreboard.previousValue.type !== changes.scoreboard.currentValue.type;\n\n if (changes.scoreboard.isFirstChange() || scoreboardTypeChanged) {\n this.formatterFunc = this.getTimeFormatter();\n }\n\n this.restartTimer();\n }\n\n ngOnDestroy(): void {\n this.stopTicker();\n }\n\n private getTimeFormatter(): () => string {\n if (this.isType(ScoreboardType.TournamentGame)) {\n return this.getTournamentTime;\n }\n\n if (this.isType(ScoreboardType.PairGame, ScoreboardType.PeriodGame, ScoreboardType.SpecialGame, ScoreboardType.LeaderboardGame)) {\n return this.getPairGameTime;\n }\n\n if (this.isType(ScoreboardType.Darts, ScoreboardType.SetGame, ScoreboardType.BaseballGame, ScoreboardType.Cricket)) {\n return this.getOtherScoreboardTypesTime;\n }\n\n return () => '';\n }\n\n private restartTimer(): void {\n if (!this.scoreboard.started) {\n return;\n }\n\n this.gameTime = Number(this.scoreboard.gameTimeInSeconds);\n this.serverTime = this.scoreboard.timeIndicator || '';\n\n this.startTicker();\n }\n\n private startTicker(): void {\n this.stopTicker();\n\n if (this.scoreboard.timer && this.scoreboard.timer.base && this.scoreboard.timer.running) {\n this.gameTime = this.getTime();\n this.tickerFormattedTime = this.formatTime(this.gameTime);\n this.startCounter();\n }\n\n this.ticked();\n }\n\n private startCounter(): void {\n this.stopTicker();\n\n this.startTime = this.now();\n this.tickerSubscription = this.ticker.subscribe(() => this.ticked(), TickerInterval.Second);\n }\n\n private ticked(): void {\n if (this.scoreboard.timer) {\n this.updateTickerFormattedTime();\n }\n\n this.elementRef.nativeElement.textContent = this.formatterFunc();\n }\n\n private now(): number {\n return ceil(DateProviderService.now(), -3);\n }\n\n private updateTickerFormattedTime(): void {\n const currentTime = this.now();\n\n const elapsedTime = Math.floor((currentTime - this.startTime) / 1000);\n\n this.tickerFormattedTime = this.formatTime(this.gameTime + elapsedTime);\n }\n\n private getOtherScoreboardTypesTime = (): string => {\n return (this.scoreboard.started && this.scoreboard.period && this.scoreboard.period.name) || '';\n };\n\n private getTournamentTime = (): string => {\n if (!this.scoreboard.visible) {\n return '';\n }\n\n const score = this.scoreboard.getScore();\n if (!score || Object.keys(score).length === 0) {\n return '';\n }\n\n //TODO any index issue, probably a defect, score.type key is km, but event details key is Kilometer\n const type = this.sitecoreEventDetails.eventDetails[score.type as keyof EventDetailsModel] || '';\n\n let stateLabel = score.current ? ` ${score.current}` : '';\n stateLabel += score.final ? `/${score.final}` : '';\n\n if (type) {\n stateLabel = type + stateLabel;\n } else {\n stateLabel += score.type || '';\n }\n const isTimerVisible = this.scoreboard.timerVisible && !this.scoreboard.isSuspended;\n\n if (isTimerVisible && this.scoreboard.timerRunning && this.eventId !== SportConstant.Golf) {\n stateLabel += ` • ${this.tickerFormattedTime}`;\n }\n\n return stateLabel;\n };\n\n private getPairGameTime = (): string => {\n let period = this.scoreboard.period!.name;\n\n const isTimerVisible = this.scoreboard.timerVisible && !this.scoreboard.isSuspended;\n\n this.timeValue =\n this.timeValue !== undefined &&\n (this.scoreboard.period?.id === AmericanFootballPeriodInfo.IntermissionQ1 ||\n this.scoreboard.period?.id === AmericanFootballPeriodInfo.IntermissionQ2 ||\n this.scoreboard.period?.id === AmericanFootballPeriodInfo.IntermissionQ3 ||\n this.scoreboard.period?.id === AmericanFootballPeriodInfo.RegularTimeOver ||\n this.scoreboard.period?.id === AmericanFootballPeriodInfo.Finished)\n ? ''\n : this.timeValue;\n if (this.timeValue) {\n period += ' ' + this.timeValue;\n } else {\n if (isTimerVisible) {\n period += this.scoreboard.timerRunning ? ` • ${this.tickerFormattedTime}` : ` ${this.serverTime.replace(period, '')}`;\n }\n }\n\n return period;\n };\n\n private getTime(): number {\n if (!this.scoreboard.timer) {\n return Number(this.scoreboard.gameTimeInSeconds);\n }\n let timerSeconds = this.scoreboard.timer.seconds;\n if (timerSeconds <= 0) {\n timerSeconds = this.getTotalSeconds(this.scoreboard.timer.value);\n }\n\n const base = new Date(this.scoreboard.timer.base).getTime();\n const now = this.now();\n\n const time = timerSeconds + Math.round((now - base) / 1000);\n\n return Math.max(time, 0);\n }\n\n private getTotalSeconds(timer: string): number {\n const values = timer?.split(':');\n switch (values?.length) {\n case 1:\n return parseInt(values[0], 10);\n case 2:\n return parseInt(values[0], 10) * 60 + parseInt(values[1], 10);\n case 3:\n return parseInt(values[0], 10) * 3600 + parseInt(values[1], 10) * 60 + parseInt(values[2], 10);\n }\n\n return 0;\n }\n\n private formatTime(timeSpan: number): string {\n const minutes = Math.floor(timeSpan / 60);\n const seconds = timeSpan % 60;\n\n return `${this.pad(minutes)}:${this.pad(seconds)}`;\n }\n\n private pad(val: number): string {\n return padStart(val.toString(), 2, '0');\n }\n\n private isType(...types: ScoreboardType[]): boolean {\n return types.some((type) => this.scoreboard.type === type);\n }\n\n private stopTicker(): void {\n this.tickerSubscription?.unsubscribe();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { EpcotConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { TickerInterval, TickerService } from '@frontend/sports/common/core/utils/timer';\nimport { IntlService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'ms-prematch-timer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class PrematchTimerComponent implements OnInit, OnDestroy, OnChanges {\n @Input() start: Date;\n @Input() isDynamicTimer = false;\n @Input() intervalForRedPrematchTimer = 10;\n @Input() calendarInfoDisplay = false;\n @HostBinding('class') get className(): string {\n const className = 'timer-badge starting-time';\n\n return this.epcotConfig.isEnabled ? `${className} pre-match-time` : className;\n }\n\n private readonly MINUTE = 60 * 1000;\n private readonly HOUR = 60 * this.MINUTE;\n private readonly DAY = 24 * this.HOUR;\n\n private tickerSubscription: Subscription;\n private formattedTime: string;\n\n constructor(\n private intlService: IntlService,\n private sitecore: Sitecore,\n private ticker: TickerService,\n private elementRef: ElementRef,\n private epcotConfig: EpcotConfig,\n ) {}\n\n ngOnInit(): void {\n if (!this.start) {\n console.warn('No starting date defined');\n\n return;\n }\n\n this.tickerSubscription = this.ticker.subscribe(() => this.ticked(), TickerInterval.Second);\n this.ticked();\n }\n\n ngOnDestroy(): void {\n this.tickerSubscription.unsubscribe();\n }\n\n ngOnChanges(): void {\n this.ticked();\n }\n\n private ticked(): void {\n const now = DateProviderService.getDate();\n const diff = this.start.getTime() - now.getTime();\n\n const formatter = this.getFormat(now);\n\n let dateString = '';\n\n if (formatter.format) {\n dateString = this.epcotConfig.isEnabled\n ? formatter.format.map((f) => this.intlService.formatDate(this.start, f)).join(' • ')\n : formatter.format.map((f) => this.intlService.formatDate(this.start, f)).join(' ');\n } else {\n dateString = Math.floor(Math.abs(diff / this.MINUTE)).toString();\n }\n\n const formattedTime = formatter.title ? formatter.title.replace('{date}', dateString) : '';\n\n if (this.formattedTime === formattedTime) {\n return;\n }\n\n this.formattedTime = formattedTime;\n\n if (formattedTime.indexOf('<') === -1) {\n this.elementRef.nativeElement.textContent = formattedTime;\n } else {\n this.elementRef.nativeElement.innerHTML = formattedTime;\n }\n }\n\n private getDisplayFormat(calendarFormat: string, timerFormat: string): string {\n return this.calendarInfoDisplay ? calendarFormat : timerFormat;\n }\n\n private getFormat(now: Date): { title: string; format?: string[] } {\n const diff = this.start.getTime() - now.getTime();\n const today = DateProviderService.buildDate(now.getFullYear(), now.getMonth(), now.getDate() + 1);\n const tomorrow = DateProviderService.getDate(today.getTime() + this.DAY);\n let title = '';\n if (diff < this.MINUTE) {\n title = this.isDynamicTimer ? this.sitecore.globalMessages.StartsNowFullyFormatted : this.sitecore.globalMessages.StartsNowFormatted;\n\n return { title };\n }\n if (diff < (this.intervalForRedPrematchTimer + 1) * this.MINUTE) {\n title = this.isDynamicTimer\n ? this.getDisplayFormat(this.sitecore.globalMessages.CalendarTimerFormatted, this.sitecore.globalMessages.TimerFormatted)\n : this.getDisplayFormat(\n this.sitecore.globalMessages.CalendarTimerStartingInFormatted,\n this.sitecore.globalMessages.TimerStartingInFormatted,\n );\n\n return { title };\n }\n\n if (diff < this.HOUR) {\n title = this.isDynamicTimer\n ? this.getDisplayFormat(this.sitecore.globalMessages.CalendarTimerStartingIn, this.sitecore.globalMessages.TimerStartingIn)\n : this.getDisplayFormat(\n this.sitecore.globalMessages.CalendarTimerStartingInFormatted,\n this.sitecore.globalMessages.TimerStartingInFormatted,\n );\n\n return { title };\n }\n\n if (this.start < today) {\n return {\n title: this.getDisplayFormat(this.sitecore.globalMessages.CalendarTimerToday, this.sitecore.globalMessages.TimerToday),\n format: ['shortTime'],\n };\n }\n\n if (this.start < tomorrow) {\n return {\n title: this.getDisplayFormat(this.sitecore.globalMessages.TimerTomorrow.replace('/', ''), this.sitecore.globalMessages.TimerTomorrow),\n format: ['shortTime'],\n };\n }\n\n return { title: this.sitecore.globalMessages.TimerOther, format: ['shortDate', 'shortTime'] };\n }\n}\n","\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\n\nimport { LiveTimerComponent } from './live-timer.component';\nimport { PrematchTimerComponent } from './prematch-timer.component';\n\n@Component({\n selector: 'ms-event-timer',\n templateUrl: 'event-timer.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [LiveTimerComponent, PrematchTimerComponent, CommonModule],\n})\nexport class EventTimerComponent {\n @Input() live: boolean;\n @Input() start: Date;\n @Input() scoreboard: EventScoreboard;\n @Input() isDynamicTimer: boolean;\n @Input() intervalForRedPrematchTimer: number;\n @Input() calendarInfoDisplay = false;\n @Input() timeValue?: string;\n @Input() eventId?: number;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { CountDownComponent } from './count-down.component';\nimport { EventTimerComponent } from './event-timer.component';\nimport { PrematchTimerComponent } from './prematch-timer.component';\n\n@NgModule({\n imports: [CommonModule, PrematchTimerComponent, EventTimerComponent],\n declarations: [CountDownComponent],\n exports: [EventTimerComponent, CountDownComponent, PrematchTimerComponent],\n})\nexport class TimerModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'ms-sgp-badge',\n template: `
`,\n styleUrl: './sgp-badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SGPBadgeComponent {\n @HostBinding('class.large') get large(): boolean {\n return this.size() === 'large';\n }\n\n size = input<'large'>();\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 { 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 { InjectionToken, Provider } from '@angular/core';\n\nexport type DsSegmentedControlOptions = {\n /*\n * Whether the control should take up the full width of the container.\n */\n fullWidth: boolean;\n};\n\nconst DEFAULT_SC_OPTIONS: DsSegmentedControlOptions = {\n fullWidth: false,\n};\n\nexport const SEGMENTED_CONTROL_OPTIONS_TOKEN = new InjectionToken('SC_OPTIONS', {\n providedIn: 'root',\n factory: () => DEFAULT_SC_OPTIONS,\n});\n\nexport const provideSegmentedControlOptions = (options: Partial) =>\n ({\n provide: SEGMENTED_CONTROL_OPTIONS_TOKEN,\n useValue: { ...DEFAULT_SC_OPTIONS, ...options },\n }) satisfies Provider;\n","
\n \n @for (option of options(); track option.name) {\n \n \n \n @if (option.customTemplate) {\n \n } @else {\n {{ option.title }}\n }\n \n
\n }\n \n\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { rxHostPressedListener } from '@frontend/ui/rx-host-listener';\n\nimport { SEGMENTED_CONTROL_OPTIONS_TOKEN } from './segmented-control.token';\n\n@Component({\n selector: 'ds-segmented-option',\n template: ` `,\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsSegmentedOption {\n @Input({ required: true }) name!: string;\n @Input() title = '';\n\n @ContentChild('dsTemplate') customTemplate?: TemplateRef;\n\n selected = signal(false);\n @Output() selectOption = new EventEmitter();\n private destroyRef = inject(DestroyRef);\n\n public focusVisible = signal(false);\n public focused = signal(false);\n public tabIndex = signal(-1);\n\n constructor() {\n rxHostPressedListener()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.selectOption.emit(this.name));\n }\n\n setTabIndex(index: number) {\n this.tabIndex.set(index);\n }\n\n setFocused(focused: boolean) {\n this.focused.set(focused);\n }\n\n setFocusVisible(visible: boolean) {\n this.focusVisible.set(visible);\n }\n}\n\n@Component({\n selector: 'ds-segmented-control',\n templateUrl: 'segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n host: {\n class: `ds-segmented-control`,\n },\n imports: [NgTemplateOutlet],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DsSegmentedControl implements AfterViewInit, OnChanges, OnDestroy {\n private controlOptions = inject(SEGMENTED_CONTROL_OPTIONS_TOKEN);\n private renderer = inject(Renderer2);\n private injector = inject(Injector);\n private ngZone = inject(NgZone);\n private _focusMonitor = inject(FocusMonitor);\n\n @Input({ transform: booleanAttribute }) fullWidth: boolean = this.controlOptions.fullWidth;\n @Input() roleType: 'radiogroup' | 'tablist' = 'tablist'; // Default is tablist\n @Input({ transform: booleanAttribute }) twoLineTruncation = false;\n @Input() activeOption = '';\n @Output() activeOptionChange = new EventEmitter();\n @Input({ transform: booleanAttribute }) inverse = false;\n\n _activeOption = signal('');\n\n // TODO: convert to signal queries when we have Angular v17.3 in monorepo\n protected options = signal([]);\n @ViewChildren('tabOption') tabLabels?: QueryList;\n @ContentChildren(DsSegmentedOption) set optionList(options: QueryList) {\n this.options.set(options?.toArray() || []);\n // when we update options, we want to make sure we still have a selection option\n this._activateSelectedOption();\n }\n\n @ViewChild('scContainer', { static: true }) scContainer!: ElementRef;\n\n protected isReady = signal(false);\n\n selectedOption = computed(() => this.options().find((x) => x.selected()) ?? undefined);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['activeOption'] && changes['activeOption'].currentValue !== changes['activeOption'].previousValue) {\n this._activeOption.set(this.activeOption);\n this.selectOption(this.activeOption);\n }\n }\n\n ngAfterViewInit(): void {\n if (this.tabLabels) {\n this.tabLabels.forEach((option, index) => {\n this._focusMonitor.monitor(option.nativeElement, true).subscribe((focusOrigin) => {\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this.options()?.[index]?.setFocusVisible(true);\n this.options()?.[index]?.setFocused(true);\n } else if (!focusOrigin && !(this.options()[index] === undefined)) {\n this.options()?.[index]?.setFocusVisible(false);\n this.options()?.[index]?.setFocused(false);\n }\n });\n });\n }\n\n if (this.options()) {\n effect(\n () => {\n const selectedOption = this.selectedOption();\n if (selectedOption && this.isReady()) {\n this._setHighlightWidthAndXPost(selectedOption);\n }\n },\n { injector: this.injector },\n );\n }\n\n // we don't want to show the initial animation, but only the subsequent ones\n this.ngZone.runOutsideAngular(() => setTimeout(() => this.isReady.set(true)));\n }\n /**\n * The method which will update the `selected` signal in `ds-segment-option` based on the selected name.\n * @param name Name of the selected option\n * @param emit Whether the output should emit or not\n */\n\n ngOnDestroy() {\n if (this.tabLabels) {\n this.tabLabels.forEach((option) => this._focusMonitor.stopMonitoring(option));\n }\n }\n\n selectOption(name: string, event?: Event): void {\n if (name === undefined) {\n return;\n }\n if (event && this._activeOption() === name) {\n // Do nothing if the same option is clicked again\n return;\n }\n this.options().forEach((option) => {\n const isSelected = option.name === name;\n option.selected.set(isSelected);\n option.setTabIndex(isSelected ? 0 : -1);\n if (isSelected) {\n this._setHighlightWidthAndXPost(option);\n }\n });\n this._activeOption.set(name);\n this.activeOptionChange.emit(name);\n }\n\n /**\n * Synchronizes the options with the active option input.\n * If there is no active segment option, it will select the first one in the list.\n * @private\n */\n private _activateSelectedOption() {\n const selectedOption = this.selectedOption();\n // select the option based on name otherwise select the first one\n if (this.activeOption) {\n this.selectOption(this.activeOption);\n } else if (!selectedOption) {\n this._selectFirstOption();\n }\n }\n\n /**\n * Select first segment option. This is useful when the activeOption is not provided.\n * @private\n */\n private _selectFirstOption() {\n const options = this.options();\n if (options.length > 0) {\n const firstOption = options[0];\n if (firstOption !== undefined) {\n this.selectOption(firstOption.name);\n // Check if there are other options with the same name and select them too\n options\n .filter((option) => option.name === firstOption.name && option !== firstOption)\n .forEach((option) => this.selectOption(option.name));\n // Emit the active option change\n this.activeOptionChange.emit(firstOption.name);\n }\n }\n }\n\n /**\n * Will get the active segment position in order to show the indicator on the background.\n * @private\n */\n private _setHighlightWidthAndXPost(option: DsSegmentedOption) {\n const el = this.scContainer.nativeElement.querySelector(`#ds-segment-item-${option.name}`);\n if (el) {\n const { offsetWidth, offsetLeft } = el as HTMLDivElement;\n // We update the DOM directly, so we don't have to go through Angular Change Detection\n this.renderer.setProperty(\n this.scContainer.nativeElement,\n 'style',\n `--ds-sc-highlight-width: ${offsetWidth}px; --ds-sc-highlight-x-pos: ${offsetLeft}px`,\n );\n }\n }\n\n onKeydown(event: KeyboardEvent) {\n const { key } = event;\n const options = this.options();\n const currentIndex = options.findIndex((option) => option.focused());\n let newIndex: number | undefined;\n\n if (key === 'ArrowRight') {\n newIndex = (currentIndex + 1) % options.length;\n } else if (key === 'ArrowLeft') {\n newIndex = (currentIndex - 1 + options.length) % options.length;\n } else if ((key === ' ' || key === 'Enter') && currentIndex !== -1 && options[currentIndex]) {\n this.selectOption(options[currentIndex].name, event);\n }\n\n if (newIndex !== undefined) {\n event.preventDefault();\n const newOption = options[newIndex];\n if (newOption) {\n this.focusOption(newOption, newIndex);\n }\n }\n }\n\n focusOption(option: DsSegmentedOption, index: number) {\n const focusOption = this.tabLabels?.get(index);\n if (focusOption) {\n this.options().forEach((opt) => {\n opt.setFocused(false);\n opt.setFocusVisible(false);\n });\n option.setFocused(true);\n option.setFocusVisible(true);\n this._focusMonitor.focusVia(focusOption.nativeElement, 'keyboard');\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { DsSegmentedControl, DsSegmentedOption } from './segmented-control.component';\n\nexport { DsSegmentedControl, DsSegmentedOption } from './segmented-control.component';\n\n@NgModule({\n imports: [DsSegmentedControl, DsSegmentedOption],\n exports: [DsSegmentedControl, DsSegmentedOption],\n})\nexport class DsSegmentedControlModule {}\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, HostListener, InjectionToken, Directive, Inject, Input, Output, NgModule } from '@angular/core';\nimport { NgStyle, NgClass, NgIf, CommonModule } from '@angular/common';\nimport { autoUpdate, flip, shift, limitShift, offset, arrow, autoPlacement, computePosition } from '@floating-ui/dom';\nimport { Subject, fromEvent, takeUntil, timer } from 'rxjs';\nconst _c0 = [\"popperViewRef\"];\nconst _c1 = [\"*\", \"*\"];\nfunction NgxPopperjsContentComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"innerHTML\", ctx_r0.text, i0.ɵɵsanitizeHtml);\n }\n}\nfunction NgxPopperjsContentComponent_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵelementEnd();\n }\n}\nvar NgxPopperjsTriggers = /*#__PURE__*/function (NgxPopperjsTriggers) {\n NgxPopperjsTriggers[\"click\"] = \"click\";\n NgxPopperjsTriggers[\"hover\"] = \"hover\";\n NgxPopperjsTriggers[\"mousedown\"] = \"mousedown\";\n NgxPopperjsTriggers[\"none\"] = \"none\";\n return NgxPopperjsTriggers;\n}(NgxPopperjsTriggers || {});\nlet NgxPopperjsContentComponent = /*#__PURE__*/(() => {\n class NgxPopperjsContentComponent {\n elRef;\n _viewRef;\n _changeDetectorRef;\n static nextId = 0;\n ariaHidden;\n arrowColor = null;\n displayType;\n id = `ngx_poppperjs_${++NgxPopperjsContentComponent.nextId}`;\n isMouseOver = !1;\n onHidden = new EventEmitter();\n onUpdate;\n opacity;\n popperInstance;\n popperOptions = {\n disableAnimation: false,\n disableDefaultStyling: false,\n boundariesElement: \"\",\n trigger: NgxPopperjsTriggers.hover,\n positionFixed: false,\n appendToBody: false,\n popperModifiers: []\n };\n popperViewRef;\n referenceObject;\n state;\n text;\n _destroy$ = new Subject();\n _resizeCtrl$ = new Subject();\n _styleId = `${this.id}_style`;\n constructor(elRef, _viewRef, _changeDetectorRef) {\n this.elRef = elRef;\n this._viewRef = _viewRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._toggleVisibility(!1);\n }\n clean() {\n this.toggleVisibility(false);\n if (!this.popperInstance) {\n return;\n }\n this.popperInstance();\n }\n extractAppliedClassListExpr(classList = []) {\n const klassList = Array.isArray(classList) ? classList : typeof classList === typeof \"\" ? classList.replace(/ /, \"\").split(\",\") : [];\n return klassList.reduce((acc, klass) => {\n acc[klass] = !0;\n return acc;\n }, {});\n }\n hide() {\n if (this.popperInstance) {\n this.popperInstance();\n }\n this.toggleVisibility(!1);\n this.onHidden.emit();\n }\n ngOnDestroy() {\n this._destroy$.next();\n this.clean();\n if (this.popperOptions.appendTo && this.elRef && this.elRef.nativeElement && this.elRef.nativeElement.parentNode) {\n this._viewRef.detach();\n this.elRef.nativeElement.parentNode.removeChild(this.elRef.nativeElement);\n }\n }\n onDocumentResize() {\n this.update();\n }\n onMouseOver() {\n this.isMouseOver = true;\n }\n show() {\n if (!this.referenceObject) {\n return;\n }\n this._resizeCtrl$.next();\n this._determineArrowColor();\n this.popperInstance = autoUpdate(this.referenceObject, this.popperViewRef.nativeElement, () => {\n this._computePosition();\n });\n fromEvent(document, \"resize\").pipe(takeUntil(this._resizeCtrl$), takeUntil(this._destroy$)).subscribe({\n next: () => this.onDocumentResize()\n });\n }\n showOnLeave() {\n this.isMouseOver = false;\n if (this.popperOptions.trigger !== NgxPopperjsTriggers.hover && !this.popperOptions.hideOnMouseLeave) {\n return;\n }\n this.hide();\n }\n // Toggle visibility and detect changes - Run only after ngOnInit!\n toggleVisibility(state) {\n this._toggleVisibility(state);\n // tslint:disable-next-line:no-string-literal\n if (!this._changeDetectorRef[\"destroyed\"]) {\n this._changeDetectorRef.detectChanges();\n }\n }\n update() {\n this._computePosition();\n }\n _computePosition() {\n const appendToParent = this.popperOptions.appendTo && document.querySelector(this.popperOptions.appendTo);\n if (appendToParent && this.elRef.nativeElement.parentNode !== appendToParent) {\n this.elRef.nativeElement.parentNode && this.elRef.nativeElement.parentNode.removeChild(this.elRef.nativeElement);\n appendToParent.appendChild(this.elRef.nativeElement);\n }\n const arrowElement = this.elRef.nativeElement.querySelector(\".ngxp__arrow\");\n const arrowLen = arrowElement.offsetWidth;\n // Get half the arrow box's hypotenuse length\n const floatingOffset = Math.sqrt(2 * arrowLen ** 2) / 2;\n const boundaryMiddleware = [];\n if (this.popperOptions.flip) {\n boundaryMiddleware.push(flip());\n }\n if (this.popperOptions.preventOverflow) {\n boundaryMiddleware.push(shift({\n limiter: limitShift()\n }));\n }\n const popperOptions = {\n placement: this.popperOptions.placement,\n strategy: this.popperOptions.positionFixed ? \"fixed\" : \"absolute\",\n middleware: [offset(floatingOffset), ...boundaryMiddleware, arrow({\n element: arrowElement,\n padding: 4\n })]\n };\n if (!this.popperOptions.preventOverflow && !popperOptions.placement) {\n const boundariesElement = this.popperOptions.boundariesElement && document.querySelector(this.popperOptions.boundariesElement);\n popperOptions.middleware.push(autoPlacement({\n boundary: boundariesElement\n }));\n }\n computePosition(this.referenceObject, this.popperViewRef.nativeElement, popperOptions).then(({\n middlewareData,\n x,\n y,\n placement\n }) => {\n const side = placement.split(\"-\")[0];\n this.popperViewRef.nativeElement.setAttribute(\"data-popper-placement\", side);\n if (middlewareData.arrow) {\n const staticSide = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n }[side];\n Object.assign(arrowElement.style, {\n left: middlewareData.arrow.x != null ? `${middlewareData.arrow.x}px` : \"\",\n top: middlewareData.arrow.y != null ? `${middlewareData.arrow.y}px` : \"\",\n [staticSide]: `${-arrowLen / 2}px`\n });\n }\n Object.assign(this.popperViewRef.nativeElement.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n this.toggleVisibility(!0);\n this.onUpdate?.();\n });\n }\n _createArrowSelector() {\n return `div#${this.id}.ngxp__container > .ngxp__arrow.ngxp__force-arrow`;\n }\n _determineArrowColor() {\n if (!this.popperOptions.styles || this.arrowColor) {\n return !1;\n }\n const ruleValue = this.popperOptions.styles[\"background-color\"] || this.popperOptions.styles.backgroundColor;\n if (this.arrowColor === ruleValue) {\n return !1;\n }\n this.arrowColor = ruleValue;\n let $style = document.querySelector(`#${this._styleId}`);\n const styleContent = this.arrowColor ? `${this._createArrowSelector()}:before { background-color: ${this.arrowColor}; }` : \"\";\n if (!$style) {\n $style = document.createElement(\"style\");\n $style.id = this._styleId;\n $style.setAttribute(\"type\", \"text/css\");\n document.head.appendChild($style);\n }\n // tslint:disable-next-line:no-string-literal\n if ($style[\"styleSheet\"]) {\n // tslint:disable-next-line:no-string-literal\n $style[\"styleSheet\"].cssText = styleContent;\n // This is required for IE8 and below.\n } else {\n $style.innerHTML = styleContent;\n }\n }\n _toggleVisibility(state) {\n this.displayType = [\"none\", \"block\"][+state];\n this.opacity = +state;\n this.ariaHidden = `${!state}`;\n this.state = state;\n }\n /** @nocollapse */\n static ɵfac = function NgxPopperjsContentComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxPopperjsContentComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n /** @nocollapse */\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxPopperjsContentComponent,\n selectors: [[\"popper-content\"]],\n viewQuery: function NgxPopperjsContentComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.popperViewRef = _t.first);\n }\n },\n hostBindings: function NgxPopperjsContentComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseover\", function NgxPopperjsContentComponent_mouseover_HostBindingHandler() {\n return ctx.onMouseOver();\n })(\"mouseleave\", function NgxPopperjsContentComponent_mouseleave_HostBindingHandler() {\n return ctx.showOnLeave();\n });\n }\n },\n exportAs: [\"ngxPopperjsContent\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 5,\n vars: 19,\n consts: [[\"popperViewRef\", \"\"], [3, \"ngStyle\", \"ngClass\"], [\"class\", \"ngxp__inner\", 3, \"innerHTML\", 4, \"ngIf\"], [\"class\", \"ngxp__inner\", 4, \"ngIf\"], [1, \"ngxp__arrow\", 3, \"ngClass\"], [1, \"ngxp__inner\", 3, \"innerHTML\"], [1, \"ngxp__inner\"]],\n template: function NgxPopperjsContentComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵtemplate(2, NgxPopperjsContentComponent_div_2_Template, 2, 1, \"div\", 2)(3, NgxPopperjsContentComponent_div_3_Template, 2, 0, \"div\", 3);\n i0.ɵɵelement(4, \"div\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", ctx.displayType)(\"opacity\", ctx.opacity);\n i0.ɵɵclassProp(\"ngxp__container\", !ctx.popperOptions.disableDefaultStyling)(\"ngxp__animation\", !ctx.popperOptions.disableAnimation);\n i0.ɵɵproperty(\"ngStyle\", ctx.popperOptions.styles)(\"ngClass\", ctx.extractAppliedClassListExpr(ctx.popperOptions.applyClass));\n i0.ɵɵattribute(\"id\", ctx.id)(\"aria-hidden\", ctx.ariaHidden)(\"aria-describedby\", ctx.popperOptions.ariaDescribe || null)(\"role\", ctx.popperOptions.ariaRole);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.text);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.text);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"ngxp__force-arrow\", ctx.arrowColor);\n i0.ɵɵproperty(\"ngClass\", ctx.extractAppliedClassListExpr(ctx.popperOptions.applyArrowClass));\n }\n },\n dependencies: [NgStyle, NgClass, NgIf],\n styles: [\"popper-content{position:relative;display:block}.ngxp__container{display:none;position:absolute;border-radius:3px;border:1px solid grey;box-shadow:0 0 2px #00000080;padding:10px}.ngxp__container.ngxp__animation{animation:ngxp-fadeIn .15s ease-out}.ngxp__container>.ngxp__arrow{position:absolute;width:10px;height:10px;z-index:-1;transform:rotate(45deg);background-color:red}.ngxp__container[data-popper-placement^=top]>.ngxp__arrow{bottom:-5px}.ngxp__container[data-popper-placement^=bottom]>.ngxp__arrow{top:-5px}.ngxp__container[data-popper-placement^=left]>.ngxp__arrow{right:-5px}.ngxp__container[data-popper-placement^=right]>.ngxp__arrow{left:-5px}@keyframes ngxp-fadeIn{0%{display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return NgxPopperjsContentComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst NGX_POPPERJS_DEFAULTS = new InjectionToken(\"NGX_POPPERJS_DEFAULTS\");\n\n/**\n * @private\n */\nclass NgxPopperjsUtils {\n /** Coerces a data-bound value (typically a string) to a boolean. */\n static coerceBooleanProperty(value) {\n return value != null && `${value}` !== \"false\";\n }\n}\n\n// tslint:disable:no-input-rename\nclass NgxPopperjsDirective {\n _changeDetectorRef;\n _elementRef;\n _vcr;\n _popperDefaults;\n static baseOptions = {\n showDelay: 0,\n hideOnClickOutside: true,\n hideOnMouseLeave: false,\n hideOnScroll: false,\n appendTo: undefined,\n ariaRole: \"popper\",\n ariaDescribe: \"\",\n styles: {},\n trigger: NgxPopperjsTriggers.click\n };\n set applyClass(newValue) {\n if (newValue === this._applyClass) {\n return;\n }\n this._applyClass = newValue;\n this._checkExisting(\"applyClass\", newValue);\n }\n get applyClass() {\n return this._applyClass;\n }\n set hideOnClickOutside(newValue) {\n this._hideOnClickOutside = NgxPopperjsUtils.coerceBooleanProperty(newValue);\n }\n get hideOnClickOutside() {\n return this._hideOnClickOutside;\n }\n set content(newValue) {\n if (newValue === this._content) {\n return;\n }\n this._content = newValue;\n if (this._popperContent) {\n if (typeof newValue === \"string\") {\n this._popperContent.text = newValue;\n } else {\n this._popperContent = newValue;\n }\n }\n }\n get content() {\n return this._content;\n }\n set flip(newValue) {\n this._flip = NgxPopperjsUtils.coerceBooleanProperty(newValue);\n this._checkExisting(\"preventOverflow\", this._preventOverflow);\n }\n get flip() {\n return this._flip;\n }\n set placement(newValue) {\n this._placement = newValue;\n this._checkExisting(\"placement\", newValue);\n }\n get placement() {\n return this._placement;\n }\n set preventOverflow(newValue) {\n this._preventOverflow = NgxPopperjsUtils.coerceBooleanProperty(newValue);\n this._checkExisting(\"preventOverflow\", this._preventOverflow);\n }\n get preventOverflow() {\n return this._preventOverflow;\n }\n set popperApplyArrowClass(newValue) {\n if (newValue === this._applyArrowClass) {\n return;\n }\n this._applyArrowClass = newValue;\n if (this._popperContent) {\n this._popperContent.popperOptions.applyArrowClass = newValue;\n if (!this._shown) {\n return;\n }\n this._popperContent.update();\n }\n }\n get popperApplyArrowClass() {\n return this._applyArrowClass;\n }\n set disabled(newValue) {\n if (newValue === this._disabled) {\n return;\n }\n this._disabled = !!newValue;\n if (this._shown) {\n this.hide();\n }\n }\n get disabled() {\n return this._disabled;\n }\n ariaDescribe;\n ariaRole;\n boundariesElement;\n disableAnimation;\n disableStyle;\n hideOnMouseLeave;\n hideOnScroll;\n hideTimeout = 0;\n popperAppendTo;\n popperOnHidden = new EventEmitter();\n popperOnShown = new EventEmitter();\n popperOnUpdate = new EventEmitter();\n positionFixed;\n showDelay;\n showOnStart;\n showTrigger;\n styles;\n targetElement;\n timeoutAfterShow = 0;\n _applyArrowClass;\n _applyClass;\n _content;\n _destroy$ = new Subject();\n _disabled;\n _flip = !0;\n _globalEventListenersCtrl$ = new Subject();\n _hideOnClickOutside = true;\n _placement;\n _popperContent;\n _popperContentClass = NgxPopperjsContentComponent;\n _popperContentRef;\n _preventOverflow = !0;\n _scheduledHideTimeoutCtrl$ = new Subject();\n _scheduledShowTimeoutCtrl$ = new Subject();\n _shown = false;\n constructor(_changeDetectorRef, _elementRef, _vcr, _popperDefaults = {}) {\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._vcr = _vcr;\n this._popperDefaults = _popperDefaults;\n NgxPopperjsDirective.baseOptions = {\n ...NgxPopperjsDirective.baseOptions,\n ...this._popperDefaults\n };\n }\n static assignDefined(target, ...sources) {\n for (const source of sources) {\n for (const key of Object.keys(source)) {\n const val = source[key];\n if (val !== undefined) {\n target[key] = val;\n }\n }\n }\n return target;\n }\n applyTriggerListeners() {\n switch (this.showTrigger) {\n case NgxPopperjsTriggers.click:\n this._addListener(\"click\", this.toggle.bind(this));\n break;\n case NgxPopperjsTriggers.mousedown:\n this._addListener(\"mousedown\", this.toggle.bind(this));\n break;\n case NgxPopperjsTriggers.hover:\n this._addListener(\"mouseenter\", this.scheduledShow.bind(this, this.showDelay));\n [\"touchend\", \"touchcancel\", \"mouseleave\"].forEach(eventName => {\n this._addListener(eventName, this.scheduledHide.bind(this, null, this.hideTimeout));\n });\n break;\n }\n if (this.showTrigger !== NgxPopperjsTriggers.hover && this.hideOnMouseLeave) {\n [\"touchend\", \"touchcancel\", \"mouseleave\"].forEach(eventName => {\n this._addListener(eventName, this.scheduledHide.bind(this, null, this.hideTimeout));\n });\n }\n }\n getRefElement() {\n return this.targetElement || this._elementRef.nativeElement;\n }\n hide() {\n if (this.disabled) {\n return;\n }\n if (!this._shown) {\n this._scheduledShowTimeoutCtrl$.next();\n return;\n }\n this._shown = false;\n if (this._popperContentRef) {\n this._popperContentRef.instance.hide();\n } else {\n this._popperContent.hide();\n }\n this.popperOnHidden.emit(this);\n this._globalEventListenersCtrl$.next();\n }\n hideOnClickOutsideHandler($event) {\n if (this.disabled || !this.hideOnClickOutside || $event.target === this._popperContent.elRef.nativeElement || this._popperContent.elRef.nativeElement.contains($event.target)) {\n return;\n }\n this.scheduledHide($event, this.hideTimeout);\n }\n hideOnScrollHandler($event) {\n if (this.disabled || !this.hideOnScroll) {\n return;\n }\n this.scheduledHide($event, this.hideTimeout);\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._popperContent && this._popperContent.clean();\n }\n ngOnInit() {\n if (typeof this.content === \"string\") {\n this._popperContent = this._constructContent();\n this._popperContent.text = this.content;\n } else if (typeof this.content === typeof void 0) {\n this._popperContent = this._constructContent();\n this._popperContent.text = \"\";\n } else {\n this._popperContent = this.content;\n }\n const popperRef = this._popperContent;\n popperRef.referenceObject = this.getRefElement();\n this._setContentProperties(popperRef);\n this._setDefaults();\n this.applyTriggerListeners();\n if (this.showOnStart) {\n this.scheduledShow();\n }\n }\n scheduledHide($event = null, delay = this.hideTimeout) {\n if (this.disabled) {\n return;\n }\n this._scheduledShowTimeoutCtrl$.next();\n timer(delay).pipe(takeUntil(this._scheduledHideTimeoutCtrl$), takeUntil(this._destroy$)).subscribe({\n next: () => {\n // TODO: check\n const toElement = $event ? $event.toElement : null;\n const popperContentView = this._popperContent.popperViewRef ? this._popperContent.popperViewRef.nativeElement : false;\n if (!popperContentView || popperContentView === toElement || popperContentView.contains(toElement) || this.content && this.content.isMouseOver) {\n return;\n }\n this.hide();\n this._applyChanges();\n }\n });\n }\n scheduledShow(delay = this.showDelay) {\n if (this.disabled) {\n return;\n }\n this._scheduledHideTimeoutCtrl$.next();\n timer(delay).pipe(takeUntil(this._scheduledShowTimeoutCtrl$), takeUntil(this._destroy$)).subscribe({\n next: () => {\n this.show();\n this._applyChanges();\n }\n });\n }\n show() {\n if (this._shown) {\n this._scheduledHideTimeoutCtrl$.next();\n return;\n }\n this._shown = true;\n const popperRef = this._popperContent;\n const element = this.getRefElement();\n if (popperRef.referenceObject !== element) {\n popperRef.referenceObject = element;\n }\n this._setContentProperties(popperRef);\n popperRef.show();\n this.popperOnShown.emit(this);\n if (this.timeoutAfterShow > 0) {\n this.scheduledHide(null, this.timeoutAfterShow);\n }\n fromEvent(document, \"click\").pipe(takeUntil(this._globalEventListenersCtrl$), takeUntil(this._destroy$)).subscribe({\n next: e => this.hideOnClickOutsideHandler(e)\n });\n fromEvent(this._getScrollParent(this.getRefElement()), \"scroll\").pipe(takeUntil(this._globalEventListenersCtrl$), takeUntil(this._destroy$)).subscribe({\n next: e => {\n this.hideOnScrollHandler(e);\n }\n });\n }\n toggle() {\n if (this.disabled) {\n return;\n }\n this._shown ? this.scheduledHide(null, this.hideTimeout) : this.scheduledShow();\n }\n _addListener(eventName, cb) {\n fromEvent(this._elementRef.nativeElement, eventName).pipe(takeUntil(this._destroy$)).subscribe({\n next: cb\n });\n }\n _applyChanges() {\n this._changeDetectorRef.markForCheck();\n this._changeDetectorRef.detectChanges();\n }\n _checkExisting(key, newValue) {\n if (this._popperContent) {\n this._popperContent.popperOptions[key] = newValue;\n if (!this._shown) {\n return;\n }\n this._popperContent.update();\n }\n }\n _constructContent() {\n this._popperContentRef = this._vcr.createComponent(this._popperContentClass);\n return this._popperContentRef.instance;\n }\n _getScrollParent(node) {\n const isElement = node instanceof HTMLElement;\n const overflowY = isElement && window.getComputedStyle(node).overflowY;\n const isScrollable = overflowY !== \"visible\" && overflowY !== \"hidden\";\n if (!node) {\n return null;\n } else if (isScrollable && node.scrollHeight > node.clientHeight) {\n return node;\n }\n return this._getScrollParent(node.parentNode) || document;\n }\n _onPopperUpdate(event) {\n this.popperOnUpdate.emit(event);\n }\n _setContentProperties(popperRef) {\n popperRef.popperOptions = NgxPopperjsDirective.assignDefined(popperRef.popperOptions, NgxPopperjsDirective.baseOptions, {\n showDelay: this.showDelay,\n disableAnimation: this.disableAnimation,\n disableDefaultStyling: this.disableStyle,\n placement: this.placement,\n boundariesElement: this.boundariesElement,\n trigger: this.showTrigger,\n positionFixed: this.positionFixed,\n ariaDescribe: this.ariaDescribe,\n ariaRole: this.ariaRole,\n applyClass: this.applyClass,\n applyArrowClass: this.popperApplyArrowClass,\n hideOnMouseLeave: this.hideOnMouseLeave,\n styles: this.styles,\n appendTo: this.popperAppendTo,\n preventOverflow: this.preventOverflow\n });\n popperRef.onUpdate = this._onPopperUpdate.bind(this);\n popperRef.onHidden.pipe(takeUntil(this._destroy$)).subscribe(this.hide.bind(this));\n }\n _setDefaults() {\n [\"showDelay\", \"hideOnScroll\", \"hideOnMouseLeave\", \"hideOnClickOutside\", \"ariaRole\", \"ariaDescribe\"].forEach(key => {\n this[key] = this[key] === void 0 ? NgxPopperjsDirective.baseOptions[key] : this[key];\n });\n this.showTrigger = this.showTrigger || NgxPopperjsDirective.baseOptions.trigger;\n this.styles = this.styles === void 0 ? {\n ...NgxPopperjsDirective.baseOptions.styles\n } : this.styles;\n }\n /** @nocollapse */\n static ɵfac = function NgxPopperjsDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxPopperjsDirective)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(NGX_POPPERJS_DEFAULTS));\n };\n /** @nocollapse */\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgxPopperjsDirective,\n selectors: [[\"\", \"popper\", \"\"]],\n inputs: {\n applyClass: [0, \"popperApplyClass\", \"applyClass\"],\n hideOnClickOutside: [0, \"popperHideOnClickOutside\", \"hideOnClickOutside\"],\n content: [0, \"popper\", \"content\"],\n flip: [0, \"popperFlip\", \"flip\"],\n placement: [0, \"popperPlacement\", \"placement\"],\n preventOverflow: [0, \"popperPreventOverflow\", \"preventOverflow\"],\n popperApplyArrowClass: \"popperApplyArrowClass\",\n disabled: [0, \"popperDisabled\", \"disabled\"],\n ariaDescribe: [0, \"popperAriaDescribeBy\", \"ariaDescribe\"],\n ariaRole: [0, \"popperAriaRole\", \"ariaRole\"],\n boundariesElement: [0, \"popperBoundaries\", \"boundariesElement\"],\n disableAnimation: [0, \"popperDisableAnimation\", \"disableAnimation\"],\n disableStyle: [0, \"popperDisableStyle\", \"disableStyle\"],\n hideOnMouseLeave: [0, \"popperHideOnMouseLeave\", \"hideOnMouseLeave\"],\n hideOnScroll: [0, \"popperHideOnScroll\", \"hideOnScroll\"],\n hideTimeout: [0, \"popperTimeout\", \"hideTimeout\"],\n popperAppendTo: \"popperAppendTo\",\n positionFixed: [0, \"popperPositionFixed\", \"positionFixed\"],\n showDelay: [0, \"popperDelay\", \"showDelay\"],\n showOnStart: [0, \"popperShowOnStart\", \"showOnStart\"],\n showTrigger: [0, \"popperTrigger\", \"showTrigger\"],\n styles: [0, \"popperStyles\", \"styles\"],\n targetElement: [0, \"popperTarget\", \"targetElement\"],\n timeoutAfterShow: [0, \"popperTimeoutAfterShow\", \"timeoutAfterShow\"]\n },\n outputs: {\n popperOnHidden: \"popperOnHidden\",\n popperOnShown: \"popperOnShown\",\n popperOnUpdate: \"popperOnUpdate\"\n },\n exportAs: [\"popper\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// tslint:disable:no-input-rename\nlet NgxPopperjsLooseDirective = /*#__PURE__*/(() => {\n class NgxPopperjsLooseDirective extends NgxPopperjsDirective {\n set popperLoose(newValue) {\n this.content = newValue;\n }\n set popperLoosePlacement(newValue) {\n this.placement = newValue;\n }\n set popperLooseTrigger(newValue) {\n this.showTrigger = newValue;\n }\n constructor(changeDetectorRef, elementRef, vcr, popperDefaults = {}) {\n super(changeDetectorRef, elementRef, vcr, popperDefaults);\n }\n /** @nocollapse */\n static ɵfac = function NgxPopperjsLooseDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxPopperjsLooseDirective)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(NGX_POPPERJS_DEFAULTS));\n };\n /** @nocollapse */\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgxPopperjsLooseDirective,\n selectors: [[\"\", \"popperLoose\", \"\"]],\n inputs: {\n popperLoose: \"popperLoose\",\n popperLoosePlacement: \"popperLoosePlacement\",\n popperLooseTrigger: \"popperLooseTrigger\"\n },\n exportAs: [\"popperLoose\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n return NgxPopperjsLooseDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar NgxPopperjsPlacements = /*#__PURE__*/function (NgxPopperjsPlacements) {\n NgxPopperjsPlacements[\"TOP\"] = \"top\";\n NgxPopperjsPlacements[\"BOTTOM\"] = \"bottom\";\n NgxPopperjsPlacements[\"LEFT\"] = \"left\";\n NgxPopperjsPlacements[\"RIGHT\"] = \"right\";\n NgxPopperjsPlacements[\"TOPSTART\"] = \"top-start\";\n NgxPopperjsPlacements[\"BOTTOMSTART\"] = \"bottom-start\";\n NgxPopperjsPlacements[\"LEFTSTART\"] = \"left-start\";\n NgxPopperjsPlacements[\"RIGHTSTART\"] = \"right-start\";\n NgxPopperjsPlacements[\"TOPEND\"] = \"top-end\";\n NgxPopperjsPlacements[\"BOTTOMEND\"] = \"bottom-end\";\n NgxPopperjsPlacements[\"LEFTEND\"] = \"left-end\";\n NgxPopperjsPlacements[\"RIGHTEND\"] = \"right-end\";\n return NgxPopperjsPlacements;\n}(NgxPopperjsPlacements || {});\nfunction provideNgxPopperjsOptions(config = {}) {\n return [{\n provide: NGX_POPPERJS_DEFAULTS,\n useValue: config\n }];\n}\nlet NgxPopperjsModule = /*#__PURE__*/(() => {\n class NgxPopperjsModule {\n static forRoot(popperBaseOptions) {\n return {\n ngModule: NgxPopperjsModule,\n providers: [provideNgxPopperjsOptions(popperBaseOptions)]\n };\n }\n /** @nocollapse */\n static ɵfac = function NgxPopperjsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgxPopperjsModule)();\n };\n /** @nocollapse */\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxPopperjsModule\n });\n /** @nocollapse */\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [provideNgxPopperjsOptions()],\n imports: [CommonModule]\n });\n }\n return NgxPopperjsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ngx-popperjs\n */\n// Components\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { NgxPopperjsContentComponent, NgxPopperjsDirective, NgxPopperjsLooseDirective, NgxPopperjsModule, NgxPopperjsPlacements, NgxPopperjsTriggers, provideNgxPopperjsOptions };\n","import { Component, Input } from '@angular/core';\n\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n standalone: true,\n imports: [TrustAsHtmlPipe],\n selector: 'vn-copyright',\n template: '@if (copyright) {
}',\n})\nexport class CopyrightComponent {\n @Input() copyright?: string;\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\nexport { getWindow as a, getDocument as g };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nlet deviceCached;\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nfunction Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\nfunction updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\nfunction transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\n }\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\nfunction onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n\n // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\nfunction prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\nvar classes = {\n addClasses,\n removeClasses\n};\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n eventsPrefix: 'swiper',\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport { Swiper as S, defaults as d };","import { e as elementChildren, c as createElement } from './utils.mjs';\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\nexport { createElementIfNotDefined as c };","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\nexport { Navigation as default };","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\nexport { classesToSelector as c };","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\nexport { Pagination as default };","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\nexport { Autoplay as default };","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\nexport { effectInit as e };","import { g as getSlideTransformEl } from './utils.mjs';\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\nexport { effectTarget as e };","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\nexport { createShadow as c };","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n const r = getRotateFix(swiper);\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\nexport { EffectCoverflow as default };","
\n
\n \n
\n @if (showPagination()) {\n @if (swiperOptions().pagination) {\n
\n }\n @if (swiperOptions().navigation) {\n
\n
\n }\n }\n
\n","import { NgClass } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, NgZone, OnDestroy, ViewChild, effect, inject, input } from '@angular/core';\n\nimport { RxStrategyProvider } from '@rx-angular/cdk/render-strategies';\nimport Swiper from 'swiper';\nimport { Autoplay, Navigation, Pagination } from 'swiper/modules';\nimport { SwiperModule, SwiperOptions } from 'swiper/types';\nimport { NavigationOptions } from 'swiper/types/modules/navigation';\nimport { PaginationOptions } from 'swiper/types/modules/pagination';\n\n@Component({\n standalone: true,\n selector: 'vn-swiper',\n templateUrl: 'swiper.html',\n imports: [NgClass],\n})\nexport class SwiperComponent implements AfterViewInit, OnDestroy {\n private ngZone = inject(NgZone);\n private strategy = inject(RxStrategyProvider);\n\n @ViewChild('swiperContainer') swiperRef: ElementRef;\n\n private readonly defaultOptions: SwiperOptions = {\n modules: [],\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n pagination: {\n clickable: true,\n el: '.swiper-pagination',\n type: 'bullets',\n },\n };\n\n showPagination = input(true);\n swiperOptions = input(this.defaultOptions, {\n transform: (options) => this.sanitizeOptions(options),\n });\n swiperClass = input('', {\n transform: (value) => (Array.isArray(value) ? value.filter((v: string) => v !== undefined) : value || ''),\n });\n\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n this.swiper = new Swiper(this.swiperRef.nativeElement, this.swiperOptions());\n });\n }\n\n constructor() {\n effect(() => {\n const options = this.swiperOptions();\n if (this.swiper) {\n this.swiper.params = this.syncedSwiperParams(options, this.swiper.params);\n }\n });\n }\n\n swiper: Swiper;\n\n private sanitizeOptions(options: SwiperOptions): SwiperOptions {\n const extendedModules: SwiperModule[] = [];\n\n if (options.navigation === true) {\n options.navigation = this.defaultOptions.navigation as NavigationOptions;\n extendedModules.push(Navigation);\n }\n\n if (options.pagination === true) {\n options.pagination = this.defaultOptions.pagination as PaginationOptions;\n extendedModules.push(Pagination);\n }\n\n if (options.autoplay === true) {\n extendedModules.push(Autoplay);\n }\n\n options.modules = [...new Set([...(options.modules || []), ...(extendedModules || [])])];\n\n return options;\n }\n\n private syncedSwiperParams(updatedOptions: SwiperOptions, params: SwiperOptions): SwiperOptions {\n return Object.entries(updatedOptions).reduce(\n (acc, [key, value]) => {\n const paramKey = key as keyof SwiperOptions;\n const param = params[paramKey];\n const isObjParam = typeof value === 'object' && typeof param === 'object';\n return { ...acc, [paramKey]: isObjParam ? { ...param, ...value } : value };\n },\n { ...params },\n );\n }\n\n ngOnDestroy() {\n this.strategy.schedule(() => this.swiper.destroy(false, false)).subscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\n\nimport { ContentImage, WindowEvent } from '@frontend/vanilla/core';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'vn-svg',\n templateUrl: './svg.component.html',\n})\nexport class SvgComponent implements OnInit {\n @ViewChild('svg') public svg: ElementRef;\n @Input() containerClass?: string;\n @Input() displayMode = 'svg';\n @Input() image: ContentImage;\n @Input() viewBox?: string;\n @Input() defaultAnimation: boolean;\n @Input() customAnimation: string;\n @Input() iconType: string;\n @Input() size: string;\n @Input() cssClass: string;\n @Input() animationClass?: string;\n\n constructor(private httpClient: HttpClient) {}\n\n ngOnInit() {\n this.httpClient.get(this.image.src, { responseType: 'text' }).subscribe((value) => {\n const doc = new DOMParser().parseFromString(value, 'image/svg+xml');\n const svgImage = doc.getElementsByTagName('svg')[0]!;\n\n if (svgImage) {\n if (!svgImage.hasAttribute('viewBox') && this.viewBox) {\n svgImage.setAttribute('viewBox', this.viewBox);\n }\n\n if (this.displayMode === 'svg-icon') {\n this.setClass(svgImage);\n this.setStyle(svgImage);\n }\n }\n\n this.svg.nativeElement.appendChild(svgImage);\n });\n }\n\n setClass(svgImage: SVGElement) {\n svgImage.classList.add('th-icon');\n\n if (this.cssClass) {\n const classes = this.cssClass.split(',');\n classes.forEach((c) => svgImage.classList.add(c.trim()));\n }\n\n switch (this.iconType) {\n case 'stroke':\n svgImage.classList.add('th-icon--stk');\n if (this.defaultAnimation) {\n svgImage.classList.add('th-icon-animate-draw');\n }\n break;\n case 'stroke--bold':\n svgImage.classList.add('th-icon-stk', 'th-icon-stk--bold');\n break;\n case 'stroke--thin':\n svgImage.classList.add('th-icon-stk', 'th-icon-stk--thin');\n break;\n case 'filled':\n svgImage.classList.add('th-icon--fill');\n if (this.defaultAnimation) {\n svgImage.classList.add('th-icon-animate-fill');\n }\n break;\n }\n\n switch (this.size) {\n case 'big':\n svgImage.classList.add('th-icon--lg');\n break;\n case 'small':\n svgImage.classList.add('th-icon--sm');\n break;\n }\n }\n\n setStyle(svgImage: SVGElement) {\n if (this.image.height) {\n svgImage.style.setProperty('height', `${this.image.height}px`);\n }\n\n if (this.image.width) {\n svgImage.style.setProperty('width', `${this.image.width}px`);\n }\n\n if (this.customAnimation && !this.defaultAnimation) {\n const customStyle = this.customAnimation.split(';');\n\n customStyle.forEach((s) => {\n const style = s.split(':');\n\n if (style?.length > 0) {\n svgImage.style.setProperty(style[0]!.trim(), style[1]!);\n }\n });\n }\n }\n\n animate() {\n if (this.animationClass) {\n const animationClass = this.animationClass;\n\n this.svg.nativeElement.classList.add(animationClass);\n this.svg.nativeElement.addEventListener(WindowEvent.AnimationEnd, () => this.svg.nativeElement.classList.remove(animationClass));\n }\n }\n}\n","
\n","\n @if (closeType === 'button') {\n \n }\n
\n \n
\n
\n \n @if (closeType === 'link') {\n
\n \n {{ closeLinkText || commonMessages?.PopoverCloseText }}\n \n
\n }\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\n\nimport { CommonMessages } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { NgxFloatUiContentComponent, NgxFloatUiModule } from 'ngx-float-ui';\n\n/**\n * @whatItDoes Provides wrapper around `ngx-float-ui` component and adds a close link.\n *\n * @howToUse\n *\n * ```\n * \n * \n *

text

\n *
\n * ```\n *\n * @description\n *\n * This component is meant to be used in conjunction with [ngx-float-ui](https://github.com/tonysamperi/ngx-float-ui) library.\n * It adds a close link to the bottom of the popout.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, NgxFloatUiModule, IconCustomComponent],\n selector: 'vn-popper-content',\n templateUrl: 'popper-content.html',\n})\nexport class PopperContentComponent {\n /**\n * Type of close for the popout (default: `link`). `Button` as `X` on right upper corner, `link` as clicable text below the content and `none` not to have close.\n */\n @Input() closeType: 'button' | 'link' | 'none' = 'link';\n /**\n * Text of the close link (default: `CommonMessages['GotIt']`).\n */\n @Input() closeLinkText?: string;\n /**\n * A css class to apply to `float-ui-content` element to control the color scheme.\n *\n * Options: `tooltip-primary` | `tooltip-secondary` | `tooltip-success` | `tooltip-warning` | `tooltip-danger` | `tooltip-info` | `tooltip-light`\n */\n @Input() cssClass?: string;\n /**\n * A css class name to apply for text content from TooltipTextCss resource key\n *\n *\n */\n @Input() cssTextClass: string;\n\n /**\n * An event that is fired when the close link is clicked.\n */\n @Output() onCloseLinkClick = new EventEmitter();\n\n /**\n * Reference to the `float-ui-content` directive.\n */\n @ViewChild(NgxFloatUiContentComponent, { static: true }) content: NgxFloatUiContentComponent;\n\n constructor(public commonMessages: CommonMessages) {}\n\n close(autoClose: boolean = false) {\n this.content.hide();\n this.onCloseLinkClick.next(autoClose);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfig, ClientConfigProductName, ClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@ClientConfig({ key: 'vnBadge', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: badgeConfigFactory,\n deps: [ClientConfigService],\n})\nexport class BadgeConfig {\n cssClass: string;\n}\n\nexport function badgeConfigFactory(service: ClientConfigService) {\n return service.get(BadgeConfig);\n}\n","import { Directive, HostBinding, Input, OnInit } from '@angular/core';\n\nimport { MenuItemCounter, MenuItemsService } from '@frontend/vanilla/core';\nimport { BadgeConfig } from '@frontend/vanilla/shared/badge';\n\n/**\n * @stable\n */\nexport enum BadgeType {\n Counter = 'counter',\n Icon = 'icon',\n}\n\n/**\n * @whatItDoes Displays a counter or icon for specified item.\n *\n * @howToUse\n *\n * ```\n * \n * ```\n *\n * @description\n *\n * {@link BadgeType.Counter} is displayed based on the value set by {@link MenuItemsService}.\n * {@link BadgeType.Icon} is displayed based on a class configured in {@link https://admin.dynacon.prod.env.works/services/198137/features/159289/keys/159291/valuematrix?_matchAncestors=true|DynaCon}.\n *\n * `badgeType` and `badgeClass` can also be set dynamically from {@link MenuItemsService.setCounter()}.\n *\n * @param section string to indicate in which feature the badge is part of: e.g. {@link MenuSection.Header}.\n * @param item string to indicate the badge name.\n * @param badgeClass string | array to indicate classes applied to the badge element. Default classes for {@link BadgeType.Counter}: `['badge', 'badge-circle', 'badge-t-r']`.\n * @param badgeType string | undefined to indicate the badge type: e.g. {@link BadgeType.Icon}; {@link BadgeType.Counter} by default. If `badgeType` is provided, badge will be always visible.\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: 'span[vnMenuItemBadge]',\n})\nexport class MenuItemBadgeDirective implements OnInit {\n @Input() section: string;\n @Input() item: string;\n @Input() badgeClass?: string | string[];\n @Input() badgeType?: string;\n\n private counter: MenuItemCounter | null;\n\n @HostBinding() get class(): string {\n // Default classes\n const classList = ['badge', 'badge-circle', 'badge-t-r'];\n\n // Classes set in the element input\n if (Array.isArray(this.badgeClass)) {\n classList.push(...this.badgeClass);\n } else if (this.badgeClass) {\n if (this.badgeClass.indexOf(' ') > 0) {\n classList.push(...this.badgeClass.split(' '));\n } else {\n classList.push(this.badgeClass);\n }\n }\n\n /** Classes set by {@link MenuItemsService.setCounter} */\n if (this.counter?.cssClass) {\n if (this.counter.cssClass.indexOf(' ') > 0) {\n classList.push(...this.counter.cssClass.split(' '));\n } else {\n classList.push(this.counter.cssClass);\n }\n }\n\n /** Classes configured in {@link https://admin.dynacon.prod.env.works/services/198137/features/159289/keys/159291/valuematrix?_matchAncestors=true} */\n if (this.badgeConfig.cssClass) {\n if (this.badgeConfig.cssClass.indexOf(' ') > 0) {\n classList.push(...this.badgeConfig.cssClass.split(' '));\n } else {\n classList.push(this.badgeConfig.cssClass);\n }\n }\n\n return classList.join(' ');\n }\n\n @HostBinding('textContent') get text() {\n const badgeType = this.counter?.type || this.badgeType || BadgeType.Counter;\n\n return badgeType === BadgeType.Counter ? this.counter?.count || '' : '';\n }\n\n @HostBinding() get hidden(): boolean {\n const badgeType = this.counter?.type || this.badgeType || BadgeType.Counter;\n\n switch (badgeType) {\n case BadgeType.Icon:\n return !this.counter?.cssClass;\n case BadgeType.Counter:\n return !this.counter?.count;\n default:\n return !this.counter?.count;\n }\n }\n\n constructor(\n private menuItemsService: MenuItemsService,\n private badgeConfig: BadgeConfig,\n ) {}\n\n ngOnInit() {\n this.counter = this.menuItemsService.getCounter(this.section, this.item);\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\n\nimport { UserService, UserUpdateEvent } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\n/**\n * @stable\n */\nexport type AuthstateAction = 'hide' | 'show' | 'disabled';\n\n/**\n * Options for {@link AuthstateDirective}.\n *\n * @stable\n */\nexport interface AuthstateOptions {\n authenticated?: AuthstateAction;\n unauthenticated?: AuthstateAction;\n workflow?: AuthstateAction;\n}\n\n/**\n * @whatItDoes Shows, hides or disables an element based on user state.\n *\n * @howToUse\n *\n * ```\n * Link\n * ```\n *\n * @description\n *\n * Same behavior as ngIf, but also with disabled option based on state of the user.\n *\n * Accepted user states:\n * - authenticated\n * - unauthenticated\n * - workflow\n *\n * Accepted actions:\n * - show\n * - hide\n * - disable\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnAuthstate]',\n})\nexport class AuthstateDirective implements OnInit, OnDestroy {\n @Input()\n set vnAuthstate(states: AuthstateOptions) {\n this.states = states;\n this.updateView();\n }\n\n private states: AuthstateOptions;\n private hasView = false;\n private element: HTMLElement;\n private disabled = false;\n private unsubscribe = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private template: TemplateRef,\n private user: UserService,\n private viewContainer: ViewContainerRef,\n ) {}\n\n ngOnInit() {\n this.user.events\n .pipe(\n filter((e) => e instanceof UserUpdateEvent),\n takeUntil(this.unsubscribe),\n )\n .subscribe(() => this.onUserstateChange());\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private toggle(show: boolean) {\n if (show && !this.hasView) {\n this.hasView = true;\n const viewRef = this.viewContainer.createEmbeddedView(this.template);\n this.element = viewRef.rootNodes[0];\n } else if (!show && this.hasView) {\n this.hasView = false;\n this.viewContainer.clear();\n }\n }\n\n private onUserstateChange() {\n this.updateView();\n }\n\n private updateView() {\n const state = this.user.workflowType > 0 ? 'workflow' : this.user.isAuthenticated ? 'authenticated' : 'unauthenticated';\n const mode: AuthstateAction = this.states ? (this.states[state] as AuthstateAction) : 'show';\n\n this.toggle(mode !== 'hide');\n\n if (mode === 'disabled') {\n this.disabled = true;\n this.renderer.addClass(this.element, 'disabled');\n } else if (this.disabled) {\n this.disabled = false;\n this.renderer.removeClass(this.element, 'disabled');\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService, ViewTemplate } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnTooltips', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: tooltipsConfigFactory,\n})\nexport class TooltipsConfig extends LazyClientConfigBase {\n isOnboardingTooltipsEnabled: boolean;\n isTutorialTooltipsEnabled: boolean;\n tutorials: { [type: string]: ViewTemplate };\n onboardings: { [type: string]: ViewTemplate };\n}\n\nexport function tooltipsConfigFactory(service: LazyClientConfigService) {\n return service.get(TooltipsConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { ViewTemplate } from '@frontend/vanilla/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Model for {@link TooltipsService}.\n *\n * @stable\n */\nexport interface Tooltips {\n [type: string]: Tooltip;\n}\n\n/**\n * Model for {@link Tooltip}.\n *\n * @stable\n */\nexport interface Tooltip {\n isActive: boolean;\n name: string;\n text: string | undefined;\n}\n\n/**\n * @whatItDoes Provides functionality for the {@link TooltipsComponent} for initializing; switching and closing the tooltips.\n *\n * @howToUse\n *\n * ```\n * tooltipsService.setTooltips(tooltipTemplates, elementTypes) // the tooltipTemplates is reference to a SiteCore item in 'App-v1.0/Tooltips/Onboarding' or 'App-v1.0/Tooltips/Tutorial'.\n * tooltipsService.getTooltip(currentItem)\n * tooltipsService.nextTooltip(currentItem)\n * tooltipsService.previousTooltip(currentItem)\n * tooltipsService.hasNext(currentItem)\n * tooltipsService.hasPrevious(currentItem)\n * tooltipsService.closeTooltip()\n * ```\n *\n * @description\n *\n *\n * @stable\n */\n@Injectable({ providedIn: 'root' })\nexport class TooltipsService {\n readonly activeTooltip = new BehaviorSubject(null);\n\n private tooltips: Tooltips = {};\n private tooltipNames: string[] = [];\n\n addTooltip(item: string, tooltipTemplates: { [type: string]: ViewTemplate }) {\n if (item && !this.tooltips[item] && tooltipTemplates[item]) {\n this.tooltips[item] = {\n isActive: false,\n name: item,\n text: tooltipTemplates[item].text,\n };\n this.tooltipNames.push(item);\n }\n }\n\n getTooltip(currentItem: string): Tooltip | undefined {\n return this.tooltips[currentItem];\n }\n\n nextTooltip(currentItem: string) {\n const tooltip = this.tooltips[this.tooltipNames[this.tooltipNames.indexOf(currentItem) + 1]!];\n\n if (tooltip) {\n this.showTooltip(tooltip);\n }\n }\n\n previousTooltip(currentItem: string) {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) - 1];\n\n if (tooltipName) {\n this.showTooltip(this.tooltips[tooltipName]);\n }\n }\n\n hasNext(currentItem: string): boolean {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) + 1];\n\n return !!(tooltipName && this.tooltips[tooltipName]);\n }\n\n hasPrevious(currentItem: string): boolean {\n const tooltipName = this.tooltipNames[this.tooltipNames.indexOf(currentItem) - 1];\n\n return !!(tooltipName && this.tooltips[tooltipName]);\n }\n\n removeTooltip(name?: string) {\n if (name && this.tooltips[name]) {\n delete this.tooltips[name];\n this.tooltipNames.splice(this.tooltipNames.indexOf(name), 1);\n }\n }\n\n closeTooltip() {\n this.clearTooltips();\n this.activeTooltip.next(null);\n }\n\n show() {\n const tooltipName = this.tooltipNames[0];\n\n if (tooltipName) {\n this.showTooltip(this.tooltips[tooltipName]);\n }\n }\n\n private showTooltip(tooltip?: Tooltip) {\n if (tooltip) {\n this.clearTooltips();\n tooltip.isActive = true;\n this.activeTooltip.next(tooltip);\n }\n }\n\n private clearTooltips = () => this.tooltipNames.forEach((name: string) => (this.tooltips[name]!.isActive = false));\n}\n","@if (tooltipsService.getTooltip(itemName)?.isActive) {\n
\n
\n \n
\n
\n @if (tooltipsService.hasPrevious(itemName)) {\n {{ commonMessages.PopoverPreviousText }}\n }\n @if (tooltipsService.hasNext(itemName)) {\n {{ commonMessages.PopoverNextText }}\n } @else {\n {{ commonMessages.PopoverCloseText }}\n }\n
\n
\n
\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { CommonMessages, DynamicHtmlDirective, ViewTemplate } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { delay } from 'rxjs/operators';\n\nimport { TooltipsService } from './tooltips.service';\n\n/**\n * @whatItDoes Shows a box with a text description similar to {@link PopperContentComponent}\n *\n * @howToUse\n *\n * ```\n * \n * ```\n *\n * @description\n *\n * Renders a single (onboarding) message or a collection of messages (tutorial with previous/next functionality)\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, IconCustomComponent],\n selector: 'vn-tooltips',\n templateUrl: 'tooltips.html',\n styles: [\n `\n .float-ui-container {\n display: block;\n opacity: 1;\n border: 0;\n }\n\n .tooltips-nav {\n float: right;\n font-weight: bold;\n }\n\n .ui-close {\n float: right;\n font-weight: bold;\n }\n\n .tooltips-nav > span {\n margin-left: 15px;\n cursor: pointer;\n }\n `,\n ],\n})\nexport class TooltipsComponent implements OnInit {\n @Input() itemName: string;\n @Input() tooltipItem: string;\n @Input() tooltips: { [type: string]: ViewTemplate };\n @Output() onNextClick = new EventEmitter();\n @Output() onPreviousClick = new EventEmitter();\n\n constructor(\n public tooltipsService: TooltipsService,\n public commonMessages: CommonMessages,\n private element: ElementRef,\n ) {}\n\n ngOnInit() {\n if (this.tooltips && this.tooltipItem) {\n this.tooltipsService.addTooltip(this.tooltipItem, this.tooltips);\n\n // Element have to be visible in order to scroll to\n this.tooltipsService.activeTooltip.pipe(delay(0)).subscribe(() => {\n const element = this.element?.nativeElement;\n\n if (!element) {\n return;\n }\n\n // Account for the highlighted element & tooltip height\n const top = element.offsetParent?.offsetTop + element.offsetHeight;\n\n if (!isNaN(top)) {\n window.scrollTo({ top, behavior: 'smooth' });\n }\n });\n }\n }\n\n next(itemName: string) {\n this.tooltipsService.nextTooltip(itemName);\n this.onNextClick.next();\n }\n\n previous(itemName: string) {\n this.tooltipsService.previousTooltip(itemName);\n this.onPreviousClick.next();\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { Logger, MenuActionsService, MenuContentItem } from '@frontend/vanilla/core';\n\n@Injectable({ providedIn: 'root' })\nexport class MenuItemClickHandlerService {\n private menuActionsService = inject(MenuActionsService);\n private log = inject(Logger);\n\n async handleMenuTrack(item: MenuContentItem) {\n await this.menuActionsService.trackClick(item, true).catch((error) => {\n this.log.error(`Error while tracking menu item click.`, error);\n });\n }\n\n async handleMenuAction(event: Event, item: MenuContentItem, origin: string, processClick: boolean | undefined) {\n if (processClick !== false) {\n await this.menuActionsService.processClick(event, item, origin, false).catch((error) => {\n this.log.error(`Error while tracking menu item click.`, error);\n });\n }\n }\n}\n","@if (renderHtmlText) {\n \n}\n@if (!renderHtmlText) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\n\n@Component({\n standalone: true,\n imports: [TrustAsHtmlPipe, CommonModule],\n selector: 'vn-menu-item-text-content',\n templateUrl: 'menu-item-text-content.html',\n})\nexport class MenuItemTextContentComponent {\n @Input() text: string;\n @Input() cssClass: string;\n @Input() additionalClass?: string | string[];\n @Input() renderHtmlText?: boolean;\n}\n","@if (item.type === 'text') {\n \n} @else {\n \n @if (displayMode === DisplayMode.Icon) {\n @if (item.image) {\n
\n \n @if (badgePosition === 'icon') {\n \n }\n
\n } @else {\n @if (item.class) {\n \n @if (badgePosition === 'icon') {\n \n }\n \n }\n }\n }\n @if (displayMode === DisplayMode.FastIcon) {\n \n }\n\n @if (displayMode === DisplayMode.SvgIcon && item.svgImage) {\n \n }\n @if (badgePosition === 'beforeText') {\n \n }\n\n \n @if (itemDescription) {\n \n }\n @if (displayMode !== DisplayMode.Icon && item.image) {\n \n }\n @if (badgePosition === 'afterText') {\n \n }\n @if (additionalIcon || item.parameters['additional-class']) {\n \n }\n @if (item.parameters['badge-text']) {\n \n \n }\n \n @if (tooltipText) {\n \n \n \n
\n
\n
\n }\n \n}\n\n\n@if (item.parameters.tooltip === 'true') {\n @if (item.toolTip) {\n \n }\n}\n\n\n\n @if (item.class) {\n \n @if (badgePosition === 'icon') {\n \n }\n \n }\n\n\n\n\n \n\n\n\n\n @if (iconName) {\n \n }\n @if (iconName2) {\n \n }\n @if (badgePosition === 'FastIcon') {\n \n }\n\n\n\n\n \n\n\n\n\n \n @if (badgeText) {\n {{ badgeText }}\n }\n\n\n\n\n @if (text || item.text) {\n \n }\n\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, inject } from '@angular/core';\n\nimport {\n CookieName,\n CookieService,\n DeviceService,\n DslService,\n DynamicHtmlDirective,\n MenuContentItem,\n MenuDisplayMode,\n MenuItemsService,\n TimerService,\n TrackingService,\n WINDOW,\n WebAnalyticsEventType,\n toBoolean,\n} from '@frontend/vanilla/core';\nimport { PopperContentComponent } from '@frontend/vanilla/features/popper';\nimport { SvgComponent } from '@frontend/vanilla/features/svg';\nimport { AuthstateDirective } from '@frontend/vanilla/shared/auth';\nimport { HtmlAttrsDirective, TrustAsHtmlPipe } from '@frontend/vanilla/shared/browser';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { ImageComponent } from '@frontend/vanilla/shared/image';\nimport { TooltipsConfig } from '@frontend/vanilla/shared/tooltips';\nimport { NgxFloatUiModule } from 'ngx-float-ui';\nimport { Observable, firstValueFrom, of } from 'rxjs';\n\nimport { MenuItemBadgeDirective } from './menu-item-badge.directive';\nimport { MenuItemClickHandlerService } from './menu-item-click-handler.service';\nimport { MenuItemTextContentComponent } from './menu-item-text-content.component';\n\n/**\n * @whatItDoes Renders a configurable menu item.\n *\n * @description\n *\n * This is a generic component that renders menu items. The data is usually provided by `IMenuFactory` from the server.\n * There are inputs which allow you to set whether icon and/or arrow should be shown, various element classes and\n * how click should be handled (by default it invokes menu action based on the item). The badge counter and active state\n * is handled in {@link MenuItemsService} using a section name that groups several menu items and the item `name`.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [\n AuthstateDirective,\n CommonModule,\n DynamicHtmlDirective,\n HtmlAttrsDirective,\n ImageComponent,\n MenuItemBadgeDirective,\n MenuItemTextContentComponent,\n NgxFloatUiModule,\n PopperContentComponent,\n SvgComponent,\n TrustAsHtmlPipe,\n IconCustomComponent,\n ],\n selector: 'vn-menu-item',\n templateUrl: 'menu-item.html',\n\n host: {\n '[class.menu-item]': 'true',\n },\n})\nexport class MenuItemComponent implements OnInit, AfterViewInit {\n @ViewChild(PopperContentComponent) popperContent: PopperContentComponent;\n\n @Input() item: MenuContentItem;\n @Input() section: string;\n @Input({ transform: toMenuDisplayMode }) displayMode: MenuDisplayMode;\n @Input() badgePosition: 'icon' | 'beforeText' | 'afterText' | 'FastIcon' | undefined;\n @Input() badgeText?: string;\n @Input() linkClass?: string | string[];\n @Input() textClass?: string | string[];\n @Input() iconClass?: string | string[];\n @Input() badgeClass?: string | string[];\n @Input() imageClass?: string | string[];\n @Input() additionalIcon: string | string[];\n @Input() processClick?: boolean;\n @Input() text?: string;\n @Input() description?: string;\n @Input() lazyLoadImage?: boolean;\n @Input() addItemClassToLinkClasses: boolean = true;\n @Output() onClick = new EventEmitter();\n\n DisplayMode = MenuDisplayMode;\n linkClasses: { [key: string]: string };\n htmlAttributes: { [key: string]: string };\n lazyLoad: boolean;\n renderHtmlText?: boolean;\n tooltipText: string | undefined;\n tooltipClass: string = 'tooltip-info';\n private tooltipType: string | undefined;\n iconName: string;\n iconName2: string | undefined;\n readonly #window = inject(WINDOW);\n\n constructor(\n private menuItemsService: MenuItemsService,\n private deviceService: DeviceService,\n private tooltipsConfig: TooltipsConfig,\n private cookieService: CookieService,\n private changeDetectorRef: ChangeDetectorRef,\n private dslService: DslService,\n private timerService: TimerService,\n private menuItemClickHandler: MenuItemClickHandlerService,\n private trackingService: TrackingService,\n ) {}\n\n @HostBinding('class') get class(): string {\n return this.item.parameters['menu-item-additional-class'] || '';\n }\n\n get isActive$(): Observable {\n if (this.menuItemsService.isActive(this.section, this.item.name)) {\n return of(true);\n }\n\n if (this.item.parameters?.highlighted) {\n return this.dslService.evaluateExpression(this.item.parameters.highlighted);\n }\n\n return of(false);\n }\n\n get isActive(): boolean {\n return this.menuItemsService.isActive(this.section, this.item.name);\n }\n\n get itemDescription(): string {\n return (\n this.menuItemsService.getDescription(this.section, this.item.name) ||\n this.description ||\n this.item.resources.description ||\n this.item.resources.subtitle ||\n ''\n );\n }\n\n get descriptionCssClass(): string | null {\n return this.menuItemsService.getDescriptionCssClass(this.section, this.item.name);\n }\n\n click(event: Event) {\n this.menuItemClickHandler.handleMenuTrack(this.item);\n this.menuItemClickHandler.handleMenuAction(event, this.item, this.section, this.processClick);\n\n if (toBoolean(this.item.parameters['save-url'])) {\n //TODO: Seems this is not used anywhere, remove it?\n this.cookieService.put(CookieName.PreviousPageUrl, this.#window.location.href);\n }\n\n if (toBoolean(this.item.parameters['disable-on-click'])) {\n this.linkClasses.disabled = 'true';\n }\n const textOnClick = this.item.parameters['text-on-click'];\n\n if (textOnClick) {\n this.text = textOnClick;\n }\n\n this.onClick.emit(event);\n }\n\n ngOnInit() {\n this.lazyLoad = !this.deviceService.isRobot && !!this.lazyLoadImage;\n this.renderHtmlText = toBoolean(this.item.parameters['render-html']);\n this.linkClasses = {};\n if (this.badgePosition !== 'FastIcon') {\n if (this.displayMode !== MenuDisplayMode.Icon && this.addItemClassToLinkClasses && this.item.class) {\n this.linkClasses[this.item.class] = 'true';\n }\n }\n if (this.linkClass) {\n (Array.isArray(this.linkClass) ? this.linkClass.slice(0) : [this.linkClass]).reduce((a, c) => {\n a[c] = 'true';\n\n return a;\n }, this.linkClasses);\n }\n\n const linkClass = this.item.parameters['link-class'];\n\n if (linkClass) {\n this.linkClasses[linkClass] = 'true';\n }\n\n this.imageClass = this.imageClass ?? this.item.parameters['image-class'];\n this.iconName = this.item.parameters.iconName ?? this.item.class;\n this.trackingService.trackEvents(this.item, WebAnalyticsEventType.load);\n this.iconName2 = this.item.parameters.iconName2;\n }\n\n async ngAfterViewInit() {\n await firstValueFrom(this.tooltipsConfig.whenReady);\n\n this.htmlAttributes = Object.fromEntries(\n Object.entries(this.item.parameters)\n .filter(([key]) => key.startsWith('attr.'))\n .map(([key, value]) => [key.replace('attr.', ''), value]),\n );\n\n if (this.tooltipsConfig.isOnboardingTooltipsEnabled) {\n this.timerService.setTimeout(() => {\n this.showOnboardingTooltips();\n }, 500);\n }\n }\n\n private showOnboardingTooltips() {\n this.tooltipClass = this.item.parameters['tooltip-class'] || this.tooltipClass;\n this.tooltipType = this.item.parameters.tooltip;\n\n if (this.tooltipType) {\n const tooltipsShown = this.cookieService.get(CookieName.OnBtt) || '';\n\n if (tooltipsShown.indexOf(this.tooltipType) > -1 || !this.tooltipsConfig.onboardings[this.tooltipType]) {\n return;\n }\n\n this.tooltipText = this.tooltipsConfig.onboardings[this.tooltipType]?.text;\n this.changeDetectorRef.detectChanges();\n this.popperContent?.content.show();\n\n const tooltipsArray = tooltipsShown.split(',');\n tooltipsArray.push(this.tooltipType);\n\n const expireDate = new Date();\n expireDate.setFullYear(expireDate.getFullYear() + 1);\n\n this.cookieService.put(CookieName.OnBtt, tooltipsArray.join(), { expires: expireDate });\n }\n }\n}\n\nfunction toMenuDisplayMode(value?: MenuDisplayMode): MenuDisplayMode {\n return value || MenuDisplayMode.Icon;\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\n\nimport { MenuContentItem } from '@frontend/vanilla/core';\n\nimport { MenuItemClickHandlerService } from './menu-item-click-handler.service';\n\n/**\n * @whatItDoes Executes click actions defined for the item and registered either in Vanilla or Product side.\n *\n * @howToUse\n *\n * ```\n * \n * ```\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnMenuItemAction]',\n})\nexport class MenuItemActionDirective {\n private menuItemClickHandlerService = inject(MenuItemClickHandlerService);\n @HostListener('click', ['$event']) async onClick($event: Event) {\n await this.click($event);\n }\n\n @Input() item: MenuContentItem;\n @Input() origin: string;\n @Input() processClick: boolean | undefined;\n\n async click(event: Event) {\n await this.menuItemClickHandlerService.handleMenuAction(event, this.item, this.origin, this.processClick);\n }\n}\n","import { Directive, HostListener, Input, OnInit, inject } from '@angular/core';\n\nimport { MenuContentItem, TrackingService, WebAnalyticsEventType } from '@frontend/vanilla/core';\n\nimport { MenuItemClickHandlerService } from './menu-item-click-handler.service';\n\n/**\n * @whatItDoes Adds data to the datalayer based on item tracking data provided via Sitecore in item parameters or WebAnalytics section.\n *\n *\n * @howToUse\n *\n * ```\n * \n * ```\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnMenuItemTracking]',\n})\nexport class MenuItemTrackingDirective implements OnInit {\n private trackingService = inject(TrackingService);\n\n private menuItemClickHandlerService = inject(MenuItemClickHandlerService);\n\n @HostListener('click') async onClick() {\n await this.click();\n }\n\n @Input() item: MenuContentItem;\n\n ngOnInit() {\n this.trackingService.trackEvents(this.item, WebAnalyticsEventType.load);\n }\n\n async click() {\n await this.menuItemClickHandlerService.handleMenuTrack(this.item);\n }\n}\n","import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, PLATFORM_ID, Component, Inject, Input, Output, ViewChild, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nconst _c0 = [\"streamEl\"];\nlet CloudflareStreamService = /*#__PURE__*/(() => {\n class CloudflareStreamService {\n constructor() {}\n }\n CloudflareStreamService.ɵfac = function CloudflareStreamService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamService)();\n };\n CloudflareStreamService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CloudflareStreamService,\n factory: CloudflareStreamService.ɵfac,\n providedIn: 'root'\n });\n return CloudflareStreamService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * We have to export this interface so the module can be compiled\n * with the AOT flag enabled.\n *\n * https://github.com/angular/angular/issues/14050\n */\nlet DocumentWrapper = /*#__PURE__*/(() => {\n class DocumentWrapper {\n get nativeDocument() {\n return document;\n }\n }\n DocumentWrapper.ɵfac = function DocumentWrapper_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DocumentWrapper)();\n };\n DocumentWrapper.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DocumentWrapper,\n factory: DocumentWrapper.ɵfac\n });\n return DocumentWrapper;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getDocumentWrapper() {\n return new DocumentWrapper();\n}\nconst propertyProps = ['autoplay', 'controls', 'currentTime', 'primaryColor', 'muted', 'loop', 'volume', 'preload', 'defaultTextTrack'];\nlet CloudflareStreamComponent = /*#__PURE__*/(() => {\n class CloudflareStreamComponent {\n constructor(renderer2, doc, platformId) {\n this.renderer2 = renderer2;\n this.doc = doc;\n this.platformId = platformId;\n // tslint:disable: no-output-native\n /**\n * Sent when playback is aborted; for example, if the media is playing and is restarted from the beginning, this event is sent.\n */\n this.abort = new EventEmitter();\n /**\n * Sent when enough data is available that the media can be played, at least for a couple of frames.\n */\n this.canplay = new EventEmitter();\n /**\n * Sent when the entire media can be played without interruption, assuming the download rate remains at least at the current level. It will also be fired when playback is toggled between paused and playing. Note: Manually setting the currentTime will eventually fire a canplaythrough event in firefox. Other browsers might not fire this event.\n */\n this.canplaythrough = new EventEmitter();\n /**\n * The metadata has loaded or changed, indicating a change in duration of the media. This is sent, for example, when the media has loaded enough that the duration is known.\n */\n this.durationchange = new EventEmitter();\n /**\n * Sent when playback completes.\n */\n this.ended = new EventEmitter();\n /**\n * Sent when an error occurs. (e.g. the video has not finished encoding yet, or the video fails to load due to an incorrect signed URL)\n */\n this.error = new EventEmitter();\n /**\n * The first frame of the media has finished loading.\n */\n this.loadeddata = new EventEmitter();\n /**\n * The media’s metadata has finished loading; all attributes now contain as much useful information as they’re going to.\n */\n this.loadedmetadata = new EventEmitter();\n /**\n * Sent when loading of the media begins.\n */\n this.loadstart = new EventEmitter();\n /**\n * Sent when the playback state is changed to paused (paused property is true).\n */\n this.pause = new EventEmitter();\n /**\n * Sent when the playback state is no longer paused, as a result of the play method, or the autoplay attribute.\n */\n this.play = new EventEmitter();\n /**\n * Sent when the media has enough data to start playing, after the play event, but also when recovering from being stalled, when looping media restarts, and after seeked, if it was playing before seeking.\n */\n this.playing = new EventEmitter();\n /**\n * Sent periodically to inform interested parties of progress downloading the media. Information about the current amount of the media that has been downloaded is available in the media element’s buffered attribute.\n */\n this.progress = new EventEmitter();\n /**\n * Sent when the playback speed changes.\n */\n this.ratechange = new EventEmitter();\n /**\n * Sent when a seek operation completes.\n */\n this.seeked = new EventEmitter();\n /**\n * Sent when a seek operation begins.\n */\n this.seeking = new EventEmitter();\n /**\n * Sent when the user agent is trying to fetch media data, but data is unexpectedly not forthcoming.\n */\n this.stalled = new EventEmitter();\n /**\n * Sent when loading of the media is suspended; this may happen either because the download has completed or because it has been paused for any other reason.\n */\n this.suspend = new EventEmitter();\n /**\n * The time indicated by the element’s currentTime attribute has changed.\n */\n this.timeupdate = new EventEmitter();\n /**\n * Sent when the audio volume changes (both when the volume is set and when the muted attribute is changed).\n */\n this.volumechange = new EventEmitter();\n /**\n * Sent when the requested operation (such as playback) is delayed pending the completion of another operation (such as a seek).\n */\n this.waiting = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad begins playback\n */\n this.streamAdStart = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad finishes playback\n */\n this.streamAdEnd = new EventEmitter();\n /**\n * Fires when ad-url attribute is present and the ad took too long to load.\n */\n this.streamAdTimeout = new EventEmitter();\n }\n ngOnChanges(changes) {\n // ngOnChanges fires when the component mounts but before the view\n // is initialized, so we need to bail when this fires for the first\n // time.\n if (!this.streamEl) {\n return;\n }\n // convert SimpleChanges into a Record that has currentValues to be\n // synced onto streamEl\n this.syncProperties(Object.keys(changes).reduce((acc, key) => ({\n ...acc,\n [key]: changes[key].currentValue\n }), {}));\n }\n /**\n * Method to take an object and sync keys from propertyProps onto\n * the stream element\n */\n syncProperties(properties) {\n // iterate over the propertyProps and assign them to the streamEl\n propertyProps.forEach(prop => {\n // only assign the property if it is present\n if (properties.hasOwnProperty(prop)) {\n this.streamEl.nativeElement[prop] = properties[prop];\n }\n });\n }\n ngAfterViewInit() {\n // streamEl is first available within ngAfterViewInit, so we need to sync\n // properties onto the element\n this.syncProperties(\n // pluck current propertyProps off of the component instance to sync them to streamEl\n propertyProps.reduce((acc, prop) =>\n // skip values that are undefined\n this[prop] === undefined ? acc : {\n ...acc,\n [prop]: this[prop]\n }, {}));\n this.loadStreamScript();\n }\n get isBrowser() {\n return isPlatformBrowser(this.platformId);\n }\n loadStreamScript() {\n if (!this.isBrowser) return;\n this.streamScript = document.createElement('script');\n this.streamScript.setAttribute('data-cfasync', 'false');\n this.streamScript.setAttribute('defer', 'true');\n this.streamScript.setAttribute('type', 'text/javascript');\n this.streamScript.setAttribute('src', 'https://embed.cloudflarestream.com/embed/r4xu.fla9.latest.js');\n this.renderer2.appendChild(this.doc.nativeDocument.head, this.streamScript);\n }\n cleanUpStreamScript() {\n if (!this.isBrowser) return;\n this.renderer2.removeChild(this.doc.nativeDocument.head, this.streamScript);\n }\n ngOnDestroy() {\n this.cleanUpStreamScript();\n }\n }\n CloudflareStreamComponent.ɵfac = function CloudflareStreamComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(DocumentWrapper), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n CloudflareStreamComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CloudflareStreamComponent,\n selectors: [[\"cloudflare-stream\"]],\n viewQuery: function CloudflareStreamComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.streamEl = _t.first);\n }\n },\n inputs: {\n adUrl: \"adUrl\",\n autoplay: \"autoplay\",\n controls: \"controls\",\n currentTime: \"currentTime\",\n defaultTextTrack: \"defaultTextTrack\",\n height: \"height\",\n loop: \"loop\",\n muted: \"muted\",\n poster: \"poster\",\n preload: \"preload\",\n primaryColor: \"primaryColor\",\n src: \"src\",\n volume: \"volume\",\n width: \"width\"\n },\n outputs: {\n abort: \"abort\",\n canplay: \"canplay\",\n canplaythrough: \"canplaythrough\",\n durationchange: \"durationchange\",\n ended: \"ended\",\n error: \"error\",\n loadeddata: \"loadeddata\",\n loadedmetadata: \"loadedmetadata\",\n loadstart: \"loadstart\",\n pause: \"pause\",\n play: \"play\",\n playing: \"playing\",\n progress: \"progress\",\n ratechange: \"ratechange\",\n seeked: \"seeked\",\n seeking: \"seeking\",\n stalled: \"stalled\",\n suspend: \"suspend\",\n timeupdate: \"timeupdate\",\n volumechange: \"volumechange\",\n waiting: \"waiting\",\n streamAdStart: \"streamAdStart\",\n streamAdEnd: \"streamAdEnd\",\n streamAdTimeout: \"streamAdTimeout\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 2,\n vars: 12,\n consts: [[\"streamEl\", \"\"], [3, \"play\", \"abort\", \"canplay\", \"canplaythrough\", \"durationchange\", \"ended\", \"error\", \"loadeddata\", \"loadedmetadata\", \"loadstart\", \"pause\", \"playing\", \"progress\", \"ratechange\", \"seeked\", \"seeking\", \"stalled\", \"suspend\", \"timeupdate\", \"volumechange\", \"waiting\", \"stream-adstart\", \"stream-adend\", \"stream-adtimeout\"]],\n template: function CloudflareStreamComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"stream\", 1, 0);\n i0.ɵɵlistener(\"play\", function CloudflareStreamComponent_Template_stream_play_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.play.emit($event));\n })(\"abort\", function CloudflareStreamComponent_Template_stream_abort_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.abort.emit($event));\n })(\"canplay\", function CloudflareStreamComponent_Template_stream_canplay_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.canplay.emit($event));\n })(\"canplaythrough\", function CloudflareStreamComponent_Template_stream_canplaythrough_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.canplaythrough.emit($event));\n })(\"durationchange\", function CloudflareStreamComponent_Template_stream_durationchange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.durationchange.emit($event));\n })(\"ended\", function CloudflareStreamComponent_Template_stream_ended_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.ended.emit($event));\n })(\"error\", function CloudflareStreamComponent_Template_stream_error_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.error.emit($event));\n })(\"loadeddata\", function CloudflareStreamComponent_Template_stream_loadeddata_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadeddata.emit($event));\n })(\"loadedmetadata\", function CloudflareStreamComponent_Template_stream_loadedmetadata_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadedmetadata.emit($event));\n })(\"loadstart\", function CloudflareStreamComponent_Template_stream_loadstart_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.loadstart.emit($event));\n })(\"pause\", function CloudflareStreamComponent_Template_stream_pause_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.pause.emit($event));\n })(\"play\", function CloudflareStreamComponent_Template_stream_play_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.play.emit($event));\n })(\"playing\", function CloudflareStreamComponent_Template_stream_playing_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.playing.emit($event));\n })(\"progress\", function CloudflareStreamComponent_Template_stream_progress_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.progress.emit($event));\n })(\"ratechange\", function CloudflareStreamComponent_Template_stream_ratechange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.ratechange.emit($event));\n })(\"seeked\", function CloudflareStreamComponent_Template_stream_seeked_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.seeked.emit($event));\n })(\"seeking\", function CloudflareStreamComponent_Template_stream_seeking_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.seeking.emit($event));\n })(\"stalled\", function CloudflareStreamComponent_Template_stream_stalled_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.stalled.emit($event));\n })(\"suspend\", function CloudflareStreamComponent_Template_stream_suspend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.suspend.emit($event));\n })(\"timeupdate\", function CloudflareStreamComponent_Template_stream_timeupdate_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.timeupdate.emit($event));\n })(\"volumechange\", function CloudflareStreamComponent_Template_stream_volumechange_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.volumechange.emit($event));\n })(\"waiting\", function CloudflareStreamComponent_Template_stream_waiting_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.waiting.emit($event));\n })(\"stream-adstart\", function CloudflareStreamComponent_Template_stream_stream_adstart_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdStart.emit($event));\n })(\"stream-adend\", function CloudflareStreamComponent_Template_stream_stream_adend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdEnd.emit($event));\n })(\"stream-adtimeout\", function CloudflareStreamComponent_Template_stream_stream_adtimeout_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.streamAdTimeout.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"ad-url\", ctx.adUrl)(\"src\", ctx.src)(\"autoplay\", ctx.autoplay)(\"controls\", ctx.controls)(\"default-text-track\", ctx.defaultTextTrack)(\"loop\", ctx.loop)(\"preload\", ctx.preload)(\"height\", ctx.height)(\"width\", ctx.width)(\"poster\", ctx.poster)(\"primary-color\", ctx.primaryColor)(\"muted\", ctx.muted);\n }\n },\n encapsulation: 2\n });\n return CloudflareStreamComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CloudflareStreamModule = /*#__PURE__*/(() => {\n class CloudflareStreamModule {}\n CloudflareStreamModule.ɵfac = function CloudflareStreamModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CloudflareStreamModule)();\n };\n CloudflareStreamModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CloudflareStreamModule\n });\n CloudflareStreamModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: DocumentWrapper,\n useFactory: getDocumentWrapper\n }],\n imports: [[]]\n });\n return CloudflareStreamModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of cloudflare-stream\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CloudflareStreamComponent, CloudflareStreamModule, CloudflareStreamService };\n","import { Injectable, Type } from '@angular/core';\n\nimport { DynamicComponentsRegistry, VanillaDynamicComponentsCategory } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Specifies which component to use to render a page matrix template\n *\n * @howToUse\n *\n * ```\n * m2PageMatrix.registerComponent('pccustom', MyComponent);\n * ```\n *\n * Keep in mind that the template name can be overridden by `render` or `template` key in `parameters` collection.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class PageMatrixService {\n constructor(private dynamicComponentsRegistry: DynamicComponentsRegistry) {}\n\n registerComponent(templateName: string, component: Type) {\n this.dynamicComponentsRegistry.registerComponent(VanillaDynamicComponentsCategory.PageMatrix, templateName.toLowerCase(), component);\n }\n\n getComponent(templateName: string) {\n return this.dynamicComponentsRegistry.get(VanillaDynamicComponentsCategory.PageMatrix, templateName.toLowerCase());\n }\n}\n","import { ComponentRef, Directive, Input, OnChanges, OnDestroy, OnInit, Type, ViewContainerRef } from '@angular/core';\n\nimport { PageMatrixService as CorePageMatrixService, Logger } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PageMatrixService } from './page-matrix.service';\n\n/**\n * @whatItDoes\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnPageMatrix]',\n})\nexport class PageMatrixDirective implements OnInit, OnChanges, OnDestroy {\n @Input() vnPageMatrix: T;\n\n templatesRegistered: boolean = false;\n\n private unsubscribe = new Subject();\n private componentRef: ComponentRef;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private pageMatrixService: PageMatrixService,\n private corePageMatrixService: CorePageMatrixService,\n private log: Logger,\n ) {}\n\n ngOnInit() {\n this.corePageMatrixService.whenReady.pipe(takeUntil(this.unsubscribe)).subscribe(() => {\n this.templatesRegistered = true;\n this.renderComponent();\n });\n }\n\n ngOnChanges() {\n this.renderComponent();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private renderComponent() {\n if (!this.templatesRegistered) {\n return;\n }\n\n this.viewContainerRef.clear();\n\n if (this.vnPageMatrix) {\n const type = this.resolveTemplate(this.vnPageMatrix);\n\n if (type) {\n this.componentRef = this.viewContainerRef.createComponent(type);\n this.componentRef.setInput('item', this.vnPageMatrix);\n this.componentRef.changeDetectorRef.detectChanges();\n }\n }\n }\n\n private resolveTemplate(content: T | any): Type | null {\n let templateName;\n\n if (content?.parameters) {\n templateName = content.parameters.render || content.parameters.template;\n }\n\n templateName = templateName || content.templateName;\n\n if (!templateName) {\n this.log.warn('templateName is not specified for content ', content);\n\n return null;\n }\n\n const component = this.pageMatrixService.getComponent(templateName);\n\n if (!component) {\n this.log.warn(`No component is registered to render template '${templateName}'`);\n\n return null;\n }\n\n return component;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { ContentItem, ExpandableMenuItem, trackByProp } from '@frontend/vanilla/core';\n\n/**\n * Base class for page matrix template components\n *\n * @stable\n */\n@Directive()\nexport abstract class PCComponent {\n @Input() item: T;\n\n readonly trackByName = trackByProp('name');\n readonly trackByText = trackByProp('text');\n\n protected createClass(componentClass: string): string {\n let itemClass = `pc-component ${componentClass}`;\n const additionalClass = (this.item)?.class;\n\n if (additionalClass) {\n itemClass += ` ${additionalClass}`;\n }\n\n return itemClass;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';\n\nimport { TimerService, WindowEvent } from '@frontend/vanilla/core';\n\n@Directive({\n standalone: true,\n selector: '[vnScrollMenu]',\n})\nexport class NavScrollDirective implements OnInit, OnDestroy {\n @Input() menuTimeOut: number = 0;\n @Input() navBarTopHeight: number;\n @Output() sectionChange = new EventEmitter();\n @Output() scrollStop = new EventEmitter();\n\n private currentSection: string;\n private timeoutId: NodeJS.Timeout;\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private elementRef: ElementRef,\n private timerService: TimerService,\n ) {}\n\n ngOnInit() {\n this._doc.addEventListener(WindowEvent.Scroll, this.scrollEventHandler, false);\n }\n\n ngOnDestroy() {\n this._doc.removeEventListener(WindowEvent.Scroll, this.scrollEventHandler, false);\n this.timerService.clearTimeout(this.timeoutId);\n }\n\n onScroll() {\n let currentSection: string = '';\n const children = this.elementRef.nativeElement.getElementsByClassName('menu-element');\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i] as HTMLElement;\n\n // Default as 114px as it's the value used in css for property --navbar-top-height. If configured on sitecore it must match the value of the css property.\n if (element.getBoundingClientRect().top <= (this.navBarTopHeight || 114)) {\n currentSection = element.id;\n }\n }\n if (currentSection !== this.currentSection) {\n this.currentSection = currentSection;\n this.sectionChange.next(this.currentSection);\n }\n }\n\n private scrollEventHandler = () => {\n this.onScroll();\n this.timerService.clearTimeout(this.timeoutId);\n\n this.timeoutId = this.timerService.setTimeout(() => {\n this.currentSection = '';\n this.scrollStop.next();\n }, this.menuTimeOut);\n };\n}\n","import { Directive, OnDestroy, OnInit, inject } from '@angular/core';\n\nimport { HtmlNode, MetaTagsService } from '@frontend/vanilla/core';\n\nimport { PcContentItem } from './content.models';\nimport { PCComponent } from './pc-component';\n\n/**\n * Base class for page matrix page layout templates.\n *\n * @stable\n */\n@Directive()\nexport abstract class PMPage extends PCComponent implements OnInit, OnDestroy {\n private metaTagsService = inject(MetaTagsService);\n private htmlNode = inject(HtmlNode);\n\n protected constructor() {\n super();\n }\n\n ngOnInit() {\n this.setHtmlClass(true);\n this.writePageMetadata();\n }\n\n ngOnDestroy() {\n this.setHtmlClass(false);\n this.metaTagsService.whenReady.subscribe(() => this.metaTagsService.clearPageTags());\n }\n\n private writePageMetadata() {\n const tags: Record = {};\n\n if (this.item.pageDescription) {\n tags.description = this.item.pageDescription;\n }\n\n if (this.item.pageMetaTags) {\n Object.assign(tags, this.item.pageMetaTags);\n }\n\n this.metaTagsService.whenReady.subscribe(() => this.metaTagsService.setPageTags(this.item.pageTitle, tags));\n }\n\n private setHtmlClass(set: boolean) {\n if (this.item.parameters?.htmlClass) {\n this.htmlNode.setCssClass(this.item.parameters.htmlClass, set);\n }\n }\n}\n","import { Directive, ElementRef, Input, NgZone, OnChanges, OnDestroy, OnInit, Renderer2, inject } from '@angular/core';\n\nimport { Logger, Page, UrlService, WINDOW, WindowEvent } from '@frontend/vanilla/core';\n\nexport class ImageMqlHandler {\n private listener: (this: MediaQueryList, ev: MediaQueryListEvent) => any;\n\n constructor(\n public mql: MediaQueryList,\n public src: string,\n ) {}\n\n unsubscribe() {\n this.mql.removeEventListener(WindowEvent.Change, this.listener);\n }\n\n subscribe(fn: () => void) {\n this.listener = fn;\n this.mql.addEventListener(WindowEvent.Change, fn);\n }\n}\n\n/**\n * @whatItDoes Displays an image from sitecore in width profile based on screen size.\n *\n * @howToUse\n *\n * This component is used to render images (PCImage) from sitecore.\n *\n * You can also use it manually:\n *\n * ```\n * \n * ```\n *\n * @description\n *\n * A directive that changes src of images in profile widths based on screen size to save bandwidth.\n * In order to support resizing, images have to be saved in Sitecore database, not on filesystem.\n * To get a resized images from Sitecore, we are adding profile parameter to the URL:\n * http://faq.cms.bwin.prod/questions/381/how-can-i-use-the-image-resizer-feature-that-sitecore-cms-offers\n *\n * If you specify `vnProfilesWidth` (base width of the image), it will not load width profiles large than the base width.\n *\n * @stable\n */\n@Directive({\n standalone: true,\n selector: '[vnProfilesSrc]',\n})\nexport class ProfilesDirective implements OnInit, OnChanges, OnDestroy {\n @Input() vnProfilesSrc: string;\n @Input() vnProfilesWidth?: number;\n @Input() vnProfilesSet?: string;\n readonly #window = inject(WINDOW);\n\n private handlers: ImageMqlHandler[];\n\n constructor(\n private zone: NgZone,\n private elementRef: ElementRef,\n private renderer: Renderer2,\n private page: Page,\n private log: Logger,\n private urlService: UrlService,\n ) {}\n\n ngOnInit() {\n this.init();\n }\n\n ngOnChanges() {\n if (this.handlers) {\n this.unsubscribe();\n this.init();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe();\n }\n\n private shouldIncludeWidth(width: number): boolean {\n if (!this.vnProfilesWidth) {\n return true; // Don't know original image width so can't tell if profile makes it smaller or larger\n }\n\n return this.vnProfilesWidth > width; // Don't include profiles that would upscale the image\n }\n\n private init() {\n const setName = this.vnProfilesSet || 'default';\n let set = this.page.imageProfiles[setName];\n\n if (!set) {\n this.log.warn(`Image profile set ${setName} is not defined, using default.`);\n set = this.page.imageProfiles.default;\n }\n\n const sources = set?.widthBreakpoints\n .filter((w: number) => this.shouldIncludeWidth(w))\n .map((w: number) => {\n const profileSrc = this.urlService.parse(this.vnProfilesSrc);\n profileSrc.search.set('p', `${set?.prefix}${w}`);\n\n return { media: `(max-width: ${w}px)`, src: `${profileSrc.absUrl()}` };\n });\n\n this.handlers = [];\n\n if (sources) {\n for (const source of sources) {\n const mql = this.#window.matchMedia(source.media);\n\n const handler = new ImageMqlHandler(mql, source.src);\n\n handler.subscribe(() => this.zone.run(() => this.setImage()));\n\n this.handlers.push(handler);\n }\n\n this.setImage();\n }\n }\n\n private setImage() {\n const source = this.handlers.find((s) => s.mql.matches);\n\n if (source) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'src', source.src);\n } else {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'src', this.vnProfilesSrc);\n }\n\n if (this.vnProfilesWidth) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'width', '' + this.vnProfilesWidth);\n }\n }\n\n private unsubscribe() {\n for (const handler of this.handlers) {\n handler.unsubscribe();\n }\n\n this.handlers = [];\n }\n}\n","\n @if (item.titleLink) {\n {{ title }}\n }\n @if (!item.titleLink) {\n {{ title }}\n }\n\n@switch (tag) {\n @case ('h1') {\n

\n }\n @case ('h2') {\n

\n }\n @case ('h3') {\n

\n }\n @case ('h4') {\n

\n }\n @case ('h5') {\n
\n }\n @case ('h6') {\n
\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\n\nimport { ContentItem } from '@frontend/vanilla/core';\nimport { HtmlAttrsDirective } from '@frontend/vanilla/shared/browser';\n\n/**\n * @whatItDoes Renders generic header for a PC Component.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, HtmlAttrsDirective],\n selector: 'vn-pc-component-header-v2',\n templateUrl: 'pc-component-header.html',\n host: {\n '[class.pc-header]': 'true',\n },\n})\nexport class PCComponentHeaderV2Component implements OnInit {\n @Input() item: ContentItem;\n\n title: string | undefined;\n titleClass: string | undefined;\n tag: string;\n\n ngOnInit() {\n this.title = this.item.title;\n\n if (!this.title && this.item.titleLink) {\n this.title = this.item.titleLink.text;\n }\n\n this.tag = 'h3';\n\n if (this.item.parameters) {\n const tag = this.item.parameters['title-tag'];\n if (tag && /^h[1-6]$/.test(tag)) {\n this.tag = tag;\n }\n\n this.titleClass = this.item.parameters['title-class'];\n }\n }\n}\n","
\n \n @if (item.children && item.children.length) {\n
\n @if (!item.expanded) {\n \n } @else {\n \n }\n
\n }\n
\n@if (item.children) {\n
\n @for (subItem of item.children; track trackByText($index, subItem)) {\n \n }\n
\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Type } from '@angular/core';\n\nimport { DynamicComponentDirective, ExpandableMenuItem, MenuActionsService, MenuContentItem, trackByProp } from '@frontend/vanilla/core';\nimport { MenuItemComponent } from '@frontend/vanilla/features/menus';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\n@Component({\n standalone: true,\n imports: [CommonModule, MenuItemComponent, DynamicComponentDirective, IconCustomComponent],\n selector: 'vn-pc-menu-item',\n templateUrl: 'pc-menu-item.html',\n})\nexport class PCMenuItemComponent {\n @Input() item: ExpandableMenuItem;\n @Input() section: string;\n @Input() level: number = 1;\n type: Type = PCMenuItemComponent;\n readonly trackByText = trackByProp('text');\n constructor(private menuActionService: MenuActionsService) {}\n\n onClick(event: Event) {\n const action = this.findFirstNonEmpty(this.item);\n if (action && action !== this.item) {\n this.menuActionService.processClick(event, action, this.section);\n }\n }\n\n private findFirstNonEmpty(item: MenuContentItem): MenuContentItem | undefined {\n if (item.url || item.clickAction) {\n return item;\n }\n\n if (item.children) {\n for (const child of item.children) {\n const nonEmpty = this.findFirstNonEmpty(child);\n if (nonEmpty) {\n return nonEmpty;\n }\n }\n }\n\n return;\n }\n}\n","@for (child of item.content; track trackByName($index, child)) {\n \n}\n","@if (item.title) {\n \n}\n
\n","@if (!showCustomHeaderTemplate) {\n \n} @else {\n
\n
\n \n
\n @if (item.title) {\n
{{ item.title }}
\n }\n
\n}\n
\n
\n
\n","@if (deviceService.isMobilePhone) {\n \n} @else {\n
\n
\n \n
\n @if (item.title) {\n
{{ item.title }}
\n }\n
\n}\n
\n
\n
\n","@if (item.text) {\n \n \n
\n}\n","@if (item.title) {\n \n}\n\n @if (item.image) {\n \n }\n\n\n@if (item.iconName) {\n \n} @else {\n @if (item.imageLink) {\n \n \n \n } @else {\n @if (item.image) {\n \n }\n }\n}\n","@if (item.title) {\n \n}\n@if (item.image) {\n \n @if (item.image) {\n \n }\n \n @if (item.imageLink) {\n \n \n \n } @else {\n @if (item.image) {\n \n }\n }\n}\n@if (item.text) {\n
\n}\n","@if (item.title) {\n \n}\n@if (item.video?.id; as src) {\n
\n \n \n
\n}\n","\n@if (item.image) {\n
\n \n @if (item.image) {\n \n }\n \n @if (item.imageLink) {\n \n \n \n } @else {\n @if (item.image) {\n \n }\n }\n
\n}\n@if (item.imageOverlay) {\n
\n \n
\n}\n
\n \n \n
\n@if (item.text) {\n
\n}\n@if (item.optionalText) {\n
\n}\n\n @if (text) {\n @switch (tag) {\n @case ('h1') {\n

{{ text }}

\n }\n @case ('h2') {\n

{{ text }}

\n }\n @case ('h3') {\n

{{ text }}

\n }\n @case ('h4') {\n

{{ text }}

\n }\n @case ('h5') {\n
{{ text }}
\n }\n @case ('h6') {\n
{{ text }}
\n }\n }\n }\n
\n","@if (item.title) {\n \n}\n@for (child of item.items; track trackByName($index, child)) {\n \n}\n","@if (item.title) {\n \n}\n@for (child of item.items | slice: 0 : item.maxItems; track trackByName) {\n \n}\n","@if (item.title) {\n \n}\n@if (item.menu) {\n
\n @for (menuItem of items; track trackByText($index, menuItem)) {\n \n }\n
\n}\n","@if (item.title) {\n \n}\n\n","@if (item.image) {\n \n}\n","\n @for (child of item.items | slice: 0 : item.maxItems; track $index) {\n
\n \n
\n }\n
\n","
\n
\n @for (child of item.menuItems; track trackByName($index, child)) {\n
\n {{ child.title }}\n
\n \n
\n
\n }\n
\n
\n\n @for (child of item.items; track trackByName($index, child)) {\n \n }\n\n","import { CommonModule, DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, HostBinding, OnDestroy, OnInit, QueryList, ViewChildren, inject } from '@angular/core';\n\nimport { CloudflareStreamModule } from '@cloudflare/stream-angular';\nimport {\n DeviceService,\n DynamicHtmlDirective,\n ExpandableMenuItem,\n MediaQueryService,\n MenuItemsService,\n MenuSection,\n NavigationService,\n ProductHomepagesConfig,\n TrackingService,\n UrlService,\n WINDOW,\n toBoolean,\n} from '@frontend/vanilla/core';\nimport { HeaderBarService, LhHeaderBarComponent } from '@frontend/vanilla/features/header-bar';\nimport { HtmlAttrsDirective } from '@frontend/vanilla/shared/browser';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\nimport { ImageComponent } from '@frontend/vanilla/shared/image';\nimport { SwiperComponent } from '@frontend/vanilla/shared/swiper';\nimport { cloneDeep, toNumber } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SwiperOptions } from 'swiper/types';\n\nimport { PcContentItem } from '../content.models';\nimport { PageMatrixDirective } from '../page-matrix.directive';\nimport { PCComponent } from '../pc-component';\nimport { NavScrollDirective } from '../pc-scrollmenu.directive';\nimport { PMPage } from '../pm-component';\nimport { ProfilesDirective } from '../profiles.directive';\nimport { PCComponentHeaderV2Component } from './pc-component-header.component';\nimport { PCMenuItemComponent } from './pc-menu-item.component';\n\n@Component({\n standalone: true,\n imports: [CommonModule, PageMatrixDirective],\n selector: 'vn-pm-1col-page',\n templateUrl: 'pm-1col-page.html',\n})\nexport class PM1ColPageComponent extends PMPage {\n constructor() {\n super();\n }\n\n @HostBinding() get class(): string {\n return ['pm-page', 'pm-1col', 'pm-simple-layout', this.item.pageClass].filter((c: string | undefined) => c).join(' ');\n }\n\n @HostBinding('attr.id') get id(): string | undefined {\n return this.item.pageId;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, PCComponentHeaderV2Component],\n selector: 'vn-pc-text',\n templateUrl: 'pc-text.html',\n})\nexport class PCTextComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-text');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, LhHeaderBarComponent, IconCustomComponent],\n selector: 'vn-pc-text-with-header-bar',\n templateUrl: 'pc-text-with-header-bar.html',\n})\nexport class PCTextWithHeaderBarComponent extends PCComponent implements OnInit {\n showCustomHeaderTemplate: boolean;\n customHeaderClass: string = '';\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private navigation: NavigationService,\n private media: MediaQueryService,\n private headerBarService: HeaderBarService,\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.item.parameters) {\n if (this.item.parameters['custom-header-media-query']) {\n this.showCustomHeaderTemplate = this.media.isActive(this.item.parameters['custom-header-media-query']);\n }\n if (this.item.parameters['custom-header-class']) {\n this.customHeaderClass = this.item.parameters['custom-header-class'];\n }\n }\n }\n\n onBackClick() {\n if (this._doc.referrer) {\n this.#window.history.back();\n } else {\n this.navigation.goToLastKnownProduct();\n }\n }\n\n close() {\n const welcomeOverlayUrl = this.item.parameters?.['welcome-overlay-url'];\n\n if (welcomeOverlayUrl && this.navigation?.previousUrl?.includes(welcomeOverlayUrl)) {\n this.#window.history.back();\n } else {\n this.headerBarService.close();\n }\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, LhHeaderBarComponent, IconCustomComponent],\n selector: 'vn-pc-header-for-mpp-page',\n templateUrl: 'pc-header-for-mpp-page.html',\n})\nexport class PCHeaderForMppPageComponent extends PCComponent implements OnInit {\n customHeaderClass: string = '';\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n private navigation: NavigationService,\n private productHomepages: ProductHomepagesConfig,\n public deviceService: DeviceService,\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.item.parameters?.['custom-header-class']) {\n this.customHeaderClass = this.item.parameters['custom-header-class'];\n }\n }\n\n onHistoryBack() {\n if (this._doc.referrer) {\n this.#window.history.back();\n } else if (this.productHomepages.promo) {\n this.navigation.goTo(this.productHomepages.promo, { isBackNavigation: true });\n } else {\n this.navigation.goToLastKnownProduct();\n }\n }\n}\n\nlet pcToggleCount = 0;\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, IconCustomComponent],\n selector: 'vn-pc-toggle',\n templateUrl: 'pc-toggle.html',\n})\nexport class PCToggleComponent extends PCComponent implements OnInit {\n id: string;\n\n @HostBinding() get class(): string {\n return this.createClass('pc-toggle');\n }\n\n ngOnInit() {\n this.id = 'pctoggle_chbx_' + pcToggleCount;\n pcToggleCount++;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, HtmlAttrsDirective, ProfilesDirective, PCComponentHeaderV2Component, IconCustomComponent],\n selector: 'vn-pc-image',\n templateUrl: 'pc-image.html',\n})\nexport class PCImageComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-image');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ProfilesDirective, HtmlAttrsDirective, PCComponentHeaderV2Component, DynamicHtmlDirective],\n selector: 'vn-pc-image-text',\n templateUrl: 'pc-image-text.html',\n})\nexport class PCImageTextComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-image-text');\n }\n}\n\n/**\n * @whatItDoes Renders Cloudflare stream video component.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, CloudflareStreamModule, PCComponentHeaderV2Component],\n selector: 'vn-pc-video',\n templateUrl: 'pc-video.html',\n})\nexport class PCVideoComponent extends PCComponent implements OnInit {\n settings: {\n autoplay: boolean;\n loop: boolean;\n muted: boolean;\n preload: 'auto' | 'metadata' | 'none' | boolean;\n poster: string | undefined;\n } = {\n autoplay: false,\n loop: false,\n muted: false,\n preload: 'auto',\n poster: '',\n };\n private playing: boolean = false;\n\n constructor(\n private trackingService: TrackingService,\n private urlService: UrlService,\n ) {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-video');\n }\n\n @HostBinding() get style() {\n return {\n width: this.item.video?.width ? `${this.item.video.width}px` : null,\n height: this.item.video?.height ? `${this.item.video.height}px` : null,\n };\n }\n\n ngOnInit() {\n const videoSrc = this.item?.video?.src;\n\n if (!videoSrc) {\n return;\n }\n\n const queryParams = this.urlService.parse(videoSrc).search;\n\n queryParams.keys().forEach((key: string) => {\n const value = queryParams.get(key)?.toLowerCase();\n (this.settings as any)[key] = toBoolean(value) || value || (this.settings as any)[key];\n });\n\n // According to the browser policies, video cannot be auto-played with sound.\n // See: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide#autoplay_availability\n if (this.settings.autoplay) {\n this.settings.muted = true;\n }\n\n this.settings.poster = this.item.parameters?.poster;\n }\n\n onPlay(event: Event) {\n if (event.type === 'play' && !this.playing) {\n this.playing = true;\n\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'pc video',\n 'component.LabelEvent': 'pc video',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'not applicable',\n 'component.LocationEvent': 'public page',\n 'component.EventDetails': 'pc video play',\n 'component.URLClicked': 'not applicable',\n });\n }\n }\n\n onPause() {\n this.playing = false;\n\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'pc video',\n 'component.LabelEvent': 'pc video',\n 'component.ActionEvent': 'click',\n 'component.PositionEvent': 'not applicable',\n 'component.LocationEvent': 'public page',\n 'component.EventDetails': 'pc video pause',\n 'component.URLClicked': 'not applicable',\n });\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective, HtmlAttrsDirective, ProfilesDirective, PCComponentHeaderV2Component],\n selector: 'vn-pc-teaser',\n templateUrl: 'pc-teaser.html',\n})\nexport class PCTeaserComponent extends PCComponent implements OnInit {\n imageProfilesSet: string | undefined;\n overlayImageProfilesSet: string | undefined;\n subtitleTag: string = 'h4';\n subtitleClass: string;\n summaryTag: string = 'h5';\n summaryClass: string;\n\n @HostBinding() get class(): string {\n return this.createClass('pc-teaser');\n }\n\n ngOnInit() {\n const subtitleClasses = ['pc-t-h-cont-sub'];\n const summaryClasses = ['pc-t-h-cont-sum'];\n\n if (this.item.parameters) {\n this.imageProfilesSet = this.item.parameters['image-profiles-set'];\n this.overlayImageProfilesSet = this.item.parameters['overlay-image-profiles-set'];\n\n const additionalSubtitleClass = this.item.parameters['subtitle-class'];\n const additionalSummaryClass = this.item.parameters['summary-class'];\n const subtitleTag = this.item.parameters['subtitle-tag'];\n const summaryTag = this.item.parameters['summary-tag'];\n\n if (additionalSubtitleClass) {\n subtitleClasses.push(additionalSubtitleClass);\n }\n\n if (additionalSummaryClass) {\n summaryClasses.push(additionalSummaryClass);\n }\n\n if (subtitleTag) {\n this.subtitleTag = subtitleTag;\n }\n\n if (summaryTag) {\n this.summaryTag = summaryTag;\n }\n }\n\n this.subtitleClass = subtitleClasses.join(' ');\n this.summaryClass = summaryClasses.join(' ');\n }\n}\n\n@Component({\n standalone: true,\n imports: [PCComponentHeaderV2Component, PageMatrixDirective, CommonModule],\n selector: 'vn-pc-container',\n templateUrl: 'pc-container.html',\n})\nexport class PCContainerComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-container');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCComponentHeaderV2Component, PageMatrixDirective],\n selector: 'vn-pc-component-folder',\n templateUrl: 'pc-component-folder.html',\n})\nexport class PCComponentFolderComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-folder');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCMenuItemComponent, PCComponentHeaderV2Component],\n selector: 'vn-pc-menu',\n templateUrl: 'pc-menu.html',\n})\nexport class PCMenuComponent extends PCComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChildren(PCMenuItemComponent, { read: ElementRef }) pcMenuItems: QueryList;\n section: string;\n items: ExpandableMenuItem[];\n private destroySubject = new Subject();\n private currentUrl: string;\n\n constructor(\n private urlService: UrlService,\n private navigationService: NavigationService,\n private menuItemsService: MenuItemsService,\n private elementRef: ElementRef,\n ) {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-menu');\n }\n\n ngOnInit() {\n this.section = `${MenuSection.PageMatrix}_${this.item.name}`;\n this.currentUrl = this.navigationService.location.baseUrl() + this.navigationService.location.path();\n }\n\n ngAfterViewInit() {\n if (this.item.menu) {\n this.items = cloneDeep(this.item.menu.children);\n const activeChain = this.findActiveChain(this.items, []);\n\n if (activeChain.length) {\n activeChain.forEach((i) => (i.expanded = true));\n const activeLeaf = activeChain[activeChain.length - 1];\n\n if (activeLeaf?.name) {\n this.menuItemsService.setActive(this.section, activeLeaf.name);\n }\n\n if (this.item.menu.parameters) {\n this.pcMenuItems.changes.pipe(takeUntil(this.destroySubject)).subscribe(() => {\n const pcMenu = this.pcMenuItems.find((x) => x.nativeElement.id === activeLeaf?.name);\n const boundingRect = pcMenu?.nativeElement.getBoundingClientRect();\n const scrollX = toBoolean(this.item.menu?.parameters['active-scroll-horizontal']) ? boundingRect.x : 0;\n const scrollY = toBoolean(this.item.menu?.parameters['active-scroll-vertical']) ? boundingRect.y : 0;\n\n if (scrollX || scrollY) {\n const element: HTMLElement = this.elementRef.nativeElement;\n\n element.getElementsByClassName('pc-menu-items')[0]?.scrollBy({\n left: scrollX,\n top: scrollY,\n behavior: 'smooth',\n });\n }\n });\n }\n }\n }\n }\n\n ngOnDestroy() {\n this.destroySubject.next(null);\n this.destroySubject.complete();\n }\n\n private findActiveChain(items: ExpandableMenuItem[], chain: ExpandableMenuItem[]): ExpandableMenuItem[] {\n for (const child of items) {\n if (child.url) {\n const url = this.urlService.parse(child.url);\n\n if (this.currentUrl === url.baseUrl() + url.path()) {\n return [...chain, child];\n }\n }\n\n if (child.children) {\n const childChain = this.findActiveChain(child.children, [...chain, child]);\n\n if (childChain.length) {\n return childChain;\n }\n }\n }\n\n return [];\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PCComponentHeaderV2Component, PageMatrixDirective],\n selector: 'vn-pc-regional-component',\n templateUrl: 'pc-regional-component.html',\n})\nexport class PCRegionalComponent extends PCComponent {\n @HostBinding() get class(): string {\n return this.createClass('pc-regional');\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, DynamicHtmlDirective],\n selector: 'vn-pc-raw-text',\n templateUrl: 'pc-raw-text.html',\n})\nexport class PCRawTextComponent extends PCComponent {\n @HostBinding('attr.class') get class(): string | undefined {\n return this.item.class;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, ImageComponent],\n selector: 'vn-pc-raw-image',\n templateUrl: 'pc-raw-image.html',\n})\nexport class PCRawImageComponent extends PCComponent {\n @HostBinding('attr.class') get class(): string | undefined {\n return this.item.class;\n }\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PageMatrixDirective, SwiperComponent],\n selector: 'vn-pc-carousel',\n templateUrl: 'pc-carousel.html',\n})\nexport class PCCarouselComponent extends PCComponent implements OnInit {\n swiperClass: string | undefined;\n swiperOptions: SwiperOptions = {\n pagination: false,\n centeredSlides: true,\n };\n @HostBinding() get class(): string {\n return this.createClass('pc-carousel');\n }\n\n ngOnInit() {\n if (this.item.parameters) {\n this.swiperOptions.loop = !!toBoolean(this.item.parameters.loop);\n this.swiperOptions.autoplay = toBoolean(this.item.parameters.autoplay)\n ? {\n delay: toNumber(this.item.parameters.interval || 3000),\n disableOnInteraction: false,\n stopOnLastSlide: true,\n pauseOnMouseEnter: !!toBoolean(this.item.parameters.pauseOnHover),\n }\n : false;\n this.swiperOptions.navigation = !!toBoolean(this.item.parameters.arrows);\n this.swiperOptions.pagination = !!toBoolean(this.item.parameters.dots);\n this.swiperOptions.slidesPerView = toNumber(this.item.parameters.slidesPerView || 1);\n this.swiperOptions.slidesPerGroup = this.slidesPerGroup(\n Number(this.item.parameters?.slidesPerGroup),\n this.item.items?.length || 0,\n this.swiperOptions.loop,\n );\n }\n\n if (this.item.class) {\n this.swiperClass = `${this.item.class}`;\n }\n }\n\n /*\n For the swiper to be able to loop correctly, the 'slidesPerGroup' value should be a factor of the total\n 'slidesCount'. This method adjusts the 'slidesPerGroup' by decrementing it until 'slidesCount' is divisible by\n 'slidesPerGroup' without a remainder.\n */\n private slidesPerGroup(paramVal: number, slidesCount: number, loop: boolean): number {\n let slidesPerGroup = toNumber(paramVal || 1);\n\n if (loop) {\n while (slidesCount % slidesPerGroup) {\n slidesPerGroup--;\n }\n }\n\n return slidesPerGroup;\n }\n}\n\nconst DEFAULT_MENU_TIMEOUT = 3000;\n\n@Component({\n standalone: true,\n imports: [NavScrollDirective, CommonModule, PageMatrixDirective],\n selector: 'vn-pc-scrollmenu',\n templateUrl: 'pc-scrollmenu.html',\n})\nexport class PCScrollMenuComponent extends PCComponent implements OnInit {\n currentItem: string;\n navBarTopHeight: number;\n menuTimeOut: number;\n private readonly _doc = inject(DOCUMENT);\n\n constructor() {\n super();\n }\n\n @HostBinding() get class(): string {\n return this.createClass('pc-scrollmenu');\n }\n\n ngOnInit() {\n const navBarTopHeight = this.item.parameters?.navBarTopHeight;\n const menuTimeoutMs = this.item.parameters?.menuTimeOut || DEFAULT_MENU_TIMEOUT;\n this.navBarTopHeight = toNumber(navBarTopHeight);\n this.menuTimeOut = toNumber(menuTimeoutMs);\n }\n\n sectionChanged(sectionId: string) {\n this.currentItem = sectionId;\n }\n\n scrollStop() {\n this.currentItem = '';\n }\n\n scrollTo(section: string) {\n const element = this._doc.getElementById(section)!;\n element.scrollIntoView({ behavior: 'smooth' });\n }\n}\n","
\n","import { Component, DoCheck, ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';\n\nimport { CustomElement, DslService, DynamicHtml, EmbeddableComponentsService } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[data-content-filter]',\n template: '',\n})\nexport class ContentFilterComponent implements OnInit, OnDestroy, DoCheck {\n private unsubscribe = new Subject();\n private dynamicHtml: DynamicHtml | null;\n\n constructor(\n private elementRef: ElementRef,\n private dslService: DslService,\n private embeddableComponentsService: EmbeddableComponentsService,\n private injector: Injector,\n ) {}\n\n ngOnInit() {\n const element: CustomElement = this.elementRef.nativeElement as CustomElement;\n const condition = element.originalAttributes.get('data-content-filter')!;\n const style = element.originalAttributes.get('style') || '';\n const content = element.originalHtmlString;\n this.elementRef.nativeElement.setAttribute('data-content-filter', condition);\n\n this.dslService\n .evaluateExpression(condition)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((r: any) => {\n if (this.dynamicHtml) {\n this.dynamicHtml.destroy();\n }\n\n if (r) {\n this.elementRef.nativeElement.setAttribute('style', style);\n this.dynamicHtml = this.embeddableComponentsService.createDynamicHtml(this.elementRef.nativeElement, this.injector, content);\n } else {\n this.elementRef.nativeElement.setAttribute('style', 'display: none');\n this.dynamicHtml = this.embeddableComponentsService.createDynamicHtml(this.elementRef.nativeElement, this.injector, '');\n }\n });\n }\n\n ngDoCheck() {\n if (this.dynamicHtml) {\n this.dynamicHtml.detectChanges();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n\n if (this.dynamicHtml) {\n this.dynamicHtml.destroy();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PageMatrixService as CorePageMatrixService, EmbeddableComponentsService, OnFeatureInit } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport * as pc2 from './components-v2/pc.components';\nimport { ContentFilterComponent } from './content-filter.component';\nimport { PageMatrixService } from './page-matrix.service';\n\n@Injectable()\nexport class PageMatrixBootstrapService implements OnFeatureInit {\n constructor(\n private pageMatrixService: PageMatrixService,\n private corePageMatrixService: CorePageMatrixService,\n private embeddableComponentsService: EmbeddableComponentsService,\n ) {}\n\n onFeatureInit() {\n this.embeddableComponentsService.registerEmbeddableComponent(IconCustomComponent, 100);\n this.embeddableComponentsService.registerEmbeddableComponent(ContentFilterComponent, 100);\n this.pageMatrixService.registerComponent('pm1colpage', pc2.PM1ColPageComponent);\n this.pageMatrixService.registerComponent('pctext', pc2.PCTextComponent);\n this.pageMatrixService.registerComponent('pc-text-with-header-bar', pc2.PCTextWithHeaderBarComponent);\n this.pageMatrixService.registerComponent('pc-header-for-mpp-page', pc2.PCHeaderForMppPageComponent);\n this.pageMatrixService.registerComponent('pcimage', pc2.PCImageComponent);\n this.pageMatrixService.registerComponent('pcimagetext', pc2.PCImageTextComponent);\n this.pageMatrixService.registerComponent('pc teaser', pc2.PCTeaserComponent);\n this.pageMatrixService.registerComponent('pccomponentfolder', pc2.PCComponentFolderComponent);\n this.pageMatrixService.registerComponent('pcregionalcomponent', pc2.PCRegionalComponent);\n this.pageMatrixService.registerComponent('pccontainer', pc2.PCContainerComponent);\n this.pageMatrixService.registerComponent('pc-toggle', pc2.PCToggleComponent);\n this.pageMatrixService.registerComponent('pc menu', pc2.PCMenuComponent);\n this.pageMatrixService.registerComponent('rawimage', pc2.PCRawImageComponent);\n this.pageMatrixService.registerComponent('rawtext', pc2.PCRawTextComponent);\n this.pageMatrixService.registerComponent('pccarousel', pc2.PCCarouselComponent);\n this.pageMatrixService.registerComponent('pcvideo', pc2.PCVideoComponent);\n this.pageMatrixService.registerComponent('pcscrollmenu', pc2.PCScrollMenuComponent);\n\n this.corePageMatrixService.set(this.pageMatrixService);\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { PageMatrixBootstrapService } from './page-matrix-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(PageMatrixBootstrapService)];\n}\n","import { Component, Input, OnChanges, OnDestroy } from '@angular/core';\n\nimport { ClientConfigProductName, ContentItem, ContentService } from '@frontend/vanilla/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PageMatrixDirective } from './page-matrix.directive';\n\n/**\n * @whatItDoes Renders page matrix on the client based on JSON or Sitecore path\n *\n * @howToUse\n *\n * If you already have content loaded:\n * ```\n * \n * ```\n *\n * If you would like the component to load any content asynchronously:\n * ```\n * \n * ```\n *\n * @description\n *\n * To load the content, you can either use JsonSerializer with supported templates to get it as part of\n * whatever response or client config (the correct serialization is used out of the box)\n * or use {@link ContentService} or just specify a content path to load from.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [PageMatrixDirective],\n selector: 'vn-page-matrix',\n template: '',\n host: {\n '[class.page-matrix]': 'true',\n },\n})\nexport class PageMatrixComponent implements OnChanges, OnDestroy {\n @Input() path: string;\n @Input() content: ContentItem;\n @Input() product?: ClientConfigProductName;\n\n contentItem: ContentItem;\n\n private unsubscribe = new Subject();\n\n constructor(private contentService: ContentService) {}\n\n ngOnChanges() {\n this.setContent();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private setContent() {\n if (!this.content && !this.path) {\n return;\n }\n\n if (this.content) {\n this.contentItem = this.content;\n } else if (this.path) {\n this.contentService\n .getJsonFiltered(this.path, this.product)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((data: ContentItem) => {\n this.contentItem = data;\n\n const text = data.text?.replace(/\\\\+n/g, '');\n\n if (text) {\n this.contentItem.text = text;\n }\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ContentItem, TrackingService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ContentMessagesTrackingService {\n private trackedLoadEvents = new Set();\n\n constructor(private trackingService: TrackingService) {}\n\n trackMessageLoaded(message: ContentItem, scope: string) {\n const key = scope + message.name;\n\n if (this.trackedLoadEvents.has(key)) {\n return;\n }\n\n this.trackedLoadEvents.add(key);\n this.trackingService.trackContentItemEvent(message.parameters, 'tracking.LoadedEvent');\n }\n\n trackMessageClosed(message: ContentItem) {\n this.trackingService.trackContentItemEvent(message.parameters, 'tracking.ClosedEvent');\n }\n}\n","
\n @if (message.parameters?.messageIcon; as messageIcon) {\n \n }\n @if (message.parameters?.showCloseButton === 'true') {\n \n }\n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { ContentItem, HtmlNode, MenuActionOrigin, MenuActionsService, toBoolean } from '@frontend/vanilla/core';\nimport { PageMatrixComponent } from '@frontend/vanilla/features/content';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { ContentMessagesTrackingService } from './content-messages-tracking.service';\n\nexport interface ContentMessageCloseEvent {\n message: ContentItem;\n showOnNextSession?: boolean;\n showOnNextLogin?: boolean;\n}\n\n@Component({\n standalone: true,\n imports: [CommonModule, PageMatrixComponent, IconCustomComponent],\n selector: 'vn-content-message',\n templateUrl: 'content-message.html',\n})\nexport class ContentMessageComponent implements OnInit, OnDestroy {\n @Input() message: ContentItem;\n @Input() scope: string;\n @Output() close: EventEmitter = new EventEmitter();\n iconClass: string;\n\n constructor(\n private htmlNode: HtmlNode,\n private contentMessagesTrackingService: ContentMessagesTrackingService,\n private menuActionService: MenuActionsService,\n ) {}\n\n ngOnInit() {\n this.setHtmlCssClass(true);\n this.contentMessagesTrackingService.trackMessageLoaded(this.message, this.scope);\n this.iconClass = this.message.parameters?.closeIcon || 'theme-close-i';\n }\n\n ngOnDestroy() {\n this.setHtmlCssClass(false);\n }\n\n onClick() {\n if (toBoolean(this.message.parameters?.closeOnMessageClick)) {\n this.close.next({ message: this.message });\n }\n }\n\n closeMessage(showOnNextSession: boolean = false, showOnNextLogin: boolean = false) {\n this.close.next({ message: this.message, showOnNextSession, showOnNextLogin });\n\n if (this.message.parameters?.closeAction) {\n this.menuActionService.invoke(this.message.parameters.closeAction, MenuActionOrigin.PageMatrix, [this.message.parameters.queryStringKey]);\n }\n }\n\n private setHtmlCssClass(add: boolean) {\n if (this.message.parameters?.htmlTagClass) {\n this.htmlNode.setCssClass(this.message.parameters.htmlTagClass, add);\n }\n }\n}\n","import { Component, ElementRef, HostListener, OnInit } from '@angular/core';\n\nimport { CustomElement, toBoolean } from '@frontend/vanilla/core';\n\nimport { ContentMessageComponent } from './content-message.component';\n\n/**\n * This is automatically tested in tests of ContentMessageComponent.\n */\n@Component({\n standalone: true,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '.message-close',\n template: '',\n})\nexport class CloseMessageComponent implements OnInit {\n private showOnNextSession: boolean | undefined;\n private showOnNextLogin: boolean | undefined;\n\n constructor(\n private parent: ContentMessageComponent,\n private elementRef: ElementRef,\n ) {\n this.showOnNextSession = toBoolean(elementRef.nativeElement.getAttribute('data-show-on-next-session'));\n this.showOnNextLogin = toBoolean(elementRef.nativeElement.getAttribute('data-show-on-next-login'));\n }\n\n ngOnInit() {\n this.elementRef.nativeElement.innerHTML = (this.elementRef.nativeElement).originalHtmlString;\n }\n\n @HostListener('click')\n onClick() {\n this.parent.closeMessage(this.showOnNextSession, this.showOnNextLogin);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EmbeddableComponentsService, OnFeatureInit } from '@frontend/vanilla/core';\n\nimport { CloseMessageComponent } from './close-message.component';\n\n@Injectable()\nexport class ContentMessagesBootstrapService implements OnFeatureInit {\n constructor(private embeddableComponentsService: EmbeddableComponentsService) {}\n\n onFeatureInit() {\n this.embeddableComponentsService.registerEmbeddableComponent(CloseMessageComponent, 100);\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { ContentMessagesBootstrapService } from './content-messages-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(ContentMessagesBootstrapService)];\n}\n","import { Injectable } from '@angular/core';\n\nimport { ContentItem, CookieName, CookieService, SharedFeaturesApiService, toBoolean } from '@frontend/vanilla/core';\nimport { flatten, isNumber } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ContentMessagesTrackingService } from './content-messages-tracking.service';\n\n/**\n * @whatItDoes Wraps logic related to content messages esp. manipulation of respective cookies.\n *\n * @description This is meant for Vanilla internal use only!\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ContentMessagesService {\n private messages: { [key: string]: Observable } = {};\n\n constructor(\n private cookieService: CookieService,\n private api: SharedFeaturesApiService,\n private contentMessagesTrackingService: ContentMessagesTrackingService,\n ) {}\n\n private static generateExpiryDate(days: string | number | null): Date | undefined {\n if (!days) {\n return;\n }\n\n const expireDate = new Date();\n expireDate.setDate(expireDate.getDate() + (isNumber(days) ? days : parseInt(days, 10)));\n\n return expireDate;\n }\n\n getMessages(\n path: string,\n closedCookieKey?: string,\n evaluateFullOnServer?: boolean,\n ): Observable {\n if (this.messages[path] || !path) {\n return this.messages[path] || of([]);\n }\n\n this.messages[path] = this.api\n .get('contentMessages', {\n path,\n closedCookieKey,\n evaluateFullOnServer,\n })\n .pipe(map((r) => r.messages));\n\n return this.messages[path] || of([]);\n }\n\n getClosedMessageNames(cookieKey: string): string[] {\n const cookieNames = [CookieName.ClsdP, CookieName.ClsdS, CookieName.ClsdL];\n\n return flatten(cookieNames.map((c: CookieName) => this.cookieService.getQueryCollection(c, cookieKey)));\n }\n\n markMessageAsClosed(message: ContentItem, cookieKey: string, options?: { showOnNextSession?: boolean; showOnNextLogin?: boolean }) {\n const parameters = message.parameters || {};\n const showOnNextSession = options?.showOnNextSession === undefined ? toBoolean(parameters.showOnNextSession) : options.showOnNextSession;\n const showOnNextLogin = options?.showOnNextLogin === undefined ? toBoolean(parameters.showOnNextLogin) : options.showOnNextLogin;\n let expires = ContentMessagesService.generateExpiryDate(showOnNextSession ? null : 365); // clsd-l is also persistent b/c delete on login\n\n if (toBoolean(parameters.writeOriginalCookie) !== false || !parameters.additionalCookieName) {\n const cookieName = showOnNextLogin ? CookieName.ClsdL : showOnNextSession ? CookieName.ClsdS : CookieName.ClsdP;\n this.cookieService.addToQueryCollection(cookieName, cookieKey, message.name, expires ? { expires } : {});\n }\n\n if (parameters.additionalCookieName) {\n const additionalCookieValue = parameters.additionalCookieValue !== undefined ? parameters.additionalCookieValue : 'true';\n expires =\n parameters.additionalCookieExpireDays !== undefined\n ? ContentMessagesService.generateExpiryDate(parameters.additionalCookieExpireDays)\n : expires;\n\n this.cookieService.putRaw(parameters.additionalCookieName, additionalCookieValue, expires ? { expires } : {});\n }\n\n this.contentMessagesTrackingService.trackMessageClosed(message);\n }\n}\n","@if (messagesToShow.length) {\n
\n @for (message of messagesToShow; track trackByName($index, message)) {\n \n }\n
\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges } from '@angular/core';\n\nimport {\n ContentItem,\n HtmlNode,\n MenuActionOrigin,\n MenuActionsService,\n UserEvent,\n UserLoginEvent,\n UserService,\n toBoolean,\n trackByProp,\n} from '@frontend/vanilla/core';\nimport { filter, first } from 'rxjs/operators';\n\nimport { ContentMessageComponent } from './content-message.component';\nimport { ContentMessagesService } from './content-messages.service';\n\n/**\n * @whatItDoes Renders a collection of content messages\n *\n * @howToUse\n *\n * ```\n * \n * ```\n *\n * @description\n *\n * Renders a collection of content messages. Content for content messages can be loaded with `IContentMessageLoader` on the\n * server, then rendered on the client with client side page matrix.\n *\n * See http://moss.bwin.com/development/contentservices/The%20Brain/Content%20Messages.aspx for more information\n * about content messages.\n *\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, ContentMessageComponent],\n selector: 'vn-content-messages',\n templateUrl: 'content-messages.html',\n})\nexport class ContentMessagesComponent implements OnInit, OnChanges, OnDestroy {\n @Input() closedCookieKey: string;\n @Input() cssClassForHtmlNode: string;\n @Input() messages: ContentItem[];\n @Input() dynamicValues?: { Key: ''; Value: '' }[];\n\n messagesToShow: ContentItem[] = [];\n readonly trackByName = trackByProp('name');\n\n constructor(\n private messagesService: ContentMessagesService,\n private menuActionService: MenuActionsService,\n private htmlNode: HtmlNode,\n user: UserService,\n @Optional() private overlayRef: OverlayRef,\n ) {\n user.events\n .pipe(\n filter((e: UserEvent) => e instanceof UserLoginEvent),\n first(),\n )\n .subscribe(() => this.refreshMessagesToShow());\n }\n\n ngOnInit() {\n if (this.overlayRef) {\n this.overlayRef.backdropClick().subscribe(() => {\n for (const message of this.messagesToShow) {\n if (toBoolean(message.parameters?.writeCookieOnOverlayClick)) {\n this.messagesService.markMessageAsClosed(message, this.closedCookieKey);\n }\n if (message.parameters?.closeAction) {\n this.menuActionService.invoke(message.parameters.closeAction, MenuActionOrigin.PageMatrix, [\n message.parameters.queryStringKey,\n ]);\n }\n }\n\n this.messages = [];\n this.refreshMessagesToShow();\n this.overlayRef.dispose();\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.messages || changes.closedCookieKey || changes.dynamicValues) {\n this.setDynamicContentValues();\n this.refreshMessagesToShow();\n }\n }\n\n ngOnDestroy() {\n this.toggleClassForHtmlNode(false);\n }\n\n closeMessage(message: ContentItem, showOnNextSession: boolean = false, showOnNextLogin: boolean = false) {\n const options = {\n showOnNextSession,\n showOnNextLogin,\n };\n\n if (Object.keys(options).length > 0) {\n this.messagesService.markMessageAsClosed(message, this.closedCookieKey, options);\n } else {\n this.messagesService.markMessageAsClosed(message, this.closedCookieKey);\n }\n\n this.messages = this.messages.filter((m: ContentItem) => m !== message);\n this.refreshMessagesToShow();\n\n if (this.overlayRef && !this.messagesToShow.length) {\n // Last message closed -> remove overlay if any\n this.overlayRef.dispose();\n }\n }\n\n private refreshMessagesToShow() {\n if (this.messages?.length && this.closedCookieKey) {\n const closedMsgNames = new Set(this.messagesService.getClosedMessageNames(this.closedCookieKey).map((v: string) => v.toLowerCase()));\n this.messagesToShow = this.messages.filter((m: ContentItem) => m && !closedMsgNames.has(m.name.toLowerCase()));\n } else {\n this.messagesToShow = [];\n }\n\n this.toggleClassForHtmlNode(this.messagesToShow.length > 0);\n }\n\n private toggleClassForHtmlNode(enabled: boolean) {\n this.htmlNode.setCssClass(this.cssClassForHtmlNode, enabled);\n }\n\n /**\n * @whatItDoes Goes through all visible message parameters and replace placeholders `{EXAMPLE_KEY}`\n * with a value with the same key from `dynamicValues` input.\n * The message will remain unchanged if placeholder does not mach the format\n * or value is not found in the `dynamicValues`.\n */\n private setDynamicContentValues() {\n if (!this.dynamicValues || !this.messages) {\n return;\n }\n\n this.messages.forEach((message: ContentItem) => {\n for (const param in message.parameters) {\n message.parameters[param] = message.parameters[param]!.replace(/{\\w+}/g, (placeholder: string) => {\n const key = placeholder.replace(/[{}]+/g, '');\n const value = this.dynamicValues?.find((value) => value.Key === key)?.Value;\n\n return value || placeholder;\n });\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigProductName,\n GenericListItem,\n LazyClientConfig,\n LazyClientConfigBase,\n LazyClientConfigService,\n MenuContentItem,\n} from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnLabelSwitcher', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: labelSwitcherConfigFactory,\n})\nexport class LabelSwitcherConfig extends LazyClientConfigBase {\n main: MenuContentItem;\n resources: GenericListItem;\n showChangeLabelToaster: string;\n isRestrictedAccessCondition: string;\n persistStayInState: boolean;\n}\n\nexport function labelSwitcherConfigFactory(service: LazyClientConfigService) {\n return service.get(LabelSwitcherConfig);\n}\n","import { Injectable } from '@angular/core';\n\nimport { TrackingService } from '@frontend/vanilla/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelSwitcherTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackConfirmationOverlay(actionEvent: string, positionEvent: string, eventDetails: string) {\n this.track('switching states confirmation popup', actionEvent, positionEvent, eventDetails, 'not applicable');\n }\n\n trackDropDown(actionEvent: string, positionEvent: string, eventDetails: string, urlClicked?: string) {\n this.track('Footer State Switcher', actionEvent, positionEvent, eventDetails, urlClicked);\n }\n\n private track(labelEvent: string, actionEvent: string, positionEvent: string, eventDetails: string, urlClicked?: string) {\n this.trackingService.triggerEvent('Event.Tracking', {\n 'component.CategoryEvent': 'multi state-switch',\n 'component.LabelEvent': labelEvent,\n 'component.ActionEvent': actionEvent,\n 'component.PositionEvent': positionEvent,\n 'component.LocationEvent': 'not applicable',\n 'component.EventDetails': eventDetails,\n 'component.URLClicked': urlClicked || 'not applicable',\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n AuthService,\n CookieName,\n CookieService,\n DateTimeService,\n DslService,\n EventsService,\n GeolocationPosition,\n GeolocationService,\n Logger,\n MenuContentItem,\n NativeAppService,\n NativeEventType,\n NavigationService,\n PERMANENT_COOKIE_EXPIRATION,\n Page,\n SimpleEvent,\n ToastrQueueService,\n ToastrSchedule,\n ToastrType,\n UrlService,\n UserService,\n VanillaEventNames,\n} from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject, catchError, distinctUntilChanged, filter, take, takeUntil, tap } from 'rxjs';\n\nimport { LabelSwitcherTrackingService } from './label-switcher-tracking.service';\nimport { LabelSwitcherConfig } from './label-switcher.client-config';\nimport { LabelSwitcherItem } from './label-switcher.models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LabelSwitcherService {\n private currentPosition: GeolocationPosition | null;\n private currentLabelItemEvent = new BehaviorSubject(undefined);\n private unsubscribe = new Subject();\n\n constructor(\n private config: LabelSwitcherConfig,\n private page: Page,\n private toastrQueueService: ToastrQueueService,\n private cookieService: CookieService,\n private geoLocationService: GeolocationService,\n private dslService: DslService,\n private logger: Logger,\n private trackingService: LabelSwitcherTrackingService,\n private user: UserService,\n private nativeAppService: NativeAppService,\n private authService: AuthService,\n private navigationService: NavigationService,\n private urlService: UrlService,\n private eventsService: EventsService,\n private dateTimeService: DateTimeService,\n ) {}\n\n /** Gets label switcher item event based on current label. */\n get currentLabelItemEvent$(): Observable {\n return this.currentLabelItemEvent;\n }\n\n /** Gets label switcher item based on user's geo location. */\n get currentGeoLocationItem(): LabelSwitcherItem | undefined {\n return this.items.find(\n (i: LabelSwitcherItem) => i.region?.toLowerCase() === this.currentPosition?.mappedLocation?.stateClient?.toLowerCase(),\n );\n }\n\n get messages(): { [attr: string]: string } {\n return this.config.resources.messages;\n }\n\n private _items: LabelSwitcherItem[] = [];\n\n /** Gets all label switcher items. */\n get items(): LabelSwitcherItem[] {\n return this._items;\n }\n\n private _currentLabelItem: LabelSwitcherItem | undefined;\n\n /** Gets label switcher item based on current label. */\n get currentLabelItem(): LabelSwitcherItem | undefined {\n return this._currentLabelItem;\n }\n\n init() {\n this.prepareItems();\n this.checkForContentErrors();\n this.geoLocationService.whenReady.subscribe(() =>\n this.geoLocationService.positionChanges\n .pipe(distinctUntilChanged((prev, curr) => prev.mappedLocation?.stateClient == curr.mappedLocation?.stateClient))\n .subscribe((position: GeolocationPosition) => {\n this.unsubscribe.next();\n this.currentPosition = position;\n this.showToasters();\n }),\n );\n\n if (this.config.persistStayInState) {\n this.eventsService.newEvents\n .pipe(\n filter(\n (event: SimpleEvent) =>\n event.eventName === VanillaEventNames.ToastrClosed && event.data?.toastrContent?.name?.toLowerCase() === 'changelabel',\n ),\n )\n .subscribe(() => {\n const state = this.currentPosition?.mappedLocation?.stateClient;\n if (state)\n this.cookieService.put(this.getCookieName(state), state, {\n expires: this.setCookieExpiration(),\n });\n });\n }\n }\n\n async switchLabel(item: LabelSwitcherItem) {\n this.trackingService.trackConfirmationOverlay('click', `${item.text}, ${this.currentLabelItem?.text}`, this.messages.Overlay_Ok_Epcot || '');\n await this.logout();\n this.cookieService.put(CookieName.StateChanged, '1');\n const url = this.urlService.parse(item.url);\n url.search.append('_showChangeLabelSuccess', 'true');\n\n if (this.nativeAppService.isNative) {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.LOCATION,\n parameters: {\n label: item.name,\n countryCode: item.country,\n stateCode: item.regionCode,\n state: item.region,\n url: item.url,\n },\n });\n } else {\n this.navigationService.goTo(url);\n }\n }\n\n private async logout(): Promise {\n return this.user.isAuthenticated ? this.authService.logout({ redirectAfterLogout: false }) : Promise.resolve();\n }\n\n private prepareItems() {\n this.config.main.children.forEach((item: MenuContentItem) => {\n this._items.push({\n name: item.name,\n text: item.text,\n region: item.parameters.region,\n regionCode: item.parameters.regionCode,\n country: item.parameters.country,\n url: item.url,\n isActive: this.page.domain.replace(/\\./g, '').trim() == item.name.replace(/\\./g, '').trim(),\n image: item.image,\n });\n });\n\n this._currentLabelItem = this.items.find((i: LabelSwitcherItem) => i.isActive);\n this.currentLabelItemEvent.next(this._currentLabelItem);\n }\n\n private checkForContentErrors() {\n if (!this.currentLabelItem) {\n this.logger.error('Current label is not present in label-switcher items!');\n }\n }\n\n private showToasters() {\n this.logger.infoRemote('LabelSwitcher: Location changed, initializing show toasters.');\n const state = this.currentPosition?.mappedLocation?.stateClient;\n this.dslService\n .evaluateExpression(this.config.showChangeLabelToaster)\n .pipe(\n tap((show) => {\n this.logger.infoRemote(`LabelSwitcher: showChangeLabelToaster evaluated to ${show}`);\n if (this.cookieService.get(CookieName.ShowChangeLabelSuccess) && !show) {\n this.toastrQueueService.add(ToastrType.ChangeLabelSuccess, {\n schedule: ToastrSchedule.Immediate,\n placeholders: { label: this.currentLabelItem?.text || '' },\n });\n this.cookieService.remove(CookieName.ShowChangeLabelSuccess);\n }\n }),\n takeUntil(this.unsubscribe),\n filter(Boolean),\n take(1),\n catchError((error) => {\n this.logger.errorRemote('LabelSwitcher: failed to evaluate showChangeLabelToaster expression.', error);\n throw error;\n }),\n )\n .subscribe(() => {\n if (state && !this.stayInStateAlreadyChosen(state)) {\n this.logger.infoRemote('LabelSwitcher: adding toaster to the queue');\n this.toastrQueueService.add(ToastrType.ChangeLabel, {\n schedule: ToastrSchedule.Immediate,\n placeholders: {\n state: this.currentGeoLocationItem?.text || '',\n originstate: this.currentLabelItem?.text || '',\n },\n });\n } else {\n this.logger.infoRemote('LabelSwitcher: toaster will not be added to the queue due to condition not met.');\n }\n });\n\n this.dslService\n .evaluateExpression(this.config.isRestrictedAccessCondition)\n .pipe(takeUntil(this.unsubscribe), filter(Boolean), take(1))\n .subscribe(() => {\n if (!this.isToastAlreadyShownInState(ToastrType.RestrictedAccess, state)) {\n this.toastrQueueService.add(ToastrType.RestrictedAccess, {\n schedule: ToastrSchedule.Immediate,\n placeholders: {\n label: this.currentLabelItem?.name || '',\n state: this.currentGeoLocationItem?.text || '',\n },\n });\n this.addStateToToast(ToastrType.RestrictedAccess, state);\n }\n });\n }\n\n private stayInStateAlreadyChosen(state: string): boolean {\n const stateName = this.cookieService.get(this.getCookieName(state));\n\n this.logger.infoRemote(`LabelSwitcher: stay in state already chosen for ${state}: ${!!stateName}`);\n return !!stateName;\n }\n\n private setCookieExpiration(): Date {\n const expireDate = this.dateTimeService.now();\n expireDate.setHours(23, 59, 59, 999);\n\n return expireDate;\n }\n\n private getCookieName(state: string): string {\n const stateNameWithoutSpace = state.replace(/\\s/g, '');\n return `vn_ls_${stateNameWithoutSpace}`;\n }\n\n private addStateToToast(toastKey: string, state: string | undefined | null) {\n if (state && !this.isToastAlreadyShownInState(toastKey, state)) {\n this.cookieService.addToQueryCollection(CookieName.ToastShownInStates, toastKey, state, { expires: PERMANENT_COOKIE_EXPIRATION });\n }\n }\n\n private isToastAlreadyShownInState(toastKey: string, state: string | undefined | null): boolean {\n if (!state) return false;\n\n const states = this.cookieService.getQueryCollection(CookieName.ToastShownInStates, toastKey);\n this.logger.infoRemote(`LabelSwitcher: toaster already shown in ${state}: ${states?.includes(state)}`);\n return states?.includes(state);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Logger, MenuAction, MenuActionsService, OnFeatureInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { LabelSwitcherConfig } from './label-switcher.client-config';\nimport { LabelSwitcherService } from './label-switcher.service';\n\n@Injectable()\nexport class LabelSwitcherBootstrapService implements OnFeatureInit {\n constructor(\n private config: LabelSwitcherConfig,\n private service: LabelSwitcherService,\n private menuActionsService: MenuActionsService,\n private logger: Logger,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.config.whenReady);\n this.service.init();\n this.menuActionsService.register(MenuAction.SHOW_LABEL_SWITCHER_OVERLAY, async () => {\n const item = this.service.currentGeoLocationItem;\n if (item) {\n await this.service.switchLabel(item);\n } else {\n this.logger.warn(`No content found for current GEO IP region.`);\n }\n });\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { LabelSwitcherBootstrapService } from './label-switcher-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(LabelSwitcherBootstrapService)];\n}\n","@if (labelSwitcherService.items.length) {\n
\n @if (labelSwitcherConfig.resources.messages.Label_Switcher_Heading; as heading) {\n
\n {{ heading }}\n
\n }\n @if (labelSwitcherService.currentLabelItem; as item) {\n
\n @if (item.image && !hideFlag) {\n \n }\n {{ item.text }}\n \n
\n }\n @if (showLabels) {\n
\n @for (item of labelSwitcherService.items; track trackByName($index, item)) {\n {{ item.text }}\n }\n
\n }\n
\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { HtmlNode, trackByProp } from '@frontend/vanilla/core';\nimport { IconCustomComponent } from '@frontend/vanilla/shared/icons';\n\nimport { LabelSwitcherTrackingService } from './label-switcher-tracking.service';\nimport { LabelSwitcherConfig } from './label-switcher.client-config';\nimport { LabelSwitcherItem } from './label-switcher.models';\nimport { LabelSwitcherService } from './label-switcher.service';\n\n/**\n * @stable\n */\n@Component({\n standalone: true,\n imports: [CommonModule, OverlayModule, IconCustomComponent],\n selector: 'vn-label-switcher',\n templateUrl: 'label-switcher.html',\n styleUrls: ['../../../../../themepark/themes/whitelabel/components/label-switcher/styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class LabelSwitcherComponent implements OnInit {\n showLabels: boolean;\n\n @Input() hideFlag: boolean;\n\n readonly trackByName = trackByProp('name');\n\n constructor(\n public labelSwitcherService: LabelSwitcherService,\n public labelSwitcherConfig: LabelSwitcherConfig,\n private trackingService: LabelSwitcherTrackingService,\n private htmlNode: HtmlNode,\n ) {}\n\n ngOnInit() {\n if (this.labelSwitcherService.items.length) {\n this.htmlNode.setCssClass('label-switcher-shown', true);\n }\n }\n\n toggle() {\n this.showLabels = !this.showLabels;\n\n if (this.showLabels) {\n const positionEvent = this.labelSwitcherService.currentGeoLocationItem?.text;\n this.trackingService.trackDropDown('Click', positionEvent || '', 'Footer State Switcher');\n }\n }\n\n async switchLabel(item: LabelSwitcherItem) {\n if (item.isActive) {\n return;\n }\n\n this.trackingService.trackDropDown(\n 'Switch',\n `${this.labelSwitcherService.currentGeoLocationItem?.text}, ${this.labelSwitcherService.currentLabelItem?.text}`,\n item.text,\n item.url,\n );\n\n this.showLabels = false;\n await this.labelSwitcherService.switchLabel(item);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ClientConfigProductName,\n ContentItem,\n LazyClientConfig,\n LazyClientConfigBase,\n LazyClientConfigService,\n MenuContentItem,\n MenuContentSection,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnFooter', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: footerContentFactory,\n deps: [LazyClientConfigService],\n})\nexport class ResponsiveFooterContent extends LazyClientConfigBase {\n isEnabledCondition: string;\n expandableModeEnabled: boolean;\n showHelpButton: boolean;\n links: MenuContentSection;\n seoLinks: MenuContentSection[];\n logos: { left: MenuContentSection; right: MenuContentSection };\n contentMessages: ContentItem[];\n copyright: ViewTemplateForClient;\n showLanguageSwitcherDslCondition: string;\n helpButton: MenuContentItem;\n showLabelSwitcher: boolean;\n footerTopItems: ContentItem[];\n expandableModeIcons: { expanded: string; collapsed: string };\n}\n\nexport function footerContentFactory(service: LazyClientConfigService) {\n return service.get(ResponsiveFooterContent);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { MenuContentItem, MenuSection } from '@frontend/vanilla/core';\nimport { MenuItemComponent } from '@frontend/vanilla/features/menus';\n\n@Component({\n standalone: true,\n imports: [MenuItemComponent, CommonModule],\n selector: 'vn-footer-menu-item',\n templateUrl: 'footer-menu-item.html',\n})\nexport class FooterMenuItemComponent {\n @Input() item: MenuContentItem;\n\n MenuSection = MenuSection;\n}\n","\n","@if (section().title) {\n
\n @if (config.expandableModeEnabled) {\n \n }\n {{ section().title }}\n
\n}\n@if (expanded()) {\n @for (item of section().items; track 'text') {\n \n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit, computed, inject, input, signal } from '@angular/core';\n\nimport { MenuContentSection } from '@frontend/vanilla/core';\n\nimport { FooterMenuItemComponent } from './footer-menu-item.component';\nimport { ResponsiveFooterContent } from './footer.client-config';\n\n@Component({\n standalone: true,\n imports: [CommonModule, FooterMenuItemComponent],\n selector: 'vn-footer-menu-section',\n templateUrl: 'footer-menu-section.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'footerClass()',\n },\n})\nexport class FooterMenuSectionComponent implements OnInit {\n section = input.required();\n\n config = inject(ResponsiveFooterContent);\n expanded = signal(true);\n sectionClass = computed(() => this.section().class);\n footerClass = computed(() =>\n [this.expanded() && this.config.expandableModeEnabled ? 'footer-nav-expanded' : '', 'footer-nav', this.sectionClass()]\n .filter((c) => c)\n .join(' '),\n );\n\n ngOnInit() {\n this.expanded.set(!this.config.expandableModeEnabled);\n }\n\n toggle() {\n if (this.config.expandableModeEnabled) {\n this.expanded.update((e) => !e);\n }\n }\n}\n","@if (item) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { MenuContentItem, MenuSection } from '@frontend/vanilla/core';\nimport { MenuItemComponent } from '@frontend/vanilla/features/menus';\n\n@Component({\n standalone: true,\n imports: [MenuItemComponent, CommonModule],\n selector: 'vn-f-help-button',\n templateUrl: 'help-button.html',\n})\nexport class HelpButtonComponent {\n @Input() item?: MenuContentItem;\n MenuSection = MenuSection;\n}\n","@if (configReady && footerSlot.display()) {\n
\n
\n
\n @if (showResponsiveLanguageSwitcher) {\n \n }\n @if (config.showLabelSwitcher) {\n \n }\n @for (item of config.links.items | dsl | async; track trackByText($index, item)) {\n \n }\n \n @if (config.showHelpButton) {\n \n }\n
\n @if (config.footerTopItems.length) {\n @if (config.footerTopItems | dsl | async; as topItems) {\n \n }\n }\n
\n @for (seoSection of config.seoLinks | dsl | async; track trackBySectionName($index, seoSection)) {\n \n }\n
\n @if (config.contentMessages.length) {\n @if (config.contentMessages | dsl | async; as messages) {\n \n }\n }\n @if (logoSections.length) {\n
\n @for (logoSection of logoSections | dsl | async; track trackBySectionName($index, logoSection)) {\n \n }\n
\n }\n \n
\n
\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport {\n DslService,\n DynamicLayoutService,\n DynamicLayoutSlotComponent,\n HtmlNode,\n MenuContentItem,\n MenuContentSection,\n Page,\n SingleSlot,\n SlotName,\n SlotType,\n trackByProp,\n} from '@frontend/vanilla/core';\nimport { ContentMessagesComponent } from '@frontend/vanilla/features/content-messages';\nimport { LabelSwitcherComponent } from '@frontend/vanilla/features/label-switcher';\nimport { ResponsiveLanguageSwitcherComponent } from '@frontend/vanilla/features/language-switcher';\nimport { DslPipe } from '@frontend/vanilla/shared/browser';\nimport { Subject, firstValueFrom, takeUntil } from 'rxjs';\n\nimport { FooterMenuItemComponent } from './footer-menu-item.component';\nimport { FooterMenuSectionComponent } from './footer-menu-section.component';\nimport { ResponsiveFooterContent } from './footer.client-config';\nimport { HelpButtonComponent } from './sub-components/help-button.component';\n\n/** @stable */\n@Component({\n standalone: true,\n imports: [\n CommonModule,\n DslPipe,\n ContentMessagesComponent,\n LabelSwitcherComponent,\n ResponsiveLanguageSwitcherComponent,\n DynamicLayoutSlotComponent,\n OverlayModule,\n HelpButtonComponent,\n FooterMenuSectionComponent,\n FooterMenuItemComponent,\n ],\n selector: 'vn-footer',\n templateUrl: 'footer.html',\n styleUrls: ['../../../../../themepark/themes/whitelabel/components/footer/styles.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class FooterComponent implements OnInit, OnDestroy {\n footerSlot: SingleSlot;\n logoSections: MenuContentSection[] = [];\n showResponsiveLanguageSwitcher: boolean;\n configReady: boolean = false;\n\n SlotName = SlotName;\n\n helpButton: MenuContentItem | undefined;\n readonly trackByText = trackByProp('text');\n readonly trackByName = trackByProp('name');\n readonly trackBySectionName = trackByProp('name');\n\n private unsubscribe = new Subject();\n\n constructor(\n public config: ResponsiveFooterContent,\n private htmlNode: HtmlNode,\n private page: Page,\n private dslService: DslService,\n private dynamicLayoutService: DynamicLayoutService,\n ) {}\n\n async ngOnInit() {\n await firstValueFrom(this.config.whenReady);\n this.configReady = true;\n\n this.footerSlot = this.dynamicLayoutService.getSlot(SlotName.Footer, SlotType.Single);\n\n this.showResponsiveLanguageSwitcher = this.page.uiLanguages.length > 1;\n\n if (this.config.showHelpButton) {\n this.dslService\n .evaluateContent(this.config.helpButton)\n .pipe(takeUntil(this.unsubscribe))\n .subscribe((item: MenuContentItem) => {\n if (item?.name) {\n this.helpButton = item;\n }\n });\n }\n\n if (this.showResponsiveLanguageSwitcher) {\n this.dslService.evaluateExpression(this.config.showLanguageSwitcherDslCondition).subscribe((isEnabled: boolean) => {\n this.showResponsiveLanguageSwitcher = isEnabled;\n\n if (this.showResponsiveLanguageSwitcher) {\n this.setContactHtmlClass(false);\n this.setLanguageSwitcherHtmlClass(true);\n } else if (this.config.showHelpButton) {\n this.setContactHtmlClass(true);\n this.setLanguageSwitcherHtmlClass(false);\n }\n });\n } else if (this.config.showHelpButton) {\n this.setContactHtmlClass(true);\n }\n\n if (this.config.logos.left) {\n this.logoSections.push(this.config.logos.left);\n }\n\n if (this.config.logos.right) {\n this.logoSections.push(this.config.logos.right);\n }\n }\n\n ngOnDestroy() {\n this.setContactHtmlClass(false);\n this.setLanguageSwitcherHtmlClass(false);\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n private setContactHtmlClass(add: boolean) {\n this.htmlNode.setCssClass('footer_items-help-contact-shown', add);\n }\n\n private setLanguageSwitcherHtmlClass(add: boolean) {\n this.htmlNode.setCssClass('language-switcher-shown', add);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n DateTimeService,\n DslService,\n DynamicLayoutService,\n EventsService,\n OnFeatureInit,\n SimpleEvent,\n SingleSlot,\n SlotName,\n SlotType,\n VanillaEventNames,\n ViewTemplateForClient,\n} from '@frontend/vanilla/core';\nimport { CopyrightComponent } from '@frontend/vanilla/shared/copy-right';\nimport { filter, first, firstValueFrom } from 'rxjs';\n\nimport { ResponsiveFooterContent } from './footer.client-config';\nimport { FooterComponent } from './footer.component';\n\n@Injectable()\nexport class FooterBootstrapService implements OnFeatureInit {\n constructor(\n private config: ResponsiveFooterContent,\n private dynamicLayoutService: DynamicLayoutService,\n private dslService: DslService,\n private dateTimeService: DateTimeService,\n private eventsService: EventsService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.config.whenReady);\n\n this.dynamicLayoutService.setComponent(SlotName.Footer, FooterComponent, null);\n this.eventsService.raise({ eventName: VanillaEventNames.FooterLoaded });\n\n this.eventsService.allEvents\n .pipe(\n filter((e: SimpleEvent) => e?.eventName === VanillaEventNames.FooterSlotLoaded),\n first(),\n )\n .subscribe(() => this.toggleFooter());\n\n if (this.config.copyright) {\n this.dslService\n .evaluateContent(this.config.copyright)\n .pipe(first())\n .subscribe((item: ViewTemplateForClient) => {\n if (item?.title) {\n const copyright = item.title.replace('{year}', this.dateTimeService.now().getFullYear().toString());\n this.dynamicLayoutService.addComponent(SlotName.FooterItems, CopyrightComponent, { copyright: copyright });\n }\n });\n }\n }\n\n toggleFooter() {\n const footerSlot = this.dynamicLayoutService.getSlot(SlotName.Footer, SlotType.Single);\n this.dslService.evaluateExpression(this.config.isEnabledCondition).subscribe((isEnabled: boolean) => {\n if (isEnabled) {\n footerSlot.show();\n } else {\n footerSlot.hide();\n }\n });\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { FooterBootstrapService } from './footer-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(FooterBootstrapService)];\n}\n"],"names":["SubNavigationResolve","constructor","tabs$","BehaviorSubject","size$","fullWidth$","subNavigation$","asObservable","tabSize$","tabFullWidth$","cleanup","next","BreadcrumbsResolve","crumbs","createCrumb","options","sportId","leagueId","icon","title","url","classes","ignoreBrowserHistory","bgColor","color","isWithRightImage","imageProfile","resolve","model","customResolve","addToCrumbs","crumbsToAdd","push","regexMatcher","segments","segmentGroup","route","_a","data","matcherPattern","Error","length","regex","RegExp","max","matcherMode","filter","segment","index","map","path","join","match","exec","matcherMapping","consumed","posParams","keys","forEach","key","UrlSegment","slice","use","resolver","ScoreboardStat","name","player1","player2","order","isVisible","statClasses","isEnabled","isEmpty","playerNumber","ScoreboardStatList","values","list","addStat","value","removeStat","i","cnt","splice","findIndex","updateStatValue","newValue","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","s","timer","base","Date","getTime","running","seconds","getDisplay","timeDiff","Math","floor","displayedMinutes","displayedseconds","toString","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","event","stream","startDate","sport","id","period","eventId","league","eventGroupId","groupId","leagueGroupId","parentLeagueId","live","fillFromEvent","fillFromScoreboard","__fillFromScoreboard","updateFromScoreboard","ScoreboardPairGameViewModel","scoreKey","eventName","leagueName","participants","player1AwayIndicator","viewType","type","EventParticipantType","Away","player2AwayIndicator","SetScoreboardViewModel","turnKey","pointsKey","setsKey","stats","getTurn","Turn","Player01","Player02","getPoints","getSets","player1Sets","player2Sets","result","parsePoints","createStats","fillStats","None","isFinished","set","fillEmptySets","updateStats","val","parseInt","isNaN","TennisScoreboardViewModel","arePointsAreVisible","BaseBallscoreboardViewModel","activeCurrentInning","Number","replace","participant1runs","participant2runs","PairScoreboardViewModel","__fillStats","__updateStats","DartsScoreboardViewModel","sitecore","ScoreboardTournamentGameViewModel","ScoreboardLeaderboardGameViewModel","players","current","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","p","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","ɵɵinject","TennisPointsVisibilityService","Sitecore","factory","ɵfac","providedIn","_ScoreboardViewmodelFactory","TimerUtilsService","getEventStartingInText","globalMessages","NotStarted","StartingInMinutes","StartingInMinute","StartsNow","getEventStartingInFullText","templateSettings","interpolate","format","StartsNowFormatted","TimerStartingInFormatted","template","date","_TimerUtilsService","DsButtonIcon","DsButtonBase","_size","signal","_kind","_variant","_ariaLabel","hostClass","computed","variantKindClass","sizeClass","variant","size","kind","ariaLabel","a","__ngFactoryType__","selectors","hostAttrs","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵclassProp","disabled","z","f","m","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","_DsButtonIcon","_c0","_c1","_c2","MAT_BUTTON_CONFIG","InjectionToken","HOST_SELECTOR_MDC_CLASS_PAIR","MatButtonBase","_MatButtonBase","v","_elementRef","_platform","_ngZone","_animationMode","inject","FocusMonitor","MatRippleLoader","config","element","classList","attribute","mdcClasses","origin","ɵɵinvalidFactory","ɵɵdefineDirective","booleanAttribute","ɵɵInputTransformsFeature","MatButton","_MatButton","elementRef","platform","ngZone","animationMode","ɵɵdirectiveInject","ElementRef","Platform","NgZone","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","ɵɵattribute","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","ɵɵprojectionDef","ɵɵelement","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","ɵɵtemplate","ɵɵconditional","matSnackBarAnimations","trigger","state","style","transition","animate","uniqueId","MatSnackBarContainer","_MatSnackBarContainer","BasePortalOutlet","_changeDetectorRef","snackBarConfig","DOCUMENT","portal","fromState","toState","onEnter","panelClasses","cssClass","label","labelClass","modals","modal","ariaOwns","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","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","Overlay","LiveAnnouncer","BreakpointObserver","ɵɵdefineInjectable","D","ɵɵproperty","ctx_r0","toast","ToasterComponent","className","ToasterComponent_i_0_Template","dismiss","ɵɵsanitizeHtml","NgIf","NgClass","encapsulation","changeDetection","_ToasterComponent","ToasterService","snackBar","epcotConfigService","isEpcotEnabled","open","panelClass","split","toaster","openFromComponent","horizontalPosition","verticalPosition","dismissed","afterDismissed","opened","afterOpened","EpcotConfig","_ToasterService","AlertConfigService","nativeAlertsConfig","minuteInMiliseconds","extractIds","alert","containedAlerts","x","getBySport","alertMessages","nativeAlertsMessagesConfig","nativeAlerts","sports","enabled","sportConfigs","sportConfig","toLowerCase","messages","alerts","unshift","ids","isTop","Boolean","getTopIdsBySport","find","array","concat","isSportEnabled","fetchingInterval","NativeAlertsConfig","_AlertConfigService","Action","Type","Source","NativeEventType","Mode","Page","NotificationEnabled","SubscriptionStreamService","apiService","alertConfigService","userService","timerService","loggerFactory","_data","data$","isAuthenticated","startGettingSubscriptions","onUserLogin$","pipe","takeUntilDestroyed","subscribe","onUserLogout$","stopGettingSubscriptions","logger","getLogger","interval","refreshSubscriptions","setIntervalOutsideAngular","get","catchError","err","error","of","subscription","response","ApiService","UserService","TimerService","LoggerFactory","S","_SubscriptionStreamService","AlertSubscriptionService","streamService","trackingService","subscriptionsSubject","processData","subscriptions","item","propagate","updateLocalCollection","subscriptionsToUpdate","Promise","getValue","newSubscription","Subscribe","trackSubscription","filterSportsEmitLast","sendSubscriptions","firstValueFrom","post","updateSubscriptions","scores","Unsubscribe","catch","errorCode","tracking","track","trackingConstants","EVENT_ALERT_ENABLED","PAGE_NAME","newSubscriptions","unsubscribeAll","subscriptionsToRemove","getSubscriptionForEvent","getSubscriptionForGroup","currentSubscriptions","Object","getSubscription","getSubscriptions","events","e","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","Je","Ke","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","Xe","alert_r7","_r6","toggleAlert","isSelected","info","Ze","AlertSelectorComponent_Conditional_7_For_3_Template","ɵɵpureFunction1","showFooter","et","_r8","save","ConfirmButton","tt","_r9","closeSelector","CancelButton","it","AlertSelectorComponent_Conditional_8_section_0_Conditional_1_Template","AlertSelectorComponent_Conditional_8_section_0_Conditional_2_Template","showConfirmButton","rt","AlertSelectorComponent_Conditional_8_section_0_Template","AlertSelectorComponent","selectorService","subscriptionService","activeModal","nativeAlertsService","alertPreferences","alertMessagesCache","detailViewInitValues","ngOnInit","page","List","createEventsModel","isSingleMode","isMultiMode","refreshSelectAllButton","setInitailValues","close","appNotificationsEnabledCheck","verifyAndSaveAlerts","saveAlerts","isDetailView","updateSelectedSubscription","updateEvents","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","changed","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","fixture","fixtureId","parentleagueId","getEventModel","getMyBetModel","sportsId","containsLiveBets","getScoreboardModel","getMyBetsModel","items","bets","Array","isArray","Mybets","Mybet","Betslip","Scoreboard","ModalDialogService","RedirectHelperService","Se","_AlertButtonComponent","NativeAlertsModule","ue","CommonModule","DsButton","IconCustomComponent","_NativeAlertsModule","be","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","l","_ScrollIosHackDirective","ScrollToDirective","elm","changeScroll","setAnimationFrame","scrollWidth","offsetWidth","scrollLeft","ngAfterContentInit","changes","auditTime","contentQueries","dirIndex","W","Y","M","U","_ScrollToDirective","StopEventPropagationDirective","eventHandlerRemovers","eventHandler","touchStartEventPropagationStopped","eventsList","remover","_StopEventPropagationDirective","ToolbarButtonsHeightDirective","MAX_BUTTONS_CONTAINER_WIDTH","ngOnChanges","currentValue","previousValue","trySetButtonsFixedHeight","buttons","querySelectorAll","toolbarComponent","closest","allButtonsWidth","button","b","features","ɵɵNgOnChangesFeature","_ToolbarButtonsHeightDirective","DirectivesModule","N","j","_DirectivesModule","ShowInEpcotDirective","templateRef","viewContainer","msShowInEpcot","showInEpcot","module","createEmbeddedView","clear","ViewContainerRef","EpcotConfigService","r","standalone","_ShowInEpcotDirective","TickerInterval","TickerService","timers","second","minute","Function","generateGuid","onTick","Second","runInterval","unsubscribeInternal","secondsInterval","minutesInterval","runIntervalType","Minute","keysForInterval","u","_TickerService","ScoreboardHostDirective","viewContainerRef","_ScoreboardHostDirective","ScoreboardComponentBase","update","scoreboardViewModel","vm","MyBetsScoreboardTimerComponent","ticker","timerUtilsService","input","required","setTime","formated","detectChanges","stopSubscription","tickerSubscription","_MyBetsScoreboardTimerComponent","ɵɵelementContainerStart","ɵɵelementContainer","At","MyBetsScoreboardTimeComponent_Case_1_Conditional_0_Template","MyBetsScoreboardTimeComponent_Case_1_ng_container_4_Template","MyBetsScoreboardTimeComponent_Case_1_ng_container_5_Template","ɵɵpipeBind2","Nt","liveText","Ot","ɵɵ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","_MyBetsScoreboardTimeComponent","ɵɵtextInterpolate2","$index_r2","player_r1","MyBetsLeaderboardGameScoreboardComponent","MyBetsLeaderboardGameScoreboardComponent_For_8_Template","_MyBetsLeaderboardGameScoreboardComponent","Wt","Ut","Jt","AwayIndicator","MyBetsScoreboardPlayersPairComponent","ngContentSelectors","MyBetsScoreboardPlayersPairComponent_Conditional_5_Template","MyBetsScoreboardPlayersPairComponent_Conditional_10_Template","_MyBetsScoreboardPlayersPairComponent","Xt","Zt","ei","MyBetsPairGameScoreboardComponent","MyBetsPairGameScoreboardComponent_Conditional_2_Template","_MyBetsPairGameScoreboardComponent","MyBetsPairGameNoScoreboardComponent","d","_MyBetsPairGameNoScoreboardComponent","round_r1","round_r2","point_r3","MyBetsPenaltyShootoutScoreboardStatsComponent","MyBetsPenaltyShootoutScoreboardStatsComponent_For_3_Template","ɵɵrepeaterTrackByIndex","MyBetsPenaltyShootoutScoreboardStatsComponent_For_6_Template","MyBetsPenaltyShootoutScoreboardStatsComponent_For_9_Template","_MyBetsPenaltyShootoutScoreboardStatsComponent","MyBetsPenaltyShootoutScoreboardComponent","B","T","ct","_MyBetsPenaltyShootoutScoreboardComponent","ri","ai","si","mi","StatsValueComponent","animationBuilder","animationFactory","animationTimer","build","group","query","keyframes","opacity","transform","doAnimation","window","valueElement","display","newValueElement","oldValueElement","textContent","create","statsElement","play","isFirstChange","clearTimeout","AnimationBuilder","viewQuery","O","q","Le","_StatsValueComponent","stat_r1","fi","MyBetsPairScoreboardStatsComponent_Conditional_0_For_3_Conditional_1_Template","bi","_c4","ctx_r2","_r2","onExpandCollapse","MyBetsPairScoreboardStatsComponent_Conditional_0_Conditional_4_span_1_Template","MyBetsPairScoreboardStatsComponent_Conditional_0_Conditional_4_span_2_Template","_c3","hi","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","_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","MyBetsSnookerScoreboardStatsComponent_Conditional_2_Template","MyBetsSnookerScoreboardStatsComponent_Conditional_4_Template","MyBetsSnookerScoreboardStatsComponent_Conditional_10_Template","_MyBetsSnookerScoreboardStatsComponent","MyBetsSnookerScoreboardComponent","_MyBetsSnookerScoreboardComponent","MyBetsTournamentGameScoreboardComponent","siteCore","_MyBetsTournamentGameScoreboardComponent","stat_r2","$index_r3","wi","getSum","teamType","Team01","Team02","ExtraInnings","Pi","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","P","k","je","_MyBetsBaseballScoreboardComponent","ht","ki","Sets","Legs","MyBetsDartsStatsScoreboardComponent","MyBetsDartsStatsScoreboardComponent_Conditional_1_Template","MyBetsDartsStatsScoreboardComponent_Conditional_2_Template","MyBetsDartsStatsScoreboardComponent_Conditional_3_Template","tmp_2_0","_MyBetsDartsStatsScoreboardComponent","MyBetsScoreboardDartsComponent","gt","_MyBetsScoreboardDartsComponent","Oi","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","oe","_MyBetsPairgameFullScoreboardStatsComponent","MyBetsScoreboardPeriodGameComponent","xt","_MyBetsScoreboardPeriodGameComponent","Ri","MyBetsScoreboardSoccerRedCardComponent","cardsCount","cards","apply","MyBetsScoreboardSoccerRedCardComponent_For_2_Template","_MyBetsScoreboardSoccerRedCardComponent","MyBetsScoreboardSoccerGoalComponent","sequence","right","params","Yi","_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","V","helpers_1","objOps","removed","getValueByPointer","originalValue","applyOperation","valueToCopy","arrOps","arr","removedList","pointer","getOriginalDestination","validateOperation","mutateDocument","banPrototypeModifications","validator","returnValue","t","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","ae","ScoreboardSubscriptionService","BaseSubscriptionService","scoreboardFactory","connection","getContextSubscriptions","ScoreboardSubscription","offerContext","culture","getHandlers","handlers","Map","evt","cmd","updateScoreboard","command","fixtureScoreboard","operations","createScoreboard","ScoreboardFactory","CdsPushService","ConnectionConfig","_ScoreboardSubscriptionService","SitemapRoutingToken","TaxCalculation","UserEvents","ClaimsChanged","M2UserClaimsChanged","UserSettingsChanged","DomainEvent","ClientConfigRefreshed","EarlyPayoutAcceptance","AccountMenuVersion","mapEarlyPayoutAcceptance","earlyPayoutAcceptanceMode","Any","Higher","isTurnoverTaxApplied","stakeTaxRate","taxCalculation","TurnoverTax","TrustPipe","sanitizer","bypassSecurityTrustHtml","bypassSecurityTrustUrl","bypassSecurityTrustStyle","bypassSecurityTrustResourceUrl","DomSanitizer","n","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","earlyPayoutV2","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","Title","transactionMyBetsUrl","stadiumMyBetsTransactionsUrl","RacingConfig","EarlyPayoutConfig","MyBetsConfig","BetslipConfig","ShareMyBetConfig","TeaserBetConfig","ReBetConfig","_HelpBoxService","badgeText","HelpBoxBadgeComponent","boxType","isShown","hbService","HelpBoxBadgeComponent_Conditional_0_Template","_HelpBoxBadgeComponent","BestOddsGuaranteedService","getEligibleFixturesCount","fixtures","isFixtureEligible","count","eligible","_BestOddsGuaranteedService","RaceViewBestOddsBadgeComponent","bestOddsService","fixture$","toObservable","showBadge","toSignal","switchMap","requireSync","RaceViewBestOddsBadgeComponent_Conditional_0_Template","_RaceViewBestOddsBadgeComponent","Oe","Be","fe","ke","De","HelpBoxComponent_ng_container_1_ng_container_1_Template","headerBadge_r1","onInfoIconClick","helpBoxData","Me","HelpBoxComponent_ng_container_6_ng_container_1_Template","Ae","onCloseButtonClick","Close","Pe","_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","c","_TypingStakeInputModeStrategy","DynamicInputModeStrategy","mediaService","subject$","ReplaySubject","distinctUntilChanged","MediaQueryService","_DynamicInputModeStrategy","charsets","en","el","bg","decimals","separators","CharsetSizeService","averageDecimalWidth","averageSeparatorWidth","DEFAULT_SIZE","getAverageSize","averageWidth","getAverageSizeCurrentCharset","getAverageDecimalSize","fontSize","getAverageDecimalSizeCurrentCharset","getAverageSeparatorSize","getAverageSeparatorSizeCurrentCharset","getSampleCharsetWidth","warning","charset","getCharsetForLang","lang","span","styleDec","getComputedStyle","body","createElement","innerText","fontFamily","appendChild","removeChild","mapCharset","_CharsetSizeService","BettingSettingsService","sportsUserSettings","bettingSettings$","loadSportsUserSettings$","configSettings$","allSettings$","combineLatest","isTurnoverTaxApplied$","earlyPayoutAcceptance$","whenReady","shareReplay","bufferSize","refCount","_BettingSettingsService","UiManagerActions","_UiManagerActions","SET_STATE","ADD_STATE","REMOVE_STATE","REMOVE_MULTI_STATES","TOGGLE_STATE","POPULATE_FROM_STORAGE","STATE_CHANGED","setState","createAction","props","addState","removeState","removeMultiStates","toggleState","populateFromStorage","stateChanged","pprops","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","default","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","trim","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","Q","EVENT_TRACKING","_NumpadTrackingService","StakeUpdateService","utils","increment","Decimal","add","remove","append","character","allCharactersSelected","_StakeUpdateService","NumpadService","numpadDisplayService","updateService","numpadTrackingService","currencypipe","store","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","dispatch","MarketSubTypeTooltipShown","Remove","onOtherNumpadOpen","otherNumpadWasOpened","closeNumpad","numpadService","isZero","preFormatted","newState","mapToAction","trackingSource","numpadSource","CurrencyPipe","Store","_NumpadService","stake_r2","addToStake","IncrementalStakesComponent","incrementalStakesService","stakeValues$","mapValue","initialValue","stakeToAdd","String","IncrementalStakesComponent_For_2_Template","zt","_IncrementalStakesComponent","ui","R","onClick","NumpadErrorComponent","clickable","isDefined","trustPipe","trustAsHtml","NumpadErrorComponent_div_0_Template","_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","_NumpadHostComponent","vi","_i","ok","numpad","Ok","NumpadKeysComponent","separator","tap","NumpadKeysComponent_Conditional_25_Template","showConfirm","J","H","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","init","stateChangeSub","stateChange","deInit","cleanTimeout","focused","selectionEnd","clearFocus","focus","showStakeCurrency","select","focusInput","setSelectionRange","CurrencyConfig","_NumpadInputConnector","Ni","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","xi","StakeInputComponent_Conditional_2_Template","_StakeInputComponent","StakeWrapperComponent","ɵɵProvidersFeature","ut","_StakeWrapperComponent","Fi","Ai","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","ot","_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","some","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","o","_NavigationCoreModule","Z","L","nn","X","rn","h","tn","g","w","A","I","E","on","G","un","an","fn","cn","sn","vn","ln","immer_esm_default","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","refresh","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","user","refreshed","BonusBalance","getCurrentValue","getIndividualBonus","bonusType","toLocaleLowerCase","_BonusBalanceDslValuesProvider","KycStatusService","kycStatus","kycStatusEvents","refreshSubject","kycStatusOptions","JSON","throttleTime","load","useCase","cached","_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","trackHelpLink","arcBetslipMessages","FindOutMore","ArcMessageComponent_ng_template_2_ng_container_0_ng_container_6_div_4_Template","Pt","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","Ee","ArcMessageComponent_ng_template_2_Template","Ui","betslipMessageContainer_r4","vt","Ki","Ve","wr","_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","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","createFeatureSelector","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","payload","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","destroy","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","withLatestFrom","generateShortUri$","showBetSharingConfirmationOnlyOnFirstBetShare","share$","getShareText","success","BetShared","receiveBet$","handleShareBet$","RefBet","copyShortUri$","ngrxOnInitEffects","noopAction","translation","shareText","SingleBetShareText","MultiBetShareText","SystemBetShareText","systemType","StoragePersister","_ShareMyBetEffect","shareMyBetReducer","createReducer","produce","draft","aggr","pp","ShareMyBetModule","shareMyBetNativeMessageService","ft","yt","StoreModule","forFeature","_ShareMyBetModule","AccaBoostRatioPipe","prefix","boostRatio","replaceBoostPlaceholder","boost","interpolateDoubleBracesString","_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","throwError","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","MyBetsEarlyPayoutTacDialogComponent","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","isPriceBoosted","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","request","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","participantImage","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","C","DsListItem_Conditional_1_Template","_DsListItem","ListItemComponent_Conditional_0_ng_container_1_Template","itemTemplate_r1","st","ListItemComponent_Conditional_1_ng_container_1_Template","href","nt","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","K","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","clone","defaultValue","import_hammerjs","de","HammerGestureConfigProvider","HammerGestureConfig","overrides","pinch","enable","rotate","swipe","Hammer","DIRECTION_HORIZONTAL","inputClass","TouchMouseInput","_HammerGestureConfigProvider","SCROLL_ADAPTER_CONFIG","we","ge","ve","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","pe","_LcpCandidateDirective","DsCard","elevated","withHover","noOverflow","noBorderRadius","noBorder","_DsCard","listIndex","img_r1","pt","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","Ct","PromoItemComponent_Conditional_1_ng_container_1_Template","It","sportsIcon","leagueIcon","leagueTitle","kt","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","Mt","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","Vt","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","$t","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","Gt","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","sportIds","leagueIds","itemIndexTrackBy","PopupManager","PromoItemListComponent_Conditional_0_Template","PromoItemListComponent_Conditional_1_Template","$e","_PromoItemListComponent","CrmPromotionModule","_CrmPromotionModule","TopBottomSectionLinksComponent","crmPromotionProvider","itemListClass","showSmallIcons","linkClass","setItemClass","promotionsMap$","promotionMapChanged","setTrackingDetails","COMPONENT_SITECORE_ID","sitecoreId","COMPONENT_USER_SEGMENTS","userSegmentGroups","promoMap","competitions","layoutClass","linkLayout","CrmPromotionProviderService","moduleName","modulePosition","moduleSection","_TopBottomSectionLinksComponent","QuickLinksSections","toQuickLinkItem","quickLink","linkModel","linkType","LinkListWidgetComponent_ng_container_0_div_1_Template","links","smallIcon","LinkListWidgetComponent","WidgetComponent","kebabCase","onData","hasData","setWidgetLoaded","LinkListWidgetComponent_ng_container_0_Template","hidden","_LinkListWidgetComponent","COUNT_QUICKLINKS","QUICK_LINKS","BootstrapQuickLink","widgetRegistry","slot","registerLazy","registerCountQuickLinks","getSlot","SlotType","registerSlot","registerQuickLinks","WidgetRegistryService","DynamicLayoutService","_BootstrapQuickLink","symbol","fractionSize","hideEmptyFraction","_CurrencyPipe","MyBetsOddsPipe","_MyBetsOddsPipe","MyBetsBaseModule","_MyBetsBaseModule","ConfirmationDialogButtonType","contentModel","button_r3","handleClick","buttonOrderClass","buttonTitle","ConfirmationDialogComponent_Conditional_4_For_2_Conditional_0_Template","ConfirmationDialogComponent_Conditional_4_For_2_Template","button_r5","ConfirmationDialogComponent_Conditional_5_For_2_Template","ConfirmationDialogComponent","isDesignSystem","TrackingType","PageName","Referring","ConfirmationDialogComponent_Conditional_2_Template","ConfirmationDialogComponent_Conditional_4_Template","ConfirmationDialogComponent_Conditional_5_Template","_ConfirmationDialogComponent","ConfirmationDialogService","showDialog","confirmationDialogCssClass","hideCloseButton","backdropClass","_ConfirmationDialogService","CURRENT_THEME_TOKEN","IS_ROBOT_TOKEN","injectCurrentTheme","NonRootToken","injectIsRobot","SportsThemedButtonDirective","dsButton","self","currentTheme","themeKind","themeVariant","themeSize","themeInverse","_SportsThemedButtonDirective","SportsClientConfigRefreshService","geolocationService","sportsUserConfig","marqueeTilesConfig","BET_PLACE_SUCCESS","_locationDependantDataNeeded$","locationDependantDataNeeded$","onAppInit","firstNavigationFinished$","NavigationEnd","positionChanges","mappedLocation","locationId","MarqueeTilesConfig","tiles","geoLocationStatus","isEligibleForNewCustomerOffer","SportsUserConfig","GeolocationService","_SportsClientConfigRefreshService","FreshDataType","FreshDataProvider","EllapsedTimer","startedAt","ellapsedMilliseconds","OnlineDetectionService","updateOnlineStatus","isOnline","onLine","offlineDuration","offlineTimer","online$","filterSports","onlineChange","_OnlineDetectionService","FreshDataService","pageVisibilityService","onlineDetection","pushProvider","appConfig","ms2Tracking","freshDataProviders","clientConfigRefresh","cdsPushService","reloadNeededStream","reloadNeeded","pageHiddenDuration","pageHiddenForTooLong","pageHiddenReloadThreshold","isDisconnected","EVENT_RELOAD_HIDDEN","PAGE_RELOAD_AFTER_HIDDEN","requestReload","DataAndPush","offlineForTooLong","offlineDurationReloadThreshold","EVENT_RELOAD_OFFLINE","PAGE_RELOAD_AFTER_OFFLINE","isRefreshNeeded","onAuthenticationChange$","Data","restart","CdsPushProvider","AppConfig","_FreshDataService","FavouriteType","isFixtureFavourite","favourite","Fixture","FixtureV2","FavouritesFixturesService","bettingOffer","getCounts","favourites","participantFavourite","fav","Participant","ParticipantV2","batchId","fixtureTypes","getOfferSource","tagTypes","extendedTags","fixtureParticipantIds","itemId","competitionIds","League","fixtureIds","getBatchCounts","BettingOfferApi","_FavouritesFixturesService","FavouritesModelFactory","urlConfig","normalizer","SegmentNormalizer","toModel","dto","getToken","getKey","region","toDto","normalize","PrettyUrlsConfig","_FavouritesModelFactory","FavouriteChangeType","FavouritesService","favouritesConfig","favouritesData","favouritesFactory","updating","eventSubject","changeType","Get","getList","change","favouritesList","isDefault","isFull","maxFavourites","notify","iconClass","toastMessageTimeOut","favouritesMessages","NotAuthenticated","TooManyFavourites","favForSport","upcomingOrder","maxUpcomingOrder","maxBy","maxOrder","newFavourite","newFavourites","favs","loadCounts","Add","AddError","Save","favouritesDashboard","itemArray","diff","differenceBy","loadAdditionalData","favDraft","tags","tag","findTag","sportTag","competitionTag","countTag","preMatch","Favourites","finalize","FavouritesConfig","_FavouritesService","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","setEvents","replaceEvents","removeEvents","replaceEvent","collapseEvents","setActiveGroup","setActiveGroupType","setGroupCollapse","setMoreCollapse","addGroups","updateGroupsBadges","changeSorting","addCouponEvents","gridInitialState","gridStateKey","gridStateSelector","GridFavouriteService","favouriteService","pairwise","previousChange","currentChange","difference","updateFavourited","isFavourited","getType","grids","grid","flattenDeep","groups","favourited","_GridFavouriteService","GridBaseFactory","canCreate","GridFixtureFactory","fixtureFactory","detailedFactory","grouping","marketGrouping","getFixtureGrouping","groupingConfiguration","splitFixtures","excludePriceboostedMarketGrouping","EventFactory","factories","mapped","setFavourited","FixtureFactory","DetailedFixtureFactory","OfferGroupingService","_EventFactory","ScrollSelectedInViewDirective","lastSelectedItem","selectedItemChangedHandler","scrollableContainer","viewportPosition","centerScroller","nextItemScroller","childPosition","elementViewportPosition","viewportMiddle","childPositionMiddle","dontScroll","nextElement","nextElementSibling","nextPosition","nextScrollLeft","prevElement","previousElementSibling","prevScrollLeft","ɵɵinjectAttribute","_ScrollSelectedInViewDirective","heap","node","siftUp","peek","last","siftDown","parentIndex","leftIndex","rightIndex","getCurrentTime","hasPerformanceNow","_global","localPerformance","localDate","initialTime","maxSigned31BitInt","IMMEDIATE_PRIORITY_TIMEOUT","USER_BLOCKING_PRIORITY_TIMEOUT","NORMAL_PRIORITY_TIMEOUT","LOW_PRIORITY_TIMEOUT","IDLE_PRIORITY_TIMEOUT","taskQueue","timerQueue","taskIdCounter","currentTask","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","setImmediate","messageChannel","defaultZone","advanceTimers","currentTime","handleTimeout","requestHostCallback","flushWork","firstTimer","requestHostTimeout","hasTimeRemaining","cancelHostTimeout","workLoop","_currentTask","zoneChanged","hitDeadline","shouldYieldToHost","currentPriorityLevel","didUserCallbackTimeout","continuationCallback","scheduleCallback","priorityLevel","expirationTime","newTask","cancelCallback","task","isMessageLoopRunning","scheduledHostCallback","taskTimeoutID","yieldInterval","needsPaint","queueStartTime","forceFrameRate","fps","performWorkUntilDeadline","hasMoreWork","schedulePerformWorkUntilDeadline","channel","port","ms","coerceObservable","isObservable","coerceObservableWith","o$","coerceDistinctWith","flattenOperator","switchAll","coerceAllFactory","subjectFactory","observablesSubject","values$","immediateStrategy","cdRef","work","scope","scheduleOnQueue","userBlockingStrategy","normalStrategy","lowStrategy","idleStrategy","coalescingManager","subscriber","mapTo","RX_CONCURRENT_STRATEGIES","animationFrameTick","getZoneUnPatchedApi","localCredentials","coalesceWith","noopCredentials","nativeCredentials","RX_NATIVE_STRATEGIES","RX_RENDER_STRATEGIES_CONFIG","RX_RENDER_STRATEGIES_DEFAULTS","mergeDefaultConfig","cfg","custom","onStrategy","strategy","workFactory","strategyHandling","defaultStrategyName","strategies","hotFlattened","nameToStrategyCredentials","RxStrategyProvider","_RxStrategyProvider","__publicField","strategyName","_work","getWork","_v","returnVal","abC","patchZone","TabBarComponent_ms_scroll_adapter_0_ng_container_1_Template","active","tabTemplate_r3","TabBarComponent_ng_template_1_ul_0_li_1_a_1_ng_container_1_Template","tab_r5","overrideStyles","inactiveStyles","borderColor","linkTemplate_r6","TabBarComponent_ng_template_1_ul_0_li_1_ng_template_2_ng_container_1_Template","TabBarComponent_ng_template_1_ul_0_li_1_a_1_Template","TabBarComponent_ng_template_1_ul_0_li_1_ng_template_2_Template","tabClass","shouldNavigateByUrl","staticTemplate_r8","ye","TabBarComponent_ng_template_1_ul_0_li_1_Template","containerClass","tabs","trackTab","TabBarComponent_ng_template_1_ul_0_Template","badge_r9","class","iconTemplate","defaultIconTemplate_r11","tab_r10","he","tab_r12","Ie","TabBarComponent_ng_template_3_span_0_Template","TabBarComponent_ng_template_3_ng_container_1_Template","TabBarComponent_ng_template_3_ng_template_2_Template","TabBarComponent_ng_template_3_span_4_Template","TabBarComponent_ng_template_3_ng_template_5_Template","TabBarComponent_ng_template_3_span_7_Template","tabFormatted","rawTemplate_r13","TabBarComponent","componentClass","tab","redirectHelperService","isNewFixture","arrowSelect","schedule","goToPage","isRobot","TabBarComponent_ms_scroll_adapter_0_Template","TabBarComponent_ng_template_1_Template","TabBarComponent_ng_template_3_Template","le","ee","_TabBarComponent","TabBarModule","_TabBarModule","onCloseClick","notificationHeaderTitle","F","onLinkClick","linkValues","EpcotNotificationTypes","EpcotNotificationComponent","showCloseButton","linkClick","notificationInfo","iconColor","notificationType","Info","Success","ngAfterViewChecked","EpcotNotificationComponent_Conditional_5_Template","EpcotNotificationComponent_span_9_Template","EpcotNotificationComponent_section_10_Template","EpcotNotificationComponent_Conditional_12_Template","ɵɵclassMapInterpolate1","_EpcotNotificationComponent","isFixtureUpdateEnvelope","envelope","isGameUpdateEnvelope","isGameDeleteEnvelope","isOptionMarketUpdateEnvelope","isOptionMarketDeleteEnvelope","isParticipantUpdateEnvelope","isScoreboardPatchEnvelope","isScoreboardSlimEnvelope","isFixtureSlimUpdateEnvelope","isPlayerStatsUpdateEnvelope","messageType","game","optionMarket","isOptionMarketEnvelope","participant","hybridPlayerStats","isBetBuilderOfferUpdateEnvelope","isBetBuilderExpiringSubscriptionEnvelope","updateObjectInCollection","updatedObj","collection","creator","updater","newCollection","isUpdated","updated","getUpdatedOptionMarkets","defaultCreator","defaultUpdater","updateFixture","cutOffDate","stage","addons","isResulted","isRaceOver","isRaceOff","pricingState","raceSummary","updateFixtureParticipants","messageParticipant","updateFixtureOptionMarkets","optionMarkets","updatedMarket","FontResizerBaseService","FontResizerComponent","fontResizerService","oddsConfig","fontSizeThreshold","oldLength","shouldSkipCustomStyling","fontChange","shouldUseCustomStyle","useCustomOddsFontStyle","valueChange","shouldGetExtSettings","getSettings","calculateSize","valueLength","getFontSize","getMaxChars","skipResize","maxChars","OddsConfig","FontResizerComponent_span_0_Template","FontResizerComponent_ng_template_1_Template","normal_r2","_FontResizerComponent","PriceboostCountSignpostComponent","shouldApplyClass","priceBoostConfig","largeSignpost","isLargeSignPost","showPriceBoostCount","showCount","countSignpost","PriceBoostConfig","PriceboostCountSignpostComponent_Conditional_1_Template","_PriceboostCountSignpostComponent","TrackNavArea","getAllParams","parentRoute","assign","NavigationRouterService","eventRouter","menuService","headerService","layoutNavigationConfig","betslipBarConfig","navigationState$","lastSelectedSport$","currentActivationEnd","handleRouterEvent","setLastActiveItem","restoreLastActiveItem","navigationState","highlightProduct","setNavigation","activeValue","lastActiveItemName","setActiveItem","resetNavigation","activeNavigation","_activeNavigation","selectedSport$","getSelectedEventId","selectedEventId","itemName","setActive","NavTop","bottomNavItem","bottomNavItemsMapping","MenuSection","BottomNav","snapshot","RouteTag","EsportsLobby","RouterEventsService","MenuItemsService","HeaderService","LayoutNavigationConfig","BetslipBarConfig","_NavigationRouterService","ErrorType","RetryType","GeolocationCoordinatorService","geolocationConfig","_initializePending","_uninitializePending","_unInitializedHooks","_ready$","ready$","hookupCoordinator","once","appDownloadUrl","geolocationCoordinator","permissionsManager","onInitialized","onUninitialized","onError","onProbed","session","channelId","coordinatorSettings","plcIdentifier","showPLCPopup","productId","_initializationInput","uninitialize","probe","triggerFetchLocation","onGeolocationInitialized","initializationData","onGeolocationUninitialized","onGeolocationError","errorData","onGeolocationProbed","probeResult","GeolocationConfig","_GeolocationCoordinatorService","PermissionsManagerComponent","templateLoaderHost","matContext","MAT_DIALOG_DATA","dialogRef","MatDialogRef","permissionsInfo","permissionsConfig","geoCoordinatorService","prepareConfig","templateContent","managerClasses","permissionInfoClasses","devicePropertyClasses","currentOrientation","deviceType","osName","osVersion","vendor","browserClasses","getCapability","loadAssets","configStore","hostElement","activateTemplate","handleCloseDialog","permissionDictionaryConfig","dictionaryEntries","dictEntry","re","ɵɵresolveDocument","isChrome","isNexus","isTouch","isMobilePhone","_PermissionsManagerComponent","GeoCoordinatorPermissionsManagerService","MatDialog","documentRef","_permissionsInfoOptions","handlePermissionsInfo","console","canReopenDialog","closePermissionsInfo","disableClose","textDictionary","handleDialogClassesDecoration","whichClasses","afterClosed","existing","incoming","_GeoCoordinatorPermissionsManagerService","loadDownloadAppComponent","DownloadAppComponent","loadGeoGuardValidationComponent","GeoGuardValidationComponent","loadGeoLocationErrorComponent","GeoLocationErrorComponent","loadGeoLocationInstallerComponent","GeoLocationInstallerComponent","GeolocationCheckService","geolocationCoordinatorService","apiServiceExternal","geoCoordinatorPermissionsManagerService","isLocationFetched","isLocationFetchTimeOut","resetTimer","gdsApiInterval","initialRetryInterval","geoComplyErrorCodes","retriableErrorCodes","resetTimerAndRefetchLocation","deviceInfoResponse","checkGeolocation","cb","isGeolocationEnabled","isNative","waitForLocationAvailable","validateLocation","checkBetRestriction","isGeoLocationRestrictionEnabled","loading","initializationStatus","stopLoader","isNDBSEnabled","showLocationConfirm","showGeoLocationInstallerDialog","onPermissionInfo","seekPermission","checkGeoLocation$","isLocationFailed","errorResponse","getLocationDetailsfromGDS","logGenericFailureResults","logGeoLocationError","showGeoLocationError","gdsUrl","startGDSDate","processGDSResponse","isLocationAvailable","handleUnavailableLocation","locationStatus","handleValidLocation","handleInvalidLocation","getDeviceResponse","isRetryableError","refetchLocationOnRetryableErrorCodes","refetchGdsApi","isRetryButtonEnabled","troubleShooterMessages","tsMsgs","errMsg","Retry","retryInterval","modalHandler","openPopup","getDialogClassNames","errorMessages","isQuickbetShowing","addBackdropClass","doTracking","showDownloadAppDialog","isBetRestrictionEnabled","EVENT_GEOLOCATION_ERROR","GEOLOCATION_ERRORCODE","GEOLOCATION_ERRORMESSAGE","errorMsg","errorMessage","regionCode","deviceUUid","deviceModelSolution","regionName","deviceModelOS","getDeviceInfoResponse","ApiServiceExternal","_GeolocationCheckService","CountDownComponent","tickerService","tick","stop","until","ticked","pad","padStart","minutes","hours","_CountDownComponent","LiveTimerComponent","tickerFormattedTime","getOtherScoreboardTypesTime","getTournamentTime","stateLabel","timerVisible","isSuspended","Golf","getPairGameTime","isTimerVisible","timeValue","IntermissionQ1","IntermissionQ2","IntermissionQ3","RegularTimeOver","serverTime","scoreboardTypeChanged","formatterFunc","getTimeFormatter","restartTimer","stopTicker","isType","PeriodGame","SpecialGame","BaseballGame","gameTime","gameTimeInSeconds","startTicker","formatTime","startCounter","updateTickerFormattedTime","elapsedTime","timerSeconds","getTotalSeconds","timeSpan","types","_LiveTimerComponent","PrematchTimerComponent","isDynamicTimer","intervalForRedPrematchTimer","calendarInfoDisplay","MINUTE","HOUR","DAY","warn","formatter","getFormat","dateString","formatDate","abs","formattedTime","innerHTML","getDisplayFormat","calendarFormat","timerFormat","today","buildDate","getFullYear","getMonth","tomorrow","StartsNowFullyFormatted","CalendarTimerFormatted","TimerFormatted","CalendarTimerStartingInFormatted","CalendarTimerStartingIn","TimerStartingIn","CalendarTimerToday","TimerToday","TimerTomorrow","TimerOther","_PrematchTimerComponent","EventTimerComponent","EventTimerComponent_ms_live_timer_0_Template","EventTimerComponent_ng_template_1_Template","prematch_r2","_EventTimerComponent","TimerModule","_TimerModule","SGPBadgeComponent","large","_SGPBadgeComponent","SGPPlusBadgeComponent","_SGPPlusBadgeComponent","domSanitizer","activationInformation","ActivationInformation","acceptTac","ActivationCondition1","ActivationCondition2","ActivationCondition3","ActivationButton","_MyBetsEarlyPayoutTacDialogComponent","DEFAULT_SC_OPTIONS","fullWidth","SEGMENTED_CONTROL_OPTIONS_TOKEN","option_r3","customTemplate","ctx_r3","selectOption","DsSegmentedControl_For_4_Conditional_4_Template","DsSegmentedControl_For_4_Conditional_5_Template","twoLineTruncation","DsSegmentedOption","focusVisible","tabIndex","rxHostPressedListener","setTabIndex","setFocused","setFocusVisible","_DsSegmentedOption","DsSegmentedControl","controlOptions","_focusMonitor","roleType","activeOption","activeOptionChange","_activeOption","isReady","selectedOption","optionList","toArray","_activateSelectedOption","tabLabels","monitor","focusOrigin","_f","_g","_h","_setHighlightWidthAndXPost","stopMonitoring","_selectFirstOption","firstOption","scContainer","setProperty","onKeydown","currentIndex","newIndex","newOption","focusOption","opt","focusVia","DsSegmentedControl_For_4_Template","_forTrack0","_DsSegmentedControl","DsSegmentedControlModule","_DsSegmentedControlModule","NgxPopperjsContentComponent_div_2_Template","NgxPopperjsContentComponent_div_3_Template","NgxPopperjsTriggers","NgxPopperjsContentComponent","_NgxPopperjsContentComponent","elRef","_viewRef","klass","autoUpdate","appendToParent","arrowElement","arrowLen","floatingOffset","boundaryMiddleware","flip","limitShift","popperOptions","boundariesElement","autoPlacement","computePosition","middlewareData","placement","side","staticSide","ruleValue","$style","styleContent","NgStyle","NGX_POPPERJS_DEFAULTS","NgxPopperjsUtils","_NgxPopperjsDirective","_vcr","_popperDefaults","popperRef","toElement","popperContentView","overflowY","isScrollable","NgxPopperjsDirective","NgxPopperjsPlacements","provideNgxPopperjsOptions","NgxPopperjsModule","_NgxPopperjsModule","popperBaseOptions","copyright","CopyrightComponent","CopyrightComponent_Conditional_0_Template","TrustAsHtmlPipe","_CopyrightComponent","isObject","extend","src","ssrDocument","getDocument","doc","ssrWindow","getWindow","win","classesToTokens","deleteProps","object","nextTick","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","isNode","to","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","startPosition","dir","isOutOfBound","progress","easeProgress","currentPosition","getSlideTransformEl","slideEl","elementChildren","elementIsChildOf","isChild","showWarning","elementPrevAll","prevEls","prev","elementNextAll","nextEls","elementStyle","prop","elementIndex","elementParents","parents","elementOuterSize","includeMargins","makeElementsArray","getRotateFix","support","calcSupport","getSupport","deviceCached","calcDevice","_temp","userAgent","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","animationFrame","resizeHandler","createObserver","newWidth","newHeight","_ref2","contentBoxSize","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","ObserverFunc","mutations","observerUpdate","containerParents","eventsEmitter","priority","method","onceHandler","_len","_key","_len2","_key2","updateSize","updateSlides","getDirectionPropertyValue","wrapperEl","slidesEl","swiperSize","rtl","wrongRTL","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","gridEnabled","slideSize","shouldResetSlideSize","slide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","marginLeft","marginRight","boxSizing","clientWidth","newSlidesGrid","slidesGridItem","groupSize","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","speed","activeSlides","getSlideByIndex","updateSlidesOffset","minusOffset","toggleSlideClasses$1","condition","updateSlidesProgress","translate","offsetCenter","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","updateProgress","translatesDiff","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","toggleSlideClasses","updateSlidesClasses","activeIndex","getFilteredSlide","activeSlide","prevSlide","nextSlide","processLazyPreloader","imageEl","slideSelector","lazyEl","unlazy","slidesPerView","activeColumn","preloadColumns","slideIndexLastInView","realIndex","getActiveIndexByTranslate","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","firstSlideInColumn","activeSlideIndex","updateClickedSlide","pathEl","slideFound","getSwiperTranslate","currentTranslate","setTranslate","byController","newProgress","minTranslate","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","isH","setTransition","transitionEmit","step","transitionStart","transitionEnd","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","slideToLoop","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","slidePrev","rtlTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToClickedSlide","slideToIndex","loopCreate","slideRealIndex","initSlides","slidesPerGroup","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","slidesToAdd","loopFix","byMousewheel","allowSlidePrev","allowSlideNext","loopedSlides","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","currentSlideTranslate","loopParams","loopDestroy","newSlidesOrder","loop","setGrabCursor","moving","unsetGrabCursor","grabCursor","closestElement","__closestFrom","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","touches","targetEl","swipingClassHasValue","eventPath","noSwipingSelector","isTargetShadow","startY","shouldPreventDefault","onTouchMove","targetTouch","pageX","pageY","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","loopFixed","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","pathTree","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","onResize","isVirtualLoop","onLoad","onDocumentTouchStart","capture","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","initialized","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","hasLoop","getBreakpoint","containerEl","currentHeight","minRatio","prepareClasses","resultClasses","classNames","addClasses","suffixes","removeClasses","checkOverflow","wasLocked","slidesOffsetBefore","lastSlideRightEdge","checkOverflow$1","defaults","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","extendedDefaults","Swiper","_Swiper","swipers","newParams","mod","swiperParams","property","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","getWrapperSelector","lazyElements","deleteInstance","cleanStyles","newDefaults","modules","prototypeGroup","protoMethod","createElementIfNotDefined","originalParams","checkProps","Navigation","getEl","toggleEl","subEl","nextEl","prevEl","onPrevClick","onNextClick","initButton","destroyButton","_s","targetIsButton","isHidden","classesToSelector","Pagination","pfx","number","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","bulletActiveClass","getMoveDirection","onBulletClick","moveDirection","bullets","firstIndex","midIndex","classesToRemove","suffix","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Autoplay","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","resume","calcTimeLeft","timeLeft","getSlideDelay","activeSlideEl","run","delayForce","currentSlideDelay","proceed","pause","onVisibilityChange","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","shadowEl","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","createShadow","shadowClass","shadowContainer","EffectCoverflow","swiperWidth","swiperHeight","isHorizontal","center","centerOffset","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","shadowBeforeEl","shadowAfterEl","SwiperComponent_Conditional_4_Conditional_0_Template","SwiperComponent_Conditional_4_Conditional_1_Template","swiperOptions","pagination","navigation","SwiperComponent","swiperRef","defaultOptions","showPagination","sanitizeOptions","swiperClass","syncedSwiperParams","extendedModules","autoplay","updatedOptions","paramKey","param","isObjParam","Ne","Fe","SwiperComponent_Conditional_4_Template","_SwiperComponent","SvgComponent","httpClient","displayMode","responseType","svgImage","DOMParser","parseFromString","getElementsByTagName","hasAttribute","viewBox","svg","iconType","defaultAnimation","customAnimation","animationClass","AnimationEnd","HttpClient","_SvgComponent","closeLinkText","commonMessages","PopoverCloseText","PopperContentComponent","closeType","onCloseLinkClick","autoClose","hide","CommonMessages","NgxFloatUiContentComponent","PopperContentComponent_Conditional_1_Template","PopperContentComponent_Conditional_6_Template","cssTextClass","NgxFloatUiModule","_PopperContentComponent","BadgeConfig","badgeConfigFactory","ClientConfig","BadgeType","MenuItemBadgeDirective","badgeClass","counter","badgeConfig","badgeType","Counter","Icon","menuItemsService","getCounter","ɵɵhostProperty","_MenuItemBadgeDirective","AuthstateDirective","vnAuthstate","states","updateView","hasView","onUserstateChange","show","viewRef","rootNodes","workflowType","_AuthstateDirective","TooltipsConfig","tooltipsConfigFactory","TooltipsService","activeTooltip","tooltips","tooltipNames","clearTooltips","addTooltip","tooltipTemplates","getTooltip","nextTooltip","tooltip","showTooltip","previousTooltip","tooltipName","hasNext","hasPrevious","removeTooltip","closeTooltip","_TooltipsService","previous","PopoverPreviousText","PopoverNextText","tooltipsService","TooltipsComponent_Conditional_0_Conditional_5_Template","TooltipsComponent_Conditional_0_Conditional_6_Template","TooltipsComponent_Conditional_0_Conditional_7_Template","TooltipsComponent","onPreviousClick","tooltipItem","offsetParent","TooltipsComponent_Conditional_0_Template","DynamicHtmlDirective","_TooltipsComponent","MenuItemClickHandlerService","menuActionsService","MenuActionsService","Logger","handleMenuTrack","handleMenuAction","processClick","_MenuItemClickHandlerService","additionalClass","MenuItemTextContentComponent","renderHtmlText","MenuItemTextContentComponent_Conditional_0_Template","MenuItemTextContentComponent_Conditional_1_Template","_MenuItemTextContentComponent","MenuItemComponent_Conditional_0_ng_container_0_Template","plainText_r1","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_0_Conditional_2_ng_container_0_Template","badge_r4","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_0_ng_container_1_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_0_Conditional_2_Template","image_r5","badgePosition","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Conditional_0_Conditional_1_ng_container_0_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Conditional_0_Conditional_1_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Conditional_0_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_0_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Template","MenuItemComponent_Conditional_1_a_0_Conditional_3_ng_container_0_Template","vnicon_r6","MenuItemComponent_Conditional_1_a_0_Conditional_4_ng_container_0_Template","svg_r7","MenuItemComponent_Conditional_1_a_0_Conditional_5_ng_container_0_Template","ze","itemDescription","descriptionCssClass","We","MenuItemComponent_Conditional_1_a_0_Conditional_8_ng_container_0_Template","MenuItemComponent_Conditional_1_a_0_Conditional_9_ng_container_0_Template","additionalIcon","badgeTextClass","popper_r8","tooltipClass","tooltipText","click","MenuItemComponent_Conditional_1_a_0_Conditional_2_Template","MenuItemComponent_Conditional_1_a_0_Conditional_3_Template","MenuItemComponent_Conditional_1_a_0_Conditional_4_Template","MenuItemComponent_Conditional_1_a_0_Conditional_5_Template","MenuItemComponent_Conditional_1_a_0_ng_container_6_Template","MenuItemComponent_Conditional_1_a_0_Conditional_7_Template","MenuItemComponent_Conditional_1_a_0_Conditional_8_Template","MenuItemComponent_Conditional_1_a_0_Conditional_9_Template","MenuItemComponent_Conditional_1_a_0_Conditional_10_Template","MenuItemComponent_Conditional_1_a_0_Conditional_11_Template","MenuItemComponent_Conditional_1_a_0_Conditional_12_Template","isActive$","htmlAttributes","linkClasses","DisplayMode","FastIcon","SvgIcon","MenuItemComponent_Conditional_1_a_0_Template","authstate","toolTip","MenuItemComponent_Conditional_2_Conditional_0_Template","ii","MenuItemComponent_ng_template_3_Conditional_0_Conditional_1_ng_container_0_Template","MenuItemComponent_ng_template_3_Conditional_0_Conditional_1_Template","oi","MenuItemComponent_ng_template_3_Conditional_0_Template","iconName","iconName2","li","ci","MenuItemComponent_ng_template_7_Conditional_2_ng_container_0_Template","MenuItemComponent_ng_template_7_Conditional_0_Template","MenuItemComponent_ng_template_7_Conditional_1_Template","MenuItemComponent_ng_template_7_Conditional_2_Template","pi","alt","lazyLoad","di","MenuItemComponent_ng_template_11_Conditional_1_Template","textClass","MenuItemComponent_ng_template_13_Conditional_0_Template","MenuItemComponent","tooltipsConfig","dslService","menuItemClickHandler","addItemClassToLinkClasses","MenuDisplayMode","highlighted","evaluateExpression","getDescription","resources","getDescriptionCssClass","toBoolean","put","PreviousPageUrl","textOnClick","lazyLoadImage","trackEvents","WebAnalyticsEventType","isOnboardingTooltipsEnabled","showOnboardingTooltips","tooltipType","tooltipsShown","OnBtt","onboardings","popperContent","tooltipsArray","expireDate","setFullYear","DslService","toMenuDisplayMode","MenuItemComponent_Conditional_0_Template","MenuItemComponent_Conditional_1_Template","MenuItemComponent_Conditional_2_Template","MenuItemComponent_ng_template_3_Template","MenuItemComponent_ng_template_5_Template","MenuItemComponent_ng_template_7_Template","MenuItemComponent_ng_template_9_Template","MenuItemComponent_ng_template_11_Template","MenuItemComponent_ng_template_13_Template","HtmlAttrsDirective","ImageComponent","NgxFloatUiDirective","_MenuItemComponent","MenuItemActionDirective","menuItemClickHandlerService","_MenuItemActionDirective","MenuItemTrackingDirective","_MenuItemTrackingDirective","DocumentWrapper","getDocumentWrapper","propertyProps","CloudflareStreamComponent","renderer2","platformId","properties","isPlatformBrowser","PLATFORM_ID","CloudflareStreamModule","PageMatrixService","dynamicComponentsRegistry","registerComponent","templateName","VanillaDynamicComponentsCategory","PageMatrix","DynamicComponentsRegistry","_PageMatrixService","PageMatrixDirective","pageMatrixService","corePageMatrixService","templatesRegistered","renderComponent","vnPageMatrix","resolveTemplate","componentRef","setInput","_PageMatrixDirective","PCComponent","trackByName","trackByProp","trackByText","createClass","_PCComponent","NavScrollDirective","menuTimeOut","sectionChange","scrollStop","scrollEventHandler","timeoutId","currentSection","Scroll","removeEventListener","navBarTopHeight","_NavScrollDirective","PMPage","metaTagsService","MetaTagsService","htmlNode","HtmlNode","setHtmlClass","writePageMetadata","clearPageTags","pageDescription","pageMetaTags","setPageTags","pageTitle","htmlClass","setCssClass","_PMPage","ImageMqlHandler","mql","Change","ProfilesDirective","shouldIncludeWidth","vnProfilesWidth","setName","vnProfilesSet","imageProfiles","widthBreakpoints","profileSrc","vnProfilesSrc","media","absUrl","matchMedia","setImage","_ProfilesDirective","titleLink","PCComponentHeaderV2Component_ng_template_0_Conditional_0_Template","PCComponentHeaderV2Component_ng_template_0_Conditional_1_Template","PCComponentHeaderV2Component_Case_2_ng_container_1_Template","titleClass","content_r2","PCComponentHeaderV2Component_Case_3_ng_container_1_Template","PCComponentHeaderV2Component_Case_4_ng_container_1_Template","PCComponentHeaderV2Component_Case_5_ng_container_1_Template","PCComponentHeaderV2Component_Case_6_ng_container_1_Template","PCComponentHeaderV2Component_Case_7_ng_container_1_Template","PCComponentHeaderV2Component","PCComponentHeaderV2Component_ng_template_0_Template","PCComponentHeaderV2Component_Case_2_Template","PCComponentHeaderV2Component_Case_3_Template","PCComponentHeaderV2Component_Case_4_Template","PCComponentHeaderV2Component_Case_5_Template","PCComponentHeaderV2Component_Case_6_Template","PCComponentHeaderV2Component_Case_7_Template","_PCComponentHeaderV2Component","PCMenuItemComponent_Conditional_2_Conditional_1_Template","PCMenuItemComponent_Conditional_2_Conditional_2_Template","PCMenuItemComponent_Conditional_3_For_2_ng_container_0_Template","subItem_r4","level","PCMenuItemComponent_Conditional_3_For_2_Template","ɵɵcomponentInstance","PCMenuItemComponent","menuActionService","findFirstNonEmpty","clickAction","nonEmpty","PCMenuItemComponent_Conditional_2_Template","PCMenuItemComponent_Conditional_3_Template","DynamicComponentDirective","_PCMenuItemComponent","PM1ColPageComponent_For_1_ng_container_0_Template","child_r1","onBackClick","PCTextWithHeaderBarComponent_Conditional_1_Conditional_3_Template","customHeaderClass","onHistoryBack","PCHeaderForMppPageComponent_Conditional_1_Conditional_3_Template","PCImageComponent_ng_template_1_Conditional_0_Template","PCImageComponent_Conditional_4_Conditional_0_ng_container_1_Template","imageLink","pic_r2","PCImageComponent_Conditional_4_Conditional_1_Conditional_0_Template","PCImageComponent_Conditional_4_Conditional_0_Template","PCImageComponent_Conditional_4_Conditional_1_Template","PCImageTextComponent_Conditional_1_ng_template_0_Conditional_0_Template","PCImageTextComponent_Conditional_1_Conditional_2_ng_container_1_Template","PCImageTextComponent_Conditional_1_Conditional_3_Conditional_0_Template","PCImageTextComponent_Conditional_1_ng_template_0_Template","PCImageTextComponent_Conditional_1_Conditional_2_Template","PCImageTextComponent_Conditional_1_Conditional_3_Template","onPlay","onPause","controls","muted","poster","imageProfilesSet","PCTeaserComponent_Conditional_1_ng_template_1_Conditional_0_Template","PCTeaserComponent_Conditional_1_Conditional_3_ng_container_1_Template","PCTeaserComponent_Conditional_1_Conditional_4_Conditional_0_Template","PCTeaserComponent_Conditional_1_ng_template_1_Template","PCTeaserComponent_Conditional_1_Conditional_3_Template","PCTeaserComponent_Conditional_1_Conditional_4_Template","imageOverlay","overlayImageProfilesSet","imageOverlayClass","optionalText","class_r5","text_r4","PCTeaserComponent_ng_template_8_Conditional_0_Case_0_Template","PCTeaserComponent_ng_template_8_Conditional_0_Case_1_Template","PCTeaserComponent_ng_template_8_Conditional_0_Case_2_Template","PCTeaserComponent_ng_template_8_Conditional_0_Case_3_Template","PCTeaserComponent_ng_template_8_Conditional_0_Case_4_Template","PCTeaserComponent_ng_template_8_Conditional_0_Case_5_Template","tag_r6","PCTeaserComponent_ng_template_8_Conditional_0_Template","PCContainerComponent_For_2_ng_container_0_Template","child_r2","PCComponentFolderComponent_For_2_ng_container_0_Template","menuItem_r2","PCMenuComponent_Conditional_1_For_2_Template","PCCarouselComponent_For_2_ng_container_1_Template","PCScrollMenuComponent_For_6_ng_container_0_Template","child_r4","PM1ColPageComponent","pageClass","pageId","PM1ColPageComponent_For_1_Template","_PM1ColPageComponent","PCTextComponent","PCTextComponent_Conditional_0_Template","_PCTextComponent","PCTextWithHeaderBarComponent","headerBarService","showCustomHeaderTemplate","referrer","history","back","goToLastKnownProduct","welcomeOverlayUrl","previousUrl","HeaderBarService","PCTextWithHeaderBarComponent_Conditional_0_Template","PCTextWithHeaderBarComponent_Conditional_1_Template","LhHeaderBarComponent","_PCTextWithHeaderBarComponent","PCHeaderForMppPageComponent","productHomepages","promo","goTo","isBackNavigation","ProductHomepagesConfig","PCHeaderForMppPageComponent_Conditional_0_Template","PCHeaderForMppPageComponent_Conditional_1_Template","_PCHeaderForMppPageComponent","pcToggleCount","PCToggleComponent","PCToggleComponent_Conditional_0_Template","_PCToggleComponent","PCImageComponent","PCImageComponent_Conditional_0_Template","PCImageComponent_ng_template_1_Template","PCImageComponent_Conditional_3_Template","PCImageComponent_Conditional_4_Template","_PCImageComponent","PCImageTextComponent","PCImageTextComponent_Conditional_0_Template","PCImageTextComponent_Conditional_1_Template","PCImageTextComponent_Conditional_2_Template","_PCImageTextComponent","PCVideoComponent","playing","video","videoSrc","PCVideoComponent_Conditional_0_Template","PCVideoComponent_Conditional_1_Template","_PCVideoComponent","PCTeaserComponent","subtitleTag","summaryTag","subtitleClasses","summaryClasses","additionalSubtitleClass","additionalSummaryClass","subtitleClass","summaryClass","PCTeaserComponent_Conditional_1_Template","PCTeaserComponent_Conditional_2_Template","PCTeaserComponent_ng_container_4_Template","PCTeaserComponent_ng_container_5_Template","PCTeaserComponent_Conditional_6_Template","PCTeaserComponent_Conditional_7_Template","PCTeaserComponent_ng_template_8_Template","title_r7","_PCTeaserComponent","PCContainerComponent","PCContainerComponent_Conditional_0_Template","PCContainerComponent_For_2_Template","_PCContainerComponent","PCComponentFolderComponent","PCComponentFolderComponent_Conditional_0_Template","PCComponentFolderComponent_For_2_Template","maxItems","SlicePipe","_PCComponentFolderComponent","PCMenuComponent","destroySubject","currentUrl","menu","activeChain","findActiveChain","activeLeaf","pcMenuItems","pcMenu","boundingRect","scrollX","scrollBy","chain","childChain","PCMenuComponent_Conditional_0_Template","PCMenuComponent_Conditional_1_Template","_PCMenuComponent","PCRegionalComponent","PCRegionalComponent_Conditional_0_Template","PCRegionalComponent_ng_container_1_Template","_PCRegionalComponent","PCRawTextComponent","_PCRawTextComponent","PCRawImageComponent","PCRawImageComponent_Conditional_0_Template","_PCRawImageComponent","PCCarouselComponent","disableOnInteraction","stopOnLastSlide","pauseOnMouseEnter","pauseOnHover","arrows","dots","paramVal","slidesCount","PCCarouselComponent_For_2_Template","_PCCarouselComponent","DEFAULT_MENU_TIMEOUT","PCScrollMenuComponent","menuTimeoutMs","sectionChanged","sectionId","PCScrollMenuComponent_For_3_Template","PCScrollMenuComponent_For_6_Template","menuItems","_PCScrollMenuComponent","ContentFilterComponent","embeddableComponentsService","originalAttributes","originalHtmlString","dynamicHtml","createDynamicHtml","ngDoCheck","EmbeddableComponentsService","attrs","_ContentFilterComponent","PageMatrixBootstrapService","registerEmbeddableComponent","_PageMatrixBootstrapService","PageMatrixComponent","contentService","setContent","contentItem","getJsonFiltered","ContentService","PageMatrixComponent_ng_container_0_Template","_PageMatrixComponent","ContentMessagesTrackingService","trackedLoadEvents","trackMessageLoaded","trackContentItemEvent","trackMessageClosed","_ContentMessagesTrackingService","closeMessage","ContentMessageComponent","contentMessagesTrackingService","setHtmlCssClass","closeIcon","closeOnMessageClick","showOnNextSession","showOnNextLogin","closeAction","invoke","MenuActionOrigin","queryStringKey","htmlTagClass","ContentMessageComponent_Conditional_1_Template","ContentMessageComponent_Conditional_2_Template","messageClass","messageIcon","_ContentMessageComponent","CloseMessageComponent","_CloseMessageComponent","ContentMessagesBootstrapService","_ContentMessagesBootstrapService","ContentMessagesService","generateExpiryDate","days","getMessages","closedCookieKey","evaluateFullOnServer","getClosedMessageNames","cookieKey","cookieNames","ClsdP","ClsdS","ClsdL","getQueryCollection","markMessageAsClosed","writeOriginalCookie","additionalCookieName","cookieName","addToQueryCollection","additionalCookieValue","additionalCookieExpireDays","_ContentMessagesService","message_r3","ContentMessagesComponent_Conditional_0_For_2_Template","messagesToShow","ContentMessagesComponent","messagesService","UserLoginEvent","refreshMessagesToShow","backdropClick","writeCookieOnOverlayClick","dispose","dynamicValues","setDynamicContentValues","toggleClassForHtmlNode","closedMsgNames","cssClassForHtmlNode","placeholder","Key","Value","OverlayRef","ContentMessagesComponent_Conditional_0_Template","_ContentMessagesComponent","LabelSwitcherConfig","labelSwitcherConfigFactory","LabelSwitcherTrackingService","trackConfirmationOverlay","positionEvent","trackDropDown","labelEvent","_LabelSwitcherTrackingService","LabelSwitcherService","toastrQueueService","geoLocationService","authService","eventsService","dateTimeService","currentLabelItemEvent","_items","currentLabelItemEvent$","currentGeoLocationItem","stateClient","currentLabelItem","_currentLabelItem","prepareItems","checkForContentErrors","showToasters","persistStayInState","newEvents","VanillaEventNames","ToastrClosed","toastrContent","getCookieName","setCookieExpiration","switchLabel","Overlay_Ok_Epcot","logout","StateChanged","LOCATION","stateCode","redirectAfterLogout","main","domain","infoRemote","showChangeLabelToaster","ShowChangeLabelSuccess","ToastrType","ChangeLabelSuccess","ToastrSchedule","Immediate","placeholders","errorRemote","stayInStateAlreadyChosen","ChangeLabel","originstate","isRestrictedAccessCondition","isToastAlreadyShownInState","RestrictedAccess","addStateToToast","stateName","setHours","toastKey","ToastShownInStates","ToastrQueueService","AuthService","EventsService","DateTimeService","_LabelSwitcherService","LabelSwitcherBootstrapService","MenuAction","SHOW_LABEL_SWITCHER_OVERLAY","_LabelSwitcherBootstrapService","item_r3","LabelSwitcherComponent_Conditional_0_Conditional_2_Conditional_1_Template","showLabels","hideFlag","item_r5","LabelSwitcherComponent_Conditional_0_Conditional_3_For_2_Template","labelSwitcherService","LabelSwitcherComponent_Conditional_0_Conditional_1_Template","LabelSwitcherComponent_Conditional_0_Conditional_2_Template","LabelSwitcherComponent_Conditional_0_Conditional_3_Template","labelSwitcherConfig","Label_Switcher_Heading","LabelSwitcherComponent","LabelSwitcherComponent_Conditional_0_Template","OverlayModule","_LabelSwitcherComponent","ResponsiveFooterContent","footerContentFactory","FooterMenuItemComponent","Footer","_FooterMenuItemComponent","expandableModeIcons","collapsed","FooterMenuSectionComponent_Conditional_0_Conditional_1_Template","expandableModeEnabled","FooterMenuSectionComponent_Conditional_1_For_1_Template","FooterMenuSectionComponent","sectionClass","footerClass","FooterMenuSectionComponent_Conditional_0_Template","FooterMenuSectionComponent_Conditional_1_Template","_FooterMenuSectionComponent","HelpButtonComponent","HelpButtonComponent_Conditional_0_Template","_HelpButtonComponent","item_r1","helpButton","FooterComponent_Conditional_0_Conditional_11_Conditional_0_Template","footerTopItems","seoSection_r3","FooterComponent_Conditional_0_Conditional_17_Conditional_0_Template","contentMessages","logoSection_r4","FooterComponent_Conditional_0_Conditional_18_For_2_Template","trackBySectionName","logoSections","FooterComponent_Conditional_0_Conditional_3_Template","FooterComponent_Conditional_0_Conditional_4_Template","FooterComponent_Conditional_0_For_6_Template","FooterComponent_Conditional_0_Conditional_10_Template","FooterComponent_Conditional_0_Conditional_11_Template","FooterComponent_Conditional_0_For_14_Template","FooterComponent_Conditional_0_Conditional_17_Template","FooterComponent_Conditional_0_Conditional_18_Template","showResponsiveLanguageSwitcher","showLabelSwitcher","SlotName","FooterItemsInline","showHelpButton","seoLinks","FooterItems","FooterComponent","dynamicLayoutService","configReady","footerSlot","uiLanguages","evaluateContent","showLanguageSwitcherDslCondition","setContactHtmlClass","setLanguageSwitcherHtmlClass","logos","FooterComponent_Conditional_0_Template","DslPipe","ResponsiveLanguageSwitcherComponent","DynamicLayoutSlotComponent","_FooterComponent","FooterBootstrapService","setComponent","raise","FooterLoaded","allEvents","FooterSlotLoaded","toggleFooter","addComponent","isEnabledCondition","_FooterBootstrapService"],"mappings":"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","x_google_ignoreList":[21,22,100,101,102,103,163,171,172,318,319,320,355,357,358,359,360,361,362,363,364,365,366,367,368,389]}