{"version":3,"file":"chunk-ek0xcmmc.js","sources":["packages/sports/web/app/src/sitemap/sitemap-routing.ts","packages/sports/web/app/src/router/router.resolver.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/web/app/src/common/epcot-config.directive.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/libs/racing/feature/models/src/win-game-fixture.ts","packages/sports/libs/content-distribution/feature/src/cds-push.models.ts","node_modules/@ngrx/effects/fesm2022/ngrx-effects.mjs","packages/sports/libs/common/core/utils/string-interpolation/src/string-interpolation.pipe.ts","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/web/app/src/numpad/stake-input-mode.strategy.ts","packages/sports/libs/user/feature/src/services/betting-settings.service.ts","packages/sports/web/app/src/common/charset-size.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/design-system/ui/icon-button/src/icon-button.component.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/common/core/utils/math/src/lib/math.utils.ts","packages/sports/libs/user/feature/src/services/user-settings.service.ts","packages/sports/web/app/src/navigation-core/remove-href.directive.ts","packages/sports/web/app/src/navigation-core/navigation-core.module.ts","node_modules/@angular/cdk/fesm2022/clipboard.mjs","packages/vanilla/lib/shared/clipboard/src/clipboard.service.ts","packages/vanilla/lib/shared/share/src/share.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.client-config.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-bootstrap.service.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties-dsl-values-provider.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.feature.ts","packages/vanilla/lib/features/balance-properties/src/balance-properties.models.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance.service.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance-bootstrap.service.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance-dsl-values-provider.ts","packages/vanilla/lib/features/bonus-balance/src/bonus-balance.feature.ts","packages/vanilla/lib/shared/kyc/src/kyc-status.service.ts","packages/sports/web/app/src/arc/arc-message-frequency.service.ts","packages/sports/web/app/src/arc/arc-restriction-tracking.service.ts","packages/sports/libs/user/feature/src/store/actions.ts","packages/sports/web/app/src/arc/arc-message.component.html","packages/sports/web/app/src/arc/arc-message.component.ts","packages/sports/web/app/src/arc/arc.module.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.actions.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.models.ts","packages/sports/web/app/src/navigation-core/pick-uri.model.ts","packages/sports/web/app/src/navigation-core/pick-uri.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.state.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-copy.html","packages/sports/web/app/src/share-my-bet/share-my-bet-copy.component.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-native-message.service.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-onboarding.component.ts","packages/sports/web/app/src/share-my-bet/share-my-bet-onboarding.html","packages/sports/web/app/src/share-my-bet/share-my-bet-state-storage.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.html","packages/sports/web/app/src/share-my-bet/share-my-bet.component.ts","packages/sports/web/app/src/share-my-bet-api/actions.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.epic.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.reducer.ts","packages/sports/web/app/src/share-my-bet/share-my-bet.module.ts","packages/sports/web/app/src/betbuilder/components/badge/sgp-plus-badge/sgp-plus-badge.component.ts","packages/sports/web/app/src/acca-boost-base/acca-boost-ratio.pipe.ts","packages/sports/web/app/src/tokens-base/tokens-calculator.service.ts","packages/sports/web/app/src/tokens-base/tokens-summary.service.ts","packages/sports/libs/new-customer-offer-feature/src/lib/customer-offer.service.ts","packages/sports/libs/account-balance/feature/src/account-balance-logger.service.ts","packages/sports/libs/account-balance/feature/src/account-balance.models.ts","packages/sports/libs/account-balance/feature/src/wallet-store.service.ts","packages/sports/libs/account-balance/feature/src/account-balance.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-tac.service.ts","packages/sports/web/app/src/my-bets/models/early-payout.model.ts","packages/sports/web/app/src/my-bets-base/models/my-bets-response.ts","packages/sports/web/app/src/my-bets-base/models/my-bets-viewmodels.ts","packages/sports/web/app/src/my-bets-base/models/early-payout.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout-helpers.ts","packages/sports/web/app/src/my-bets-base/models/early-payout-subscription-source.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-submit.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-subscription-mapper.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-subscription.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/eps-detailed-logger.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-injection-tokens.ts","packages/sports/web/app/src/my-bets-base/early-payout/early-payout-utils.ts","packages/sports/web/app/src/my-bets-base/models/bet-types.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout-base.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout.service.ts","packages/sports/web/app/src/my-bets-base/early-payout/my-bets-earlypayout.service.factory.ts","packages/sports/common/betslip/model/edit-mybet/edit-bet-init.ts","packages/sports/web/app/src/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/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/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/common/ui/sports-themed-button/src/lib/sports-themed-button.directive.ts","packages/sports/web/app/src/timers/timer-utils.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/common/epcotNotifications/notification.html","packages/sports/web/app/src/common/epcotNotifications/notification.component.ts","packages/sports/web/app/src/betbuilder/components/badge/sgp-badge/sgp-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/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/libs/common/core/utils/timer/src/lib/ticker.service.ts","packages/sports/web/app/src/timers/count-down.component.ts","packages/sports/web/app/src/timers/prematch-timer.component.ts","packages/sports/web/app/src/timers/live-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","node_modules/ngx-popperjs/fesm2022/ngx-popperjs.mjs","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","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":["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 { Type } from '@angular/core';\nimport { Data, ResolveFn } from '@angular/router';\n\nexport class RouteContext implements Data {\n model: TModel;\n}\n\nexport function use<\n TResolver extends {\n resolve: ResolveFn;\n },\n TComponent,\n TModel,\n>(resolver: Type): RouteContext> {\n return {\n model: resolver,\n };\n}\n","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 { 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, 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 { Fixture, OptionMarket, Participant } from '@cds/betting-offer';\nimport { RaceEntity } from '@cds/betting-offer/domain-specific/horse-racing';\nimport { RacingPostFixtureData } from '@cds/betting-offer/domain-specific/horse-racing/racing-post';\nimport { TimeformFixtureData } from '@cds/betting-offer/domain-specific/horse-racing/timeform';\nimport { EventOptionGroup, EventOptionSet } from '@frontend/sports/betting-offer/feature/model';\nimport { Omit } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { WinGameParticipant } from './racing.model';\n\nexport enum NextRaceFilters {\n All = 'all filter',\n Ukireland = 'UK & Ireland filter',\n}\n\ntype ExcludeKeys = 'tournament' | 'scoreboard' | 'games' | 'groupId' | 'liveType' | 'liveAlert' | 'source';\n\nexport type OptionMarketsFixture = Omit;\n\nexport type ParticipantsFixture = Omit;\n\nexport type GamesFixture = Omit;\n\nexport interface WinGameFixture extends Omit {\n fixtureId: string;\n participants: WinGameParticipant[];\n optionGroups: EventOptionGroup[];\n optionSets: EventOptionSet[];\n nextRaceFilter?: NextRaceFilters;\n isOptionBet: boolean;\n timeform?: TimeformFixtureData;\n racingpost?: RacingPostFixtureData;\n}\n\nexport interface ParticipantFixture extends WinGameFixture {\n participants: TParticipant[];\n}\n\nexport type WinGameFixturePreview = Omit;\n\nfunction getFixtureId(compoundFixtureId: string): string {\n return compoundFixtureId.split(':').pop() ?? compoundFixtureId;\n}\n\nfunction mapParticipant(input: Participant): WinGameParticipant {\n return {\n ...input,\n id: input.id ?? 0,\n };\n}\n\nfunction createWinGameParticipant(input: Participant): WinGameParticipant {\n return mapParticipant(input);\n}\n\nexport function createParticipantWithTimeFormData(input: Participant, timeform?: TimeformFixtureData): WinGameParticipant {\n const result = mapParticipant(input);\n result.timeformInfo = timeform && input.id ? { ...timeform.horses[input.id] } : undefined;\n\n return result;\n}\n\nexport function createParticipantWithRacingPostData(input: Participant, racingPost?: RacingPostFixtureData): WinGameParticipant {\n const result = mapParticipant(input);\n if (racingPost?.horses && input.id) {\n result.racingPostInfo = {\n horseData: { ...racingPost.horses[input.id], hasTopStarRating: false },\n greyhoundsData: { ...racingPost.greyhounds[input.id] },\n };\n }\n\n return result;\n}\n\nexport function toWinGameFixture(fixture: Fixture): WinGameFixture {\n return {\n ...fixture,\n fixtureId: getFixtureId(fixture.id),\n participants: (fixture.participants || []).map((p) => createWinGameParticipant(p)),\n optionGroups: [],\n optionSets: [],\n isOptionBet: hasOptionMarkets(fixture.optionMarkets),\n };\n}\n\nexport function toHorseRacingTimeFormFixture(horseRacingEntity: RaceEntity): WinGameFixture {\n const timeform: TimeformFixtureData = horseRacingEntity.timeform || { horses: {} };\n const fixture = horseRacingEntity.fixture;\n\n return {\n ...fixture,\n fixtureId: getFixtureId(fixture.id),\n participants: (fixture.participants || []).map((_) => createParticipantWithTimeFormData(_, timeform)),\n timeform,\n optionGroups: [],\n optionSets: [],\n isOptionBet: hasOptionMarkets(fixture.optionMarkets),\n };\n}\n\nexport function toRacingPostFixture(horseRacingEntity: RaceEntity): WinGameFixture {\n const racingPost: RacingPostFixtureData = horseRacingEntity.racingPost ?? { horses: {}, greyhounds: {} };\n const fixture = horseRacingEntity.fixture;\n\n return {\n ...fixture,\n fixtureId: getFixtureId(fixture.id),\n participants: (fixture.participants || []).map((_) => createParticipantWithRacingPostData(_, racingPost)),\n racingpost: racingPost,\n optionGroups: [],\n optionSets: [],\n isOptionBet: hasOptionMarkets(fixture.optionMarkets),\n };\n}\n\nexport function toRacingFixturePreview(fixture: Fixture): WinGameFixturePreview {\n return toWinGameFixture(fixture);\n}\n\nfunction hasOptionMarkets(optionMarkets: OptionMarket[]): boolean {\n return !!optionMarkets?.length;\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","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, 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 { 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, OnDestroy } from '@angular/core';\n\nimport { MediaQueryService } from '@frontend/vanilla/core';\nimport { Observable, ReplaySubject, Subscription, of } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport enum StakeInputMode {\n Field = 1,\n Typing = 2,\n}\n\nexport abstract class StakeInputModeStrategy {\n abstract get inputMode(): Observable;\n}\n\n@Injectable()\nexport class FieldStakeInputModeStrategy extends StakeInputModeStrategy {\n get inputMode(): Observable {\n return of(StakeInputMode.Field);\n }\n}\n\n@Injectable()\nexport class TypingStakeInputModeStrategy extends StakeInputModeStrategy {\n get inputMode(): Observable {\n return of(StakeInputMode.Typing);\n }\n}\n\n@Injectable()\nexport class DynamicInputModeStrategy extends StakeInputModeStrategy implements OnDestroy {\n private subscription: Subscription;\n private subject$: ReplaySubject = new ReplaySubject();\n\n constructor(private mediaService: MediaQueryService) {\n super();\n\n this.subscription = this.mediaService\n .observe()\n .pipe(\n map(() => (this.mediaService.isActive('gt-md') ? StakeInputMode.Typing : StakeInputMode.Field)),\n distinctUntilChanged(),\n )\n .subscribe(this.subject$);\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n get inputMode(): Observable {\n return this.subject$.asObservable();\n }\n}\n","import { 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 { 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 { 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","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, computed, signal } from '@angular/core';\n\nimport { DsButtonBase } from '@frontend/ui/shared';\n\nexport const DS_ICON_BUTTON_VARIANT_ARRAY = ['flat', 'filled', 'outline', 'flat-reduced'] as const;\nexport type DsIconButtonVariant = (typeof DS_ICON_BUTTON_VARIANT_ARRAY)[number];\n\nexport const DS_ICON_BUTTON_KIND_ARRAY = ['primary', 'secondary', 'tertiary', 'utility'] as const;\nexport type DsIconButtonKind = (typeof DS_ICON_BUTTON_KIND_ARRAY)[number];\n\nexport const DS_ICON_BUTTON_SIZES_ARRAY = ['small', 'medium', 'large'] as const;\nexport type DsIconButtonSizes = (typeof DS_ICON_BUTTON_SIZES_ARRAY)[number];\n\n@Component({\n selector: 'button[ds-icon-button], a[ds-icon-button]',\n standalone: true,\n template: `\n \n \n \n `,\n styleUrl: './icon-button.component.scss',\n host: {\n 'class': 'ds-icon-button',\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 DsIconButton 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: DsIconButtonVariant) {\n this._variant.set(value);\n }\n get variant() {\n return this._variant();\n }\n @Input() set size(value: DsIconButtonSizes) {\n this._size.set(value);\n }\n get size() {\n return this._size();\n }\n @Input() set kind(value: DsIconButtonKind) {\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 {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n} from '@angular/core';\n\nimport { Subject, debounceTime } from 'rxjs';\n\n@Component({\n selector: 'ms-dynamic-font-resizer',\n template: '{{value}}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class DynamicFontResizerComponent implements AfterViewInit, OnInit, OnDestroy {\n @Input() value: string;\n @Input() defaultSize: number;\n\n @HostBinding('style.font-size.em') fontSize?: number;\n @ViewChild('resizerContainer') private resizerContainer: ElementRef;\n\n private resizeObserver: ResizeObserver;\n private parentResized$: Subject;\n private initialWidth: number;\n private initialFontSize: number;\n\n constructor(private changeDetectorRef: ChangeDetectorRef) {\n this.parentResized$ = new Subject();\n\n this.resizeObserver = new ResizeObserver((entries) => this.handleResize(entries));\n\n this.parentResized$.pipe(debounceTime(10)).subscribe((parent) => this.changeFontSize(parent));\n }\n\n ngOnInit(): void {\n this.fontSize = this.defaultSize;\n }\n\n ngOnDestroy(): void {\n this.resizeObserver.disconnect();\n this.parentResized$.complete();\n }\n\n ngAfterViewInit(): void {\n const nativeTextContent = this.resizerContainer?.nativeElement;\n\n if (!nativeTextContent) {\n return;\n }\n\n const parentElement = nativeTextContent.parentElement?.parentElement;\n\n if (!parentElement) {\n return;\n }\n\n this.resizeObserver.observe(parentElement);\n this.initialFontSize = this.fontSize ?? 0;\n this.initialWidth = this.resizerContainer?.nativeElement.getBoundingClientRect().width;\n }\n\n changeFontSize(parentWidth: number): void {\n const currentFontSize = this.fontSize ?? this.defaultSize;\n const textLength = this.value.length;\n const initialWidth = this.initialWidth;\n const initialFontSize = this.initialFontSize;\n\n const newFontSize = this.calculateFontSizeFromBounds(parentWidth, initialWidth, textLength, initialFontSize, this.defaultSize);\n\n if (newFontSize === currentFontSize) {\n return;\n }\n\n this.fontSize = newFontSize;\n this.changeDetectorRef.markForCheck();\n }\n\n private calculateFontSizeFromBounds(\n parentWidth: number,\n initialWidth: number,\n textLength: number,\n initialFontSize: number,\n defaultFontSize: number,\n ): number {\n const targetFontSize = this.calculateRelationalFontSize(parentWidth, initialWidth, textLength, initialFontSize);\n\n if (Number.isNaN(targetFontSize) || !Number.isFinite(targetFontSize) || targetFontSize > defaultFontSize) {\n return defaultFontSize;\n }\n\n return Math.floor(targetFontSize * 100) / 100;\n }\n\n private calculateRelationalFontSize(targetTextWidth: number, initialTextWidth: number, textLength: number, initialFontSize: number): number {\n // Calculating font size in relation to character width with following formular:\n // targetSpacePerChar : targetFontSize = spacePerChar : currentFontSize\n // targetFontSize = currentFontSize * targetSpacePerChar / spacePerChar\n\n const initialSpacePerChar = initialTextWidth / textLength;\n const targetSpacePerChar = targetTextWidth / textLength;\n\n return (initialFontSize * targetSpacePerChar) / initialSpacePerChar;\n }\n\n private handleResize(entries: ResizeObserverEntry[]): void {\n if (entries.length === 0) {\n return;\n }\n\n const parent = entries[0];\n\n if (!parent) {\n return;\n }\n\n this.parentResized$.next(parent.contentRect.width);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BettingSettingsService, UserService } from '@frontend/sports/user/feature';\nimport { Observable, map } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class IncrementalStakesService {\n constructor(\n private stakeConfig: StakeConfig,\n private userService: UserService,\n private bettingSettingsService: BettingSettingsService,\n ) {}\n\n getValues$(): Observable {\n return this.bettingSettingsService.bettingSettings$.pipe(\n map((bettingSettings) => {\n if (bettingSettings.keypadIncrementalStakes?.length) {\n return bettingSettings.keypadIncrementalStakes;\n }\n\n return this.getDefaultValues();\n }),\n );\n }\n\n getDefaultValues(): number[] {\n const currency = this.userService.currency.toLowerCase();\n\n return this.stakeConfig.addToStakeValues[currency] || this.stakeConfig.addToStakeValues.default;\n }\n}\n","import { InjectionToken, inject } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { UserService } from '@frontend/sports/user/feature';\n\nimport { NumpadValidationParams } from './model';\nimport { validationParamsFactory } from './numpad.module';\n\nexport const NUMPAD_VALIDATION_PARAMETERS_TOKEN = new InjectionToken('NUMPAD_VALIDATION_PARAMETERS_TOKEN', {\n providedIn: 'root',\n factory: () => {\n const stakeConfig = inject(StakeConfig);\n const userService = inject(UserService);\n\n return validationParamsFactory(stakeConfig, userService);\n },\n});\n","import { NumberSymbol, getLocaleNumberSymbol } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\n\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\n\nimport { NumpadValidationParams } from './model';\nimport { NUMPAD_VALIDATION_PARAMETERS_TOKEN } from './numpad-validation-parameters';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadUtilsService {\n protected readonly localeSeparator: string;\n protected readonly zeroRegex = new RegExp(`^(0+)(\\\\d+)`);\n protected readonly validateRegex: RegExp;\n protected readonly splitRegex = new RegExp(`^-?(\\\\d*)([.,])?(\\\\d*)$`);\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n @Inject(NUMPAD_VALIDATION_PARAMETERS_TOKEN) private validationParameters: NumpadValidationParams,\n private currency: MoneyService,\n ) {\n this.localeSeparator = getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n\n this.validateRegex = new RegExp(\n `^\\\\d{0,${this.validationParameters.maxLeadingDigits}}([.,](\\\\d{0,${this.validationParameters.maxTrailingDigits}})?)?$`,\n );\n }\n\n isValidInput(input: string): boolean {\n return (this.isSeparator(input) || this.validateRegex.test(input)) && !this.zeroRegex.test(input);\n }\n\n normalizeInput(input: string): string {\n const matches = input.match(this.splitRegex);\n if (!matches || matches.length !== 4 || matches[0] === '') {\n return '';\n }\n\n let output = matches[1];\n\n if (this.zeroRegex.test(output)) {\n output = output.replace(this.zeroRegex, '$2');\n }\n\n if (matches[2]) {\n output += this.localeSeparator;\n }\n\n if (this.isSeparator(output)) {\n output = '0' + this.localeSeparator;\n }\n\n if (matches[3]) {\n output += matches[3].substr(0, this.validationParameters.maxTrailingDigits);\n }\n\n return output;\n }\n\n isSeparator(input: string): boolean {\n return /^[.,]$/.test(input);\n }\n\n hasSeparator(input: string): boolean {\n return !!input && /^\\d*[.,]\\d*$/.test(input);\n }\n\n addLocaleSeparator(input: string): string {\n return (input || '').replace(/[.,]/g, this.localeSeparator);\n }\n\n /**\n * Returns the number string formatted with added decimals if the number is a decimal number or alwaysAddDecimals is true.\n * Returns the unformatted input if it is 0 or an empty string.\n */\n toFormattedValue(input: string, alwaysAddDecimals: boolean = false): string {\n if (!this.isValidNumberString(input)) {\n return input;\n }\n\n input = this.addDecimals(input, alwaysAddDecimals);\n\n return this.addLocaleSeparator(input);\n }\n\n /**\n * Returns the number string formatted with thousands separators.\n * Returns an empty string if the input is 0 or an empty string.\n */\n addThousandsSeparators(input: string): string {\n if (!this.isValidNumberString(input)) {\n return '';\n }\n\n const returnValue = this.currency.transform(input, false, this.validationParameters.maxTrailingDigits);\n\n if (this.hasSeparator(input)) {\n return returnValue;\n }\n\n const replace = `[,.]0{1,${this.validationParameters.maxTrailingDigits}}$`;\n const regex = new RegExp(replace, 'g');\n\n return returnValue.replace(regex, '');\n }\n\n private addDecimals(input: string, alwaysAddDecimals: boolean = false): string {\n if (this.isValidNumberString(input) && (alwaysAddDecimals || this.hasSeparator(input))) {\n return Number(input).toFixed(this.validationParameters.maxTrailingDigits);\n }\n\n return input;\n }\n\n private isValidNumberString(input: string) {\n return input !== '0' && !this.isEmptyOrWhiteSpaceString(input);\n }\n\n private isEmptyOrWhiteSpaceString(input: string) {\n return input.trim() === '';\n }\n}\n","import { NumpadService } from './numpad.service';\n\nexport interface ISelectionProvider {\n getSelection(currentValue: string): { start: number; end: number };\n}\n\nexport interface StakeModel {\n value: string;\n formatted: string;\n currencyFormatted: string;\n isEmpty: boolean;\n numpadInput?: number;\n position?: number;\n}\n\nexport interface NumpadState {\n stake: StakeModel;\n isOpened: boolean;\n selectionStart?: number;\n operation?: NumpadOperation;\n confirmed?: boolean;\n}\n\nexport const defaultNumpadState: NumpadState = {\n isOpened: false,\n stake: {\n formatted: '',\n value: '',\n currencyFormatted: '',\n isEmpty: true,\n numpadInput: undefined,\n position: undefined,\n },\n};\n\nexport interface NumpadHostOptions {\n id: string;\n numpadService: NumpadService;\n}\n\nexport interface KeypadOptions {\n id: string;\n showConfirm: boolean;\n showIncrementalStakes: boolean;\n focusOnLoad: boolean;\n numpadSource: NumpadSource;\n}\n\nexport interface NumpadValidationParams {\n maxLeadingDigits: number;\n maxTrailingDigits: number;\n}\n\nexport enum NumpadSource {\n BetSlip = 'BetSlip',\n QuickBet = 'Quick Bet',\n BettingSettings = 'Betting Setting',\n EditMyBet = 'Edit My Bet',\n AutoCashout = '',\n}\n\nexport enum NumpadOperation {\n Open,\n Close,\n Append,\n Increment,\n Remove,\n Type,\n}\n\nexport enum NumpadAction {\n None,\n IncrementalStakeUsed,\n KeypadUsed,\n KeypadTyped,\n}\n\nexport interface StakeChangedEvent {\n action: NumpadAction;\n stake: string;\n}\n\nexport enum Tracking {\n Betting = 'Betting',\n NotApplicable = 'not applicable',\n Opening = 'In-Line KeyPad - Loaded',\n Confirmation = 'OK Button - Clicked',\n Delete = 'Delete Button - Clicked',\n}\n","import { Injectable } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { Observable, Subject } from 'rxjs';\n\nimport { NumpadHostOptions } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadDisplayService {\n private _open = new Subject();\n private _close = new Subject();\n private _isOpen = false;\n private _openedNumpad: Nullable = null;\n\n get open$(): Observable {\n return this._open.asObservable();\n }\n\n get close$(): Observable {\n return this._close.asObservable();\n }\n\n open(options: NumpadHostOptions): void {\n this._openedNumpad = options.id;\n this._isOpen = true;\n\n this._open.next(options);\n }\n\n close(): void {\n if (!this._isOpen) {\n return;\n }\n\n this._openedNumpad = null;\n this._isOpen = false;\n\n this._close.next();\n }\n\n isOpen(id?: string): boolean {\n if (!id) {\n return this._isOpen;\n }\n\n return this._isOpen && id === this._openedNumpad;\n }\n\n tryClose(id: string): void {\n if (this.isOpen(id)) {\n this.close();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { NumpadAction, StakeModel, Tracking } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NumpadTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n getBaseTrackData(): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Betting',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'In-Line KeyPad',\n [trackingConstants.COMPONENT_POSITION_EVENT]: 'In-Line',\n [trackingConstants.COMPONENT_EVENT_DETAILS]: Tracking.NotApplicable,\n [trackingConstants.COMPONENT_URL_CLICKED]: Tracking.NotApplicable,\n };\n }\n\n trackOpening(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Opening,\n });\n }\n\n trackConfirmation(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Confirmation,\n });\n }\n\n trackDeleteButton(location: string): void {\n this.track({\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_ACTION_EVENT]: Tracking.Delete,\n });\n }\n\n trackIncrement(stake: StakeModel, location: string): void {\n const trackingData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'Betting',\n [trackingConstants.COMPONENT_LABEL_EVENT]: 'In-Line KeyPad',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'click',\n [trackingConstants.COMPONENT_POSITION_EVENT]: 'Fixed value button',\n [trackingConstants.COMPONENT_CONTENT_POSITION]: stake.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: stake.numpadInput?.toString(),\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n };\n this.track(trackingData);\n }\n\n getStakeSelectedData(location: string, stake: Optional, action: Optional): Partial {\n return {\n ...this.getBaseTrackData(),\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'Stake Selected',\n [trackingConstants.COMPONENT_POSITION_EVENT]: this.mapAction(action),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: stake || '',\n };\n }\n\n mapAction(action: Optional): string {\n let result = 'Default stake';\n\n switch (action) {\n case NumpadAction.IncrementalStakeUsed:\n result = 'Incremental Stake Quick Stake';\n break;\n case NumpadAction.KeypadTyped:\n result = 'Keyboard typed';\n break;\n case NumpadAction.KeypadUsed:\n result = 'Keypad';\n break;\n }\n\n return result;\n }\n\n private track(additionalTrackData: Partial): void {\n const fullTrackData = { ...this.getBaseTrackData(), ...additionalTrackData };\n\n this.trackingService.track(trackingConstants.EVENT_TRACKING, fullTrackData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Decimal } from 'decimal.js';\n\nimport { NumpadUtilsService } from './numpad-utils.service';\n\n@Injectable({ providedIn: 'root' })\nexport class StakeUpdateService {\n constructor(private utils: NumpadUtilsService) {}\n\n increment(currentValue: string, value: number): string {\n return new Decimal(currentValue || 0).add(value).toString();\n }\n\n remove(value: string, start: number, end: number): { value: string; position: number } {\n if (value.length === 0 || (start === 0 && end === 0)) {\n return {\n value,\n position: 0,\n };\n }\n\n const moreCharactersSelected = start !== end;\n const position = moreCharactersSelected ? start : start ? start - 1 : 0;\n\n const newValue = this.slice(value, position, end);\n\n return {\n value: newValue,\n position,\n };\n }\n\n append(value: string, character: string, start: number, end: number): { value: string; position: number } {\n let newValue = this.slice(value, start, end, character);\n\n if (!this.utils.isValidInput(newValue)) {\n return {\n value,\n position: start,\n };\n }\n\n newValue = this.utils.normalizeInput(newValue);\n\n const allCharactersSelected = end - start === value.length;\n const position = !value.length || allCharactersSelected ? newValue.length : start + 1;\n\n return {\n value: newValue,\n position,\n };\n }\n\n private slice(value: string, start: number, end: number, character?: string): string {\n character = character || '';\n\n return value.slice(0, start) + character + value.slice(end);\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { Injectable, OnDestroy } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { Store } from '@ngrx/store';\nimport { cloneDeep } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject, merge } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport {\n ISelectionProvider,\n KeypadOptions,\n NumpadAction,\n NumpadHostOptions,\n NumpadOperation,\n NumpadState,\n StakeChangedEvent,\n StakeModel,\n defaultNumpadState,\n} from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadTrackingService } from './numpad-tracking.service';\nimport { NumpadUtilsService } from './numpad-utils.service';\nimport { StakeUpdateService } from './stake-update.service';\n\n@Injectable()\nexport class NumpadService implements OnDestroy {\n private serviceDestroyed$ = new Subject();\n private state = new BehaviorSubject(cloneDeep(defaultNumpadState));\n private stake = new Subject();\n private selectionProvider: ISelectionProvider;\n private stakeValues: number[] = [];\n\n keypadOptions: KeypadOptions;\n\n constructor(\n private numpadDisplayService: NumpadDisplayService,\n private updateService: StakeUpdateService,\n private utils: NumpadUtilsService,\n private numpadTrackingService: NumpadTrackingService,\n //todo please remove this pipe, it is out of place.\n private currencypipe: CurrencyPipe,\n private store: Store,\n ) {}\n\n ngOnDestroy(): void {\n this.serviceDestroyed$.next();\n this.serviceDestroyed$.complete();\n }\n\n get state$(): Observable {\n return this.state.asObservable();\n }\n\n get stake$(): Observable {\n return this.stake.asObservable();\n }\n\n get currentState(): NumpadState {\n return this.state.value;\n }\n\n registerSelectionProvider(selectionProvider: ISelectionProvider): void {\n this.selectionProvider = selectionProvider;\n }\n\n confirm(): void {\n if (this.isDynamicNumpad) {\n this.currentState.confirmed = true;\n\n this.numpadDisplayService.close();\n }\n }\n\n open(): void {\n if (this.currentState.isOpened) {\n return;\n }\n\n this.openNumpad();\n }\n\n private shouldSkipUpdate(newValue: Nullable): boolean {\n return Number(this.currentState.stake.value) === Number(newValue || '');\n }\n\n updateStake(value: Nullable, skipNumberCheck?: boolean): void {\n if (!skipNumberCheck && this.shouldSkipUpdate(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value!),\n };\n this.updateState(state);\n }\n\n initialize(value: Nullable, options: KeypadOptions, stakeValues: number[]): void {\n this.keypadOptions = options;\n this.stakeValues = stakeValues;\n\n const state: Partial = {\n stake: this.toStakeModel(value!),\n isOpened: this.keypadOptions.focusOnLoad,\n };\n this.updateState(state);\n\n if (this.isDynamicNumpad) {\n this.subscribe();\n }\n }\n\n type(input: string): void {\n const value = this.utils.normalizeInput(input);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Type),\n operation: NumpadOperation.Type,\n };\n this.updateState(state, true);\n }\n\n appendCharacter(character: string): void {\n if (!this.selectionProvider) {\n return;\n }\n\n const currentValue = this.currentState.stake.formatted;\n const { start, end } = this.selectionProvider.getSelection(currentValue);\n const { value, position } = this.updateService.append(currentValue, character, start, end);\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Append),\n selectionStart: position,\n operation: NumpadOperation.Append,\n };\n\n const emitNewStake = value !== this.currentState.stake.formatted;\n this.updateState(state, emitNewStake);\n }\n\n increment(input: number): void {\n const value = this.updateService.increment(this.currentState.stake.value, input);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Increment, input),\n operation: NumpadOperation.Increment,\n };\n this.updateState(state, true);\n }\n\n removeLastCharacter(): void {\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n\n if (!this.selectionProvider) {\n return;\n }\n\n const currentValue = this.currentState.stake.formatted;\n const { start, end } = this.selectionProvider.getSelection(currentValue);\n const { value, position } = this.updateService.remove(currentValue, start, end);\n\n if (!this.shouldUpdateStake(value)) {\n return;\n }\n\n const state: Partial = {\n stake: this.toStakeModel(value, NumpadOperation.Remove),\n selectionStart: position,\n operation: NumpadOperation.Remove,\n };\n this.updateState(state, true);\n }\n\n private get isDynamicNumpad(): boolean {\n return !!this.keypadOptions.id;\n }\n\n private shouldUpdateStake(value: string): boolean {\n return this.utils.isValidInput(value) && value !== this.currentState.stake.formatted;\n }\n\n private subscribe(): void {\n const onOtherNumpadOpen = this.numpadDisplayService.open$.pipe(filter((options) => this.otherNumpadWasOpened(options)));\n\n merge(this.numpadDisplayService.close$, onOtherNumpadOpen)\n .pipe(\n filter(() => this.currentState.isOpened),\n takeUntil(this.serviceDestroyed$),\n )\n .subscribe(() => this.closeNumpad());\n }\n\n private otherNumpadWasOpened(options: NumpadHostOptions): boolean {\n return this.keypadOptions.id !== options.id || this !== options.numpadService;\n }\n\n private openNumpad(): void {\n this.numpadDisplayService.open({\n id: this.keypadOptions.id,\n numpadService: this,\n });\n\n const state: Partial = {\n stake: this.toStakeModel(this.currentState.stake.value, NumpadOperation.Open),\n isOpened: true,\n confirmed: false,\n operation: NumpadOperation.Open,\n };\n this.updateState(state);\n }\n\n private closeNumpad(): void {\n const state: Partial = {\n stake: this.toStakeModel(this.currentState.stake.value),\n isOpened: false,\n operation: NumpadOperation.Close,\n };\n\n if (state.stake && state.stake.value + '0' === state.stake.formatted) {\n state.stake.value = state.stake.formatted;\n\n this.updateState(state, true);\n }\n this.updateState(state);\n }\n\n private toStakeModel(input: string, operation?: NumpadOperation, numpadInput?: number): StakeModel {\n //TODO formatted vs currencyFormatted ? no clear separation of usage. please justify or at least add some comments.\n // Ideally currencyFormatted should be removed, espiceally if the end goal is using currency pipe, let your view handle it. Don't delegate this to the service.\n // Also currency pipe is encapsulating this part of the logic, and it should remain this way.\n let formatted = '';\n let currencyFormatted = '';\n let isEmpty: boolean;\n let position: number | undefined;\n\n const value = (input || '').replace(',', '.');\n switch (operation) {\n case NumpadOperation.Append:\n case NumpadOperation.Remove:\n case NumpadOperation.Type:\n case NumpadOperation.Increment:\n formatted = currencyFormatted = this.utils.addLocaleSeparator(value);\n isEmpty = this.isZero(value) && value.length === 0;\n position = this.stakeValues.indexOf(numpadInput!) !== -1 ? this.stakeValues.indexOf(numpadInput!) + 1 : undefined;\n break;\n case NumpadOperation.Open:\n formatted = currencyFormatted = this.utils.toFormattedValue(value);\n isEmpty = this.isZero(value) && value.length === 0;\n break;\n default:\n const preFormatted = this.utils.toFormattedValue(value, true);\n formatted = this.utils.addThousandsSeparators(preFormatted);\n //TODO I doubt that the operation have an influence on the transformation on display.\n currencyFormatted = this.currencypipe.transform(value) || '';\n isEmpty = this.isZero(value);\n }\n\n return {\n value,\n formatted,\n currencyFormatted,\n isEmpty,\n numpadInput,\n position,\n };\n }\n\n private updateState(newState: Partial, emitNewStake: boolean = false): void {\n delete this.currentState.selectionStart;\n delete this.currentState.operation;\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n\n this.state.next({\n ...this.currentState,\n ...newState,\n });\n\n if (emitNewStake) {\n this.stake.next({\n stake: this.currentState.stake.value,\n action: this.mapToAction(this.currentState.operation),\n });\n }\n\n this.track(this.currentState);\n }\n\n private mapToAction(operation: NumpadOperation | undefined): NumpadAction {\n if (operation === NumpadOperation.Type) {\n return NumpadAction.KeypadTyped;\n }\n\n if (operation === NumpadOperation.Increment) {\n return NumpadAction.IncrementalStakeUsed;\n }\n\n if (operation === NumpadOperation.Append || operation === NumpadOperation.Remove) {\n return NumpadAction.KeypadUsed;\n }\n\n return NumpadAction.None;\n }\n\n private track(state: NumpadState): void {\n const trackingSource = this.keypadOptions?.numpadSource;\n\n if (!trackingSource) {\n return;\n }\n\n if (state.operation === NumpadOperation.Close && state.confirmed) {\n this.numpadTrackingService.trackConfirmation(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Remove) {\n this.numpadTrackingService.trackDeleteButton(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Open) {\n this.numpadTrackingService.trackOpening(trackingSource);\n }\n\n if (state.operation === NumpadOperation.Increment) {\n this.numpadTrackingService.trackIncrement(state.stake, trackingSource);\n }\n }\n\n private isZero(value: Nullable): boolean {\n return Number(value) === 0;\n }\n}\n","
\n @for (stake of stakeValues(); track stake) {\n \n }\n
\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { map } from 'rxjs/operators';\n\nimport { IncrementalStakesService } from './incremental-stakes.service';\nimport { NumpadUtilsService } from './numpad-utils.service';\nimport { NumpadService } from './numpad.service';\n\ninterface StakeModel {\n value: number;\n title: string;\n}\n\n@Component({\n selector: 'ms-incremental-stakes',\n templateUrl: './incremental-stakes.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IncrementalStakesComponent {\n private stakeValues$ = this.incrementalStakesService.getValues$().pipe(map((values) => values.map((v) => this.mapValue(v))));\n stakeValues = toSignal(this.stakeValues$, { initialValue: [] });\n\n constructor(\n private incrementalStakesService: IncrementalStakesService,\n private numpadService: NumpadService,\n private utils: NumpadUtilsService,\n ) {}\n\n addToStake(stakeToAdd: number): void {\n this.numpadService.increment(stakeToAdd);\n }\n\n private mapValue(value: number): StakeModel {\n return {\n value,\n title: `+${this.utils.toFormattedValue(String(value))}`,\n };\n }\n}\n","
\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\nimport { Optional, isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\n\nimport { StakeValidationResult } from '../betslip-base/stake-validation/stake-validation.models';\n\n@Component({\n selector: 'ms-numpad-error',\n templateUrl: './numpad-error.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadErrorComponent implements OnChanges {\n @Input() error: Optional;\n\n message: SafeHtml | null = null;\n\n @HostBinding('class.clickable') get clickable(): boolean {\n return !!(this.error && isDefined(this.error.callback));\n }\n\n constructor(private trustPipe: TrustPipe) {}\n\n ngOnChanges(changes: ISimpleChanges): void {\n this.message = this.error ? this.trustAsHtml(this.error.message) : null;\n }\n\n onClick(): void {\n if (this.error && this.error.callback) {\n this.error.callback();\n }\n }\n\n private trustAsHtml(message: any): SafeHtml {\n return this.trustPipe.transform(message, 'html');\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\n@Injectable()\nexport class NumpadScrollService {\n closingNumpadRef: Nullable = null;\n\n getClosingNumpadRect(): ClientRect | null {\n return this.closingNumpadRef && this.closingNumpadRef.nativeElement.getBoundingClientRect();\n }\n}\n","
\n \n \n
\n","import { ChangeDetectionStrategy, Component, HostListener } from '@angular/core';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-numpad',\n templateUrl: './numpad.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadComponent {\n constructor(public numpadService: NumpadService) {}\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n }\n}\n","
\n \n \n
\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { StakeValidationResult } from '../betslip-base/stake-validation/stake-validation.models';\nimport { NumpadHostOptions } from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadScrollService } from './numpad-scroll.service';\nimport { NumpadComponent } from './numpad.component';\nimport { NumpadService } from './numpad.service';\n\nexport class NumpadAnimationConfig {\n static maxHeight = 165;\n static duration = 300;\n}\n\n@Component({\n selector: 'ms-numpad-host',\n templateUrl: './numpad-host.html',\n animations: [\n trigger('slideInOut', [\n state(\n 'in',\n style({\n 'max-height': `${NumpadAnimationConfig.maxHeight}px`,\n 'opacity': 1,\n }),\n ),\n state(\n 'out',\n style({\n 'max-height': 0,\n 'opacity': 0,\n }),\n ),\n transition('* => *', animate(`${NumpadAnimationConfig.duration}ms ease-in-out`)),\n ]),\n ],\n providers: [NumpadScrollService],\n})\nexport class NumpadHostComponent implements OnInit, OnDestroy {\n @Input() id: string;\n @Input() error: Nullable;\n\n @ViewChild('numpadhost', { read: ViewContainerRef, static: true })\n private host: ViewContainerRef;\n\n opened = false;\n private removeAfterTransition = false;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private injector: Injector,\n private displayService: NumpadDisplayService,\n private changeDetector: ChangeDetectorRef,\n private scrollService: NumpadScrollService,\n public elementRef: ElementRef,\n ) {}\n\n ngOnInit(): void {\n this.displayService.open$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((options) => this.closeOrOpen(options));\n this.displayService.close$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.closeNumpad());\n }\n\n ngOnDestroy(): void {\n if (this.opened) {\n this.cleanHost();\n\n // Inform display service about destroying and closing keypad\n this.displayService.close();\n }\n }\n\n onTransitionEnd(): void {\n if (!this.removeAfterTransition) {\n return;\n }\n\n this.removeAfterTransition = false;\n this.scrollService.closingNumpadRef = null;\n\n if (this.opened) {\n return;\n }\n\n this.cleanHost();\n }\n\n private cleanHost(): void {\n this.host.remove();\n }\n\n private closeOrOpen(options: NumpadHostOptions): void {\n if (this.id === options.id) {\n if (this.opened) {\n this.cleanHost();\n }\n\n this.createNumpad(options.numpadService);\n } else {\n this.closeNumpad();\n }\n }\n\n private createNumpad(numpadService: NumpadService): void {\n this.createComponent(numpadService);\n\n this.opened = true;\n this.changeDetector.markForCheck();\n }\n\n private createComponent(numpadService: NumpadService): void {\n // When opening and closing the numpad quickly the numpad creation can happen before\n // the old numpad component is removed (onTransitionEnd).\n // This check ensurres that the previous numpad is definitely removed.\n if (this.host.length > 0) {\n this.cleanHost();\n }\n\n this.host.createComponent(NumpadComponent, { index: 0, injector: this.createCustomInjector(numpadService) });\n }\n\n private closeNumpad(): void {\n if (!this.opened) {\n return;\n }\n\n this.scrollService.closingNumpadRef = this.elementRef;\n this.opened = false;\n this.removeAfterTransition = true;\n this.changeDetector.markForCheck();\n setTimeout(this.onTransitionEnd.bind(this), NumpadAnimationConfig.duration);\n }\n\n private createCustomInjector(numpadService: NumpadService): Injector {\n return Injector.create({\n providers: [{ provide: NumpadService, useValue: numpadService }],\n parent: this.injector,\n });\n }\n}\n","
\n \n \n \n \n \n \n \n @if (numpadService.keypadOptions.showConfirm) {\n \n }\n
\n","import { NumberSymbol, getLocaleNumberSymbol } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Inject, LOCALE_ID } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-numpad-keys',\n templateUrl: './numpad-keys.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumpadKeysComponent {\n readonly separator: string;\n\n constructor(\n public sitecore: Sitecore,\n public numpadService: NumpadService,\n @Inject(LOCALE_ID) locale: string,\n ) {\n this.separator = getLocaleNumberSymbol(locale, NumberSymbol.CurrencyDecimal);\n }\n\n tap(key: string): void {\n this.numpadService.appendCharacter(key);\n }\n\n remove(): void {\n this.numpadService.removeLastCharacter();\n }\n\n ok(): void {\n this.numpadService.confirm();\n }\n}\n","import { DestroyRef, Directive, Input, OnInit, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { SmoothScroll } from '@frontend/sports/common/core/feature/smooth-scroll';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\nimport { ScrollContainerService } from '@frontend/sports/common/core/utils/scroll-container';\nimport { WINDOW } from '@frontend/vanilla/core';\n\nimport { NumpadHostOptions } from './model';\nimport { NumpadDisplayService } from './numpad-display.service';\nimport { NumpadAnimationConfig, NumpadHostComponent } from './numpad-host.component';\nimport { NumpadScrollService } from './numpad-scroll.service';\n\n@Directive({\n selector: '[msNumpadScroll]',\n})\nexport class NumpadScrollDirective implements OnInit {\n @Input('msNumpadScroll') scrollEnabled = true;\n\n private currentNumpadRect: Nullable = null;\n private closingNumpadRect: Nullable = null;\n private scrollContainerRect: Nullable = null;\n private pickRect: Nullable = null;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private numpadHostComponent: NumpadHostComponent,\n private numpadDisplayService: NumpadDisplayService,\n private numpadScrollService: NumpadScrollService,\n private scrollContainerService: ScrollContainerService,\n private smoothScrollService: SmoothScroll,\n ) {}\n\n ngOnInit(): void {\n if (!this.scrollEnabled) {\n return;\n }\n this.numpadDisplayService.open$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((options: NumpadHostOptions) => {\n if (this.numpadHostComponent.id === options.id) {\n this.scrollIntoView();\n }\n });\n }\n\n private scrollIntoView(): void {\n this.initRects();\n if (this.shouldScrollDown()) {\n this.scrollDown();\n }\n\n if (this.shouldScrollUp()) {\n this.scrollUp();\n }\n }\n\n private initRects(): void {\n this.currentNumpadRect = this.numpadHostComponent.elementRef.nativeElement.getBoundingClientRect();\n this.closingNumpadRect = this.numpadScrollService.getClosingNumpadRect();\n this.scrollContainerRect = this.scrollContainerService.container.getBoundingClientRect();\n const pickElement = this.numpadHostComponent.elementRef.nativeElement.parentElement;\n this.pickRect = pickElement.getBoundingClientRect();\n }\n\n private shouldScrollDown(): boolean {\n return this.deltaDown > 0;\n }\n\n private scrollDown(): void {\n setTimeout(() => {\n this.scrollTo(this.deltaY);\n }, 200);\n }\n\n private shouldScrollUp(): boolean {\n return this.deltaUp > 0;\n }\n\n private scrollUp(): void {\n setTimeout(() => {\n this.scrollTo(-this.deltaY);\n }, 200);\n }\n\n private scrollTo(delta: number): void {\n this.smoothScrollService.scrollTopTo(this.scrollContainerService.container, this.scrollContainerService.container.scrollTop + delta, 150);\n }\n\n get deltaY(): number {\n if (this.shouldScrollUp()) {\n return this.deltaUp;\n }\n if (this.shouldScrollDown()) {\n return this.deltaDown;\n }\n\n return 0;\n }\n\n private get closingNumpadHeight(): number {\n return this.closingNumpadRect!.height;\n }\n\n private get openingNumpadHeight(): number {\n return NumpadAnimationConfig.maxHeight;\n }\n\n get deltaDown(): number {\n const windowOverflow = this.scrollContainerRect!.bottom - this.#window.innerHeight;\n let delta = this.currentNumpadRect!.top - this.scrollContainerRect!.bottom + this.openingNumpadHeight;\n if (windowOverflow > 0) {\n delta += windowOverflow;\n }\n if (!this.isClosingNumpadAbove) {\n return delta;\n }\n\n return delta - this.closingNumpadHeight;\n }\n\n private get deltaUp(): number {\n const delta = this.scrollContainerRect!.top - this.pickRect!.top;\n if (!this.isClosingNumpadAbove) {\n return delta;\n }\n\n return delta + this.closingNumpadHeight;\n }\n\n private get isClosingNumpadAbove(): boolean {\n return !!this.closingNumpadRect && this.closingNumpadRect.top < this.currentNumpadRect!.top;\n }\n\n readonly #window = inject(WINDOW);\n}\n","import { createAction, props } from '@ngrx/store';\n\nexport default class NumpadActions {\n static readonly ACTION_SCHEMA = `@numpad`;\n\n private static readonly NUMPAD_FOCUS = `${NumpadActions.ACTION_SCHEMA}/NUMPAD_FOCUS`;\n\n static numpadFocus = createAction(NumpadActions.NUMPAD_FOCUS, props<{ numpadFocus: boolean }>());\n}\n","import { Injectable } from '@angular/core';\n\nimport { CurrencyConfig } from '@frontend/sports/common/client-config-data-access';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\n\nimport { ISelectionProvider, NumpadOperation, NumpadState } from './model';\nimport { NumpadService } from './numpad.service';\nimport NumpadActions from './store/actions';\n\n@Injectable()\nexport class NumpadInputConnector implements ISelectionProvider {\n private focused: boolean;\n private timeout?: () => void;\n private stateChangeSub?: Subscription;\n input: HTMLInputElement;\n\n constructor(\n private numpadService: NumpadService,\n private timerService: TimerService,\n private currencyConfig: CurrencyConfig,\n private store: Store,\n ) {}\n\n init(input: HTMLInputElement) {\n this.input = input;\n this.numpadService.registerSelectionProvider(this);\n this.stateChangeSub = this.numpadService.state$.subscribe((state) => this.stateChange(state));\n }\n\n deInit() {\n this.cleanTimeout();\n this.stateChangeSub?.unsubscribe();\n }\n\n getSelection(currentValue: string): { start: number; end: number } {\n const length = currentValue.length;\n if (!this.focused) {\n return {\n start: length,\n end: length,\n };\n }\n\n return {\n start: this.input.selectionStart !== null ? this.input.selectionStart : length,\n end: this.input.selectionEnd !== null ? this.input.selectionEnd : length,\n };\n }\n\n clearFocus(): void {\n this.timeout = this.timerService.setTimeoutOutsideAngular(() => {\n this.focused = false;\n this.store.dispatch(NumpadActions.numpadFocus({ numpadFocus: false }));\n }, 200);\n }\n\n focus(): void {\n this.cleanTimeout();\n this.focused = true;\n this.store.dispatch(NumpadActions.numpadFocus({ numpadFocus: true }));\n\n this.numpadService.open();\n }\n\n private cleanTimeout(): void {\n if (!this.timeout) {\n return;\n }\n this.timeout();\n delete this.timeout;\n }\n\n private stateChange(state: NumpadState): void {\n this.input.value = state.stake.isEmpty ? '' : this.currencyConfig.showStakeCurrency ? state.stake.currencyFormatted : state.stake.formatted;\n\n if (state.operation === NumpadOperation.Open) {\n this.input.select();\n this.focusInput();\n }\n\n if (this.focused && state.isOpened && isDefined(state.selectionStart)) {\n this.focusInput(state.selectionStart);\n }\n }\n\n private focusInput(position?: number): void {\n this.timerService.setTimeoutOutsideAngular(() => {\n if (position) {\n this.input.setSelectionRange(position, position);\n }\n\n this.input.focus();\n });\n }\n}\n","@if (this.numpadService.state$ | async; as state) {\n
\n \n @if (adornmentStart) {\n {{ adornmentStart }}\n }\n
\n @if (useStakeFieldCursor) {\n \n } @else {\n \n {{ getStake(state) }}\n \n }\n
\n
\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { CurrencyConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport { ISelectionProvider, NumpadOperation, NumpadState } from './model';\nimport { NumpadInputConnector } from './numpad-input-connector';\nimport { NumpadService } from './numpad.service';\nimport { INumpadRootState } from './store/numpad.state';\n\n@Component({\n selector: 'ms-stake-field',\n templateUrl: './stake-field.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./stake-field.component.scss'],\n providers: [NumpadInputConnector],\n})\nexport class StakeFieldComponent implements AfterViewInit, OnDestroy, ISelectionProvider {\n @Input() disabled = false;\n @Input() emptyCharacter: string;\n @Input() useStakeFieldCursor = false;\n @Input() adornmentStart?: string;\n @ViewChild('inputRef') inputRef?: ElementRef;\n selected = false;\n isEpcotEnabled: boolean;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n public numpadService: NumpadService,\n private currencyConfig: CurrencyConfig,\n private store: Store,\n private epcotConfigService: EpcotConfigService,\n private numpadInputConnector: NumpadInputConnector,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n @HostListener('click', ['$event'])\n stopPropagation(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n }\n\n ngAfterViewInit(): void {\n if (this.useStakeFieldCursor && this.inputElement) {\n this.numpadInputConnector.init(this.inputElement);\n return;\n }\n\n this.numpadService.registerSelectionProvider(this);\n this.numpadService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((state) => this.stateChange(state));\n }\n\n onClick(): void {\n if (this.useStakeFieldCursor) {\n this.numpadInputConnector.focus();\n return;\n }\n\n if (this.numpadService.currentState.isOpened) {\n this.toggleSelected();\n } else {\n this.numpadService.open();\n }\n }\n\n private stateChange(state: NumpadState): void {\n if (state.operation === NumpadOperation.Open) {\n this.setSelected();\n return;\n }\n\n this.setDeselected();\n }\n\n private toggleSelected(): void {\n if (this.selected) {\n this.setDeselected();\n\n return;\n }\n\n this.setSelected();\n }\n\n private setSelected(): void {\n if (this.numpadService.currentState.stake.isEmpty) {\n return;\n }\n\n this.selected = true;\n }\n\n private setDeselected(): void {\n this.selected = false;\n }\n\n getSelection(currentValue: string): { start: number; end: number } {\n return {\n start: this.selected ? 0 : currentValue.length,\n end: currentValue.length,\n };\n }\n\n getStake(state: NumpadState): string {\n return state.stake.isEmpty\n ? this.emptyCharacter\n : this.currencyConfig.showStakeCurrency\n ? state.stake.currencyFormatted\n : state.stake.formatted;\n }\n\n onBlur(): void {\n this.numpadInputConnector.clearFocus();\n }\n\n onFocus(): void {\n this.numpadInputConnector.focus();\n }\n\n ngOnDestroy(): void {\n this.numpadInputConnector.deInit();\n }\n\n private get inputElement(): HTMLInputElement {\n return this.inputRef?.nativeElement;\n }\n}\n","import { AfterViewInit, DestroyRef, Directive, ElementRef, Input, Renderer2, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { WINDOW } from '@frontend/vanilla/core';\nimport { delay, map } from 'rxjs/operators';\n\nimport { CharsetSizeService } from '../common/charset-size.service';\nimport { NumpadService } from './numpad.service';\nimport { StakeInputMode } from './stake-input-mode.strategy';\n\n@Directive({\n selector: '[msStakeFontResizer]',\n})\nexport class StakeFontResizerDirective implements AfterViewInit {\n // hardcoded styling values, change when stake styling changes\n private readonly constants = {\n stakeFieldSelector: '.stake-field-container',\n stakeInputSelector: '.stake-input-value',\n stakeLeftPadding: { withError: 14, withOutError: 5 },\n minimumFontSize: 11,\n minimumPaddingSize: 1,\n\n // magic numbers to make sure the size is always small enough\n resizedFontReducer: 1,\n resizedPaddingReducer: 2,\n };\n\n private containerWidth: number;\n\n /* eslint-disable-next-line @angular-eslint/no-input-rename */\n @Input('msStakeFontResizer') resizerOptions: {\n inputMode: StakeInputMode;\n hasError: boolean;\n };\n\n private childElement: HTMLElement;\n private defaultRightPadding: number;\n private defaultFont: number;\n private isInput: boolean;\n private readonly destroyRef = inject(DestroyRef);\n readonly #window = inject(WINDOW);\n\n constructor(\n private stakeElement: ElementRef,\n private numpadService: NumpadService,\n private renderer: Renderer2,\n private charsetService: CharsetSizeService,\n ) {}\n\n ngAfterViewInit(): void {\n this.numpadService.state$\n .pipe(\n map((state) => state.stake),\n delay(20),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((stake) => this.stateChange(stake.formatted));\n }\n\n private stateChange(stake: string): void {\n if (!this.valuesLoaded) {\n this.loadValues();\n }\n\n if (this.valuesLoaded) {\n this.reduceSize(stake);\n }\n }\n\n private reduceSize(stake: string): void {\n if (this.hasOverflow(stake)) {\n const ratio = this.spaceAvailable / this.spaceNeeded(stake);\n\n const newFont = Math.max(\n this.constants.minimumFontSize,\n Math.min(this.defaultFont, this.defaultFont * ratio - this.constants.resizedFontReducer),\n );\n\n const newPadding = Math.max(\n this.constants.minimumPaddingSize,\n Math.min(this.defaultRightPadding, Math.floor(this.defaultRightPadding * ratio - this.constants.resizedPaddingReducer)),\n );\n\n this.setStyle(newFont, newPadding);\n } else {\n this.setStyle(this.defaultFont, this.defaultRightPadding);\n }\n }\n\n private loadValues(): void {\n this.isInput = this.resizerOptions.inputMode === StakeInputMode.Typing;\n this.childElement = this.stakeElement.nativeElement.querySelector(\n this.isInput ? this.constants.stakeInputSelector : this.constants.stakeFieldSelector,\n );\n\n const style = this.#window.getComputedStyle(this.childElement);\n\n // only set default values, when field is visible (in EditMybet & AutoCashout stake is first hidden)\n if (!style.width.includes('px')) {\n return;\n }\n\n this.containerWidth = parseFloat(style.width);\n this.defaultFont = parseFloat(style.fontSize);\n this.defaultRightPadding = parseFloat(style.paddingRight || '0');\n }\n\n private setStyle(fontSize: number, paddingSize: number): void {\n this.renderer.setAttribute(this.childElement, 'style', `font-size: ${fontSize}px; padding-right: ${paddingSize}px;`);\n }\n\n private hasOverflow(stake: string): boolean {\n return this.isInput ? this.spaceNeeded(stake) >= this.spaceAvailable : this.spaceNeeded(stake) > this.spaceAvailable;\n }\n\n private spaceNeeded(stake: string): number {\n const decimalCount = (stake.match(/\\d/g) || []).length;\n const separatorCount = stake.length - decimalCount;\n const averageDecimalWidth = this.charsetService.getAverageDecimalSize(this.defaultFont) + 0.1;\n const averageSeparatorWidth = this.charsetService.getAverageSeparatorSize(this.defaultFont);\n\n return decimalCount * averageDecimalWidth + separatorCount * averageSeparatorWidth + this.defaultRightPadding + this.leftPadding;\n }\n\n private get spaceAvailable(): number {\n return this.containerWidth;\n }\n\n private get leftPadding(): number {\n return this.resizerOptions.hasError ? this.constants.stakeLeftPadding.withError : this.constants.stakeLeftPadding.withOutError;\n }\n\n private get valuesLoaded(): boolean {\n return !!this.childElement && !!this.defaultFont && !!this.defaultRightPadding && !!this.containerWidth;\n }\n}\n","
\n \n @if (adornmentStart) {\n {{ adornmentStart }}\n }\n \n
\n","import { ChangeDetectionStrategy, Component, ElementRef, HostListener, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\n\nimport { Store } from '@ngrx/store';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { UiManagerActions } from '../ui-manager/ui-manager.actions';\nimport { IUiRootState } from '../ui-manager/ui-manager.state';\nimport { UiStates } from '../ui-manager/ui-states.enum';\nimport { NumpadInputConnector } from './numpad-input-connector';\nimport { NumpadService } from './numpad.service';\nimport { INumpadRootState } from './store/numpad.state';\n\nexport enum StakeInputBehavior {\n TypingAndNumpad,\n OnlyTyping,\n}\n\n@Component({\n selector: 'ms-stake-input',\n templateUrl: './stake-input.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./stake-input.component.scss'],\n providers: [NumpadInputConnector],\n})\nexport class StakeInputComponent implements OnInit, OnDestroy {\n @Input() disabled: boolean;\n @Input() emptyCharacter: string;\n @Input() adornmentStart?: string;\n @Input() behavior = StakeInputBehavior.TypingAndNumpad;\n\n @ViewChild('inputRef', { static: true }) inputRef: ElementRef;\n\n isEpcotEnabled: boolean;\n\n private get stakeElm(): HTMLInputElement {\n return this.inputRef.nativeElement;\n }\n\n constructor(\n public numpadService: NumpadService,\n private store: Store,\n private epcotConfigService: EpcotConfigService,\n private numpadConnector: NumpadInputConnector,\n ) {\n this.isEpcotEnabled = this.epcotConfigService.isEnabled();\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n\n this.store.dispatch(UiManagerActions.removeState({ state: UiStates.MarketSubTypeTooltipShown }));\n }\n\n ngOnInit(): void {\n this.numpadConnector.init(this.stakeElm);\n }\n\n ngOnDestroy(): void {\n this.numpadConnector.deInit();\n }\n\n onBlur(): void {\n this.numpadConnector.clearFocus();\n\n if (this.behavior === StakeInputBehavior.OnlyTyping) {\n this.numpadService.confirm();\n }\n }\n\n onFocus(): void {\n this.numpadConnector.focus();\n }\n\n onPaste(event: ClipboardEvent): void {\n const text = event.clipboardData?.getData('text');\n if (text) {\n this.numpadService.type(text);\n }\n }\n\n onKeyUp($event: KeyboardEvent): void {\n const target = $event.target as HTMLInputElement;\n\n this.numpadService.type(target.value);\n }\n}\n","import { Component } from '@angular/core';\n\nimport { NumpadService } from './numpad.service';\n\n@Component({\n selector: 'ms-stake-wrapper',\n template: '',\n providers: [NumpadService],\n})\nexport class StakeWrapperComponent {}\n","@if (numpadInitialized$ | async) {\n @if (modeStrategy.inputMode | async; as inputMode) {\n \n @switch (inputMode) {\n @case (stakeNumpadMode.Typing) {\n \n }\n @default {\n \n }\n }\n \n }\n}\n","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Input, OnChanges, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { BetslipConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable, Optional } from '@frontend/sports/common/core/utils/extended-types';\nimport { ISimpleChange, ISimpleChanges } from '@frontend/sports/common/core/utils/simple-change';\nimport { Observable, of } from 'rxjs';\nimport { first, map, switchMap, tap } from 'rxjs/operators';\n\nimport { IncrementalStakesService } from './incremental-stakes.service';\nimport { NumpadOperation, NumpadSource, StakeChangedEvent } from './model';\nimport { NumpadService } from './numpad.service';\nimport { StakeInputMode, StakeInputModeStrategy } from './stake-input-mode.strategy';\nimport { StakeInputBehavior } from './stake-input.component';\n\n@Component({\n selector: 'ms-stake',\n templateUrl: './stake.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class StakeComponent implements OnChanges, OnInit {\n @Input() showConfirm = true;\n @Input() showIncrementalStakes = true;\n @Input() stake: Nullable;\n @Input() keypadId: string;\n @Input() errors: Observable = of(false);\n @Input() disabled = false;\n @Input() emptyCharacter: Optional;\n @Input() focusOnLoad = false;\n @Input() numpadSource: NumpadSource;\n @Input() adornmentStart?: string;\n @Input() focusPlaceholder?: string;\n @Input() useStakeFieldCursor = false;\n\n @Output() stakeChanged = new EventEmitter();\n @Output() numpadOpen = new EventEmitter();\n @Output() stakeConfirm = new EventEmitter();\n\n private originalEmptyCharacter: Optional;\n stakeNumpadMode = StakeInputMode;\n\n numpadInitialized$: Observable;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private numpadService: NumpadService,\n private sitecore: Sitecore,\n public modeStrategy: StakeInputModeStrategy,\n private betslipConfig: BetslipConfig,\n private incrementalStakesService: IncrementalStakesService,\n ) {}\n\n getStakeContainerClass$: Observable = this.numpadService.state$.pipe(\n switchMap((state) => {\n return this.errors.pipe(\n map((hasErrors) => {\n const result: string[] = [];\n\n if (state.isOpened) {\n result.push(`editable`);\n }\n if (hasErrors) {\n result.push(`has-error`);\n }\n\n return result.join(' ');\n }),\n );\n }),\n );\n\n ngOnInit(): void {\n this.numpadInitialized$ = this.incrementalStakesService.getValues$().pipe(\n first(),\n tap((stakes) => {\n this.numpadService.initialize(\n this.stake,\n {\n showConfirm: this.showConfirm,\n showIncrementalStakes: this.showIncrementalStakes,\n id: this.keypadId,\n focusOnLoad: this.focusOnLoad,\n numpadSource: this.numpadSource,\n },\n stakes,\n );\n }),\n map(() => true),\n );\n\n this.numpadService.stake$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((stake) => {\n this.stakeChanged.emit(stake);\n });\n\n this.originalEmptyCharacter = this.emptyCharacter = this.emptyCharacter || this.sitecore.betslip.messages.Stake;\n\n this.numpadService.state$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((newState) => {\n if (newState.operation === NumpadOperation.Close && newState.confirmed) {\n this.stakeConfirm.emit();\n }\n\n if (newState.operation === NumpadOperation.Open) {\n this.numpadOpen.emit();\n }\n\n if (newState.isOpened) {\n this.emptyCharacter = this.focusPlaceholder ?? '';\n } else {\n this.emptyCharacter = this.originalEmptyCharacter;\n }\n });\n }\n\n ngOnChanges(changes: ISimpleChanges): void {\n if (changes.stake) {\n this.handleStakeChange(changes.stake);\n }\n }\n\n openKeypad(): void {\n this.numpadService.open();\n }\n\n get stakeInputBehavior(): StakeInputBehavior {\n return this.betslipConfig.isLinearKeypadEnabled ? StakeInputBehavior.OnlyTyping : StakeInputBehavior.TypingAndNumpad;\n }\n\n private handleStakeChange(stakeChange: ISimpleChange>): void {\n if (!stakeChange.firstChange) {\n this.numpadService.updateStake(stakeChange.currentValue);\n }\n }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\nimport { isNumber } from 'lodash-es';\n\nimport { NumpadUtilsService } from './numpad-utils.service';\n\n@Directive({\n selector: '[msValidateStakeInput]',\n})\nexport class ValidateStakeInputDirective {\n @Output() stakepaste: EventEmitter = new EventEmitter();\n\n constructor(\n private utils: NumpadUtilsService,\n private element: ElementRef,\n ) {}\n\n @HostListener('keypress', ['$event'])\n onKeypress(e: KeyboardEvent): boolean {\n const value = this.getValue(this.element.nativeElement, e.key);\n if (this.utils.isValidInput(value)) {\n return true;\n }\n\n e.preventDefault();\n\n return false;\n }\n\n @HostListener('paste', ['$event'])\n onPaste(e: ClipboardEvent): boolean {\n const clipboardData = e.clipboardData || window['clipboardData' as keyof typeof window];\n const pastedText = clipboardData.getData('text');\n const value = this.getValue(this.element.nativeElement, pastedText);\n\n if (this.utils.isValidInput(value)) {\n this.stakepaste.emit(value);\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n return false;\n }\n\n private getValue(inputElement: HTMLInputElement, key: string): string {\n const value = inputElement.value;\n\n const position = isNumber(inputElement.selectionStart) ? inputElement.selectionStart : undefined;\n\n return value.substr(0, position) + key + value.substr(inputElement.selectionEnd || value.length);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { StakeConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CurrencyPipe } from '@frontend/sports/common/core/feature/money';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { DsIconButton } from '@frontend/ui/icon-button';\nimport { IconCustomComponent } from '@frontend/vanilla/features/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, DsIconButton, 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","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 { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { OddsFormatSettings, SportsUserSettings } from '@frontend/sports/common/client-config-data-access';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { ClientConfigService } from '@frontend/vanilla/core';\nimport { firstValueFrom, from, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\nimport { IUserBettingSettings, UserEvents, UserSettingsResponse } from '../model/user.models';\nimport { UserService } from './user.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserSettingsService {\n static readonly NOT_AUTHENTICATED = 'NotAuthenticated';\n constructor(\n private userService: UserService,\n private apiService: ApiService,\n protected dispatcher: DispatcherService,\n private clientConfig: ClientConfigService,\n ) {}\n\n /**\n * Set a value for a specific setting. All properties are optional, it can be used to set any setting independently:\n *\n * UserSettings.set({ earlyPayoutAcceptanceMode: \"AcceptAnyChanges\" });\n *\n * @param settings\n * @returns\n *\n * @memberOf UserSettings\n */\n async set(settings: Partial): Promise {\n if (!this.userService.isAuthenticated) {\n throw new Error(UserSettingsService.NOT_AUTHENTICATED);\n }\n\n const apiResult = await firstValueFrom(\n this.apiService\n .post('usersettings', { settings })\n .pipe(\n switchMap((result: UserSettingsResponse) =>\n from(this.clientConfig.reload([SportsUserSettings, OddsFormatSettings])).pipe(map(() => result)),\n ),\n ),\n );\n\n this.dispatcher.dispatch(UserEvents.M2UserClaimsChanged);\n\n return apiResult;\n }\n\n async setOddsFormat(format: OddsDisplayFormat): Promise {\n if (!this.userService.isAuthenticated) {\n throw new Error('NotAuthenticated');\n }\n\n const apiResult = await firstValueFrom(\n this.apiService.post('usersettings/saveoddsformat', { format }).pipe(\n switchMap((result: UserSettingsResponse) => {\n if (result.oddsFormatLimitReached) {\n return of(result);\n }\n\n return from(this.clientConfig.reload([OddsFormatSettings])).pipe(map(() => result));\n }),\n ),\n );\n\n this.dispatcher.dispatch(UserEvents.M2UserClaimsChanged);\n\n return apiResult;\n }\n}\n","import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[msRemoveHref]',\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@NgModule({\n imports: [CommonModule, PlainLinkComponent],\n declarations: [RemoveHrefDirective],\n exports: [RemoveHrefDirective, PlainLinkComponent],\n})\nexport class NavigationCoreModule {}\n","import { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, InjectionToken, EventEmitter, Directive, Optional, Input, Output, NgModule } from '@angular/core';\n\n/**\n * A pending copy-to-clipboard operation.\n *\n * The implementation of copying text to the clipboard modifies the DOM and\n * forces a re-layout. This re-layout can take too long if the string is large,\n * causing the execCommand('copy') to happen too long after the user clicked.\n * This results in the browser refusing to copy. This object lets the\n * re-layout happen in a separate tick from copying by providing a copy function\n * that can be called later.\n *\n * Destroy must be called when no longer in use, regardless of whether `copy` is\n * called.\n */\nclass PendingCopy {\n constructor(text, _document) {\n this._document = _document;\n const textarea = this._textarea = this._document.createElement('textarea');\n const styles = textarea.style;\n // Hide the element for display and accessibility. Set a fixed position so the page layout\n // isn't affected. We use `fixed` with `top: 0`, because focus is moved into the textarea\n // for a split second and if it's off-screen, some browsers will attempt to scroll it into view.\n styles.position = 'fixed';\n styles.top = styles.opacity = '0';\n styles.left = '-999em';\n textarea.setAttribute('aria-hidden', 'true');\n textarea.value = text;\n // Making the textarea `readonly` prevents the screen from jumping on iOS Safari (see #25169).\n textarea.readOnly = true;\n // The element needs to be inserted into the fullscreen container, if the page\n // is in fullscreen mode, otherwise the browser won't execute the copy command.\n (this._document.fullscreenElement || this._document.body).appendChild(textarea);\n }\n /** Finishes copying the text. */\n copy() {\n const textarea = this._textarea;\n let successful = false;\n try {\n // Older browsers could throw if copy is not supported.\n if (textarea) {\n const currentFocus = this._document.activeElement;\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n successful = this._document.execCommand('copy');\n if (currentFocus) {\n currentFocus.focus();\n }\n }\n } catch {\n // Discard error.\n // Initial setting of {@code successful} will represent failure here.\n }\n return successful;\n }\n /** Cleans up DOM changes used to perform the copy operation. */\n destroy() {\n const textarea = this._textarea;\n if (textarea) {\n textarea.remove();\n this._textarea = undefined;\n }\n }\n}\n\n/**\n * A service for copying text to the clipboard.\n */\nlet Clipboard = /*#__PURE__*/(() => {\n class Clipboard {\n constructor(document) {\n this._document = document;\n }\n /**\n * Copies the provided text into the user's clipboard.\n *\n * @param text The string to copy.\n * @returns Whether the operation was successful.\n */\n copy(text) {\n const pendingCopy = this.beginCopy(text);\n const successful = pendingCopy.copy();\n pendingCopy.destroy();\n return successful;\n }\n /**\n * Prepares a string to be copied later. This is useful for large strings\n * which take too long to successfully render and be copied in the same tick.\n *\n * The caller must call `destroy` on the returned `PendingCopy`.\n *\n * @param text The string to copy.\n * @returns the pending copy operation.\n */\n beginCopy(text) {\n return new PendingCopy(text, this._document);\n }\n static {\n this.ɵfac = function Clipboard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || Clipboard)(i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Clipboard,\n factory: Clipboard.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return Clipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Injection token that can be used to provide the default options to `CdkCopyToClipboard`. */\nconst CDK_COPY_TO_CLIPBOARD_CONFIG = /*#__PURE__*/new InjectionToken('CDK_COPY_TO_CLIPBOARD_CONFIG');\n/**\n * Provides behavior for a button that when clicked copies content into user's\n * clipboard.\n */\nlet CdkCopyToClipboard = /*#__PURE__*/(() => {\n class CdkCopyToClipboard {\n constructor(_clipboard, _ngZone, config) {\n this._clipboard = _clipboard;\n this._ngZone = _ngZone;\n /** Content to be copied. */\n this.text = '';\n /**\n * How many times to attempt to copy the text. This may be necessary for longer text, because\n * the browser needs time to fill an intermediate textarea element and copy the content.\n */\n this.attempts = 1;\n /**\n * Emits when some text is copied to the clipboard. The\n * emitted value indicates whether copying was successful.\n */\n this.copied = new EventEmitter();\n /** Copies that are currently being attempted. */\n this._pending = new Set();\n if (config && config.attempts != null) {\n this.attempts = config.attempts;\n }\n }\n /** Copies the current text to the clipboard. */\n copy(attempts = this.attempts) {\n if (attempts > 1) {\n let remainingAttempts = attempts;\n const pending = this._clipboard.beginCopy(this.text);\n this._pending.add(pending);\n const attempt = () => {\n const successful = pending.copy();\n if (!successful && --remainingAttempts && !this._destroyed) {\n // We use 1 for the timeout since it's more predictable when flushing in unit tests.\n this._currentTimeout = this._ngZone.runOutsideAngular(() => setTimeout(attempt, 1));\n } else {\n this._currentTimeout = null;\n this._pending.delete(pending);\n pending.destroy();\n this.copied.emit(successful);\n }\n };\n attempt();\n } else {\n this.copied.emit(this._clipboard.copy(this.text));\n }\n }\n ngOnDestroy() {\n if (this._currentTimeout) {\n clearTimeout(this._currentTimeout);\n }\n this._pending.forEach(copy => copy.destroy());\n this._pending.clear();\n this._destroyed = true;\n }\n static {\n this.ɵfac = function CdkCopyToClipboard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CdkCopyToClipboard)(i0.ɵɵdirectiveInject(Clipboard), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(CDK_COPY_TO_CLIPBOARD_CONFIG, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkCopyToClipboard,\n selectors: [[\"\", \"cdkCopyToClipboard\", \"\"]],\n hostBindings: function CdkCopyToClipboard_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function CdkCopyToClipboard_click_HostBindingHandler() {\n return ctx.copy();\n });\n }\n },\n inputs: {\n text: [0, \"cdkCopyToClipboard\", \"text\"],\n attempts: [0, \"cdkCopyToClipboardAttempts\", \"attempts\"]\n },\n outputs: {\n copied: \"cdkCopyToClipboardCopied\"\n },\n standalone: true\n });\n }\n }\n return CdkCopyToClipboard;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ClipboardModule = /*#__PURE__*/(() => {\n class ClipboardModule {\n static {\n this.ɵfac = function ClipboardModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ClipboardModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ClipboardModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return ClipboardModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CDK_COPY_TO_CLIPBOARD_CONFIG, CdkCopyToClipboard, Clipboard, ClipboardModule, PendingCopy };\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\n\nimport { DeviceService, WINDOW } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Represents service to interact with clipboard.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API\n *\n * @experimental\n */\n@Injectable({ providedIn: 'root' })\nexport class ClipboardService {\n private clipboard = inject(Clipboard);\n private deviceService = inject(DeviceService);\n private textAreaElement: HTMLTextAreaElement | undefined;\n readonly #window = inject(WINDOW);\n private readonly _doc = inject(DOCUMENT);\n\n /**\n * @description Copy the provided text to clipboard.\n * @param text Text to copy to clipboard\n * @returns `boolean` indicating if the text was copied to clipboard\n *\n * @example\n * ```typescript\n * clipboardService.copyFromContent('content');\n * ```\n */\n copy(text: string): boolean {\n if (this.clipboard.copy(text)) {\n return true;\n }\n\n // Fallback for browsers that do not support clipboard API\n this.removeTextArea();\n\n this.textAreaElement = this.createTextArea();\n this._doc.body.appendChild(this.textAreaElement);\n this.textAreaElement.value = text;\n\n try {\n this.selectTextArea(this.textAreaElement);\n const copied = this._doc.execCommand('copy');\n this.clearSelection(this.textAreaElement);\n\n this.removeTextArea();\n\n return copied;\n } catch {\n this.removeTextArea();\n\n return false;\n }\n }\n\n // Create a temp Textarea element to copy from\n private createTextArea(): HTMLTextAreaElement {\n const isRtl = this._doc.documentElement.getAttribute('dir') === 'rtl';\n const textArea = this._doc.createElement('textarea');\n\n // Prevent zooming on iOS\n textArea.style.fontSize = '12pt';\n\n // Reset box model\n textArea.style.border = '0';\n textArea.style.padding = '0';\n textArea.style.margin = '0';\n\n // Move element out of screen horizontally\n textArea.style.position = 'absolute';\n textArea.style[isRtl ? 'right' : 'left'] = '-9999px';\n\n // Move element to the same position vertically\n const yPosition = this.#window.scrollY || this._doc.documentElement.scrollTop;\n textArea.style.top = yPosition + 'px';\n textArea.setAttribute('readonly', '');\n\n return textArea;\n }\n\n private selectTextArea(element: HTMLTextAreaElement) {\n if (this.deviceService.isiOS) {\n const editable = element.contentEditable;\n const readOnly = element.readOnly;\n\n element.contentEditable = 'true';\n element.readOnly = true;\n\n const range = this._doc.createRange();\n range.selectNodeContents(element);\n\n const selection = this.#window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n selection.addRange(range);\n }\n\n element.setSelectionRange(0, 999999);\n element.contentEditable = editable;\n element.readOnly = readOnly;\n } else {\n element.select();\n }\n }\n\n // Removes current selection and focus from target element.\n private clearSelection(element: HTMLTextAreaElement) {\n element?.blur();\n this.#window.getSelection()?.removeAllRanges();\n }\n\n private removeTextArea() {\n if (this.textAreaElement) {\n this._doc.body.removeChild(this.textAreaElement);\n this.textAreaElement = undefined;\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DeviceService, NativeAppService, NativeEventType, WINDOW } from '@frontend/vanilla/core';\n\n/**\n * @whatItDoes Represents service to interact with Web Share API.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_API\n *\n * @experimental\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ShareService {\n private deviceService = inject(DeviceService);\n private nativeAppService = inject(NativeAppService);\n readonly #window = inject(WINDOW);\n\n /**\n * Shares data using Web Share API.\n * @param data Data to share.\n * @param eventName Event name used to notify native app.\n * @returns `true` if sharing was successful, `false` otherwise.\n */\n async share(data: ShareData, eventName: string = NativeEventType.SHARE): Promise {\n if (this.deviceService.isAndroid && this.nativeAppService.isNativeWrapper) {\n this.nativeAppService.sendToNative({\n eventName,\n parameters: data,\n });\n\n return true;\n }\n\n if (!this.#window.navigator.share) {\n return false;\n }\n\n await this.#window.navigator.share(data);\n\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BalanceProperties, ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnBalanceProperties', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n deps: [LazyClientConfigService],\n useFactory: balancePropertiesConfigFactory,\n})\nexport class BalancePropertiesConfig extends LazyClientConfigBase {\n balanceProperties: BalanceProperties;\n}\n\nexport function balancePropertiesConfigFactory(service: LazyClientConfigService) {\n return service.get(BalancePropertiesConfig);\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { BalanceProperties, BalanceSettingsConfig, SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { BalanceTransfer, BalanceUpdate } from './balance-properties.models';\n\n/**\n * @whatItDoes Provides access to users balance and means to refresh it or transfer between types.\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class BalancePropertiesService {\n readonly balanceInfo = signal(null);\n\n get balanceProperties(): Observable {\n return this.balancePropertiesEvents;\n }\n\n private readonly balancePropertiesEvents = new BehaviorSubject(null);\n\n constructor(\n private userService: UserService,\n private apiService: SharedFeaturesApiService,\n private balanceSettingsConfig: BalanceSettingsConfig,\n ) {}\n\n refresh(propagate: boolean = true) {\n if (this.userService.isAuthenticated) {\n this.apiService.get('balance', undefined, { showSpinner: false }).subscribe((response: BalanceUpdate) => {\n this.balanceInfo.set({ ...response.balance, propagateRefresh: propagate });\n this.balancePropertiesEvents.next({ ...response.balance, propagateRefresh: propagate });\n });\n }\n }\n\n update(balanceProperties: BalanceProperties) {\n this.balanceInfo.set(balanceProperties);\n this.balancePropertiesEvents.next(balanceProperties);\n }\n\n transfer(data: BalanceTransfer): Observable {\n return this.apiService.post('balance/transfer', data);\n }\n\n isLow(balance: number): boolean {\n const lowBalanceThreshold =\n this.balanceSettingsConfig.lowThresholds[this.userService.currency] || this.balanceSettingsConfig.lowThresholds['*'];\n\n if (lowBalanceThreshold == null) {\n return false;\n }\n\n return balance <= lowBalanceThreshold;\n }\n}\n","import { Injectable, NgZone, inject } from '@angular/core';\n\nimport {\n BalanceProperties,\n BalancePropertiesCoreService,\n LocalStoreKey,\n LocalStoreService,\n NativeAppService,\n NativeEvent,\n NativeEventType,\n OnFeatureInit,\n TrackingService,\n UserPreHooksLoginEvent,\n UserService,\n UserUpdateEvent,\n WINDOW,\n WindowEvent,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BalancePropertiesConfig } from './balance-properties.client-config';\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesBootstrapService implements OnFeatureInit {\n readonly #window = inject(WINDOW);\n\n constructor(\n private balancePropertiesService: BalancePropertiesService,\n private balancePropertiesConfig: BalancePropertiesConfig,\n private userService: UserService,\n private nativeAppService: NativeAppService,\n private localStoreService: LocalStoreService,\n private zone: NgZone,\n private trackingService: TrackingService,\n private balancePropertiesCoreService: BalancePropertiesCoreService,\n ) {}\n\n async onFeatureInit() {\n await firstValueFrom(this.balancePropertiesConfig.whenReady);\n\n this.balancePropertiesService.update(this.balancePropertiesConfig.balanceProperties);\n this.balancePropertiesCoreService.set(this.balancePropertiesService);\n //Necessary for betstation gridconnect login as it's a new login on top of anonymous user.\n this.userService.events.pipe(filter((e) => e instanceof UserPreHooksLoginEvent)).subscribe(() => {\n this.balancePropertiesService.refresh();\n });\n\n this.zone.runOutsideAngular(() => {\n // Refresh balance on focus but do not propagate it to other balances.\n this.#window.addEventListener(WindowEvent.Focus, () => {\n if (this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh(false);\n }\n });\n\n this.#window.addEventListener(WindowEvent.Storage, (event: StorageEvent) => {\n if (event.storageArea == localStorage) {\n const authKey = this.localStoreService.get(LocalStoreKey.AuthStorageKey);\n\n if (authKey === 0 && this.userService.isAuthenticated) {\n this.balancePropertiesService.refresh();\n }\n }\n });\n });\n\n this.nativeAppService.eventsFromNative.subscribe((e: NativeEvent) => {\n const eventName = e.eventName.toUpperCase();\n if (eventName === NativeEventType.GETBALANCE) {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.USERBALANCE,\n parameters: {\n amount: this.balancePropertiesConfig.balanceProperties.accountBalance,\n currencyCode: this.userService.currency,\n },\n });\n } else if (eventName === NativeEventType.UPDATEBALANCE) {\n this.balancePropertiesService.refresh();\n }\n });\n\n this.balancePropertiesService.balanceProperties.pipe(filter(Boolean)).subscribe((balance: BalanceProperties) => {\n this.userService.triggerEvent(new UserUpdateEvent(new Map([['balanceProperties', balance]])));\n\n this.trackingService.triggerEvent('Event.Balance_Refresh', {\n 'user.profile.bal': balance.accountBalance,\n 'user.profile.previousBal': this.balancePropertiesConfig.balanceProperties.accountBalance,\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n BalanceProperties,\n DSL_NOT_READY,\n DslCacheService,\n DslRecordable,\n DslRecorderService,\n DslValuesProvider,\n IntlService,\n} from '@frontend/vanilla/core';\n\nimport { BalancePropertiesService } from './balance-properties.service';\n\n@Injectable()\nexport class BalancePropertiesDslValuesProvider implements DslValuesProvider {\n private balanceProperties: BalanceProperties | null;\n\n constructor(\n private readonly dslRecorderService: DslRecorderService,\n private readonly intlService: IntlService,\n readonly balancePropertiesService: BalancePropertiesService,\n readonly dslCacheService: DslCacheService,\n ) {\n balancePropertiesService.balanceProperties.subscribe((balanceProperties: BalanceProperties | null) => {\n this.balanceProperties = balanceProperties;\n dslCacheService.invalidate(['balance']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n const recordable = this.dslRecorderService.createRecordable('balance');\n const createProperty = (name: string, getProperty: (b: BalanceProperties) => number) => {\n recordable.createProperty({\n name,\n get: () => (this.balanceProperties ? getProperty(this.balanceProperties) : DSL_NOT_READY),\n deps: ['balance'],\n });\n };\n\n createProperty('AccountBalance', (b) => b.accountBalance);\n createProperty('PayPalBalance', (b) => b.payPalBalance);\n createProperty('PayPalRestrictedBalance', (b) => b.payPalRestrictedBalance);\n createProperty('PayPalCashoutableBalance', (b) => b.payPalCashoutableBalance);\n createProperty('BalanceForGameType', (b) => b.balanceForGameType);\n createProperty('BonusWinningsRestrictedBalance', (b) => b.bonusWinningsRestrictedBalance);\n createProperty('CashoutRestrictedBalance', (b) => b.cashoutRestrictedBalance);\n createProperty('CashoutableBalance', (b) => b.cashoutableBalance);\n createProperty('CashoutableBalanceReal', (b) => b.cashoutableBalanceReal);\n createProperty('AvailableBalance', (b) => b.availableBalance);\n createProperty('DepositRestrictedBalance', (b) => b.depositRestrictedBalance);\n createProperty('InPlayAmount', (b) => b.inPlayAmount);\n createProperty('ReleaseRestrictedBalance', (b) => b.releaseRestrictedBalance);\n createProperty('PlayMoneyBalance', (b) => b.playMoneyBalance);\n createProperty('PlayMoneyInPlayAmount', (b) => b.playMoneyInPlayAmount);\n createProperty('OwedAmount', (b) => b.owedAmount);\n createProperty('TaxWithheldAmount', (b) => b.taxWithheldAmount);\n createProperty('PokerWinningsRestrictedBalance', (b) => b.pokerWinningsRestrictedBalance);\n createProperty('CashoutRestrictedCashBalance', (b) => b.cashoutRestrictedCashBalance);\n createProperty('CashoutableBalanceAtOnline', (b) => b.cashoutableBalanceAtOnline);\n createProperty('CashoutableBalanceAtRetail', (b) => b.cashoutableBalanceAtRetail);\n createProperty('CreditCardDepositBalance', (b) => b.creditCardDepositBalance);\n createProperty('CreditCardWinningsBalance', (b) => b.creditCardWinningsBalance);\n createProperty('DebitCardDepositBalance', (b) => b.debitCardDepositBalance);\n createProperty('MainRealBalance', (b) => b.mainRealBalance);\n createProperty('UncollectedFunds', (b) => b.uncollectedFunds);\n createProperty('SportsDepositBalance', (b) => b.sportsDepositBalance);\n createProperty('SportsExclusiveBalance', (b) => b.sportsExclusiveBalance);\n createProperty('GamesDepositBalance', (b) => b.gamesDepositBalance);\n createProperty('SportsWinningsBalance', (b) => b.sportsWinningsBalance);\n createProperty('PokerWinningsBalance', (b) => b.pokerWinningsBalance);\n createProperty('SlotsWinningsBalance', (b) => b.slotsWinningsBalance);\n createProperty('SportsRestrictedBalance', (b) => b.sportsRestrictedBalance);\n createProperty('PokerRestrictedBalance', (b) => b.pokerRestrictedBalance);\n createProperty('SlotsRestrictedBalance', (b) => b.slotsRestrictedBalance);\n createProperty('AllWinningsBalance', (b) => b.allWinningsBalance);\n createProperty('MaxLimitExceededBalance', (b) => b.maxLimitExceededBalance);\n createProperty('PrepaidCardDepositBalance', (b) => b.prepaidCardDepositBalance);\n\n recordable.createFunction({ name: 'IsLow', get: (balance: number) => this.balancePropertiesService.isLow(balance), deps: [] });\n recordable.createFunction({ name: 'Format', get: (balance: number) => this.intlService.formatCurrency(balance), deps: [] });\n\n return { Balance: recordable };\n }\n}\n","import { registerLazyDslOnModuleInit, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BalancePropertiesBootstrapService } from './balance-properties-bootstrap.service';\nimport { BalancePropertiesDslValuesProvider } from './balance-properties-dsl-values-provider';\n\nexport function provide() {\n return [runOnFeatureInit(BalancePropertiesBootstrapService), registerLazyDslOnModuleInit(BalancePropertiesDslValuesProvider)];\n}\n","/**\n * @whatItDoes Represents balance transfer model.\n *\n * @stable\n */\nimport { BalanceProperties } from '@frontend/vanilla/core';\n\nexport interface BalanceTransfer {\n amount: number;\n fromBalanceType: BalanceType;\n toBalanceType: BalanceType;\n}\n\n/**\n * @whatItDoes Represents supported balance types for transfers from/to.\n *\n * @stable\n */\nexport enum BalanceType {\n PayPalBal = 'PAYPAL_BAL',\n MainRealBal = 'MAIN_REAL_BAL',\n}\n\n/**\n * @whatItDoes Represents balance update model.\n */\nexport interface BalanceUpdate {\n balance: BalanceProperties;\n}\n","import { Injectable } from '@angular/core';\n\nimport { SharedFeaturesApiService } from '@frontend/vanilla/core';\nimport { BalancePropertiesService } from '@frontend/vanilla/features/balance-properties';\nimport { flatten, values } from 'lodash-es';\nimport { Observable, ReplaySubject, Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { Bonus, BonusBalance, BonusBalanceResponse } from './bonus-balance.models';\n\n/**\n * @whatItDoes Provides functionality to get bonus balance\n *\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class BonusBalanceService {\n private bonusBalanceEvents = new ReplaySubject(1);\n private bonusBalanceV4Events = new ReplaySubject(1);\n private bonusBalanceRefreshInProgress: boolean;\n private refreshSubscription: Subscription;\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private balancePropertiesService: BalancePropertiesService,\n ) {}\n\n get bonusBalance(): Observable {\n return this.bonusBalanceEvents;\n }\n\n get bonusBalanceV4(): Observable {\n return this.bonusBalanceV4Events;\n }\n\n refresh() {\n this.refreshBonusBalance();\n }\n\n private refreshBonusBalance() {\n if (!this.bonusBalanceRefreshInProgress) {\n this.bonusBalanceRefreshInProgress = true;\n\n this.apiService\n .get('balance/bonus')\n .pipe(\n map((r: BonusBalanceResponse) => {\n this.bonusBalanceV4Events.next(r);\n return this.calculateProductAmounts(flatten(values(r).map((v) => v.bonuses)));\n }),\n )\n .subscribe((bonusBalance) => {\n this.bonusBalanceEvents.next(bonusBalance);\n this.bonusBalanceRefreshInProgress = false;\n this.startRefreshOnBalanceRefresh();\n });\n }\n }\n\n private startRefreshOnBalanceRefresh() {\n if (!this.refreshSubscription) {\n this.refreshSubscription = this.balancePropertiesService.balanceProperties\n .pipe(\n filter(Boolean),\n filter((b) => b.propagateRefresh),\n )\n .subscribe(() => this.refresh());\n }\n }\n\n private calculateProductAmounts(bonuses: Bonus[]): BonusBalance {\n return bonuses.reduce(\n (result, bonus) => {\n let postfix: string;\n\n if (bonus.isBonusActive) {\n postfix = '';\n } else {\n postfix = '_inactive';\n }\n\n bonus.applicableProducts.forEach((p) => (result[p + postfix] = (result[p + postfix] || 0) + bonus.bonusAmount));\n\n return result;\n },\n {},\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BonusBalanceService } from './bonus-balance.service';\n\n@Injectable()\nexport class BonusBalanceBootstrapService implements OnFeatureInit {\n constructor(private bonusBalanceService: BonusBalanceService) {}\n\n onFeatureInit() {\n this.bonusBalanceService.refresh();\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DSL_NOT_READY, DslCacheService, DslRecordable, DslRecorderService, DslValuesProvider, UserService } from '@frontend/vanilla/core';\n\nimport { BonusBalance, BonusBalanceResponse } from './bonus-balance.models';\nimport { BonusBalanceService } from './bonus-balance.service';\n\n@Injectable()\nexport class BonusBalanceDslValuesProvider implements DslValuesProvider {\n private bonusBalance: BonusBalance | null = null;\n private bonusBalanceV4: BonusBalanceResponse | null = null;\n private refreshed: boolean = false;\n\n constructor(\n private dslRecorderService: DslRecorderService,\n private bonusBalanceService: BonusBalanceService,\n private user: UserService,\n dslCacheService: DslCacheService,\n ) {\n this.bonusBalanceService.bonusBalance.subscribe((b) => {\n this.bonusBalance = b;\n this.refreshed = true;\n\n dslCacheService.invalidate(['bonusBalance.Get']);\n });\n\n this.bonusBalanceService.bonusBalanceV4.subscribe((b) => {\n this.bonusBalanceV4 = b;\n this.refreshed = true;\n\n dslCacheService.invalidate(['bonusBalance.GetBonusByType']);\n });\n }\n\n getProviders(): { [provider: string]: DslRecordable } {\n return {\n BonusBalance: this.dslRecorderService\n .createRecordable('bonusBalance')\n .createFunction({\n name: 'Get',\n get: (product: string) => this.getCurrentValue(() => (this.bonusBalance ? this.bonusBalance[product] || 0 : DSL_NOT_READY)),\n deps: ['bonusBalance.Get', 'user.isAuthenticated'],\n })\n .createFunction({\n name: 'GetBonusByType',\n get: (product: string) => this.getCurrentValue(() => (this.bonusBalanceV4 ? this.getIndividualBonus(product) : DSL_NOT_READY)),\n deps: ['bonusBalance.GetBonusByType', 'user.isAuthenticated'],\n })\n .createProperty({\n name: 'ThirdParty',\n get: () => (this.user.isAuthenticated ? 0 : -1),\n deps: ['bonusBalance.ThirdParty', 'user.isAuthenticated'],\n }),\n };\n }\n\n private getCurrentValue(get: () => number): number {\n if (!this.user.isAuthenticated) {\n return -1;\n }\n\n if (!this.refreshed) {\n this.refreshed = true;\n this.bonusBalanceService.refresh();\n }\n\n return get();\n }\n\n private getIndividualBonus(bonusType: string): number {\n let balance: number = 0;\n\n if (this.bonusBalanceV4) {\n this.bonusBalanceV4[bonusType.toLocaleLowerCase()]?.bonuses.forEach((bonus) => {\n if (bonus.isBonusActive) balance += bonus.bonusAmount;\n });\n }\n\n return balance;\n }\n}\n","import { registerLazyDslOnModuleInit, runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { BonusBalanceBootstrapService } from './bonus-balance-bootstrap.service';\nimport { BonusBalanceDslValuesProvider } from './bonus-balance-dsl-values-provider';\n\nexport function provide() {\n return [registerLazyDslOnModuleInit(BonusBalanceDslValuesProvider), runOnFeatureInit(BonusBalanceBootstrapService)];\n}\n","import { Injectable, signal } from '@angular/core';\n\nimport { SharedFeaturesApiService, UserService } from '@frontend/vanilla/core';\nimport { BehaviorSubject, Observable, Subject, groupBy, mergeMap, throttleTime } from 'rxjs';\n\n/**\n * @stable\n */\nexport interface KycStatus extends Record {\n accountStatus: string;\n accountVerificationIsRequired: boolean;\n additionalKycInfo: { Key: ''; Value: '' }[];\n additionalRibbonInfo: { Key: ''; Value: '' }[];\n addressVerificationStatus: string;\n ageVerificationGraceDays: number;\n ageVerificationGracePeriod: string;\n ageVerificationStatus: string;\n amlVerificationStatus: string;\n bankAccountIsRegistered: boolean;\n bankIdVerificationStatus: string;\n blackListVerificationStatus: string;\n createDate: string;\n custom3: string;\n custom4: string;\n depositGraceDays: number;\n depositSuppressed: boolean;\n docsPendingWith: string;\n documentUploadStatusIsPending: boolean;\n emailVerificationStatus: string;\n f2FVerificationRequired: boolean;\n graceDaysBeforeNextAction: number;\n graceDaysUnit: string;\n idVerificationGraceDays: number;\n idVerificationStatus: string;\n idVerificationGracePeriod: string;\n isBlackListAttempted: boolean;\n isCommVerified: boolean;\n isEmailVerified: boolean;\n isKycStarted: boolean;\n isMobileNumberVerified: boolean;\n isTransitionPlayer: boolean;\n kycAttempts: number;\n kycAuthenticationStatus: string;\n kycMaxAttempts: number;\n kycMaxAttemptsReached: boolean;\n kycVerified: boolean;\n partiallyVerified: boolean;\n personalIdVerificationStatus: string;\n ribbonStatusCode: string;\n ribbonStatusMessage: string;\n secretPinVerificationStatus: string;\n ssnVerificationAttempts: number;\n ssnVerificationMaxAttempts: number;\n ssnVerificationMaxAttemptsReached: boolean;\n ssnVerificationStatus: string;\n thirdPartyVerificationStatus: string;\n userHasBonuses: boolean;\n verificationDaysLeft: number;\n verificationStatus: string;\n verificationType: string;\n}\n\n/**\n * Options to be passed to {@link KycStatusService#refresh}\n *\n * @experimental\n */\nexport interface KycStatusOptions extends Record {\n /**\n * If provided, it will be passed to the document upload API.\n */\n useCase?: string;\n /**\n * if true it will try to fetch values from cache.\n */\n cached?: boolean;\n}\n\n/**\n * @stable\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class KycStatusService {\n readonly status = signal(null);\n public static UnauthKycStatus: KycStatus = {\n accountStatus: 'Unknown',\n accountVerificationIsRequired: false,\n additionalKycInfo: [],\n additionalRibbonInfo: [],\n addressVerificationStatus: 'Unknown',\n ageVerificationGraceDays: -1,\n ageVerificationGracePeriod: 'Unknown',\n ageVerificationStatus: 'Unknown',\n amlVerificationStatus: 'Unknown',\n bankAccountIsRegistered: false,\n bankIdVerificationStatus: 'Unknown',\n blackListVerificationStatus: 'Unknown',\n createDate: 'Unknown',\n custom3: 'Unknown',\n custom4: 'Unknown',\n depositGraceDays: -1,\n depositSuppressed: false,\n docsPendingWith: '',\n documentUploadStatusIsPending: false,\n emailVerificationStatus: 'Unknown',\n f2FVerificationRequired: false,\n graceDaysBeforeNextAction: -1,\n graceDaysUnit: 'Unknown',\n idVerificationGraceDays: -1,\n idVerificationStatus: 'Unknown',\n idVerificationGracePeriod: 'Unknown',\n isBlackListAttempted: false,\n isCommVerified: false,\n isEmailVerified: false,\n isKycStarted: false,\n isMobileNumberVerified: false,\n isTransitionPlayer: false,\n kycAttempts: -1,\n kycAuthenticationStatus: 'Unknown',\n kycMaxAttempts: -1,\n kycMaxAttemptsReached: false,\n kycVerified: false,\n partiallyVerified: false,\n personalIdVerificationStatus: 'Unknown',\n ribbonStatusCode: 'Unknown',\n ribbonStatusMessage: 'Unknown',\n secretPinVerificationStatus: 'Unknown',\n ssnVerificationAttempts: -1,\n ssnVerificationMaxAttempts: -1,\n ssnVerificationMaxAttemptsReached: false,\n ssnVerificationStatus: 'Unknown',\n thirdPartyVerificationStatus: 'Unknown',\n userHasBonuses: false,\n verificationDaysLeft: -1,\n verificationStatus: 'Unknown',\n verificationType: 'Unspecified',\n };\n\n private kycStatusEvents = new BehaviorSubject(null);\n private refreshSubject = new Subject();\n\n get kycStatus(): Observable {\n return this.kycStatusEvents;\n }\n\n constructor(\n private apiService: SharedFeaturesApiService,\n private user: UserService,\n ) {\n this.refreshSubject\n .pipe(\n groupBy((kycStatusOptions) => JSON.stringify(kycStatusOptions)), // Group by kycStatusOptions value\n mergeMap((group) =>\n group.pipe(\n throttleTime(1000), // Apply throttle to each group\n ),\n ),\n )\n .subscribe((kycStatusOptions) => {\n this.load(kycStatusOptions);\n });\n }\n\n /**\n * @description Will not call the API if user is not authenticated.\n *\n * @param kycStatusOptions Kyc options to be passed to kyc status api.\n */\n refresh(kycStatusOptions?: KycStatusOptions) {\n if (!this.user.isAuthenticated) {\n return;\n }\n\n this.refreshSubject.next(kycStatusOptions);\n }\n\n private load(kycStatusOptions?: KycStatusOptions) {\n if (this.user.isAuthenticated) {\n this.apiService\n .get('kycstatus', { useCase: kycStatusOptions?.useCase, cached: !!kycStatusOptions?.cached })\n .subscribe((status: KycStatus) => {\n this.kycStatusEvents.next(status);\n this.status.set(status);\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DateProviderService } from '@frontend/sports/common/core/utils/date';\nimport { LocalStoreService } from '@frontend/vanilla/core';\n\n@Injectable()\nexport class ArcMessageFrequencyService {\n private lastMsgDisplayDate: Date = new Date();\n\n constructor(private localStorage: LocalStoreService) {}\n\n isMessageFrequencyAvailable(key: string, frequency: number, loginActionKey: string, loginActionValue: string): boolean {\n const messageKey = this.localStorage.get(key);\n if (!messageKey || this.localStorage.get(loginActionKey) === loginActionValue) {\n return true;\n }\n\n this.lastMsgDisplayDate = new Date(messageKey as Date);\n this.lastMsgDisplayDate.setDate(this.lastMsgDisplayDate.getDate() + frequency);\n\n if (DateProviderService.getStartOfDay(this.lastMsgDisplayDate) <= DateProviderService.getStartOfDay(new Date())) {\n return true;\n }\n\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NOT_APPLICABLE, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\n\nimport { ArcRestrictionTrackingConstants, ArcRestrictionTrackingData, TrackingEvent } from './arc.model';\n\n@Injectable()\nexport class ArcRestrictionTrackingService {\n constructor(private trackingService: TrackingService) {}\n\n trackSaferGambalingMessage(trackingEvent: string, trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingEvent, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: trackingData.action,\n [trackingConstants.COMPONENT_POSITION_EVENT]: trackingData.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.SaferGamblingEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n\n trackPlayBreakMessage(trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingConstants.EVENT_CONTENT_VIEW, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingEvent.Load,\n [trackingConstants.COMPONENT_POSITION_EVENT]: trackingData.position,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.PlayBreakEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n\n trackFindOutMoreLink(trackingData: ArcRestrictionTrackingData): void {\n this.trackingService.track(trackingConstants.EVENT_TRACKING, {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ArcRestrictionTrackingConstants.CategoryEvent,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ArcRestrictionTrackingConstants.LabelEvent,\n [trackingConstants.COMPONENT_ACTION_EVENT]: TrackingEvent.Click,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ArcRestrictionTrackingConstants.FindOutMoreLinkPositionEvent,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: trackingData.source,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ArcRestrictionTrackingConstants.SaferGamblingEventDetails,\n [trackingConstants.COMPONENT_URL_CLICKED]: NOT_APPLICABLE,\n });\n }\n}\n","import { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { createAction, props } from '@ngrx/store';\n\nimport { IConfigSettings, IUserBettingSettings } from '../model/user.models';\nimport { IUserState } from './state';\n\nexport class UserActions {\n static readonly ACTION_SCHEMA = '@sports_user/';\n\n private static readonly INIT_STATE = `${UserActions.ACTION_SCHEMA}INIT_STATE`;\n private static readonly USER_LOGGED_IN = `${UserActions.ACTION_SCHEMA}USER_LOGGED_IN`;\n private static readonly USER_LOGGED_OUT = `${UserActions.ACTION_SCHEMA}USER_LOGGED_OUT`;\n private static readonly UPDATE_STATE = `${UserActions.ACTION_SCHEMA}UPDATE_STATE`;\n private static readonly SET_WALLET_LOADED = `${UserActions.ACTION_SCHEMA}SET_WALLET_LOADED`;\n\n static initState = createAction(UserActions.INIT_STATE, props<{ state: IUserState }>());\n static setWalletLoaded = createAction(UserActions.SET_WALLET_LOADED, props<{ walletLoaded: boolean }>());\n static userLoggedIn = createAction(UserActions.USER_LOGGED_IN);\n static userLoggedOut = createAction(UserActions.USER_LOGGED_OUT);\n static updateState = createAction(\n UserActions.UPDATE_STATE,\n props<{\n settings: IUserBettingSettings;\n config: IConfigSettings;\n oddsFormat?: OddsDisplayFormat;\n }>(),\n );\n}\n","\n
{{ sitecore.betslip.messages.ARCPlayBreakHeader }}
\n
\n \n
\n {{ sitecore.betslip.messages.ARCPlayBreakMessage }} \n
\n
\n
\n\n\n \n
\n \n
{{ sitecore.betslip.arcBetslipMessages.ArcSaferGamblingHeader }}
\n \n
\n \n
\n \n
\n \n
\n
\n
\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnChanges } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ARCConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { PropType } from '@frontend/sports/common/core/utils/extended-types';\nimport { NOT_APPLICABLE, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { LocalStoreService } from '@frontend/vanilla/core';\nimport { isEmpty } from 'lodash-es';\nimport { Observable } from 'rxjs';\n\nimport { ArcMessageFrequencyService } from './arc-message-frequency.service';\nimport { ArcRestrictionTrackingService } from './arc-restriction-tracking.service';\nimport { ArcRestrictionService } from './arc-restriction.service';\nimport {\n ArcRestrictionTrackingConstants,\n FeatureLocation,\n IARCProfileConfiguration,\n ProfileActionName,\n ProfileMessageStorageKeys,\n TrackingEvent,\n} from './arc.model';\n\n@Component({\n selector: 'ms-arc-message',\n templateUrl: './arc-message.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ArcMessageComponent implements OnChanges {\n @Input() profileData: IARCProfileConfiguration;\n @Input() featureLocation: FeatureLocation;\n @HostBinding('class') className = 'playbreak';\n FeatureLocation = FeatureLocation;\n\n expanded = true;\n isMessageFrequency: boolean;\n isUserOnPlayBreak$: Observable;\n frequency: number;\n arcBetslipMessages: PropType, 'arcBetslipMessages'>;\n betslipMessage: string;\n\n constructor(\n public sitecore: Sitecore,\n private arcRestrictionService: ArcRestrictionService,\n private localStorage: LocalStoreService,\n private arcRestrictionTrackingService: ArcRestrictionTrackingService,\n private arcConfig: ARCConfig,\n private arcMessageFrequencyService: ArcMessageFrequencyService,\n ) {\n this.arcBetslipMessages = sitecore.betslip.arcBetslipMessages;\n this.isUserOnPlayBreak$ = this.arcRestrictionService.isUserOnPlayBreak$;\n this.arcRestrictionService.isUserOnPlayBreak$.pipe(takeUntilDestroyed()).subscribe((isBreak) => {\n if (isBreak) {\n this.trackMessage(NOT_APPLICABLE, undefined, isBreak);\n }\n });\n }\n\n ngOnChanges(): void {\n if (!isEmpty(this.profileData)) {\n this.handleBetSlipMessageAndFrequency();\n }\n }\n\n private handleBetSlipMessageAndFrequency(): void {\n const position = this.expanded ? TrackingEvent.Expand : TrackingEvent.Collapse;\n if (\n (!(this.featureLocation === FeatureLocation.PreBetSlipMessage) && !(this.featureLocation === FeatureLocation.PostBetSlipMessage)) ||\n !this.arcConfig.profileActionsSwitch.isBetslipMessagingEnabled\n ) {\n return;\n }\n this.getBetSlipMessage(this.profileData.profileId);\n const profileFrequency =\n this.profileData.profileActions.find((action) =>\n this.featureLocation === FeatureLocation.PreBetSlipMessage\n ? action.name === ProfileActionName.PreBetSlipMessage\n : action.name === ProfileActionName.PostBetSlipMessage,\n )?.frequency ?? 0;\n if (this.featureLocation === FeatureLocation.PreBetSlipMessage) {\n this.isMessageFrequency = this.arcMessageFrequencyService.isMessageFrequencyAvailable(\n ProfileMessageStorageKeys.preBetMessageStorageKey,\n profileFrequency,\n ProfileMessageStorageKeys.actionForMessagedisplayPre,\n ProfileMessageStorageKeys.firstLoginActionPrebet,\n );\n\n if (this.isMessageFrequency) {\n this.setLocalStorage(\n ProfileMessageStorageKeys.preBetMessageStorageKey,\n ProfileMessageStorageKeys.actionForMessagedisplayPre,\n ProfileMessageStorageKeys.firstLoginActionPrebet,\n );\n this.trackMessage(position, TrackingEvent.Load);\n }\n\n return;\n }\n this.isMessageFrequency = this.arcMessageFrequencyService.isMessageFrequencyAvailable(\n ProfileMessageStorageKeys.postBetMessageStorageKey,\n profileFrequency,\n ProfileMessageStorageKeys.actionForMessagedisplayPost,\n ProfileMessageStorageKeys.firstLoginActionPostbet,\n );\n if (this.isMessageFrequency) {\n this.setLocalStorage(\n ProfileMessageStorageKeys.postBetMessageStorageKey,\n ProfileMessageStorageKeys.actionForMessagedisplayPost,\n ProfileMessageStorageKeys.firstLoginActionPostbet,\n );\n this.trackMessage(position, TrackingEvent.Load);\n }\n }\n\n private getBetSlipMessage(profileId: string): void {\n const msgKey = Object.keys(this.arcBetslipMessages).find((key) =>\n this.featureLocation === FeatureLocation.PreBetSlipMessage\n ? key === `${ProfileActionName.PreBetSlipMessage}_${profileId}`\n : key === `${ProfileActionName.PostBetSlipMessage}_${profileId}`,\n );\n this.betslipMessage = msgKey ? this.arcBetslipMessages[msgKey] : this.betslipMessage;\n }\n\n private setLocalStorage(key: string, loginActionKey: string, loginActionValue: string): void {\n this.localStorage.set(key, new Date());\n this.localStorage.set(loginActionKey, loginActionValue);\n }\n\n toggle(): void {\n this.expanded = !this.expanded;\n const action = this.expanded ? TrackingEvent.Expand : TrackingEvent.Collapse;\n const position = action === TrackingEvent.Expand ? TrackingEvent.Collapse : TrackingEvent.Expand;\n this.trackMessage(position, action);\n }\n\n private trackMessage(position: string, action?: string, isPlayBreak?: boolean): void {\n const trackingData = {\n action,\n position,\n source:\n this.featureLocation === FeatureLocation.PreBetSlipMessage || isPlayBreak\n ? ArcRestrictionTrackingConstants.SourceBetslip\n : ArcRestrictionTrackingConstants.SourceBetslipReceipt,\n };\n if (isPlayBreak) {\n trackingData.source =\n this.featureLocation === FeatureLocation.QuickBet ? ArcRestrictionTrackingConstants.SourceBetslipQuickBet : trackingData.source;\n this.arcRestrictionTrackingService.trackPlayBreakMessage(trackingData);\n } else {\n const event = action === TrackingEvent.Load ? trackingConstants.EVENT_CONTENT_VIEW : trackingConstants.EVENT_TRACKING;\n this.arcRestrictionTrackingService.trackSaferGambalingMessage(event, trackingData);\n }\n }\n\n trackHelpLink(): void {\n const trackingData = {\n action: TrackingEvent.Click,\n position: ArcRestrictionTrackingConstants.FindOutMoreLinkPositionEvent,\n source: ArcRestrictionTrackingConstants.SourceBetslipReceipt,\n };\n this.arcRestrictionTrackingService.trackFindOutMoreLink(trackingData);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TrustPipe } from '@frontend/sports/common/core/utils/dom';\n\nimport { ArcMessageFrequencyService } from './arc-message-frequency.service';\nimport { ArcMessageComponent } from './arc-message.component';\nimport { ArcRestrictionTrackingService } from './arc-restriction-tracking.service';\nimport { ArcRestrictionService } from './arc-restriction.service';\n\n@NgModule({\n imports: [CommonModule, TrustPipe],\n declarations: [ArcMessageComponent],\n exports: [ArcMessageComponent],\n providers: [ArcRestrictionService, ArcRestrictionTrackingService, ArcMessageFrequencyService],\n})\nexport class ArcModule {}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { createAction, props } from '@ngrx/store';\n\nimport { IPlacedBetInfo, IShareMyBetState } from './share-my-bet.state';\n\nexport class ShareMyBetActions {\n private static readonly INIT_GENERATE_SHORT_URI = '@share-my-bet/INIT_GENERATE_SHORT_URI';\n private static readonly SHARE = '@share-my-bet/SHARE';\n private static readonly GENERATE_SHORT_URI = '@share-my-bet/GENERATE_SHORT_URI';\n private static readonly OPEN_COPY_LINK_DIALOG = '@share-my-bet/OPEN_COPY_LINK_DIALOG';\n private static readonly CLOSE_COPY_LINK_DIALOG = '@share-my-bet/CLOSE_COPY_LINK_DIALOG';\n private static readonly DESTROY_STATE = '@share-my-bet/DESTROY_STATE';\n private static readonly COPY_SHORT_URI = '@share-my-bet/COPY_SHORT_URI';\n private static readonly REMOVE_COPIED = '@share-my-bet/REMOVE_COPIED';\n private static readonly RECEIVE_BET = '@share-my-bet/RECEIVE_BET';\n private static readonly REMOVE_RECEIVED_BET_MESSAGE = '@share-my-bet/REMOVE_RECEIVED_BET_MESSAGE';\n private static readonly POPULATE_FROM_STORAGE = '@share-my-bet/POPULATE_FROM_STORAGE';\n\n static initGenerateShortUri = createAction(ShareMyBetActions.INIT_GENERATE_SHORT_URI, pprops());\n static generateShortUri = createAction(ShareMyBetActions.GENERATE_SHORT_URI, pprops());\n static share = createAction(ShareMyBetActions.SHARE, pprops<{ uri: string; betInfo: IPlacedBetInfo }>());\n static openCopyLinkDialog = createAction(ShareMyBetActions.OPEN_COPY_LINK_DIALOG, props<{ betslipId: string }>());\n static closeCopyLinkDialog = createAction(ShareMyBetActions.CLOSE_COPY_LINK_DIALOG, props<{ betslipId: string }>());\n static copyShortUri = createAction(ShareMyBetActions.COPY_SHORT_URI, pprops<{ betslipId: string; uri: string }>());\n static removeCopied = createAction(ShareMyBetActions.REMOVE_COPIED, props<{ betslipId: string }>());\n static destroyState = createAction(ShareMyBetActions.DESTROY_STATE, props<{ betslipId: string }>());\n static receiveBet = createAction(ShareMyBetActions.RECEIVE_BET, props<{ pickCount: number }>());\n static removeReceiveBetMessage = createAction(ShareMyBetActions.REMOVE_RECEIVED_BET_MESSAGE);\n static populateFromStorage = createAction(ShareMyBetActions.POPULATE_FROM_STORAGE, pprops());\n}\n","export enum ShareMyBetTracking {\n BetSharing = 'Bet Sharing',\n ShareMyBet = 'Share My Bet',\n ShareBetLink = 'Share Bet Link',\n UserClicksButton = 'User Clicks \"Share My Bet\" Button',\n NotApplicable = 'not applicable',\n ShareMyBetClick = 'Share My Bet - Click',\n BetShared = 'Bet - Shared',\n CopyShareLinkClick = 'Copy Share Link - Click',\n LinkExpiredError = 'Link Expired - Error',\n ErrorLoaded = 'Error - Loaded',\n ErrorOkButton = 'OK CTA - Clicked',\n RefBet = 'refbet',\n}\n\nexport enum ShareMyBetCookie {\n Onboarding = 'shareMyBetOnboarding',\n Complience = 'shareMyBetComplience', // Complience, Needs to be removed after the next release\n Compliance = 'shareMyBetCompliance',\n TrackingRefBet = 'trackingRefbet',\n}\n\nexport const BetReceiptTrackingLocation = 'Bet Receipt';\n","import { Tv1PickData, Tv2PickData } from '@cds/query-objects';\n\nexport interface OptionQuery {\n fixture?: string;\n optionGroup?: number;\n option?: number;\n offerSource?: string;\n priceId?: number;\n tv1Legs?: Tv1PickData[];\n tv2Legs?: Tv2PickData[];\n}\n\nexport interface OptionRequest {\n query: OptionQuery[];\n stake: number | null;\n type: string | null;\n source: string;\n offerSource?: string;\n}\n\nexport interface OptionParams {\n options?: string;\n stake?: string;\n currency?: string;\n type?: string;\n source?: string;\n refbet?: string;\n offerSource?: string;\n}\n\nexport interface PickUriParams {\n stake?: number;\n type?: string;\n currency?: string;\n source?: string;\n userId?: string;\n addPage?: boolean;\n betslipId?: string;\n offerSource?: string;\n}\n\nexport enum BetslipConstants {\n Single = 'Single',\n Combo = 'Combo',\n System = 'System',\n}\n\nexport enum OptionParameters {\n OfferSource = 'offerSource',\n Source = 'source',\n Refbet = 'refbet',\n Currency = 'currency',\n Stake = 'stake',\n Type = 'type',\n Options = 'options',\n}\n","import { Injectable } from '@angular/core';\n\nimport { OfferSource } from '@cds';\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { UrlService } from '@frontend/vanilla/core';\nimport { capitalize, floor, reverse, toInteger, toNumber } from 'lodash-es';\n\nimport { BetslipConstants, OptionParameters, OptionParams, OptionQuery, OptionRequest, PickUriParams } from './pick-uri.model';\nimport { UrlHelperService } from './url-helper.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PickUriService {\n constructor(\n private urlService: UrlService,\n private urlHelperService: UrlHelperService,\n ) {}\n\n generate(picksParam: OptionQuery[], uriParams: PickUriParams): string {\n const basePath = `/${this.urlHelperService.productPath}`;\n\n const path = uriParams.addPage ? this.urlService.current().path() : basePath;\n const url = this.urlService.parse(path);\n const options = this.mapParams(picksParam);\n\n if (!options.length) {\n return '';\n }\n\n url.search.append(OptionParameters.Options, options.join(','));\n\n if (uriParams.type) {\n url.search.append(OptionParameters.Type, uriParams.type);\n }\n\n if (uriParams.stake) {\n url.search.append(OptionParameters.Stake, uriParams.stake.toString());\n\n if (uriParams.currency) {\n url.search.append(OptionParameters.Currency, uriParams.currency);\n }\n }\n\n if (uriParams.userId && uriParams.betslipId) {\n url.search.append(OptionParameters.Refbet, `${uriParams.userId}|${uriParams.betslipId}`);\n }\n\n if (uriParams.source) {\n url.search.append(OptionParameters.Source, uriParams.source);\n }\n\n if (picksParam.every((pick) => pick.offerSource === OfferSource.BetBuilder.toString())) {\n url.search.append(OptionParameters.OfferSource, OfferSource.BetBuilder.toString());\n }\n\n return url.url();\n }\n\n parse(params: OptionParams, userCurrency: string): OptionRequest {\n const result: OptionRequest = { query: [], stake: null, type: BetslipConstants.Single.valueOf(), source: 'AffliateOffer' };\n\n if (!params.options) {\n return result;\n }\n\n const decodedUri = decodeURIComponent(params.options);\n\n result.query = decodedUri\n .split(',')\n .map((fixture: string) => {\n if (this.isSgp(fixture)) {\n /** new url format for grouped picks (leg separator sign: '~' and also new param separator '_' due to sgpId format):\n * TV1: {fixtureId}_{pickGroupId}_{gameId}.{resultId}_{isClassicBetBuilder}~{fixtureId}_{pickGroupId}_{gameId}.{resultId}_{isClassicBetBuilder}\n * TV2: {fixtureId}_{pickGroupId}_{optionMarketId}_{optionId}_{isClassicBetBuilder}~{fixtureId}_{pickGroupId}_{optionMarketId}_{optionId}_{isClassicBetBuilder}\n */\n const legs = fixture.split('~');\n\n const parsedLegs: OptionQuery = {\n tv1Legs: [],\n tv2Legs: [],\n };\n\n legs.forEach((leg) => {\n const values = leg.split('_');\n\n if (this.isTv2Pick(values[0])) {\n parsedLegs.tv2Legs?.push({\n fixtureId: values[0],\n pickGroupId: values[1],\n optionMarketId: +values[2],\n optionId: +values[3],\n isClassicBetBuilder: JSON.parse(values[4]),\n });\n } else {\n parsedLegs.tv1Legs?.push({\n fixtureId: values[0],\n pickGroupId: values[1],\n gameId: +values[2],\n resultId: +values[3],\n useLiveFallback: JSON.parse(values[4]),\n });\n }\n });\n\n return parsedLegs;\n }\n\n const values = this.extractOptionIds(fixture);\n\n if (!fixture.includes(':') || values.length === 1) {\n return {\n fixture: values[2],\n optionGroup: values[1] ? toInteger(values[1]) : undefined,\n option: toInteger(values[0]),\n };\n } else {\n // check if priceid is passed\n if (values.length === 4) {\n return {\n fixture: values[3],\n optionGroup: values[2] ? toInteger(values[2]) : undefined,\n option: toInteger(values[1]),\n priceId: toInteger(values[0]),\n };\n } else {\n return {\n fixture: values[2],\n optionGroup: values[1] ? toInteger(values[1]) : undefined,\n option: toInteger(values[0]),\n };\n }\n }\n })\n .filter(isDefined);\n\n result.stake = this.getStake(params, userCurrency);\n result.type = this.getBetslipType(params);\n result.source = params.source || result.source;\n result.offerSource = params.offerSource;\n\n return result;\n }\n\n private extractOptionIds(fixture: string): string[] {\n if (fixture.includes('--')) {\n const optionIdIndex = fixture.indexOf('--');\n const optionId = fixture.slice(optionIdIndex);\n const fixtureOptionGroup = fixture.slice(0, optionIdIndex).split('-');\n\n return [optionId.substring(1), fixtureOptionGroup[1], fixtureOptionGroup[0]];\n }\n\n const fixtureParts = fixture.split('-');\n\n if (fixtureParts[1] && !fixtureParts[0]) {\n return [fixture];\n }\n\n return reverse(fixtureParts);\n }\n\n private mapParams(params: OptionQuery[]): string[] {\n const options: string[] = [];\n\n params.forEach((pick) => {\n if (pick.tv1Legs?.length || pick.tv2Legs?.length) {\n const tv1Legs =\n pick.tv1Legs?.map((leg) => `${leg.fixtureId}_${leg.pickGroupId}_${leg.gameId}_${leg.resultId}_${leg.useLiveFallback || false}`) ||\n [];\n const tv2Legs =\n pick.tv2Legs?.map(\n (leg) => `${leg.fixtureId}_${leg.pickGroupId}_${leg.optionMarketId}_${leg.optionId}_${leg.isClassicBetBuilder}`,\n ) || [];\n\n options.push([...tv1Legs, ...tv2Legs].join('~'));\n } else if (pick.priceId) {\n options.push(`${pick.fixture}-${pick.optionGroup}-${pick.option}-${pick.priceId}`);\n } else {\n options.push(`${pick.fixture}-${pick.optionGroup}-${pick.option}`);\n }\n });\n\n return options;\n }\n\n private getStake(params: OptionParams, usersCurrency: string): number | null {\n const currency = (params.currency || usersCurrency).toLowerCase();\n const userCurrency = usersCurrency.toLowerCase();\n\n let stake: number | null = null;\n const value = toNumber(params.stake);\n\n if (value <= 0) {\n return null;\n }\n\n if (userCurrency === currency.toLowerCase() && !isNaN(value)) {\n stake = this.floorNumber(value);\n\n if (stake > 10000000.0) {\n stake = null;\n }\n }\n\n return stake;\n }\n\n private getBetslipType(params: OptionParams): string | null {\n const normalized = capitalize(params.type);\n const allowed = [BetslipConstants.Combo.valueOf(), BetslipConstants.Single.valueOf(), BetslipConstants.System.valueOf()];\n\n if (allowed.indexOf(normalized) === -1) {\n return null;\n }\n\n return normalized;\n }\n\n private isSgp = (fixture: string): boolean => fixture.includes('_');\n\n private isTv2Pick = (value: string) => value.includes(':');\n\n private floorNumber = (val: number, decimals: number = 2): number => {\n return floor(val, decimals);\n };\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { CookieProvider } from '@frontend/sports/common/core/utils/cookie-provider';\nimport { ButtonType, ContentData, DialogSettings, DialogType, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { ShortUriResponse } from '@frontend/sports/types/models/short-uri';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { NavigationService, ProductService } from '@frontend/vanilla/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { EpcotConfigService } from '../common/epcot-config.service';\nimport { PickUriParams } from '../navigation-core/pick-uri.model';\nimport { PickUriService } from '../navigation-core/pick-uri.service';\nimport { ShareMyBetCookie, ShareMyBetTracking } from './share-my-bet.models';\nimport { IPlacedBetInfo } from './share-my-bet.state';\n\n@Injectable()\nexport class ShareMyBetService {\n constructor(\n private shareMyBetConfig: ShareMyBetConfig,\n private apiService: ApiService,\n private pickUriService: PickUriService,\n private modalDialogService: ModalDialogService,\n private navigationService: NavigationService,\n private sitecore: Sitecore,\n private userService: UserService,\n private trackingService: TrackingService,\n private cookieProvider: CookieProvider,\n private epcotConfigService: EpcotConfigService,\n private productService: ProductService,\n ) {}\n\n shortenUri(betInfo: IPlacedBetInfo): Observable {\n const uriParam: PickUriParams = {\n type: betInfo.betType,\n addPage: true,\n };\n\n if (this.userService.accountId) {\n uriParam.userId = this.userService.accountId;\n }\n\n if (betInfo.betslipId) {\n uriParam.betslipId = betInfo.betslipId;\n }\n\n const options = this.pickUriService.generate(betInfo.picksParams, uriParam);\n const uri = encodeURIComponent(`${this.navigationService.location.host()}${options}`);\n\n return this.apiService.get('shortUri/shortenUri', { uri }, { showSpinner: true }).pipe(\n map((urlResponse: ShortUriResponse) => {\n const url = urlResponse.uri;\n const culture = this.navigationService.location.culture;\n const shortUri = `${this.navigationService.location.baseUrl()}/${culture}/${this.productService.isSingleDomainApp ? 'sports/' : ''}share-my-bet/${url?.split('/').pop()}`;\n\n return shortUri;\n }),\n catchError(() => {\n this.showUriExpiredDialog(); // TODO: Change with general error message?\n\n return of('');\n }),\n );\n }\n\n isOnboardingShown(): boolean {\n return !!this.cookieProvider.getCookie(ShareMyBetCookie.Onboarding);\n }\n\n setOnboardingShown(): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.Onboarding, '1');\n }\n\n isComplianceShown(): boolean {\n return !!this.cookieProvider.getCookie(ShareMyBetCookie.Compliance) || !!this.cookieProvider.getCookie(ShareMyBetCookie.Complience); // Complience, Needs to be removed after the next release\n }\n\n setComplianceShown(): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.Compliance, '1', { expires: this.shareMyBetConfig.complianceCookieExpiryDays });\n }\n\n getComplianceDialog(): ModalRef {\n const translations = this.sitecore.modalDialogs.shareMyBetInterceptor;\n\n const contentData: ContentData = {\n type: DialogType.Action,\n firstParagraph: translations.DialogText,\n buttons: [\n {\n type: ButtonType.Cancel,\n text: translations.DialogButtonTextReject,\n buttonConfig: {\n kind: this.epcotConfigService.isEnabled() ? 'secondary' : 'tertiary',\n variant: 'outline',\n size: 'large',\n },\n },\n {\n type: ButtonType.Ok,\n text: translations.DialogButtonTextAccept,\n buttonConfig: {\n kind: 'primary',\n variant: 'filled',\n size: 'large',\n },\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: 'share-my-bet__compliance',\n };\n\n return this.modalDialogService.openMessage(contentData, settings);\n }\n\n showNotSupportedDialog(): void {\n const notSupported = this.sitecore.modalDialogs.notSupported;\n\n const contentData = {\n type: DialogType.Warning,\n firstParagraph: notSupported.DialogText,\n buttons: [\n {\n type: ButtonType.Ok,\n text: notSupported.DialogButtonText,\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: 'share-my-bet__not-supported',\n };\n\n this.modalDialogService.openMessage(contentData, settings);\n }\n\n showUriExpiredDialog(refbet: string = ShareMyBetTracking.NotApplicable): void {\n this.doReceiverErrorTracking(ShareMyBetTracking.ErrorLoaded, refbet);\n\n const linkExpired = this.sitecore.modalDialogs.linkExpired;\n\n const contentData = {\n title: linkExpired.DialogTitle,\n type: DialogType.Warning,\n firstParagraph: linkExpired.DialogText,\n buttons: [\n {\n type: ButtonType.Ok,\n text: linkExpired.DialogButtonText,\n },\n ],\n };\n\n const settings: DialogSettings = {\n isModalDialog: false,\n cssClass: `share-my-bet__link-expired`,\n };\n\n this.modalDialogService.openMessage(contentData, settings).result.then((buttonType: ButtonType) => {\n if (buttonType === ButtonType.Ok) {\n this.doReceiverErrorTracking(ShareMyBetTracking.ErrorOkButton, refbet);\n }\n });\n }\n\n doSenderTracking(actionEvent: string, location: string, betslipId?: string): void {\n const urlClicked = `${this.userService.accountId}|${betslipId}`;\n const trackData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ShareMyBetTracking.BetSharing,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ShareMyBetTracking.ShareMyBet,\n [trackingConstants.COMPONENT_ACTION_EVENT]: actionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ShareMyBetTracking.ShareBetLink,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: location,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ShareMyBetTracking.UserClicksButton,\n [trackingConstants.COMPONENT_URL_CLICKED]:\n actionEvent === ShareMyBetTracking.ShareMyBetClick ? ShareMyBetTracking.NotApplicable : urlClicked,\n };\n\n this.trackingService.triggerEventWithCleaning(trackingConstants.EVENT_TRACKING, trackData);\n }\n\n setRefbet(refbet: string): void {\n this.cookieProvider.setCookie(ShareMyBetCookie.TrackingRefBet, refbet.replace('|', '-'));\n }\n\n private doReceiverErrorTracking(actionEvent: string, refbet: string): void {\n const trackData = {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: ShareMyBetTracking.BetSharing,\n [trackingConstants.COMPONENT_LABEL_EVENT]: ShareMyBetTracking.LinkExpiredError,\n [trackingConstants.COMPONENT_ACTION_EVENT]: actionEvent,\n [trackingConstants.COMPONENT_POSITION_EVENT]: ShareMyBetTracking.NotApplicable,\n [trackingConstants.COMPONENT_LOCATION_EVENT]: ShareMyBetTracking.NotApplicable,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: ShareMyBetTracking.LinkExpiredError,\n [trackingConstants.COMPONENT_URL_CLICKED]: refbet,\n };\n\n this.trackingService.triggerEventWithCleaning(trackingConstants.EVENT_TRACKING, trackData);\n }\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport { OptionQuery } from '../navigation-core/pick-uri.model';\nimport { IRootState } from '../store/root.state';\n\nexport const shareMyBetFeatureKey = 'shareMyBet';\n\nexport interface IShareMyBetRootState extends IRootState {\n shareMyBet: IShareMyBetState;\n}\n\nexport const shareMyBetStateSelector = createFeatureSelector(shareMyBetFeatureKey);\nexport const receivingStateSelector = createSelector(shareMyBetStateSelector, (state: IShareMyBetState) => state.receivingState);\nexport const sharingStateSelector = (betslipId: string) =>\n createSelector(shareMyBetStateSelector, (state: IShareMyBetState) => state.sharingStates[betslipId]);\n\nexport interface IPlacedBetInfo {\n picksParams: OptionQuery[];\n betslipId: string;\n location: string;\n betType: string;\n pickCount: number;\n eventName?: string;\n systemType?: string;\n}\n\nexport const defaultPlacedBetInfo: IPlacedBetInfo = {\n picksParams: [],\n betslipId: '',\n location: '',\n betType: '',\n pickCount: 0,\n};\n\nexport interface ISharingState {\n uri: string;\n isCopyLinkDialogOpen: boolean;\n isCopied: boolean;\n betInfo: IPlacedBetInfo;\n}\n\nexport const defaultSharingState: ISharingState = {\n uri: '',\n isCopyLinkDialogOpen: false,\n isCopied: false,\n betInfo: defaultPlacedBetInfo,\n};\n\nexport interface IReceivingState {\n pickCount: number;\n showImportMessage: boolean;\n}\n\nexport const defaultReceivingState: IReceivingState = {\n pickCount: 0,\n showImportMessage: false,\n};\n\nexport interface IShareMyBetState {\n betslipId: string; // Initialized after bet placement\n sharingStates: { [key: string]: ISharingState };\n receivingState: IReceivingState;\n}\n\nexport const defaultShareMyBetState: IShareMyBetState = {\n betslipId: '',\n sharingStates: {},\n receivingState: defaultReceivingState,\n};\n","@if (shareMyBetState$ | async; as shareMyBet) {\n @if (shareMyBet.sharingStates[betslipId]; as state) {\n @if (state.isCopyLinkDialogOpen) {\n
\n @if (withHeader) {\n
\n {{ sitecore.shareMyBet.messages.CopyTitle }}\n \n
\n }\n
{{ sitecore.shareMyBet.messages.CopyMessage }}
\n \n
{{ getCopyText(state.isCopied) }}
\n
\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, inject } from '@angular/core';\n\nimport { MyBetsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IShareMyBetRootState, IShareMyBetState, ISharingState, shareMyBetStateSelector } from './share-my-bet.state';\n\n@Component({\n selector: 'ms-share-my-bet-copy',\n templateUrl: './share-my-bet-copy.html',\n styleUrl: './share-my-bet-copy.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShareMyBetCopyComponent {\n @Input() betslipId: string;\n @Input() location: string;\n @Input() withHeader: boolean;\n\n shareMyBetState$: Observable;\n enableRedesignedBetCard: boolean;\n\n private readonly _doc = inject(DOCUMENT);\n\n constructor(\n public sitecore: Sitecore,\n private shareMyBetService: ShareMyBetService,\n private store: Store,\n private mybetsConfig: MyBetsConfig,\n ) {\n this.shareMyBetState$ = store.select(shareMyBetStateSelector);\n this.enableRedesignedBetCard = this.mybetsConfig.enableRedesignedBetCard;\n }\n\n copy(betslipId: string, sharingState: ISharingState): void {\n if (sharingState.isCopied) {\n return;\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.CopyShareLinkClick, this.location, betslipId);\n\n this.store.dispatch(ShareMyBetActions.copyShortUri({ payload: { betslipId, uri: sharingState.uri } }));\n }\n\n closeDialog(betslipId: string): void {\n this.store.dispatch(ShareMyBetActions.closeCopyLinkDialog({ betslipId }));\n }\n\n getCopyText(isCopied: boolean): string {\n return isCopied ? this.sitecore.shareMyBet.messages.Copied : this.sitecore.shareMyBet.messages.Copy;\n }\n\n isToolbarExpanded(): string {\n const element = this._doc.getElementById(this.betslipId);\n\n if (!element) {\n return '';\n }\n\n return element.getElementsByClassName('my-bets-toolbar')[0].classList.contains('expanded') ? 'expanded' : '';\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { NativeAppService } from '@frontend/vanilla/core';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { BridgeEvent } from '../event-bridge/event-bridge.service';\n\n@Injectable()\nexport class ShareMyBetNativeMessageService implements OnDestroy {\n private subscription: Subscription | undefined;\n\n constructor(\n private toaster: ToasterService,\n private nativeAppService: NativeAppService,\n private sitecore: Sitecore,\n private shareMyBetConfig: ShareMyBetConfig,\n ) {}\n\n listen(): void {\n this.subscription = this.nativeAppService.eventsFromNative\n .pipe(filter((e) => e.eventName === BridgeEvent.BetSharedSuccessfully))\n .subscribe(() => this.showToasterMessage());\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n private showToasterMessage(): void {\n this.toaster.open(this.sitecore.shareMyBet.messages.ShareSuccess, { duration: this.shareMyBetConfig.globalErrorVisibilityTime });\n }\n}\n","import { Component } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\n\nimport { ShareMyBetService } from './share-my-bet.service';\n\n@Component({\n selector: 'ms-share-my-bet-onboarding',\n templateUrl: './share-my-bet-onboarding.html',\n})\nexport class ShareMyBetOnboardingComponent {\n constructor(\n public sitecore: Sitecore,\n private shareMyBetService: ShareMyBetService,\n ) {}\n\n hideOnboarding(event: Event): void {\n event.stopPropagation();\n\n this.shareMyBetService.setOnboardingShown();\n }\n}\n","
{{ sitecore.shareMyBet.messages.OnboardingText }}
\n
\n","import { Injectable } from '@angular/core';\n\nimport { ISavedState, StateLoader, StateSaver } from '../store-persist/state-storage.model';\nimport { IShareMyBetState, ISharingState, defaultShareMyBetState } from './share-my-bet.state';\n\nexport interface IShareMyBetStateStorage {\n sharingStates: { [key: string]: ISharingState };\n}\n\nexport interface IShareMyBetSavedState extends ISavedState {\n shareMyBet: IShareMyBetStateStorage;\n}\n\nexport function isShareMyBetSavedState(savedState: ISavedState | undefined): savedState is IShareMyBetSavedState {\n return !!savedState && 'shareMyBet' in savedState;\n}\n\n@Injectable()\nexport class ShareMyBetStateSaver implements StateSaver {\n save(state: IShareMyBetState): IShareMyBetStateStorage {\n return {\n sharingStates: state.sharingStates,\n };\n }\n}\n\n@Injectable()\nexport class ShareMyBetStateLoader implements StateLoader {\n load(state: IShareMyBetStateStorage | undefined): IShareMyBetState {\n if (!state) {\n return { ...defaultShareMyBetState };\n }\n\n return {\n ...defaultShareMyBetState,\n sharingStates: state.sharingStates,\n };\n }\n}\n","@if (shareMyBetConfig.isEnabled) {\n @if (shareMyBetState$ | async; as shareMyBetState) {\n \n @if (showOnboarding()) {\n \n }\n @if (!shouldShowShareMyBetLabel()) {\n
\n {{ sitecore.shareMyBet.messages.Title }}\n\n @if (hasArrow(shareMyBetState)) {\n \n }\n
\n }\n @if (shareMyBetConfig.isNewBadgeEnabled) {\n {{ sitecore.globalMessages.NewBadgeText }}\n }\n \n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnDestroy, input } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ButtonType } from '@frontend/sports/modal/feature';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\n\nimport { EpcotConfigService, EpcotModule } from '../common/epcot-config.service';\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { BetReceiptTrackingLocation, ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IPlacedBetInfo, IShareMyBetRootState, IShareMyBetState, defaultSharingState, shareMyBetStateSelector } from './share-my-bet.state';\n\n@Component({\n selector: 'ms-share-my-bet',\n templateUrl: './share-my-bet.html',\n styleUrl: './share-my-bet.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ShareMyBetComponent implements OnDestroy {\n @Input() placedBetInfo: IPlacedBetInfo;\n @Input() expandable: boolean;\n shouldShowShareMyBetLabel = input(false);\n\n @HostBinding('class') get className() {\n return {\n 'share-my-bet__button': this.shareMyBetConfig.isEnabled,\n 'device-mobile': this.deviceService.isMobile,\n 'share-my-bet__button--epcot': this.shareMyBetConfig.isEnabled && this.isEpcot,\n };\n }\n\n @HostBinding('class.small') get small(): boolean {\n return this.size() === 'small';\n }\n\n size = input<'small' | 'medium' | 'large'>();\n\n shareMyBetState$: Observable;\n\n sharingState = defaultSharingState;\n\n private readonly isEpcot = this.epcotConfig.isEnabled(EpcotModule.Betslip);\n\n constructor(\n public sitecore: Sitecore,\n public shareMyBetConfig: ShareMyBetConfig,\n private shareMyBetService: ShareMyBetService,\n private deviceService: DeviceService,\n private store: Store,\n private epcotConfig: EpcotConfigService,\n ) {\n this.shareMyBetState$ = store.select(shareMyBetStateSelector);\n }\n\n ngOnDestroy(): void {\n if (this.sharingState.isCopyLinkDialogOpen) {\n this.destroy();\n }\n }\n\n showOnboarding(): boolean {\n return (\n this.shareMyBetConfig.isOnboardingEnabled &&\n !this.shareMyBetService.isOnboardingShown() &&\n this.placedBetInfo.location === BetReceiptTrackingLocation\n );\n }\n\n hasArrow(shareMyBetState: IShareMyBetState): boolean {\n this.sharingState = shareMyBetState.sharingStates[this.placedBetInfo.betslipId] || defaultSharingState;\n\n return this.expandable && this.sharingState.isCopyLinkDialogOpen;\n }\n\n onShareButtonClick(shareMyBetState: IShareMyBetState): void {\n this.sharingState = shareMyBetState.sharingStates[this.placedBetInfo.betslipId] || defaultSharingState;\n\n if (this.sharingState.isCopyLinkDialogOpen) {\n return;\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.ShareMyBetClick, this.placedBetInfo.location);\n\n const showCompliance = !this.shareMyBetService.isComplianceShown();\n\n if (showCompliance && !this.deviceService.isMobile) {\n this.shareMyBetService.getComplianceDialog().result.then((buttonType: ButtonType) => {\n if (buttonType === ButtonType.Ok) {\n this.shareMyBetService.setComplianceShown();\n\n this.initGenerateShortUri();\n }\n });\n } else {\n this.initGenerateShortUri();\n }\n }\n\n onToggleClick(event: Event): void {\n event.stopPropagation();\n\n this.store.dispatch(ShareMyBetActions.closeCopyLinkDialog({ betslipId: this.placedBetInfo.betslipId }));\n }\n\n private initGenerateShortUri(): void {\n this.store.dispatch(ShareMyBetActions.initGenerateShortUri({ payload: this.placedBetInfo }));\n }\n\n private destroy(): void {\n this.store.dispatch(ShareMyBetActions.destroyState({ betslipId: this.placedBetInfo.betslipId }));\n }\n}\n","import { pprops } from '@frontend/sports/common/core/utils/redux';\nimport { ParsedUrl } from '@frontend/vanilla/core';\nimport { createAction, props } from '@ngrx/store';\n\nexport class ShareMyBetApiActions {\n private static readonly ADD_BETSLIP_ID = '@share-my-bet/ADD_BETSLIP_ID';\n private static readonly HANDLE_SHARE_BET = '@share-my-bet/HANDLE_SHARE_BET';\n\n static addBetslipId = createAction(ShareMyBetApiActions.ADD_BETSLIP_ID, props<{ betslipId: string }>());\n static handleShareBet = createAction(ShareMyBetApiActions.HANDLE_SHARE_BET, pprops<{ pickCount: number; uri: ParsedUrl }>());\n}\n","import { Injectable } from '@angular/core';\n\nimport { ShareMyBetConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { noopAction } from '@frontend/sports/common/core/utils/redux';\nimport { StringInterpolationPipe } from '@frontend/sports/common/core/utils/string-interpolation';\nimport { ButtonType } from '@frontend/sports/modal/feature';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\nimport { DeviceService } from '@frontend/vanilla/core';\nimport { ClipboardService } from '@frontend/vanilla/shared/clipboard';\nimport { ShareService } from '@frontend/vanilla/shared/share';\nimport { Actions, OnInitEffects, createEffect, ofType } from '@ngrx/effects';\nimport { Action, Store } from '@ngrx/store';\nimport { from, of, pipe } from 'rxjs';\nimport { concatMap, debounceTime, map, switchMap, tap, withLatestFrom } from 'rxjs/operators';\n\nimport { BridgeEvent } from '../event-bridge/event-bridge.service';\nimport { BetslipConstants } from '../navigation-core/pick-uri.model';\nimport { ShareMyBetApiActions } from '../share-my-bet-api/actions';\nimport StoragePersister from '../store-persist/storage-persister';\nimport { ShareMyBetStateLoader, isShareMyBetSavedState } from './share-my-bet-state-storage';\nimport { ShareMyBetActions } from './share-my-bet.actions';\nimport { ShareMyBetTracking } from './share-my-bet.models';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { IPlacedBetInfo, IShareMyBetRootState, sharingStateSelector } from './share-my-bet.state';\n\n@Injectable()\nexport class ShareMyBetEffect implements OnInitEffects {\n private RECEIVED_BET_MESSAGE_VISIBILITY_TIME_MS = 6000;\n private COPIED_BUTTON_VISIBILITY_TIME_MS = 3000;\n\n constructor(\n private actions$: Actions,\n private store: Store,\n private shareMyBetService: ShareMyBetService,\n public shareMyBetConfig: ShareMyBetConfig,\n private deviceService: DeviceService,\n private toaster: ToasterService,\n public sitecore: Sitecore,\n private interpolationPipe: StringInterpolationPipe,\n private clipboardService: ClipboardService,\n private shareService: ShareService,\n private persister: StoragePersister,\n private stateLoader: ShareMyBetStateLoader,\n ) {}\n\n initGenerateShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.initGenerateShortUri),\n concatMap((action) => of(action).pipe(withLatestFrom(this.store.select(sharingStateSelector(action.payload.betslipId))))),\n concatMap(([action, sharingState]) => {\n if (sharingState?.uri) {\n return [ShareMyBetActions.share({ payload: { uri: sharingState.uri, betInfo: sharingState.betInfo } })];\n }\n\n return [ShareMyBetActions.generateShortUri({ payload: action.payload })];\n }),\n );\n });\n\n generateShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.generateShortUri),\n concatMap((action) =>\n this.shareMyBetService.shortenUri(action.payload).pipe(\n switchMap((uri: string) => {\n const showBetSharingConfirmationOnlyOnFirstBetShare = this.shareMyBetConfig.showBetSharingConfirmationOnlyOnFirstBetShare;\n const isComplianceShown = showBetSharingConfirmationOnlyOnFirstBetShare && this.shareMyBetService.isComplianceShown();\n const showConfirmationDialog = !isComplianceShown && this.deviceService.isMobile;\n\n if (showConfirmationDialog) {\n return from(this.shareMyBetService.getComplianceDialog().result).pipe(\n concatMap((button: ButtonType) => {\n if (button === ButtonType.Cancel) {\n return [];\n }\n\n if (showBetSharingConfirmationOnlyOnFirstBetShare) {\n this.shareMyBetService.setComplianceShown();\n }\n return of(ShareMyBetActions.share({ payload: { uri, betInfo: action.payload } }));\n }),\n );\n }\n return [ShareMyBetActions.share({ payload: { uri, betInfo: action.payload } })];\n }),\n ),\n ),\n );\n });\n\n share$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.share),\n concatMap((action) => {\n if (!this.shareMyBetService.isOnboardingShown()) {\n this.shareMyBetService.setOnboardingShown();\n }\n\n const betInfo = action.payload.betInfo;\n\n if (this.deviceService.isMobile) {\n this.shareService\n .share(\n {\n title: this.sitecore.shareMyBet.messages.Title,\n url: action.payload.uri,\n text: this.getShareText(betInfo),\n },\n BridgeEvent.ShareMyBet,\n )\n .then((success: boolean) => {\n if (success) {\n if (!this.deviceService.isiOS) {\n this.showToasterMessage();\n }\n\n this.shareMyBetService.doSenderTracking(ShareMyBetTracking.BetShared, betInfo.location, betInfo.betslipId);\n } else {\n this.shareMyBetService.showNotSupportedDialog();\n }\n });\n\n return [];\n }\n\n return [ShareMyBetActions.openCopyLinkDialog({ betslipId: betInfo.betslipId })];\n }),\n );\n });\n\n receiveBet$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.receiveBet),\n pipe(\n debounceTime(this.RECEIVED_BET_MESSAGE_VISIBILITY_TIME_MS),\n map(() => ShareMyBetActions.removeReceiveBetMessage()),\n ),\n );\n });\n\n handleShareBet$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetApiActions.handleShareBet),\n concatMap((action) => {\n const uri = action.payload.uri;\n const refbet = decodeURIComponent(uri.search.get(ShareMyBetTracking.RefBet) || ShareMyBetTracking.NotApplicable);\n\n if (action.payload.pickCount) {\n if (refbet === ShareMyBetTracking.NotApplicable) {\n return [];\n }\n\n this.shareMyBetService.setRefbet(refbet);\n\n return [ShareMyBetActions.receiveBet({ pickCount: action.payload.pickCount })];\n }\n\n this.shareMyBetService.showUriExpiredDialog(refbet);\n\n return [];\n }),\n );\n });\n\n copyShortUri$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(ShareMyBetActions.copyShortUri),\n tap((action) => {\n this.clipboardService.copy(action.payload.uri);\n }),\n debounceTime(this.COPIED_BUTTON_VISIBILITY_TIME_MS),\n map((action) => ShareMyBetActions.removeCopied({ betslipId: action.payload.betslipId })),\n );\n });\n\n // handleSaveToStorageEffect$ = createEffect(() =>\n // \tthis.actions$.pipe(\n // \t\tfilter(action => action.type.startsWith('@share-my-bet')),\n // \t\tdebounceTime(ShareMyBetEffect.SAVE_STATE_DEBOUNCE_TIME),\n // \t\twithLatestFrom(this.store.pipe(select(shareMyBetStateSelector))),\n // \t\tmap(([actions, state]) => {\n // \t\t\tconst savedState = this.stateSaver.save(state);\n //\n // \t\t\t// return RootActions.saveState({\n // \t\t\t// \tpayload: {\n // \t\t\t// \t\tshareMyBet: savedState,\n // \t\t\t// \t} as IShareMyBetSavedState,\n // \t\t\t// });\n // \t\t})\n // \t)\n // );\n\n ngrxOnInitEffects(): Action {\n const state = this.persister.load();\n if (isShareMyBetSavedState(state)) {\n const shareMyBetState = this.stateLoader.load(state.shareMyBet);\n\n return ShareMyBetActions.populateFromStorage({ payload: shareMyBetState });\n }\n\n return noopAction;\n }\n\n private getShareText(betInfo: IPlacedBetInfo): string {\n let translation: string;\n let shareText: string;\n\n if (betInfo.betType === BetslipConstants.Single) {\n translation = this.sitecore.shareMyBet.messages.SingleBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n eventName: betInfo.eventName,\n });\n } else if (betInfo.betType === BetslipConstants.Combo) {\n translation = this.sitecore.shareMyBet.messages.MultiBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n pickCount: betInfo.pickCount,\n });\n } else {\n translation = this.sitecore.shareMyBet.messages.SystemBetShareText;\n shareText = this.interpolationPipe.transform(translation, {\n systemType: betInfo.systemType,\n });\n }\n\n return shareText;\n }\n\n private showToasterMessage(): void {\n this.toaster.open(this.sitecore.shareMyBet.messages.ShareSuccess, { duration: this.shareMyBetConfig.globalErrorVisibilityTime });\n }\n}\n","import { objectEntries } from '@frontend/sports/common/core/utils/collection';\nimport { createReducer, on } from '@ngrx/store';\nimport produce from 'immer';\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: objectEntries(action.payload.sharingStates).reduce(\n (aggr, current) => {\n aggr[current.key] = {\n uri: current.value.uri,\n betInfo: {\n ...current.value.betInfo,\n picksParams: current.value.betInfo.picksParams.map((pp) => ({ ...pp })),\n },\n isCopied: false,\n isCopyLinkDialogOpen: false,\n };\n\n return aggr;\n },\n {} as { [key: string]: ISharingState },\n ),\n })),\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { NavigationCoreModule } from '../navigation-core/navigation-core.module';\nimport { ShareMyBetCopyComponent } from './share-my-bet-copy.component';\nimport { ShareMyBetNativeMessageService } from './share-my-bet-native-message.service';\nimport { ShareMyBetOnboardingComponent } from './share-my-bet-onboarding.component';\nimport { ShareMyBetStateLoader, ShareMyBetStateSaver } from './share-my-bet-state-storage';\nimport { ShareMyBetComponent } from './share-my-bet.component';\nimport { ShareMyBetEffect } from './share-my-bet.epic';\nimport { shareMyBetReducer } from './share-my-bet.reducer';\nimport { ShareMyBetService } from './share-my-bet.service';\nimport { shareMyBetFeatureKey } from './share-my-bet.state';\n\n@NgModule({\n declarations: [ShareMyBetComponent, ShareMyBetCopyComponent, ShareMyBetOnboardingComponent],\n imports: [\n CommonModule,\n NavigationCoreModule,\n StoreModule.forFeature(shareMyBetFeatureKey, shareMyBetReducer),\n EffectsModule.forFeature([ShareMyBetEffect]),\n ],\n exports: [ShareMyBetComponent, ShareMyBetCopyComponent],\n providers: [ShareMyBetStateSaver, ShareMyBetStateLoader, ShareMyBetService, ShareMyBetNativeMessageService],\n})\nexport class ShareMyBetModule {\n constructor(private shareMyBetNativeMessageService: ShareMyBetNativeMessageService) {\n this.shareMyBetNativeMessageService.listen();\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'ms-sgp-plus-badge',\n template: `
`,\n styleUrl: './sgp-plus-badge.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SGPPlusBadgeComponent {\n @HostBinding('class.large') get large(): boolean {\n return this.size() === 'large';\n }\n\n size = input<'large'>();\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\nimport { isDefined } from '@frontend/sports/common/core/utils/extended-types';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\n@Pipe({\n name: 'msAccaBoostRatio',\n})\nexport class AccaBoostRatioPipe implements PipeTransform {\n transform(ratio: number | undefined, prefix: boolean = true, template?: string): string {\n return isDefined(ratio) ? this.format(ratio, prefix, template) : '';\n }\n\n private format(ratio: number, prefix: boolean, template?: string): string {\n const boostRatio = new Decimal(ratio).times(100).toString();\n const formatted = `${prefix ? '+' : ''}${boostRatio}%`;\n\n return template ? this.replaceBoostPlaceholder(template, formatted) : formatted;\n }\n\n private replaceBoostPlaceholder(template: string, boost: string): string {\n return interpolateDoubleBracesString(template, {\n boost,\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { OddsBoostFormula } from '@bpos';\nimport { AccaBoostConfig, BetslipConfig } from '@frontend/sports/common/client-config-data-access';\nimport { CalculatedOdds, OddsOperations } from '@frontend/sports/odds/feature';\nimport { NativePriceCalculatorService } from '@frontend/sports/odds/feature/native-price-calculator';\nimport { AccaBoostCalculations } from '@frontend/sports/types/components/acca-boost';\nimport { OddsDisplayFormat } from '@frontend/sports/types/models/user-settings';\nimport { Decimal } from 'decimal.js';\n\n@Injectable({ providedIn: 'root' })\nexport class TokensCalculatorService {\n constructor(\n private betslipConfig: BetslipConfig,\n private accaBoostConfig: AccaBoostConfig,\n ) {}\n\n getBoostedNativeOdds2(\n price: CalculatedOdds | null,\n boostFactor: number,\n oddsBoostFormula: OddsBoostFormula,\n oddsFormat?: OddsDisplayFormat,\n ): CalculatedOdds | null {\n if (!price) {\n return null;\n }\n\n const boostFactorDecimalValue = new Decimal(boostFactor).dividedBy(100);\n const boostMultiplier = boostFactorDecimalValue.plus(1);\n const decimal = OddsOperations.toDecimalValue(price, oddsFormat);\n let boostedOdds = NativePriceCalculatorService.multiplyDecimal(decimal, boostMultiplier, this.betslipConfig.roundPriceValues);\n if (oddsBoostFormula === OddsBoostFormula.Profit) {\n boostedOdds = boostedOdds.minus(boostFactorDecimalValue);\n }\n\n return OddsOperations.fromDecimalValue(boostedOdds);\n }\n\n // if no riskFree or betandget Percentage or stake is supplied, then no calculation will happen\n // and maxPayout is considered as returnAmount\n getTokenPercentageReturns(maxPayout: number, riskFreePercentage?: number, stake?: number, minPayout?: number): number {\n if (riskFreePercentage !== undefined && stake !== undefined) {\n const decimalPercentage = new Decimal(riskFreePercentage);\n const decimalStake = new Decimal(stake);\n const payout = decimalPercentage.times(decimalStake).div(100).toNumber();\n if (minPayout && payout < minPayout) {\n return minPayout;\n }\n\n return Math.min(maxPayout, payout);\n } else {\n return maxPayout;\n }\n }\n\n getAccaBoostReturns(possibleWinnings: Decimal, stake: number, maxBoost: Decimal, boostRatio: Decimal): Decimal {\n if (this.accaBoostConfig.accaBoostCalculation === AccaBoostCalculations.Profit) {\n possibleWinnings = possibleWinnings.minus(stake);\n }\n const calculatedBoost = possibleWinnings.times(boostRatio);\n\n return Decimal.min(calculatedBoost, maxBoost);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { CrmConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\nimport { interpolateDoubleBracesString } from '@frontend/sports/common/core/utils/string';\nimport Decimal from 'decimal.js';\nimport { round, trim } from 'lodash-es';\nimport { AccaBoostToken, BetAndGetToken } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { getAccaBoostRatio } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\n\nimport { AccaBoostRatioPipe } from '../acca-boost-base/acca-boost-ratio.pipe';\nimport { PayoutType, RewardTokenType, RewardTriggerType } from './token-base.models';\nimport { TokensCalculatorService } from './tokens-calculator.service';\n\nexport enum PayoutInfoLocation {\n Summary = 'Summary',\n Drawer = 'Drawer',\n}\n\ntype DisplayPayoutTypes = RewardTokenType.FreeBet | RewardTokenType.OddsBoost | RewardTokenType.RiskFreeBet | RewardTokenType.BetAndGet;\ntype DisplayPayoutTypesMap = { [payoutDisplay in DisplayPayoutTypes]: { [payoutType in PayoutType]: string } | undefined };\n\nconst PRECISION = 2;\n\n@Injectable({ providedIn: 'root' })\nexport class TokensSummaryService {\n private readonly displayPayoutTypes: DisplayPayoutTypesMap;\n\n constructor(\n private moneyService: MoneyService,\n private crmConfig: CrmConfig,\n private tokensCalculator: TokensCalculatorService,\n private sitecore: Sitecore,\n private accaBoostRatioPipe: AccaBoostRatioPipe,\n ) {\n this.displayPayoutTypes = this.createDisplayPayoutTypes();\n }\n\n getBoostedWinningsSummary(payoutType: PayoutType, winningsBoost: Decimal | null): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.OddsBoost, payoutType)) {\n const winningsBoostFormatted = this.moneyService.transform(winningsBoost, true);\n const displayPayoutType = this.getDisplayPayoutType(payoutType, RewardTokenType.OddsBoost);\n\n return interpolateDoubleBracesString(this.sitecore.crmTokens.oddsBoost.betslipSummary.IncludedBoostedWinnings, {\n winningsBoost: winningsBoostFormatted,\n payoutType: displayPayoutType,\n });\n }\n\n return '';\n }\n\n // if no riskFreePercentage or stake is supplied, then no calculation will happen\n // and maxPayout is considered as returnAmount\n getRiskFreeSummary(\n payoutType: PayoutType,\n maxPayout: number,\n riskFreePercentage?: number,\n stake?: number,\n noOfSlabs?: number,\n slabAmount?: number,\n ): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.RiskFreeBet, payoutType)) {\n const riskFreeReturns = this.tokensCalculator.getTokenPercentageReturns(maxPayout, riskFreePercentage, stake);\n const incrementalPayout = this.getIncrementalDetails(payoutType, riskFreeReturns, noOfSlabs, slabAmount) ?? 0;\n const displayPayoutType =\n incrementalPayout > 0\n ? this.sitecore.crmTokens.riskFree.betslipSummary.IncrementalPayoutFreebet\n : this.getDisplayPayoutType(payoutType, RewardTokenType.RiskFreeBet);\n const payoutSummaryTemplate =\n incrementalPayout > 0\n ? this.sitecore.crmTokens.riskFree.betslipSummary.RiskFreeIncrementalPayoutSummary\n : this.sitecore.crmTokens.riskFree.betslipSummary.RiskFreePayoutSummary;\n\n return interpolateDoubleBracesString(payoutSummaryTemplate, {\n payoutType: displayPayoutType,\n amount: this.moneyService.transform(riskFreeReturns, true),\n noOfSlabs: noOfSlabs ?? 1,\n payout: this.moneyService.transform(incrementalPayout, true),\n });\n }\n\n return '';\n }\n\n getBetAndGetSummary(token: BetAndGetToken): string {\n if (this.isPayoutInfoEnabled(PayoutInfoLocation.Summary, RewardTokenType.BetAndGet, token.payoutType)) {\n let displayPayoutTemplate = this.sitecore.crmTokens.betAndGet.betslipSummary.BetAndGetPayoutSummary;\n let displayPayoutValue = this.moneyService.transform(token.payoutValue, true);\n let displayPayoutType = '';\n let displayMaxPayoutValue = '';\n\n if (token.percentagePayout) {\n displayPayoutTemplate = this.sitecore.crmTokens.betAndGet.betslipSummary.BetAndGetPercentagePayoutSummary;\n displayPayoutValue = token.percentagePayout.toString();\n displayMaxPayoutValue = this.moneyService.transform(token.maximumPayout, true);\n }\n\n const displayRewardTriggerType =\n token.rewardTriggerType === RewardTriggerType.BetPlacement\n ? this.sitecore.crmTokens.betAndGet.betslipSummary.BetPlacementTemplate\n : this.sitecore.crmTokens.betAndGet.betslipSummary.BetSettlementTemplate;\n\n switch (token.payoutType) {\n case PayoutType.Bonus:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.BonusPayoutTemplate;\n break;\n case PayoutType.Cash:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.CashPayoutTemplate;\n break;\n case PayoutType.FreeBet:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.FreebetPayoutTemplate;\n break;\n case PayoutType.OddsBoostToken:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.OddsBoostPayoutTemplate;\n displayPayoutValue = '';\n displayMaxPayoutValue = '';\n break;\n case PayoutType.RiskFreeToken:\n displayPayoutType = this.sitecore.crmTokens.betAndGet.betslipSummary.RiskFreePayoutTemplate;\n displayPayoutValue = '';\n displayMaxPayoutValue = '';\n break;\n }\n\n return trim(\n interpolateDoubleBracesString(displayPayoutTemplate, {\n payoutType: displayPayoutType,\n value: displayPayoutValue,\n maxAmount: displayMaxPayoutValue,\n triggerType: displayRewardTriggerType,\n }),\n );\n }\n\n return '';\n }\n\n isPayoutInfoEnabled(location: PayoutInfoLocation, tokenType: RewardTokenType, payoutType: PayoutType): boolean {\n const payoutInfo = location === PayoutInfoLocation.Summary ? this.crmConfig.tokens.summaryPayoutInfo : this.crmConfig.tokens.drawerPayoutInfo;\n let config;\n switch (tokenType) {\n case RewardTokenType.OddsBoost:\n config = payoutInfo.oddsBoost;\n break;\n case RewardTokenType.RiskFreeBet:\n config = payoutInfo.riskFree;\n break;\n case RewardTokenType.BetAndGet:\n config = payoutInfo.betAndGet;\n break;\n }\n\n return config\n ? {\n [PayoutType.Bonus]: config.bonus,\n [PayoutType.FreeBet]: config.freeBet,\n [PayoutType.Cash]: config.cash,\n [PayoutType.BonusNoWager]: false,\n [PayoutType.OddsBoostToken]: config.oddsBoostToken,\n [PayoutType.RiskFreeToken]: config.riskFreeToken,\n }[payoutType]\n : false;\n }\n\n getAccaBoostSummary(token: AccaBoostToken, pickCount: number): string {\n const ratio = getAccaBoostRatio(token, pickCount).toNumber();\n return this.getAccaBoostSummaryByRatio(ratio);\n }\n\n getAccaBoostSummaryByRatio(ratio: number): string {\n return this.accaBoostRatioPipe.transform(ratio, false, this.sitecore.accaBoost.BetslipBoostingInfo);\n }\n\n getDisplayPayoutType(payoutType: PayoutType, tokenType: RewardTokenType): string {\n const displayPayoutTypes = this.displayPayoutTypes[tokenType as keyof typeof this.displayPayoutTypes];\n\n return displayPayoutTypes ? (displayPayoutTypes[payoutType] ?? '') : '';\n }\n\n private createDisplayPayoutTypes(): DisplayPayoutTypesMap {\n return {\n [RewardTokenType.OddsBoost]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeFreebet,\n [PayoutType.Bonus]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeBonus,\n [PayoutType.Cash]: this.sitecore.crmTokens.oddsBoost.betslipSummary.PayoutTypeCash,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: '',\n [PayoutType.RiskFreeToken]: '',\n },\n [RewardTokenType.RiskFreeBet]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeFreebet,\n [PayoutType.Bonus]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeBonus,\n [PayoutType.Cash]: this.sitecore.crmTokens.riskFree.betslipSummary.PayoutTypeCash,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: '',\n [PayoutType.RiskFreeToken]: '',\n },\n [RewardTokenType.FreeBet]: undefined,\n [RewardTokenType.BetAndGet]: {\n [PayoutType.FreeBet]: this.sitecore.crmTokens.betAndGet.betslipSummary.FreebetPayoutTemplate,\n [PayoutType.Bonus]: this.sitecore.crmTokens.betAndGet.betslipSummary.BonusPayoutTemplate,\n [PayoutType.Cash]: this.sitecore.crmTokens.betAndGet.betslipSummary.CashPayoutTemplate,\n [PayoutType.BonusNoWager]: '',\n [PayoutType.OddsBoostToken]: this.sitecore.crmTokens.betAndGet.betslipSummary.OddsBoostPayoutTemplate,\n [PayoutType.RiskFreeToken]: this.sitecore.crmTokens.betAndGet.betslipSummary.RiskFreePayoutTemplate,\n },\n };\n }\n\n private getIncrementalDetails(payoutType: PayoutType, actualPayout?: number, noOfSlabs?: number, slabAmount?: number): number | undefined {\n if (payoutType === PayoutType.FreeBet && actualPayout && noOfSlabs && noOfSlabs > 1) {\n return slabAmount ?? round(actualPayout / noOfSlabs, PRECISION);\n }\n\n return;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NewCustomerBettingOfferConfig } from '@frontend/sports/common/client-config-data-access';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomerOfferService {\n constructor(private customerOfferConfig: NewCustomerBettingOfferConfig) {}\n\n isNewCustomerOffer(leagueId: number | undefined): boolean {\n return leagueId !== undefined && leagueId === this.customerOfferConfig.competitionId;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { InternalFeaturesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { BalanceProperties } from '@frontend/vanilla/core';\n\ntype BalanceWithTime = { accountBalance: number; time: string } | null;\n\n@Injectable({ providedIn: 'root' })\nexport class AccountBalanceLoggerService {\n private readonly logger: SportsRemoteLogger;\n //The last balance property emission from Vanilla balance service\n private lastBalanceProperty: (BalanceProperties & { time: string }) | { balanceInfo: null; time: string } | null;\n //The last balance value that was validated in the betslip\n private lastValidatedBalance: BalanceWithTime;\n //The balance amount that was validated before the last successful bet placement\n private balancePropertiesPostLastPlacement: BalanceWithTime;\n //The amount generated from our formula calculation\n private lastWalletBalanceAmount: BalanceWithTime;\n // a flag to ensure balance properties updates that are happening as bet placement is ongoing should be ignored\n private isPlacing = false;\n\n /**\n * This service will try to collect relevant balance data and log them when an insufficient funds error is returned.\n *\n * @param loggerFactory\n */\n constructor(\n loggerFactory: LoggerFactory,\n private internalFeatureConfig: InternalFeaturesConfig,\n ) {\n this.logger = loggerFactory.getLogger('AccountBalanceLogger');\n }\n\n freezeLogWhilePlacement() {\n this.isPlacing = true;\n }\n\n enableLogs() {\n this.reset();\n }\n\n setBalanceInfo(balanceInfo: BalanceProperties | null) {\n if (this.isPlacing) {\n return;\n }\n if (balanceInfo) {\n this.lastBalanceProperty = {\n ...balanceInfo,\n time: this.getCurrentFormattedDate(),\n };\n } else {\n this.lastBalanceProperty = {\n balanceInfo: null,\n time: this.getCurrentFormattedDate(),\n };\n }\n }\n\n setBalanceInfoPostSuccessfulBetPlacement() {\n this.balancePropertiesPostLastPlacement = this.lastValidatedBalance;\n }\n\n setLastValidatedBalance(accountBalance: number) {\n if (this.isPlacing) {\n return;\n }\n this.lastValidatedBalance = this.buildBalanceAndTimeObject(accountBalance);\n }\n\n setLastWalletBalance(accountBalance: number) {\n if (this.isPlacing) {\n return;\n }\n this.lastWalletBalanceAmount = this.buildBalanceAndTimeObject(accountBalance);\n }\n\n log(requestId: string) {\n if (!this.internalFeatureConfig.isBalanceLoggingEnabled) {\n return;\n }\n this.logger.error(this.getStringifiedLogObject(requestId));\n this.reset();\n }\n\n private buildBalanceAndTimeObject(accountBalance: number) {\n return {\n accountBalance,\n time: this.getCurrentFormattedDate(),\n };\n }\n\n private getStringifiedLogObject(requestId: string) {\n return JSON.stringify({\n message: 'Unexpected Insufficient Funds Error',\n requestId,\n lastBalanceProperty: this.lastBalanceProperty,\n lastValidatedBalance: this.lastValidatedBalance,\n balancePropertiesPostLastPlacement: this.balancePropertiesPostLastPlacement,\n lastWalletBalanceAmount: this.lastWalletBalanceAmount,\n });\n }\n\n private reset() {\n this.lastBalanceProperty = null;\n this.lastValidatedBalance = null;\n this.lastWalletBalanceAmount = null;\n this.isPlacing = false;\n }\n\n private getCurrentFormattedDate() {\n return new Date().toISOString();\n }\n}\n","export enum WalletType {\n Any = 'Any',\n PayPal = 'PayPal',\n Main = 'Main',\n}\n\nexport interface WalletItem {\n type: WalletType;\n amount: number;\n selected: boolean;\n title: string;\n shortTitle: string;\n icon: string;\n}\n\nexport enum WalletPersistenceType {\n Temporary = 'Temporary',\n Permanent = 'Permanent',\n}\n\nexport enum Tracking {\n Wallets = 'Wallets',\n PayPalWallet = 'PayPal Wallet',\n Desktop = 'Desktop V6',\n Mobile = 'Mobile V6',\n NotApplicable = 'not applicable',\n SportsSiteSection = 'Sports',\n DialogSelectorLabelEvent = 'PayPal - Choose Wallet Interceptor',\n Betslip = 'Betslip',\n}\n","import { Injectable } from '@angular/core';\n\nimport { LocalStoreService, SessionStoreService } from '@frontend/vanilla/core';\n\nimport { WalletType } from './account-balance.models';\n\n@Injectable({ providedIn: 'root' })\nexport class WalletStoreService {\n private walletTypeKey = 'walletType';\n private walletSelectorShownKey = 'walletSelectorIsShown';\n\n constructor(\n private localStoreService: LocalStoreService,\n private sessionStoreService: SessionStoreService,\n ) {}\n\n setSelectedWallet(walletType: WalletType, persistPermanently?: boolean): void {\n if (persistPermanently) {\n this.sessionStoreService.remove(this.walletTypeKey);\n this.localStoreService.set(this.walletTypeKey, walletType);\n } else {\n this.sessionStoreService.set(this.walletTypeKey, walletType);\n }\n }\n\n get isPermanentWallet(): boolean {\n return !!this.localStoreService.get(this.walletTypeKey);\n }\n\n get selectedWallet(): WalletType | null {\n return this.localStoreService.get(this.walletTypeKey) || this.sessionStoreService.get(this.walletTypeKey);\n }\n\n set walletSelectorIsShown(newValue: boolean) {\n this.sessionStoreService.set(this.walletSelectorShownKey, newValue);\n }\n\n get walletSelectorIsShown(): boolean {\n return !!this.sessionStoreService.get(this.walletSelectorShownKey);\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\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 /**\n * @param expectBalanceChange: use this parameter if an explicit change in balance properties is expected\n * @returns an observable that will emit once the balance values are updated\n * the observable will emit only once.\n */\n refresh(expectBalanceChange = true, balanceBeforeRefresh?: number): Observable {\n const oldBalance = balanceBeforeRefresh ? balanceBeforeRefresh : this.balanceProperties$.value?.accountBalance;\n this.balanceService.refresh();\n // this.bonusBalanceService.refresh();\n //enable balance logs on refresh.\n this.globalBalanceLogger.enableLogs();\n\n return this.currentBalanceObservable.pipe(\n //this is neccessary because currentBalanceObservable is a behavior subject\n skip(1),\n filter((data) => !!data && (!expectBalanceChange || data.accountBalance !== oldBalance)),\n take(1),\n //throw a timeout exception after 100 seconds\n timeout({\n each: this.accountBalanceConfig.timeout,\n with: (info) => throwError(() => new CustomTimeoutError(info)),\n }),\n catchError((err: Error) => {\n //try to retrigger balance refresh if the error was a timeout error\n //(is this even a good idea ?)\n if (err instanceof CustomTimeoutError) this.balanceService.refresh();\n throw err;\n }),\n //retry in case of failure\n retry({ count: this.accountBalanceConfig.retry, delay: this.accountBalanceConfig.retryDelay }),\n catchError((err: Error) => {\n //if you end up here, try tracing propagated errors and make sure that tolerateBalanceIndifference is passed correctly (false only when an explicit change is expected)\n this.logger.error(`Balance Refresh Failed ${err.name}`);\n //we add a catch here to set wallets to 0 to prevent unwanted behavior in case the balance refresh wasn't successful or didn't finish\n this.setWallets([]);\n //propagate error\n throw err;\n }),\n );\n }\n\n get availableWallets(): Observable {\n return this._availableWallets.asObservable();\n }\n\n get currentBalanceAmount(): number {\n return (this.selectedWallet && this.selectedWallet.amount) || 0;\n }\n\n get currentBalanceObservable(): Observable {\n return this.balanceService.balanceProperties;\n }\n\n get currentBalanceProperties(): BalanceProperties | null {\n return this.balanceProperties$.value;\n }\n\n get currentBonusBalanceObservable(): Observable {\n return this.bonusBalanceService.bonusBalance;\n }\n\n get selectedWallet(): WalletItem | undefined {\n return this._availableWallets.getValue().find((b) => b.selected);\n }\n\n get selectedWalletType$(): Observable {\n return this._selectedWalletType$.asObservable();\n }\n\n get availableBalance(): Observable {\n return this.balanceService.balanceProperties;\n }\n\n selectWallet(walletType: WalletType, persistanceType?: WalletPersistenceType): void {\n const isPermanentWallet =\n persistanceType === undefined ? this.walletStoreService.isPermanentWallet : persistanceType === WalletPersistenceType.Permanent;\n\n this.walletStoreService.setSelectedWallet(walletType, isPermanentWallet);\n this._selectedWalletType$.next(walletType);\n }\n\n private getDefaultWallet(balanceProperties: BalanceProperties): WalletType {\n const userWalletType = this.walletStoreService.selectedWallet;\n\n if (userWalletType) {\n return userWalletType;\n }\n\n const mainBalance = this.calculateMainBalance(balanceProperties);\n const paypalBalance = this.calculatePaypalBalance(balanceProperties);\n\n return paypalBalance > mainBalance ? WalletType.PayPal : WalletType.Main;\n }\n\n private calculateMainBalance(balanceProperties: BalanceProperties): number {\n return this.betslipConfig.paypalWalletUseNewFormula\n ? this.calcualateMainWithNewFormula(balanceProperties)\n : this.calculateMainWithOldFormula(balanceProperties);\n }\n\n private calculatePaypalBalance(balanceProperties: BalanceProperties): number {\n return this.betslipConfig.paypalWalletUseNewFormula\n ? balanceProperties.payPalRestrictedBalance + balanceProperties.sportsExclusiveBalance\n : balanceProperties.payPalBalance;\n }\n\n private isAllowedCountry = (userCountry: string): boolean =>\n !!this.betslipConfig.payPalWalletSelectionEnabledForCountries.find((countryCode) => userCountry === countryCode);\n\n private buildAvailableWallets(balanceProperties: BalanceProperties | null): void {\n if (!this.userService.isAuthenticated || !balanceProperties) {\n this.setWallets([]);\n if (this.isWalletSet) {\n this.isWalletSet = false;\n this.store.dispatch(UserActions.setWalletLoaded({ walletLoaded: this.isWalletSet }));\n }\n\n return;\n }\n\n if (this.isAllowedCountry(this.userService.country)) {\n const walletType = this.getDefaultWallet(balanceProperties);\n\n const wallets = [\n {\n type: WalletType.PayPal,\n amount: this.calculatePaypalBalance(balanceProperties),\n selected: walletType === WalletType.PayPal,\n title: this.siteCore.betslip.wallet.PayPalBalance,\n shortTitle: this.siteCore.betslip.wallet.PayPal,\n icon: this.betslipConfig.paypalWalletIconClass['paypal'],\n },\n {\n type: WalletType.Main,\n amount: this.calculateMainBalance(balanceProperties),\n selected: walletType === WalletType.Main,\n title: this.siteCore.betslip.wallet.MainBalance,\n shortTitle: this.siteCore.betslip.wallet.Main,\n icon: this.betslipConfig.paypalWalletIconClass['main'],\n },\n ];\n this.setWallets(wallets);\n } else {\n this.setWallets([\n {\n type: WalletType.Any,\n amount: balanceProperties.availableBalance + (this.bonusAmount || 0),\n selected: true,\n title: '',\n shortTitle: '',\n icon: '',\n },\n ]);\n }\n if (!this.isWalletSet) {\n this.isWalletSet = true;\n this.store.dispatch(UserActions.setWalletLoaded({ walletLoaded: this.isWalletSet }));\n }\n }\n\n setWallets(wallets: WalletItem[]) {\n const selectedWalletAmount = wallets.find((t) => t.selected)?.amount ?? 0;\n this.globalBalanceLogger.setLastWalletBalance(selectedWalletAmount);\n this._availableWallets.next(wallets);\n }\n\n private calcualateMainWithNewFormula(balanceProperties: BalanceProperties): number {\n let balance =\n balanceProperties.sportsDepositBalance +\n balanceProperties.sportsWinningsBalance +\n balanceProperties.allWinningsBalance +\n balanceProperties.cashoutRestrictedBalance -\n balanceProperties.payPalRestrictedBalance;\n\n if (this.kycStatus && this.kycStatus.kycVerified) {\n balance += balanceProperties.pokerWinningsBalance + balanceProperties.slotsWinningsBalance + balanceProperties.sportsRestrictedBalance;\n }\n\n return balance;\n }\n\n private calculateMainWithOldFormula(balanceProperties: BalanceProperties): number {\n return balanceProperties.cashoutRestrictedBalance + balanceProperties.cashoutableBalance - balanceProperties.payPalBalance;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { ModalDialogService } from '@frontend/sports/modal/feature';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { EarlyPayoutAcceptance, SyncUserSettingsService, UserSettingsService } from '@frontend/sports/user/feature';\nimport { LoadingIndicatorService } from '@frontend/vanilla/core';\n\nexport enum EarlyPayoutTACSource {\n MyBets,\n EventView,\n EditBet,\n}\n\nexport interface IEarlyPayoutTACTrackingData {\n source: EarlyPayoutTACSource;\n forLiveBet: boolean;\n}\n\nconst loadTacDialog = () => import('./tac-dialog/tac-dialog.component').then((m) => m.MyBetsEarlyPayoutTacDialogComponent);\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutTacService {\n private readonly logger: SportsRemoteLogger;\n\n constructor(\n private modalDialog: ModalDialogService,\n private loadingIndicator: LoadingIndicatorService,\n private userSettingsService: UserSettingsService,\n private tracker: TrackingService,\n loggerFactory: LoggerFactory,\n private userSettings: SyncUserSettingsService,\n ) {\n this.logger = loggerFactory.getLogger('EarlyPayoutTacService');\n }\n\n get hasUserAcceptedTAC(): boolean {\n return this.userSettings.earlyPayoutAcceptance !== null;\n }\n\n async acceptEarlyPayoutTaC(trackingData: IEarlyPayoutTACTrackingData): Promise {\n try {\n const accepted = await this.modalDialog.openDialog(await loadTacDialog(), {\n settings: { showDialogHeader: true, cssClass: 'early-payout-tac-dialog' },\n }).result;\n if (accepted) {\n return await this.tryUpdateUserSettings(trackingData);\n }\n } catch (e) {\n this.logger.error(e);\n }\n\n return false;\n }\n\n private trackingContext(source: EarlyPayoutTACSource): string {\n switch (source) {\n case EarlyPayoutTACSource.EditBet:\n return '_editBet';\n case EarlyPayoutTACSource.EventView:\n return '_eventView';\n case EarlyPayoutTACSource.MyBets:\n return '_myBets';\n }\n }\n\n private async tryUpdateUserSettings(trackingData: IEarlyPayoutTACTrackingData): Promise {\n const trackingContext = this.trackingContext(trackingData.source);\n const loadingIndicator = this.loadingIndicator.start();\n let result = false;\n try {\n await this.userSettingsService.set({ earlyPayoutAcceptanceMode: EarlyPayoutAcceptance.Higher });\n this.tracker.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]:\n (trackingData.forLiveBet ? 'LIVE/EarlyPayout_TCSuccessful' : 'MAIN/EarlyPayout_TCSuccessful') + trackingContext,\n });\n result = true;\n } catch (error) {\n this.tracker.track(trackingConstants.EVENT_PAGE_VIEW, {\n [trackingConstants.PAGE_NAME]: (trackingData.forLiveBet ? 'LIVE/EarlyPayout_TCError' : 'MAIN/EarlyPayout_TCError') + trackingContext,\n });\n this.logger.error(error, 'Failed to accept Early payout TAC');\n }\n loadingIndicator.done();\n\n return result;\n }\n}\n","export const EarlyPayoutDispatcherEvent = {\n CashOut: {\n Updated: 'EARLY_PAYOUT_UPDATED',\n PushToLower: 'EARLYPAYOUT_PUSH_TOLOWER',\n EarlyPayoutSuccess: 'EARLY_PAYOUT_SUCCESS',\n EarlyPayoutFailed: 'EARLY_PAYOUT_FAILED',\n CashOutAlreadyExecuted: 'CASH_OUT_ALREADY_EXECUTED',\n },\n};\n","import { BetSlip } from '@bpos/v1/my-bets';\nimport { BetslipListType, OpenBetsSummary } from '@frontend/sports/types/models/my-bets';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\n\nexport enum MyBetsRaceBetType {\n Win = 0,\n EachWay,\n Place,\n Forecast,\n Tricast,\n CombinationForecast,\n CombinationTricast,\n}\n\nexport interface PinnedBets {\n betslipNumber: string;\n isMigratedBet: boolean;\n}\n\nexport interface MyBetsFilteredResponse {\n events: { [key: string]: MyBetsEventModel };\n betslips: BetSlip[];\n summary: OpenBetsSummary;\n typeFilter: BetslipListType;\n errorLoadingBets: boolean | undefined;\n}\n\nexport const myBetsFilteredErrorResponse = (): MyBetsFilteredResponse => ({\n betslips: [],\n events: {},\n summary: {\n openEvents: {},\n openBetsCount: 0,\n liveBetsCount: 0,\n betNumbers: [],\n isMigrationSummary: false,\n hasError: false,\n },\n typeFilter: BetslipListType.Settled,\n errorLoadingBets: true,\n});\n\nexport interface MyBetsSingleResponse {\n betslip: BetSlip | null;\n events: { [key: string]: MyBetsEventModel };\n}\n\nexport const myBetsSingleErrorResponse = (): MyBetsSingleResponse => ({\n betslip: null,\n events: {},\n});\n\nexport interface MyBetsListSlimResponse {\n betslips: BetSlip[];\n events: { [key: string]: MyBetsEventModel };\n errorLoadingBets?: boolean;\n}\n\nexport const myBetsListSlimErrorResponse = (): MyBetsListSlimResponse => ({\n betslips: [],\n events: {},\n errorLoadingBets: true,\n});\n","import {\n AdditionalInformation as AdditionalInformationBpos,\n BetGroupType,\n BetSlipType,\n KeyValueInformation,\n Money,\n Odds,\n OddsFormat,\n SystemType,\n} from '@bpos';\nimport { BetType } from '@bpos/common';\nimport { AccaBoostDeviationReason } from '@bpos/extended';\nimport {\n BestOddsGuaranteedInformation,\n BestOddsGuaranteedState,\n Bet,\n BetBuilderBetState,\n BetGroup,\n BetProtectorInformation,\n BetSlip,\n BetState,\n EditBetHistoryInformation as EditBetHistoryInformationBpos,\n EdsPromotionToken,\n FixtureType,\n ParticipantPick,\n PlaceTerm,\n PromotionToken,\n ProtectorState,\n SignPost,\n SignPostType,\n SlipState,\n SystemBetDetails,\n Tax,\n TaxInformation as TaxInformationResponse,\n} from '@bpos/v1/my-bets';\nimport { OfferSource } from '@cds';\nimport { PicksView } from '@cds/betting-offer/domain-specific';\nimport { CrmConfig } from '@frontend/sports/common/client-config-data-access';\nimport { Nullable, exhaustiveCheckGuard } from '@frontend/sports/common/core/utils/extended-types';\nimport { BetslipListType } from '@frontend/sports/types/models/my-bets';\nimport { isEmpty, partition, sortBy } from 'lodash-es';\nimport { BetAndGetEdsToken, PromoTokenPlaceBetSignPostingInfo } from 'packages/sports/common/betslip/modules/reward-tokens/reward-tokens.model';\nimport { isEdsPromoTokenBetAndGet } from 'packages/sports/common/betslip/modules/reward-tokens/services/reward-tokens.utils';\n\nimport { MyBetsEventModel } from '../../my-bets/models/my-bets-event.model';\nimport { IEarlyPayoutPicksResult } from './early-payout';\nimport { EarlyPayoutStates, IEarlyPayoutData, PayoutError } from './early-payout-types';\nimport { MyBetsRaceBetType } from './my-bets-response';\n\nexport interface IEarlyPayoutResultedPicks {\n resultedPicks: IEarlyPayoutPicksResult[];\n}\n\nexport class EarlyPayout implements IEarlyPayoutData, IEarlyPayoutResultedPicks {\n state: EarlyPayoutStates;\n value: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tShould not be send to EPS during Cashout!\n\t\tUsed only to show to the customer and in Web tracking.\n\t\tcurrency.pipe ensures the new value is rounded and formatted accordingly\n */\n valueWithoutStake?: number;\n userExpectedValue: number;\n acceptMode: any;\n earlyPayoutPossible: boolean;\n editBetPossible: boolean;\n error?: PayoutError;\n autoCashOutValue?: number;\n /**\n\t\tHas Value only for FreeBets.\n\t\tUsed only to show to the customer.\n */\n autoCashOutValueWithoutStake?: number;\n autoCashoutNotificationValue?: number;\n /**\n\t\tHas Value only for FreeBets.\n\t\tUsed only to show to the customer.\n */\n autoCashoutNotificationValueWithoutStake?: number;\n resultedPicks: IEarlyPayoutPicksResult[];\n pushUpdate?: boolean;\n}\n\nexport enum MigrationTabType {\n After = 'After',\n Before = 'Before',\n}\n\nexport enum TaxationModel {\n OnWinnings = 'OnWinnings',\n OnStake = 'OnStake',\n}\n\nexport enum SgpType {\n Sgp = 'Sgp',\n SgpPlus = 'Sgp+',\n}\n\nexport class EditBetHistoryInformation {\n betSlipNumber: string;\n editDate: Date | null;\n editOrder: number;\n\n constructor(editBetsHistory: EditBetHistoryInformationBpos | undefined) {\n if (editBetsHistory) {\n this.betSlipNumber = editBetsHistory.betNumber;\n this.editDate = new Date(editBetsHistory.editDate);\n this.editOrder = editBetsHistory.editOrder;\n } else {\n this.betSlipNumber = '';\n this.editDate = null;\n this.editOrder = 0;\n }\n }\n}\n\nexport class MyBetsBetV2ViewModel {\n fixtureId: number;\n compoundId: string;\n\n get fixtureCompoundId(): string {\n return this.compoundId ? this.compoundId : `2:${this.fixtureId}`;\n }\n}\n\nexport class MyBetsParticipantData extends MyBetsBetV2ViewModel {\n isStartingPrice: boolean;\n placeDeadHeatDivisor: string | undefined;\n ruleFourDeduction: string | undefined;\n placeRule4Deduction: string | undefined;\n xCastSettlementDeviated: boolean;\n deadheatDivisor: string | undefined;\n betType: MyBetsRaceBetType;\n betTypeName: string;\n marketId: string | undefined;\n participants: string[];\n participantInfo: { [participantFixtureId: number]: number };\n bestOddsGuaranteedState: BestOddsGuaranteedState;\n}\n\nexport class MyBetsResultData {\n constructor() {\n this.event = null;\n }\n\n event: MyBetsEventModel | null;\n eventId: number;\n eventName: string;\n eventDate: Date;\n marketId: number;\n marketName: string;\n optionId: number;\n optionName: string;\n leagueId: number;\n odds: number;\n}\n\nenum HbsFixtureType {\n Antepost = 0,\n DayOfRace = 1,\n Standard = 2,\n PairGame = 3,\n Tournament = 4,\n Unknown = 5,\n}\n\nexport class MyBetsOptionMarketData extends MyBetsBetV2ViewModel {\n fixtureName: string;\n fixtureType: HbsFixtureType;\n optionMarketId: number;\n optionId: number;\n event: MyBetsEventModel | null;\n virtualSport: boolean;\n priceId: number;\n betType?: BetType;\n isStartingPrice: boolean;\n bestOddsGuaranteedState: BestOddsGuaranteedState;\n}\n\nexport class MyBetsBetBuilderData extends MyBetsOptionMarketData {\n constructor() {\n super();\n this.event = null;\n }\n\n eventId: number;\n legs: MyBetsBetBuilderLeg[];\n offerSource: OfferSource;\n betBuilderType: 'Ogp' | 'BetBuilder';\n}\n\nexport interface MyBetsBetBuilderLeg {\n name: string;\n betState: BetBuilderLegState | BetState;\n cancellationReason?: string;\n marketId?: number;\n marketName?: string;\n optionId?: number;\n optionName?: string;\n}\n\nexport enum BetBuilderLegState {\n Open = 'OPEN',\n Lost = 'LOST',\n Won = 'WON',\n Cancelled = 'CANCELED',\n}\n\nexport class MyBetsListContext {\n isEventView: boolean;\n isPrintView: boolean;\n eventId?: string;\n eventName?: string;\n listType?: BetslipListType;\n migrationTabType: MigrationTabType | null;\n associatedAccount: Nullable;\n showMigrationTabs?: boolean;\n showPrintButton?: boolean;\n showFilter?: boolean;\n showDownloadButton?: boolean;\n}\n\nexport const enum ExportButtonType {\n Print = 'Print',\n Download = 'Download',\n}\n\nexport class EarlyPayoutInformation {\n autoCashoutTriggered: boolean;\n autoCashoutThresholdValue: number;\n}\n\nexport enum ResettlementEffectOnCustomer {\n Positive = 'Positive',\n Negative = 'Negative',\n}\n\nexport enum BetStateCssClass {\n BetInProgress = 'bet-in-progress',\n BetSettled = 'bet-settled',\n BetWon = 'bet-won',\n BetLost = 'bet-lost',\n BetCancelled = 'bet-cancelled',\n}\n\nexport class AdditionalInformation {\n boostedOdds?: number;\n boostedNativeOdds?: Odds;\n boostedWinnings?: number;\n boostedWinningsCurrencyCode?: string;\n winningsBoost?: number;\n winningsBoostCurrencyCode?: string;\n riskFreeMaxCompensation?: number;\n riskFreePercentage?: number;\n tokenNotRewarded?: boolean;\n positiveResettlementEffectOnCustomer?: boolean;\n negativeResettlementEffectOnCustomer?: boolean;\n accaBoostDeviationReason?: AccaBoostDeviationReason;\n boostRatio?: number;\n bestOddsBonus?: number;\n fixedPriceWinnings?: number;\n liability?: number;\n possibleLiability?: number;\n totalTax?: number;\n possibleTotalTax?: number;\n currencyCode?: string;\n\n private static getNativeBoostedOdds(additionalInformations: AdditionalInformationBpos): Odds | undefined {\n const mapIterable = additionalInformations.informationItems.map(({ key, value }) => [key, value] as [string, string]);\n const additionalInfoMap = new Map(mapIterable);\n\n const oddsFormat = additionalInfoMap.get('BoostedOdds.OddsFormat');\n if (oddsFormat == null) {\n return;\n }\n\n const odds = {\n oddsFormat,\n } as Odds;\n\n switch (oddsFormat) {\n case OddsFormat.European:\n const euValue = additionalInfoMap.get('BoostedOdds.European');\n odds.european = Number(euValue);\n break;\n case OddsFormat.British:\n const numerator = additionalInfoMap.get('BoostedOdds.British.Numerator');\n const denominator = additionalInfoMap.get('BoostedOdds.British.Denominator');\n odds.british = {\n numerator: Number(numerator),\n denominator: Number(denominator),\n };\n break;\n case OddsFormat.American:\n const usValue = additionalInfoMap.get('BoostedOdds.American');\n odds.american = Number(usValue);\n break;\n }\n\n return odds;\n }\n\n static createFromAdditionalInfoResponse(additionalInformation: AdditionalInformationBpos, state?: SlipState): AdditionalInformation {\n const model = new AdditionalInformation();\n\n if (!additionalInformation?.informationItems) {\n return model;\n }\n\n model.boostedNativeOdds = this.getNativeBoostedOdds(additionalInformation);\n for (const info of additionalInformation.informationItems) {\n switch (info.key) {\n case 'BoostedOdds':\n model.boostedOdds = Number(info.value);\n break;\n case 'BoostedWinnings':\n model.boostedWinnings = Number(info.value);\n break;\n case 'BoostedWinningsCurrencyCode':\n model.boostedWinningsCurrencyCode = info.value;\n break;\n case 'WinningsBoost':\n model.winningsBoost = Number(info.value);\n break;\n case 'WinningsBoostCurrencyCode':\n model.winningsBoostCurrencyCode = info.value;\n break;\n case 'RiskFreeMaxCompensation':\n model.riskFreeMaxCompensation = Number(info.value);\n break;\n case 'RiskFreePercentage':\n model.riskFreePercentage = Number(info.value);\n break;\n case 'TokenNotRewarded':\n model.tokenNotRewarded = info.value === 'true';\n break;\n case 'ResettlementEffectOnCustomer':\n model.positiveResettlementEffectOnCustomer = info.value === ResettlementEffectOnCustomer.Positive;\n model.negativeResettlementEffectOnCustomer = info.value === ResettlementEffectOnCustomer.Negative;\n break;\n case 'AccaBoostDeviationReason':\n model.accaBoostDeviationReason = info.value as AccaBoostDeviationReason;\n break;\n case 'AccaBoostRatio':\n model.boostRatio = Number(info.value);\n break;\n case 'FixedPriceWinnings':\n model.fixedPriceWinnings = Number(info.value);\n break;\n case 'BestOddsBonus':\n model.bestOddsBonus = Number(info.value);\n break;\n case 'liability':\n if (state === SlipState.Open) {\n model.possibleLiability = Number(info.value);\n break;\n }\n\n model.liability = Number(info.value);\n break;\n case 'possibleLiability':\n model.possibleLiability = Number(info.value);\n break;\n case 'totalTax':\n if (state === SlipState.Open) {\n model.possibleTotalTax = Number(info.value);\n break;\n }\n\n model.totalTax = Number(info.value);\n break;\n case 'possibleTotalTax':\n model.possibleTotalTax = Number(info.value);\n break;\n case 'currencyCode':\n model.currencyCode = info.value;\n break;\n }\n }\n\n if (model.bestOddsBonus && model.fixedPriceWinnings) {\n model.boostedWinnings = model.fixedPriceWinnings + model.bestOddsBonus;\n }\n\n return model;\n }\n}\n\nexport enum TokenType {\n FreeBetToken = 'FreeBetToken',\n OddsBoostToken = 'OddsBoostToken',\n RiskFreeToken = 'RiskFreeToken',\n AccaBoostToken = 'AccaBoostToken',\n BestOddsToken = 'BestOddsToken',\n BetAndGetToken = 'BetAndGetToken',\n}\n\nexport enum PayoutType {\n Cash = 'Cash',\n FreeBet = 'FreeBet',\n Bonus = 'Bonus',\n}\n\nexport class UsedRewardToken {\n payoutType?: PayoutType;\n tokenType: TokenType;\n additionalInformation?: AdditionalInformation;\n\n static createFromResponse(promoToken: PromotionToken, state?: SlipState): UsedRewardToken {\n const parsedValue = new UsedRewardToken();\n\n if (promoToken.payoutType) {\n parsedValue.payoutType = PayoutType[promoToken.payoutType as any as PayoutType];\n }\n\n parsedValue.tokenType = TokenType[`${promoToken.tokenType.toString()}Token` as TokenType];\n parsedValue.additionalInformation = AdditionalInformation.createFromAdditionalInfoResponse(promoToken.additionalInformation, state);\n\n return parsedValue;\n }\n}\n\nexport class TaxInformation {\n taxes: Tax[];\n additionalInformation: AdditionalInformationBpos;\n}\n\ninterface IMyBetsBet {\n eventDate: Date;\n eventName: string; // V1 Event Name, V2 Racing Fixture Name (Antepost), V2 Meeting Name ( Day of Race ), V2 Golf - Fixture Group\n marketName: string; // V1 Market Name, V2 Market Name (Racing - None, Golf - Fixture Name)\n betTypeName: string; // V1 (None), V2 (To Win, Each Way, Forecast, Tricast ... )\n optionName: string; // V1 Option Name, V2 Participant(s) or Option Market name.\n\n marketId: number;\n\n outcome: string; // Option that won. ( Can be option name which won)\n state: BetState; // If our pick won or lost. When Cached out this can be LOST but betslip will be WON.\n\n isBanker: boolean;\n cancellationReason: string;\n betIndex: number;\n\n odds: Odds;\n\n sportName: string;\n leagueName: string;\n sportId: number;\n leagueId: number;\n}\n\nexport interface IMyBetsBetWithResultInfo extends IMyBetsBet {\n resultInfo: MyBetsResultData;\n}\n\nexport interface IMyBetsBetWithOptionMarketInfo extends IMyBetsBet {\n optionMarketInfo: MyBetsOptionMarketData;\n}\n\nexport interface IMyBetsBetWithParticipantInfo extends IMyBetsBet {\n participantInfo: MyBetsParticipantData;\n}\n\nexport interface IMyBetsBetWithBetBuilderInfo extends IMyBetsBet {\n betBuilderInfo: MyBetsBetBuilderData;\n}\n\nexport interface OgpRepricingInfo {\n isPending: boolean;\n odds?: Odds;\n}\n\nexport class MyBetsBet implements IMyBetsBet {\n eventDate: Date;\n eventName: string; // V1 Event Name, V2 Racing Fixture Name (Antepost), V2 Meeting Name ( Day of Race ), V2 Golf - Fixture Group\n marketName: string; // V1 Market Name, V2 Market Name (Racing - None, Golf - Fixture Name)\n betTypeName: string; // V1 (None), V2 (To Win, Each Way, Forecast, Tricast ... )\n optionName: string; // V1 Option Name, V2 Participant(s) or Option Market name.\n marketId: number;\n optionNames: string[]; // V1 (None), V2 (Forecast, Tricast ... )\n\n outcome: string; // Option that won. ( Can be option name which won)\n state: BetState; // If our pick won or lost. When Cached out this can be LOST but betslip will be WON.\n\n isBanker: boolean;\n cancellationReason: string;\n betIndex: number;\n odds: Odds;\n participantInfo: MyBetsParticipantData | null;\n resultInfo: MyBetsResultData | null;\n optionMarketInfo: MyBetsOptionMarketData | null;\n betBuilderInfo: MyBetsBetBuilderData | null;\n leagueName: string;\n sportId: number;\n sportName: string;\n leagueId: number;\n priceBoostOriginalOdds: Odds;\n isPriceBoosted: boolean;\n ogpRepricingInfo: OgpRepricingInfo | undefined;\n betType?: string;\n\n /**\n * Generates place terms formatted text e.g. 1/3 1-2-3\n *\n * @param terms Place terms data from the response\n */\n private static getPlaceTermsText(terms: PlaceTerm): string {\n const places = [...Array(terms.numberOfFirstPlaces)].map((_, i) => i + 1).join('-');\n\n return `${terms.fraction.numerator}/${terms.fraction.denominator} ${places}`;\n }\n\n static createFromBetResponse(bet: Bet): MyBetsBet {\n const viewModel = new MyBetsBet();\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.outcome = bet.outcome;\n viewModel.isBanker = bet.isBanker;\n viewModel.cancellationReason = bet.cancellationReason || '';\n viewModel.betIndex = bet.index;\n viewModel.eventName = bet.fixture.name || '';\n viewModel.marketName = bet.market.name || '';\n viewModel.marketId = bet.market.id!;\n viewModel.optionName = bet.option?.name || '';\n if (bet.participantBetDetails) {\n viewModel.participantInfo = MyBetsBet.createFromParticipantBetDetails(bet);\n viewModel.optionName = viewModel.participantInfo.participants.join(', ');\n // TODO: BPOSv4 investigate if both fields `betTypeName` are actually needed\n viewModel.betTypeName = viewModel.participantInfo.betTypeName;\n } else if (bet.optionBetDetails) {\n const isBetBuilder = Boolean(bet.optionBetDetails.isBetBuilder && bet.optionBetDetails.betBuilderData);\n if (isBetBuilder) {\n viewModel.betBuilderInfo = this.createFromBetBuilderDetails(bet);\n viewModel.betBuilderInfo.betBuilderType = 'BetBuilder';\n } else {\n viewModel.optionMarketInfo = this.createFromOptionBetDetails(bet);\n }\n viewModel.optionNames = bet.optionBetDetails.picks.map((o) => o.optionName);\n if (viewModel.optionMarketInfo) viewModel.optionMarketInfo.isStartingPrice = bet.optionBetDetails.isStartingPrice;\n viewModel.isPriceBoosted = bet.optionBetDetails.isPriceBoost;\n viewModel.priceBoostOriginalOdds = bet.optionBetDetails.priceBoostData?.originalOdds;\n viewModel.betType = bet.optionBetDetails.betType?.toString();\n viewModel.betTypeName = bet.optionBetDetails.betTypeName ?? '';\n if (bet.optionBetDetails.betType === BetType.EachWay && bet.optionBetDetails.placeTerm != null) {\n viewModel.betTypeName = `${bet.optionBetDetails.betTypeName} ${MyBetsBet.getPlaceTermsText(bet.optionBetDetails.placeTerm)}`;\n }\n } else {\n viewModel.resultInfo = MyBetsBet.createFromRegularOption(bet);\n }\n viewModel.odds = bet.odds;\n viewModel.state = bet.state;\n viewModel.leagueName = bet.competition?.name ?? '';\n viewModel.sportName = bet.sport.name ?? '';\n viewModel.sportId = bet.sport.id;\n // buildabet doesn't have competition\n viewModel.leagueId = bet.competition?.id ?? 0;\n\n return viewModel;\n }\n\n static createFromOgpBetGroupResponse(betGroup: BetGroup, bets: Bet[]): MyBetsBet {\n const bet = bets[0];\n const viewModel = new MyBetsBet();\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.outcome = betGroup.outcome;\n viewModel.betIndex = betGroup.index ?? 0;\n viewModel.eventName = bet.fixture.name ?? '';\n viewModel.betBuilderInfo = new MyBetsBetBuilderData();\n viewModel.betBuilderInfo.betBuilderType = 'Ogp';\n viewModel.betBuilderInfo.fixtureId = bet.fixture.id;\n viewModel.betBuilderInfo.legs = bets.map((b) => ({\n name: this.resolveLegName(b),\n marketName: b.market.name,\n marketId: b.market.id,\n optionName: b.option.name,\n optionId: b.option.id,\n betState: b.state,\n cancellationReason: b.cancellationReason ?? '',\n }));\n viewModel.odds = betGroup.odds;\n viewModel.state = betGroup.betGroupState;\n viewModel.leagueName = bet.competition?.name ?? '';\n viewModel.sportName = bet.sport.name ?? '';\n viewModel.sportId = bet.sport.id;\n // buildabet doesn't have competition\n viewModel.leagueId = bet.competition?.id ?? 0;\n viewModel.betBuilderInfo.compoundId = bet.fixture.compoundId;\n viewModel.ogpRepricingInfo = betGroup.ogpBetGroupDetails?.repricingInfo;\n\n return viewModel;\n }\n\n private static resolveLegName(bet: Bet): string {\n if (bet.participantBetDetails) {\n const participants = this.mapParticipants(bet.participantBetDetails.picks);\n\n return participants.join(', ');\n } else {\n return `${bet.market.name} - ${bet.option?.name}`;\n }\n }\n\n static createFromRegularOption(bet: Bet): MyBetsResultData {\n const viewModel = new MyBetsResultData();\n\n viewModel.eventId = bet.fixture.id;\n viewModel.eventName = bet.fixture.name || '';\n if (bet.fixture.date) {\n viewModel.eventDate = new Date(bet.fixture.date);\n }\n viewModel.marketId = bet.market.id!;\n viewModel.marketName = bet.market.name || '';\n viewModel.optionId = bet.option.id;\n viewModel.optionName = bet.option.name || '';\n viewModel.leagueId = bet.competition.id!;\n\n return viewModel;\n }\n\n static createFromParticipantBetDetails(bet: Bet): MyBetsParticipantData {\n const viewModel = new MyBetsParticipantData();\n viewModel.betTypeName = bet.participantBetDetails.betTypeName;\n viewModel.isStartingPrice = bet.participantBetDetails.isStartingPrice;\n viewModel.placeDeadHeatDivisor = bet.participantBetDetails.placeDeadHeatDivisor?.toString();\n viewModel.deadheatDivisor = bet.deadHeatDivisor?.toString();\n viewModel.placeRule4Deduction = bet.participantBetDetails.placeRule4Deduction?.toString();\n viewModel.ruleFourDeduction = bet.participantBetDetails.rule4Deduction?.toString();\n viewModel.xCastSettlementDeviated = bet.participantBetDetails.xCastSettlementDeviated;\n viewModel.betType = bet.participantBetDetails.betTypeId;\n viewModel.marketId = bet.market.id?.toString();\n\n if (viewModel.betType === MyBetsRaceBetType.EachWay && bet.participantBetDetails.placeTerm != null) {\n viewModel.betTypeName = `${viewModel.betTypeName} ${MyBetsBet.getPlaceTermsText(bet.participantBetDetails.placeTerm)}`;\n }\n viewModel.participants = this.mapParticipants(bet.participantBetDetails.picks);\n\n viewModel.bestOddsGuaranteedState = bet.participantBetDetails.bestOddsGuaranteedState;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.compoundId = bet.fixture.compoundId;\n viewModel.participantInfo = bet.participantBetDetails.picks.reduce(\n (result, curr) => {\n result[curr.fixtureParticipantId] = curr.positionInBet;\n\n return result;\n },\n {} as Record,\n );\n\n return viewModel;\n }\n\n private static mapParticipants(participantPick: ParticipantPick[]): string[] {\n return participantPick\n .sort((a, b) => {\n return a.positionInBet > b.positionInBet ? 1 : a.positionInBet < b.positionInBet ? -1 : 0;\n })\n .map((p) => p.participantName);\n }\n\n static createFromOptionBetDetails(bet: Bet): MyBetsOptionMarketData {\n const getFixtureType = (fixtureType?: FixtureType): HbsFixtureType => {\n switch (fixtureType) {\n case FixtureType.Antepost:\n return HbsFixtureType.Antepost;\n case FixtureType.DayOfRace:\n return HbsFixtureType.DayOfRace;\n case FixtureType.PairGame:\n return HbsFixtureType.PairGame;\n case FixtureType.Standard:\n return HbsFixtureType.Standard;\n case FixtureType.Tournament:\n return HbsFixtureType.Tournament;\n }\n\n return HbsFixtureType.Unknown;\n };\n\n const viewModel = new MyBetsOptionMarketData();\n viewModel.fixtureName = bet.fixture.name;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.fixtureType = getFixtureType(bet.fixture.type);\n viewModel.optionMarketId = bet.market.id!;\n viewModel.optionId = bet.option.id;\n viewModel.virtualSport = bet.optionBetDetails.isVirtual;\n viewModel.priceId = bet.optionBetDetails.pick?.id;\n viewModel.betType = bet.optionBetDetails.betType;\n viewModel.compoundId = bet.fixture.compoundId;\n\n return viewModel;\n }\n\n static createFromBetBuilderDetails(bet: Bet): MyBetsBetBuilderData {\n const { betBuilderData } = bet.optionBetDetails;\n const viewModel = new MyBetsBetBuilderData();\n\n viewModel.eventId = betBuilderData.tv1BetBuilderInfo?.event.id;\n viewModel.offerSource = betBuilderData.tv1BetBuilderInfo ? OfferSource.V1 : OfferSource.V2;\n viewModel.fixtureId = bet.fixture.id;\n viewModel.compoundId = bet.fixture.compoundId;\n viewModel.optionMarketId = bet.market.id!;\n viewModel.optionId = bet.option.id;\n viewModel.legs = (betBuilderData.legs || []).map(({ name, betState }) => ({ name, betState: convertBetBuilderBetState(betState) }));\n\n return viewModel;\n }\n\n constructor() {\n this.eventName = '';\n this.marketName = '';\n this.betTypeName = '';\n this.optionName = '';\n this.outcome = '';\n this.cancellationReason = '';\n this.state = BetState.Open;\n this.participantInfo = null;\n this.resultInfo = null;\n this.optionMarketInfo = null;\n this.betBuilderInfo = null;\n this.isBanker = false;\n }\n\n get isLive(): boolean {\n return !!(this.event && this.event.scoreboard.started && !this.event.scoreboard.isFinished);\n }\n\n get isVirtual(): boolean {\n return !!(this.optionMarketInfo && this.optionMarketInfo.virtualSport);\n }\n\n get needToShowEventView(): boolean {\n return !this.isVirtual && !!this.event && this.state === BetState.Open;\n }\n\n get event(): MyBetsEventModel | null {\n if (this.resultInfo) {\n return this.resultInfo.event;\n }\n\n if (this.betBuilderInfo) {\n return this.betBuilderInfo.event;\n }\n\n if (this.optionMarketInfo) {\n return this.optionMarketInfo.event;\n }\n\n return null;\n }\n}\n\nexport class MyBetsBetslipBase {\n betType: BetSlipType;\n stake: Money;\n isPotentialEP: boolean;\n betPlacedDate: Date;\n betslipRealId: string;\n state: SlipState;\n isCachedOut: boolean;\n earlyPayout?: EarlyPayout;\n hideEP?: boolean;\n typeAsName: string;\n containsLiveBets: boolean;\n isFreeBet: boolean;\n get isSingleBet(): boolean {\n return this.betType === BetSlipType.Single;\n }\n\n sgpType?: SgpType;\n}\n\nexport interface SignPostingData {\n offerId: string;\n offerType: string;\n rewardTime: number;\n rewards: RewardData[];\n}\n\nexport interface RewardData {\n currency: string;\n maxCap?: number;\n type: string;\n value: number;\n noOfSlabs?: number;\n slabAmount?: number;\n}\n\n// TODO: Use the SignPostingReward below instead of bpos/v4 SignPostingReward, as it has been deprecated.\nexport interface SignPostingReward {\n currency: string;\n maxCap?: number;\n offerId: string;\n offerType: string;\n rewardTime: number;\n type: string;\n value: number;\n noOfSlabs?: number;\n slabAmount?: number;\n}\n\nexport class MyBetsBetSlip extends MyBetsBetslipBase {\n systemType: SystemType | null;\n betslipId: string;\n bets: MyBetsBet[];\n totalOdds: Odds | undefined;\n isOGPRepricePending: boolean;\n totalOGPRepricedOdds: Odds | undefined;\n possibleWinnings: Money;\n payoutAmount: Money;\n systemBetDetails?: SystemBetDetails;\n /**\n * This includes taxation amount\n */\n grossPossibleWinnings: Money;\n /**\n * This includes taxation amount\n */\n grossPayoutAmount: Money;\n /**\n * Returns true when slip is lost, but bet protection is won\n */\n isRefunded: boolean;\n betProtectorInformation: BetProtectorInformation;\n taxInformation: TaxInformation;\n /**\n * Regulation specific e.g. italian regulator ticket\n */\n externalTicketId: string | null;\n /**\n * Regulation specific e.g. italian regulator license\n */\n licenseId: string | null;\n columnId: number;\n showDate: boolean;\n dateKey: number;\n isBasicModel: boolean;\n typeTranslated: string;\n bestOddsGuaranteeInformation: BestOddsGuaranteedInformation;\n earlyPayoutInformation?: EarlyPayoutInformation;\n isEditBet: boolean;\n editBetHistory: EditBetHistoryInformation[];\n isRecoveringAfterEditBet: boolean;\n signPostingRewards: SignPostingReward[];\n placeBetSignPosting: PromoTokenPlaceBetSignPostingInfo | BetAndGetEdsToken | undefined;\n usedRewardTokens: UsedRewardToken[];\n edsPromoTokens: EdsPromotionToken[];\n reBetPicks?: PicksView;\n listType?: BetslipListType;\n isPendingPayout: boolean;\n isTeaserBet: boolean;\n teasedAmount?: number;\n\n override get isSingleBet(): boolean {\n return this.betType === BetSlipType.Single || (this.betType === BetSlipType.Combo && this.bets.length === 1);\n }\n\n static createFromBetslipResponse(betslip: BetSlip, events: { [key: number]: MyBetsEventModel }, tokensConfig: CrmConfig): MyBetsBetSlip {\n const viewModel = new MyBetsBetSlip();\n viewModel.betType = betslip.slipType;\n viewModel.systemType = betslip.systemType || null;\n viewModel.betslipId = betslip.betSlipNumber;\n viewModel.betslipRealId = betslip.editBetInformation?.betSlipRealNumber || betslip.betSlipNumber;\n viewModel.betPlacedDate = new Date(betslip.conclusionDateUtc);\n viewModel.dateKey = calculateDateKey(betslip.conclusionDateUtc);\n viewModel.totalOdds = betslip.totalOdds;\n viewModel.isFreeBet = betslip.isFreeBet;\n viewModel.isCachedOut = betslip.isEarlyPayout;\n viewModel.isBasicModel = betslip.isBasicModel;\n viewModel.stake = betslip.stake || emptyMoney();\n viewModel.possibleWinnings = getCalculatedPossibleWinnings(tokensConfig, betslip);\n viewModel.payoutAmount = getCalculatedPayoutAmount(tokensConfig, betslip);\n viewModel.grossPossibleWinnings = betslip.grossPossibleWinnings || emptyMoney();\n viewModel.grossPayoutAmount = betslip.grossPayout || emptyMoney();\n viewModel.betProtectorInformation = betslip.betProtectorInformation || emptyBetProtector();\n viewModel.isRefunded = viewModel.betProtectorInformation.state === ProtectorState.Won;\n viewModel.taxInformation = getTaxInformation(betslip.taxInformation);\n viewModel.externalTicketId = betslip.externalTicketId || null;\n viewModel.licenseId = betslip.licenseId || null;\n viewModel.typeAsName = betslip.typeAsName;\n viewModel.typeTranslated = betslip.type;\n viewModel.containsLiveBets = betslip.containsLiveBets || false;\n viewModel.bets = MyBetsBetSlip.createFromApiResponse(betslip);\n viewModel.enhanceBetsWithEventData(events);\n viewModel.bestOddsGuaranteeInformation = betslip.bestOddsGuaranteedInformation || emptyBestOddsGuaranteed();\n viewModel.isEditBet = this.checkIsEditBet(betslip);\n viewModel.editBetHistory = (betslip.editBetInformation?.editBetHistory || []).map((e) => new EditBetHistoryInformation(e));\n viewModel.earlyPayoutInformation = betslip.earlyPayoutInformation as EarlyPayoutInformation;\n viewModel.isRecoveringAfterEditBet = betslip.editBetInformation?.editBetProgressInformation?.isRecovering || false;\n viewModel.usedRewardTokens = [MyBetsBetSlip.getUsedReward(betslip)!].filter(Boolean);\n\n const [placeBetSignPosting, postBetSignPosting] = partition(betslip.signPostings, (signPost) => signPost.type === SignPostType.BetPlacement);\n viewModel.signPostingRewards = getSignPostingRewards(postBetSignPosting, betslip);\n viewModel.placeBetSignPosting = betslip.isFreeBet ? undefined : getPlaceBetSignPosting(placeBetSignPosting, betslip);\n\n viewModel.state = betslip.state;\n viewModel.systemBetDetails = betslip.systemBetDetails;\n viewModel.edsPromoTokens = betslip.edsPromoTokens;\n viewModel.isPendingPayout = betslip.isEarlyPayout && betslip.isDelayedForEarlyPayout;\n const { isTeaserBet, teaserPoints } = MyBetsBetSlip.resolveTeaserBetInfo(betslip);\n\n viewModel.isTeaserBet = isTeaserBet;\n viewModel.teasedAmount = teaserPoints;\n viewModel.sgpType = MyBetsBetSlip.getSgpType(betslip);\n viewModel.isOGPRepricePending = betslip.betGroups.some((betGroup) => betGroup.ogpBetGroupDetails?.repricingInfo?.isPending);\n viewModel.totalOGPRepricedOdds = betslip.ogpRepricingInfo?.totalOdds;\n return viewModel;\n }\n\n static getUsedReward(betslip: BetSlip): Nullable {\n if (betslip.isFreeBet) {\n return { tokenType: TokenType.FreeBetToken };\n } else if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n return { tokenType: TokenType.BetAndGetToken };\n } else if (!isEmpty(betslip.promoTokens)) {\n return UsedRewardToken.createFromResponse(betslip.promoTokens[0], SlipState.Open);\n } else {\n return null;\n }\n }\n\n private static checkIsEditBet(betslip: BetSlip): boolean {\n if (betslip.isEditBet === undefined) {\n return !!betslip.editBetInformation;\n }\n\n return betslip.isEditBet;\n }\n\n get usedRewardToken(): Nullable {\n if (this.usedRewardTokens && this.usedRewardTokens.length) {\n return this.usedRewardTokens[0];\n }\n\n return null;\n }\n\n private enhanceBetsWithEventData(events: { [key: string]: MyBetsEventModel }): void {\n for (const bet of this.bets) {\n if (bet.resultInfo) {\n bet.resultInfo.event = events[bet.resultInfo.eventId] || null;\n }\n if (bet.betBuilderInfo) {\n if (bet.betBuilderInfo.legs.length > 1 && !!bet.betBuilderInfo.compoundId) {\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.compoundId] ?? events[bet.betBuilderInfo.fixtureId] ?? null;\n }\n\n switch (bet.betBuilderInfo.offerSource) {\n case OfferSource.V1:\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.eventId] ?? null;\n break;\n case OfferSource.V2:\n bet.betBuilderInfo.event = events[bet.betBuilderInfo.compoundId] ?? null;\n break;\n }\n }\n\n if (bet.optionMarketInfo) {\n bet.optionMarketInfo.event = events[bet.optionMarketInfo.compoundId] ?? null;\n }\n }\n }\n\n private static createFromApiResponse(betslip: BetSlip): MyBetsBet[] {\n const betslipBets = betslip.bets ?? [];\n const betslipGroups = betslip.betGroups ?? [];\n const betslipBetOGPGroups = betslipGroups.filter((betGroup) => betGroup.betGroupType === BetGroupType.Ogp);\n\n // The betslip.Bets collection contains bets that are part of groups and stand-alone bets. For bets that are part of OGP groups we will consider them as legs,\n // hence we skip them from regular bet mapping and use a custom mapper that will yield a single mapped bet\n const betsByGroupMap = new Map();\n const standAloneBets: Bet[] = [];\n for (const bet of betslipBets) {\n let isStandAloneBet = true;\n for (const betGroup of betslipBetOGPGroups) {\n const groupBets = betsByGroupMap.get(betGroup) || [];\n if (betGroup.bets.some((betIndex) => bet.index === betIndex)) {\n isStandAloneBet = false;\n groupBets.push(bet);\n }\n betsByGroupMap.set(betGroup, groupBets);\n }\n if (isStandAloneBet) {\n standAloneBets.push(bet);\n }\n }\n\n const ogpBetGroups = Array.from(betsByGroupMap.keys());\n\n const mappedStandAloneBets = standAloneBets.map((bet) => MyBetsBet.createFromBetResponse(bet));\n const groupBets = ogpBetGroups.map((betGroup) => MyBetsBet.createFromOgpBetGroupResponse(betGroup, betsByGroupMap.get(betGroup)!));\n\n return sortBy(groupBets.concat(mappedStandAloneBets), (mappedBet) => mappedBet.betIndex);\n }\n\n private static resolveTeaserBetInfo(betslip: BetSlip): { isTeaserBet: boolean; teaserPoints: number | undefined } {\n // we are expecting that there is only one TeaserBet per slip\n const teaserBetGroup = betslip.betGroups?.find((betGroup) => betGroup.betGroupType === BetGroupType.Teaser);\n\n return { isTeaserBet: !!teaserBetGroup, teaserPoints: teaserBetGroup?.teaserBetGroupDetails?.teaserPoints };\n }\n\n static getSgpType(betslip: BetSlip): SgpType | undefined {\n const sgpGroups = betslip.betGroups.filter((g) => g.index !== undefined && g.betGroupType === BetGroupType.Ogp);\n\n // if no bet groups - undefined\n if (!Array.isArray(sgpGroups) || !sgpGroups.length) {\n return undefined;\n }\n\n if (sgpGroups.length === 1) {\n const allBetsInSameGroup = betslip.bets.every((bet) => {\n return sgpGroups[0].bets.includes(bet.index);\n });\n\n return allBetsInSameGroup ? SgpType.Sgp : SgpType.SgpPlus;\n }\n\n // if more than one sgp group - SgpPlus\n return SgpType.SgpPlus;\n }\n}\n\n// These function are scoped inside module and do NOT leak into window-object\nfunction calculateDateKey(isoDate: string): number {\n const [datePart]: string[] = isoDate.split('T');\n\n return parseInt(datePart.replace(/-/g, ''));\n}\n\nfunction getTaxInformation(taxInformation: TaxInformationResponse): TaxInformation {\n if (!taxInformation) {\n return emptyTaxInformation();\n }\n\n return {\n taxes: taxInformation.taxes,\n additionalInformation: taxInformation.additionalInformation,\n };\n}\n\nfunction emptyBestOddsGuaranteed(): BestOddsGuaranteedInformation {\n return {\n state: BestOddsGuaranteedState.NotEligible,\n fixedPriceWinnings: {\n value: 0,\n currency: '',\n },\n };\n}\n\nfunction emptyBetProtector(): BetProtectorInformation {\n return {\n fee: 0,\n } as BetProtectorInformation;\n}\n\nfunction emptyMoney(): Money {\n return {\n value: 0,\n currency: '',\n };\n}\n\nfunction emptyAdditionalInformation(): AdditionalInformationBpos {\n return {\n informationItems: [],\n };\n}\n\nfunction emptyTaxInformation(): TaxInformation {\n return {\n taxes: [],\n additionalInformation: emptyAdditionalInformation(),\n };\n}\n\nfunction getCalculatedPossibleWinnings(tokensConfig: CrmConfig, betslip: BetSlip): Money {\n if (tokensConfig.tokens?.useFreebetStakeInCalculations && betslip.isFreeBet) {\n return betslip.grossPossibleWinnings || emptyMoney();\n }\n\n return betslip.maxPayout || emptyMoney();\n}\n\nfunction getCalculatedPayoutAmount(tokensConfig: CrmConfig, betslip: BetSlip): Money {\n if (tokensConfig.tokens?.useFreebetStakeInCalculations && betslip.isFreeBet) {\n return betslip.grossPayout || emptyMoney();\n }\n\n return betslip.payout || emptyMoney();\n}\n\nexport class MyBetsSlipEditBetHistoryViewModel extends MyBetsBetSlip {\n editBetTitle: string;\n\n static createEditBetFromBetslipResponse(betslip: BetSlip, title: string, tokensConfig: CrmConfig): MyBetsSlipEditBetHistoryViewModel {\n const viewModel = MyBetsBetSlip.createFromBetslipResponse(betslip, [], tokensConfig) as MyBetsSlipEditBetHistoryViewModel;\n viewModel.editBetTitle = title;\n\n return viewModel;\n }\n}\n\nexport interface IBetSlipRepositoryResult {\n betslips: MyBetsBetSlip[];\n hasMore: boolean;\n pageIndex: number;\n listType: BetslipListType | null;\n errorLoadingBets: boolean | undefined;\n}\n\nfunction convertBetBuilderBetState(betBuilderBetState: BetBuilderBetState): BetBuilderLegState {\n switch (betBuilderBetState) {\n case BetBuilderBetState.Canceled:\n return BetBuilderLegState.Cancelled;\n case BetBuilderBetState.Lost:\n return BetBuilderLegState.Lost;\n case BetBuilderBetState.Open:\n return BetBuilderLegState.Open;\n case BetBuilderBetState.Won:\n return BetBuilderLegState.Won;\n default:\n return exhaustiveCheckGuard(betBuilderBetState);\n }\n}\n\n// When the new betslip.signPostings object have no postBetPlacement data and exists betslip.signPostingRewards then return betslip.signPostingRewards\nfunction getSignPostingRewards(signPostings: SignPost[], betslip: BetSlip): SignPostingReward[] {\n try {\n if (signPostings.length === 0) {\n return betslip.signPostingRewards ?? [];\n }\n\n const parsedSignPostDetails = signPostings.map((signPost) => JSON.parse(signPost.data) as SignPostingData);\n parsedSignPostDetails.sort((a, b) => a.rewardTime - b.rewardTime);\n\n return parsedSignPostDetails.flatMap((obj) =>\n obj.rewards.map((reward) => ({\n currency: reward.currency,\n offerId: obj.offerId,\n offerType: obj.offerType,\n rewardTime: obj.rewardTime,\n type: reward.type,\n value: reward.value,\n maxCap: reward.maxCap,\n noOfSlabs: reward.noOfSlabs,\n slabAmount: reward.slabAmount,\n })),\n );\n } catch (error) {\n throw new Error('Error while parsing post bet placement signposting JSON');\n }\n}\n\n// When the new betslip.signPostings object have no betPlacement data and the betslip.edsPromoTokens tokenType is BetAndGet\n// then return betslip.edsPromoTokens[0].additionalInformation PlaceBetSignPostingData\nfunction getPlaceBetSignPosting(signPostings: SignPost[], betslip: BetSlip): PromoTokenPlaceBetSignPostingInfo | BetAndGetEdsToken | undefined {\n try {\n if (signPostings.length) {\n const parsedData = JSON.parse(signPostings[0].data);\n if (!isEmpty(betslip.promoTokens)) {\n return parsedData as PromoTokenPlaceBetSignPostingInfo;\n }\n if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n return parsedData as BetAndGetEdsToken;\n }\n } else {\n if (isEdsPromoTokenBetAndGet(betslip.edsPromoTokens)) {\n const placeBetSignPost = betslip.edsPromoTokens[0].additionalInformation.informationItems.find(\n (item: KeyValueInformation) => item.key === 'PlaceBetSignPostingData',\n )?.value;\n\n return placeBetSignPost ? (JSON.parse(placeBetSignPost) as BetAndGetEdsToken) : undefined;\n }\n }\n\n return;\n } catch (error) {\n throw new Error('Error while parsing bet placement signposting JSON');\n }\n}\n","import { Money } from '@bpos';\nimport { Nullable } from '@frontend/sports/common/core/utils/extended-types';\n\nimport { PayoutError } from './early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from './my-bets-viewmodels';\n\nexport interface EarlyPayoutSubscription {\n betNumber: string;\n}\n\nexport interface PayoutStatus {\n type: string;\n expectedPayout?: number;\n actualPayout?: number;\n queryStatusRetryDelay?: number;\n pendingQueryStatusRetryDelay?: number;\n overdueRetryDelay: string;\n pendingOverdueRetryDelay?: number;\n error: PayoutError;\n}\n\nexport interface EarlyPayoutCallResponse {\n payout: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n payoutWithoutStake?: number;\n error?: PayoutError;\n}\n\nexport interface EarlyPayoutSuccessResponse {\n payout: number;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n payoutWithoutStake?: number;\n betslipId: string;\n}\n\nexport interface EarlyPayoutFailedResponse {\n error: Nullable;\n /**\n\t\tHas Value only for FreeBets. \n\t\tUsed only to show to the customer and in Web tracking.\n */\n possibleAmountWithoutStake?: number;\n betslipId: string;\n}\n\nexport interface PossibleEarlyPayoutResponse {\n earlyPayouts: EarlyPayoutPossibility[];\n}\n\nexport interface IEarlyPayoutPicksResult {\n optionId: number;\n state: EarlyPayoutResultedPickState;\n}\n\nexport enum EarlyPayoutResultedPickState {\n Won = 0,\n Lost = 1,\n Cancelled = 2,\n}\n\nexport enum EarlyPayoutBetslipType {\n Single = 'Single',\n Combo = 'Combo',\n}\n\nexport interface EarlyPayoutPossibility {\n betNumber: string;\n earlyPayoutPossible: boolean;\n earlyPayoutValue: number;\n earlyPayoutError?: PayoutError;\n editBetPossible?: boolean;\n autoCashOutValue?: number;\n autoCashoutNotificationValue?: number;\n resultedPicks?: IEarlyPayoutPicksResult[]; // Used in Editbet\n}\n\nexport interface BetRequest {\n key: number;\n betNumber: string;\n acceptanceMode: string;\n expectedPayout: number;\n}\n\nexport interface IEarlyPayoutParams {\n betslipId: string;\n earlyPayoutStake: number | null;\n}\n\nexport interface EarlyPayoutRequest {\n bet: BetRequest;\n}\n\nexport interface EarlyPayoutResponse {\n requestId: string;\n betslipId: string;\n payoutStatus: PayoutStatus;\n}\n\nexport enum EditBetStatus {\n Succeeded = 'Succeeded',\n Failed = 'Failed',\n Pending = 'Pending',\n}\n\nexport interface EditBetPlacementStatus {\n status: EditBetStatus;\n delayInSeconds?: number;\n}\n\nexport interface PossibleEarlyPayoutByBetNumberResponse {\n earlyPayoutPossibilities: EarlyPayoutPossibility[];\n}\n\nexport interface EarlyPayoutValueSubscription {\n betNumber: string;\n}\n\nexport interface SubscribeRequest {\n subscriptions: EarlyPayoutValueSubscription[];\n calculateEarlyPayout: boolean;\n}\n\nexport interface EarlyPayoutsWithBetslip {\n earlyPayout: EarlyPayoutPossibility;\n betslip: MyBetsBetslipBase;\n}\n\nexport interface AutoCashoutResponse {\n betNumber?: string;\n setAutoCashoutErrors: PayoutError[];\n possible?: boolean;\n}\n\nexport interface CashoutSettingsBetInfo {\n betslipId: string;\n earlyPayout?: EarlyPayout;\n possibleWinnings: Money;\n grossPossibleWinnings: Money;\n isFreeBet: boolean;\n stake: Money;\n betType: string;\n containsLiveBets: boolean;\n}\n\nexport enum CashoutSettingsType {\n Auto = 1,\n Notify = 2,\n}\n\nexport interface SetAutoCashoutRequest {\n betNumber: string;\n autoCashoutValue: number;\n autoCashoutType: CashoutSettingsType;\n}\n\nexport interface RemoveAutoCashoutRequest {\n betNumber: string;\n autoCashoutType: CashoutSettingsType;\n}\n\nexport enum AutoCashoutState {\n Available = 0,\n Processing = 1,\n Disabled = 2,\n}\n\nexport interface AutocashoutValidation {\n valid: boolean;\n errorMessage: string;\n}\n\nexport interface AutoCashoutTracking {\n setType: CashoutSettingsType;\n betNumber: string;\n eventName: string;\n trackingName: string;\n value?: number;\n betType: string;\n isFreeBet: boolean;\n labelEvent: string;\n containsLiveBets: boolean;\n}\n\nexport interface IAutoCashoutBetslipNumbers {\n betslipId: string;\n betslipRealId: string;\n}\n\nexport interface EarlyPayoutEnhancedBet {\n betNumber: string;\n autoCashoutValue: number;\n autoCashoutNotificationValue: number;\n}\n\nexport interface EarlyPayoutByBetNumberResponse {\n data: EarlyPayoutEnhancedBet[];\n}\n","import { Injectable } from '@angular/core';\n\nimport { SlipState } from '@bpos/v1/my-bets';\nimport { MoneyService } from '@frontend/sports/common/core/feature/money';\n\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { EarlyPayoutErrorTypes, EarlyPayoutOptionErrors, EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetSlip, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutHelpers {\n // Extend the set with all supported bet not allowed reasons\n private readonly betNotAllowedReasons = new Set(['livesgp']);\n\n constructor(private moneyService: MoneyService) {}\n\n isEarlyPayoutDisabled(betslip: MyBetsBetslipBase): boolean {\n let result = false;\n if (\n !betslip ||\n !betslip.earlyPayout ||\n betslip.earlyPayout.state === EarlyPayoutStates.Done ||\n betslip.earlyPayout.state === EarlyPayoutStates.PaidOut ||\n betslip.earlyPayout.state === EarlyPayoutStates.PermanentlyDisabled ||\n betslip.earlyPayout.state === EarlyPayoutStates.Completed\n ) {\n result = true;\n }\n\n return result;\n }\n\n isEarlyPayoutPermanentlyDisabled(ep: EarlyPayoutPossibility): boolean {\n return (\n !ep.earlyPayoutPossible &&\n this.getEarlyPayoutErrorTypeLowerCase(ep.earlyPayoutError?.type, ep.earlyPayoutError?.reason) ===\n EarlyPayoutErrorTypes.BetNotAllowedForCashout.toLowerCase()\n );\n }\n\n mapDisabledEarlyPayouts(betslips: MyBetsBetslipBase[]): void {\n betslips\n .filter((betslip) => betslip && !betslip.isCachedOut && !betslip.earlyPayout)\n .forEach((betslip) => {\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n });\n }\n\n mapPermanentlyDisabledEarlyPayouts(earlyPayouts: EarlyPayoutPossibility[], potentialEPbetslips: MyBetsBetslipBase[]): void {\n earlyPayouts\n .filter((earlyPayout: EarlyPayoutPossibility) => this.isEarlyPayoutPermanentlyDisabled(earlyPayout))\n .forEach((earlyPayout: EarlyPayoutPossibility) => {\n potentialEPbetslips\n .filter((betslip: MyBetsBetslipBase) => betslip.betslipRealId === earlyPayout.betNumber && betslip.state === SlipState.Open)\n .forEach((betslip: MyBetsBetslipBase) => {\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.PermanentlyDisabled;\n });\n });\n }\n\n mapHiddenEarlyPayouts(betslips: MyBetsBetslipBase[]): void {\n betslips.forEach((betslip) => {\n betslip.hideEP = betslip.earlyPayout && betslip.earlyPayout.state === EarlyPayoutStates.PermanentlyDisabled;\n });\n }\n\n mapEarlyPayoutsWithBetslip(potentialEPbetslips: MyBetsBetslipBase[], betsEpEligible: EarlyPayoutPossibility[]): EarlyPayoutsWithBetslip[] {\n return betsEpEligible\n .map((ep) => {\n return {\n earlyPayout: ep,\n betslip: potentialEPbetslips.find((betslip) => betslip.betslipRealId === ep.betNumber)!,\n };\n })\n .filter((match) => match.earlyPayout && match.betslip);\n }\n\n // For Italy labels money.service floors the amount instead of rounding it\n // For FreeBet cashouts there might be inconsistent amounts shown if cashouts are enabled on Italy\n getValueWithoutFreeBetStake(stake: number, earlyPayoutValue: number | undefined, isFreeBet: boolean): number | undefined {\n return isFreeBet && earlyPayoutValue ? this.moneyService.roundMoney(earlyPayoutValue - stake) : undefined;\n }\n\n // For Italy labels money.service floors the amount instead of rounding it\n // For FreeBet cashouts there might be inconsistent amounts shown if cashouts are enabled on Italy\n getValueWithFreeBetStake(stake: number, earlyPayoutValue: number, isFreeBet: boolean): number | undefined {\n return isFreeBet && earlyPayoutValue ? this.moneyService.roundMoney(earlyPayoutValue + stake) : undefined;\n }\n\n getEarlyPayoutErrorTypeLowerCase(type?: string, reason?: string): string | undefined {\n if (type && reason && this.isLiveSgpError(type, reason)) {\n return `${type}${reason}`.toLowerCase();\n }\n\n return type?.toLowerCase();\n }\n\n isLiveSgpError(type?: string, reason?: string): boolean {\n const typeToLowerCase = type?.toLowerCase();\n const reasonToLowerCase = reason?.toLowerCase();\n\n return (\n typeToLowerCase === EarlyPayoutErrorTypes.BetNotAllowedForCashout.toLowerCase() &&\n !!reasonToLowerCase &&\n this.betNotAllowedReasons.has(reasonToLowerCase)\n );\n }\n\n earlyPayoutIsNotOffered(betslip: MyBetsBetSlip): boolean {\n const earlyPayoutError = betslip.earlyPayout?.error;\n return (\n !!earlyPayoutError &&\n (earlyPayoutError.type === EarlyPayoutErrorTypes.BetNotAllowedForCashout ||\n earlyPayoutError.type === EarlyPayoutOptionErrors.OptionMarketTemplateNotAllowed ||\n (!!betslip.isTeaserBet && earlyPayoutError.type === EarlyPayoutErrorTypes.CashoutNotAllowed))\n );\n }\n}\n","export enum EarlyPayoutSubscriptionSource {\n MyBets = 'mybets',\n EditBet = 'editbet',\n}\n","import { inject } from '@angular/core';\n\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\n\nimport { EarlyPayoutDispatcherEvent } from '../../my-bets/models/early-payout.model';\nimport { EarlyPayoutCallResponse, EarlyPayoutFailedResponse, EarlyPayoutSuccessResponse } from '../models/early-payout';\nimport { EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutService } from './early-payout.service';\n\nexport abstract class EarlyPayoutSubmitService {\n private betslipPayoutStatuses: { [id: string]: EarlyPayoutStates } = {};\n private betslipsWithExecutedPayoutOperation: { [id: string]: MyBetsBetslipBase } = {};\n\n private readonly dispatcher = inject(DispatcherService);\n\n constructor(private epService: EarlyPayoutService) {}\n\n submitPayout(betslip: MyBetsBetslipBase, context: string, betTypeInfo?: string): Promise {\n const deferred = new Deferred();\n const betslipId = betslip.betslipRealId;\n\n this.betslipPayoutStatuses[betslipId] = EarlyPayoutStates.Preparing;\n\n this.epService\n .place(betslip, context, betTypeInfo)\n .then((response: EarlyPayoutCallResponse) => {\n if (response.error) {\n delete this.betslipPayoutStatuses[betslipId];\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutFailed, {\n error: response.error,\n possibleAmountWithoutStake: response.payoutWithoutStake,\n betslipId,\n });\n\n return;\n }\n\n this.betslipPayoutStatuses[betslipId] = EarlyPayoutStates.PaidOut;\n const earlyPayout = this.betslipsWithExecutedPayoutOperation[betslipId]?.earlyPayout;\n if (earlyPayout !== undefined) {\n earlyPayout.state = EarlyPayoutStates.PaidOut;\n }\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutSuccess, {\n payout: response.payout,\n payoutWithoutStake: response.payoutWithoutStake,\n betslipId,\n });\n deferred.resolve(response);\n })\n .catch((error) => {\n delete this.betslipPayoutStatuses[betslipId];\n\n betslip.earlyPayout = betslip.earlyPayout || new EarlyPayout();\n betslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n if (error.error) {\n betslip.earlyPayout.error = error.error;\n }\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.EarlyPayoutFailed, {\n error: error.error,\n betslipId,\n });\n })\n .finally(() => {\n delete this.betslipsWithExecutedPayoutOperation[betslipId];\n });\n\n return deferred.promise;\n }\n\n adjustPayoutStatus(betslip: MyBetsBetslipBase): void {\n const betslipId = betslip.betslipRealId;\n const earlyPayoutState = this.betslipPayoutStatuses[betslipId];\n const earlyPayout = betslip.earlyPayout;\n\n if (earlyPayout !== undefined && earlyPayoutState !== undefined) {\n earlyPayout.state = earlyPayoutState;\n\n if (earlyPayoutState === EarlyPayoutStates.Preparing) {\n this.betslipsWithExecutedPayoutOperation[betslipId] = betslip;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ErrorKind, PickState, PickWithState } from '@cds/push/cashout-commands';\n\nimport { EarlyPayoutBetslipType } from '../models/early-payout';\nimport { EarlyPayoutErrorTypes, EarlyPayoutOptionErrors, EarlyPayoutPickState, PayoutError, PayoutErrorPick } from '../models/early-payout-types';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionMapperService {\n mapToEarlyPayoutError(error?: PayoutError): PayoutError | undefined {\n if (!error) {\n return;\n }\n\n return {\n ...error,\n type: this.convertOptionToPayoutErrorType(error),\n };\n }\n\n convertPicksToPickStatus(picks?: PickWithState[]): PayoutErrorPick[] {\n if (!picks) {\n return [];\n }\n\n return picks.map((pick) => ({\n id: pick.id,\n state: this.convertEarlyPayoutPushPickStateToEarlyPayoutErrorPick(pick.pickState),\n }));\n }\n\n convertPushUpdateErrorKindToEarlyPayoutError(error: ErrorKind, picks: PickWithState[]): string {\n switch (error) {\n case ErrorKind.BetLost:\n return EarlyPayoutErrorTypes.BetLost;\n case ErrorKind.BetNotFound:\n return EarlyPayoutErrorTypes.BetNotFound;\n case ErrorKind.CashoutNotFound:\n return EarlyPayoutErrorTypes.CashoutNotFound;\n case ErrorKind.ChangedBetSlipState:\n return EarlyPayoutErrorTypes.ChangedBetSlipState;\n case ErrorKind.DuplicatedCashout:\n return EarlyPayoutErrorTypes.DuplicatedCashout;\n case ErrorKind.OverMaxCashoutAmount:\n return EarlyPayoutErrorTypes.OverMaxCashoutAmount;\n case ErrorKind.UnderMinCashoutAmount:\n return EarlyPayoutErrorTypes.UnderMinCashoutAmount;\n case ErrorKind.BetNotAllowedForCashout:\n return EarlyPayoutErrorTypes.BetNotAllowedForCashout;\n case ErrorKind.Option:\n return this.convertPushUpdateOptionErrorToPayoutErrorType(this.convertPicksToPickStatus(picks));\n case ErrorKind.UnderMinOddsKey:\n return EarlyPayoutErrorTypes.UnderMinOddsKey;\n case ErrorKind.CashoutNotAllowed:\n return EarlyPayoutErrorTypes.CashoutNotAllowed;\n case ErrorKind.InconsistentMonetaryValue:\n return EarlyPayoutErrorTypes.InconsistentMonetaryValue;\n case ErrorKind.AutoCashoutNotAllowed:\n return EarlyPayoutErrorTypes.AutoCashoutNotAllowed;\n case ErrorKind.DuplicatedAutoCashout:\n return EarlyPayoutErrorTypes.DuplicatedAutoCashout;\n case ErrorKind.CashoutAmountLowerOrEqualToFreeBet:\n return EarlyPayoutErrorTypes.CashoutAmountLowerOrEqualToFreeBet;\n default:\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n }\n\n convertOptionToPayoutErrorType(error: PayoutError): string {\n if (error.type === EarlyPayoutErrorTypes.ChangedOptionStatus) {\n return this.convertPushUpdateOptionErrorToPayoutErrorType(error.picks);\n }\n\n return error.type;\n }\n\n private convertEarlyPayoutPushPickStateToEarlyPayoutErrorPick(pickState: PickState): EarlyPayoutPickState {\n switch (pickState) {\n case PickState.Won:\n return EarlyPayoutPickState.Won;\n case PickState.Lost:\n return EarlyPayoutPickState.Lost;\n case PickState.Cancelled:\n return EarlyPayoutPickState.Cancelled;\n case PickState.ChangedStatus:\n return EarlyPayoutPickState.ChangedStatus;\n case PickState.CutOffDateReached:\n return EarlyPayoutPickState.CutOffDateReached;\n case PickState.Eligible:\n return EarlyPayoutPickState.Eligible;\n case PickState.Hidden:\n return EarlyPayoutPickState.Hidden;\n case PickState.Locked:\n return EarlyPayoutPickState.Locked;\n case PickState.MarketTemplateNotAllowed:\n return EarlyPayoutPickState.MarketTemplateNotAllowed;\n case PickState.NotFound:\n return EarlyPayoutPickState.NotFound;\n default:\n return EarlyPayoutPickState.Unknown;\n }\n }\n\n private convertPushUpdateOptionErrorToPayoutErrorType(picks?: PayoutErrorPick[]): string {\n if (!picks) {\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n\n const betslipType = picks.length === 1 ? EarlyPayoutBetslipType.Single : EarlyPayoutBetslipType.Combo;\n const pickStates = this.getPickstatesSortedByVisiblePriorityDesc();\n\n let highestPriorityPickStateIndex = 0;\n let highestPriorityPickState = '';\n picks.forEach((pick) => {\n if (pickStates[pick.state] && pickStates[pick.state] > highestPriorityPickStateIndex) {\n highestPriorityPickStateIndex = pickStates[pick.state];\n highestPriorityPickState = pick.state.toString();\n }\n });\n\n switch (highestPriorityPickState) {\n case EarlyPayoutPickState.MarketTemplateNotAllowed:\n return EarlyPayoutOptionErrors.OptionMarketTemplateNotAllowed;\n case EarlyPayoutPickState.CutOffDateReached:\n return EarlyPayoutOptionErrors.OptionCutOffDateReached;\n case EarlyPayoutPickState.ChangedStatus:\n return EarlyPayoutOptionErrors.OptionChangedStatus;\n case EarlyPayoutPickState.NotFound:\n return EarlyPayoutOptionErrors.OptionNotFound;\n case EarlyPayoutPickState.Hidden: {\n if (betslipType === EarlyPayoutBetslipType.Single) {\n return EarlyPayoutOptionErrors.OptionHiddenSingle;\n }\n\n return EarlyPayoutOptionErrors.OptionHiddenCombo;\n }\n case EarlyPayoutPickState.Locked: {\n if (betslipType === EarlyPayoutBetslipType.Single) {\n return EarlyPayoutOptionErrors.OptionLockSingle;\n }\n\n return EarlyPayoutOptionErrors.OptionLockCombo;\n }\n default:\n return EarlyPayoutErrorTypes.TechnicalError;\n }\n }\n\n private getPickstatesSortedByVisiblePriorityDesc(): { [state: string]: number } {\n return {\n [EarlyPayoutPickState.Locked]: 1,\n [EarlyPayoutPickState.Hidden]: 2,\n [EarlyPayoutPickState.ChangedStatus]: 3,\n [EarlyPayoutPickState.NotFound]: 4,\n [EarlyPayoutPickState.CutOffDateReached]: 5,\n [EarlyPayoutPickState.MarketTemplateNotAllowed]: 6,\n };\n }\n}\n","import { inject } from '@angular/core';\n\nimport { MessageEnvelope } from '@cds/push';\nimport { CashoutNotification, ErrorKind, PickState, PickWithState } from '@cds/push/cashout-commands';\nimport { EarlyPayoutConfig } from '@frontend/sports/common/client-config-data-access';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { DispatcherService } from '@frontend/sports/common/core/utils/dispatcher';\nimport { CachoutSubscription, CdsPushService } from '@frontend/sports/content-distribution/feature';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\nimport { values } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { debounceTime, groupBy, mergeMap } from 'rxjs/operators';\n\nimport { EarlyPayoutDispatcherEvent } from '../../my-bets/models/early-payout.model';\nimport {\n EarlyPayoutPossibility,\n EarlyPayoutResultedPickState,\n EarlyPayoutSubscription,\n EarlyPayoutsWithBetslip,\n IEarlyPayoutPicksResult,\n} from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutErrorTypes, EarlyPayoutStates } from '../models/early-payout-types';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport abstract class EarlyPayoutSubscriptionService {\n private timer: number;\n private useBatch = false;\n private resubscribeBetNumbersOnExpiredDate = false;\n private callback?: (earlyPayoutsWithBetslip: EarlyPayoutsWithBetslip) => void;\n private subscribedList: EarlyPayoutSubscription[] = [];\n private potentialEPbetslips: MyBetsBetslipBase[] = [];\n\n private subject = new Subject();\n private subscriptions: { [key: string]: CachoutSubscription } = {};\n private logger: SportsRemoteLogger = inject(LoggerFactory).getLogger('EarlyPayoutSubscriptionService');\n\n private readonly epConfig = inject(EarlyPayoutConfig);\n private readonly cdsPush = inject(CdsPushService);\n private readonly epHelpers = inject(EarlyPayoutHelpers);\n private readonly dispatcher = inject(DispatcherService);\n private readonly userSettings = inject(SyncUserSettingsService);\n private readonly earlyPayoutSubscriptionMapperService = inject(EarlyPayoutSubscriptionMapperService);\n\n constructor(private earlyPayoutService: EarlyPayoutService) {\n this.subject\n .pipe(\n groupBy((message) => message.betNumber),\n mergeMap((messageGroup) => messageGroup.pipe(debounceTime(10))),\n )\n .subscribe((message) => this.handleEarlyPayoutPush(message));\n }\n\n subscribeEarlyPayoutChanges(\n potentialEPbetslips: MyBetsBetslipBase[],\n betslipsToSubscribe: MyBetsBetslipBase[],\n useBatchCalls: boolean = false,\n callback?: (ep: EarlyPayoutsWithBetslip) => void,\n ): void {\n this.potentialEPbetslips = potentialEPbetslips;\n this.resubscribeBetNumbersOnExpiredDate = true;\n this.callback = callback;\n\n const newSubscriptions = this.createSubscriptions(betslipsToSubscribe);\n\n this.subscribedList.push(...newSubscriptions);\n\n this.subscribeEarlyPayoutValueChanges(this.subscribedList, useBatchCalls);\n }\n\n unsubscribeEarlyPayoutService(): void {\n this.resubscribeBetNumbersOnExpiredDate = false;\n\n this.cdsPush.unsubscribe(values(this.subscriptions));\n\n this.subscriptions = {};\n this.subscribedList = [];\n\n clearTimeout(this.timer);\n }\n\n private createSubscriptions(betslips: MyBetsBetslipBase[]): EarlyPayoutSubscription[] {\n const tempSubscriptions: EarlyPayoutSubscription[] = betslips.map((betslip: MyBetsBetslipBase) => {\n return {\n betNumber: betslip.betslipRealId,\n };\n });\n\n return tempSubscriptions;\n }\n\n private handleEarlyPayoutValuePushUpdate = (earlyPayouts: EarlyPayoutPossibility[]): void => {\n this.epHelpers.mapPermanentlyDisabledEarlyPayouts(earlyPayouts, this.potentialEPbetslips);\n this.epHelpers.mapDisabledEarlyPayouts(this.potentialEPbetslips);\n this.epHelpers.mapHiddenEarlyPayouts(this.potentialEPbetslips);\n\n const eligibleBetslips = this.potentialEPbetslips.filter((match) => !this.epHelpers.isEarlyPayoutDisabled(match));\n const earlyPayoutsWithBetslip = this.epHelpers.mapEarlyPayoutsWithBetslip(eligibleBetslips, earlyPayouts);\n const earlyPayoutAcceptanceMode = this.userSettings.earlyPayoutAcceptance || EarlyPayoutConst.ModeHigher;\n\n earlyPayoutsWithBetslip.forEach((match) => {\n const matchedBetslip = match.betslip;\n const earlyPayout = match.earlyPayout;\n\n if (this.callback) {\n this.callback(match);\n }\n\n // set new values\n if (matchedBetslip.earlyPayout) {\n if (\n matchedBetslip.earlyPayout.state === EarlyPayoutStates.Confirm &&\n matchedBetslip.earlyPayout.value > earlyPayout.earlyPayoutValue &&\n earlyPayoutAcceptanceMode === EarlyPayoutConst.ModeHigher\n ) {\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.PushToLower, true);\n }\n matchedBetslip.earlyPayout.acceptMode = earlyPayoutAcceptanceMode;\n matchedBetslip.earlyPayout.value = earlyPayout.earlyPayoutValue;\n matchedBetslip.earlyPayout.valueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n matchedBetslip.stake.value,\n earlyPayout.earlyPayoutValue,\n matchedBetslip.isFreeBet,\n );\n matchedBetslip.earlyPayout.earlyPayoutPossible = earlyPayout.earlyPayoutPossible;\n\n if (earlyPayout.earlyPayoutPossible && matchedBetslip.earlyPayout.state === EarlyPayoutStates.ModeHigher) {\n return;\n }\n\n if (matchedBetslip.earlyPayout.state === EarlyPayoutStates.Preparing) {\n return;\n }\n\n if (earlyPayout.earlyPayoutPossible && matchedBetslip.earlyPayout.state === EarlyPayoutStates.Disabled) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Allowed;\n matchedBetslip.earlyPayout.error = undefined;\n }\n\n if (!earlyPayout.earlyPayoutPossible && earlyPayout.earlyPayoutError!.type === EarlyPayoutErrorTypes.DuplicatedCashout) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Completed;\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.CashOutAlreadyExecuted);\n\n return;\n }\n\n if (!earlyPayout.earlyPayoutPossible) {\n matchedBetslip.earlyPayout.state = EarlyPayoutStates.Disabled;\n\n if (earlyPayout.earlyPayoutError) {\n matchedBetslip.earlyPayout.pushUpdate = true;\n matchedBetslip.earlyPayout.error = earlyPayout.earlyPayoutError;\n }\n }\n }\n });\n\n this.dispatcher.dispatch(EarlyPayoutDispatcherEvent.CashOut.Updated);\n };\n\n private subscribeEarlyPayoutValueChanges(bettingData: EarlyPayoutSubscription[], useBatchCalls?: boolean): void {\n const subscriptions: CachoutSubscription[] = [];\n\n bettingData.forEach((data) => {\n if (this.epConfig.isEarlyPayoutPushEnabled) {\n const bet = data.betNumber;\n\n if (!this.subscriptions[bet]) {\n const subscription = new CachoutSubscription(bet, this.handler);\n\n this.subscriptions[bet] = subscription;\n subscriptions.push(subscription);\n }\n }\n });\n\n this.useBatch = useBatchCalls === true;\n this.cdsPush.subscribe(subscriptions);\n }\n\n private handler = (data: MessageEnvelope) => {\n this.subject.next(data.payload);\n };\n\n private convertPicksToPickStatus(picks?: PickWithState[]): IEarlyPayoutPicksResult[] {\n if (!picks) {\n return [];\n }\n\n return picks\n .filter((pick) => pick.pickState === PickState.Won || pick.pickState === PickState.Lost || pick.pickState === PickState.Cancelled)\n .map((pick) => ({\n optionId: pick.id,\n state: this.convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState(pick.pickState),\n }));\n }\n\n private convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState(state: PickState): EarlyPayoutResultedPickState {\n switch (state) {\n case PickState.Won:\n return EarlyPayoutResultedPickState.Won;\n case PickState.Lost:\n return EarlyPayoutResultedPickState.Lost;\n default:\n return EarlyPayoutResultedPickState.Cancelled;\n }\n }\n\n private async handleEarlyPayoutPush(data: CashoutNotification): Promise {\n if (!data.subscriptionExpired) {\n const earlyPayoutError = data.errorKind\n ? {\n type: this.earlyPayoutSubscriptionMapperService.convertPushUpdateErrorKindToEarlyPayoutError(\n data.errorKind ?? ErrorKind.Unknown,\n data.picks,\n ),\n reason: data.betNotAllowedReason,\n picks: this.earlyPayoutSubscriptionMapperService.convertPicksToPickStatus(data.picks),\n }\n : undefined;\n\n this.handleEarlyPayoutValuePushUpdate([\n {\n betNumber: data.betNumber,\n earlyPayoutPossible: data.possible,\n earlyPayoutValue: data.possible ? data.value : 0,\n earlyPayoutError,\n resultedPicks: this.convertPicksToPickStatus(data.picks),\n },\n ]);\n }\n\n if (this.resubscribeBetNumbersOnExpiredDate && data.subscriptionExpired) {\n const betNumbersToCheck = [data.betNumber];\n const cancelationToken = new Deferred();\n\n // TODO group consequent push updates (i.e. 200 mls) and call checkEarlyPayoutAndSubscribe with several bet numbers\n try {\n const response = await this.earlyPayoutService.checkEarlyPayoutAndSubscribe(betNumbersToCheck, cancelationToken);\n const betNumbers = response.earlyPayouts.filter((bet) => bet.earlyPayoutPossible).map((bet) => bet.betNumber);\n if (betNumbers.length) {\n const betNumber = betNumbers[0];\n this.subscribeEarlyPayoutValueChanges([{ betNumber }], this.useBatch);\n }\n\n const betNumbersWithCashOutComplete = response.earlyPayouts\n .filter((ep) => !ep.earlyPayoutPossible && ep.earlyPayoutError?.type === EarlyPayoutErrorTypes.DuplicatedCashout)\n .map((ep) => ep.betNumber);\n\n if (betNumbersWithCashOutComplete.length) {\n const earlyPayoutNotPossible: EarlyPayoutPossibility[] = betNumbersWithCashOutComplete.map(\n (ep) =>\n {\n betNumber: ep,\n earlyPayoutPossible: false,\n earlyPayoutValue: 0,\n earlyPayoutError: { type: EarlyPayoutErrorTypes.DuplicatedCashout },\n },\n );\n\n this.handleEarlyPayoutValuePushUpdate(earlyPayoutNotPossible);\n }\n } catch (e) {\n this.logger.error(e, 'handleEarlyPayoutPush');\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { InternalFeaturesConfig } from '@frontend/sports/common/client-config-data-access';\nimport { BaseCustomLogger } from '@frontend/sports/common/core/feature/logging';\n\nimport { EarlyPayoutPossibility } from '../models/early-payout';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class EPSDetailedLogger extends BaseCustomLogger {\n constructor(\n api: ApiService,\n private internalConfig: InternalFeaturesConfig,\n ) {\n super(api, 'epslogger/logcheckresponse');\n }\n\n protected override isEnabled = (): boolean => this.internalConfig.isEPSDetailedLoggingEnabled;\n}\n","import { inject } from '@angular/core';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { toCent } from '@frontend/sports/common/core/utils/math';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { TrackData, TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { EPSDetailedLogger } from 'packages/sports/web/app/src/my-bets-base/early-payout/eps-detailed-logger.service';\nimport { firstValueFrom, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport {\n EarlyPayoutByBetNumberResponse,\n EarlyPayoutCallResponse,\n EarlyPayoutEnhancedBet,\n EarlyPayoutRequest,\n EarlyPayoutResponse,\n PayoutStatus,\n PossibleEarlyPayoutResponse,\n} from '../models/early-payout';\nimport { EarlyPayoutSubscriptionSource } from '../models/early-payout-subscription-source';\nimport { EarlyPayoutConst, PayoutError } from '../models/early-payout-types';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nclass TrackingData {\n containsLiveBets: boolean;\n context: string;\n isFreeBet: boolean;\n stake: number;\n betType: string;\n}\n\nexport abstract class EarlyPayoutService {\n private firstCall: boolean;\n private readonly logger: SportsRemoteLogger = inject(LoggerFactory).getLogger('EarlyPayoutService');\n\n private readonly apiService = inject(ApiService);\n private readonly tracker = inject(TrackingService);\n private readonly redirectService = inject(RedirectHelperService);\n private readonly timerService = inject(TimerService);\n private readonly epsLogger = inject(EPSDetailedLogger);\n private readonly epsMapper = inject(EarlyPayoutSubscriptionMapperService);\n private readonly earlyPayoutHelpers = inject(EarlyPayoutHelpers);\n\n constructor(private source: EarlyPayoutSubscriptionSource) {\n this.firstCall = true;\n }\n\n async checkEarlyPayoutAndSubscribe(betNumbers: string[], cancelationToken: Deferred): Promise {\n return firstValueFrom(\n this.apiService\n .get('CashoutCheckAndSubscribe', { betNumbers, source: this.source }, { cancelationToken })\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'Possible EarlyPayout response failed.');\n\n return of({ earlyPayouts: [] });\n }),\n map((result) => {\n if (result?.earlyPayouts?.length) {\n result.earlyPayouts.forEach((ep) => this.epsLogger.log(ep));\n }\n\n return result || { earlyPayouts: [] };\n }),\n ),\n );\n }\n\n async enhanceEarlyPayout(betNumbers: string[], cancelationToken: Deferred): Promise {\n return firstValueFrom(\n await this.apiService\n .get('autoCashout/GetByBetNumbers', { betNumbers: betNumbers.join() }, { cancelationToken })\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'EarlyPayout ehancement response failed.');\n\n return of({ data: [] });\n }),\n map((result) => {\n return result.data || [];\n }),\n ),\n );\n }\n\n place = async (betslip: MyBetsBetslipBase, context: string, betTypeInfo?: string): Promise => {\n if (!betslip.earlyPayout || !betslip.earlyPayout.acceptMode) {\n this.logger.error(JSON.stringify(betslip), `AcceptanceMode is empty.`);\n\n return Promise.resolve({\n payout: 0,\n error: { type: EarlyPayoutConst.EpGeneralError },\n });\n }\n\n // additional tracking values\n const trackingData: TrackingData = {\n containsLiveBets: betslip.containsLiveBets,\n context,\n isFreeBet: betslip.isFreeBet,\n stake: betslip.stake.value,\n betType: betTypeInfo ?? (betslip.sgpType ? betslip.sgpType.toLowerCase() : betslip.betType.toLowerCase()),\n };\n\n const request: EarlyPayoutRequest = {\n bet: {\n acceptanceMode: betslip.earlyPayout.acceptMode || EarlyPayoutConst.ModeHigher,\n betNumber: betslip.betslipRealId,\n key: 1,\n expectedPayout: betslip.earlyPayout.userExpectedValue,\n },\n };\n\n return await firstValueFrom(this.apiService.post('cashout', request))\n .then((response) => this.queue(response, trackingData))\n .catch((reason) => this.errorPayout(reason, betslip.betslipRealId, trackingData));\n };\n\n private checkEarlyPayoutStatus = async (requestId: string, betslipId: string, trackingData: TrackingData): Promise => {\n return await firstValueFrom(this.apiService.get('cashout', { requestId }))\n .then((response) => this.queue(response, trackingData, betslipId))\n .catch((reason) => this.errorPayout(reason, betslipId, trackingData));\n };\n\n private queue = (response: EarlyPayoutResponse, trackingData: TrackingData, betslipId?: string): Promise => {\n const payoutStatus = response.payoutStatus;\n const currentBetslipId = betslipId || response.betslipId;\n\n return new Promise((resolve) => {\n switch (payoutStatus.type) {\n case EarlyPayoutConst.StatusPending:\n const callDelay = this.firstCall ? payoutStatus.pendingQueryStatusRetryDelay : payoutStatus.pendingOverdueRetryDelay;\n this.timerService.setTimeout(async () => {\n this.firstCall = false;\n const nextCheck = await this.checkEarlyPayoutStatus(response.requestId, currentBetslipId, trackingData);\n\n return resolve(nextCheck);\n }, callDelay);\n break;\n case EarlyPayoutConst.StatusSucceded:\n return resolve(this.doneSuccess(payoutStatus, currentBetslipId, trackingData));\n default:\n return resolve(this.doneFail(payoutStatus, currentBetslipId, trackingData));\n }\n });\n };\n\n private errorPayout = (reason: { status: number }, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse => {\n if (reason.status === 403 || reason.status === 401) {\n this.redirectService.goToLogin({\n appendReferrer: true,\n referrerNeedsLoggedInUser: true,\n });\n }\n const reasonText = JSON.stringify(reason);\n this.logger.error(`EarlyPayout Unknown System Error. Reason: ${reasonText}`);\n\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(false, betslipId, trackingData.betType, trackingData.isFreeBet),\n [trackingConstants.COMPONENT_LOCATION_EVENT]:\n (trackingData.containsLiveBets ? 'live/earlypayout_UnknownSystem' : 'main/earlypayout_UnknownSystem') + trackingData.context,\n error: reasonText,\n });\n\n return { payout: 0, error: { type: EarlyPayoutConst.EpGeneralError } };\n };\n\n private doneSuccess(payoutStatus: PayoutStatus, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse {\n if (!payoutStatus || !payoutStatus.actualPayout) {\n return {};\n }\n\n const payoutWithoutStake = this.earlyPayoutHelpers.getValueWithoutFreeBetStake(\n trackingData.stake,\n payoutStatus.actualPayout,\n trackingData.isFreeBet,\n );\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(true, betslipId, trackingData.betType, trackingData.isFreeBet),\n earlyPayoutAmount: toCent(payoutWithoutStake || payoutStatus.actualPayout),\n [trackingConstants.COMPONENT_LOCATION_EVENT]:\n (trackingData.containsLiveBets ? 'live/earlypayout' : 'main/earlypayout') + trackingData.context,\n });\n\n return { payout: payoutStatus.actualPayout, payoutWithoutStake };\n }\n\n private doneFail(payoutStatus: PayoutStatus, betslipId: string, trackingData: TrackingData): EarlyPayoutCallResponse {\n const response: EarlyPayoutCallResponse = {};\n const payoutError = payoutStatus.error;\n\n payoutError.type = this.epsMapper.convertOptionToPayoutErrorType(payoutError);\n\n response.error = payoutError || { type: EarlyPayoutConst.EpGeneralError };\n response.payout = payoutError?.possibleAmount || 0;\n\n let trackingAmount = response.payout;\n const payoutWithoutStake = this.earlyPayoutHelpers.getValueWithoutFreeBetStake(trackingData.stake, response.payout, trackingData.isFreeBet);\n if (payoutWithoutStake !== undefined) {\n response.payoutWithoutStake = payoutWithoutStake > 0 ? payoutWithoutStake : 0;\n trackingAmount = response.payoutWithoutStake;\n }\n\n const pageName = trackingData.containsLiveBets ? `live/earlypayout_${payoutError.type}` : `main/earlypayout_${payoutError.type}`;\n this.tracker.track(trackingConstants.EVENT_EARLYPAYOUT, {\n ...this.getBaseTrackingData(false, betslipId, trackingData.betType, trackingData.isFreeBet),\n earlyPayoutAmount: toCent(trackingAmount),\n [trackingConstants.COMPONENT_LOCATION_EVENT]: pageName + trackingData.context,\n });\n\n return response;\n }\n\n private getBaseTrackingData(success: boolean, betslipId: string, betType: string, isFreeBet: boolean): Partial {\n return {\n [trackingConstants.COMPONENT_CATEGORY_EVENT]: 'early payout',\n [trackingConstants.COMPONENT_LABEL_EVENT]: success ? 'success' : 'failure',\n [trackingConstants.COMPONENT_ACTION_EVENT]: 'attempt',\n [trackingConstants.COMPONENT_POSITION_EVENT]: betType,\n [trackingConstants.COMPONENT_EVENT_DETAILS]: isFreeBet ? 'freebet' : 'real money bet',\n earlyPayoutSlipID: betslipId,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EarlyPayoutSubscriptionSource } from '../models/early-payout-subscription-source';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutService } from './early-payout.service';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutMyBetsService extends EarlyPayoutService {\n constructor() {\n super(EarlyPayoutSubscriptionSource.MyBets);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutEditBetService extends EarlyPayoutService {\n constructor() {\n super(EarlyPayoutSubscriptionSource.EditBet);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionMyBetsService extends EarlyPayoutSubscriptionService {\n constructor(earlyPayoutService: EarlyPayoutMyBetsService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubscriptionEditBetService extends EarlyPayoutSubscriptionService {\n constructor(earlyPayoutService: EarlyPayoutEditBetService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubmitMyBetsService extends EarlyPayoutSubmitService {\n constructor(earlyPayoutService: EarlyPayoutMyBetsService) {\n super(earlyPayoutService);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutSubmitEditBetService extends EarlyPayoutSubmitService {\n constructor(earlyPayoutService: EarlyPayoutEditBetService) {\n super(earlyPayoutService);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BetType } from '@bpos/common';\nimport { SlipState } from '@bpos/v1/my-bets';\nimport { EarlyPayoutConfig, MyBetsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { SportConstant } from '@frontend/sports/common/core/data-access/constants';\nimport { SyncUserSettingsService, UserService } from '@frontend/sports/user/feature';\n\nimport { EarlyPayoutFailedResponse } from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutErrorTypes, EarlyPayoutStates, PayoutError } from '../models/early-payout-types';\nimport { EarlyPayout, MigrationTabType, MyBetsBetSlip, MyBetsBetslipBase, MyBetsListContext, TokenType } from '../models/my-bets-viewmodels';\n\n@Injectable({ providedIn: 'root' })\nexport class EarlyPayoutUtils {\n constructor(\n private epConfig: EarlyPayoutConfig,\n private m2User: UserService,\n private userSettingsService: SyncUserSettingsService,\n private mybetsConfig: MyBetsConfig,\n ) {}\n\n isEarlyPayoutAvailable(betslip: MyBetsBetSlip): boolean {\n return this.isEarlyPayoutAllowed() && this.isEarlyPayoutAvailableForBetslip(betslip);\n }\n\n isEarlyPayoutAllowed(): boolean {\n if (!this.epConfig.isEarlyPayoutEnabled || !this.m2User.isEarlyPayoutAllowed) {\n return false;\n }\n\n return !this.userSettingsService.bettingSettings.earlyPayoutDeactivated;\n }\n\n isEditBetDisabled(betslip: MyBetsBetSlip): boolean {\n return (\n betslip.isFreeBet ||\n !!betslip.sgpType ||\n (!!betslip.earlyPayout && betslip.earlyPayout.earlyPayoutPossible && !betslip.earlyPayout.editBetPossible)\n );\n }\n\n private isEarlyPayoutAvailableForBetslip(betslip: MyBetsBetSlip): boolean {\n return Boolean(betslip.earlyPayout && betslip.isPotentialEP && !betslip.hideEP);\n }\n\n onlyAllowedBetTypes(betslip: MyBetsBetslipBase): boolean {\n if (betslip instanceof MyBetsBetSlip) {\n return betslip.bets.every(\n (b) =>\n b.sportId !== SportConstant.Horses &&\n (b.resultInfo ||\n (b.optionMarketInfo && b.optionMarketInfo.betType !== BetType.EachWay) ||\n (b.betBuilderInfo && b.betBuilderInfo.betBuilderType === 'Ogp')),\n );\n }\n\n return false;\n }\n\n handleEarlyPayoutPlaceError(response: EarlyPayoutFailedResponse, earlyPayout?: EarlyPayout): void {\n if (!response || !response.error) {\n return;\n }\n\n const error = response.error;\n const acceptMode = (earlyPayout && earlyPayout.acceptMode) || EarlyPayoutConst.ModeHigher;\n earlyPayout = earlyPayout || new EarlyPayout();\n\n if (error.type !== EarlyPayoutErrorTypes.CashoutAmountChanged) {\n earlyPayout.state = EarlyPayoutStates.Disabled;\n earlyPayout.error = error;\n } else if (response.possibleAmountWithoutStake !== undefined && response.possibleAmountWithoutStake <= 0) {\n // When error is CashoutAmountChanged, bet is placed with freeBet (possibleAmountWithoutStake has value)\n // and possibleAmountWithoutStake has changed to lower or equal to Stake\n earlyPayout.state = EarlyPayoutStates.Disabled;\n earlyPayout.error = { type: EarlyPayoutErrorTypes.CashoutAmountLowerOrEqualToFreeBet };\n } else {\n earlyPayout.value = error.possibleAmount || 0;\n earlyPayout.valueWithoutStake = response.possibleAmountWithoutStake;\n earlyPayout.state = EarlyPayoutStates.Allowed;\n earlyPayout.error = error;\n }\n\n earlyPayout.acceptMode = acceptMode;\n }\n\n isEditButtonVisible(betslip: MyBetsBetSlip, myBetsListContext: MyBetsListContext): boolean {\n if (\n betslip.isRecoveringAfterEditBet ||\n betslip.isCachedOut ||\n betslip.state !== SlipState.Open ||\n myBetsListContext.migrationTabType === MigrationTabType.Before ||\n betslip.usedRewardToken?.tokenType === TokenType.OddsBoostToken ||\n betslip.usedRewardToken?.tokenType === TokenType.AccaBoostToken ||\n betslip.usedRewardToken?.tokenType === TokenType.RiskFreeToken ||\n betslip.usedRewardToken?.tokenType === TokenType.BetAndGetToken\n ) {\n return false;\n }\n\n return !!(this.mybetsConfig.isEditMyBetEnabled && !this.isEditBetDisabled(betslip));\n }\n}\n","export enum SlipTypeId {\n Single = 1,\n Combo = 2,\n System2Of3 = 3,\n SystemPatent = 4,\n SystemTrixie = 5,\n System2Of4 = 6,\n System3Of4 = 7,\n SystemYankee = 8,\n SystemLucky15 = 9,\n System2Of5 = 10,\n System3Of5 = 11,\n System4Of5 = 12,\n SystemCanadian = 13,\n SystemLucky31 = 14,\n System2Of6 = 15,\n System3Of6 = 16,\n System4Of6 = 17,\n System5Of6 = 18,\n SystemHeinz = 19,\n SystemLucky63 = 20,\n System2Of7 = 21,\n System3Of7 = 22,\n System4Of7 = 23,\n System5Of7 = 24,\n System6Of7 = 25,\n SystemSuperHeinz = 26,\n System2Of8 = 27,\n System3Of8 = 28,\n System4Of8 = 29,\n System5Of8 = 30,\n System6Of8 = 31,\n System7Of8 = 32,\n SystemGoliath = 33,\n SystemBankerSingles = 34,\n}\n\nexport enum MyBetsConstants {\n OutcomeEarlyPayout = 'EARLY_PAYOUT',\n ScopeLive = 'LIVE',\n ScopeAll = 'ALL',\n TypeSingle = 'Single bet',\n TypeMulti = 'Multi bet',\n}\n","import { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { Deferred } from '@frontend/sports/common/core/utils/deferred';\nimport { PayoutAcceptanceMode } from '@frontend/sports/types/models/user-settings';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { EarlyPayoutConst, EarlyPayoutStates } from '../models/early-payout-types';\nimport { EarlyPayout, MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport interface IMyBetsEarlyPayoutSubscription {\n dropEarlyPayoutSubscription(): void;\n}\n\nexport abstract class MyBetsEarlyPayoutBaseService implements IMyBetsEarlyPayoutSubscription {\n protected cancelToken: Deferred | null = null;\n protected callback?: (ep: EarlyPayout) => void;\n protected cancelEnhancementToken: Deferred | null = null;\n protected readonly logger: SportsRemoteLogger;\n\n constructor(\n protected earlyPayoutService: EarlyPayoutService,\n protected epSubService: EarlyPayoutSubscriptionService,\n protected epHelpers: EarlyPayoutHelpers,\n protected loggerFactory: LoggerFactory,\n protected earlyPayoutSubmitService: EarlyPayoutSubmitService,\n protected epsLogger: EPSDetailedLogger,\n protected earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n private userSettings: SyncUserSettingsService,\n ) {\n this.cancelToken = new Deferred();\n this.cancelEnhancementToken = new Deferred();\n this.logger = loggerFactory.getLogger('MyBetsEarlyPayoutService');\n }\n\n protected abstract isPotentialEarlyPayoutable(betslip: MyBetsBetslipBase): boolean;\n\n protected abstract prepareEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): Promise;\n\n private mapEarlyPayoutPossibility(ep: EarlyPayoutPossibility, betslipEp: EarlyPayout | undefined): EarlyPayout {\n return {\n value: ep.earlyPayoutValue,\n state: EarlyPayoutStates.Allowed,\n acceptMode: this.getDefaultUserAcceptMode(),\n earlyPayoutPossible: ep.earlyPayoutPossible,\n editBetPossible: (betslipEp && betslipEp.editBetPossible) || ep.editBetPossible,\n resultedPicks: ep.resultedPicks,\n error: ep.earlyPayoutError,\n };\n }\n\n protected callbackFunction = (ep: EarlyPayoutsWithBetslip): void => {\n if (this.callback) {\n this.callback(this.mapEarlyPayoutPossibility(ep.earlyPayout, ep.betslip.earlyPayout));\n }\n };\n\n async mapEarlyPayoutAmount(betslips: MyBetsBetslipBase[], callback?: (ep: EarlyPayout) => void): Promise {\n this.cancelToken = this.refreshCancelationToken();\n this.callback = callback;\n\n const potentialEPbetslips: MyBetsBetslipBase[] = [];\n const betslipIds: string[] = [];\n for (const betslip of betslips) {\n betslip.isPotentialEP = this.isPotentialEarlyPayoutable(betslip);\n if (betslip.isPotentialEP) {\n potentialEPbetslips.push(betslip);\n betslipIds.push(betslip.betslipRealId);\n }\n }\n\n if (betslipIds.length) {\n try {\n const result = await this.earlyPayoutService.checkEarlyPayoutAndSubscribe(betslipIds, this.cancelToken);\n if (result.earlyPayouts) {\n result.earlyPayouts.map(\n (ep) => (ep.earlyPayoutError = this.earlyPayoutSubscriptionMapperService.mapToEarlyPayoutError(ep.earlyPayoutError)),\n );\n await this.prepareEarlyPayouts(result.earlyPayouts, potentialEPbetslips, this.callbackFunction);\n }\n } catch (error: any) {\n if (error && error.status === -1) {\n // request was probably canceled\n return;\n }\n this.logger.error(error, 'Failed to load early payout values.');\n }\n }\n }\n\n protected adjustPayoutStatus(potentialEPbetslips: MyBetsBetslipBase[]): void {\n potentialEPbetslips.forEach((betslip) => this.earlyPayoutSubmitService.adjustPayoutStatus(betslip));\n }\n\n protected async enhanceEligibleBetslips(eligibleBetslips: EarlyPayoutPossibility[]): Promise {\n if (!eligibleBetslips.length) {\n return [];\n }\n\n const betNumbers = eligibleBetslips.map((slip) => slip.betNumber);\n\n this.cancelEnhancementToken = this.refreshCancelationEnhancementToken();\n\n try {\n const result = await this.earlyPayoutService.enhanceEarlyPayout(betNumbers, this.cancelEnhancementToken);\n if (result && result.length) {\n for (const current of result) {\n const index = eligibleBetslips.findIndex((el) => el.betNumber === current.betNumber);\n\n eligibleBetslips[index].autoCashOutValue = current.autoCashoutValue || 0;\n eligibleBetslips[index].autoCashoutNotificationValue = current.autoCashoutNotificationValue || 0;\n }\n }\n\n eligibleBetslips.forEach((r) => this.epsLogger.log(r));\n\n return eligibleBetslips;\n } catch (error: any) {\n if (error && error.status === -1) {\n return eligibleBetslips;\n }\n this.logger.error(error, 'Failed to enhance early payout values.');\n\n return eligibleBetslips;\n }\n }\n\n protected mapEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): void {\n this.epHelpers.mapPermanentlyDisabledEarlyPayouts(earlyPayouts, potentialEPbetslips);\n this.epHelpers.mapDisabledEarlyPayouts(potentialEPbetslips);\n this.epHelpers.mapHiddenEarlyPayouts(potentialEPbetslips);\n\n const eligibleEPbetslips = this.mapMatchedEpBetslips(potentialEPbetslips, earlyPayouts, true);\n const notEligibleEPbetslips = this.mapMatchedEpBetslips(potentialEPbetslips, earlyPayouts, false);\n this.epSubService.subscribeEarlyPayoutChanges(potentialEPbetslips, eligibleEPbetslips.concat(notEligibleEPbetslips), true, callback);\n\n this.adjustPayoutStatus(potentialEPbetslips);\n }\n\n protected mapMatchedEpBetslips(\n potentialEPbetslips: MyBetsBetslipBase[],\n earlyPayouts: EarlyPayoutPossibility[],\n eligibleBetslips: boolean,\n ): MyBetsBetslipBase[] {\n if (!earlyPayouts || !earlyPayouts.length) {\n return [];\n }\n\n const betsEpToMatch = eligibleBetslips\n ? earlyPayouts.filter((ep) => !!ep.earlyPayoutPossible)\n : earlyPayouts.filter((ep) => !ep.earlyPayoutPossible);\n const betslipWithEPBetslip = this.epHelpers.mapEarlyPayoutsWithBetslip(potentialEPbetslips, betsEpToMatch);\n\n betslipWithEPBetslip.forEach((match) => {\n if (eligibleBetslips) {\n match.betslip.earlyPayout = {\n value: match.earlyPayout.earlyPayoutValue,\n valueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.earlyPayoutValue,\n match.betslip.isFreeBet,\n ),\n state: EarlyPayoutStates.Allowed,\n acceptMode: this.getDefaultUserAcceptMode(),\n earlyPayoutPossible: match.earlyPayout.earlyPayoutPossible,\n editBetPossible: match.earlyPayout.editBetPossible,\n autoCashoutNotificationValue: match.earlyPayout.autoCashoutNotificationValue,\n autoCashoutNotificationValueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashoutNotificationValue,\n match.betslip.isFreeBet,\n ),\n autoCashOutValue: match.earlyPayout.autoCashOutValue,\n autoCashOutValueWithoutStake: this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashOutValue,\n match.betslip.isFreeBet,\n ),\n resultedPicks: match.earlyPayout.resultedPicks || [],\n error: match.earlyPayout.earlyPayoutError,\n };\n } else {\n match.betslip.earlyPayout = match.betslip.earlyPayout || new EarlyPayout();\n match.betslip.earlyPayout.earlyPayoutPossible = match.earlyPayout.earlyPayoutPossible;\n match.betslip.earlyPayout.editBetPossible = !!match.earlyPayout.editBetPossible;\n match.betslip.earlyPayout.autoCashoutNotificationValue = match.earlyPayout.autoCashoutNotificationValue;\n match.betslip.earlyPayout.autoCashoutNotificationValueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashoutNotificationValue,\n match.betslip.isFreeBet,\n );\n match.betslip.earlyPayout.autoCashOutValue = match.earlyPayout.autoCashOutValue;\n match.betslip.earlyPayout.autoCashOutValueWithoutStake = this.epHelpers.getValueWithoutFreeBetStake(\n match.betslip.stake.value,\n match.earlyPayout.autoCashOutValue,\n match.betslip.isFreeBet,\n );\n match.betslip.earlyPayout.resultedPicks = match.earlyPayout.resultedPicks || [];\n match.betslip.earlyPayout.error = match.earlyPayout.earlyPayoutError;\n }\n });\n\n return betslipWithEPBetslip.map((slip: EarlyPayoutsWithBetslip) => slip.betslip);\n }\n\n private getDefaultUserAcceptMode(): string {\n return this.userSettings.bettingSettings.earlyPayoutAcceptanceMode === PayoutAcceptanceMode.AcceptAnyChanges\n ? EarlyPayoutConst.ModeAny\n : EarlyPayoutConst.ModeHigher;\n }\n\n protected refreshCancelationToken(): Deferred {\n if (this.cancelToken) {\n this.cancelToken.resolve();\n }\n\n return new Deferred();\n }\n\n private refreshCancelationEnhancementToken(): Deferred {\n if (this.cancelEnhancementToken) {\n this.cancelEnhancementToken.resolve();\n }\n\n return new Deferred();\n }\n\n private dropCancelationToken(): void {\n if (this.cancelToken) {\n this.cancelToken.resolve();\n }\n this.cancelToken = null;\n\n if (this.cancelEnhancementToken) {\n this.cancelEnhancementToken.resolve();\n }\n this.cancelEnhancementToken = null;\n }\n\n dropEarlyPayoutSubscription(): void {\n this.dropCancelationToken();\n this.epSubService.unsubscribeEarlyPayoutService();\n }\n}\n","import { SlipState } from '@bpos/v1/my-bets';\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport { MyBetsConstants } from '../models/bet-types';\nimport { EarlyPayoutPossibility, EarlyPayoutsWithBetslip } from '../models/early-payout';\nimport { MyBetsBetslipBase } from '../models/my-bets-viewmodels';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutUtils } from './early-payout-utils';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { MyBetsEarlyPayoutBaseService } from './my-bets-earlypayout-base.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\n\nexport class MyBetsEarlyPayoutService extends MyBetsEarlyPayoutBaseService {\n constructor(\n earlyPayoutService: EarlyPayoutService,\n epSubService: EarlyPayoutSubscriptionService,\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutSubmitService: EarlyPayoutSubmitService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n userSettings: SyncUserSettingsService,\n private earlyPayoutUtils: EarlyPayoutUtils,\n ) {\n super(\n earlyPayoutService,\n epSubService,\n epHelpers,\n loggerFactory,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n userSettings,\n );\n }\n\n isPotentialEarlyPayoutable(betslip: MyBetsBetslipBase): boolean {\n return (\n betslip.state === SlipState.Open &&\n (betslip.isSingleBet || betslip.typeAsName === MyBetsConstants.TypeMulti) &&\n this.earlyPayoutUtils.onlyAllowedBetTypes(betslip)\n );\n }\n\n async prepareEarlyPayouts(\n earlyPayouts: EarlyPayoutPossibility[],\n potentialEPbetslips: MyBetsBetslipBase[],\n callback: (ep: EarlyPayoutsWithBetslip) => void,\n ): Promise {\n try {\n const enhancedEarlyPayouts = await this.enhanceEligibleBetslips(earlyPayouts);\n this.mapEarlyPayouts(enhancedEarlyPayouts, potentialEPbetslips, this.callbackFunction);\n } catch (error) {\n this.logger.error(error, 'Failed to enhance eligible betslips.');\n this.mapEarlyPayouts(earlyPayouts, potentialEPbetslips, this.callbackFunction);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { LoggerFactory } from '@frontend/sports/common/core/feature/logging';\nimport { SyncUserSettingsService } from '@frontend/sports/user/feature';\n\nimport {\n EarlyPayoutEditBetService,\n EarlyPayoutMyBetsService,\n EarlyPayoutSubmitEditBetService,\n EarlyPayoutSubmitMyBetsService,\n EarlyPayoutSubscriptionEditBetService,\n EarlyPayoutSubscriptionMyBetsService,\n} from './early-payout-injection-tokens';\nimport { EarlyPayoutSubmitService } from './early-payout-submit.service';\nimport { EarlyPayoutSubscriptionMapperService } from './early-payout-subscription-mapper.service';\nimport { EarlyPayoutSubscriptionService } from './early-payout-subscription.service';\nimport { EarlyPayoutUtils } from './early-payout-utils';\nimport { EarlyPayoutService } from './early-payout.service';\nimport { EPSDetailedLogger } from './eps-detailed-logger.service';\nimport { EarlyPayoutHelpers } from './my-bets-earlypayout-helpers';\nimport { MyBetsEarlyPayoutService } from './my-bets-earlypayout.service';\n\nclass MyBetsEarlyPayoutServiceFactory {\n constructor(\n private epHelpers: EarlyPayoutHelpers,\n private loggerFactory: LoggerFactory,\n private earlyPayoutService: EarlyPayoutService,\n private earlyPayoutSubscriptionService: EarlyPayoutSubscriptionService,\n private earlyPayoutSubmitService: EarlyPayoutSubmitService,\n private epsLogger: EPSDetailedLogger,\n private earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n private earlyPayoutUtils: EarlyPayoutUtils,\n private userSettings: SyncUserSettingsService,\n ) {}\n\n create(): MyBetsEarlyPayoutService {\n return new MyBetsEarlyPayoutService(\n this.earlyPayoutService,\n this.earlyPayoutSubscriptionService,\n this.epHelpers,\n this.loggerFactory,\n this.earlyPayoutSubmitService,\n this.epsLogger,\n this.earlyPayoutSubscriptionMapperService,\n this.userSettings,\n this.earlyPayoutUtils,\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MyBetsEarlyPayoutServiceMyBetsFactory extends MyBetsEarlyPayoutServiceFactory {\n constructor(\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutService: EarlyPayoutMyBetsService,\n earlyPayoutSubscriptionService: EarlyPayoutSubscriptionMyBetsService,\n earlyPayoutSubmitService: EarlyPayoutSubmitMyBetsService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n earlyPayoutUtils: EarlyPayoutUtils,\n userSettings: SyncUserSettingsService,\n ) {\n super(\n epHelpers,\n loggerFactory,\n earlyPayoutService,\n earlyPayoutSubscriptionService,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n earlyPayoutUtils,\n userSettings,\n );\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class MyBetsEarlyPayoutServiceEditBetFactory extends MyBetsEarlyPayoutServiceFactory {\n constructor(\n epHelpers: EarlyPayoutHelpers,\n loggerFactory: LoggerFactory,\n earlyPayoutService: EarlyPayoutEditBetService,\n earlyPayoutSubscriptionService: EarlyPayoutSubscriptionEditBetService,\n earlyPayoutSubmitService: EarlyPayoutSubmitEditBetService,\n epsLogger: EPSDetailedLogger,\n earlyPayoutSubscriptionMapperService: EarlyPayoutSubscriptionMapperService,\n earlyPayoutUtils: EarlyPayoutUtils,\n userSettings: SyncUserSettingsService,\n ) {\n super(\n epHelpers,\n loggerFactory,\n earlyPayoutService,\n earlyPayoutSubscriptionService,\n earlyPayoutSubmitService,\n epsLogger,\n earlyPayoutSubscriptionMapperService,\n earlyPayoutUtils,\n userSettings,\n );\n }\n}\n","import { PicksView } from '@cds/betting-offer/domain-specific';\nimport { MyBetsBetSlip } from 'packages/sports/web/app/src/my-bets-base/models/my-bets-viewmodels';\nimport { MarketUrlParam } from 'packages/sports/web/app/src/navigation-core/url-helper.service';\n\nexport interface IEditMyBetInitPayload {\n sourceBetslip: MyBetsBetSlip;\n}\nexport interface EditMyBetPicksPayload extends IEditMyBetInitPayload {\n picksView: PicksView;\n sourcePageState: IBetslipSourcePageState;\n}\n\nexport enum SourcePageType {\n MyBets,\n Event,\n None,\n}\n\nexport interface SourcePageEventOptions {\n eventId: string;\n eventName: string;\n market: MarketUrlParam;\n}\n\nexport interface IBetslipSourcePageState {\n pageType: SourcePageType;\n options: SourcePageEventOptions | null;\n}\n","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 = '';\n @Input() showSmallIcons = false;\n\n promotedCompetitionIdsMap: StringDictionary = {};\n promotedSportIdsMap: StringDictionary = {};\n linkClass = '';\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 layoutClass = 'stacked-view';\n break;\n case LinkListLayout.TilesCarousel:\n layoutClass = this.showSmallIcons ? 'tiles-carousel-view small-icons' : 'tiles-carousel-view';\n break;\n case LinkListLayout.MiniCarousel:\n layoutClass = 'mini-carousel-view';\n break;\n case LinkListLayout.Grid:\n layoutClass = 'grid-view';\n break;\n default:\n layoutClass = '';\n break;\n }\n\n this.linkClass = [this.itemClass, layoutClass].join(' ');\n }\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 { 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 { 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 { 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 } 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 { Injectable } from '@angular/core';\n\nimport { NativeAlertsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { Alert } from '@frontend/sports/types/components/native-alert';\n\nimport { AlertMessage } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertConfigService {\n constructor(\n private sitecore: Sitecore,\n private nativeAlertsConfig: NativeAlertsConfig,\n ) {}\n\n readonly minuteInMiliseconds = 60000;\n\n getBySport(sportId: number): AlertMessage[] {\n const alertMessages: AlertMessage[] = [];\n const nativeAlertsMessagesConfig = this.sitecore.nativeAlerts?.sports;\n const nativeAlertsConfig = this.nativeAlertsConfig;\n\n if (!nativeAlertsConfig.enabled) {\n return alertMessages;\n }\n\n const sportConfigs = nativeAlertsConfig.sports.filter((x) => x.id === sportId);\n\n if (sportConfigs.length === 0) {\n return alertMessages;\n }\n\n const sportConfig = sportConfigs[0];\n const sports = nativeAlertsMessagesConfig?.filter((x) => x.name.toLowerCase() === sportConfig.name.toLowerCase());\n\n let messages: {} | undefined = {};\n if (sports?.length) {\n messages = sports[0].nativeAlerts;\n }\n\n if (!messages) {\n return alertMessages;\n }\n\n for (const alert of sportConfig.alerts) {\n if (messages[alert.name as keyof typeof messages]) {\n alertMessages.unshift({\n ids: this.extractIds(alert),\n key: alert.name,\n name: messages[alert.name as keyof typeof messages],\n isTop: Boolean(alert.isTop),\n });\n }\n }\n\n return alertMessages;\n }\n\n getTopIdsBySport(sportId: number): number[] {\n let ids: number[] = [];\n\n const sportConfig = this.nativeAlertsConfig.sports.find((x) => x.id === sportId);\n if (sportConfig) {\n ids = sportConfig.alerts.filter((alert) => alert.isTop).reduce((array, alert) => array.concat(this.extractIds(alert)), [] as number[]);\n }\n\n return ids;\n }\n\n private extractIds = (alert: Alert): number[] => {\n if (!alert.id && alert.containedAlerts) {\n return alert.containedAlerts.filter((x) => x.id !== null).map((x) => x.id as number);\n }\n\n return !alert.id ? [] : [alert.id];\n };\n\n isSportEnabled(sportId: number): boolean {\n const sportConfigs = this.nativeAlertsConfig.sports.filter((x) => x.id === sportId);\n\n return sportConfigs.length > 0;\n }\n\n isEnabled(): boolean {\n return this.nativeAlertsConfig.enabled;\n }\n\n get fetchingInterval(): number {\n return this.nativeAlertsConfig.fetchingInterval * this.minuteInMiliseconds;\n }\n}\n","export interface Category {\n id: string;\n groupId?: number;\n idType: Type;\n}\n\nexport class Subscriptions {\n [eventId: number]: Subscription;\n}\n\nexport class Subscription {\n action: Action;\n sportId: number;\n event: Category;\n league: Category;\n scores: number[];\n tracking?: string;\n}\n\nexport interface NativeAlertsResponse {\n subscription: Subscription[];\n}\n\nexport interface AlertEvent {\n sportId: number;\n eventId: string;\n leagueId: number;\n eventGroupId?: number;\n leagueGroupId?: number;\n title: string;\n live: boolean;\n selected?: boolean;\n}\n\nexport interface EventViewModel {\n subscription: Subscription;\n title: string;\n}\n\nexport interface AlertViewModel {\n info: AlertMessage;\n isSelected?: boolean;\n}\n\nexport interface AlertMessage {\n ids: number[];\n key: string;\n name: string;\n isTop: boolean;\n}\n\nexport enum Action {\n Subscribe = 0,\n Unsubscribe = 1,\n Exclude = 2,\n}\n\nexport enum Type {\n NonLive = 0,\n Live,\n}\n\nexport enum Source {\n Mybets = 'mybets',\n Mybet = 'mybet',\n Betslip = 'betslipconfirmation',\n Event = 'event',\n Scoreboard = 'scoreboard',\n}\n\nexport interface AlertPreferences {\n [sportId: number]: number[];\n}\n\nexport enum NativeEventType {\n LiveAlertScreenNavigation = 'LiveAlertScreenNavigation',\n BetScreenNavigation = 'BetScreenNavigation',\n OpenFreeBets = 'OpenFreeBets',\n MyBetsNavigation = 'MyBetsNavigation',\n IsNotificationEnabled = 'isNotificationEnabled',\n}\n\nexport enum Mode {\n Single,\n Multi,\n}\n\nexport enum Page {\n List,\n Detail,\n}\n\nexport enum NotificationEnabled {\n Yes = 'Yes',\n No = 'No',\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { SimpleCallback } from '@frontend/sports/common/core/utils/extended-types';\nimport { TimerService } from '@frontend/sports/common/core/utils/timer';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { BehaviorSubject, of } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { AlertConfigService } from './alert-config.service';\nimport { NativeAlertsResponse, Subscription } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class SubscriptionStreamService {\n private _data = new BehaviorSubject([]);\n private interval?: SimpleCallback;\n private readonly logger: SportsRemoteLogger;\n\n readonly data$ = this._data.asObservable();\n\n constructor(\n private apiService: ApiService,\n private alertConfigService: AlertConfigService,\n private userService: UserService,\n private timerService: TimerService,\n loggerFactory: LoggerFactory,\n ) {\n if (this.userService.isAuthenticated) {\n this.startGettingSubscriptions();\n }\n\n this.userService.onUserLogin$.pipe(takeUntilDestroyed()).subscribe(() => this.startGettingSubscriptions());\n this.userService.onUserLogout$.pipe(takeUntilDestroyed()).subscribe(() => this.stopGettingSubscriptions());\n\n this.logger = loggerFactory.getLogger('SubscriptionStreamService');\n }\n\n stopGettingSubscriptions(): void {\n if (this.interval) {\n this.interval();\n }\n\n this._data.next([]);\n }\n\n private startGettingSubscriptions(): void {\n if (this.alertConfigService.isEnabled()) {\n this.refreshSubscriptions();\n\n this.interval = this.timerService.setIntervalOutsideAngular(() => {\n this.refreshSubscriptions();\n }, this.alertConfigService.fetchingInterval);\n }\n }\n\n private refreshSubscriptions(): void {\n this.apiService\n .get('nativealerts/getSubscriptions')\n .pipe(\n catchError((err) => {\n this.logger.error(err, 'Refresh Native Alerts Subscriptions failed.');\n\n return of({ subscription: [] });\n }),\n )\n .subscribe((response) => this._data.next(response.subscription));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { ApiService } from '@frontend/sports/common/api-utils';\nimport { LoggerFactory, SportsRemoteLogger } from '@frontend/sports/common/core/feature/logging';\nimport { filterSportsEmitLast } from '@frontend/sports/host-app/sports-product/feature/utils';\nimport { TrackingService, trackingConstants } from '@frontend/sports/tracking/feature';\nimport { BehaviorSubject, Observable, firstValueFrom } from 'rxjs';\n\nimport { Action, AlertEvent, Subscription, Subscriptions, Type } from './model';\nimport { SubscriptionStreamService } from './subscription-stream.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertSubscriptionService {\n private subscriptionsSubject = new BehaviorSubject({});\n private readonly logger: SportsRemoteLogger;\n\n event: Observable = this.subscriptionsSubject.asObservable();\n\n constructor(\n private apiService: ApiService,\n private streamService: SubscriptionStreamService,\n private trackingService: TrackingService,\n loggerFactory: LoggerFactory,\n ) {\n this.streamService.data$.pipe(filterSportsEmitLast(), takeUntilDestroyed()).subscribe(this.processData);\n this.logger = loggerFactory.getLogger('AlertSubscriptionService');\n }\n\n private processData = (data: Subscription[]) => {\n const subscriptions: Record = {};\n if (data) {\n data.forEach((item) => {\n subscriptions[item.event.id] = item;\n });\n }\n\n this.propagate(subscriptions);\n };\n\n private sendSubscriptions(subscriptionsToUpdate: Subscription[]): Promise {\n return firstValueFrom(this.apiService.post('nativealerts/updateSubscriptions', subscriptionsToUpdate));\n }\n\n updateSubscriptions(subscriptionsToUpdate: Subscription[]): Promise {\n subscriptionsToUpdate.forEach((subscription) => {\n subscription.action = subscription.scores && subscription.scores.length > 0 ? Action.Subscribe : Action.Unsubscribe;\n });\n\n this.sendSubscriptions(subscriptionsToUpdate).catch((error) => {\n if (error.errorCode === 'Unauthenticated') {\n this.streamService.stopGettingSubscriptions();\n } else {\n this.logger.error(error, 'Update Native Alerts Subscriptions failed.');\n }\n });\n\n return this.updateLocalCollection(subscriptionsToUpdate);\n }\n\n private updateLocalCollection = (subscriptionsToUpdate: Subscription[]): Promise => {\n return new Promise((resolve) => {\n const subscriptions = this.subscriptionsSubject.getValue();\n subscriptionsToUpdate.forEach((newSubscription) => {\n if (newSubscription.action === Action.Subscribe) {\n this.trackSubscription(newSubscription);\n subscriptions[newSubscription.event.id as unknown as number] = newSubscription;\n } else {\n delete subscriptions[newSubscription.event.id as unknown as number];\n }\n });\n this.propagate(subscriptions);\n resolve(subscriptionsToUpdate);\n });\n };\n\n private trackSubscription(item: Subscription): void {\n if (item.tracking) {\n this.trackingService.track(trackingConstants.EVENT_ALERT_ENABLED, {\n [trackingConstants.PAGE_NAME]: `${item.tracking}_E${item.event.id}_S${item.sportId}`,\n });\n delete item.tracking;\n }\n }\n\n private propagate(newSubscriptions: Subscriptions): void {\n this.subscriptionsSubject.next(newSubscriptions);\n }\n\n unsubscribeAll(subscriptionsToRemove: Subscription[]): Promise {\n subscriptionsToRemove.forEach((subscription) => {\n subscription.scores = [];\n subscription.action = Action.Unsubscribe;\n });\n\n this.sendSubscriptions(subscriptionsToRemove);\n\n return this.updateLocalCollection(subscriptionsToRemove);\n }\n\n private getSubscriptionForEvent(id: string): Subscription {\n return this.subscriptionsSubject.getValue()[id as unknown as number];\n }\n\n private getSubscriptionForGroup(groupId?: number): Subscription | undefined {\n let subscription;\n const currentSubscriptions = this.subscriptionsSubject.getValue();\n Object.keys(currentSubscriptions).forEach((key) => {\n if (currentSubscriptions[key as unknown as number].event.groupId === groupId) {\n subscription = currentSubscriptions[key as unknown as number];\n }\n });\n\n return subscription;\n }\n\n getSubscription(id: string, groupId?: number): Subscription {\n let subscription: any;\n\n subscription = this.getSubscriptionForEvent(id);\n if (!subscription && groupId > 0) {\n subscription = this.getSubscriptionForGroup(groupId);\n }\n\n return subscription;\n }\n\n getSubscriptions(events: AlertEvent[]): Subscription[] {\n return events.map((e) => this.getSubscription(e.eventId, e.eventGroupId)).filter((s) => s);\n }\n\n createNewSubscription(alertEvent: AlertEvent): Subscription {\n return {\n action: Action.Subscribe,\n event: {\n id: alertEvent.eventId,\n groupId: alertEvent.eventGroupId,\n idType: alertEvent.live ? Type.Live : Type.NonLive,\n },\n league: {\n id: alertEvent.leagueId.toString(),\n groupId: alertEvent.leagueGroupId,\n idType: Type.NonLive, // hardcoded per instructions from CNS team\n },\n scores: [],\n sportId: alertEvent.sportId,\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { NativeAppService, NativeEvent } from '@frontend/vanilla/core';\nimport { Observable, filter } from 'rxjs';\n\nimport { NativeEventType } from './model';\n\n@Injectable({ providedIn: 'root' })\nexport class NativeAlertsService {\n constructor(private nativeAppService: NativeAppService) {}\n\n subscribeToNotificationCheck(): Observable {\n this.nativeAppService.sendToNative({\n eventName: NativeEventType.IsNotificationEnabled,\n });\n\n return this.nativeAppService.eventsFromNative.pipe(filter((e) => e.eventName === NativeEventType.IsNotificationEnabled));\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ToasterService } from '@frontend/sports/toaster/feature';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertToastMessagesService {\n private timeout: number;\n constructor(\n private toaster: ToasterService,\n private sitecore: Sitecore,\n ) {\n this.timeout = 3000;\n }\n\n showUnsubscribedToast(): void {\n if (this.sitecore.nativeAlerts) {\n this.startToast(this.sitecore.nativeAlerts.messages.LiveNotificationsUnsubscribed);\n }\n }\n\n showSubscribedToast(): void {\n if (this.sitecore.nativeAlerts) {\n this.startToast(this.sitecore.nativeAlerts.messages.LiveNotificationsSubscribed);\n }\n }\n\n private startToast(toast: string): void {\n this.toaster.open(toast, { duration: this.timeout, icon: 'sports-alert' });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AlertToastMessagesService } from '../alert-toast-messages.service';\nimport { Action, AlertEvent, Mode, Subscription } from '../model';\n\n@Injectable({ providedIn: 'root' })\nexport class AlertSelectorService {\n mode: Mode;\n model: AlertEvent[];\n source: string;\n private subscribed: boolean;\n private toast?: Function;\n\n constructor(private toastMessageService: AlertToastMessagesService) {}\n\n showSelector(multi: boolean, source: string, selected: boolean): void {\n delete this.toast;\n this.mode = Mode[multi ? 'Multi' : 'Single'];\n this.source = source;\n this.subscribed = selected;\n }\n\n confirm(subscriptions?: Subscription[]): void {\n if (subscriptions) {\n const newsubscribed = subscriptions.filter((_) => _.action === Action.Subscribe).length;\n if (!this.subscribed && newsubscribed) {\n this.toast = this.toastMessageService.showSubscribedToast.bind(this.toastMessageService);\n }\n if (this.subscribed && !this.model.filter((_) => _.selected).length) {\n this.toast = this.toastMessageService.showUnsubscribedToast.bind(this.toastMessageService);\n }\n }\n\n this.toast?.();\n }\n}\n","
\n @if (showBackButton) {\n
\n \n
\n }\n
{{ title }}
\n \n
\n@if (isListView) {\n
\n
\n
\n \n
\n \n @if (allSelected) {\n Deselect All\n } @else {\n Select All\n }\n \n
\n
\n @for (event of events; track event) {\n
\n 0\"\n (click)=\"toggleEvent(event.subscription)\"\n class=\"alert-selector-view\"\n [disable]=\"true\">\n
\n {{ event.title }}\n
\n \n
\n }\n
\n
\n}\n@if (isDetailView) {\n
\n
\n @for (alert of alerts; track alert) {\n
\n \n
\n {{ alert.info.name }}\n
\n
\n }\n
\n
\n}\n@if (showFooter) {\n
\n @if (showConfirmButton) {\n \n } @else {\n \n {{ sitecore.nativeAlerts.messages.CancelButton }}\n \n }\n
\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { NativeAlertsConfig, Sitecore } from '@frontend/sports/common/client-config-data-access';\nimport { ActiveModal } from '@frontend/sports/modal/feature';\nimport { cloneDeep } from 'lodash-es';\nimport { Subscription as RxjsSubscription } from 'rxjs';\n\nimport { AlertConfigService } from '../alert-config.service';\nimport { AlertSubscriptionService } from '../alert-subscription.service';\nimport { AlertEvent, AlertMessage, AlertPreferences, AlertViewModel, EventViewModel, Mode, NotificationEnabled, Page, Subscription } from '../model';\nimport { NativeAlertsService } from '../native-alerts.service';\nimport { AlertSelectorService } from './alert-selector.service';\n\n@Component({\n selector: 'ms-alert-selector',\n templateUrl: 'alert-selector.html',\n})\nexport class AlertSelectorComponent implements OnInit {\n private page: Page;\n events: EventViewModel[];\n alerts: AlertViewModel[];\n selectedEvent: EventViewModel;\n allSelected: boolean;\n formChanged: boolean;\n private alertPreferences: AlertPreferences = {};\n private alertMessagesCache: { [sportId: number]: AlertMessage[] } = {};\n private detailViewInitValues: { name: string; value: boolean }[] = [];\n private subscription: RxjsSubscription;\n\n // TODO MD\n constructor(\n private selectorService: AlertSelectorService,\n private subscriptionService: AlertSubscriptionService,\n private alertConfigService: AlertConfigService,\n public sitecore: Sitecore,\n private activeModal: ActiveModal,\n private nativeAlertsConfig: NativeAlertsConfig,\n private nativeAlertsService: NativeAlertsService,\n ) {}\n\n ngOnInit(): void {\n this.page = Page.List;\n this.events = this.createEventsModel();\n\n if (this.isSingleMode) {\n this.edit(this.events[0]);\n }\n\n if (this.isMultiMode) {\n this.refreshSelectAllButton();\n }\n this.setInitailValues();\n }\n\n closeSelector(): void {\n this.activeModal.close();\n }\n\n save(): void {\n if (!this.nativeAlertsConfig.appNotificationsEnabledCheck) {\n this.saveAlerts();\n } else {\n this.verifyAndSaveAlerts();\n }\n }\n\n private saveAlerts(): void {\n if (this.isDetailView) {\n this.updateSelectedSubscription();\n }\n\n this.updateEvents();\n }\n\n private verifyAndSaveAlerts(): void {\n this.subscription?.unsubscribe();\n this.subscription = this.nativeAlertsService.subscribeToNotificationCheck().subscribe((data) => {\n if (data?.parameters?.notificationEnabled === NotificationEnabled.Yes) {\n this.saveAlerts();\n }\n this.subscription.unsubscribe();\n });\n }\n\n backToList(): void {\n this.updateSelectedSubscription();\n this.refreshSelectAllButton();\n\n this.page = Page.List;\n }\n\n edit(event: EventViewModel): void {\n this.page = Page.Detail;\n this.selectedEvent = event;\n this.alerts = this.createAlertsModel(event.subscription);\n\n if (!this.formChanged) {\n this.formChanged = !this.hasAnyAlerts(event.subscription);\n }\n }\n\n toggleAlert(alert: AlertViewModel): void {\n alert.isSelected = !alert.isSelected;\n this.formChanged = true;\n }\n\n toggleEvent(subscription: Subscription): void {\n this.toggleScores(subscription, !this.hasAnyAlerts(subscription));\n\n this.refreshSelectAllButton();\n this.formChanged = this.isValueChanged();\n }\n\n toggleAllEvents(): void {\n this.allSelected = !this.allSelected;\n\n this.events.forEach((event) => {\n if (this.allSelected) {\n if (this.hasAnyAlerts(event.subscription)) {\n return;\n }\n\n this.toggleScores(event.subscription, true);\n } else {\n this.toggleScores(event.subscription, false);\n }\n });\n\n this.formChanged = this.isValueChanged();\n }\n\n private toggleScores(subscription: Subscription, subscribe: boolean): void {\n if (subscribe) {\n subscription.scores = this.getAlertsIdsForSport(subscription.sportId);\n this.addTrackingInfo(subscription);\n } else {\n subscription.scores = [];\n delete subscription.tracking;\n }\n }\n\n private updateEvents(): void {\n const subscriptionsToUpdate = this.events.filter((event) => this.shouldUpdate(event.subscription)).map((s) => s.subscription);\n\n if (subscriptionsToUpdate.length > 0) {\n this.subscriptionService\n .updateSubscriptions(subscriptionsToUpdate)\n .then(() => {\n this.selectorService.confirm(subscriptionsToUpdate);\n })\n .finally(() => this.activeModal.close());\n } else {\n this.activeModal.close();\n }\n }\n\n private refreshSelectAllButton(): void {\n const noAlertEvent = this.events.find((e) => !this.hasAnyAlerts(e.subscription));\n this.allSelected = noAlertEvent === undefined ? true : false;\n }\n\n private createEventsModel(): EventViewModel[] {\n return this.selectorService.model.map((alertEvent: AlertEvent) => {\n const subscription = this.subscriptionService.getSubscription(alertEvent.eventId, alertEvent.eventGroupId);\n if (subscription) {\n return {\n subscription: cloneDeep(subscription),\n title: alertEvent.title,\n };\n }\n\n return {\n subscription: this.subscriptionService.createNewSubscription(alertEvent),\n title: alertEvent.title,\n };\n });\n }\n\n private createAlertsModel(subscription: Subscription): AlertViewModel[] {\n const alertsMessages: AlertMessage[] = this.getAlertMessages(subscription.sportId);\n const hasAnyAlerts = this.hasAnyAlerts(subscription);\n const preferences = this.alertPreferences[subscription.sportId];\n\n const model = alertsMessages.map((alertMessage) => {\n const alertViewModel: AlertViewModel = {\n info: alertMessage,\n };\n\n if (hasAnyAlerts) {\n alertViewModel.isSelected = alertMessage.ids.every((id) => subscription.scores.indexOf(id) > -1);\n } else if (preferences) {\n alertViewModel.isSelected = alertMessage.ids.every((id) => preferences.indexOf(id) > -1);\n } else {\n alertViewModel.isSelected = alertMessage.isTop;\n }\n\n return alertViewModel;\n });\n\n return model;\n }\n\n private updateSelectedSubscription(): void {\n const selectedIds = this.getSelectedAlertIds();\n const updatePreferences = !selectedIds.length || selectedIds.sort().join(',') !== this.selectedEvent.subscription.scores.sort().join(',');\n this.selectedEvent.subscription.scores = selectedIds;\n this.addTrackingInfo(this.selectedEvent.subscription);\n\n if (updatePreferences) {\n this.alertPreferences[this.selectedEvent.subscription.sportId] = this.selectedEvent.subscription.scores;\n }\n }\n\n private getSelectedAlertIds(): number[] {\n let ids: number[] = [];\n this.alerts.filter((alert) => alert.isSelected).forEach((_) => (ids = ids.concat(_.info.ids)));\n\n return ids;\n }\n\n private addTrackingInfo(subscription: Subscription): void {\n this.alerts = this.alerts || this.createAlertsModel(subscription);\n const data = this.alerts\n .filter((_) => _.isSelected)\n .map((_) => _.info.key)\n .join('_');\n if (data.length) {\n subscription.tracking = `${this.selectorService.source}_${data}`;\n }\n }\n\n private getAlertsIdsForSport(sportId: number): number[] {\n const preferences = this.alertPreferences[sportId];\n if (preferences) {\n return preferences;\n }\n\n return this.alertConfigService.getTopIdsBySport(sportId);\n }\n\n private hasAnyAlerts(subscription: Subscription): boolean {\n return subscription.scores && subscription.scores.length > 0;\n }\n\n private shouldUpdate(subscription: Subscription): boolean {\n const currentSubscription = this.subscriptionService.getSubscription(subscription.event.id, subscription.event.groupId);\n if (currentSubscription) {\n return currentSubscription.scores.sort().join(',') !== subscription.scores.sort().join(',');\n }\n\n return this.hasAnyAlerts(subscription);\n }\n\n private getAlertMessages(sportId: number): AlertMessage[] {\n if (!this.alertMessagesCache[sportId]) {\n this.alertMessagesCache[sportId] = this.alertConfigService.getBySport(sportId);\n }\n\n return this.alertMessagesCache[sportId];\n }\n\n private setInitailValues() {\n this.detailViewInitValues = this.events.map((e) => ({\n name: e.title,\n value: this.hasAnyAlerts(e.subscription),\n }));\n }\n\n private isValueChanged(): boolean {\n let changed = false;\n this.events.forEach((event) => {\n if (!changed) {\n changed = !!this.detailViewInitValues.find((e) => e.name === event.title && this.hasAnyAlerts(event.subscription) !== e.value);\n }\n });\n\n return changed;\n }\n\n get showConfirmButton(): boolean {\n return this.isSingleMode || (!!this.formChanged && this.isListView);\n }\n\n get showFooter(): boolean {\n return this.isListView || this.isSingleMode;\n }\n\n get showBackButton(): boolean {\n return this.isDetailView && this.isMultiMode;\n }\n\n get isDetailView(): boolean {\n return this.page === Page.Detail;\n }\n\n get isListView(): boolean {\n return this.page === Page.List;\n }\n\n get isMultiMode(): boolean {\n return this.selectorService.mode === Mode.Multi;\n }\n\n get isSingleMode(): boolean {\n return this.selectorService.mode === Mode.Single;\n }\n\n get title(): string {\n return this.isDetailView\n ? this.sitecore.nativeAlerts?.messages.SingleEventSelectorTitle || ''\n : this.sitecore.nativeAlerts?.messages.MultiEventSelectorTitle || '';\n }\n}\n","import { ChangeDetectorRef, Component, DestroyRef, EventEmitter, HostBinding, HostListener, Input, OnInit, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { EventModel } from '@frontend/sports/betting-offer/feature/model';\nimport { NativeAlertsConfig } from '@frontend/sports/common/client-config-data-access';\nimport { DialogSettings, ModalDialogService, ModalRef } from '@frontend/sports/modal/feature';\nimport { UserService } from '@frontend/sports/user/feature';\nimport { Subscription } from 'rxjs';\n\nimport { RedirectHelperService } from '../../navigation-core/redirect-helper.service';\nimport { IScoreboardLiveAlert } from '../../scoreboards/models/scoreboard.viewmodel';\nimport { AlertConfigService } from '../alert-config.service';\nimport { AlertSelectorComponent } from '../alert-selector/alert-selector.component';\nimport { AlertSelectorService } from '../alert-selector/alert-selector.service';\nimport { AlertSubscriptionService } from '../alert-subscription.service';\nimport { AlertToastMessagesService } from '../alert-toast-messages.service';\nimport { AlertEvent, NotificationEnabled, Source, Subscriptions } from '../model';\nimport { NativeAlertsService } from '../native-alerts.service';\n\n@Component({\n selector: 'ms-alert',\n template: '',\n})\nexport class AlertButtonComponent implements OnInit {\n @Input() disable = false;\n @Input() model: any;\n @Input() tracking?: string;\n @Output() alertEnabled = new EventEmitter();\n\n @Input()\n @HostBinding('class.alert-selected')\n selected: boolean;\n\n @HostBinding('class.alert-enabled') enabled = false;\n\n @HostBinding('class.alert-deselected')\n get deselected(): boolean {\n return !this.selected;\n }\n\n @HostBinding('class.sports-alert')\n get alert(): boolean {\n return this.enabled && !this.multiple && this.selected;\n }\n\n @HostBinding('class.sports-alert-o')\n get alertDisabled(): boolean {\n return this.enabled && !this.multiple && !this.selected;\n }\n\n @HostBinding('class.sports-alert-multiple')\n get alertMultiple(): boolean {\n return this.enabled && this.multiple && this.selected;\n }\n\n @HostBinding('class.sports-alert-multiple-o')\n get alertMultipleDisabled(): boolean {\n return this.enabled && this.multiple && !this.selected;\n }\n\n private events: AlertEvent[] = [];\n private multiple = false;\n private dialog?: ModalRef;\n private subscription: Subscription;\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(\n private alertsConfig: AlertConfigService,\n private toastMessageService: AlertToastMessagesService,\n private selectorService: AlertSelectorService,\n private subscriptionService: AlertSubscriptionService,\n private userService: UserService,\n private modalDialogService: ModalDialogService,\n private changeDetector: ChangeDetectorRef,\n private redirectService: RedirectHelperService,\n private nativeAlertsConfig: NativeAlertsConfig,\n private nativeAlertsService: NativeAlertsService,\n ) {}\n\n ngOnInit(): void {\n this.events = this.model ? this.getModel(this.model) : this.selectorService.model;\n this.enabled = this.alertsConfig.isEnabled() && this.events && this.alertsConfig.isSportEnabled(this.events[0].sportId);\n this.multiple = this.events && this.events.length > 1;\n\n if (this.enabled) {\n this.alertEnabled.emit();\n this.subscribe();\n }\n }\n\n @HostListener('click', ['$event'])\n clicked(event: Event): void {\n if (!this.userService.isAuthenticated) {\n this.redirectService.goToLogin({ appendReferrer: true });\n\n return;\n }\n\n if (this.disable) {\n return;\n }\n\n if (this.selected && !this.multiple) {\n this.unsubscribe();\n } else {\n this.openDialog();\n }\n\n event.stopPropagation();\n }\n\n private unsubscribe(): void {\n const subscriptions = this.subscriptionService.getSubscriptions(this.events);\n if (subscriptions) {\n this.subscriptionService.unsubscribeAll(subscriptions).then(() => {\n this.selected = false;\n this.toastMessageService.showUnsubscribedToast();\n });\n }\n }\n\n private async openDialog(): Promise {\n if (!this.nativeAlertsConfig.appNotificationsEnabledCheck) {\n this.launchAlertSelector();\n } else {\n this.verifyAndLaunchAlertsSelector();\n }\n }\n\n private launchAlertSelector(): void {\n if (this.dialog) {\n return;\n }\n\n this.selectorService.model = this.events.filter((event: AlertEvent) => this.alertsConfig.isSportEnabled(event.sportId));\n this.selectorService.showSelector(this.multiple, this.tracking || '', this.selected);\n\n const settings: DialogSettings = {\n showPageHeader: false,\n cssClass: 'alerts-selector-popup',\n isModalDialog: false,\n fit: false,\n };\n\n this.dialog = this.modalDialogService.openDialog(AlertSelectorComponent, { settings });\n this.dialog?.result.finally(() => {\n this.dialog = undefined;\n });\n }\n\n private verifyAndLaunchAlertsSelector(): void {\n if (this.dialog) {\n return;\n }\n\n this.subscription?.unsubscribe();\n this.subscription = this.nativeAlertsService.subscribeToNotificationCheck().subscribe((data) => {\n if (data?.parameters?.notificationEnabled === NotificationEnabled.Yes) {\n this.launchAlertSelector();\n }\n this.subscription.unsubscribe();\n });\n }\n\n private subscribe(): void {\n this.subscriptionService.event.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => this.updateProperty(res));\n }\n\n private updateProperty(subscription: Subscriptions): void {\n if (!subscription || this.disable) {\n return;\n }\n\n const wasSelected = this.selected;\n\n this.selected = false;\n this.events.forEach((item) => {\n item.selected = !!this.subscriptionService.getSubscription(item.eventId, item.eventGroupId);\n\n if (item.selected) {\n this.selected = true;\n }\n });\n\n if (wasSelected !== this.selected) {\n this.changeDetector.markForCheck();\n }\n }\n\n private getBetslipModel(item: any): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.clientPick.liveAlert && this.alertsConfig.isSportEnabled(item.clientPick.sportId)) {\n result.push({\n sportId: item.clientPick.sportId,\n eventId: item.clientPick.fixture?.fixtureId ?? item.clientPick.event?.id,\n leagueId: item.clientPick.leagueId ?? item.clientPick.league?.id,\n title: item.clientPick.eventName.name,\n eventGroupId: item.clientPick.event?.groupId,\n leagueGroupId: item.clientPick.league?.parentleagueId,\n live: item.clientPick.isLive,\n });\n }\n\n return result;\n }\n\n private getEventModel(item: EventModel): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sport.id,\n eventId: item.id,\n leagueId: item.league.id,\n title: item.name,\n eventGroupId: item.groupId,\n leagueGroupId: item.league.parentLeagueId,\n live: item.live,\n });\n }\n\n return result;\n }\n\n private getMyBetModel(item: any): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sportsId,\n eventId: item.eventId,\n leagueId: item.leagueId,\n title: item.eventName,\n eventGroupId: item.eventGroupId,\n leagueGroupId: item.leagueGroupId,\n live: item.containsLiveBets,\n });\n }\n\n return result;\n }\n\n private getScoreboardModel(item: IScoreboardLiveAlert): AlertEvent[] {\n const result: AlertEvent[] = [];\n if (item.liveAlert) {\n result.push({\n sportId: item.sportId,\n eventId: item.eventId,\n leagueId: item.leagueId,\n title: item.title,\n eventGroupId: item.eventGroupId,\n leagueGroupId: item.leagueGroupId,\n live: item.live,\n });\n }\n\n return result;\n }\n\n private getMyBetsModel(items: any): AlertEvent[] {\n let result: AlertEvent[] = [];\n items.bets.forEach((item: any) => {\n result = result.concat(this.getMyBetModel(item));\n });\n\n return result;\n }\n\n private getModel(model: any): AlertEvent[] {\n let result: AlertEvent[] = [];\n\n if (!model || model.length === 0) {\n return result;\n }\n\n const models = Array.isArray(model) ? model : [model];\n\n models.forEach((current) => {\n switch (this.tracking) {\n case Source.Mybets: {\n result = result.concat(this.getMyBetsModel(current));\n break;\n }\n case Source.Mybet: {\n result = result.concat(this.getMyBetModel(current));\n break;\n }\n case Source.Betslip: {\n result = result.concat(this.getBetslipModel(current));\n break;\n }\n case Source.Scoreboard: {\n result = result.concat(this.getScoreboardModel(current));\n break;\n }\n default: {\n result = result.concat(this.getEventModel(current));\n break;\n }\n }\n });\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DsButton } from '@frontend/ui/button';\nimport { DsIconButton } from '@frontend/ui/icon-button';\nimport { IconCustomComponent } from '@frontend/vanilla/features/icons';\n\nimport { AlertButtonComponent } from './alert-button/alert-button.component';\nimport { AlertSelectorComponent } from './alert-selector/alert-selector.component';\n\n@NgModule({\n imports: [CommonModule, DsButton, DsIconButton, IconCustomComponent],\n declarations: [AlertButtonComponent, AlertSelectorComponent],\n exports: [AlertButtonComponent, AlertSelectorComponent],\n})\nexport class NativeAlertsModule {}\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 { DsIconButton } from '@frontend/ui/icon-button';\nimport { IconCustomComponent } from '@frontend/vanilla/features/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, DsIconButton],\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 { 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 { 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","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 { 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 { 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, HostBinding, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';\n\nimport { 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\nimport { EpcotConfigService } from '../common/epcot-config.service';\n\n@Component({\n selector: 'ms-prematch-timer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\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.epcotConfigService.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 private isEpcotEnabled: boolean;\n\n constructor(\n private intlService: IntlService,\n private sitecore: Sitecore,\n private ticker: TickerService,\n private elementRef: ElementRef,\n private epcotConfigService: EpcotConfigService,\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 this.isEpcotEnabled = this.epcotConfigService.isEnabled();\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.isEpcotEnabled\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","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})\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 time > 0 ? 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","\n\n \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nimport { EventScoreboard } from '@frontend/sports/betting-offer/feature/model';\n\n@Component({\n selector: 'ms-event-timer',\n templateUrl: 'event-timer.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\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 { LiveTimerComponent } from './live-timer.component';\nimport { PrematchTimerComponent } from './prematch-timer.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [PrematchTimerComponent, LiveTimerComponent, EventTimerComponent, CountDownComponent],\n exports: [EventTimerComponent, CountDownComponent, PrematchTimerComponent],\n})\nexport class TimerModule {}\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 { 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 { 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 | undefined;\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;\n extendedModules.push(Navigation);\n }\n\n if (options.pagination === true) {\n options.pagination = this.defaultOptions.pagination;\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 this.svg.nativeElement.classList.add(this.animationClass);\n this.svg.nativeElement.addEventListener(WindowEvent.AnimationEnd, () => this.svg.nativeElement.classList.remove(this.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/features/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: boolean = false;\n private element: HTMLElement;\n private disabled: boolean = 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/features/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 \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 { IconCustomComponent } from '@frontend/vanilla/features/icons';\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 { 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 | undefined;\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 | undefined;\n @Input() text: string | undefined;\n @Input() description: string | undefined;\n @Input() lazyLoadImage: boolean | undefined;\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 | undefined;\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 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 { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { MenuItemComponent } from '@frontend/vanilla/features/menus';\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 { IconCustomComponent } from '@frontend/vanilla/features/icons';\nimport { HtmlAttrsDirective } from '@frontend/vanilla/shared/browser';\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/features/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/features/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/features/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 | undefined;\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 > 0) {\n \n }\n
\n @for (seoSection of config.seoLinks | dsl | async; track trackBySectionName($index, seoSection)) {\n \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":["SitemapRoutingToken","use","resolver","model","EarlyPayoutAcceptance","AccountMenuVersion","mapEarlyPayoutAcceptance","settings","earlyPayoutAcceptanceMode","Any","Higher","isTurnoverTaxApplied","stakeTaxRate","taxCalculation","TaxCalculation","TurnoverTax","ShowInEpcotDirective","constructor","templateRef","viewContainer","epcotConfigService","ngOnInit","msShowInEpcot","showInEpcot","isEnabled","module","createEmbeddedView","clear","ɵɵdirectiveInject","TemplateRef","ViewContainerRef","EpcotConfigService","r","selectors","inputs","standalone","_ShowInEpcotDirective","SyncUserSettingsService","userSettings","inject","SportsUserSettings","bettingSettings","configSettings","earlyPayoutAcceptance","defaultStake","factory","ɵfac","providedIn","_SyncUserSettingsService","ReBetMyBetsTabs","HELP_BOX_TYPE","BestOddsGuarantee","AutoCashout","PaidOutAutoCashout","LineSwitcher","ArchivedBets","ShareMyBet","TransactionBets","TeaserBet","ReBet","ReBetForOpenTab","CashOutInfo","HelpBoxService","sitecore","racingConfig","epConfig","userService","mybetsConfig","betslipConfig","shareMyBetConfig","teaserBetConfig","rebetConfig","earlyPayoutConfig","getHelpBoxData","type","getBOGHelpBoxData","getCashOutInfoData","getAutoCashoutHelpBoxData","getLineSwitcherHelpData","getArchivedBetsHelpData","getShareMyBetHelpData","getTransactionBetsHelpData","getTeaserBetHelpData","getReBetHelpBoxData","getReBetOpenTabHelpBoxData","getHelpBoxBadgeData","horseRacing","badges","BOG","earlyPayoutV2","SetAutocashoutHelpBoxBadgeText","PaidOutAutoCashoutBadgeText","betslip","lineSwitcherHelpBox","Badge","archivedBetsHelpBox","globalMessages","NewBadgeText","transactionBetsHelpBox","teaserBet","helpBox","reBet","BadgeForSettledTab","BadgeForOpenTab","isHelpBoxEnabled","isBOGEnabled","showCashOutInfo","isAutoCashOutEnabled","isAutoCashOutHelpEnabled","isEarlyPayoutAllowed","earlyPayoutDeactivated","isLineSwitcherEnabled","isArchivedBetsEnabled","isTransactionBetsEnabled","HeaderLine","length","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","ɵɵinject","Sitecore","RacingConfig","EarlyPayoutConfig","UserService","MyBetsConfig","BetslipConfig","ShareMyBetConfig","TeaserBetConfig","ReBetConfig","_HelpBoxService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","badgeText","HelpBoxBadgeComponent","boxType","input","required","isShown","hbService","computed","features","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","ɵɵtemplate","HelpBoxBadgeComponent_Conditional_0_Template","ɵɵconditional","_HelpBoxBadgeComponent","BestOddsGuaranteedService","getEligibleFixturesCount","fixtures","concat","map","f","isFixtureEligible","pipe","count","eligible","b","_BestOddsGuaranteedService","Re","ɵɵelement","ɵɵproperty","RaceViewBestOddsBadgeComponent","bestOddsService","fixture","fixture$","toObservable","showBadge","toSignal","switchMap","requireSync","T","consts","RaceViewBestOddsBadgeComponent_Conditional_0_Template","encapsulation","changeDetection","_RaceViewBestOddsBadgeComponent","ɵɵelementContainer","ɵɵelementContainerStart","HelpBoxComponent_ng_container_1_ng_container_1_Template","headerBadge_r1","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","onInfoIconClick","helpBoxData","ɵɵsanitizeHtml","HelpBoxComponent_ng_container_6_ng_container_1_Template","Xe","F","_r4","onCloseButtonClick","ɵɵtextInterpolate1","Close","_r5","ze","h","HelpBoxComponent","disableInfoIcon","closeButtonClick","EventEmitter","infoIconClick","initHelpBox","next","outputs","ngContentSelectors","_c0","HelpBoxComponent_ng_container_1_Template","HelpBoxComponent_Conditional_5_Template","HelpBoxComponent_ng_container_6_Template","HelpBoxComponent_div_7_Template","HelpBoxComponent_div_8_Template","ɵɵprojection","HelpBoxComponent_ng_template_12_Template","ɵɵtemplateRefExtractor","ɵɵpureFunction0","_c1","_c2","ɵɵpipeBind2","NgTemplateOutlet","TrustPipe","_HelpBoxComponent","NextRaceFilters","getFixtureId","compoundFixtureId","split","pop","mapParticipant","__spreadProps","__spreadValues","id","createWinGameParticipant","createParticipantWithTimeFormData","timeform","result","timeformInfo","horses","undefined","createParticipantWithRacingPostData","racingPost","racingPostInfo","horseData","hasTopStarRating","greyhoundsData","greyhounds","toWinGameFixture","fixtureId","participants","p","optionGroups","optionSets","isOptionBet","hasOptionMarkets","optionMarkets","toHorseRacingTimeFormFixture","horseRacingEntity","_","toRacingPostFixture","racingpost","toRacingFixturePreview","isFixtureUpdateEnvelope","envelope","isGameUpdateEnvelope","isGameDeleteEnvelope","isOptionMarketUpdateEnvelope","isOptionMarketDeleteEnvelope","isParticipantUpdateEnvelope","isScoreboardPatchEnvelope","isScoreboardSlimEnvelope","isFixtureSlimUpdateEnvelope","isPlayerStatsUpdateEnvelope","messageType","payload","game","optionMarket","isOptionMarketEnvelope","participant","patch","scoreboard","hybridPlayerStats","isBetBuilderOfferUpdateEnvelope","isBetBuilderExpiringSubscriptionEnvelope","updateObjectInCollection","updatedObj","collection","creator","updater","newCollection","isUpdated","item","updated","push","getUpdatedOptionMarkets","options","defaultCreator","defaultUpdater","current","merge","updateFixture","message","startDate","cutOffDate","stage","addons","isResulted","isRaceOver","isRaceOff","pricingState","raceSummary","updateFixtureParticipants","messageParticipant","updateFixtureOptionMarkets","filter","o","marketId","updatedMarket","DEFAULT_EFFECT_CONFIG","CREATE_EFFECT_METADATA_KEY","createEffect","source","config","effect","value","l","getCreateEffectMetadata","instance","propertyName","metaData","getSourceMetadata","getSourceForInstance","isClassInstance","obj","isClass","classOrRecord","getClasses","classesAndRecords","isToken","tokenOrRecord","InjectionToken","mergeEffects","sourceInstance","globalErrorHandler","effectsErrorHandler","sourceName","observables$","dispatch","useEffectsErrorHandler","observable$","effectAction$","ignoreElements","materialize","notification","MAX_NUMBER_OF_RETRY_ATTEMPTS","defaultEffectsErrorHandler","errorHandler","retryAttemptLeft","catchError","error","Actions","_Actions","Observable","operator","observable","__ngFactoryType__","ScannedActionsSubject","ɵɵdefineInjectable","ofType","allowedTypes","action","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","createAction","reportInvalidActions","output","reporter","isAction","getEffectName","stringify","isMethod","onIdentifyEffectsKey","isOnIdentifyEffects","isFunction","onRunEffectsKey","isOnRunEffects","onInitEffects","isOnInitEffects","functionName","EffectSources","_EffectSources","Subject","effectSourceInstance","groupBy","effectsInstance","mergeMap","source$","effect$","exhaustMap","resolveEffectSource","dematerialize","init$","take","ErrorHandler","mergedEffects$","EffectsRunner","_EffectsRunner","effectSources","store","Store","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","StringInterpolationPipe","transform","params","templateSettings","interpolate","pure","i","_StringInterpolationPipe","UserOddsFormatSettingsService","oddsFormatSettings","OddsFormatSettings","oddsFormat","generalOddsFormat","_UserOddsFormatSettingsService","NativePriceCalculatorService","add","price","otherPrice","resultPrice","numerator","fraction","minus","toNumber","denominator","americanDecimal","NativePrice","americanOddsToDecimalOdds","americanOdds","otherAmericanDecimal","roundDecimalToAmerican","odds","fromNativePriceElement","multiplyDecimal","multiplier","round","decimals","times","toDecimalPlaces","Decimal","ROUND_HALF_UP","multiply","roundPriceValues","decimalMultiplier","getMultiplier","americanOddsCalculated","americanOddsCalculation","getAmericanOddsCalculation","m","_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","stake","disableOLTracking","BetConfirmation","toString","bets","mapPicksToBetParameters","notifySuccessfulBetPlacements","betslipData","currency","BetPlacement","totalPickCount","isEachWaySelected","isLive","some","pick","live","navigationClick","section","ccbKey","MenuIteamNavigation","eventName","data","Error","sendToNative","parameters","mappedBets","forEach","Sport","sportPick","eventId","marketName","resultName","optionName","resultId","optionId","sportId","sportName","getSportNameFromId","Race","NativeAppService","c","_EventBridgeService","StakeInputMode","StakeInputModeStrategy","FieldStakeInputModeStrategy","inputMode","of","Field","_FieldStakeInputModeStrategy","TypingStakeInputModeStrategy","Typing","_TypingStakeInputModeStrategy","DynamicInputModeStrategy","mediaService","subject$","ReplaySubject","subscription","observe","isActive","distinctUntilChanged","subscribe","ngOnDestroy","unsubscribe","asObservable","MediaQueryService","_DynamicInputModeStrategy","BettingSettingsService","sportsUserSettings","bettingSettings$","loadSportsUserSettings$","configSettings$","allSettings$","combineLatest","isTurnoverTaxApplied$","earlyPayoutAcceptance$","whenReady","shareReplay","bufferSize","refCount","_BettingSettingsService","charsets","en","el","bg","separators","CharsetSizeService","_window","page","loggerFactory","__privateAdd","averageDecimalWidth","averageSeparatorWidth","DEFAULT_SIZE","__privateSet","WINDOW","_doc","DOCUMENT","logger","getLogger","getAverageSize","averageWidth","getAverageSizeCurrentCharset","getAverageDecimalSize","fontSize","getAverageDecimalSizeCurrentCharset","getAverageSeparatorSize","getAverageSeparatorSizeCurrentCharset","getSampleCharsetWidth","warning","charset","getCharsetForLang","lang","span","styleDec","__privateGet","getComputedStyle","body","createElement","innerText","style","fontFamily","replace","appendChild","offsetWidth","removeChild","mapCharset","Page","LoggerFactory","_CharsetSizeService","UiManagerActions","_UiManagerActions","SET_STATE","ADD_STATE","REMOVE_STATE","REMOVE_MULTI_STATES","TOGGLE_STATE","POPULATE_FROM_STORAGE","STATE_CHANGED","setState","props","addState","removeState","removeMultiStates","toggleState","populateFromStorage","stateChanged","pprops","UiStates","uiStatesThatShouldBeRestored_NotAuthenticated","Home","QuickBet","OverAsk","uiStatesThatShouldBeRestored_Authenticated","DsIconButton","DsButtonBase","_size","signal","_kind","_variant","_ariaLabel","hostClass","variantKindClass","sizeClass","variant","set","size","kind","ariaLabel","a","hostAttrs","hostVars","hostBindings","ɵɵclassMap","ɵɵclassProp","disabled","s","z","_DsIconButton","DynamicFontResizerComponent","changeDetectorRef","parentResized$","resizeObserver","ResizeObserver","entries","handleResize","debounceTime","parent","changeFontSize","defaultSize","disconnect","complete","ngAfterViewInit","_a","_b","_c","nativeTextContent","resizerContainer","nativeElement","parentElement","initialFontSize","initialWidth","getBoundingClientRect","width","parentWidth","currentFontSize","textLength","newFontSize","calculateFontSizeFromBounds","markForCheck","defaultFontSize","targetFontSize","calculateRelationalFontSize","Number","isNaN","isFinite","Math","floor","targetTextWidth","initialTextWidth","initialSpacePerChar","targetSpacePerChar","contentRect","ChangeDetectorRef","viewQuery","ɵɵstyleProp","St","_DynamicFontResizerComponent","IncrementalStakesService","stakeConfig","bettingSettingsService","getValues$","keypadIncrementalStakes","getDefaultValues","toLowerCase","addToStakeValues","default","StakeConfig","_IncrementalStakesService","NUMPAD_VALIDATION_PARAMETERS_TOKEN","validationParamsFactory","NumpadUtilsService","locale","validationParameters","zeroRegex","RegExp","splitRegex","localeSeparator","getLocaleNumberSymbol","NumberSymbol","CurrencyDecimal","validateRegex","maxLeadingDigits","maxTrailingDigits","isValidInput","isSeparator","test","normalizeInput","matches","match","substr","hasSeparator","addLocaleSeparator","toFormattedValue","alwaysAddDecimals","isValidNumberString","addDecimals","addThousandsSeparators","returnValue","regex","toFixed","isEmptyOrWhiteSpaceString","trim","LOCALE_ID","MoneyService","_NumpadUtilsService","defaultNumpadState","isOpened","formatted","currencyFormatted","isEmpty","numpadInput","position","NumpadSource","NumpadOperation","NumpadAction","Tracking","NumpadDisplayService","_open","_close","_isOpen","_openedNumpad","open$","close$","open","close","isOpen","tryClose","_NumpadDisplayService","NumpadTrackingService","trackingService","getBaseTrackData","trackingConstants","COMPONENT_CATEGORY_EVENT","COMPONENT_LABEL_EVENT","COMPONENT_POSITION_EVENT","COMPONENT_EVENT_DETAILS","NotApplicable","COMPONENT_URL_CLICKED","trackOpening","location","track","COMPONENT_LOCATION_EVENT","COMPONENT_ACTION_EVENT","Opening","trackConfirmation","Confirmation","trackDeleteButton","Delete","trackIncrement","trackingData","COMPONENT_CONTENT_POSITION","NOT_APPLICABLE","getStakeSelectedData","mapAction","IncrementalStakeUsed","KeypadTyped","KeypadUsed","additionalTrackData","fullTrackData","W","EVENT_TRACKING","TrackingService","_NumpadTrackingService","StakeUpdateService","utils","increment","currentValue","remove","start","end","slice","append","character","newValue","allCharactersSelected","_StakeUpdateService","NumpadService","numpadDisplayService","updateService","numpadTrackingService","currencypipe","serviceDestroyed$","state","BehaviorSubject","cloneDeep","stakeValues","state$","stake$","currentState","registerSelectionProvider","selectionProvider","confirm","isDynamicNumpad","confirmed","openNumpad","shouldSkipUpdate","updateStake","skipNumberCheck","toStakeModel","updateState","initialize","keypadOptions","focusOnLoad","shouldUpdateStake","Type","operation","appendCharacter","getSelection","Append","selectionStart","emitNewStake","Increment","removeLastCharacter","MarketSubTypeTooltipShown","Remove","onOtherNumpadOpen","otherNumpadWasOpened","takeUntil","closeNumpad","numpadService","isZero","indexOf","preFormatted","newState","mapToAction","None","trackingSource","numpadSource","CurrencyPipe","_NumpadService","stake_r2","_r1","$implicit","addToStake","title","IncrementalStakesComponent","incrementalStakesService","stakeValues$","values","v","mapValue","initialValue","stakeToAdd","String","ɵɵrepeaterCreate","IncrementalStakesComponent_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","zt","_IncrementalStakesComponent","ui","R","ctx_r1","onClick","NumpadErrorComponent","clickable","isDefined","callback","trustPipe","ngOnChanges","changes","trustAsHtml","NumpadErrorComponent_div_0_Template","ae","_NumpadErrorComponent","NumpadScrollService","closingNumpadRef","getClosingNumpadRect","_NumpadScrollService","NumpadComponent","event","stopPropagation","preventDefault","$event","NumpadComponent_ms_incremental_stakes_1_Template","showIncrementalStakes","_NumpadComponent","gi","NumpadAnimationConfig","_NumpadAnimationConfig","maxHeight","duration","NumpadHostComponent","injector","displayService","changeDetector","scrollService","elementRef","opened","removeAfterTransition","destroyRef","DestroyRef","takeUntilDestroyed","closeOrOpen","cleanHost","onTransitionEnd","host","createNumpad","createComponent","index","createCustomInjector","setTimeout","bind","Injector","create","providers","provide","useValue","ElementRef","j","Si","B","U","NumpadHostComponent_ms_numpad_error_1_Template","NumpadHostComponent_ng_template_2_Template","Qt","trigger","transition","animate","_NumpadHostComponent","vi","_i","ok","numpad","Ok","NumpadKeysComponent","separator","tap","key","NumpadKeysComponent_Conditional_25_Template","ɵɵpureFunction1","showConfirm","J","H","Lt","_NumpadKeysComponent","NumpadScrollDirective","numpadHostComponent","numpadScrollService","scrollContainerService","smoothScrollService","scrollEnabled","currentNumpadRect","closingNumpadRect","scrollContainerRect","pickRect","scrollIntoView","initRects","shouldScrollDown","scrollDown","shouldScrollUp","scrollUp","container","pickElement","deltaDown","scrollTo","deltaY","deltaUp","delta","scrollTopTo","scrollTop","closingNumpadHeight","height","openingNumpadHeight","windowOverflow","bottom","innerHeight","top","isClosingNumpadAbove","ScrollContainerService","SmoothScroll","ne","_NumpadScrollDirective","NumpadActions","_NumpadActions","ACTION_SCHEMA","NUMPAD_FOCUS","numpadFocus","NumpadInputConnector","timerService","currencyConfig","init","stateChangeSub","stateChange","deInit","cleanTimeout","focused","selectionEnd","clearFocus","timeout","setTimeoutOutsideAngular","focus","showStakeCurrency","select","focusInput","setSelectionRange","TimerService","CurrencyConfig","_NumpadInputConnector","Oi","Ni","ti","Ii","adornmentStart","_r3","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","ɵɵpureFunction2","selected","isEpcotEnabled","useStakeFieldCursor","StakeFieldComponent","numpadInputConnector","inputElement","toggleSelected","setSelected","setDeselected","inputRef","StakeFieldComponent_Conditional_0_Template","q","tmp_0_0","ɵɵpipeBind1","Te","_StakeFieldComponent","StakeFontResizerDirective","stakeElement","renderer","charsetService","constants","stakeFieldSelector","stakeInputSelector","stakeLeftPadding","withError","withOutError","minimumFontSize","minimumPaddingSize","resizedFontReducer","resizedPaddingReducer","delay","valuesLoaded","loadValues","reduceSize","hasOverflow","ratio","spaceAvailable","spaceNeeded","newFont","max","min","defaultFont","newPadding","defaultRightPadding","setStyle","isInput","resizerOptions","childElement","querySelector","containerWidth","parseFloat","paddingRight","paddingSize","setAttribute","decimalCount","separatorCount","leftPadding","hasError","Renderer2","_StakeFontResizerDirective","StakeInputBehavior","StakeInputComponent","stakeElm","numpadConnector","behavior","TypingAndNumpad","OnlyTyping","onPaste","text","clipboardData","getData","onKeyUp","target","xi","StakeInputComponent_Conditional_2_Template","ke","_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","tmp_5_0","stakeNumpadMode","StakeComponent_Conditional_0_Conditional_0_Template","tmp_1_0","modeStrategy","StakeComponent","stakeChanged","numpadOpen","stakeConfirm","hasErrors","join","numpadInitialized$","first","stakes","keypadId","emit","originalEmptyCharacter","messages","Stake","focusPlaceholder","handleStakeChange","openKeypad","isLinearKeypadEnabled","stakeChange","firstChange","ɵɵNgOnChangesFeature","StakeComponent_Conditional_0_Template","_StakeComponent","ValidateStakeInputDirective","element","stakepaste","onKeypress","e","getValue","pastedText","window","isNumber","_ValidateStakeInputDirective","NumpadModule","ot","CommonModule","IconCustomComponent","_NumpadModule","NgIf","_e","NgClass","AsyncPipe","EarlyPayoutStates","EarlyPayoutConst","EarlyPayoutErrors","EarlyPayoutOptionErrors","EarlyPayoutPickState","EarlyPayoutErrorTypes","roundUpward","val","pow","roundedNumber","toCent","UserSettingsService","apiService","dispatcher","clientConfig","__async","isAuthenticated","NOT_AUTHENTICATED","apiResult","firstValueFrom","post","from","reload","UserEvents","M2UserClaimsChanged","setOddsFormat","format","oddsFormatLimitReached","_UserSettingsService","ApiService","DispatcherService","ClientConfigService","RemoveHrefDirective","removeHref","removeAttribute","_RemoveHrefDirective","NavigationCoreModule","_NavigationCoreModule","PendingCopy","_document","textarea","styles","successful","currentFocus","Clipboard","_Clipboard","document","pendingCopy","ClipboardService","clipboard","deviceService","DeviceService","copy","removeTextArea","textAreaElement","createTextArea","selectTextArea","copied","execCommand","clearSelection","isRtl","documentElement","getAttribute","textArea","border","padding","margin","yPosition","scrollY","isiOS","editable","contentEditable","readOnly","range","createRange","selectNodeContents","selection","removeAllRanges","addRange","blur","_ClipboardService","ShareService","nativeAppService","share","NativeEventType","SHARE","isAndroid","isNativeWrapper","navigator","_ShareService","BalancePropertiesConfig","LazyClientConfigBase","__ngConditionalFactory__","balancePropertiesConfigFactory","LazyClientConfigService","__decorate","LazyClientConfig","product","ClientConfigProductName","SF","service","get","BalancePropertiesService","balanceProperties","balancePropertiesEvents","balanceSettingsConfig","balanceInfo","refresh","propagate","showSpinner","response","balance","propagateRefresh","update","transfer","isLow","lowBalanceThreshold","lowThresholds","SharedFeaturesApiService","BalanceSettingsConfig","_BalancePropertiesService","BalancePropertiesBootstrapService","balancePropertiesService","balancePropertiesConfig","localStoreService","zone","balancePropertiesCoreService","onFeatureInit","events","UserPreHooksLoginEvent","runOutsideAngular","addEventListener","WindowEvent","Focus","Storage","storageArea","localStorage","LocalStoreKey","AuthStorageKey","eventsFromNative","GETBALANCE","USERBALANCE","amount","accountBalance","currencyCode","UPDATEBALANCE","Boolean","triggerEvent","UserUpdateEvent","Map","LocalStoreService","NgZone","BalancePropertiesCoreService","_BalancePropertiesBootstrapService","BalancePropertiesDslValuesProvider","dslRecorderService","intlService","dslCacheService","invalidate","getProviders","recordable","createRecordable","createProperty","name","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","reduce","bonus","postfix","isBonusActive","applicableProducts","bonusAmount","_BonusBalanceService","BonusBalanceBootstrapService","bonusBalanceService","_BonusBalanceBootstrapService","BonusBalanceDslValuesProvider","user","refreshed","BonusBalance","getCurrentValue","getIndividualBonus","bonusType","toLocaleLowerCase","_BonusBalanceDslValuesProvider","KycStatusService","kycStatus","kycStatusEvents","status","refreshSubject","kycStatusOptions","JSON","group","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","d","ArcMessageFrequencyService","lastMsgDisplayDate","Date","isMessageFrequencyAvailable","frequency","loginActionKey","loginActionValue","messageKey","setDate","getDate","DateProviderService","getStartOfDay","_ArcMessageFrequencyService","ArcRestrictionTrackingService","trackSaferGambalingMessage","trackingEvent","ArcRestrictionTrackingConstants","CategoryEvent","LabelEvent","SaferGamblingEventDetails","trackPlayBreakMessage","EVENT_CONTENT_VIEW","TrackingEvent","Load","PlayBreakEventDetails","trackFindOutMoreLink","Click","FindOutMoreLinkPositionEvent","_ArcRestrictionTrackingService","UserActions","_UserActions","INIT_STATE","USER_LOGGED_IN","USER_LOGGED_OUT","UPDATE_STATE","SET_WALLET_LOADED","initState","setWalletLoaded","userLoggedIn","userLoggedOut","ARCPlayBreakHeader","ARCPlayBreakMessage","pe","trackHelpLink","arcBetslipMessages","FindOutMore","ArcMessageComponent_ng_template_2_ng_container_0_ng_container_6_div_4_Template","bt","C","betslipMessage","featureLocation","FeatureLocation","PostBetSlipMessage","toggle","ArcMessageComponent_ng_template_2_ng_container_0_ng_container_6_Template","ArcSaferGamblingHeader","expanded","ArcMessageComponent_ng_template_2_ng_container_0_Template","isMessageFrequency","ArcMessageComponent","arcRestrictionService","arcRestrictionTrackingService","arcConfig","arcMessageFrequencyService","className","isUserOnPlayBreak$","isBreak","trackMessage","profileData","handleBetSlipMessageAndFrequency","Expand","Collapse","PreBetSlipMessage","profileActionsSwitch","isBetslipMessagingEnabled","getBetSlipMessage","profileId","profileFrequency","profileActions","find","ProfileActionName","ProfileMessageStorageKeys","preBetMessageStorageKey","actionForMessagedisplayPre","firstLoginActionPrebet","setLocalStorage","postBetMessageStorageKey","actionForMessagedisplayPost","firstLoginActionPostbet","msgKey","Object","keys","isPlayBreak","SourceBetslip","SourceBetslipReceipt","SourceBetslipQuickBet","ArcRestrictionService","ARCConfig","ArcMessageComponent_ng_container_0_Template","be","ArcMessageComponent_ng_template_2_Template","Ui","betslipMessageContainer_r4","Et","Yi","Ve","wr","_ArcMessageComponent","ArcModule","imports","_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","generate","picksParam","uriParams","basePath","productPath","path","addPage","url","parse","mapParams","search","Options","Currency","userId","betslipId","Refbet","Source","every","offerSource","OfferSource","userCurrency","query","Single","valueOf","decodedUri","decodeURIComponent","legs","parsedLegs","tv1Legs","tv2Legs","leg","pickGroupId","optionMarketId","isClassicBetBuilder","gameId","useLiveFallback","extractOptionIds","optionGroup","toInteger","option","priceId","getBetslipType","optionIdIndex","fixtureOptionGroup","substring","fixtureParts","reverse","_d","usersCurrency","normalized","capitalize","Combo","System","UrlService","UrlHelperService","_PickUriService","ShareMyBetService","pickUriService","modalDialogService","navigationService","cookieProvider","productService","shortenUri","betInfo","uriParam","accountId","picksParams","uri","encodeURIComponent","urlResponse","culture","baseUrl","isSingleDomainApp","showUriExpiredDialog","isOnboardingShown","getCookie","Onboarding","setOnboardingShown","setCookie","isComplianceShown","Compliance","Complience","setComplianceShown","expires","complianceCookieExpiryDays","getComplianceDialog","translations","modalDialogs","shareMyBetInterceptor","contentData","DialogType","Action","firstParagraph","DialogText","buttons","ButtonType","Cancel","DialogButtonTextReject","buttonConfig","DialogButtonTextAccept","isModalDialog","cssClass","openMessage","showNotSupportedDialog","notSupported","Warning","DialogButtonText","refbet","doReceiverErrorTracking","ErrorLoaded","linkExpired","DialogTitle","then","buttonType","ErrorOkButton","doSenderTracking","actionEvent","urlClicked","trackData","BetSharing","ShareBetLink","UserClicksButton","ShareMyBetClick","triggerEventWithCleaning","setRefbet","TrackingRefBet","LinkExpiredError","ModalDialogService","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","tmp_2_0","ShareMyBetCopyComponent","shareMyBetService","shareMyBetState$","sharingState","CopyShareLinkClick","Copied","Copy","getElementById","getElementsByClassName","classList","contains","ShareMyBetCopyComponent_Conditional_0_Template","_ShareMyBetCopyComponent","ShareMyBetNativeMessageService","toaster","listen","BetSharedSuccessfully","showToasterMessage","ShareSuccess","globalErrorVisibilityTime","ToasterService","_ShareMyBetNativeMessageService","ShareMyBetOnboardingComponent","hideOnboarding","OnboardingText","_ShareMyBetOnboardingComponent","isShareMyBetSavedState","savedState","ShareMyBetStateSaver","save","_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","EpcotModule","Betslip","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","button","share$","getShareText","success","BetShared","receiveBet$","handleShareBet$","RefBet","copyShortUri$","ngrxOnInitEffects","noopAction","translation","shareText","SingleBetShareText","MultiBetShareText","SystemBetShareText","systemType","StoragePersister","_ShareMyBetEffect","shareMyBetReducer","createReducer","on","produce","draft","objectEntries","aggr","pp","ShareMyBetModule","shareMyBetNativeMessageService","gt","StoreModule","forFeature","_ShareMyBetModule","SGPPlusBadgeComponent","large","Hi","_SGPPlusBadgeComponent","AccaBoostRatioPipe","prefix","boostRatio","replaceBoostPlaceholder","boost","interpolateDoubleBracesString","Vi","_AccaBoostRatioPipe","TokensCalculatorService","accaBoostConfig","getBoostedNativeOdds2","boostFactor","oddsBoostFormula","boostFactorDecimalValue","dividedBy","boostMultiplier","plus","decimal","OddsOperations","toDecimalValue","boostedOdds","fromDecimalValue","getTokenPercentageReturns","maxPayout","riskFreePercentage","minPayout","decimalPercentage","decimalStake","payout","div","getAccaBoostReturns","possibleWinnings","maxBoost","accaBoostCalculation","calculatedBoost","AccaBoostConfig","_TokensCalculatorService","PayoutInfoLocation","PRECISION","TokensSummaryService","moneyService","crmConfig","tokensCalculator","accaBoostRatioPipe","displayPayoutTypes","createDisplayPayoutTypes","getBoostedWinningsSummary","payoutType","winningsBoost","isPayoutInfoEnabled","Summary","RewardTokenType","OddsBoost","winningsBoostFormatted","displayPayoutType","getDisplayPayoutType","crmTokens","oddsBoost","betslipSummary","IncludedBoostedWinnings","getRiskFreeSummary","noOfSlabs","slabAmount","RiskFreeBet","riskFreeReturns","incrementalPayout","getIncrementalDetails","riskFree","IncrementalPayoutFreebet","payoutSummaryTemplate","RiskFreeIncrementalPayoutSummary","RiskFreePayoutSummary","getBetAndGetSummary","token","BetAndGet","displayPayoutTemplate","betAndGet","BetAndGetPayoutSummary","displayPayoutValue","payoutValue","displayMaxPayoutValue","percentagePayout","BetAndGetPercentagePayoutSummary","maximumPayout","displayRewardTriggerType","rewardTriggerType","RewardTriggerType","BetPlacementTemplate","BetSettlementTemplate","PayoutType","Bonus","BonusPayoutTemplate","Cash","CashPayoutTemplate","FreeBet","FreebetPayoutTemplate","OddsBoostToken","OddsBoostPayoutTemplate","RiskFreeToken","RiskFreePayoutTemplate","maxAmount","triggerType","tokenType","payoutInfo","tokens","summaryPayoutInfo","drawerPayoutInfo","freeBet","cash","BonusNoWager","oddsBoostToken","riskFreeToken","getAccaBoostSummary","getAccaBoostRatio","getAccaBoostSummaryByRatio","accaBoost","BetslipBoostingInfo","PayoutTypeFreebet","PayoutTypeBonus","PayoutTypeCash","actualPayout","CrmConfig","_TokensSummaryService","CustomerOfferService","customerOfferConfig","isNewCustomerOffer","leagueId","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","info","AccountBalanceService","balanceService","siteCore","walletStoreService","kycStatusService","globalBalanceLogger","accountBalanceConfig","balanceProperties$","_availableWallets","_selectedWalletType$","isWalletSet","isAllowedCountry","userCountry","payPalWalletSelectionEnabledForCountries","countryCode","filterSportsEmitLast","startWith","onUserLogInWithSettings$","selectedWalletType$","buildAvailableWalletsForBonus","setNewKycStatus","buildAvailableWallets","selectedWallet$","wallets","wallet","expectBalanceChange","balanceBeforeRefresh","oldBalance","currentBalanceObservable","skip","each","with","throwError","err","retry","retryDelay","setWallets","availableWallets","currentBalanceAmount","currentBalanceProperties","currentBonusBalanceObservable","selectWallet","persistanceType","Permanent","getDefaultWallet","userWalletType","mainBalance","calculateMainBalance","calculatePaypalBalance","PayPal","Main","paypalWalletUseNewFormula","calcualateMainWithNewFormula","calculateMainWithOldFormula","walletLoaded","country","PayPalBalance","shortTitle","icon","paypalWalletIconClass","MainBalance","selectedWalletAmount","t","AccountBalanceConfig","_AccountBalanceService","EarlyPayoutTACSource","loadTacDialog","MyBetsEarlyPayoutTacDialogComponent","EarlyPayoutTacService","modalDialog","loadingIndicator","userSettingsService","tracker","hasUserAcceptedTAC","acceptEarlyPayoutTaC","openDialog","showDialogHeader","tryUpdateUserSettings","trackingContext","EditBet","EventView","MyBets","EVENT_PAGE_VIEW","PAGE_NAME","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","Array","numberOfFirstPlaces","createFromBetResponse","bet","viewModel","date","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","leagueName","competition","sport","createFromOgpBetGroupResponse","betGroup","resolveLegName","betState","betGroupState","ogpRepricingInfo","ogpBetGroupDetails","repricingInfo","mapParticipants","placeDeadHeatDivisor","deadheatDivisor","deadHeatDivisor","placeRule4Deduction","ruleFourDeduction","rule4Deduction","xCastSettlementDeviated","betTypeId","EachWay","bestOddsGuaranteedState","curr","fixtureParticipantId","positionInBet","participantPick","sort","participantName","getFixtureType","fixtureType","Antepost","DayOfRace","PairGame","Standard","Tournament","Unknown","fixtureName","virtualSport","isVirtual","tv1BetBuilderInfo","convertBetBuilderBetState","started","isFinished","needToShowEventView","MyBetsBetslipBase","isSingleBet","MyBetsBetSlip","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","containsLiveBets","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","g","isArray","Sgp","SgpPlus","isoDate","datePart","parseInt","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","resolve","catch","finally","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","subscriptions","cdsPush","CdsPushService","epHelpers","earlyPayoutSubscriptionMapperService","handleEarlyPayoutValuePushUpdate","eligibleBetslips","earlyPayoutsWithBetslip","ModeHigher","matchedBetslip","Confirm","acceptMode","valueWithoutStake","Allowed","pushUpdate","handler","messageGroup","handleEarlyPayoutPush","subscribeEarlyPayoutChanges","betslipsToSubscribe","useBatchCalls","newSubscriptions","createSubscriptions","subscribeEarlyPayoutValueChanges","unsubscribeEarlyPayoutService","clearTimeout","timer","bettingData","isEarlyPayoutPushEnabled","CachoutSubscription","convertEarlyPayoutPushPickWithStateToEarlyPayoutResultedPickState","subscriptionExpired","errorKind","betNotAllowedReason","possible","resultedPicks","betNumbersToCheck","cancelationToken","checkEarlyPayoutAndSubscribe","betNumbersWithCashOutComplete","earlyPayoutNotPossible","EPSDetailedLogger","BaseCustomLogger","api","internalConfig","isEPSDetailedLoggingEnabled","_EPSDetailedLogger","EarlyPayoutService","redirectService","RedirectHelperService","epsLogger","epsMapper","earlyPayoutHelpers","Promise","EpGeneralError","request","acceptanceMode","expectedPayout","userExpectedValue","queue","errorPayout","checkEarlyPayoutStatus","payoutStatus","currentBetslipId","StatusPending","callDelay","firstCall","pendingQueryStatusRetryDelay","pendingOverdueRetryDelay","nextCheck","StatusSucceded","doneSuccess","doneFail","goToLogin","appendReferrer","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","SportConstant","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","findIndex","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","TopBottomSectionLinksComponent","crmPromotionProvider","itemClass","itemListClass","showArrows","layout","showSmallIcons","promotedCompetitionIdsMap","promotedSportIdsMap","linkClass","setItemClass","promotionsMap$","ids","promotionMapChanged","setTrackingDetails","items","COMPONENT_SITECORE_ID","sitecoreId","COMPONENT_USER_SEGMENTS","userSegmentGroups","promoMap","competitions","sports","layoutClass","CrmPromotionProviderService","tracking","moduleName","modulePosition","moduleSection","CrmPromotionModule","PromoItemListComponent","_TopBottomSectionLinksComponent","QuickLinksSections","toQuickLinkItem","quickLink","colouredIcon","href","linkModel","popup","link","linkType","attributes","bgColor","backgroundColor","leagueTitle","leagueIcon","sportsIcon","LinkListWidgetComponent_ng_container_0_div_1_Template","links","smallIcon","LinkListWidgetComponent","WidgetComponent","classes","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","ConfirmationDialogButtonType","G","contentModel","M","button_r3","handleClick","buttonOrderClass","buttonTitle","ConfirmationDialogComponent_Conditional_4_For_2_Conditional_0_Template","ConfirmationDialogComponent_Conditional_4_For_2_Template","ɵɵrepeaterTrackByIndex","button_r5","ConfirmationDialogComponent_Conditional_5_For_2_Template","ConfirmationDialogComponent","isDesignSystem","activeModal","TrackingType","PageName","Referring","PAGE_REFERRING_ACTION","ActiveModal","y","ConfirmationDialogComponent_Conditional_2_Template","ConfirmationDialogComponent_Conditional_4_Template","ConfirmationDialogComponent_Conditional_5_Template","DsButton","_ConfirmationDialogComponent","ConfirmationDialogService","showDialog","confirmationDialogCssClass","hideCloseButton","backdropClass","S","_ConfirmationDialogService","MyBetsOddsPipe","_MyBetsOddsPipe","MyBetsBaseModule","_MyBetsBaseModule","SportsThemedButtonDirective","dsButton","self","currentTheme","injectCurrentTheme","themeKind","themeVariant","themeSize","themeInverse","inverse","_SportsThemedButtonDirective","TimerUtilsService","getEventStartingInText","eventStartDate","timeDiff","now","NotStarted","StartingInMinutes","StartingInMinute","StartsNow","getEventStartingInFullText","StartsNowFormatted","TimerStartingInFormatted","_TimerUtilsService","AlertConfigService","nativeAlertsConfig","minuteInMiliseconds","extractIds","alert","containedAlerts","x","getBySport","alertMessages","nativeAlertsMessagesConfig","nativeAlerts","enabled","sportConfigs","sportConfig","alerts","unshift","isTop","getTopIdsBySport","array","isSportEnabled","fetchingInterval","NativeAlertsConfig","_AlertConfigService","Mode","NotificationEnabled","SubscriptionStreamService","alertConfigService","_data","data$","startGettingSubscriptions","onUserLogin$","onUserLogout$","stopGettingSubscriptions","interval","refreshSubscriptions","setIntervalOutsideAngular","_SubscriptionStreamService","AlertSubscriptionService","streamService","subscriptionsSubject","processData","updateLocalCollection","subscriptionsToUpdate","newSubscription","Subscribe","trackSubscription","sendSubscriptions","updateSubscriptions","scores","Unsubscribe","errorCode","EVENT_ALERT_ENABLED","unsubscribeAll","subscriptionsToRemove","getSubscriptionForEvent","getSubscriptionForGroup","groupId","currentSubscriptions","getSubscription","getSubscriptions","eventGroupId","createNewSubscription","alertEvent","idType","Live","NonLive","league","leagueGroupId","_AlertSubscriptionService","NativeAlertsService","subscribeToNotificationCheck","IsNotificationEnabled","_NativeAlertsService","AlertToastMessagesService","showUnsubscribedToast","startToast","LiveNotificationsUnsubscribed","showSubscribedToast","LiveNotificationsSubscribed","toast","_AlertToastMessagesService","AlertSelectorService","toastMessageService","showSelector","multi","mode","subscribed","newsubscribed","_AlertSelectorService","backToList","qe","Je","event_r5","toggleEvent","edit","toggleAllEvents","AlertSelectorComponent_Conditional_6_Conditional_6_Template","AlertSelectorComponent_Conditional_6_Conditional_7_Template","AlertSelectorComponent_Conditional_6_For_9_Template","allSelected","We","alert_r7","_r6","toggleAlert","isSelected","AlertSelectorComponent_Conditional_7_For_3_Template","showFooter","Ze","_r8","ConfirmButton","et","_r9","closeSelector","CancelButton","tt","AlertSelectorComponent_Conditional_8_section_0_Conditional_1_Template","AlertSelectorComponent_Conditional_8_section_0_Conditional_2_Template","showConfirmButton","it","AlertSelectorComponent_Conditional_8_section_0_Template","AlertSelectorComponent","selectorService","subscriptionService","nativeAlertsService","alertPreferences","alertMessagesCache","detailViewInitValues","List","createEventsModel","isSingleMode","isMultiMode","refreshSelectAllButton","setInitailValues","appNotificationsEnabledCheck","verifyAndSaveAlerts","saveAlerts","isDetailView","updateSelectedSubscription","updateEvents","notificationEnabled","Yes","Detail","selectedEvent","createAlertsModel","formChanged","hasAnyAlerts","toggleScores","isValueChanged","getAlertsIdsForSport","addTrackingInfo","shouldUpdate","noAlertEvent","alertsMessages","getAlertMessages","preferences","alertMessage","alertViewModel","selectedIds","getSelectedAlertIds","updatePreferences","currentSubscription","changed","isListView","showBackButton","Multi","SingleEventSelectorTitle","MultiEventSelectorTitle","$","AlertSelectorComponent_Conditional_1_Template","AlertSelectorComponent_Conditional_6_Template","AlertSelectorComponent_Conditional_7_Template","AlertSelectorComponent_Conditional_8_Template","_AlertSelectorComponent","AlertButtonComponent","deselected","multiple","alertDisabled","alertMultiple","alertMultipleDisabled","alertsConfig","disable","alertEnabled","getModel","clicked","verifyAndLaunchAlertsSelector","launchAlertSelector","dialog","showPageHeader","fit","res","updateProperty","wasSelected","getBetslipModel","clientPick","liveAlert","parentleagueId","getEventModel","parentLeagueId","getMyBetModel","sportsId","getScoreboardModel","getMyBetsModel","Mybets","Mybet","Scoreboard","_AlertButtonComponent","NativeAlertsModule","ue","_NativeAlertsModule","Se","onCloseClick","notificationHeaderTitle","onLinkClick","linkValues","ɵɵsanitizeUrl","E","EpcotNotificationTypes","EpcotNotificationComponent","showCloseButton","linkClick","notificationInfo","iconColor","notificationType","Info","Success","ngAfterViewChecked","I","EpcotNotificationComponent_Conditional_5_Template","EpcotNotificationComponent_span_9_Template","EpcotNotificationComponent_section_10_Template","EpcotNotificationComponent_Conditional_12_Template","ɵɵclassMapInterpolate1","_EpcotNotificationComponent","SGPBadgeComponent","_SGPBadgeComponent","domSanitizer","activationInformation","bypassSecurityTrustHtml","ActivationInformation","acceptTac","DomSanitizer","ActivationCondition1","ActivationCondition2","ActivationCondition3","ActivationButton","_MyBetsEarlyPayoutTacDialogComponent","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","parsedConfig","prepareConfig","templateContent","managerClasses","permissionInfoClasses","devicePropertyClasses","currentOrientation","deviceType","osName","osVersion","vendor","browserClasses","getCapability","loadAssets","configStore","hostElement","activateTemplate","handleCloseDialog","permissionDictionaryConfig","dictionaryEntries","dictEntry","re","A","w","ɵɵresolveDocument","isChrome","isNexus","isTouch","isMobilePhone","isRobot","_PermissionsManagerComponent","GeoCoordinatorPermissionsManagerService","MatDialog","documentRef","_permissionsInfoOptions","handlePermissionsInfo","console","canReopenDialog","closePermissionsInfo","disableClose","textDictionary","panelClass","handleDialogClassesDecoration","whichClasses","afterOpened","cls","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$","subscriber","isLocationFailed","errorResponse","getLocationDetailsfromGDS","startTimer","clearTimer","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","TickerInterval","TickerService","timers","second","minute","Function","generateGuid","onTick","Second","runInterval","Subscription","unsubscribeInternal","secondsInterval","minutesInterval","runIntervalType","Minute","keysForInterval","u","_TickerService","CountDownComponent","tickerService","tick","stop","until","diff","ticked","textContent","getTime","ceil","pad","padStart","seconds","minutes","hours","segments","_CountDownComponent","PrematchTimerComponent","ticker","isDynamicTimer","intervalForRedPrematchTimer","calendarInfoDisplay","MINUTE","HOUR","DAY","warn","tickerSubscription","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","LiveTimerComponent","sitecoreEventDetails","tickerFormattedTime","startTime","getOtherScoreboardTypesTime","period","getTournamentTime","visible","score","getScore","eventDetails","stateLabel","final","timerVisible","isSuspended","timerRunning","Golf","getPairGameTime","isTimerVisible","timeValue","AmericanFootballPeriodInfo","IntermissionQ1","IntermissionQ2","IntermissionQ3","RegularTimeOver","Finished","serverTime","scoreboardTypeChanged","previousValue","isFirstChange","formatterFunc","getTimeFormatter","restartTimer","stopTicker","isType","ScoreboardType","TournamentGame","PeriodGame","SpecialGame","LeaderboardGame","Darts","SetGame","BaseballGame","Cricket","gameTime","gameTimeInSeconds","timeIndicator","startTicker","base","running","formatTime","startCounter","updateTickerFormattedTime","currentTime","elapsedTime","timerSeconds","getTotalSeconds","timeSpan","types","SitecoreEventDetailsConfig","_LiveTimerComponent","EventTimerComponent","EventTimerComponent_ms_live_timer_0_Template","EventTimerComponent_ng_template_1_Template","O","prematch_r2","_EventTimerComponent","TimerModule","V","_TimerModule","NgxPopperjsContentComponent_div_2_Template","NgxPopperjsContentComponent_div_3_Template","NgxPopperjsTriggers","NgxPopperjsContentComponent","_NgxPopperjsContentComponent","elRef","_viewRef","_changeDetectorRef","__publicField","acc","klass","autoUpdate","fromEvent","appendToParent","arrowElement","arrowLen","floatingOffset","boundaryMiddleware","flip","shift","limitShift","popperOptions","offset","arrow","boundariesElement","autoPlacement","computePosition","middlewareData","placement","side","staticSide","ruleValue","$style","styleContent","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵprojectionDef","ɵɵattribute","NgStyle","NGX_POPPERJS_DEFAULTS","NgxPopperjsUtils","_NgxPopperjsDirective","_elementRef","_vcr","_popperDefaults","popperRef","toElement","popperContentView","node","overflowY","isScrollable","ɵɵdefineDirective","NgxPopperjsDirective","NgxPopperjsPlacements","provideNgxPopperjsOptions","NgxPopperjsModule","_NgxPopperjsModule","popperBaseOptions","DEFAULT_SC_OPTIONS","fullWidth","SEGMENTED_CONTROL_OPTIONS_TOKEN","le","me","ge","he","option_r3","customTemplate","fe","ctx_r3","selectOption","DsSegmentedControl_For_4_Conditional_4_Template","DsSegmentedControl_For_4_Conditional_5_Template","twoLineTruncation","DsSegmentedOption","focusVisible","tabIndex","rxHostPressedListener","setTabIndex","setFocused","setFocusVisible","contentQueries","dirIndex","k","Z","_DsSegmentedOption","DsSegmentedControl","controlOptions","ngZone","_focusMonitor","FocusMonitor","roleType","activeOption","activeOptionChange","_activeOption","isReady","selectedOption","optionList","toArray","_activateSelectedOption","tabLabels","monitor","focusOrigin","_f","_g","_h","_setHighlightWidthAndXPost","stopMonitoring","_selectFirstOption","firstOption","scContainer","offsetLeft","setProperty","onKeydown","currentIndex","newIndex","newOption","focusOption","opt","focusVia","D","booleanAttribute","ɵɵInputTransformsFeature","DsSegmentedControl_For_4_Template","_forTrack0","_DsSegmentedControl","DsSegmentedControlModule","N","_DsSegmentedControlModule","copyright","CopyrightComponent","n","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","len","nextKey","desc","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","swiper","targetPosition","startPosition","dir","isOutOfBound","progress","easeProgress","currentPosition","getSlideTransformEl","slideEl","elementChildren","selector","children","elementIsChildOf","isChild","showWarning","tag","elementPrevAll","prevEls","prev","elementNextAll","nextEls","elementStyle","prop","elementIndex","child","elementParents","parents","elementOuterSize","includeMargins","makeElementsArray","getRotateFix","support","calcSupport","getSupport","deviceCached","calcDevice","_temp","userAgent","platform","ua","device","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","iPadScreens","getDevice","overrides","browser","calcBrowser","needPerspectiveFix","isSafari","major","minor","num","isWebView","isSafariBrowser","need3dFix","getBrowser","Resize","observer","animationFrame","resizeHandler","createObserver","newWidth","newHeight","_ref2","contentBoxSize","removeObserver","orientationChangeHandler","Observer","extendParams","observers","attach","ObserverFunc","mutations","observerUpdate","containerParents","eventsEmitter","priority","method","onceHandler","_len","args","_key","eventHandler","_len2","_key2","updateSize","updateSlides","getDirectionPropertyValue","label","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","groups","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","isVisible","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","preload","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","direction","step","transitionStart","transitionEnd","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","slideToLoop","targetSlideIndex","cols","centeredSlides","needLoopFix","slideNext","animating","perGroup","slidePrev","rtlTranslate","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","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","found","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","touches","targetEl","swipingClassHasValue","eventPath","noSwipingSelector","isTargetShadow","startY","shouldPreventDefault","onTouchMove","targetTouch","pageX","pageY","diffX","diffY","touchAngle","touchesDiff","prevTouchesDirection","isLoop","allowLoopFix","evt","loopFixed","disableParentSwiper","resistanceRatio","onTouchEnd","touchEndTime","pathTree","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","onResize","isVirtualLoop","onScroll","onLoad","onDocumentTouchStart","capture","domMethod","swiperMethod","attachEvents","detachEvents","events$1","isGridEnabled","setBreakpoint","initialized","breakpoints","breakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","hasLoop","getBreakpoint","containerEl","currentHeight","points","point","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","enable","classesToSelector","Pagination","pfx","number","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","bulletActiveClass","getMoveDirection","onBulletClick","moveDirection","total","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","rotate","centerOffset","offsetMultiplier","rotateY","rotateX","translateZ","stretch","translateY","translateX","slideTransform","shadowBeforeEl","shadowAfterEl","SwiperComponent_Conditional_4_Conditional_0_Template","SwiperComponent_Conditional_4_Conditional_1_Template","swiperOptions","pagination","navigation","SwiperComponent","swiperRef","strategy","RxStrategyProvider","defaultOptions","showPagination","sanitizeOptions","swiperClass","syncedSwiperParams","extendedModules","autoplay","updatedOptions","paramKey","param","isObjParam","schedule","Ne","Fe","Be","SwiperComponent_Conditional_4_Template","_SwiperComponent","SvgComponent","httpClient","displayMode","image","responseType","svgImage","DOMParser","parseFromString","getElementsByTagName","hasAttribute","viewBox","setClass","svg","iconType","defaultAnimation","customAnimation","animationClass","AnimationEnd","HttpClient","L","containerClass","_SvgComponent","closeLinkText","commonMessages","PopoverCloseText","PopperContentComponent","closeType","onCloseLinkClick","autoClose","content","hide","CommonMessages","NgxFloatUiContentComponent","PopperContentComponent_Conditional_1_Template","PopperContentComponent_Conditional_6_Template","cssTextClass","NgxFloatUiModule","_PopperContentComponent","BadgeConfig","badgeConfigFactory","ClientConfig","BadgeType","MenuItemBadgeDirective","class","badgeClass","counter","badgeConfig","badgeType","Counter","Icon","menuItemsService","getCounter","MenuItemsService","ɵɵhostProperty","_MenuItemBadgeDirective","AuthstateDirective","vnAuthstate","states","updateView","hasView","onUserstateChange","show","viewRef","rootNodes","workflowType","addClass","removeClass","_AuthstateDirective","ht","TooltipsConfig","tooltipsConfigFactory","TooltipsService","activeTooltip","tooltips","tooltipNames","clearTooltips","addTooltip","tooltipTemplates","getTooltip","currentItem","nextTooltip","tooltip","showTooltip","previousTooltip","tooltipName","hasNext","hasPrevious","removeTooltip","splice","closeTooltip","_TooltipsService","previous","itemName","PopoverPreviousText","PopoverNextText","tooltipsService","TooltipsComponent_Conditional_0_Conditional_5_Template","TooltipsComponent_Conditional_0_Conditional_6_Template","TooltipsComponent_Conditional_0_Conditional_7_Template","P","TooltipsComponent","onPreviousClick","tooltipItem","offsetParent","offsetTop","offsetHeight","TooltipsComponent_Conditional_0_Template","DynamicHtmlDirective","_TooltipsComponent","MenuItemClickHandlerService","menuActionsService","MenuActionsService","Logger","handleMenuTrack","trackClick","handleMenuAction","origin","processClick","_MenuItemClickHandlerService","additionalClass","Me","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","Ae","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","iconClass","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Conditional_0_Template","Ee","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_0_Template","MenuItemComponent_Conditional_1_a_0_Conditional_2_Conditional_1_Template","Pe","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","Ue","itemDescription","descriptionCssClass","MenuItemComponent_Conditional_1_a_0_Conditional_8_ng_container_0_Template","Ke","MenuItemComponent_Conditional_1_a_0_Conditional_9_ng_container_0_Template","additionalIcon","badgeTextClass","Dt","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","ri","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","imageClass","lazyLoad","di","MenuItemComponent_ng_template_11_Conditional_1_Template","textClass","MenuItemComponent_ng_template_13_Conditional_0_Template","MenuItemComponent","tooltipsConfig","cookieService","dslService","menuItemClickHandler","addItemClassToLinkClasses","MenuDisplayMode","highlighted","evaluateExpression","getDescription","description","resources","subtitle","getDescriptionCssClass","toBoolean","put","CookieName","PreviousPageUrl","textOnClick","lazyLoadImage","trackEvents","WebAnalyticsEventType","fromEntries","startsWith","isOnboardingTooltipsEnabled","showOnboardingTooltips","tooltipType","tooltipsShown","OnBtt","onboardings","detectChanges","popperContent","tooltipsArray","expireDate","setFullYear","CookieService","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","ɵɵgetCurrentView","CloudflareStreamModule","PageMatrixService","dynamicComponentsRegistry","registerComponent","templateName","component","VanillaDynamicComponentsCategory","PageMatrix","getComponent","DynamicComponentsRegistry","_PageMatrixService","PageMatrixDirective","viewContainerRef","pageMatrixService","corePageMatrixService","templatesRegistered","renderComponent","vnPageMatrix","resolveTemplate","componentRef","setInput","_PageMatrixDirective","PCComponent","trackByName","trackByProp","trackByText","createClass","componentClass","_PCComponent","NavScrollDirective","menuTimeOut","sectionChange","scrollStop","scrollEventHandler","timeoutId","currentSection","Scroll","removeEventListener","navBarTopHeight","_NavScrollDirective","PMPage","metaTagsService","MetaTagsService","htmlNode","HtmlNode","setHtmlClass","writePageMetadata","clearPageTags","tags","pageDescription","pageMetaTags","assign","setPageTags","pageTitle","htmlClass","setCssClass","ɵɵInheritDefinitionFeature","_PMPage","ImageMqlHandler","mql","Change","listener","fn","ProfilesDirective","handlers","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","ɵɵpureFunction3","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","tmp_6_0","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","queryParams","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","ɵɵpipeBind3","maxItems","SlicePipe","_PCComponentFolderComponent","PCMenuComponent","destroySubject","MenuSection","currentUrl","menu","activeChain","findActiveChain","activeLeaf","setActive","pcMenuItems","pcMenu","boundingRect","scrollX","scrollBy","left","chain","childChain","ve","xe","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","scope","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","putRaw","_ContentMessagesService","message_r3","ContentMessagesComponent_Conditional_0_For_2_Template","messagesToShow","ContentMessagesComponent","messagesService","overlayRef","UserLoginEvent","refreshMessagesToShow","backdropClick","writeCookieOnOverlayClick","dispose","dynamicValues","setDynamicContentValues","toggleClassForHtmlNode","closedMsgNames","cssClassForHtmlNode","placeholder","Key","Value","OverlayRef","ContentMessagesComponent_Conditional_0_Template","_ContentMessagesComponent","LabelSwitcherConfig","Y","labelSwitcherConfigFactory","LabelSwitcherTrackingService","trackConfirmationOverlay","positionEvent","trackDropDown","labelEvent","_LabelSwitcherTrackingService","LabelSwitcherService","toastrQueueService","geoLocationService","authService","eventsService","dateTimeService","currentLabelItemEvent","_items","currentLabelItemEvent$","currentGeoLocationItem","region","mappedLocation","stateClient","currentLabelItem","_currentLabelItem","prepareItems","checkForContentErrors","positionChanges","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","PERMANENT_COOKIE_EXPIRATION","ToastrQueueService","GeolocationService","AuthService","EventsService","DateTimeService","_LabelSwitcherService","LabelSwitcherBootstrapService","register","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","X","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","footerTopItems","seoSection_r3","logoSection_r4","FooterComponent_Conditional_0_Conditional_20_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_20_Template","showResponsiveLanguageSwitcher","showLabelSwitcher","SlotName","FooterItemsInline","showHelpButton","seoLinks","contentMessages","FooterItems","FooterComponent","dynamicLayoutService","configReady","footerSlot","uiLanguages","evaluateContent","showLanguageSwitcherDslCondition","setContactHtmlClass","setLanguageSwitcherHtmlClass","logos","right","FooterComponent_Conditional_0_Template","display","DslPipe","ResponsiveLanguageSwitcherComponent","DynamicLayoutSlotComponent","_FooterComponent","FooterBootstrapService","setComponent","raise","FooterLoaded","allEvents","FooterSlotLoaded","toggleFooter","addComponent","isEnabledCondition","_FooterBootstrapService"],"mappings":"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","x_google_ignoreList":[18,68,178,184,185,186,187,188,189,190,191,192,193,194,195,216]}