{"version":3,"file":"chunk-itwatcrt.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, inject } from '@angular/core';\nimport { ActivatedRoute, Data, ResolveFn } from '@angular/router';\n\nimport { Observable, filter, isObservable, of, switchMap } from 'rxjs';\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\nexport function useResolverModel(): Observable {\n return inject(ActivatedRoute).data.pipe(\n filter((data) => 'model' in data),\n switchMap(({ model }) => (isObservable(model) ? model : of(model))),\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, Injector, inject, runInInjectionContext } 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 #injector = inject(Injector);\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.#shouldPreload(route)) {\n return EMPTY;\n }\n\n this.#loading.add(route);\n\n const routeOnPreloadFn = route.data?.onPreload;\n if (typeof routeOnPreloadFn === 'function') {\n runInInjectionContext(this.#injector, routeOnPreloadFn);\n }\n\n return load();\n }\n\n #shouldPreload(route: Route) {\n // Don't preload the same route twice\n if (this.#loading.has(route)) {\n return false;\n }\n\n // Don't preload if the user is on 2G. or if Save-Data is enabled.\n const conn = typeof navigator !== 'undefined' ? (navigator as any).connection : undefined;\n if (conn) {\n if ((conn.effectiveType || '').includes('2g') || conn.saveData) return false;\n }\n\n const routeShouldPreloadFn = route.data?.shouldPreload;\n if (typeof routeShouldPreloadFn === 'function') {\n return runInInjectionContext(this.#injector, routeShouldPreloadFn);\n }\n\n return this.#registry.shouldPrefetch(route);\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","useResolverModel","inject","ActivatedRoute","pipe","switchMap","isObservable","of","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","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$","takeUntilDestroyed","subscribe","onUserLogout$","stopGettingSubscriptions","logger","getLogger","interval","refreshSubscriptions","setIntervalOutsideAngular","get","catchError","err","error","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","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","_SpeculativeLinkPreloader_instances","shouldPreload_fn","router","RouteConfigLoadEnd","preload","EMPTY","routeOnPreloadFn","onPreload","#shouldPreload","conn","effectiveType","saveData","routeShouldPreloadFn","shouldPreload","_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","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]}